ubuntu内核源码树的建立

本文详细介绍了如何从零开始构建Linux内核源码树的过程。包括检查内核版本、下载内核源码、配置内核选项以及编译内核等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始读<Linux设备驱动程序>的时候,一而再的看见要创建自己的内核源码树.起初并不是很明白源码树是什么,经过网上的搜寻,找了点概念,其实应该很形象,树的形式就是主干,树枝,树叶,都是一层一层的,逻辑性比较强,所以,明白了吧,就是内核的逻辑形式.(当然这是网络上看到的).感谢大家的无私奉献.
现在开始记下我建立的过程,及自己的想法
1.首先要查看自己的OS使用的内核版本如:
a@a-desktop:~$ uname -r
2.6.32-22-generic/*我的也算是很新的版本了*/

2.查看是否在安装系统的时候安装了源码.
a@a-desktop:/usr/src$ ls
linux-headers-2.6.32-16          
linux-source-2.6.32/*这是tar jxvf linux-source-2.6.32.tar.bz2后的文件*/
linux-headers-2.6.32-16-generic 
linux-source-2.6.32.tar.bz2/*就是你的os使用内核相对应的版本,这是我才下的,现在正在making呢,呵呵*,对于ubuntu来说,一般在安装的时候是没有的,所以,接下来往下做/
linux-headers-2.6.32-22          
nvidia-173-173.14.22
linux-headers-2.6.32-22-generic

3.寻找你相应的内核源码(这里不用sudo是一样的)
a@a-desktop:/usr/src$ sudo apt-cache search linux-source
[sudo] password for a: 
linux-source - Linux kernel source with Ubuntu patches
linux-source-2.6.32 - Linux kernel source for version 2.6.32 with Ubuntu patche/*这是我要下的,记住不是整个哦,开始的时候我把-后面的也一起弄进去了,结果提示有错误,呵呵,第一次自己按照网上的来还是容易搞错呢.多学多动手才是硬道理呀,应了高中老师的一句话:革命还未成功,同志仍需努力*/

4.下面就是下载内核了.
a@a-desktop:/usr/src$  sudo apt-get install linux-source-2.6.32
下载完成后,会自动的存放在/usr/src下,即使你不是在a@a-desktop:/usr/src$下操作的.那下下来后会是什么样子的呢,呵呵,就是前面第二步中那样一个压缩包啦,然后你找了这个压缩包了,解压吧.

5.解压压缩包
a@a-desktop:/usr/src$sudo tar jxvf  linux-source-2.6.32.tar,bz2/*解压后源码全部在linux-sourcc-2.6.32文件中了.

6.进入解压后源码的目录下
a@a-desktop:/usr/src/linux-source-2.6.32$sudo make oldconfig/*我不知道为什么,总之按照网上的说法来的*/

7.开始安装吧,make了,(这个要花很长时间,我没具体的算过,但是据大家说应该是一个小时左右,可是我花了接近两个小时,让我等得呀,呵呵)
a@a-desktop:/usr/src/linux-source-2.6.32$sudo make/*建议用sudo,当然也可以在root下make,但是如果直接make,会出现相应的错误,我试了两次的*/
a@a-desktop:/usr/src/linux-source-2.6.32$sudo make bzImage/*这步和上一步可以一起执行,可以不用make,直接进行这一步.
root@a-desktop:/usr/src/linux-source-2.6.32#make modules  /*编译 模块*/
root@a-desktop:/usr/src/linux-source-2.6.32#make modules_install /*安装 模块*/
执行结束之后,会在/lib/modules下生成新的目录/lib/modules/2.6.22-14-generic/,  下面的build文件就是编译模块的要用到的文件。至此内核编译完成。

### 升级Ubuntu上的内核源码 对于希望在Ubuntu上升级内核源码的情况,可以按照如下方法操作: #### 下载特定版本的Linux内核源码 当需要下载指定版本的Linux内核源码时,可以通过`wget`命令从官方服务器获取压缩包文件。例如,要下载版本号为5.4.1的Linux内核源码,可执行以下命令: ```bash $ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.1.tar.xz ``` 此命令会将目标文件保存到当前目录下[^1]。 #### 安装必要的工具和依赖项 为了编译新的内核,在开始之前应该先确保已经安装了构建环境所需的工具链以及相关库文件。通常情况下,这些都可以通过APT包管理器轻松获得。建议至少安装以下组件: ```bash sudo apt update && sudo apt install build-essential libncurses-dev bison flex \ libssl-dev libelf-dev dwarves ``` #### 解压并配置新内核 一旦下载完成之后,则需解压tarball档案,并进入对应的文件夹继续后续工作: ```bash tar xf linux-5.4.1.tar.xz cd linux-5.4.1/ make menuconfig ``` 这里使用的是`menuconfig`选项来进行图形化的配置界面调整;当然也可以选择其他方式如`olddefconfig`来自动生成默认设置而无需手动干预。 #### 编译与安装自定义内核 完成了所有必要修改后就可以着手于实际编译过程了。考虑到不同硬件平台可能存在的差异性因素影响效率表现,推荐采用多线程模式加速整个流程(`-jN`),其中N代表CPU核心数加一作为经验值参考: ```bash make -j$(nproc) sudo make modules_install sudo make install ``` 最后一步将会自动更新GRUB引导菜单并将最新版映像放置适当位置以便重启计算机时加载运行。 #### 更新后的验证 成功安装完毕以后应当重新启动系统以应用更改。开机过程中注意观察屏幕提示确认是否正常切换到了预期的新版本之上。另外还可以借助uname指令快速查看当前正在使用的具体编号信息: ```bash uname -r ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值