linux系統移植实验手册.doc
文本预览下载声明
实验四 Linux-2.6.14内核移植--网卡驱动的添加
【实验目的】
本实验linux2.6.14内核上移植1、Ubuntu 7.0.4发行版2、以及开发板中移植好的u-boot
3、arm-linux-gcc
【实验步骤】
(1) 下载linux内核/pub/linux/kernel/v2.6/linux-.tar.bz2 ,下载linux2.6.14内核致/source/kernel目录,如果没有/source/kernel目录,自行建立目录。
root@:/source/kernel# cd /source/kernel/
root@:/source/kernel# tar -xjvf linux-2.6.14.tar.bz2
root@:/source/kernel/linux-2.6.14# pwd
/source/kernel/linux-2.6.14
root@:/source/kernel# cd linux-2.6.14
进入内核解压后的目录,以后示例中,只要是相对路径全部是相对于 /source/kernel/linux-2.6.14这个目录。
(2) 修改Makefile文件
修改内核目录树根下的的Makefile,指明交叉编译器:
root@:/source/kernel/linux-2.6.14# vim Makefile
找到ARCH和CROSS_COMPILE,修改
ARCH = arm
CROSS_COMPILE = arm-softfloat-linux-gnu-
保存退出,然后设置你的PATH环境变量,使其可以找到你的交叉编译工具链:
root@:/source/kernel/linux-2.6.14# echo $PATH
:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
如果第一个路径为/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin,则不用再进行设置,如果不是则进行下面步
骤进行设置:
root@:/source/kernel/linux-2.6.14#
export PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin: (动态加载环境变量,终端关闭后,自己所加载的环境变量立即消失)。
或者修改./bashrc文件:(静态加载环境变量,不随终端的关闭而消失)
root@:/source/kernel/linux-2.6.14# vim ~/.bashrc在文件最后添加
export PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:
再重新登陆:
root@:/source/kernel/linux-2.6.14# su –
下面的所有操作都在linux2.6.14内核源码目录中,可以参考前面的实验。3)添加网卡驱动到内核
将cs8900a.h和cs8900a.c文件拷贝到内核代码目录drivers/net中:
linux@:/source/kernel/linux-2.6.14$cp /mnt/hgfs/disk/cs8900a.* drivers/net
(4)修改Makefile和Kconfig文件
linux@:/source/kernel/linux-2.6.14-$ vim drivers/net/Makefile
在文件中添加:
obj-$(CONFIG_CS8900a) +=cs8900a.o
(5)保存退出,修改Kconfig文件linux@:/source/kernel/linux-2.6.14-$ vim drivers/net/Kconfig
在以下代码段下面
config DM9000
tristate DM9000 support
depends on ARM NET_ETHERNET
select CRC32
select MII
help
Support for DM9000 chipset.
To compile this driver as a module, choose M here and read
file:Documenta
显示全部