您的位置:首页 > 运维架构 > Linux

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

2015-07-19 20:53 543 查看
【环境】



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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: