Just got a Kobo Touch (905C), and after manually updating it, I found this file and holy shit kobo <3
@krutonium ahhh ebook reader

@fuchsiii Ye, and this is an OOOOLD one. No Back or Frontlight, so you need to be in light to use it. I will say in terms of Firmware it is alarmingly (this is refreshing) easy to mess with.

When you unplug it from a computer, it will literally check for a KoboRoot.tgz file and, without any checksums, or signatures, apply that to the devices root. You can thus use this to patch any file on the entire filesystem any way you wish. Official firmware updates are just that except they include every file, which does unmod your device, but it's incredibly flexable.

You have root, and you can do with it what you please! Apparently if you brick it, you can even recover it by putting said file on an SDCard and it'll flash from that, so as long as you don't fuck around with partitions, you're solid.

(Apparently you can also just boot from the SD Card as well)

@fuchsiii Addendum: It just runs a trimmed down Linux. You can edit the init to run your own scripts. You can run binaries compiled for like, Ubuntu. Yes, it is that easy.
@krutonium that actually sounds like a very fun toy ;)

@fuchsiii in fact this seems simple enough to get @OS1337 ported onto.

@krutonium can you get me some system specs? Ideally a full lshw rundown but for the most part just the built-in hardware (SoC, RAM, WiFi, Storage, ...) would be fine.

Krutonium:// (@krutonium@treehouse.systems)

@fuchsiii@oxytodon.com Ye, and this is an OOOOLD one. No Back or Frontlight, so you need to be in light to use it. I will say in terms of Firmware it is *alarmingly* (this is refreshing) easy to mess with. When you unplug it from a computer, it will literally check for a KoboRoot.tgz file and, without any checksums, or signatures, apply that to the devices root. You can thus use this to patch any file on the entire filesystem any way you wish. Official firmware updates are just that except they include every file, which does unmod your device, but it's *incredibly* flexable. You have root, and you can do with it what you please! Apparently if you brick it, you can even recover it by putting said file on an SDCard and it'll flash from that, so as long as you don't fuck around with partitions, you're solid. (Apparently you can also just *boot* from the SD Card as well)

Treehouse Mastodon
@fuchsiii @krutonium Cuz I can then put it on the architectures wishlist for @OS1337 ...
OS1337/docu/ideas/architectures.tsv at main · OS-1337/OS1337

OS/1337 Project . Contribute to OS-1337/OS1337 development by creating an account on GitHub.

GitHub
@kkarhan @fuchsiii @OS1337 I'll see what I can do 👍

@krutonium @fuchsiii thx m8.

Personally I think @OS1337 with like a bluetooth / USB - connected keyboard would be a good fit for such a screen.

E-Ink for Productivity: An Introduction

YouTube

@kkarhan @fuchsiii @OS1337 @TechConnectify I don't think it has bluetooth, but it does have Wifi. The Network Stack on it seems to choke on my Wifi Network; which is odd. It can't find my Gateway from what I can tell, but no other device has this issue. I'm also not sure that it has OTG on the USB port so a physical keyboard might not be possible.

