编译fedora 9 kernel 只有编译kernel之后才能编译驱动

 

下载:http://download.fedoraproject.org/pub/fedora/linux/releases/9/Fedora/i386/iso/Fedora-9-i386-DVD.iso

1.文本界面安装;什么软件包都不装。默认分区。简体中文支持。指定IP。

2.进入图形界面后:全英文的。

修改/etc/inittab---->更改为启动到图形方式5后,自动登陆更新界面为中文。

3.添加路由:route add default gw eth0 以便可以上网。

4.打开Firefox上网,为脱机状态,在文件菜单下,去掉脱机状态。

脱机的原因估计是:NetworkManager这个服务的关系,把这个服务禁止掉,重新激活网卡,再开firefox就不会脱机了。而且“添加删除程序”也可以用了。

5.修改/etc/yum.conf,在最后增加

[guangpan]
name=guangpan
baseurl=file:///media
gpgcheck=0

这样就可以试用本地光盘和yum来安装软件了。
mount   /dev/cdrom   /media

6.安装中文输入法:
yum install scim-python-chinese

设置输入法的开启键为ctrl+space

直接运行scim提示FrontEnd模块装载错误。。。。输入法启动不了。

7.安装openoffice-write后,输入法自动可以使用。。。。

打开firefox,自动关闭,据查firefox与scim有冲突。

在终端下运行firefox,却好好。。。。。

 

8.安装内核源代码:ftp://ftp.is.co.za/mirror/fedora.redhat.com/linux/development/source/SRPMS/kernel-2.6.25-14.fc9.src.rpm

#mkdir   /usr/src/redhat

#rpm     -Uvh    kerenl-2.6.25-14.fc9.src.rpm

#cd       /usr/src/redhat/SPECS

#ls

kernel.spec

#rpmbuild -bp --target i686 kernel.spec

#cd ..
#cd   BUILD
#ls
kernel-2.6.25
# cd kernel-2.6.25
# ls
linux-2.6.25.i686   vanilla-2.6.25  

# cd linux-2.6.25.i686

接下来是编译内核,一定要编译内核,否则无法编译驱动程序。
#cp configs/kernel-2.6.25-i686.config   .config

#vi Makefile

设置EXTRAVERSION的值 ,不修改这个值,insmod驱动程序的时候会提示错误,demsg | tail显示:version magic '2.6.25 SMP mod_unload 686 4KSTACKS ' shoud be '2.6.25-14.fc9.i686 SMP mod_unload 686 4KSTACKS'
EXTRAVERSION = -14.fc9.i686

#make mrproper

#make oldconfig

#make

#make modules

#make clean      #执行后可以减少磁盘空间,似乎不影响自己的驱动的编译???与make mrproper什么区别?

# cd /usr/src

#mkdir kernels

# ln -s /usr/src/redhat/BUILD/kernel-2.6.25/linux-2.6.25.i686      /usr/src/kernels/2.6.25-14.fc9.i686

--------------------------------------------------------------------------------------------------------------------------------------------------

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
printk(KERN_ALERT "Hello, world/n");
return 0;
}
static void hello_exit(void)
{

printk(KERN_ALERT "Goodbye, cruel world/n");
}

module_init(hello_init);
module_exit(hello_exit);

--------------------------------------------------------------------------------------------------
Makefile:
obj-m := hello.o 
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
ALL:
$(MAKE) -C $(KERNELDIR) M=$(PWD)
CLEAN:
rm -rf *.o *~.core .depend .*.cmd *.ko *.mod.c .tmp_versions
------------------------------------------------------------
9.编译ldd3的例子scull;
CFLAG,改成EXTRA_CFLAG
没有<linux/config.h>,可以注释掉,或者改为<linux/autoconf.h>
access.c中添加#include<linux/sched.h> 

你可能感兴趣的:(编译fedora 9 kernel 只有编译kernel之后才能编译驱动)