X86 ubuntu 发行版 内核源码探索

前言
我的工作平台是 这里 : https://blog.csdn.net/u011011827/article/details/127311660
Linux kernel source
1. 从 kernel git 获取 : https://github.com/torvalds/linux , 切到对应的tag
2. 从 kernel 发布版本库获取 : https://mirrors.edge.kernel.org/pub/linux/kernel/
// 按道理,linux upstream 并不能完全适配 ubuntu

linux-source -Linux kernel source with Ubuntu patches
3. 从 ubuntu git 获取 : https://www.cnblogs.com/oxspirt/p/12154515.html,切到对应的tag
4. 从 apt-get 获取 sudo apt-get install linux-source
// 按道理,3 和 4 得出来的东西应该是一样的,我们选择方案4来做

安装包
我选用第四种,安装了以下包
linux-source
linux-source-5.15.0
linux-headers-5.15.0-43
linux-headers-5.15.0-43-generic
对linux运行版本的分析
我们的内核版本为 5.15.0-43-generic
cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.15.0-43-generic root=UUID=9761235b-6bf4-4320-a51a-d46dddcd2a74 ro quiet splash vt.handoff=7

cat /proc/version
Linux version 5.15.0-43-generic (buildd@lcy02-amd64-076) (gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #46-Ubuntu SMP Tue Jul 12 10:30:17 UTC 2022

dmesg
[    0.000000] Linux version 5.15.0-43-generic (buildd@lcy02-amd64-076) (gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #46-Ubuntu SMP Tue Jul 12 10:30:17 UTC 2022 (Ubuntu 5.15.0-43.46-generic 5.15.39)

grub
menuentry 'Ubuntu, with Linux 5.15.0-43-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-43-generic-advanced-9761235b-6bf4-4320-a51a-d46dddcd2a74'

内核配置探索
我们的 内核配置 是 如下文件,两个文件内容一致
/usr/src/linux-headers-5.15.0-43-generic/.config 
/boot/config-5.15.0-43-generic 

$ dpkg -S /usr/src/linux-source-5.15.0/linux-source-5.15.0.tar.bz2 
linux-source-5.15.0: /usr/src/linux-source-5.15.0/linux-source-5.15.0.tar.bz2

$ dpkg -S /usr/src/linux-headers-5.15.0-43-generic/.config 
linux-headers-5.15.0-43-generic: /usr/src/linux-headers-5.15.0-43-generic/.config

$ diff /usr/src/linux-headers-5.15.0-43-generic/.config /boot/config-5.15.0-43-generic 
suweishuai@pc:/usr/src$

拷贝 
	cp /usr/src/linux-source-5.15.0/linux-source-5.15.0.tar.bz2  ~/work
切换工作目录
	cd ~/work
解压
	tar xvf linux-source-5.15.0.tar.bz2
配置
	cp /boot/config-5.15.0-43-generic  linux-source-5.15.0/.config
打补丁
	cp /usr/src/linux-source-5.15.0/debian linux-source-5.15.0 -r
编译
	cd linux-source-5.15.0
	make
编译过程中,有一些HOSTCC 需要的依赖需要满足,安装了额一些包
编译过程中, 有一些编译器的内部错误,重新make可以编过
疑问
因为我只想编译代码,也不想安装代码,所以有以下疑问

ubuntu 是完全开源的吗
ubuntu 官方会封装闭源驱动吗?

其他
  • 以下问题是因为没打补丁引起的
错误:
No rule to make target 'debian/canonical-certs.pem', needed by 'certs/x509_certificate_list'
解决方案:
更改.config 中的  COCONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" 为 NFIG_SYSTEM_TRUSTED_KEYS="" 
重新make
错误:
make[1]: *** No rule to make target 'debian/canonical-revoked-certs.pem', needed by 'certs/x509_revocation_list'.  Stop.
解决方案:
更改.config 中的 COCONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" 为 COCONFIG_SYSTEM_TRUSTED_KEYS="" 
重新make

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值