• Home
  • Help
  • Search
  • Login
  • Register
Pages: [1]
Author Topic: SD card as root FS  (Read 1963 times)
restamp
Global Moderator
Sr. Member
*****

Karma: 4
Posts: 273


View Profile
« on: June 15, 2009, 09:46:07 PM »

There is probably a thread for this already, but I can't find it.  In any event, I'm taking my learning curve with the SheevaPlug slowly.  Today I bought an SD card and converted the Plug to using it for its root filesystem.  I followed the instructions found here:

http://www.openplug.org/plugwiki/index.php/SD_Card_As_Root_File_System

First, thanks to the author for compiling this useful article.  Unfortunately, I think there is a small problem with these instructions:  The original bootargs (the one that comes with the Plug) is:

Code:
setenv bootargs console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none

The Wiki suggests that the new bootargs be set as follows:

Code:
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none

Specifically, in addition to changing the root device, the mdtparts parameter is dropped as no longer necessary.  However, although this appears to work, when I tried this, I observed the following differences during the boot sequence:

Code:
< 2 cmdlinepart partitions found on MTD device nand_mtd
< Using command line partition definition
< Creating 2 MTD partitions on "nand_mtd":
< 0x00100000-0x00500000 : "uImage"
< 0x00500000-0x20000000 : "rootfs"
---
> Using static partition definition
> Creating 3 MTD partitions on "nand_mtd":
> 0x00000000-0x00100000 : "u-boot"
> 0x00100000-0x00300000 : "uImage"
> 0x00300000-0x20000000 : "root"
...
>  * Loading hardware drivers...    end_request: I/O error, dev mtdblock0, sector 0
> Buffer I/O error on device mtdblock0, logical block 0
> end_request: I/O error, dev mtdblock0, sector 8
> Buffer I/O error on device mtdblock0, logical block 1
> end_request: I/O error, dev mtdblock0, sector 16
> Buffer I/O error on device mtdblock0, logical block 2
> end_request: I/O error, dev mtdblock0, sector 24
> Buffer I/O error on device mtdblock0, logical block 3
> end_request: I/O error, dev mtdblock0, sector 0
> Buffer I/O error on device mtdblock0, logical block 0

Apparently, the kernel still needs to visit the original partition to load some drivers, and the default mapping directs the kernel to the wrong place.  I'm not sure what the effect of these errors are, but I elected to re-add the mtdparts information to the bootargs, and thereafter got a clean boot.

BTW, the Wiki author also ponders why the bootargs_root variable has no effect.  I believe this is likely because it is overridden by the root parameter in the bootargs argument list.
Logged

Pages: [1]
Print
Jump to: