The long goodbye: Leaving Mac OS X for Linux

I’ve been a Mac user for almost twenty years. While I’m still not quite ready to move away from it completely, I’ve taken the first steps lately: I’ve bought a new Thinkpad E540 and got started setting up GNU/Linux. My first tries with Debian Wheezy were painful and after a few installations I decided to step back a little and restarted with Ubuntu 14.04 LTS. After all the trouble with Debian, it was incredibly easy to get a working system running. Some people don’t like Ubuntu because it supports installing proprietary drivers and there’s been some privacy related issues in the past. While I think those concerns are valid, Ubuntu to me is currently the best option if you want to break away from the Windows or Mac ecosystem. It’s also possible to configure Ubuntu in a way that most of those concerns are addressed.

Here’s some of the problems I had and a few noteworthy discoveries I made so far.

Boot from CD/DVD

Using the internal DVD drive of my Thinkpad, I wasn’t able to boot from the installation DVD I downloaded. This happened both for Debian and Ubuntu, so my suspicion is more on the hardware side. I thought that maybe Secure Boot or some other BIOS configuration maybe prevents me booting to an alternate operating system, but having disabled what I could find there, I still couldn’t boot from the internal drive. Connecting an external USB drive I have solved the problem. I’ll have to do some more research why this doesn’t work.

Update: Although it has not been a pressing problem I’ve digged around some more recently and found this forum entry. It turns out I was on the right track, but I possibly overlooked a setting back then. These are the important BIOS options:

BIOS-
Security -> Secure Boot/ Disable.
Startup -> UEFI/Legacy Boot ->Both
Startup ->UEFI/Legacy Boot ->UEFI/Legacy Boot Priority ->Legacy First

Also you need to make sure that the DVD drive comes first under boot order:

Startup ->Boot ->[move ATAPTI CD0 xxxx above the HDD]

Wireless LAN

Despite some efforts to get Wifi running on Debian, I was never able to get it working. Ubuntu seemed to work out of the box: the network adapter was available, wifi networks were displayed and connecting to a network also worked. However after connecting, initially the connection would be slow and be dropped after some time. Then eventually I couldn’t connect at all. Problems with wifi adapters seem to be common, so there’s a lot of results that you find when searching for solutions. My Thinkpad comes with a Intel Wireless 7260 Wifi adapter and I eventually found this post on askubuntu. While the accepted answer didn’t work for me, another suggestion pointed to specific driver versions for this adapter provided by kernel.org. Ubuntu 14.04 runs on a 3.16.0 kernel, so I downloaded the most recent suitable version (3.14.9+). Before installing the new wifi firmware, I made a backup copy of the existing one. After a restart the wifi worked.

sudo cp /lib/firmware/iwlwifi-7260-9.ucode ~/Desktop
sudo cp iwlwifi-7260-9.ucode /lib/firmware/

Update: After a few days running the new driver version, the situation is definitly a lot better, but I still experienced a problem where the wifi adapter wouldn’t connect to the network anymore after some time. In the syslog I could see the following message:

kernel: [  207.139800] wlan0: authenticated
kernel: [  207.440410] iwlwifi 0000:05:00.0: No association and the time event is over already
kernel: [  207.440442] wlan0: Connection to AP 24:65:11:7a:bd:1d lost
kernel: [  212.031291] wlan0: aborting authentication with 24:65:11:7a:bd:1d by local choice (Reason: 3=DEAUTH_LEAVING)
Apr 10 13:42:03 lnx-rpr NetworkManager[1264]: <info> (wlan0): supplicant interface state: authenticating -> disconnected
NetworkManager[1264]: <info> (wlan0): supplicant interface state: disconnected -> scanning
NetworkManager[1264]: <warn> Activation (wlan0/wireless): association took too long, failing activation.

Update 2: I don’t remember where I found this, but someone suggested that power management might be a problem. You can turn it of by creating the script /etc/pm/power.d/wireless with the following content:

#!/bin/sh
/sbin/iwconfig wlan0 power off

don’t forget to make the file executable (chmod +x /etc/pm/power.d/wireless). With this configuration I have not experienced any wifi related problems for a few days now.

Suspend/Hibernate

I’ve read before that some people  had trouble getting Suspend (-to-Ram) and Hibernate (-to-Disk) running properly. I had those problems as well: When requesting to suspend, Ubuntu seemed to go to sleep. After two or three seconds however the fan would start spinning again with the Thinkpad LED slowly blinking. Moreover, I couldn’t wake up my notebook again and had to reboot it. After some searching I found a bug report on launchpad.net that suggested that turning of USB 3.0 support in the BIOS solved the problem for some people. After restarting into the BIOS (press F-12 on startup) and disabling USB 3.0 support, Ubuntu now correctly goes to sleep and wakes back up again when requested. I don’t have any USB 3.0 devices currently, so this solution is good enough for now.

Managing passwords

One of the key topics that would decide if a move to Linux was feasible was finding a good replacement for 1Password, a password manager I’ve been using on my Mac. The obvious alternative in the Linux ecosystem is Keypass, but I needed a solution that works cross-plattform, since I will still be using a Mac at work. KeypassX which is compatible with Keypass didn’t really feel nice and Browser integration is virtually non-existent.

My solution for this is Lastpass, which I’ve been using sometime back. It works on all major plattforms, even mobile, and the user experience is good enough. Sure you are trusting a company with all your passwords, but I currently don’t see a better alternative for my requirements.

Soundblaster Wireless

For some time, I’ve been using a Creative Soundblaster Wireless to connect to my speakers. I was somewhat concerned if this device would work, but I didn’t even have to install additional drivers for it. That was a very enjoyable experience.

Upgrading Trusty Tahr to Utopic Unicorn

The Ubuntu webpage prominently features version 14.04 LTS (“Trusty Tahr”) in its download section because it’s a Long Term Support release. However there’s a newer version 14.10 (“Utopic Unicorn”) available. Utopic Unicorn delivers bugfixes and some newer versions of bundled software. Normally, a LTS version will only update to another LTS version. However, in the system preferences you can instruct Ubuntu to update to other versions as well.

Sadly, when the updating process finished, I couldn’t start the Unity desktop environment anymore. It would stop with some Nouveau related graphics driver messages and then do nothing. I rebooted into recovery mode (hold the Shift key to get a boot menu), enabled networking and then from a root command line initiated another update process (apt-get update && apt-get dist-upgrade). After that, I’m again able to login to Unity.

I had encountered the same problem before when I installed Debian and switched to a newly compiled 3.19.2 kernel. Back then I didn’t figure out a way to repair my system.

Update: Using Ubuntu 14.10 for some time it seemed to me that it’s quite unstable. I experienced application crashes and sometimes the system would freeze for a few seconds. I therefore decided to reinstall 14.04 and stick with it for now.

Interim conclusion

Keeping in mind that I only used Ubuntu for a few days now I’m still pretty impressed so far. The joy of Ubuntu is that a lot of things just work, which is similar to the experience that most people like about Mac OS X. If you don’t require the latest updates, then Ubuntu to me seems like a very stable system. I think that my current setup is one that most users who have some interest in their computer should be able to get running and be happy with. While I will probably be using both platforms for some time, eventually I hope to complete the move.

Leave a Reply

Your email address will not be published. Required fields are marked *