学习《Linux设备驱动程序》在Vmware里面搭建程序测试环境

平台:VmWare+Fedora7

版本:Linux2.6.21-1.3194.fc7

1.安装gcc

     由于默认安装没有gcc,所以只能选择rpm安装。因为各个安装文件有依赖关系,故按以下顺序安装(安装文件存放在安装光盘的Fedora目录下)才能成功:

rpm -ivh cpp-4.1.2-12(默认已安装)

rpm -ivh gcc-4.1.2-12.i386.rpm

rpm -ivh gcc-c++-4.1.2-12.i386.rpm(C++编译器)

rpm -ivh glibc-devel-2.6-3.i386.rpm

rpm -ivh glibc-headers-2.6-3.i386.rpm

rpm -ivh glibc-common-2.6-3.i386.rpm

rpm -ivh libgcc-4.1.2-12.i386.rpm

查看是否完成: gcc -v

卸载安装(由于依赖性,卸载时按上面的逆顺序卸载): rpm -e XXX.rpm

 

2.下载linux-2.6.21.tar.bz2(内核源文件和内核版本号匹配)

网址: http://download.chinaunix.net/download/0007000/6156.shtml

将该文件拷贝到/usr/src文件夹下,解压

tar -xjvf linux-2.6.21.tar.bz2

 

3.安装ncurses-devel(安装文件在Fedora安装光盘的Fedora目录下,安装光盘路径:/media)

rpm -ivh ncurses-5.6-6.20070303.fc7.i386.rpm

rpm -ivh ncurses-devel-6.6-6.20070303.fc7.i386.rpm

 

4.配置内核生成.conf文件(/usr/src/linux-2.6.21目录下)

make prepare

make menuconfig

相关内核配置方式说明:

make config            命令行界面更新配置

make menuconfig    菜单界面更新配置

make xconfig           QT图形界面更新配置

make gconfig           GTK图形界面更新配置

make oldconfig         通过已经提供的.config文件更新当前配置

make defconfig        所有选项默认配置

make randconfig     所有选项随机配置

make allmodconfig   所有选项"m"配置

make allyesconfig    所有选项"y"配置

make  allnoconfig    所有选项"n"的最小配置

 

5. 模块安装(/usr/src/linux-2.6.21目录下)

make modules_install

 

6. 将《Linux设备驱动程序》例子中的misc-modules下的hello.c和Makefile拷贝到/home/hello下

修改Makefile(修改后):

KERNELDIR ?= /usr/src/linux-2.6.21

...

obj-m := hello.o

编译及运行:

make

insmod hello.ko

rmmod hello

运行正常但无打印,这个可以通过dmesg | tail查看(在文件/var/log/messages环形缓冲区中)。

也可以通过修改/etc/syslog.conf的配置将打印信息输出到自定义的文件中。

至此,算是配置好运行环境了。

 

7. 交叉编译环境的配置

我用的是飞凌OK6410的板子,具体步骤

安装交叉编译器

下载2.6.28的内核源文件拷贝到/usr/src下

此处要修改内核的Makefile(默认是i386的体系结构,改成arm的)

修改hello的Makefile(默认是gcc编译器,改成arm下的gcc编译器)

编译及运行,具体有时间在说吧。  下一篇准备写下 OK6410内核移植(由自带的2.6.28的内核移植到2.6.32)

 

 

你可能感兴趣的:(学习《Linux设备驱动程序》在Vmware里面搭建程序测试环境)