0. 系统自带的内核树有时,安装的系统已经自带了Linux内核树 ,足够用来编译驱动程序了。 自带的内核树通常位于 /lib/modules/<系统内核版本>/build 其中,系统内核版本可以用uname -r 来查看 $ uname -r5.11.0-41-generic 不过自带的内核树似乎不完整,所以建议按照下面的方法编译一个完整的内核树。
1. 环境配置
第一步初次配置内核树要先安装一些必要的环境 sudo apt-get build-dep linux linux-image-$(uname -r) (如果报错Error :: You must put some ‘source‘ URIs in your sources.list ,请参照这里)
第二步除了上面的环境之外,还要安装这些 sudo apt-get install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf dwarves
2. 下载源码sudo apt-get source linux-image-unsigned-$(uname -r) 这一步结束之后,会多出三个文件, linux-hwe-5.11_5.11.0-41.45~20.04.1.diff.gzlinux-hwe-5.11_5.11.0-41.45~20.04.1.dsclinux-hwe-5.11_5.11.0.orig.tar.gz 以及一个内核源码所在的文件夹 (注:文件名称根据不同的系统版本会有所不同)
3. 构建准备(注:任何时候,运行命令时遇见了permission denied ,只需要在命令开头加上sudo 后重新运行即可) 进入linux-hwe-5.11-5.11.0 文件夹,输入 稍微加载后,会进入这个页面 
这里什么都不用修改,直接关闭界面即可(方向键选择Exit 然后回车,或者连续按两下Esc 就能退出),原因见本章节末。 然后,会显示这个对话框 
蓝色框选中Yes 后,按下回车键退出即可。 这样会在当前目录下生成一个.config 文件(输入ls -a 就能找到这个文件),保证稍后的make 能够顺利执行。
4. 构建内核输入下面的命令开始构建(如遇见permission denied ,在命令开头加上sudo 后重新运行即可) 这里要狠狠地等一会儿,一般要一到数个小时。可以通过-j <最大并发任务数> 命令,使用并发来提速。最大并发任务数 一般可以是CPU数量的两倍。 (注:通过使用make help 进行查阅可以发现,在输入make 时,会自动执行 1)make vmlinux (构建原始内核) 2)make bzImage (构建压缩的内核)和 3) make modules (单独构建模块化的驱动)这三个动作)
5. 安装模块最后,把模块安装到/lib/modules/$(uname -r) 目录 sudo make modules_install
总结 下载地址: 通过docker容器搭建lamp架构的流程 如何快速在Linux中安装Nginx详解 |