[Share Experiences] 编译打包deb内核
Tofloor
poster avatar
青稚°
Moderator
2023-05-07 04:06
Author

如果配置高可以考虑Vmbox编译,话不多说,开始教程。
1.开启源码仓库
为了可以使用 apt build-dep linux 自动安装编译所需的依赖,需要先为 apt 配置源码仓库
2.编辑 /etc/apt/sources.list,有些发行版(如Ubuntu)默认将 deb-src 开头的源码仓库注释掉了,只需要取消注释就可以了;而 UOS没有,所以UOS要编译就得添加:
echo "deb-src https://home-packages.chinauos.com/home plum main contrib non-free" >> /etc/apt/sources.list
3.安装需要的依赖

4.编辑 /etc/apt/sources.list 后执行sudo apt update

5.浏览器下载内核源码,(也可以安装 wget 下载内核源码包:sudo apt install -y wget)

6.自动下载编译所需的依赖执行命令:sudo apt build-dep -y linux
开始编译
7.下载需要的源码
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.3.1.tar.xz(wget下载方式,浏览器下载就不过多描述了)

8.解压文件,这里用命令解压,也可以用压缩软件解压

tar -xf linux-6.3.1.tar.xz

9.进入解压目录,也可以用文件管理打开目录后,打开终端

cd linux-6.3.1/

10.复制内核配置文件

cp /boot/config-"$(uname -r)" .config

11.编译deb

make deb-pkg -j4(根据自己CPU线程数修改j8,j11等)

12.我们只需要 linux-headerslinux-image 开头的两个 deb 文件,名字中带有 dbg,是调试内核用的。

13.双击 deb 文件安装,或者 sudo dpkg -i *.deb 安装

14.如果提示缺少git仓库,在编译内核目录输入以下命令

git init

git add .

git commit -m "1"

15.如果编译快完成提示zstd报错,咱们不要慌。

执行sudo aptitude install zstd

之后重新输入命令编译就可以了,不用担心之前的编译数据丢失。

16.完结

Reply Favorite View the author
All Replies
1 / 2
To page
落日
deepin
2023-05-07 04:13
#1

牛的,我去试试

Reply View the author
TXOS-C.User
deepin
2023-05-07 04:55
#2

,要是能有视频教程就更好了!

Reply View the author
DebuggerX
deepin
2023-05-07 05:15
#3
  1. 禁用DEBUG_INFO可以极大减少编译所需的时间和空间,也就是避免生成那个很大的dbg.deb
  2. 可以利用github action去自动化编译

具体可以参考我的这篇博客:

https://www.debuggerx.com/2021/08/17/Using-github-actions-to-build-kernel-deb-packages/

Reply View the author
青稚°
Moderator
2023-05-07 05:20
#4
DebuggerX
  1. 禁用DEBUG_INFO可以极大减少编译所需的时间和空间,也就是避免生成那个很大的dbg.deb
  2. 可以利用github action去自动化编译

具体可以参考我的这篇博客:

https://www.debuggerx.com/2021/08/17/Using-github-actions-to-build-kernel-deb-packages/

好啊,加精选了。

甚是好like

Reply View the author
wlly-lzh
deepin
2023-05-07 06:14
#5

收藏从未停止 折腾从未开始。

joy

Reply View the author
青稚°
Moderator
2023-05-07 15:34
#6
wlly-lzh

收藏从未停止 折腾从未开始。

joy

编译好后,你下次就不用编译了,直接保存deb就可以了。applaud

Reply View the author
fuuko
deepin
2023-05-07 16:27
#7

其实配置低也可以用虚拟化环境,把vmbox换成docker就行了,然后拉debian的镜像

Reply View the author
阿尼樱奈奈
Moderator
2023-05-07 16:42
#8

感谢提供教程。最近在论坛学到了许多知识呢。

Reply View the author
fax928
Moderator
2023-05-11 23:30
#9

10.复制内核配置文件

cp /boot/config-"$(uname -r)" .config

第十步怎么操作啊?

Reply View the author
青稚°
Moderator
2023-05-11 23:39
#10
fax928

10.复制内核配置文件

cp /boot/config-"$(uname -r)" .config

第十步怎么操作啊?

进入内核代码目录,打开命令行加sudo复制第10步的内容。

Reply View the author
青稚°
Moderator
2023-05-14 15:33
#11

Y: 模块驱动编译到内核中,启动时自动加载

N: 空格:表示该功能不编译到内核中,即新的内核将不支持该功能

M:模块会被编译,但是不会被编译到内核中,只是生成.o文件,我们可以收集这些.o文件做到linux的文件系统中,然后用insmod实现动态加载

Reply View the author
快乐飞翔
deepin
2023-05-15 16:48
#12

make deb-pkg -j4这一步之后怎么出现很多要选择N/y/?和M/n/y/?的啊?

Reply View the author
青稚°
Moderator
2023-05-15 17:15
#13
快乐飞翔

make deb-pkg -j4这一步之后怎么出现很多要选择N/y/?和M/n/y/?的啊?

都n就可以了,如果你有动手能力建议自己根据情况调整模块。

Reply View the author
阿尼亚
deepin
2023-05-16 01:28
#14

写的不错,最近没时间上线,我看看版主们。

Reply View the author
快乐飞翔
deepin
2023-05-16 02:00
#15

不管安装什么内核,虚拟机都启动不了,有什么办法吗?

截图_选择区域_20230515175956.jpg

Reply View the author
阿尼樱奈奈
Moderator
2023-05-16 02:11
#16
快乐飞翔

不管安装什么内核,虚拟机都启动不了,有什么办法吗?

截图_选择区域_20230515175956.jpg

虚拟机不支持新内核,去Virtualbox官网下载最新版。

Reply View the author
快乐飞翔
deepin
2023-05-16 06:00
#17
阿尼樱奈奈

虚拟机不支持新内核,去Virtualbox官网下载最新版。

不是不支持新内核,我用别人从deepin提取的6.2.1的包直接安装就行,自己编译或者别人编译的不行,好像我编译过一次也能启动,但忘了那次怎么搞的了。

Reply View the author
阿尼樱奈奈
Moderator
2023-05-16 06:10
#18
快乐飞翔

不是不支持新内核,我用别人从deepin提取的6.2.1的包直接安装就行,自己编译或者别人编译的不行,好像我编译过一次也能启动,但忘了那次怎么搞的了。

原来如此。那现在可以运行虚拟机了吗?

Reply View the author
青稚°
Moderator
2023-05-16 06:44
#19
阿尼樱奈奈

原来如此。那现在可以运行虚拟机了吗?

试试我上两天编译的5.10和6.1新版内核,内核版本号新的,用新代码,官方5.10和6.1配置文件编译的,应该能用vmbox。

Reply View the author
快乐飞翔
deepin
2023-05-17 00:47
#20
阿尼樱奈奈

原来如此。那现在可以运行虚拟机了吗?

我用别人从deepin提取的6.2.1的包直接安装后虚拟机是可以使用的。网上查了很多资料,说是内核更新后虚拟机还是使用旧内核所以不能用,怎么解决我也不懂。

Reply View the author
1 / 2
To page