这个依赖安装之后再进行编译一样报同样的错误,怎么解决呢
应该是没装好吧,我没碰到过。
这个依赖安装之后再进行编译一样报同样的错误,怎么解决呢
应该是没装好吧,我没碰到过。
应该是没装好吧,我没碰到过。
我查到是pahole这个命令是属于dwarves这个包了,所以我是安装dwarves这个安装包,想问一下你是不是也是安装dwarves这个安装包,还是说需要下载源码进行编译安装
我查到是pahole这个命令是属于dwarves这个包了,所以我是安装dwarves这个安装包,想问一下你是不是也是安装dwarves这个安装包,还是说需要下载源码进行编译安装
直接复制那一行,粘贴浏览器一艘就有了
应该是没装好吧,我没碰到过。
你是依赖没装上,我特意弄了个wsl测试了下,这两个依赖是debian12的。
http://ftp.de.debian.org/debian/pool/main/libb/libbpf/libbpf1_1.1.0-1_amd64.deb
http://ftp.de.debian.org/debian/pool/main/d/dwarves/pahole_1.24-4.1_amd64.deb
依次安装前面两个就行了。
我试过这样(uos下编译kernel.org下的新内核),现在用着倒是还算正常,不清楚有没有其他影响?——
我只是编着自用或装着玩儿,并且用不到debug调试,所以就修改.config文件,关掉了dbg包的编译和打包。
这样只会生成linux-image、linux-header、linux-libc-dev这3个deb包,好处是整个编译打包流程能节省大约一半时间。
操作方法是,把/boot/config-x.x.x复制为.config之后,再修改.config:
sed -ri 's/^(CONFIG_DEBUG_INFO.*)=y/\1=n/' .config
然后再执行编译和打包:
#LOCALVERSION设置为-xxx,从新内核启动后,uname -r执行后会输出6.5.8-xxx
#KDEB_PKGVERSION设置为$(make kernelversion)-xxxx,生成的deb包的版本号为6.5.8-xxxx
#添加olddefconfig参数,避免交互式询问
make olddefconfig bindeb-pkg -j$(nproc) LOCALVERSION=-amd64-desktop-new KDEB_PKGVERSION=$(make kernelversion)-1
没啥影响,基本正常的。
现在github还行,运气好有大几百kb/s,运气不好的话就慢一点了,也得有几十kb/s。
我的拉取脚本限定了拉取最新的一个版本和只拉取主线分支,速度还是可以接受的。
差不多抽根烟的功夫就能下来。
后续更新也只需要 git pull
,只拉取更新了的,不用全都拉取,应该不会太慢。
make[4]: *** [Makefile:359:__build_one_by_one] 错误 2
make[3]: *** [debian/rules:25:build-arch] 错误 2
dpkg-buildpackage: error: make -f debian/rules binary subprocess returned exit status 2
make[2]: *** [scripts/Makefile.package:146:bindeb-pkg] 错误 2
make[1]: *** [/media/nsz/_dde_data/linux-6.6.3/linux-6.6.3/Makefile:1538:bindeb-pkg] 错误 2
make: *** [Makefile:234:__sub-make] 错误 2
到最后提示这个错误
make[4]: *** [Makefile:359:__build_one_by_one] 错误 2
make[3]: *** [debian/rules:25:build-arch] 错误 2
dpkg-buildpackage: error: make -f debian/rules binary subprocess returned exit status 2
make[2]: *** [scripts/Makefile.package:146:bindeb-pkg] 错误 2
make[1]: *** [/media/nsz/_dde_data/linux-6.6.3/linux-6.6.3/Makefile:1538:bindeb-pkg] 错误 2
make: *** [Makefile:234:__sub-make] 错误 2
到最后提示这个错误
应该还有别的报错,往前找找。
得改配置文件,关掉内核模块签名。
百度一下这个报错,有相关的解决方案,具体改的大概是有signed的几个项,看到了我知道,现在说不上来。。
得改配置文件,关掉内核模块签名。
百度一下这个报错,有相关的解决方案,具体改的大概是有signed的几个项,看到了我知道,现在说不上来。。
找到原因了,是缺少lz4😌,配置文件不会不敢改,根据你的回复去问ai,知道怎么看日志,才发现的。其实输出文件也有,但我没看仔细(忘了搜索功能)。🙇♂️
Popular Events
More
今天给大家带来deepin主线内核编译的教程。
〇、写在前面
1、为什么要自己编译内核
官方内核是一个比较通用的版本,自己在编译内核的时候内核的脚本会根据自己电脑做一些配置,理论上跟自己的电脑更加匹配。
我对比过官方的
.config
文件,在执行make menuconfig
之后即使你啥都不改,某些配置项都跟官方的不太一样。应该是有脚本控制了这块,导致一些区别。
deepin的主线内核会一直跟随linux最新版本迭代的,比源里的新,尤其是使用新硬件的朋友,非常需要这个。
2、为什么使用deepin主线内核
相比于linux官方内核,deepin内核会多一些
配置
、驱动
这样跟我们的系统就更加匹配了。我们自己用linux官方内核编译的内核,本质上跟搬运其他系统内核区别不算太大。
3、免责声明
本教程需要一定的动手能力,要求会以下技能:
本教程只是我个人研究分享,老司机能承受风险的可以试试,出了啥意外,比如损毁硬件(理论上内核有问题,也可能导致的),我概不负责。
本教程只是我个人研究分享,老司机能承受风险的可以试试,出了啥意外,比如损毁硬件(理论上内核有问题,也可能导致的),我概不负责。
本教程只是我个人研究分享,老司机能承受风险的可以试试,出了啥意外,比如损毁硬件(理论上内核有问题,也可能导致的),我概不负责。
一、获取主线内核
deepin 主线内核的地址在:https://github.com/deepin-community/kernel
找一个剩余空间大于12g的地方,然后使用git拉下来主线内核
git clone [email protected]:deepin-community/kernel.git --depth=1 --branch=kernel-mainline
这里面加了
--depth=1
是只拉去最新版本,后面branch=kernel-mainline
这个main-line
就是主线内核的意思,当然这里还有uos的分支,我们今天不需要。如果要编译6.4版本的内核,大家可以拉取另一个分支:
git clone [email protected]:deepin-community/kernel.git --depth=1 --branch=linux-6.4.y
运气好的时候速度还是不错的,一会就拉取完了。
拉取完之后会多这么一个文件夹:
二、配置文件
1、cd到刚才那个kernel文件夹中
2、拷贝现有系统的
.config
文件要获取
.config
需要在root下。sudo su
然后使用cp命令,复制想用的内核配置文件到当前文件夹,比如我就用的:
cp /boot/config-6.4.12-dppve-fslong+ .config
可以先输入
cp /boot/config
,然后按tab
键代码补全,选中你想要的内核配置文件,后面第二个参数.config
是粘贴的名字。然后使用
exit
命令退出root
即可。3、配置内核配置文件
使用
make menuconfig
可以打开图形化配置文件程序,这个命令会自动加载我们刚才拷贝过来的.config
文件。就这一步会对
.config
进行针对性优化,生成的会是比较匹配自己电脑的配置。个人建议新手就别改东西了,直接保存即可。
个人建议新手就别改东西了,直接保存即可。
个人建议新手就别改东西了,直接保存即可。
不出意外的话会是下面这个界面了:
三、编译内核
到这我们就可以编译内核了,我推荐编译成deb包的方式,虽然打包会消耗一些时间,但方便后续的安装、删除、分享。
可能很多朋友怕编译内核的时候电脑发烫,这里有个小技巧,我们可以临时关闭cpu睿频功能。
关闭睿频之后,cpu就不那么烫了,也比较稳定,甚至没你打游戏时候占用高。
当然编译时间也会稍微久一点,如果是intel的cpu,可以使用下面命令关闭睿频:
大家也不用担心时间会特别久,我测试过不关闭睿频我电脑35分钟编译完,关闭睿频大概45分钟编译完。
个人猜测不关闭睿频电脑发烫碰到温度墙之后也会降频。
到了真正的编译阶段,反而就只有一行命令,这一行命令会生成四个deb包:
make bindeb-pkg -j8
上面的数字8代表8个进程编译,虽然我电脑只有6个核心,但我就喜欢j8编译,如果你核心更多的话数字可以改大点,更快一些。
这一步肯定会各种报错和幺蛾子,就需要大家根据报错情况看缺啥安装啥。
这一步肯定会各种报错和幺蛾子,就需要大家根据报错情况看缺啥安装啥。
这一步肯定会各种报错和幺蛾子,就需要大家根据报错情况看缺啥安装啥。
直到不报错了,那么我们就静等编译完成即可。
四、安装内核
在漫长的等待之后,会在和kernel文件夹所在目录下生成四个deb包,一般情况下我们安装下面两个就可以了:
推荐使用apt命令安装,比如我这个就可以用下面命令安装:
sudo apt install ./linux-headers-6.5.3-dppve-fslong_6.5.3-gc669c1fa83b2-1_amd64.deb ./linux-image-6.5.3-dppve-fslong_6.5.3-gc669c1fa83b2-1_amd64.deb
你们就需要看自己打包成的是啥样的,然后自己安装。
安装完,重启选择新内核进入即可。
五、编译清理
还是cd到kernel文件夹内:
然后执行清理命令:
make clean
就能够释放我们刚才编译内核时候生成占用的空间。
六、内核更新
后面如果deepin主线内核更新了,为了干净还是重新挂机拉取吧,重新执行上面的**一、**二、三、四步。
七、写在最后
今天就分享到这,这些操作还是有一定风险性的,大家在操作时候一定要心细,不要犯错了。