欢迎来到天天文库
浏览记录
ID:34493870
大小:1.45 MB
页数:29页
时间:2019-03-06
《linux内核学习起步》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux内核学习起步albcamusLastUpdate:2007年12月06日1,编译内核=========================1.0获取内核压缩------------------在http://www.kernel.org/pub/linux/kernel/v2.6/能看到一系列的文件,如ChangeLog-2.6.xx、linux-2.6.xx.tar.{gz
2、bz2}和patch-2.6.xx.{gz
3、bz2},你应该下载linux-2.6.23.tar.bz2这样的压缩包。1.1
4、找一个旧的.config作参考-------------------------------安装内核开发包(以FC8为例,是kernel-devel-2.6.23.1-42.fc8.i686.rpm),则/lib/modules//build目录下会有.config文件。#cdlinux-2.6.24-rc3#cp/lib/modules/2.6.23.1-42.fc8/build/.config.1.2配置、编译和安装-----------------------配置:#makemenuconfig/gconfig/xcon
5、fig/oldconfig/defconfig/allyesconfig/allmodconfigFYI:一般用menuconfig比较多,如果你喜欢GUI风格,也可以选择基于Qt的xconfig或基于Gtk+的gconfig。FYI:可以用O=指定编译生成的文件放在哪个目录.举例来说,如果我的内核源代码目录是/usr/src/linux-2.6.23,编译内核时指定了:makeO=/home/arc/build/linux-2.6.23那么/lib/modules/2.6.23下的`source'和`build
6、'这两个符号链接就分别指向了源代码和目标代码目录:#ls-l/lib/modules/2.6.23/sourcelrwxrwxrwx1rootroot2111-2213:35/lib/modules/2.6.23/source->/usr/src/linux-2.6.23#ls-l/lib/modules/2.6.23/buildlrwxrwxrwx1rootroot2811-2213:35/lib/modules/2.6.23/build->/home/arc/build/linux-2.6.23编译:#makeFYI:V=1/*verbos
7、e模式,把每一部执行的命令都打印出来。*一个小技巧就是,把标准输出重定向到一个文件中,*这样以后查找模块之间的依赖关系就很方便了*/C=1/*需要安装sparse程序,进行严格的静态C语法检查。*一般开发者会通过它来预防BUG*/安装:#makemodules_install#makeinstallFYI:正常情况下makeinstall会根据你机器的配置为你定制initrd文件,并更新grub.conf文件中的内容。但如果重新引导时发现无法启动,注意手工mkinitrd。例如:#mkinitrd-v–preloadlibata.ko–with
8、=ext3/boot/initrd-2.6.24-rc3.img2.6.24-rc3其中—preload指定的模块会在/etc/modprobe.conf之前加载,而--with指定的模块会在这之后加载。1.3文档---------#makehtmldocs//你也可以不用htmldocs指令HTML格式,而指定pdfdocs或//psdocs#makemandocs//为kernelAPI生成man手册#makeinstallmandocs/*将kernelAPI的手册页安装到man程序能找到的*目录中,这样就可以mancopy_from_u
9、ser了*/FYI:执行makehtmldocs/pdfdocs/psdocs之后,在O=指定的目录(如果没使用O=则是源代码目录)的Documentation/DocBook/下,会生成几份很重要的文档:kernelapi:内核开发的API手册usb:USBhost端的API手册gadget:USBdevice端的API手册kernellocking:内核加锁的HOWTO文档kernelhacking:内核开发的一些注意事项FYI:内核源代码目录的Documentation目录:kernel-parameter.txt:内核参数,加在一个gr
10、ubentry的kernel指令后面filesystems/vfs.txt:Linux虚拟文件系统的深入介绍memory-barriers:关于bar
此文档下载收益归作者所有