环境: inux version 2.6.12-h1940 (root@ubuntu) (gcc version 3.4.1) ,文件映像格式 cramfs.
GEC2440光盘上附带的内核,make之后,烧进去首先出现如下错误:
mount_devfs_fs(): unable to mount devfs, err: -2
首先怀疑是原来的内核没有改ECC相应的东东.
1.driver/mtd/nand/s3c2410.c文件中有没有把NAND_ECC_SOFT改成NAND_ECC_NONE,原来的已经改了。
2.menuconfig里面[*] Lets Yaffs do its own ECC也加了.
3.又有人说在fs/Kconfig中,需要加入以下选项。
config DEVFS_FS
bool "/dev file system support (OBSOLETE)"
depends on EXPERIMENTAL
help
…………………………………………………
config DEVFS_MOUNT
bool "Automatically mount at boot"
depends on DEVFS_FS
help
………………………………………………….
config DEVFS_DEBUG
bool "Debug devfs"
depends on DEVFS_FS
help
…………………………………………………..
加了,启动还是这个问题。
检查启动参数,root=/dev/mtdblock2 就是我的分区,没有错。改成root=31:2 其实也是一个意思。
继续,又有人说,File systems->Pseudo filesystems目录里面可以后到devfs的配置选项如下:
[*] /proc file system support │ │
[*] /dev file system support (OBSOLETE) │ │
[*] Automatically mount at boot │ │
[*] Debug devfs │ │
[*] Virtual memory file system support (former shm fs) │ │
[ ] Relayfs file system support
改了配置,make之后还是不行。
是不是要指定映像格式呢,在启动参数里面,我加入了rootfstype=cramfs 再启动,又出现错误:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
嘿嘿,原形毕露了,是找不到文件系统吧,是不是地址错了,看下启动信息,果然发现分区信息不对,
对我BIOS的差得远了。。。。哈哈,,,,尾巴露出来了.
去内核文件里,在arch/arm/mach-s3c2410/devs.c里找到了分区信息的结构。改一改
struct mtd_partition gec24xx_default_nand_part_b[]{......}
参数我就省了哈.
重新make,乖乖,起动了哦...困扰我两天了,原来是这个问题,晕不晕!!!!