Operating systems and freedom: deep thoughts on replacing a cell phone

In 2014, I was in Alaska, and wanted to use a Red Pocket SIM card with my iPhone 4 to roam with a lot of data — 3GB was included in the package. I ordered the SIM card, installed it (with some difficulty), and was able to connect voice, text, and data to the local AT&T cell network. However, my personal hotspot for wifi tethering was disabled. I made a point of replacing the iPhone with  a hackable Android phone, the Google Nexus 5. The software environment on the Nexus 5 is ideal, but the hardware died early. I then got a Oneplus One, which is now in its 3rd year of service. Both the Nexus and the Oneplus were unlocked, and i reflashed both of them with rooted versions of Android. I then had the ability to use a SIM card and to edit various registries that control things like whether tethering is permitted on a prepaid SIM. As it turned out, I only used this capability once — on a trip in 2015. After that time, roaming plans for Canadian cell phones have improved considerably.

I had planned to replace my Oneplus One with a Oneplus 6 in July of this year (2018). However, Google’s war with Amazon has produced some collateral damage: Google apps will no longer run on unofficial builds of the Android kernel. There is a mechanism for registering as a developer, but the point is, I would be better off at that point by staying with stock OTA updates and a non-rooted image on an Android phone.

Google picked a bad time to do this: rumors are that a cheaper 6.1″ LCD iPhone will be released in September 2018, at US$550 (C$720). If an iPhone only costs C$60 more than a OnePlus 6, I may as well just buy the iPhone. I have been lusting after wifi calling, call handoff to the iPad, and Airplay to the Apple TV.

This got me to thinking about vendor lockin. Microsoft is trying to get things to go through their app store, if they follow the MacOS path this will soon be the default, and we could see a potential future where apps are locked down fully on Windows and MacOS.

Where does that leave freedom? The multiple-boot partition that runs Linux on my personal laptop is in many ways the last place I will truly be free to control my own computer. I used to see Linux as a great server and a mediocre desktop. I now see it as a free desktop, free as freedom, not simply free as in beer.

Windows 10: setting network profile to private or public

If you are experiencing problems with file and print sharing, either as a server or as a client, it may be due to the current network profile of your Internet connection. Windows makes a distinction between private networks (home and work) and public networks (hotel wifi, Starbucks wifi, etc.) The idea is to avoid sharing your episodes of Gilligan’s Island with other people at the Starbucks by accident.

Windows often asks you to select whether a network profile should be private or public, but sometimes the issue is unclear.

To see and change the current network profile, right-click on the network icon (wired or wifi) on the bottom right near the time:

Click on “Change connection properties:”

You will be able to view and change the network profile:

 

Muting Chrome audio by default and un-muting tabs selectively

Many web sites play audio without permission, so I usually have audio muted for the entire desktop. However, sometimes I like to watch Netflix or a media file on VLC, on a second screen, while I load other web pages on my main screen. This makes it necessary to mute audio on Chrome itself while allowing other applications to play sound, or to allow one web page to play Netflix or Youtube while others are muted.

Enabling mute function

To allow muting on individual Chrome tabs, enter the following address in the Chrome URL bar:

chrome://flags/#sound-content-setting

enable the option: “Sound content setting.”

Click “Relaunch now.”

Enabling mute controls per tab

To enable a control that allows for muting of individual Chrome tabs, enter the following address in the URL bar:

chrome://flags/#enable-tab-audio-muting

enable the option: “Tab audio muting UI control”

Click “Relaunch now.”

Muting all Chrome tabs by default

To enable a control that allows for muting all Chrome tabs by default, enter the following address in the URL bar:

chrome://settings/content/sound

disable the option:

When disabled, this option shows “Mute sites that play sounds.” When enabled, this option shows: “Allow sites to play sound (recommended).”

Click “Relaunch now.”

Selectively unmuting or muting Chrome tabs playing audio

When a tab is playing audio, an audio icon will appear on the tab, indicating whether sound is muted or not, and on which you can click to unmute or mute sound. There is also a sound control at the right of the URL bar which offers more detailed settings. You can also right-click on the tab label and select unmute or mute from the context menu.

 

Enabling SMB1 so Windows 10 can act as a file share server or client with non-Windows devices

Note: there are many things you need to check to get a Windows share working: whether network discoverability is enabled, ensuring that the firewall zone is set to private, and other advanced sharing options. This blog post assumes you have solved all of those problems, and have a Windows computer act as an SMB server, with a file share that is visible to other Windows computers, but is not visible to non-Windows clients. This blog post also applies if you have a Windows computer that is able to act as an SMB client to access a share on another Windows computer, but is unable to access a file share on a non-Windows device acting as an SMB server. Even if your Windows share does not yet work, it is probably worth your time to perform the steps outlined in this blog post.

