kobo® glo [sic] HD hacking [part 2]

With debian 7.9 safely booted the next job is to get X up running and happy.  To do that you’ll need a utility to switch the screen into auto update mode, and once you’re put that into your xserverrc script you’ll discover that the touchscreen doesn’t work: both the xorg evdev driver and the one in marek’s tree open and close the device node for the zForce driver multiple times during X start up. The kernel driver code for the zForce sends an activate command to the hardware immediately the device node is opened, but sends the deactivate command a short while after the device node is closed. So when X closes and then immediately re-opens the device there’s a race where the device can be open but with the hardware deactivated. I patched marek’s patches to the xorg driver to only open the device once. You’ll then have to fight xorg.conf to find the right form to have it load your driver:

Section "InputClass"
    Identifier "kobo multitouch"
    MatchIsTouchscreen "on"
    Driver "kobomultitouch"

After that you’ll want a utility to set the front-light and to control the (one) led.

Debian’s wireless networking scripts work out of the box with the brcmfmac driver, but you need to load sdio_wifi_pwr to turn on the power to the wifi chip.

auto wlan0
iface wlan0 inet dhcp
        pre-up modprobe sdio_wifi_pwr && sleep 2
        pre-up iptables-restore < /etc/network/iptables-rules
        post-up iwconfig wlan0 power off
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
        post-down sleep 2 && rmmod brcmfmac && rmmod sdio_wifi_pwr || true

With that the system boots and connects to wireless, and the xserver works (don’t forget to remove -nolisten tcp from the xserver startup options if you want to use X over the network).

The last thing to do is to get the the original kobo software running on top of Debian, after quite a lot of fiddling that turns out not to be too hard:

Obviously the update procedure isn’t going to work very well so you should probably go ahead and do that on (a copy of) the original SD card first.

kobo’s original software expects to mount the content partition at /mnt/onboard, but doesn’t particularly check for errors. If you want a dos partition and usb connectivity then you’ll need to replicate their three partition layout. I didn’t.

The kobo firmware starts up everything from /etc/init.d/rcS which eventually launches a program called nickel which is the kobo’s main UI.

I copied the filesystem from the first parition of their SD card into the directory /kobo on my debian SD card, then I made my own startup script which runs their code in a chroot.

All the utilities mentioned here are available in the kobo-tools git repository.

4 thoughts on “kobo® glo [sic] HD hacking [part 2]”

  1. Thanks for this two posts explaining how to install Debian. My first question is if this accelerate the ereader or it continues to have some slowness. The second one is if possible to change the nand ram memory for another bigger (~2gb) or there is a hardware bit limitation.

  2. Thanks,
    This is a great post. I am trying to chroot debian without changing the kernel. I can make the chroot and write to the framebuffer without problems.

    When I started the X server, the x server is not writing to framebuffer, I see this suspect log line:

    [ 31535.151] (II) no primary bus or device found

    Have you tried to start X server in a chroot environment without modify the kernel?

  3. Any chance you share an image of this debian system that we can dd into an SD card?
    Instructions seem to be a bit difficult to accomplish

  4. Can I just say what a comfort to discover a person that really knows what they’re talking about over the internet. You certainly know how to bring an issue to light and make it important. More people ought to read this and understand this side of the story. I was surprised you aren’t more popular given that you definitely have the gift.|

Leave a Reply

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