(The device itself doesn't give basically any information on what the issue is unless you SSH in)

@krutonium @fuchsiii @TechConnectify I mean, that would make it even more interesting to put @OS1337 on, because then one merely setups's some */etc/init` file and just let it display some stuff.

  • Worst case I'd put #dropbear on it and merely run like cat and/or tail on it and let it display like a text file (either on a #microSD or remotely)...

If it has like a microSD slot, then that would be preferable.

@kkarhan @fuchsiii @TechConnectify @OS1337 It does! Apparently the slightly older versions of it had internal MicroSD slots, this one just has it hanging out on the left side.

@krutonium @fuchsiii @TechConnectify So I guess ideally one were to find a method to make it boot the #microSD and chug @OS1337 on it for ease of testing.

But if this is your device and it literally has like microSD pads onboard then it'll be even easier to just drop in a minimalist Linux like _OS/1337...

#OS1337

Kobo Touch N905C Weiß, gut erhalten, 6 Zoll, 2GB | eBay.de

Kobo Touch N905C Weiß, gut erhalten, 6 Zoll, 2GB Ladekabel nicht enthalten Verpackungsregister Registrierungsnummer DE5121524480803 Die Benutzung der Warenzeichen dient lediglich zur eindeutigen Identifikation der Ware und soll keine Verletzung der Schutzrechte darstellen. Nicht für Kinder unter drei Jahren geeignet. Hinweise zur Batterieentsorgung: Im Zusammenhang mit dem Vertrieb von Batterien oder mit der Lieferung von Geräten, die Batterien enthalten, sind wir verpflichtet, Sie auf folgendes hinzuweisen: Sie sind zur Rückgabe gebrauchter Batterien als Endnutzer gesetzlich verpflichtet. Das Symbol der durchgekreuzten Mülltonne bedeutet, dass die Batterie nicht in den Hausmüll gegeben werden darf.

eBay.de

@kkarhan @fuchsiii @TechConnectify @OS1337 That looks like the one; and it straight up has a slot on the left side of the device, not pictured there. 2GB of Onboard Storage, 1GB of user usable space, 1GB of RAM.

[root@kobo ~]# ls /bin
antiword cp dosfsck getfacl ip lsattr netstat recode-sr-latin stat uname
ash cpio dumpkmap getfattr ipaddr lzop ngettext rev stty uncompress
attr cttyhack echo getopt ipcalc md5sum nice rm su unrtf
autopoint date ed gobject-query iplink memtool ntpd rmdir sync usleep
base64 dbus-cleanup-sockets egrep grep iproute mkdir ntx_hwconfig rtctest.out sz vcom_store
busybox dbus-daemon envsubst gunzip iprule mkdosfs ocotp_test run-parts tar vi
cat dbus-launch epd_ctrl gzip iptunnel mknod pidof rz touch watch
catv dbus-monitor epdc_test hostname jpegtran mktemp ping scriptreplay touch_simulate wlarm_le
chacl dbus-send evdev-dump hush kill more ping6 sed true wlfmac1.28_arm
chattr dbus-uuidgen evtest i2cget kobo_config.sh mount pipe_progress setarch ts_calibrate wpa_cli
chgrp dd false i2cset linux32 mountpoint printenv setfacl ts_harvest wpa_passphrase
chmod df fdflush iconv linux64 mpstat ps setfattr ts_print wpa_supplicant
chown djpeg fgrep ioctl ln msh pwd setserial ts_print_raw wrjpgcom
cjpeg dmesg fsync ionice login mt qqwing sh ts_test xmlwf
conspy dnsdomainname get_input_key iostat ls mv rdjpgcom sleep umount zcat

Here's an ls of the /bin directory

@krutonium that should be ample of resources for @OS1337 to work on.

  • I'm shure they merely took some random #BusyBox version and just cut out most functionality of it.

I'd not be surprised if the #SoC in it could run #toybox if you chug it onto it...

https://landley.net/bin/toybox/latest/

Index of /bin/toybox/latest

@kkarhan @OS1337 Current trick is finding the correct CPU arch
@kkarhan @OS1337 armv5l seems to work at least.

@krutonium @OS1337 as I guessed, cuz I'd not expect them to have put anything more powerful than a #Pi0W in it.

  • The "huge" amounts of #RAM propably only exist to allow loading entire #eBooks and #Graphics into it and reduce #SD access...
Kevin Karhan :verified: (@kkarhan@infosec.space)

@krutonium@treehouse.systems @OS1337 yeah... I guess you'll likely have to see if there's a #teardown of it or carefully look inside of it. - I'd assume some cheapo #ARMv5 or similar...

Infosec.Space
@kkarhan @OS1337 I mean in absolute fairness I own an eeepc from 2012 that came with 1GB of RAM so
@kkarhan @OS1337 Currently trying to work out if I can get a statically built copy of lshw for armv5
@kkarhan @OS1337 armv7l binary worked as well
@kkarhan @OS1337 I'm currently cross-compiling lshw
@kkarhan @OS1337 I feel like this might be faster if I was at my Ryzen 5800X3D box instead of my Intel 4720HQ laptop lol

@krutonium @OS1337 yeah....

Guess why @fuchsiii has a 7950X at her disposal: To compile #wine faster...

@kkarhan @OS1337 @fuchsiii Good news is if I have to build it again, I have a flake I can just yeet to a bigger box.

@kkarhan @OS1337 @fuchsiii https://gist.github.com/Krutonium/0538999e08fffef34b8e075f7de6e7f0

(Had to edit it to fix a mistake, builds a functional lshw now though!)

flake.lock

GitHub Gist: instantly share code, notes, and snippets.

Gist
@kkarhan @OS1337 @fuchsiii So according to this, a lot of the common specs posted online about it are actually wrong! Only 256MB of RAM, and 4GB of Storage.
GitHub - Krutonium/StaticBinariesForKobo: A Flake that builds static binaries suitable for running on a Kobo eBook Reader.

A Flake that builds static binaries suitable for running on a Kobo eBook Reader. - Krutonium/StaticBinariesForKobo

GitHub

@krutonium that's nifty...

If you run out of Ideas what to build, consider this wishlist for @OS1337 packages...

pkgs/docs/WISHLIST.tsv at main · OS-1337/pkgs

OS/1337 Package Repository. Contribute to OS-1337/pkgs development by creating an account on GitHub.

GitHub
@kkarhan @OS1337 My Kobo has a more recent build of Nano than my Laptop. Lmao.
@kkarhan @OS1337 Oh yeah thing I noticed; if you don't apply them as an "update" the system will undo any changes you make to the root filesystem when you reboot as well. At least, the ones I tried.

@krutonium interesting, so it's a semi-persistent method.

Still, having #RCE level access means one can build @OS1337 and propably shove that over as root filesystem…

Problem is rather to have the full hardware specs and potential (non-mainline) drivers loaded

@kkarhan @OS1337 I did link the lshw results earlier; and the OS comes with a chroot binary already.

uname -r is 2.6.35.3-850-gbc67621+
and the loaded kernel modules are

dhd 137565 0 - Live 0x7f0d4000
sdio_wifi_pwr 490 0 - Live 0x7f0ce000
lowmem 936 0 - Live 0x7f000000 (P)

@krutonium @OS1337 owo!

Now one needs to figure out the boot process and how to make it go brrr...

@kkarhan @OS1337 https://ereaderfiles.kobo.com/firmwares/kobo4/Aug2025/kobo-update-4.38.23429.zip

Honestly I bet it's not too hard to figure out. And yes that date of August 2025 is actually accurate. For a device that came out in 2011 and is running that old of a kernel.

Zip has Full Disk Image (ish) + uBoot.

@kkarhan @OS1337 I did some quick searching, dhd is an open source wifi driver, sdio_wifi_pwr is, lets be honest, probably exactly what it says on the tin, and lowmem... Not sure but I doubt it's strictly required.

So given the relative lack of extra modules, I'd gamble that a modern kernel might just... work.

@krutonium @OS1337 so the only trick is to give it a different kernel & initramfs at boot...

  • Nifty...

I assume they never updated the Kernel since release cuz they never had any reason to.

  • This ain't a Desktop or something where they process credit card details or other private info on.
@kkarhan @OS1337 ...Technically you're right, but it does have a store through which you can purchase books from them.

@krutonium @OS1337 yes, but you don't setup like payment on the device itself.

  • It does link to your account but besides like a device-token to authenticate it for an account nothing's stored on them. No payment details nor anything...

@krutonium Still thanks for your writeup.

The trick getting @OS1337 to be useable on it would likely be just a #uBoot config & drivers to spit out the terminal on the #eInk screen.

  • Problem may just be to get a keyboard connected if it doesn't support #USB - #OTG and an accompaining USB-Hub.

Reminds me of @landley 's words re: #Android development that some impoverished person should be able to develop their apps with anything they can get get Android to boot spit out a screen and accept inputs from a keyboard and maybe mouse.

#OS1337

Krutonium:// (@krutonium@treehouse.systems)

@kkarhan@infosec.space @OS1337@infosec.space @fuchsiii@oxytodon.com https://github.com/Krutonium/StaticBinariesForKobo

Treehouse Mastodon

@krutonium @landley I mean, Ideally @OS1337 would be come a simpler and better alternative to #LinuxFromScratch or #YoctoLinux / #YoctoProject when it comes to getting started on a device.

Cuz #RaspberryPi de-facto monopolized non-#amd64 / non-#ix86 - #SBCs because they actually give a shit and publish #documentation!

  • So whilst they certainly don't support other OSes than #RaspberryPiOS, they don't just tell folks like @geerlingguy to not pester them with questions in their Forums.
@krutonium @OS1337 So yeah, I'd propably put that #eBookReader on the Architecture Wishlist since it should have enough juice to be at least useable as an #SSH #Terminal...
OS1337/docu/ideas/architectures.tsv at main · OS-1337/OS1337

OS/1337 Project . Contribute to OS-1337/OS1337 development by creating an account on GitHub.

GitHub

@kkarhan @krutonium @OS1337 @geerlingguy Arnd Bergman is lobbying to remove all 32 bit support. (He works for arm and 32-bit arm is going out of patent.)

If he succeeds, or they make it so you can't build a usable Linux kernel without rust, I will be doing another "stay on the last GPLv2 release" thing and either retire or start caring about BSD or something.

(Seriously, the Aldi's down the street is hiring. My commute would be like 2000 steps and I'd get cardio and maybe even dental.)

@landley @kkarhan @OS1337 @geerlingguy Is there no way to compile Rust targeting 32 bit?
@landley @krutonium @geerlingguy IDK about #ALDI your area but here they pay >€2/hr above minimum wage and have 6 weeks PTO annually + paid overtime balancing.
Add Took Touch 905C by Krutonium · Pull Request #23 · OS-1337/OS1337

This device shouldn't actually be too hard to get working; The firmware files are available from Nook themselves, and the whole system can be updated using an unsigned archive.

GitHub