05-15-2016, 07:44 PM | #1 |
Junior Member
Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
Broken screen Aura HD, want to use as headless lamp stack
Hi I have spent a while trying to get linux installed on my Kobo aura HD. I want to try to use it as a headless lowpower home LAMP server.
Reason being is that the screen is broken, so its next to useless as a reader. I have had success USB telnet into it thanks to the hacks posted but the debian images I have tried I failed to get working: Ive tried the external SD debian/android image and the Debian .ext3 hack but somehow no success. So has anyone got suggestions of either how to get the wifi connected via telnet, install lamp into the kobo or get debootstrap working so i can install debian or something similar. Im pretty new to linux. Or if anyone as a KOBO aura HD image that has debian/linux working without need to dealwith busybox? Playing around with the guides and hack so far has been a great learning experience so far btw folks, thanks for all your efforts! |
05-16-2016, 02:50 PM | #2 |
Linux User
Posts: 2,279
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
Does the touchscreen still work? Given telnet/ftp access you could fbgrab and view it on another PC and get wifi running the regular way.
|
05-19-2016, 07:41 AM | #3 |
cosiñeiro
Posts: 1,271
Karma: 2200049
Join Date: Apr 2014
Device: BQ Cervantes 4
|
for a headless option you should setup usbnet at boot (instead of usb storage), don't start nickel and run desired web stack. If you wish to open your device I can provide you working binaries for lighttpd & php and installation instructions.
You should be able to mount rootfs on SD card on your computer (it's ext2 so you'll need a linux pc/vm) |
05-20-2016, 02:21 AM | #4 |
Junior Member
Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
|
05-20-2016, 09:44 PM | #5 | |
Junior Member
Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
Quote:
|
|
05-21-2016, 03:30 PM | #6 |
cosiñeiro
Posts: 1,271
Karma: 2200049
Join Date: Apr 2014
Device: BQ Cervantes 4
|
|
05-21-2016, 08:55 PM | #7 | |
Junior Member
Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
Quote:
I can see: 1. an unallocated 9.5MiB. 2. 256MiB ext4 partition labeled rootfs 3. 256MiB ext4 partition labeled recoveryfs 4. 3.18 GB fat32 partition labeled KOBOeReader I assume rootfs is the partiton running busybox and is accessible via FTP when I telnet in from USB networking. So, the recoveryfs partition, is that the one you want me to pull the file from? Both ext4 partitions have /etc/init.d/rcS file. |
|
05-21-2016, 08:58 PM | #8 |
Grand Sorcerer
Posts: 24,907
Karma: 47303748
Join Date: Jul 2011
Location: Sydney, Australia
Device: Kobo:Touch,Glo, AuraH2O, GloHD,AuraONE, ClaraHD, Libra H2O; tolinoepos
|
|
05-21-2016, 09:00 PM | #9 | |
Grand Sorcerer
Posts: 24,907
Karma: 47303748
Join Date: Jul 2011
Location: Sydney, Australia
Device: Kobo:Touch,Glo, AuraH2O, GloHD,AuraONE, ClaraHD, Libra H2O; tolinoepos
|
Quote:
|
|
05-21-2016, 09:01 PM | #10 |
Junior Member
Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
the rootsf version:
Code:
#!/bin/sh PRODUCT=`/bin/kobo_config.sh`; [ $PRODUCT != trilogy ] && PREFIX=$PRODUCT- mount -o remount,noatime,nodiratime /dev/mmcblk0p1 / PLATFORM=freescale if [ `dd if=/dev/mmcblk0 bs=512 skip=1024 count=1 | grep -c "HW CONFIG"` == 1 ]; then PLATFORM=ntx508 fi if [ $PLATFORM == freescale ]; then if [ ! -s /lib/firmware/imx/epdc_E60_V220.fw ]; then mkdir -p /lib/firmware/imx dd if=/dev/mmcblk0 bs=512K skip=10 count=1 | zcat > /lib/firmware/imx/epdc_E60_V220.fw sync fi fi PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib: runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel for i in /proc /dev /root /tmp /sys /mnt/sd /mnt/onboard /mnt/user /var/lib /var/log /var/run /lib/modules/`uname -r`; do [ ! -d $i ] && mkdir -p $i done; /bin/mount -t proc none /proc /bin/mount -t tmpfs none -o size=16m /tmp /bin/mount -t tmpfs none /dev /bin/mount -t tmpfs none -o size=16k /var/lib /bin/mount -t tmpfs none -o size=16k /var/log /bin/mount -t tmpfs none -o size=128k /var/run /bin/mount -t sysfs none -o size=500k /sys for i in /var/run/dbus /var/lib/dbus; do mkdir -p $i done mkfifo /tmp/nickel-hardware-status rm -rf /etc/udev/rules.d/70-persistent-net.rules echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug /sbin/udevd -d /sbin/udevadm control --env=STARTUP=1 /sbin/udevadm trigger /sbin/udevadm settle --timeout=2 /sbin/udevadm control --env=STARTUP= ( usleep 400000; /etc/init.d/on-animator.sh ) & dosfsck -a -w /dev/mmcblk0p3 mount -t vfat -o iocharset=utf8 /dev/mmcblk0p3 /mnt/onboard rm -rf /mnt/onboard/fsck* rm -rf /mnt/onboard/FSCK* rm -rf /usr/local/Kobo/db.tgz echo -n 8192 > /proc/sys/vm/min_free_kbytes echo -n 67108864 > /proc/sys/kernel/shmmax if [ ! -e /mnt/onboard/.kobo ]; then mkdir -p /mnt/onboard/.kobo tar zxf /usr/local/Kobo/db.tgz -C /mnt/onboard sync echo "Decompressed database" fi if [ -e /mnt/onboard/.kobo/Kobo.tgz ]; then zcat /mnt/onboard/.kobo/Kobo.tgz > /dev/null && tar zxf /mnt/onboard/.kobo/Kobo.tgz -C /usr/local/Kobo/ rm /mnt/onboard/.kobo/Kobo.tgz echo "Done upgrading..." fi if [ -e /mnt/onboard/.kobo/KoboRoot.tgz ]; then killall on-animator.sh zcat /etc/images/$PREFIX\ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic /etc/init.d/update-animator.sh & zcat /mnt/onboard/.kobo/KoboRoot.tgz > /dev/null && tar zxf /mnt/onboard/.kobo/KoboRoot.tgz -C / if [ -e /mnt/onboard/.kobo/upgrade ]; then /etc/init.d/upgrade-wifi.sh rm -rf /mnt/onboard/.kobo/upgrade fi rm /mnt/onboard/.kobo/KoboRoot.tgz killall update-animator.sh echo "Done upgrading..." zcat /etc/images/$PREFIX\ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic zcat /etc/images/$PREFIX\reboot.raw.gz | /usr/local/Kobo/pickel showpic sync reboot fi ( /usr/local/Kobo/pickel disable.rtc.alarm if [ ! -e /etc/wpa_supplicant/wpa_supplicant.conf ]; then cp /etc/wpa_supplicant/wpa_supplicant.conf.template /etc/wpa_supplicant/wpa_supplicant.conf fi echo 1 > /sys/devices/platform/mxc_dvfs_core.0/enable /sbin/hwclock -s -u ) & INTERFACE=wlan0 WIFI_MODULE=ar6000 if [ $PLATFORM == ntx508 ]; then INTERFACE=eth0 WIFI_MODULE=dhd fi export INTERFACE export WIFI_MODULE export QWS_MOUSE_PROTO="tslib_nocal:/dev/input/event1" export QWS_KEYBOARD=imx508kbd:/dev/input/event0 export QWS_DISPLAY=Transformed:imx508:Rot90 export NICKEL_HOME=/mnt/onboard/.kobo export LD_LIBRARY_PATH=/usr/local/Kobo export WIFI_MODULE_PATH=/drivers/$PLATFORM/wifi/$WIFI_MODULE.ko export LANG=en_US.UTF-8 export UBOOT_MMC=/etc/u-boot/$PLATFORM/u-boot.mmc export UBOOT_RECOVERY=/etc/u-boot/$PLATFORM/u-boot.recovery /bin/dbus-uuidgen > /var/lib/dbus/machine-id /bin/dbus-daemon --system & export DBUS_SESSION_BUS_ADDRESS=`/bin/dbus-daemon --session --print-address --fork` /usr/local/Kobo/hindenburg & /mnt/onboard/run.sh & mkdir -p /dev/pts mount -t devpts devpts /dev/pts /usr/local/Kobo/nickel -qws & ( if [ -e /dev/mmcblk1p1 ]; then ACTION=add DEVNAME=/dev/mmcblk1p1 /usr/local/Kobo/udev/sd fi ) & /bin/busybox insmod /drivers/ntx508/usb/gadget/arcotg_udc.ko /bin/busybox insmod /drivers/ntx508/usb/gadget/g_ether.ko |
05-21-2016, 09:03 PM | #11 |
Junior Member
Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
the recoveryfs file:
Code:
#!/bin/sh PRODUCT=`/bin/kobo_config.sh`; [ $PRODUCT != trilogy ] && PREFIX=$PRODUCT- PLATFORM=freescale if [ `dd if=/dev/mmcblk0 bs=512 skip=1024 count=1 | grep -c "HW CONFIG"` == 1 ]; then PLATFORM=ntx508 fi PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib: runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel for i in /proc /dev /root /tmp /sys /mnt/root /mnt/sd /mnt/onboard /mnt/user /var/lib /var/log /var/run /lib/modules/`uname -r`; do [ ! -d $i ] && mkdir -p $i done; /bin/mount -t proc none /proc /bin/mount -t tmpfs none /dev /bin/mount -t sysfs none -o size=500k /sys echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug /sbin/udevd -d /sbin/udevadm control --env=STARTUP=1 /sbin/udevadm trigger /sbin/udevadm settle --timeout=2 /sbin/udevadm control --env=STARTUP= ( usleep 400000; /etc/init.d/on-animator.sh ) & echo ch 3 > /sys/devices/platform/pmic_light.1/lit echo cur 1 > /sys/devices/platform/pmic_light.1/lit echo bp 5 > /sys/devices/platform/pmic_light.1/lit echo dc 5 > /sys/devices/platform/pmic_light.1/lit echo ch 4 > /sys/devices/platform/pmic_light.1/lit echo cur 1 > /sys/devices/platform/pmic_light.1/lit echo bp 5 > /sys/devices/platform/pmic_light.1/lit echo dc 5 > /sys/devices/platform/pmic_light.1/lit echo ch 5 > /sys/devices/platform/pmic_light.1/lit echo cur 1 > /sys/devices/platform/pmic_light.1/lit echo dc 5 > /sys/devices/platform/pmic_light.1/lit echo bp 5 > /sys/devices/platform/pmic_light.1/lit echo -n 8192 > /proc/sys/vm/min_free_kbytes UBOOT=/upgrade/$PLATFORM/u-boot.bin KERNEL=/upgrade/$PLATFORM/uImage if [ $PLATFORM == ntx508 ]; then PCB=`ntx_hwconfig -s -p /dev/mmcblk0 PCB` RAM=`ntx_hwconfig -s -p /dev/mmcblk0 RAMType` RAM_SIZE=`ntx_hwconfig -s -p /dev/mmcblk0 RamSize` RAM_SIZE=`echo $RAM_SIZE | awk '{print $RAM_SIZE-MB}'` NEW_UBOOT=/upgrade/$PLATFORM/u-boot_mddr_$RAM_SIZE-$PCB-$RAM.bin [ -e $NEW_UBOOT ] && UBOOT=$NEW_UBOOT NEW_KERNEL=/upgrade/$PLATFORM/uImage-$PCB [ -e $NEW_KERNEL ] && KERNEL=$NEW_KERNEL fi mount /dev/mmcblk0p3 /mnt/user echo 3 > /proc/sys/vm/drop_caches; sleep 2 [ -e /mnt/user/.kobo/KoboRecovery.tgz ] && ( zcat /mnt/user/.kobo/KoboRecovery.tgz > /dev/null && tar zvxf /mnt/user/.kobo/KoboRecovery.tgz -C /upgrade && rm -rf /mnt/user/.kobo/KoboRecovery.tgz ) umount /mnt/user && sync && sync /etc/init.d/upgrade-generic.sh $UBOOT TOTALLY_NOT_USED $KERNEL mmcblk0 echo 3 > /proc/sys/vm/drop_caches; sleep 2 mkfs.ext4 -L rootfs -m 0 /dev/mmcblk0p1 && sync && sync mkfs.vfat -n KOBOeReader /dev/mmcblk0p3 && sync && sync mount -o norelatime,noatime,nodiratime /dev/mmcblk0p1 /mnt/root echo 3 > /proc/sys/vm/drop_caches; sleep 2 ( zcat /upgrade/fs.tgz > /dev/null && tar zvxf /upgrade/fs.tgz -C /mnt/root) || reboot umount /mnt/root && sync && sync mount /dev/mmcblk0p3 /mnt/user echo 3 > /proc/sys/vm/drop_caches; sleep 2 ( zcat /upgrade/db.tgz > /dev/null && tar zvxf /upgrade/db.tgz -C /mnt/user) || reboot umount /mnt/user && sync && sync killall on-animator.sh /usr/local/Kobo/pickel disable.rtc.alarm zcat /etc/images/$PREFIX\ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic zcat /etc/images/$PREFIX\ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic sleep 1 zcat /etc/images/$PREFIX\my_first_time.raw.gz | /usr/local/Kobo/pickel showpic dd if=/etc/u-boot/$PLATFORM/u-boot.mmc of=/dev/mmcblk0 bs=128K seek=6 count=1 && sync && sync echo ch 3 > /sys/devices/platform/pmic_light.1/lit echo cur 0 > /sys/devices/platform/pmic_light.1/lit echo ch 4 > /sys/devices/platform/pmic_light.1/lit echo cur 0 > /sys/devices/platform/pmic_light.1/lit echo ch 5 > /sys/devices/platform/pmic_light.1/lit echo cur 0 > /sys/devices/platform/pmic_light.1/lit sleep 1 poweroff |
05-29-2016, 01:37 PM | #12 |
cosiñeiro
Posts: 1,271
Karma: 2200049
Join Date: Apr 2014
Device: BQ Cervantes 4
|
Great!!!!
I'm moving from my house these days, so my dev machine is off right now. However you should consider two things before starting: 1: if you want a -true- headless server maybe you don't need kobo software at all and you can skip the (user) fat32 partition - and maybe the recovery partition - and use ext2 instead (expand it to the size of your sdcard) 2: if you want a -true- server you'll need iptables support (and maybe other things like nfs/smb sharings and so on). For this we need to rebuild the kernel. 1 is easy to achieve using gparted, but for skipping the recovery partition we need to tinker with u-boot. I downloaded sources and look the code for mx50_rdp_mddr_512.h - board config for kobo aura hd (glo and mini seems the same but with other dram initialization (see mx50_rdp_mddr_256.h). All seems pretty standard. People at forum.doozan.com were able to built u-boot for a variety of plug devices. Their bootcmd has a logic that can be reused for kobos: 1. try to load /linux from external source (first partition/ext2) 2. if load then run linux with root pointing to external source 3. else load linux from internal source (unpartitioned 10MB in internal sdcard, offset 1MB, max size 3MB) with root poiting to internal source Next weekend I'll have serial terminal access to my testing aura hd and I'll check some ideas 2 is easy. We can build kobo kernel from source with any features we want <3MB. source -> https://github.com/pazos/linux-2.6.35.3-kobo Of course all of this is optional. I run lighttpd & php-cgi on my reader without any other modifications, but keep in mind I do this because I rely on kobo software. Any kobo working without a screen should be a good target for buildroot or, at least, some improvements above the stock firmware. Last edited by pazos; 05-29-2016 at 01:40 PM. Reason: noise |
06-01-2016, 11:23 PM | #13 |
Junior Member
Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
|
06-21-2016, 09:02 AM | #14 |
cosiñeiro
Posts: 1,271
Karma: 2200049
Join Date: Apr 2014
Device: BQ Cervantes 4
|
Hi!
I made a lot of progress last week! I'm finishing the rootfs. Right now I have a working uboot and a working kernel. You just need to flash those in your (internal) SD Card. This won't change the boot progress, but you should be able to boot from external SD Card if you hold the light button while booting. I am trying to make this for both headless & normal operation. So the external SD card must have two partitions (the first fat32, the second: ext2). This is needed if we want to boot from stock OS and avoid nickel trying to reformat our external sdcard. When I have the rootfs finished I will post some instructions here. You should check if everything worked fine for you. In that case you can flash the rootfs to the internal SD card or modify uboot environment to point to the external SD without pressing a button. Give me a few days |
06-25-2016, 06:17 PM | #15 | |
Junior Member
Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
Quote:
All I can contibute at this stage is good luck and hopefully this will breath new life into some broken screen devices. |
|
Tags |
kobo aura hd, linux |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Aura H2O Broken Kobo Aura H2O Screen | xtine | Kobo Reader | 52 | 06-03-2021 07:58 PM |
Suspected Broken Screen Kobo Aura HD, What Next? | qwert | Kobo Reader | 4 | 02-21-2016 09:34 AM |
Aura HD how to recover aura hd internal sd data on a broken screen? | 20mark | Kobo Reader | 14 | 10-13-2015 02:17 AM |
Aura HD Replacing broken Aura HD screen? | GlynG | Kobo Reader | 4 | 01-21-2015 11:55 PM |
Kobo Aura Screen broken? | Bakkie | Kobo Reader | 13 | 01-30-2014 04:07 PM |