After nearly a year and a half of using Arch Linux as my primary desktop distribution for my desktop and its more user-friendly cousin, Manjaro, for my laptop, I ran into problems when installing a copy of VMware Workstation 9.

The .bundle installer would run for a while and mysteriously fail, leaving me with a broken VMware daemon. After some digging around, I learned that VMware Workstation depends on a Debian-like environment (a System V-style init, for starters) and getting it to work on Arch would require quite a bit of elbow grease before using it.

Being short on time, I decided to get a lightweight Debian installed on my desktop for the purposes of installing and using VMware. For me, CrunchBang 11 “Waldorf” (aka #!) was a fast, configurable, and attractive choice (I am a sucker for Flux/OpenBox distros).

Unfortunately, #! is based on the x86-64 Debian stable (Wheezy, at this time of writing) and my motherboard uses the new Haswell Z87 chipset and UEFI. Ugh. I had issues right off the bat. My Logitech M705 and K320 crash-banged (see what I did there?) while it booted and spat out the error:

logitech-djreceiver: probe of 0003:046D:C52B.0009 failed with error -32

Not good, but plugging in a wired mouse and keyboard worked around this problem. The rest of my system wasn’t so lucky. #! could not recognize the new Haswell microcode changes and gave me more errors. Audio under ALSA was glitchy. Worst of all, neither of my dual Gigabit Ethernet NICs on my motherboard worked (didn’t show up on ifconfig), so I couldn’t go online to update my kernel image and firmware. I decided to download the necessary packages on my laptop, bring ’em on over to my desktop the old-fashioned way and do the upgrade manually.

Getting dirty with Debian

On my laptop, I went to the online Debian package finder. I wanted to upgrade my kernel from stable to the backports version, so I searched for the minimum .deb packages I needed under “wheezy-backports” and transferred them to the CrunchBang PC with a spare flash drive. It’s fairly straightforward, just download the following packages:

  1. initramfs-tools
  2. linux-base
  3. linux-kbuild
  4. linux-headers
  5. linux-headers (the “common” package)
  6. firmware-linux
  7. firmware-linux-nonfree
  8. linux-image

Make sure you get the correct version of each linux-* package! This means I got linux-headers-3.10-0, linux-image-3.10-0, linux-kbuild-3.10, etc.

Check the dependencies of each before you download and do not mix versions!

These packages are to be installed in the same order listed above. I installed them with the sudo dpkg -i command in the terminal, although I suppose you could use GDebi, Synaptic, or the Ubuntu Software Center to install them graphically on other distributions.

After restarting my machine and selecting the new kernel in GRUB, my Logitech devices were recognized without problems, Nouveau loaded correctly this time, and the audio glitches were gone. Best of all, my dual Ethernet was up and running!

To make sure I would receive proper updates from backports in the future, I changed the repository in /etc/apt/sources.list from “wheezy” to “wheezy-backports”. A quick glance at Synaptic showed I had a few broken packages due to my manual changes, but after applying some updates (including the intel-microcode package), CrunchBang upgraded the broken packages for me and I was back in business, baby!

Oh, and VMware Workstation installed flawlessly on it. So we have that.

2 thoughts on “Manually upgrading Debian & friends to a newer kernel

  1. I always have a spare network card with some compatible chipset lying around for times like that. Pop that into the machine when doing new installs and you’ll have a working internet connection from the start. Then when you have the onboard ethernet working just remove the card.

    BTW, did you get audio working as it should as well with the newer kernel?

    1. Kind of. The headphone audio entry in the sound settings tends to flicker on and off perpetually when there are no headphones plugged into the front panel audio jack. As you know, headphones overrides the external speakers, so this causes my 2.1 speaker audio to stutter. Pretty nasty bug, though I can work around it by changing the analog output’s profile from “Analog Stereo Output” to any of the “Analog Surround 4.0/4.1/5.0/5.1/7.1 Output” options, which forces the system to ignore the headphones and stay on the external speakers.

      Once that’s in place, everything works great! Multichannel audio is crisp and bassy, and I haven’t had any problems from then on. It does mean I have to undo the process should I want to use a headset, however. 😉

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s