My new Starling arrived today, looking ever so cute. I played around with it for a bit, and everything seemed to be working just fine. Noticing that the package definitions were a month out of date, I told Update Notifier to check for updates and to upgrade the hundred-some-odd eligible packages. Downloading them went fine, but halfway through the installation, the machine froze solid. The screen went black with a blinking white cursor and the Caps Lock light flashed slowly. I couldn't switch to a VT, nor could I reboot with magic SysRq commands. Therefore, I'm guessing this was a kernel panic.
I hit the power button to reboot. The OS seemed to come up okay, but the keyboard and trackpad were inoperative at the login screen. I managed to get to a VT by first setting the keyboard to raw mode (Alt-SysRq-R) and then switching to TTY1 (Ctrl-Alt-F1). From there, I completed the update with `sudo dpkg --configure -a`. This worked, except it needed to download something to complete the installation of the new kernel. (I'm puzzled by this, since everything seemed to have been downloaded before the upgrade started.) So I plugged in an ethernet cord and re-ran the dpkg command.
Another reboot later and the login screen was still locked up. Luckily, the solution from this post by thomasaaron worked for me. (I ran the commands with sudo from a VT instead of using recovery mode.)
Another reboot and I could log in. But now wireless wasn't working. The network connections icon wasn't showing the wireless device at all, and `ifconfig` wasn't listing wlan0. This thread suggested that the new kernel was to blame, so I tried rebooting with an older kernel. This didn't improve anything (other than that the network connections icon listed the wireless device, but informed me that it wasn't properly configured). After a few dead ends (including reinstalling the System76 drivers), I recalled the problems I had upgrading the kernel, so I thought to reinstall those packages. I decided to reinstall the most recent linux-headers and linux-image packages (linux-headers-2.6.31-19, linux-headers-2.6.31-19-generic, and linux-image-2.6.31-19-generic, in my case) through Synaptic (right click and select "Mark for Reinstallation"). One final reboot, and everything seems to be working again.
So why am I posting this story, if everything's working?
- I wanted to check if Update Notifier is the right way to go about updating them machine. Is there a System76-specific way I should know about?
- I wanted to post my solutions in case they save someone else these headaches.
- I wanted to alert System76 to these problems, in case they can prevent them in the future.
- Finally, I have a few suggestions for mitigating these problems. I don't know if they're at all feasible, but here they are:
- System76 could perform a dist-upgrade before shipping the machine. This would both give them a chance to see these problems, as well as decrease the likelihood of users running into them later (as the users would not have as much to upgrade).
- Installing the System76 driver could trigger the reinstallation of the current kernel packages. I notice that there seems to be some additional actions hooked onto the kernel installation that seem to be related to the drivers; it might be good to ensure that this gets run when drivers are updated.
- Perhaps System76 could host their own versions of the kernel that already have these additional drivers built in, so there doesn't have to be an additional, unexpectedly late download during the upgrade process.
I hope this is of some use to someone.
Bookmarks