文档详情

linux系統移植实验手册.doc

发布:2016-12-01约2.34万字共20页下载文档
文本预览下载声明
实验四 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
显示全部
相似文档