【Linux应用】Ubuntu下下载和使用对应的Linux源码

本文介绍如何在Ubuntu 18.04环境下下载、编译Linux内核源代码,并构建一个简单的测试系统。包括使用root权限下载源代码、解压及权限设置,以及通过make命令编译内核并配置.config文件。

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

说明

本文开始使用的ubuntu版本是16.04,后来改成18.04版本,“使用“部分就是在18.04版本下测试的。

下载源代码

使用的下载命令如下(注意下载的时候需要使用到root权限):

apt install linux-source

运行结果如下,下载到的代码位于/usr/src目录:

之后就可以使用tar命令来解压缩文件到指定的目录:

tar -xjvf linux-source-4.4.0.tar.bz2 -C /home/jw/Code/

其中的-C是用来指定解压缩的目标文件夹的。

这样就可以在指定的目录找到linux源代码并使用了。

不过还有一个小问题,因为前面使用了root来下载和压缩源代码,所以这时其它用户没有办法修改这些文件,可以使用下面的代码更改权限:

sudo chown jw:jw -R linux-source-4.4.0/

这里讲源代码的权限给了jw:jw,前一个是组名,后一个是用户名(根据实际情况修改成自己的权限就行)。

-R表示遍历目录下的所有文件。

这样jw这个用户也可以修改这些文件了。

编译

进入linux目录。

运行make命令,发现报错,说是没有.config文件。

建立默认的.config文件:

make defconfig

之后就可以使用make进行编译了。

编译完成之后的文件位于:

以上是编译默认的适用于x86的linux,实际的用处并不是很大。这里只是做简单的参考。

对于实际的应用,还得自己配置.config文件做具体的设置。

使用

不过事实上上述生产的bzImage还是可以在QEMU中使用的,如下所是:

不过可以看到会报错。

这是因为没有文件系统,这个需要自己创建。

下面是一个简单的创建方法:

1. 首先是创建了一个二进制,里面放的是一个最简单的文件系统:

2. 光有文件系统还不行,实际上这也不是一个完整的文件系统,还需要往里面填内容(主要是init文件),这里使用busybox,因此首先需要编译busybox。

3. 下载最新版本的busybox源代码,选择静态编译(在源代码目录下执行make menuconfig):

之后就是编译(make -j4)。

编译完成之后是安装,这里我们需要将它安装到前面生成的文件系统中,命令如下:

注意这里选择的路径就是在前面mount内核文件bzImage的tmp目录。

4. 之后使用如下的命令来启动内核:

这算是最简单的一个系统了吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值