Linux 2.6.35内核配置 armv7 s5pv210 模块加载错误









【环境】
 
1:Ubuntu 10.10
 
2:u-boot-2010.03
 
3:linux-2.6.35
 
4:优龙FS2410
 
5:交叉编译器:arm-none-linux-gnueabi-gcc version 4.3.2



1)解压内核
 


tar jxf linux-2.6.35.tar.bz2
 






2)修改顶层Makefile
 
ww.linuxidc.com@linuxidc:~/win/linux-2.6.35$ vim Makefile
 
 修改191和192行(可以先找到编译器的绝对路径)
 
ARCH        ?= arm
 
CROSS_COMPILE   ?= /home/tony/toolchain/bin/arm-none-linux-gnueabi-
 
 
 
3)拷贝配置文件 
 
ww.linuxidc.com@linuxidc:~/win/linux-2.6.35$ cp arch/arm/configs/s3c2410_defconfig .config
 
 
 
4)配置内核
 
ww.linuxidc.com@linuxidc:~/win/linux-2.6.35$ make menuconfig
 
查看类型是否为S3C2410
 
System Type --->
 
        ARM system type (Samsung S3C2410, S3C2412, S3C2413, ……)  --->
 


用新交叉编译器需选择EABI 
 
Kernel Features  --->
 
        [*] Use the ARM EABI to compile the kernel
 
        [*]   Allow old ABI binariesto run with this kernel (EXPERIMENTAL) (NEW)
 
 
 
5)将cs8900.c和cs8900.h两个文件拷贝到linux-2.6.35/drivers/net/arm/下
 
 
 
6)修改linux-2.6.35/drivers/net/arm/vim Kconfig,添加cs8900内核配置项
 
添加
 
config S3C2410_CS8900
 
    tristate "CS8900 support"
 
    depends on NET_ETHERNET && ARM && ARCH_SMDK2410
 
    ---help---
 
      support for cs8900 chipset base Ethernet cards, if you have a networkcard of this type.
 
 
 
7)修改linux-2.6.35/drivers/net/arm/vim Makefile
 
添加:obj-$(CONFIG_S3C2410_CS8900) += cs8900.o
 
 
 
8)添加地址映射定义
 
修改文件:linux-2.6.35/arch/arm/mach-s3c2410/include/mach$vim map.h
 
添加:
 
/* CS8900a */
 
#define pSMDK2410_ETH_IO    __phys_to_pfn(0x19000000)
 
#define vSMDK2410_ETH_IO    0xE0000000
 
#define SMDK2410_ETH_IRQ    IRQ_EINT9
 
 
 
9)添加平台代码
 
修改文件:linux-2.6.35/arch/arm/mach-s3c2410$vim mach-smdk2410.c
 
在59行添加一句:
 
57 static struct map_desc smdk2410_iodesc[]__initdata = {
 
58   /*nothing here yet */
 
59     {vSMDK2410_ETH_IO, pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE}
 
60};
 






10)配置内核,使之支持cs8900网卡 
 
ww.linuxidc.com@linuxidc:~/win/linux-2.6.35$ make menuconfig
 
Device Drivers  --->
 
        [*] Network device support  --->
 
                [*]  Ethernet (10 or 100Mbit)  --->
 
                        <*>  CS8900 support
 
 
 
11)重新编译内核
 
ww.linuxidc.com@linuxidc:~/win/linux-2.6.35$ make zImage
 




********************************************************************
 
**        备注:如果想生成uImage                                **
 
**        cp u-boot-2010.03/tools/mkimge /usr/bin/         **
 
********************************************************************
 






12)拷贝zImage到tftpboot目录进行测试
 
ww.linuxidc.com@linuxidc:~/win/linux-2.6.35$cp arch/arm/boot/zImage /tftpboot


 






13)在开发板设置参数
 
setenv serverip 192.168.7.103


 
setenv ipaddr  192.168.7.163


 
setenv gatewayip 192.168.7.1


 
setenv ethaddr 08:00:3e:26:0a:5b


 
setenv bootcmd tftp 30800000 uImage \; bootm


 
/*** setenv bootcmd tftp 33000000 zImage \; go 33000000 如果用zImage用这个***/


 
setenv bootargs console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=192.168.7.103:/opt/filesystem ip=192.168.7.163


 
测试前提:已配置好TFTP、NFS服务
 
注①:/opt/filesystem为自己的已移植好的文件系统目录
 
注②:serverip为Ubuntu的IP,ipaddr为开发板的IP
 






14)如果想烧写到nand flash,让内核从nand启动,依次设置如下u-boot参数
 
tftp 33000000 uImage


 
nand erase 40000 300000


 
nand write 33000000 40000 300000


 
setenv bootcmd nand read 33000000 40000 300000 \; bootm 33000000


本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-10/45127.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值