设为首页 加入收藏

TOP

Linux 2.6.35内核配置和网卡驱动添加
2014-11-24 12:35:34 来源: 作者: 【 】 浏览:0
Tags:Linux 2.6.35 内核 配置 网卡驱动 添加

【环境】


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


修改191和192行(可以先找到编译器的绝对路径


ARCH = arm


CROSS_COMPILE = /home/tony/toolchain/bin/arm-none-linux-gnueabi-



3)拷贝配置文件



4)配置内核


查看类型是否为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.ccs8900.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网卡


Device Drivers --->


[*] Network device support --->


[*] Ethernet (10 or 100Mbit) --->


<*> CS8900 support



11)重新编译内核



********************************************************************


** 备注:如果想生成uImage **


** cp u-boot-2010.03/tools/mkimge /usr/bin/ **


********************************************************************


12)拷贝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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Python整合FFmpeg实现视频文件的.. 下一篇Android手机归属地查询工具

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·工业机器人TCP校准中 (2025-12-25 05:19:17)
·opc 通讯协议与 TCP (2025-12-25 05:19:15)
·labview中tcp/ip通信 (2025-12-25 05:19:13)
·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)