linux-2.6.35内核移植—网卡驱动的添加
2011-11-15 19:13
573 查看
【实验目的】
本实验通过在上个实验结果的linux2.6.22.6内核上移植CS89900A网卡驱动,使其可以通过网络nfs的方式挂载在ubantu主机环境上的文件系统,从而实现linux系统的完全启动。
【实验环境】
1、 Ubuntu 10.10发行版
2、 u-boot-2010.03
3、 FS2410平台
4、 交叉编译器 arm-none-linux-gnueabi-gcc-4.3.2
【实验步骤】
linux-2.6.35内核中有cs8900的驱动,但是这个驱动需要我们修改,这也是第一种支持我们的网卡的方法.另外我们可以移植一个可以使用的cs8900网卡驱动到我们的内核中.这里我们使用第二种方法
1、解压内核
$ tar xvf linux.2.6.35.tar.bz2
$ cd linux-2.6.35
2、修改顶层Makefile
修改
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
为
ARCH ?= arm
CROSS_COMPILE ?= arm-none-linux-gnueabi-
3、拷贝配置文件
$ cp arch/arm/configs/s3c2410_defconfig .config
4、将cs8900.c和cs8900.h两个文件拷贝到linux-2.6.35/drivers/net/arm/下
5、修改Kconfig添加cs8900内核配置项
修改linux-2.6.35/drivers/net/arm/Kconfig添加如下内容:
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 network card of this type.
6、修改Makefile添加内核编译配置
修改driver/net/arm/Makefile添加如下内容:
obj-$(CONFIG_S3C2410_CS8900) += cs8900.o
7、添加地址映射定义
修改arch/arm/mach-s3c2410/include/mach/map.h文件,添加如下内容:
/* CS8900a */
#define pSMDK2410_ETH_IO __phys_to_pfn(0x19000000)
#define vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ IRQ_EINT9
8、添加平台代码
修改arch/arm/mach-s3c2410/mach-smdk2410.c文件,添加如下内容:
static struct map_desc smdk2410_iodesc[] __initdata = {
/* nothing here yet */
{vSMDK2410_ETH_IO, pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE} //添加内容
};
9、配置内核,使之支持cs8900网卡
$ make menuconfig
Kernel Features ---> //使用EABI工具链这两项是必须选择的
[*] Use the ARM EABI to compile the kernel
[*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL) (NEW)
Device Drivers --->
[*] Network device support --->
[*] Ethernet (10 or 100Mbit) --->
<*> CS8900 support
10、重新编译内核
$ make zImage
11、拷贝zImage到tftpboot目录下并重新启动开发板
$ cp arch/arm/boot/zImage /tftpboot
注意:这是通过在线调试 也可以直接下到目标板上去执行
本实验通过在上个实验结果的linux2.6.22.6内核上移植CS89900A网卡驱动,使其可以通过网络nfs的方式挂载在ubantu主机环境上的文件系统,从而实现linux系统的完全启动。
【实验环境】
1、 Ubuntu 10.10发行版
2、 u-boot-2010.03
3、 FS2410平台
4、 交叉编译器 arm-none-linux-gnueabi-gcc-4.3.2
【实验步骤】
linux-2.6.35内核中有cs8900的驱动,但是这个驱动需要我们修改,这也是第一种支持我们的网卡的方法.另外我们可以移植一个可以使用的cs8900网卡驱动到我们的内核中.这里我们使用第二种方法
1、解压内核
$ tar xvf linux.2.6.35.tar.bz2
$ cd linux-2.6.35
2、修改顶层Makefile
修改
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
为
ARCH ?= arm
CROSS_COMPILE ?= arm-none-linux-gnueabi-
3、拷贝配置文件
$ cp arch/arm/configs/s3c2410_defconfig .config
4、将cs8900.c和cs8900.h两个文件拷贝到linux-2.6.35/drivers/net/arm/下
5、修改Kconfig添加cs8900内核配置项
修改linux-2.6.35/drivers/net/arm/Kconfig添加如下内容:
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 network card of this type.
6、修改Makefile添加内核编译配置
修改driver/net/arm/Makefile添加如下内容:
obj-$(CONFIG_S3C2410_CS8900) += cs8900.o
7、添加地址映射定义
修改arch/arm/mach-s3c2410/include/mach/map.h文件,添加如下内容:
/* CS8900a */
#define pSMDK2410_ETH_IO __phys_to_pfn(0x19000000)
#define vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ IRQ_EINT9
8、添加平台代码
修改arch/arm/mach-s3c2410/mach-smdk2410.c文件,添加如下内容:
static struct map_desc smdk2410_iodesc[] __initdata = {
/* nothing here yet */
{vSMDK2410_ETH_IO, pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE} //添加内容
};
9、配置内核,使之支持cs8900网卡
$ make menuconfig
Kernel Features ---> //使用EABI工具链这两项是必须选择的
[*] Use the ARM EABI to compile the kernel
[*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL) (NEW)
Device Drivers --->
[*] Network device support --->
[*] Ethernet (10 or 100Mbit) --->
<*> CS8900 support
10、重新编译内核
$ make zImage
11、拷贝zImage到tftpboot目录下并重新启动开发板
$ cp arch/arm/boot/zImage /tftpboot
注意:这是通过在线调试 也可以直接下到目标板上去执行
相关文章推荐
- linux-2.6.35内核移植—LCD驱动的添加
- linux-2.6.35内核移植—USB驱动的添加
- 移植Linux3.4.2版本内核到mini2440(二)--添加网卡、UVC摄像头、LCD驱动
- linux-2.6.35内核移植—SD卡驱动的添加
- linux-2.6.35内核配置和网卡驱动添加 .
- linux-2.6.35内核配置和网卡驱动添加
- Linux 2.6.35内核配置和网卡驱动添加
- linux-2.6.35内核移植—网卡驱动的移植
- 移植Linux3.4.2版本内核到mini2440(二)--添加网卡、UVC摄像头、LCD驱动
- linux-2.6.35内核移植—网卡驱动的移植
- linux-2.6.35内核移植—Nand flash驱动的添加(分区)
- S3c6410 linux内核移植(10)---添加充电控制脚驱动(LED驱动)
- Linux-2.6.32.2内核在mini2440上的移植(六)---添加LCD背光驱动
- linux驱动入门-hello设备驱动程序编写及内核的更新(网卡的添加)
- Linux-2.6.32.2内核在mini2440上的移植(五)---添加LCD背光驱动
- 第二部分 s3c2440 移植linux内核 添加网卡支持 yaffs2文件系统支持
- 基于2.6.35内核的无线网卡驱动的移植
- real6410移植linux2.6.39.4内核(2)-添加nand flash驱动及启动cramfs文件系统
- 【转】LINUX-2.6.31内核移植及添加驱动
- Linux-2.6.22.6 内核移植--添加USB设备驱动