|
|
#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! |
|
|
|
|
|
#2 |
|
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
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.
|
|
|
|
|
|
#3 |
|
cosiñeiro
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,406
Karma: 2451781
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) |
|
|
|
|
|
#4 |
|
Junior Member
![]() Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
|
|
|
|
|
|
#5 | |
|
Junior Member
![]() Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
Quote:
|
|
|
|
|
|
|
#6 |
|
cosiñeiro
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,406
Karma: 2451781
Join Date: Apr 2014
Device: BQ Cervantes 4
|
|
|
|
|
|
|
#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. |
|
|
|
|
|
|
#8 |
|
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 24,905
Karma: 47303824
Join Date: Jul 2011
Location: Sydney, Australia
Device: Kobo:Touch,Glo, AuraH2O, GloHD,AuraONE, ClaraHD, Libra H2O; tolinoepos
|
|
|
|
|
|
|
#9 | |
|
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 24,905
Karma: 47303824
Join Date: Jul 2011
Location: Sydney, Australia
Device: Kobo:Touch,Glo, AuraH2O, GloHD,AuraONE, ClaraHD, Libra H2O; tolinoepos
|
Quote:
|
|
|
|
|
|
|
#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
|
|
|
|
|
|
#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
|
|
|
|
|
|
#12 |
|
cosiñeiro
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,406
Karma: 2451781
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 |
|
|
|
|
|
#13 |
|
Junior Member
![]() Posts: 8
Karma: 10
Join Date: May 2016
Device: Kobo aura HD
|
|
|
|
|
|
|
#14 |
|
cosiñeiro
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,406
Karma: 2451781
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 |
|
|
|
|
|
#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 |
| Thread Tools | Search this Thread |
|
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 |