2440内核移植心得.

环境: 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,乖乖,起动了哦...困扰我两天了,原来是这个问题,晕不晕!!!!

 

你可能感兴趣的:(struct,File,ubuntu,gcc,System,filesystems)