Compile 3.9 Kernel on Debian 7 Wheezy for Lenovo X230

Reason for compiling your own kernel

Debian Wheezy out of the box installs the Linux 3.2 kernel which was released back in January 2012. The 3.2 kernel is marked as longterm by the kernel team and will be supported until 2016. That’s probably the reason why Debian chose to release Wheezy with the 3.2 Kernel. However most newer hardware (released after January 2012) will not properly be supported by this kernel. The Intel HD4000 graphics chip in my Lenovo X230 suffers from lock-ups while using the 3.2 kernel. These problems were fixed in the 3.4 kernel (Intel provided a new graphics chip driver). The following commands will compile and install the latest available kernel from (v. 3.9.4 at the time of writing)


The following packages are needed to compile your kernel

$ sudo apt-get install kernel-package fakeroot build-essential ncurses-dev

Download the new kernel from

(replace 3.9.4 with current version number)

$ wget

Extract the archive and cd into it

$ tar xvf linux-3.9.4.tar.bz2
$ cd linux-3.9.4/

Compile the kernel

Base the kernel config on your current configuration

$ cat /boot/config-`uname -r`>.config
## OR (depending on your current kernel)
$ cat /boot/config-3.2.0-4-amd64 > .config

$ make oldconfig

Remark: you’ll be asked quite a lot of questions (newer kernel contain more options and tweaks). If in doubt, choose the default answer.

Create the kernel related debian packages

$ make-kpkg clean

Compile the kernel

$ sudo time fakeroot make-kpkg -j4 --initrd kernel_image kernel_headers

replace 4 with the amount of available cpu-cores

Install the new kernel

$ sudo dpkg -i ../linux-image-3.9.4_3.9.4-10.00.Custom_amd64.deb ../linux-headers-3.9.4_3.9.4-10.00.Custom_amd64.deb

Reboot and select the new kernel in grub


Remove Applications from Location Services in Security & Privacy on OS X 10.8

After removing an application in OSX 10.8 it still showed up in location services under the security and privacy settings in system preferences. (see picture below)
The reason is that it saves the entries in a binary plist file. You could delete the file and OSX will automatically recreate it. However you would have to re-authorize all the apps that you previously had authorized.
The following process shows how to edit the file and just remove the single application.


1. Start terminal and then sudo to a root shell

sudo -s

2. Navigate to /var/db/locationd

 cd /var/db/locationd

3. Make a backup of the clients.plist file

cp -p clients.plist

4. The plist file is in binary format and to make it editable/readable you need to convert it to xml

plutil -convert xml1 clients.plist

Edit the file

5. Use vi (vim) to edit the clients.plist file and remove the application

vi clients.plist

6. The file will likely contain many application entries. Here is the format of a single application entry (Safari in this case). The entire entry needs to be deleted. (dd for deleting complete lines in vi)  


identifier "" and anchor apple

7. Convert the clients.plist file back to binary format

plutil -convert binary1 clients.plist

8. Restart locationd daemon by force-killing it. Launchd will automatically restart the daemon

killall locationd

In case things go badly, then copy back the original file and restart locationd

cp -p clients.plist
killall locationd

This should remove the invalid entries from the security and privacy tab in system preferences.


MacOS X Mountain Lion parental control running at near 100%

After recently upgrading to Mountain Lion I now have the process named “parentalcontrolsd” running 24/7 even though I do NOT use any parental controls.

58174 parentalcontrolsd root 98.7 9 72.3 MB Intel (64 bit) 138.4 MB

Simple work-around: remove all settings from parental controls

  1. Disable parental controls on all users.
  2. Delete the folder /Library/Application Support/Apple/ParentalControls
  3. Restart the Mac
  4. Enable parental controls again (if needed).

Monitor HDD Temperatures in Debian

Modern storage drives (harddisk/ssd) support S.M.A.R.T (Self-Monitoring, Analysis, and Reporting Technology) and allow to examine the current drive status through a standardized interface. The design goal during S.M.A.R.T’s development was to anticipate drive failures before they actually happen. HDDTemp utility can read out the temperature of your hard drive by reading the data from S.M.A.R.T

Install hddtemp

To install hddtemp under Debian/Ubuntu enter the following command into a terminal.

$ sudo apt-get install hddtemp

You can also perform source code installation. Download the source code tar ball here.

$ tar -jxvf hddtemp-0.3-beta15.tar.bz2
$ cd hddtemp-0.3-beta15
$ ./configure
$ make
$ sudo make install

Monitor hard disk temperature

To see the temperature for /dev/sda, enter the following command:

# hddtemp /dev/sda

/dev/sda: Hitachi HDS723020BLA642: 36°C
# hddtemp /dev/sd[a-k]

/dev/sda: Hitachi HDS723020BLA642: 37°C
/dev/sdb: Hitachi HDS723020BLA642: 38°C
/dev/sdc: Hitachi HDS723020BLA642: 38°C
/dev/sdd: Corsair Force 3 SSD: 128°C
/dev/sde: WDC WD2003FYYS-02W0B1: 37°C
/dev/sdf: WDC WD2003FYYS-02W0B1: 37°C
/dev/sdg: WDC WD2003FYYS-02W0B1: 39°C
/dev/sdh: Hitachi HUA723020ALA640: 35°C
/dev/sdi: Hitachi HUA723020ALA640: 35°C
/dev/sdj: WDC WD2003FYYS-02W0B1: 41°C
/dev/sdk: WDC WD2003FYYS-02W0B1: 41°C