红联Linux门户
Linux帮助

将uclinux2.6的内核移植到s3c44b0出现问题!求助!

发布时间:2007-03-29 11:23:07来源:红联作者:爬行的背包
我使用2.6.14的内核并用u-boot进行加载,就我在把uclinux2.6内核向s3c44b0x移植的过程中出现的问题及我的理解向大家列举一下。移植过程中我使用的是简易驱动,经过必要的修改内核被正常编译并运行后出现如下内容:

tarting kernel ...
Linux version 2.6.14-hsc0 (root@billcsong) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #4 Tue Mar 27 10:48:52 CST 2007
CPU: [44b07700]
Machine: S3C44B0X Development Board
Memory management: Non-Paged(unused/noMMU)
Built 1 zonelists
Kernel command line:
PID hash table entries: 64 (order: 6, 1024 bytes)
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 8MB = 8MB total
Memory: 6676KB available (1212K code, 117K data, 72K init)

然后程序就停在这里,没有输出了,而我看到大部分网友贴上的输出即使有问题的也至少能够继续输出至警告无法挂载根文件系统,像这样这样:
。。。。。。
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 8MB = 8MB total
Memory: 6512KB available (1386K code, 125K data, 52K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
checking if image is initramfs...it isn't (ungzip failed); looks like an initrd
NET: Registered protocol family 16
init_module
Samsung S3C44B0 Rtl8019as driver version 0.1 (2002-02-20) <hzh12@163.net>
init
eth0: 12:34:56:78:90:ab
get_stats
RAMDISK driver initialized: 16 RAM disks of 2048K size 1024 blocksize
。。。。。。

在我理解出现这样的情况有两个原因:
1。我使用了简易串口驱动,而恰恰在我程序停止的地方开始了内核的init进程和开始执行/bin/sh,这个时候开始需要tty设备驱动来输出,因此我的程序停止了。但是我又想到,当系统找不到tty设备驱动时系统会不断重起而不是停止在那个地方。于是我又想到了下面一个原因。
2。程序还没有运行到init进程和执行/bin/sh,就因为根文件系统没有成功挂载而停止了,导致init进程和/bin/sh根本没有执行。如果是这样,说明我还没有掌握挂载根文件系统的方法,我使用的挂载根文件系统的方法是这样的:
(1)在内核配置中设置了支持ram disk和intrd。
(2)将编译生成的romfs.img映像文件使用mkimage -A arm -O linux -T ramdisk -C none -a 0x0c300000 -d romfs.img romfs.umg命令作成u-boot格式的ramdisk映像并将其烧在flash的1c0000处。
(3)指定bootargs环境变量为root=/dev/ram initrd=0x0c300000 rw console=ttySAC0,115200 mem=8M
(4)使用bootm 40000 1c0000 加载内核和根文件系统。
请各位网友指教我这种做法是否有问题,问题出在什么地方?
以上的两点问题希望得到大家的指点。

另外,我现在想移植tty设备驱动,但苦于找不到合适的驱动程序,又没有达到自己编写驱动程序的水平,所以如果哪位朋友有uart.h和serial_s3c44b0.c,可否告知并给我一份(guodarui@163.com),不胜感激!
文章评论

共有 0 条评论