Build platform under Ubuntu(2)

本文记录了解决Linux 2.6.8内核在arm平台编译时遇到的问题,包括移除不被识别的编译选项,修复内核启动参数配置错误,并调整硬件类型定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 尝试用arm-linux-gcc-3.4.1编译linux-2.6.8内核
make刚开始就失败,提示选项“short-load-bytes”不能识别。
上网查了一下,根据http://www.cygwin.com/ml/crossgcc/2004-05/msg00126.html提示,应该把short-load-bytes选项去除。搜索一下,这些file中和该选项有关:
    --------------------------------------------------
    root@shawn-laptop:/usr/src/2.6.8-rc3# grep -R short-load-bytes .
    ./arch/arm26/Makefile:CFLAGS_BOOT       :=-mapcs-26 -mcpu=arm3 -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm
    ./arch/arm26/Makefile:CFLAGS            +=-mapcs-26 -mcpu=arm3 -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm
    ./arch/arm26/SCCS/s.Makefile:CFLAGS_BOOT        :=-mapcs-26 -mcpu=arm3 -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm
    ./arch/arm26/SCCS/s.Makefile:CFLAGS             +=-mapcs-26 -mcpu=arm3 -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm
    ./arch/arm/Makefile:CFLAGS              +=-mapcs-32 $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm
    --------------------------------------------------
    试试仅仅把./arch/arm/Makefile:CFLAGS中的-mshort-load-bytes替换,结果出现另外一个错误。放弃这次尝试。

2. 纠正osk newbie guider文档中一个错误,重新用arm-gcc-3.4.1编译的2.6.20 kernel:
    (参考http://oskfordummies.hp.infoseek.co.jp/faq.html#i5)
    --------------------------------------------------
    header.S中
    mov     r7, #(MACH_TYPE_OMAP_OSK & 0xf)
    应当是
    mov     r7, #(MACH_TYPE_OMAP_OSK & ~0xf)
    --------------------------------------------------
    ,以期解决“解压缩后kernel无反应”问题,无效!

3. 在2的基础上,修改 include/asm-arm/mach-types.h中的
    --------------------------------------------------
    #define MACH_TYPE_OMAP_OSK             515
    --------------------------------------------------
    为
    --------------------------------------------------
    #define MACH_TYPE_OMAP_OSK             212
    --------------------------------------------------
    ,重新用arm-gcc-3.4.1编译的2.6.20 kernel。
   
4. 找到错误原因了,结果很好笑:(
在启动kernel时候需要设置参数如下:
    --------------------------------------------------
    setenv bootargs console=ttyS0,115200n8 noinitrd ip=138.198.177.250:138.198.177.39:138.198.179.254:255.255.252.0:osk:eth0:off root=/dev/nfs rw nfsroot=138.198.177.39:/data/rootfs2.6,nolock mem=32M
    --------------------------------------------------
这里的console是针对板子上的设备而言。我这里因为在PC端使用的是USB2UART线,minicom中设置的是ttyUSB0,这里也设置成了ttyUSB0——板子上当然找不到这个设备,所以...找块豆腐撞死算了!
现在,使用最初编译的uImage.cc.20070429即可正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值