12-27-2012, 06:19 AM | #1 |
Time Waster
Posts: 422
Karma: 289160
Join Date: May 2011
Device: Kobo Glo and Aura HD
|
Kobo u-boot hacking
Hi! I was wondering if anyone has tried to play with the u-boot sources so far.
I know they're a bit difficult to download since you'll have to copy the whole kobo github account locally. To avoid this I'm hosting a personal copy here: https://dl.dropbox.com/u/29286792/u-boot-2009.08.tar.gz Personally I'm interested in modifying it in order to boot from the external sd card slot as if it were the internal one, in order to make hacking the firmware easier. I'll start working on it as soon as I receive my new Glo, it should be in the mail in the next days. |
12-27-2012, 09:54 AM | #2 |
Addict
Posts: 348
Karma: 209937
Join Date: Jan 2012
Location: Virginia, US
Device: Kobo Wifi, Kobo Glo
|
Someone did a bit of u-boot hacking on the Touch in this thread. He ended up bricking his Kobo, though.
|
Advert | |
|
12-27-2012, 10:00 AM | #3 |
Time Waster
Posts: 422
Karma: 289160
Join Date: May 2011
Device: Kobo Glo and Aura HD
|
Has anyone tried to power up any recent kobo model with the internal sd card removed and placed in the external slot? It's easy to try... I could do it myself when I get my unit but I'm just too curious to wait :P
@KevinShort, thanks for the reference! |
12-27-2012, 10:31 AM | #4 |
Addict
Posts: 348
Karma: 209937
Join Date: Jan 2012
Location: Virginia, US
Device: Kobo Wifi, Kobo Glo
|
I just tried to boot the internal SD card from the external slot on my Glo. The blue LED turned on for a few seconds, but nothing happened.
|
12-27-2012, 10:31 AM | #5 |
Time Waster
Posts: 422
Karma: 289160
Join Date: May 2011
Device: Kobo Glo and Aura HD
|
Just in case someone else is interested in this, there's a neat script in the provided source that should make compiling it very easy. It is called build_mddr_256.sh.
|
Advert | |
|
01-01-2013, 11:54 AM | #6 |
Time Waster
Posts: 422
Karma: 289160
Join Date: May 2011
Device: Kobo Glo and Aura HD
|
Some other informations on the topic. I got the source to compile with some tweaking. This is the procedure I followed:
Code:
# Download and install the required toolchain: sudo add-apt-repository ppa:linaro-maintainers/toolchain sudo apt-get update sudo apt-get install gcc-4.6-arm-linux-gnueabi # create a required symlink sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-4.6 /usr/local/bin/arm-linux-gnueabi-gcc |
01-08-2013, 01:47 PM | #7 |
Time Waster
Posts: 422
Karma: 289160
Join Date: May 2011
Device: Kobo Glo and Aura HD
|
I was worried that the u-boot was not stored on the sd-card, so flashing a non-working bootloader could brick the device. It doesn't seem to be the case:
Code:
UBOOT=$1 WAVEFORM=$2 KERNEL=$3 DEVICE=$4 if [ -e $UBOOT ]; then echo Upgrading U-Boot $UBOOT dd if=$UBOOT of=/dev/$DEVICE bs=1K seek=1 skip=1 if [ $? != 0 ] ; then exit 1 fi sync sync echo Done upgrading U-Boot fi if [ -e $WAVEFORM ]; then echo Upgrading Waveform $WAVEFORM dd if=$WAVEFORM.header of=/dev/$DEVICE bs=512 seek=14335 dd if=$WAVEFORM of=/dev/$DEVICE bs=512 seek=14336 if [ $? != 0 ] ; then exit 1 fi sync sync echo Done upgrading Waveform fi if [ -e $KERNEL ]; then echo Upgrading kernel... $KERNEL dd if=$KERNEL of=/dev/$DEVICE bs=512 seek=2048 if [ $? != 0 ]; then exit 1 fi sync sync echo Done upgrading kernel... fi /etc/init.d/upgrade-generic.sh $UBOOT $WAVEFORM $KERNEL mmcblk0 in upgrade-wifi.sh. So everything seems safe... I just have to gather enough courage now |
03-09-2013, 10:21 AM | #8 | |
Addict
Posts: 348
Karma: 209937
Join Date: Jan 2012
Location: Virginia, US
Device: Kobo Wifi, Kobo Glo
|
Quote:
Code:
dd if=u-boot.bin of=/dev/sdX bs=1K seek=1 skip=1 |
|
08-31-2013, 08:31 PM | #9 |
Junior Member
Posts: 2
Karma: 10
Join Date: Aug 2013
Device: Kobo touch
|
A u-boot supporting external uSD boot
I came across this page :
https://code.google.com/p/kobohack-j/wiki/README_261 By looking at the gtranslation, I think it provides the information on how to run the OS on the external uSD. It states that DMA must be used to access the card instead of interrupts. He has a GDB for remote debugging |
06-12-2016, 08:36 AM | #10 |
cosiñeiro
Posts: 1,261
Karma: 2189337
Join Date: Apr 2014
Device: BQ Cervantes 4
|
Hi. I'm tinkering with uboot sources right now
For a Kobo Aura HD giorgio130 guesses are OK and safe to implement on kobos with internal SD card. But flashing new bootloaders don't change the boot process cause u-boot uses his own environment in mmc. The only way I found to stop the autoboot is deleting the kernel. This way I get a prompt but only for a few seconds, because the watchdog. I can also change bootdelay on uboot but not too much because wdog Bootlog of an OEM SDcard Code:
U-Boot 2009.08-dirty-svn ( 3月 01 2013 - 11:22:42) CPU: Freescale i.MX50 family 1.1V at 800 MHz mx50 pll1: 800MHz mx50 pll2: 400MHz mx50 pll3: 216MHz ipg clock : 66666666Hz ipg per clock : 66666666Hz uart clock : 24000000Hz ahb clock : 133333333Hz axi_a clock : 400000000Hz axi_b clock : 200000000Hz weim_clock : 100000000Hz ddr clock : 200000000Hz esdhc1 clock : 80000000Hz esdhc2 clock : 80000000Hz esdhc3 clock : 80000000Hz esdhc4 clock : 80000000Hz Board: MX50 RDP board Boot Reason: [POR] Boot Device: SD I2C: ready DRAM: 512 MB MMC: FSL_ESDHC: 0, FSL_ESDHC: 1, FSL_ESDHC: 2 In: serial Out: serial Err: serial [_get_sd_number] g_sd_number:2 MMC read: dev # 2, block # 1023, count 1 partition # 0 ... 1 blocks read: OK MMC read: dev # 2, block # 1024, count 1 partition # 0 ... 1 blocks read: OK ram p=70000000,size=536870912 MMC read: dev # 2, block # 18431, count 1 partition # 0 ... 1 blocks read: OK no "logo" bin header MMC read: dev # 2, block # 14335, count 1 partition # 0 ... 1 blocks read: OK MMC read: dev # 2, block # 14336, count 2263 partition # 0 ... 2263 blocks read: OK Kernel RAM visiable size=510M->510M init TPS65185 power ... Relock PLL1 to 1GHz ... mx50 pll1: 1000MHz mx50 pll2: 400MHz mx50 pll3: 216MHz ipg clock : 66666666Hz ipg per clock : 66666666Hz uart clock : 24000000Hz ahb clock : 133333333Hz axi_a clock : 400000000Hz axi_b clock : 200000000Hz weim_clock : 100000000Hz ddr clock : 200000000Hz esdhc1 clock : 80000000Hz esdhc2 clock : 80000000Hz esdhc3 clock : 80000000Hz esdhc4 clock : 80000000Hz Hit any key to stop autoboot: 0 MMC read: dev # 2, block # 2047, count 1 partition # 0 ... 1 blocks read: OK no kernel image signature ! MMC read: dev # 2, block # 2048, count 8192 partition # 0 ... 8192 blocks read: OK ## Booting kernel from Legacy Image at 70800000 ... Image Name: r6512_#1040 Mar 10 12:00:37 Created: 2015-03-10 4:00:39 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1891780 Bytes = 1.8 MB Load Address: 70008000 Entry Point: 70008000 Loading Kernel Image ... OK OK Starting kernel ... Code:
U-Boot 2009.08 (jun 11 2016 - 13:33:02) CPU: Freescale i.MX50 family 1.1V at 800 MHz mx50 pll1: 800MHz mx50 pll2: 400MHz mx50 pll3: 216MHz ipg clock : 66666666Hz ipg per clock : 66666666Hz uart clock : 24000000Hz ahb clock : 133333333Hz axi_a clock : 400000000Hz axi_b clock : 200000000Hz weim_clock : 100000000Hz ddr clock : 200000000Hz esdhc1 clock : 80000000Hz esdhc2 clock : 80000000Hz esdhc3 clock : 80000000Hz esdhc4 clock : 80000000Hz Board: MX50 RDP board Boot Reason: [POR] Boot Device: SD I2C: ready DRAM: 512 MB MMC: FSL_ESDHC: 0, FSL_ESDHC: 1, FSL_ESDHC: 2 In: serial Out: serial Err: serial [_get_sd_number] g_sd_number:2 MMC read: dev # 2, block # 1023, count 1 partition # 0 ... 1 blocks read: OK MMC read: dev # 2, block # 1024, count 1 partition # 0 ... 1 blocks read: OK ram p=70000000,size=536870912 MMC read: dev # 2, block # 18431, count 1 partition # 0 ... 1 blocks read: OK no "logo" bin header MMC read: dev # 2, block # 14335, count 1 partition # 0 ... 1 blocks read: OK MMC read: dev # 2, block # 14336, count 2263 partition # 0 ... 2263 blocks read: OK Kernel RAM visiable size=510M->510M init TPS65185 power ... Relock PLL1 to 1GHz ... mx50 pll1: 1000MHz mx50 pll2: 400MHz mx50 pll3: 216MHz ipg clock : 66666666Hz ipg per clock : 66666666Hz uart clock : 24000000Hz ahb clock : 133333333Hz axi_a clock : 400000000Hz axi_b clock : 200000000Hz weim_clock : 100000000Hz ddr clock : 200000000Hz esdhc1 clock : 80000000Hz esdhc2 clock : 80000000Hz esdhc3 clock : 80000000Hz esdhc4 clock : 80000000Hz Hit any key to stop autoboot: 0 MMC read: dev # 2, block # 2047, count 1 partition # 0 ... 1 blocks read: OK no kernel image signature ! MMC read: dev # 2, block # 2048, count 8192 partition # 0 ... 8192 blocks read: OK ## Booting kernel from Legacy Image at 70800000 ... Image Name: r6512_#1040 Mar 10 12:00:37 Created: 2015-03-10 4:00:39 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1891780 Bytes = 1.8 MB Load Address: 70008000 Entry Point: 70008000 Loading Kernel Image ... OK OK Starting kernel ... Code:
U-Boot 2009.08-dirty-svn ( 3月 01 2013 - 11:22:42) CPU: Freescale i.MX50 family 1.1V at 800 MHz mx50 pll1: 800MHz mx50 pll2: 400MHz mx50 pll3: 216MHz ipg clock : 66666666Hz ipg per clock : 66666666Hz uart clock : 24000000Hz ahb clock : 133333333Hz axi_a clock : 400000000Hz axi_b clock : 200000000Hz weim_clock : 100000000Hz ddr clock : 200000000Hz esdhc1 clock : 80000000Hz esdhc2 clock : 80000000Hz esdhc3 clock : 80000000Hz esdhc4 clock : 80000000Hz Board: MX50 RDP board Boot Reason: [POR] Boot Device: SD I2C: ready DRAM: 512 MB MMC: FSL_ESDHC: 0, FSL_ESDHC: 1, FSL_ESDHC: 2 In: serial Out: serial Err: serial [_get_sd_number] g_sd_number:2 MMC read: dev # 2, block # 1023, count 1 partition # 0 ... 1 blocks read: OK MMC read: dev # 2, block # 1024, count 1 partition # 0 ... 1 blocks read: OK ram p=70000000,size=536870912 MMC read: dev # 2, block # 18431, count 1 partition # 0 ... 1 blocks read: OK no "logo" bin header MMC read: dev # 2, block # 14335, count 1 partition # 0 ... 1 blocks read: OK no "waveform" bin header Kernel RAM visiable size=511M->511M Hit any key to stop autoboot: 0 MMC read: dev # 2, block # 2047, count 1 partition # 0 ... 1 blocks read: OK no kernel image signature ! MMC read: dev # 2, block # 2048, count 8192 partition # 0 ... 8192 blocks read: OK Wrong Image Format for bootm command ERROR: can't get kernel image! |
06-12-2016, 09:39 PM | #11 |
cosiñeiro
Posts: 1,261
Karma: 2189337
Join Date: Apr 2014
Device: BQ Cervantes 4
|
I found a workaround for the "autoboot from environment" thing!
Just moving the offset where environment is placed (from 768 to 766). uboot finds crc corruption and boots with desired environment defined in board header (include/configs/mx50_rdp_mddr_512.h in case of my aura hd) Attached bootlog of customized uboot with minimal environment (which prints itself during boot ) Code:
U-Boot 2009.08 (jun 13 2016 - 03:20:23) CPU: Freescale i.MX50 family 1.1V at 800 MHz mx50 pll1: 800MHz mx50 pll2: 400MHz mx50 pll3: 216MHz ipg clock : 66666666Hz ipg per clock : 66666666Hz uart clock : 24000000Hz ahb clock : 133333333Hz axi_a clock : 400000000Hz axi_b clock : 200000000Hz weim_clock : 100000000Hz ddr clock : 200000000Hz esdhc1 clock : 80000000Hz esdhc2 clock : 80000000Hz esdhc3 clock : 80000000Hz esdhc4 clock : 80000000Hz Board: Kobo Aura HD Boot Reason: [POR] Boot Device: SD I2C: ready DRAM: 512 MB MMC: FSL_ESDHC: 0, FSL_ESDHC: 1, FSL_ESDHC: 2 *** Warning - bad CRC or MMC, using default environment In: serial Out: serial Err: serial [_get_sd_number] g_sd_number:2 MMC read: dev # 2, block # 1023, count 1 partition # 0 ... 1 blocks read: OK MMC read: dev # 2, block # 1024, count 1 partition # 0 ... 1 blocks read: OK ram p=70000000,size=536870912 MMC read: dev # 2, block # 18431, count 1 partition # 0 ... 1 blocks read: OK no "logo" bin header MMC read: dev # 2, block # 14335, count 1 partition # 0 ... 1 blocks read: OK MMC read: dev # 2, block # 14336, count 2263 partition # 0 ... 2263 blocks read: OK Kernel RAM visiable size=510M->510M init TPS65185 power ... Relock PLL1 to 1GHz ... mx50 pll1: 1000MHz mx50 pll2: 400MHz mx50 pll3: 216MHz ipg clock : 66666666Hz ipg per clock : 66666666Hz uart clock : 24000000Hz ahb clock : 133333333Hz axi_a clock : 400000000Hz axi_b clock : 200000000Hz weim_clock : 100000000Hz ddr clock : 200000000Hz esdhc1 clock : 80000000Hz esdhc2 clock : 80000000Hz esdhc3 clock : 80000000Hz esdhc4 clock : 80000000Hz Hit any key to stop autoboot: 1 0 bootdelay=1 baudrate=115200 loadaddr=0x70800000 cmdline=setenv bootargs console=ttymxc0,115200 rootwait root=/dev/mmcblk0p1 rootfstype=ext2 rw quiet no_console_suspend lpj=3997696 bootcmd=printenv; run cmdline; load_ntxkernel; bootm verify=no stdin=serial stdout=serial stderr=serial Environment size: 284/131068 bytes MMC read: dev # 2, block # 2047, count 1 partition # 0 ... 1 blocks read: OK no kernel image signature ! MMC read: dev # 2, block # 2048, count 8192 partition # 0 ... 8192 blocks read: OK ## Booting kernel from Legacy Image at 70800000 ... Image Name: r6427_#1027 Mar 28 15:02:51 Created: 2013-03-28 7:02:55 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1934696 Bytes = 1.8 MB Load Address: 70008000 Entry Point: 70008000 Loading Kernel Image ... OK OK Starting kernel ... Code:
bootcmd=run cmdline_external; run load_custom_kernel; bootm; run cmdline; load_ntxkernel; bootm I need to find some time to check The watchdog is killing me all the time :/ Last edited by pazos; 06-12-2016 at 09:43 PM. |
06-21-2016, 09:05 AM | #12 |
cosiñeiro
Posts: 1,261
Karma: 2189337
Join Date: Apr 2014
Device: BQ Cervantes 4
|
I'm done with uboot tinkering!
https://github.com/pazos/u-boot-2009.08-kobo It boots from internal SD by default. When frontlight button is pressed it boots from the second partition of external sd. In both cases it will use the stock kernel. external sd must have 2 partitions: /dev/mmcblk1p1 - fat32 (makes nickel happy and avoids fs corruption) /dev/mmcblk1p2 - ext2 (our rootfs: debian / arch / buildroot system...) Last edited by pazos; 06-23-2016 at 07:57 PM. |
Thread Tools | Search this Thread |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Kobo Vox Hacking Progress | jefftheworld | Kobo Tablets | 228 | 09-21-2020 02:05 PM |
Touch Hacking into the Kobo Touch | stef70 | Kobo Developer's Corner | 60 | 03-04-2017 11:32 AM |
Touch Hacking Kobo Touch suspend usb network eink driver | tonyv | Kobo Developer's Corner | 25 | 01-22-2014 09:04 AM |
Kobo Hacking Resources | Zoxc | Kobo Reader | 0 | 01-14-2012 07:59 AM |
Any tips on hacking Kobo formatting???? | kae | Kobo Reader | 5 | 03-29-2011 10:26 AM |