PDF书籍下载:
链接:https://pan.baidu.com/s/1duMBHv–pbpNSrQPQSuF_g
提取码:tz5x
包含英文原版和中文版,推荐看英文原版。
环境:Ubuntu14.04 + Linux 4.2.0-27-generic+sourceInsight
注1:书中所用内核是Linux 2.6,而我用的内核版本是Linux 4.2,可能之后书中一些代码需要根据内核更新而进行相应的改变。
注2:如果仅仅是要学习和演示书中代码的效果,使用Ubuntu14.04内核头文件 (/lib/modules/4.2.0-27-generic/build) 即可 (跳过1~3步)。build实际上是链接到真正的头文件 (/usr/src/linux-headers-4.2.0-27-generic) 。
注3:如果是嵌入式开发,那么就需要以下的步骤 (执行1~3步),配置移植需要的内核源码树在开发主机上。
1.下载内核源码
1.查看当前内核版本
方法一:
使用命令 uname -a 查看系统内核版本号及系统名称
方法二:
使用命令 cat /proc/version 查看目录"/proc"下version的信息
2.下载对应内核版本
方法一:
$sudo apt-cache search linux-source
查看源内的内核源码列表
$sudo apt-get install linux-source-4.15.0
对照自己的内核版本,下载源码列表中相应的版本
方法二:
进入内核官网 https://www.kernel.org/ 下载相应版本的内核。
2. 安装基本工具软件
$sudo apt-get install libncurses5-dev libssl-dev
$sudo apt-get install build-essential openssl
$sudo apt-get install zlibc minizip
$sudo apt-get install libidn11-dev libidn11
3.编译内核
1.解压内核压缩包,之后进入内核文件所在的目录。
2.执行命令
$sudo make mrproper
$sudo make clean
$sudo make menuconfig
make mrproper命令会删除所有的编译生成文件、内核配置文件(.config文件)和各种备份文件,所以几乎只在第一次执行内核编译前才用这条命令。
make clean命令则是用于删除大多数的编译生成文件,但是会保留内核的配置文件.config,还有足够的编译支持来建立扩展模块。所以你若只想删除前一次编译过程的残留数据,只需执行make clean命令。
menuconfig命令会弹出内核配置的图形化界面,进入界面后exit退出并选择保存,实现内核默认配置。
3.编译内核
$sudo make
4.编译和安装模块
$sudo make modules #编译模块
$sudo