【环境】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 tony@Ubuntu:~/win/linux-2.6.35$ vim Makefile 修改191和192行(可以先找到编译器的绝对路径) ARCH ?= arm CROSS_COMPILE ?= /home/tony/toolchain/bin/arm-none-linux-gnueabi-
3)拷贝配置文件 tony@Ubuntu:~/win/linux-2.6.35$ cp arch/arm/configs/s3c2410_defconfig .config
4)配置内核 tony@Ubuntu:~/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网卡 tony@Ubuntu:~/win/linux-2.6.35$ make menuconfig Device Drivers ---> [*] Network device support ---> [*] Ethernet (10 or 100Mbit) ---> <*> CS8900 support
11)重新编译内核 tony@Ubuntu:~/win/linux-2.6.35$ make zImage
******************************************************************** ** 备注:如果想生成uImage(注意权限) ** ** cp u-boot-2010.03/tools/mkimge /usr/bin/ ** ******************************************************************** 12)拷贝zImage到tftpboot目录进行测试 tony@Ubuntu:~/win/linux-2.6.35$cp arch/arm/boot/zImage /tftpboot |
|