Windows 10 includes a feature called File and Print Sharing that allows for a folder on a computer’s hard drive to be shared with other computers on a network. This kind of file sharing is called Server Message Block (SMB) and is implemented in non-Windows products, both hardware and software, in order to allow interoperability. Some hardware appliances, and some software, like the MacOS and Linux operating systems, as well as specialized programs like VLC running on iPad/iPhone, iOS, or TVOS (Apple TV) are able to act as SMB clients, so they can access files stored on a Windows-style share. Windows can also access shares on non-Windows devices using the SMB protocol.

This feature has been modified recently by security patches intended to harden the Windows 10 operating system against security threats like the WannaCry virus. There are several versions of the SMB protocol. The SMB 1.0/CIFS version of the protocol is now disabled by default. In addition, 3 rules were added to the Windows firewall that had the effect of blocking port 445, which is used by the SMB protocol. While it is fine to disable a firewall during initial troubleshooting, it is better for the long-term to re-enable the firewall, while disabling the rules that prevent SMB file sharing.

This means that if you have a share on Windows that is visible to other Windows computers, but not to non-Windows clients such as Mac, Linux, or hardware appliances, VLC, or Kodi, you may have to re-enable SMB 1.0/CIFS support in Windows 10. This may also apply if you are trying to use Windows as an SMB client to connect to an SMB share on a non-Windows device and are unable to do so, despite being able to connect to shares hosted on Windows computers.

Removing firewall rules re port 445

You may also have to disable certain firewall rules that were added by the security patch, specifically those that deal with port 445 for File and Print Sharing. From the Start menu, type “firewall,” then click on the option for “Windows Defender Firewall with Advanced Security. On the left side menu, select “Inbound Rules.” Locate the 3 rules labeled “File and Print Sharing (SMB-In). Highlight all 3 rules, right-click, then click “Disable rule.” On the left side menu, select Outbound Rules.” Locate the 3 rules labeled “File and Print Sharing (SMB-Out). Highlight all 3 rules, right-click, then click “Disable rule.”

Enabling SMB 1.0/CIFS protocol

To enable SMB 1.0/CIFS on a Windows 10 computer, go to the Start menu, type “windows feature,” then click on the option “Turn Windows features on or off.” You will then be presented with the following dialog:

Ensure that SMB 1.0/CIFS File Sharing Support and its sub-options are selected. Press OK. You will be prompted to reboot your computer. After you reboot, it is more likely that your share will be visible to non-Windows SMB clients, as before the security update. It is also more likely that your Windows computer will be able to connect as an SMB client to an SMB share on a non-Windows device.

Formatting an old 32 bit netbook with Linux to function as a file server

A friend wanted to reformat an old laptop with Linux to serve as a home file server, so that he could stream media files using VLC on iPad and Apple TV.

We initially tried with an HP laptop with a decent AMD chip (equivalent to i5 class) but had difficulty getting the installers for Fedora 27 64 bit and Linux Mint 18.3 64 bit Cinnamon to load. Problems with AMD have haunted me for 20 years. I am sure if we continue experimenting with command line arguments for the kernel at bootup we will find a solution.

My friend then found an old Acer Aspire One netbook. The system had an Atom N280 CPU (32 bit), 2GB RAM, and a 64GB hard disk.

Due to the limited offerings on the Fedora side (it is hard enough to convince  user to try to format with Linux, a text-only netinstall was all that Fedora offered for 32 bit), we decided to try Linux Mint 18.3 (32 bit) with a Cinnamon desktop. We encountered one problem with the install — we had to use the Tab key on startup to add the kernel command line arguments “acpi=off noapic”

Surprisingly, the system performed well — better than I expected, I remember trying to get 32 bit Fedora Linux to run on the same hardware: it ran hot, slow, and ran the fan like a leaf blower. I thought for sure that I would have to use a stripped-down desktop like XFCE, but the Cinnamon desktop ran well on the 32 bit system.

Until now, my advice has been to avoid 32 bit systems altogether — that such systems were below my junk pile threshold. The strong performance of Linux Mint 18.3 (32 bit) with a full Cinnamon desktop on such a low end system should change people’s expectations as to what is possible with a low-end system.

My friend is now able to stream media files from network file shares on the Linux server to stream media files via using VLC on iPad and Apple TV.