Fedora 14 编译LDD3的源码

直接到example下的某个目录如scull下去make,会出现一堆错误
说明一下,Fedora14带内核源码的头文件(或者yum install kernel-devel安装这些头文件),没带源码,但是对于编译ldd3里的的例子,这些头文件就足够了
并且Makefile已经指定了正确的内核目录
#KERNELDIR ?= /lib/modules/$(shell uname -r)/build

所以出现的这些错误,仅仅是由内核版本不一致造成的
ldd3的例子是2.6.10内核时代的东东,而fc14的内核版本是2.6.35.6-45
2.6.35内核中更新了的一些数据结构,所以用当时参照2.6.10内核写的ldd3的例子就很可能用新内核去编译时而出错
解决方法是让ldd的例子去适应新的内核版本或者给换个2.6.10的内核去编译
error: ‘system_utsname’ undeclared
新版本没有这个东东,干脆就在那个文件里定义一个char *system_utsname="x86";然后在代码中去掉.machine


如果想拥有一个完整的内核源代码来代替fc14自带的壳,可以如下去做
到下面链接下载14的kernel即kernel-2.6.35.6-45.fc14.src.rpm 
RedHat.com/pub/fedora/linux/releases/14/Fedora/source/SRPMS/
另外,15的

而13 12 11 10 9 等在此处

比如

目前的情况是这样,但不久后14 15可能也会搬到archives去
说明:也可到去下某个版本的内核源码,但是下载编译后,要给fc14换上(安装)这个内核镜像,
这样以后用这个版本的内核源码编译的内核模块在本机insmod时才能顺利通过
执行

rpm -uvh  kernel-2.6.35.6-45.fc14.src.rpm
执行 

cd  /root/rpmbuild/SPECS
说明:fedora14默认/root/rpmbuild为srpm的主目录(貌似以前版本为/usr/src/redhat/)
refer to ?id=381
执行以下命令,出现错误

[root@localhost SPECS]# rpmbuild -bp --target $(uname -m) kernel.spec    Building target platforms: i686   Building for target i686   error: Failed build dependencies:       xmlto is needed by kernel-2.6.35.6-45.fc14.i686       asciidoc is needed by kernel-2.6.35.6-45.fc14.i686       elfutils-devel is needed by kernel-2.6.35.6-45.fc14.i686       perl(ExtUtils::Embed) is needed by kernel-2.6.35.6-45.fc14.i686  

把缺少的东东分别安装一下
yum install xmlto
yum intsall asciidoc
yum install elfutils-devel
yum install perl-ExtUtils-Embed.noarch (this refers to )
重新执行上面那个命令,
源码已经塞进了/root/rpmbuild/BUILD

[root@localhost rpmbuild]# ls   BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS   [root@localhost rpmbuild]# cd BUILD   [root@localhost BUILD]# ls   kernel-2.6.35.fc14   [root@localhost BUILD]# ls kernel-2.6.35.fc14/   linux-2.6.35.i686  vanilla-2.6.35   [root@localhost BUILD]# ls kernel-2.6.35.fc14/linux-2.6.35.i686/   arch                      config-rhel-generic     fs             net   block                     configs                 include        README   config-arm                config-s390x            init           REPORTING-BUGS   config-debug              config-sparc64-generic  ipc            samples   config-generic            config-x86_64-generic   Kbuild         scripts   config-i686-PAE           config-x86-generic      kernel         security   config-ia64-generic       COPYING                 lib            sound   config-nodebug            CREDITS                 MAINTAINERS    tools   config-powerpc32-generic  crypto                  Makefile       usr   config-powerpc32-smp      Documentation           merge.pl       virt   config-powerpc64          drivers                 mm   config-powerpc-generic    firmware                modules.order   [root@localhost BUILD]# cd kernel-2.6.35.fc14/linux-2.6.35.i686/   [root@localhost linux-2.6.35.i686]#   

执行

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwyspz.html