As mentioned in another thread, U-boot can not access Linux kernels stored on a hard drive that is partitioned using an AmigaOS partition table.
This is just like it was with CFE on the X1000. So on that system you would typically store the kernels on the CompactFlash card, which was FAT formatted.
So I was thinking to myself "Well, the X5000 does not have a CompactFlash card, but it does have an SDcard which is used for storing the bootloader, so why not use that to store the kernels on?".
It turns out that the SDcard does not have a partition table at all, but fortunately the first 4K are not used, so there is plently of room to add an msdos partition table. Upon inspecting the contents of the SDcard in my X5000, I found the following:
Code: Select all
--------------------------------------------------------------
| offset | size | contents |
--------------------------------------------------------------
| 00000000 - 00000fff | 4K | zeroes |
| 00001000 - 04bfffff | 76M | uboot |
| 04c00000 - ee7fffff | 3740M | junk (repeating 1K pattern) |
| ee800000 - eeafffff | 3M | zeroes |
--------------------------------------------------------------
Here is how to do it:
- Boot into Linux (using USB)
- Backup U-Boot:
Code: Select all
sudo dd if=/dev/mmcblk0 bs=1M count=128 of=/tmp/uboot.bin
- Start gparted
- select /dev/mmcblk0
- Pick Device / Create Partition Table...
- select "msdos" and click Apply
- Pick Partition / New
- Set the settings as follows:
- Free space preceding (MiB): 512
- New size (MiB): Decrease until "Free space following (MiB):" is also 512
- Align to: MiB
- Create as: Primary Partition
- File Systen: ext4
- Label: SDCARD
- Click Add.
- Right click on the new partition, and pick Format to / ext4.
- Then pick Edit / Apply all operations.
- Acknowledge the warning, and wait for the operation to finish.
- Quit gparted.
- Restore U-Boot, while keeping the partition table:
Code: Select all
sudo dd if=/tmp/uboot.bin of=/dev/mmcblk0 bs=4096 skip=1 seek=1