HOWTO U-Boot
From NAS-Central Buffalo - The Linkstation Wiki
(Add #s) |
m (→Flash U-Boot on your Kurobox) |
||
| Line 37: | Line 37: | ||
{{Brickable|The Kurobox and Kurobox HG use a different U-Boot flash image. If the wrong image is written to the flash memory, your Kurobox will not boot up.}} | {{Brickable|The Kurobox and Kurobox HG use a different U-Boot flash image. If the wrong image is written to the flash memory, your Kurobox will not boot up.}} | ||
| - | + | [[User:Sylver|Sylver]] has built both the Standard and HG version of the patched U-Boot (1.1.4) using gcc version 4.1.2 20060613 (prerelease) (Debian 4.1.1-5). These flash images are configured to load the kernel image from '''/boot/uImage''' on '''hda1'''. | |
=== Standard Kurobox === | === Standard Kurobox === | ||
| - | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the standard Kurobox only !!!! For Kurobox HG, check [[# | + | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the standard Kurobox only !!!! For Kurobox HG, check [[#Kurobox HG]] !!! </p> |
| - | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the standard Kurobox only !!!! For Kurobox HG, check [[# | + | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the standard Kurobox only !!!! For Kurobox HG, check [[#Kurobox HG]] !!! </p> |
| - | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the standard Kurobox only !!!! For Kurobox HG, check [[# | + | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the standard Kurobox only !!!! For Kurobox HG, check [[#Kurobox HG]] !!! </p> |
| - | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the standard Kurobox only !!!! For Kurobox HG, check [[# | + | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the standard Kurobox only !!!! For Kurobox HG, check [[#Kurobox HG]] !!! </p> |
==== Kernel 2.4.x for standard Kurobox only ==== | ==== Kernel 2.4.x for standard Kurobox only ==== | ||
| - | Boot your kernel as usual and download the U-Boot | + | Boot your 2.4.x kernel as usual and download, untar, and check the checksum of the U-Boot image for '''standard''' Kurobox: |
| - | http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kurobox.tar.gz | + | # wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kurobox.tar.gz |
| - | + | # tar xzf u-boot-1.1.4-kurobox.tar.gz | |
| - | + | # cksum u-boot.bin | |
| - | + | ||
1870540566 164676 u-boot.bin | 1870540566 164676 u-boot.bin | ||
If all is ok, flash the boot ! | If all is ok, flash the boot ! | ||
| - | dd if=u-boot.bin of=/dev/fl2 bs=1k | + | # dd if=u-boot.bin of=/dev/fl2 bs=1k |
Make sure the boot is ok in flash : | Make sure the boot is ok in flash : | ||
| - | + | # cmp u-boot.bin /dev/fl2 | |
cmp: EOF on u-boot.bin | cmp: EOF on u-boot.bin | ||
Make sure you have a valid /boot/uImage in hda1 and reboot ;) | Make sure you have a valid /boot/uImage in hda1 and reboot ;) | ||
| - | reboot | + | # reboot |
If it doesn't work : | If it doesn't work : | ||
* Your Kurobox is now a [[brick]], only JTAG will allow to restore it | * Your Kurobox is now a [[brick]], only JTAG will allow to restore it | ||
| - | * The kernel in /boot/uImage is incorrect, try forcing | + | * The kernel in /boot/uImage is incorrect, try forcing Emergency Mode (EM) by using the red button on the back of your Kurobox. |
==== Kernel 2.6.x for standard Kurobox only ==== | ==== Kernel 2.6.x for standard Kurobox only ==== | ||
<p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">WARNING : Process is harder when using a 2.6.x kernel ! If you're not sure, just get back to 2.4.x kernel !</p> | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">WARNING : Process is harder when using a 2.6.x kernel ! If you're not sure, just get back to 2.4.x kernel !</p> | ||
| - | Boot your kernel as usual and download the U-Boot | + | Boot your 2.6.x kernel as usual and download, untar, and check the checksum the U-Boot image for '''standard''' Kurobox: |
| - | wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kurobox.tar.gz | + | # wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kurobox.tar.gz |
| - | + | # tar xzf u-boot-1.1.4-kurobox.tar.gz | |
| - | + | # cksum u-boot.bin | |
| - | + | ||
1870540566 164676 u-boot.bin | 1870540566 164676 u-boot.bin | ||
If all is ok, check your flash mapping : | If all is ok, check your flash mapping : | ||
it should be | it should be | ||
| - | + | # cat /proc/mtd | |
dev: size erasesize name | dev: size erasesize name | ||
mtd0: 00300000 00010000 "mtd_firmimg" | mtd0: 00300000 00010000 "mtd_firmimg" | ||
| - | mtd1: 00070000 00010000 "mtd_bootcode" | + | '''mtd1: 00070000 00010000 "mtd_bootcode"''' |
mtd2: 00010000 00010000 "mtd_status" | mtd2: 00010000 00010000 "mtd_status" | ||
mtd3: 00080000 00010000 "mtd_conf" | mtd3: 00080000 00010000 "mtd_conf" | ||
| Line 80: | Line 78: | ||
mtd5: 000f0000 00010000 "mtd_data" | mtd5: 000f0000 00010000 "mtd_data" | ||
or | or | ||
| - | + | # cat /proc/mtd | |
dev: size erasesize name | dev: size erasesize name | ||
mtd0: 00400000 00010000 "mtd_allflash" | mtd0: 00400000 00010000 "mtd_allflash" | ||
mtd1: 00300000 00010000 "mtd_firmimg" | mtd1: 00300000 00010000 "mtd_firmimg" | ||
| - | mtd2: 00070000 00010000 "mtd_bootcode" | + | '''mtd2: 00070000 00010000 "mtd_bootcode"''' |
mtd3: 00010000 00010000 "mtd_status" | mtd3: 00010000 00010000 "mtd_status" | ||
mtd4: 00080000 00010000 "mtd_conf" | mtd4: 00080000 00010000 "mtd_conf" | ||
| - | The right place to flash is mtd_bootcode, so you'll have to flash the u-boot.bin to /dev/mtdblock1 or to /dev/mtdblock2 ! | + | The right place to flash is '''mtd_bootcode''', so you'll have to flash the ''u-boot.bin'' to ''/dev/mtdblock1'' or to ''/dev/mtdblock2''! |
So depending of the result of the previous command, do a | So depending of the result of the previous command, do a | ||
| - | dd if=u-boot.bin of=/dev/mtdblock1 bs=1k | + | # dd if=u-boot.bin of=/dev/mtdblock1 bs=1k |
or a | or a | ||
| - | dd if=u-boot.bin of=/dev/mtdblock2 bs=1k | + | # dd if=u-boot.bin of=/dev/mtdblock2 bs=1k |
Make sure the boot is ok in flash : | Make sure the boot is ok in flash : | ||
| - | + | # cmp u-boot.bin /dev/mtd1 | |
cmp: EOF on u-boot.bin | cmp: EOF on u-boot.bin | ||
or | or | ||
| - | + | # cmp u-boot.bin /dev/mtd2 | |
cmp: EOF on u-boot.bin | cmp: EOF on u-boot.bin | ||
Make sure you have a valid /boot/uImage in hda1 and reboot ;) | Make sure you have a valid /boot/uImage in hda1 and reboot ;) | ||
| - | reboot | + | # reboot |
If it doesn't work : | If it doesn't work : | ||
* Your Kurobox is now a [[brick]], only JTAG will allow to restore it | * Your Kurobox is now a [[brick]], only JTAG will allow to restore it | ||
| - | * The kernel in /boot/uImage is incorrect, try forcing | + | * The kernel in /boot/uImage is incorrect, try forcing Emergency Mode (EM) by using the red button on the back of your Kurobox. |
=== Kurobox HG === | === Kurobox HG === | ||
| - | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the Kurobox HG only !!!! For standard Kurobox, check [[# | + | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the Kurobox HG only !!!! For standard Kurobox, check [[#Standard Kurobox]] !!!</p> |
| - | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the Kurobox HG only !!!! For standard Kurobox, check [[# | + | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the Kurobox HG only !!!! For standard Kurobox, check [[#Standard Kurobox]] !!!</p> |
| - | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the Kurobox HG only !!!! For standard Kurobox, check [[# | + | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the Kurobox HG only !!!! For standard Kurobox, check [[#Standard Kurobox]] !!!</p> |
| - | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the Kurobox HG only !!!! For standard Kurobox, check [[# | + | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">This is for the Kurobox HG only !!!! For standard Kurobox, check [[#Standard Kurobox]] !!!</p> |
==== Kernel 2.4.x for Kurobox HG only ==== | ==== Kernel 2.4.x for Kurobox HG only ==== | ||
| - | Boot your kernel as usual and download the U-Boot | + | Boot your 2.4.x kernel as usual and download, untar, and check the checksum of the U-Boot image for Kurobox '''HG''' : |
| - | http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kuroboxhg.tar.gz | + | # wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kuroboxhg.tar.gz |
| - | + | # tar xzf u-boot-1.1.4-kurobox.tar.gz | |
| - | + | # cksum u-boot.bin | |
| - | + | ||
2604640296 164676 u-boot.bin | 2604640296 164676 u-boot.bin | ||
If all is ok, flash the boot ! | If all is ok, flash the boot ! | ||
| - | dd if=u-boot.bin of=/dev/fl2 bs=1k | + | # dd if=u-boot.bin of=/dev/fl2 bs=1k |
Make sure the boot is ok in flash : | Make sure the boot is ok in flash : | ||
| - | + | # cmp u-boot.bin /dev/fl2 | |
cmp: EOF on u-boot.bin | cmp: EOF on u-boot.bin | ||
Make sure you have a valid /boot/uImage in hda1 and reboot ;) | Make sure you have a valid /boot/uImage in hda1 and reboot ;) | ||
| - | reboot | + | # reboot |
If it doesn't work : | If it doesn't work : | ||
* Your Kurobox is now a [[brick]], only JTAG will allow to restore it | * Your Kurobox is now a [[brick]], only JTAG will allow to restore it | ||
| - | * The kernel in /boot/uImage is incorrect, try forcing | + | * The kernel in /boot/uImage is incorrect, try forcing Emergency Mode (EM) by using the red button on the back of your Kurobox. |
==== Kernel 2.6.x for Kurobox HG only ==== | ==== Kernel 2.6.x for Kurobox HG only ==== | ||
<p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">WARNING : Process is harder when using a 2.6.x kernel ! If you're not sure, just get back to 2.4.x kernel !</p> | <p style="border:dashed 1px red;background:Lemonchiffon;text-align:center;margin:0 5px">WARNING : Process is harder when using a 2.6.x kernel ! If you're not sure, just get back to 2.4.x kernel !</p> | ||
| - | Boot your kernel as usual and download the U-Boot | + | Boot your 2.6.x kernel as usual and download, untar, and check the checksum the U-Boot image for Kurobox '''HG''' : |
| - | wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kuroboxhg.tar.gz | + | # wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kuroboxhg.tar.gz |
| - | + | # tar xzf u-boot-1.1.4-kurobox.tar.gz | |
| - | + | # cksum u-boot.bin | |
| - | + | ||
2604640296 164676 u-boot.bin | 2604640296 164676 u-boot.bin | ||
If all is ok, check your flash mapping : | If all is ok, check your flash mapping : | ||
it should be | it should be | ||
| - | + | # cat /proc/mtd | |
dev: size erasesize name | dev: size erasesize name | ||
mtd0: 00300000 00010000 "mtd_firmimg" | mtd0: 00300000 00010000 "mtd_firmimg" | ||
| - | mtd1: 00070000 00010000 "mtd_bootcode" | + | '''mtd1: 00070000 00010000 "mtd_bootcode"''' |
mtd2: 00010000 00010000 "mtd_status" | mtd2: 00010000 00010000 "mtd_status" | ||
mtd3: 00080000 00010000 "mtd_conf" | mtd3: 00080000 00010000 "mtd_conf" | ||
| Line 147: | Line 143: | ||
mtd5: 000f0000 00010000 "mtd_data" | mtd5: 000f0000 00010000 "mtd_data" | ||
or | or | ||
| - | + | # cat /proc/mtd | |
dev: size erasesize name | dev: size erasesize name | ||
mtd0: 00400000 00010000 "mtd_allflash" | mtd0: 00400000 00010000 "mtd_allflash" | ||
mtd1: 00300000 00010000 "mtd_firmimg" | mtd1: 00300000 00010000 "mtd_firmimg" | ||
| - | mtd2: 00070000 00010000 "mtd_bootcode" | + | '''mtd2: 00070000 00010000 "mtd_bootcode"''' |
mtd3: 00010000 00010000 "mtd_status" | mtd3: 00010000 00010000 "mtd_status" | ||
mtd4: 00080000 00010000 "mtd_conf" | mtd4: 00080000 00010000 "mtd_conf" | ||
| - | The right place to flash is mtd_bootcode, so you'll have to flash the u-boot.bin to /dev/mtdblock1 or to /dev/mtdblock2 ! | + | The right place to flash is '''mtd_bootcode''', so you'll have to flash the ''u-boot.bin'' to ''/dev/mtdblock1'' or to ''/dev/mtdblock2''! |
So depending of the result of the previous command, do a | So depending of the result of the previous command, do a | ||
| - | dd if=u-boot.bin of=/dev/mtdblock1 bs=1k | + | # dd if=u-boot.bin of=/dev/mtdblock1 bs=1k |
or a | or a | ||
| - | dd if=u-boot.bin of=/dev/mtdblock2 bs=1k | + | # dd if=u-boot.bin of=/dev/mtdblock2 bs=1k |
Make sure the boot is ok in flash : | Make sure the boot is ok in flash : | ||
| - | + | # cmp u-boot.bin /dev/mtd1 | |
cmp: EOF on u-boot.bin | cmp: EOF on u-boot.bin | ||
or | or | ||
| - | + | # cmp u-boot.bin /dev/mtd2 | |
cmp: EOF on u-boot.bin | cmp: EOF on u-boot.bin | ||
Make sure you have a valid /boot/uImage in hda1 and reboot ;) | Make sure you have a valid /boot/uImage in hda1 and reboot ;) | ||
| - | reboot | + | # reboot |
If it doesn't work : | If it doesn't work : | ||
* Your Kurobox is now a [[brick]], only JTAG will allow to restore it | * Your Kurobox is now a [[brick]], only JTAG will allow to restore it | ||
| - | * The kernel in /boot/uImage is incorrect, try forcing | + | * The kernel in /boot/uImage is incorrect, try forcing Emergency Mode (EM) by using the red button on the back of your Kurobox. |
=== Linkstation === | === Linkstation === | ||
| - | + | U-Boot is not available for the Linkstation yet. Some guys are working on that; check [[linkstationwiki:Projects/u-boot_bootloader]] for the latest news. | |
| - | check | + | |
== Building your own U-Boot binary == | == Building your own U-Boot binary == | ||
Revision as of 04:13, 5 July 2006
Contents |
Introduction
The U-Boot project for the Kurobox is something that the community has been waiting for, for a long time! Nijino was the first person to provide a patch to adapt U-Boot to the Kurobox architecture and specifications! U-Boot will allow you to boot any kernel directly from the hard drive without first booting the 2.4.17 kernel stored in the Kurobox's flash memory.
Known functions and limitations
Functions :
- Boot a kernel image from the hard drive in uImage format
- Force Emergency Mode (EM) by pressing the the red button at the rear of the Kurobox right after the POWER LED stops blinking. (Note: EM can take around 2 minutes to start, so don't worry if you can't ping your Kurobox immediately)
Limitations :
- This version of U-Boot comes with no support for ethernet, so for now booting from or connecting to U-Boot over LAN is impossible. According to the author of this patch, nijino, ethernet driver implementation will not be easy, so we may never see this function in our Kuroboxes!
Building a Linux kernel in U-Boot format
To be able to build a kernel in uImage format, you will need the mkimage tool that is built when compiling U-Boot. Alternatively, you can download a precompiled version of this tool:
# wget http://www.kurobox.com/sylver/u-boot/mkimage # chmod 0755 mkimage # mv mkimage /usr/bin/
Now compile the kernel as normal:
# export ARCH=ppc # make menuconfig # make oldconfig
Create a U-Boot compatible uImage:
# make uImage
This will create a uImage file in arch/ppc/boot/images/uImage. Move the image into the /boot/ directory (this is the default location that U-Boot searches for a kernel image) and then compile the modules and install them.
# cp arch/ppc/boot/images/uImage /boot/ # make modules # sudo make modules_install
To assist with this section, Sylver has prebuilt some uImage format kernels and modules:
Make sure you download the appropriate kernel and modules for the Kurobox you have, and then tar zxvf it in the root directory /.
Flash U-Boot on your Kurobox
|
Sylver has built both the Standard and HG version of the patched U-Boot (1.1.4) using gcc version 4.1.2 20060613 (prerelease) (Debian 4.1.1-5). These flash images are configured to load the kernel image from /boot/uImage on hda1.
Standard Kurobox
This is for the standard Kurobox only !!!! For Kurobox HG, check #Kurobox HG !!!
This is for the standard Kurobox only !!!! For Kurobox HG, check #Kurobox HG !!!
This is for the standard Kurobox only !!!! For Kurobox HG, check #Kurobox HG !!!
This is for the standard Kurobox only !!!! For Kurobox HG, check #Kurobox HG !!!
Kernel 2.4.x for standard Kurobox only
Boot your 2.4.x kernel as usual and download, untar, and check the checksum of the U-Boot image for standard Kurobox:
# wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kurobox.tar.gz # tar xzf u-boot-1.1.4-kurobox.tar.gz # cksum u-boot.bin 1870540566 164676 u-boot.bin
If all is ok, flash the boot !
# dd if=u-boot.bin of=/dev/fl2 bs=1k
Make sure the boot is ok in flash :
# cmp u-boot.bin /dev/fl2 cmp: EOF on u-boot.bin
Make sure you have a valid /boot/uImage in hda1 and reboot ;)
# reboot
If it doesn't work :
- Your Kurobox is now a brick, only JTAG will allow to restore it
- The kernel in /boot/uImage is incorrect, try forcing Emergency Mode (EM) by using the red button on the back of your Kurobox.
Kernel 2.6.x for standard Kurobox only
WARNING : Process is harder when using a 2.6.x kernel ! If you're not sure, just get back to 2.4.x kernel !
Boot your 2.6.x kernel as usual and download, untar, and check the checksum the U-Boot image for standard Kurobox:
# wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kurobox.tar.gz # tar xzf u-boot-1.1.4-kurobox.tar.gz # cksum u-boot.bin 1870540566 164676 u-boot.bin
If all is ok, check your flash mapping : it should be
# cat /proc/mtd dev: size erasesize name mtd0: 00300000 00010000 "mtd_firmimg" mtd1: 00070000 00010000 "mtd_bootcode" mtd2: 00010000 00010000 "mtd_status" mtd3: 00080000 00010000 "mtd_conf" mtd4: 00400000 00010000 "mtd_allflash" mtd5: 000f0000 00010000 "mtd_data"
or
# cat /proc/mtd dev: size erasesize name mtd0: 00400000 00010000 "mtd_allflash" mtd1: 00300000 00010000 "mtd_firmimg" mtd2: 00070000 00010000 "mtd_bootcode" mtd3: 00010000 00010000 "mtd_status" mtd4: 00080000 00010000 "mtd_conf"
The right place to flash is mtd_bootcode, so you'll have to flash the u-boot.bin to /dev/mtdblock1 or to /dev/mtdblock2! So depending of the result of the previous command, do a
# dd if=u-boot.bin of=/dev/mtdblock1 bs=1k
or a
# dd if=u-boot.bin of=/dev/mtdblock2 bs=1k
Make sure the boot is ok in flash :
# cmp u-boot.bin /dev/mtd1 cmp: EOF on u-boot.bin
or
# cmp u-boot.bin /dev/mtd2 cmp: EOF on u-boot.bin
Make sure you have a valid /boot/uImage in hda1 and reboot ;)
# reboot
If it doesn't work :
- Your Kurobox is now a brick, only JTAG will allow to restore it
- The kernel in /boot/uImage is incorrect, try forcing Emergency Mode (EM) by using the red button on the back of your Kurobox.
Kurobox HG
This is for the Kurobox HG only !!!! For standard Kurobox, check #Standard Kurobox !!!
This is for the Kurobox HG only !!!! For standard Kurobox, check #Standard Kurobox !!!
This is for the Kurobox HG only !!!! For standard Kurobox, check #Standard Kurobox !!!
This is for the Kurobox HG only !!!! For standard Kurobox, check #Standard Kurobox !!!
Kernel 2.4.x for Kurobox HG only
Boot your 2.4.x kernel as usual and download, untar, and check the checksum of the U-Boot image for Kurobox HG :
# wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kuroboxhg.tar.gz # tar xzf u-boot-1.1.4-kurobox.tar.gz # cksum u-boot.bin 2604640296 164676 u-boot.bin
If all is ok, flash the boot !
# dd if=u-boot.bin of=/dev/fl2 bs=1k
Make sure the boot is ok in flash :
# cmp u-boot.bin /dev/fl2 cmp: EOF on u-boot.bin
Make sure you have a valid /boot/uImage in hda1 and reboot ;)
# reboot
If it doesn't work :
- Your Kurobox is now a brick, only JTAG will allow to restore it
- The kernel in /boot/uImage is incorrect, try forcing Emergency Mode (EM) by using the red button on the back of your Kurobox.
Kernel 2.6.x for Kurobox HG only
WARNING : Process is harder when using a 2.6.x kernel ! If you're not sure, just get back to 2.4.x kernel !
Boot your 2.6.x kernel as usual and download, untar, and check the checksum the U-Boot image for Kurobox HG :
# wget http://www.kurobox.com/sylver/u-boot/u-boot-1.1.4-kuroboxhg.tar.gz # tar xzf u-boot-1.1.4-kurobox.tar.gz # cksum u-boot.bin 2604640296 164676 u-boot.bin
If all is ok, check your flash mapping : it should be
# cat /proc/mtd dev: size erasesize name mtd0: 00300000 00010000 "mtd_firmimg" mtd1: 00070000 00010000 "mtd_bootcode" mtd2: 00010000 00010000 "mtd_status" mtd3: 00080000 00010000 "mtd_conf" mtd4: 00400000 00010000 "mtd_allflash" mtd5: 000f0000 00010000 "mtd_data"
or
# cat /proc/mtd dev: size erasesize name mtd0: 00400000 00010000 "mtd_allflash" mtd1: 00300000 00010000 "mtd_firmimg" mtd2: 00070000 00010000 "mtd_bootcode" mtd3: 00010000 00010000 "mtd_status" mtd4: 00080000 00010000 "mtd_conf"
The right place to flash is mtd_bootcode, so you'll have to flash the u-boot.bin to /dev/mtdblock1 or to /dev/mtdblock2! So depending of the result of the previous command, do a
# dd if=u-boot.bin of=/dev/mtdblock1 bs=1k
or a
# dd if=u-boot.bin of=/dev/mtdblock2 bs=1k
Make sure the boot is ok in flash :
# cmp u-boot.bin /dev/mtd1 cmp: EOF on u-boot.bin
or
# cmp u-boot.bin /dev/mtd2 cmp: EOF on u-boot.bin
Make sure you have a valid /boot/uImage in hda1 and reboot ;)
# reboot
If it doesn't work :
- Your Kurobox is now a brick, only JTAG will allow to restore it
- The kernel in /boot/uImage is incorrect, try forcing Emergency Mode (EM) by using the red button on the back of your Kurobox.
Linkstation
U-Boot is not available for the Linkstation yet. Some guys are working on that; check linkstationwiki:Projects/u-boot_bootloader for the latest news.
Building your own U-Boot binary
First of all, there is some problems while trying to compile U-Boot 1.1.4 with Make v3.81 ! Install Make 3.80 before trying to compile U-Boot !
- Get Nijino patch :
wget http://homepage2.nifty.com/nijino/library/u-boot-1.1.4_kurobox.patch.bz2
- Get U-Boot 1.1.4 source code from a mirror and apply the patch
wget http://surfnet.dl.sourceforge.net/sourceforge/u-boot/u-boot-1.1.4.tar.bz2 tar xfz u-boot-1.1.4.tar.gz && cd u-boot-1.1.4 bzip2 -dc ../u-boot-1.1.4_kurobox.patch.bz2 | patch -Np1
- Configure U-Boot for your target :
Kurobox
make KUROBOX_config
Kurobox HG
make KUROBOX_HG_config
- Build U-Boot
make
- Copy mkimage to /usr/bin (needed to build kernel images for U-Boot
cp tools/mkimage /usr/bin/mkimage chmod 0755 /usr/bin/mkimage
You now have an u-boot.bin file, just follow this article to flash it in your Kurobox !
Nijino added a tool to check if built u-boot.bin is the good one !
wget http://homepage2.nifty.com/nijino/kurobox/uboot_check.c gcc -o uboot_check uboot_check.c ./uboot_check
It'll tell you if the u-boot.bin is the good one for your Kurobox (just to be sure)


