linux-2.6.14在开发板上的移植

原文链接:http://windowzs.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d12%26ayear%3d2006

主要精力都放在了如何成功把这个内核跑起来,有些功能编译有问题就直接去掉了。进行内核裁减的时候在回头注意这个问题吧。

其实内核的移植相对简单(如果只是要求跑起来)。主要的工作都是在配置编译选项上面。
1. 还是配置交叉编译器。修改顶层的Makefile。添加
ARCH := arm
CROSS_COMPILE := arm-linux-
EXTRA_VERSION :=
这样第二步只需要make menuconfig就行了,否则要输入make menuconfig ARCH=arm。
2. 用menucnfig配置内核主要注意的有几处
System Type --> [] S3C2410 Initialisation watchdog 不能选中,否则启动之后芯片会自动复位。
Boot options --> Default kernel command string 要加入如下字符串"Initrd=0x30800000,0x400000 mem=32M root=/dev/ram0 init=/linuxrc console=ttyS0,115200"
Initrd=0x30800000,0x800000说明ramdisk位置在0x30800000,大小是8M这个值要和后面的2处设置相匹配。否则加载ramdisk会报错
mem=32M 指明内存大小是32M
root=/dev/ram0 指明根文件系统在/dev/ram0上
console=/dev/ttyS0,115200说明初始化控制台时,使用设备/dev/ttyS0,波特率为115200
Floating point emulation --> [*]NWFPE math emulation要选中
Device Drivers --> Block drivers --> [*] RAM disk support 选中
[8192] Default RAM disk size(kbytes)
这个选项要和传递给内核的ramdisk大小一致
[*]Initial RAM disk (initrd) support选中
Device Drivers --> Charactor Device --> Serail Drivers <*> Samsung s3c2410 Serial port support [*] support for console on s3c2410 serail port
Device Drivers --> Charactor Device --> [*]s3c2410 RTC drivers
Device Drivers --> Graphics support --> <*> support for frame buffer devices
<*> s3c2410 LCD frame buffer support
这两项是使用miniGUI的基本要求。
3. 修改drivers/serial/s3c2410.c 把#define S3C24XX_SERIAL_NAME "ttySAC"改为 "ttyS"。不知道为什么2410的串口设备不使用通用名字。
4. 有了上面的配置就可以开始编译内核了。内核的编译毛病不是很多,只有2个ASSERT()不能编译通过,看网上都是把这2行注释掉,内核可以跑起来,不知道会不会有什么隐患。
make后在arch/arm/boot/下生成zImage。把它也copy到/tftpboot/下
5. uboot启动后, 用tftp把zImage 放置到0x30008000 把 initrd.img.gz放置到0x30800000。第二个地址要和传递给内核的参数相同。然后go 0x30008000 就可以看到linux启动的信息,进入bash提示符了 .

3个多月,总算把系统完整的运行起来了。但是整个过程也差不多是囫囵吞枣,似懂非懂,哼哼,嵌入式操作系统,我才刚上路呢。

接下来的任务就是修改网卡驱动式系统能够支持DM9000,仔细分析内核,uboot结构。编译更新版本的croostool-4.0.1。工作太多太多了,慢慢学吧.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值