编译Linux内核,ubuntu18.04编译内核
编译玩家对战环境内核5 .10 .6-1-聚乙烯醇及安装内核补丁富尔科内纳特前提1.修改源2.升级系统,安装依赖2.1添加Proxmox VE存储库(国内用户自行替换)2.2升级系统2.3安装以下编译包3.建新的用户4.编译前工作4.1克隆项目4.2 修改配置文件4.2.1修改文件文件4.2.2手动生成。配置(以下脚本就是基于上面注掉的脚本改来的)4.2.2.1内核补丁5.编译过程中所有问题都是从操作记录中摘抄出来的,请针对问题内容查看解决处理方法问题一问题二问题三6.最后
前提
国内必须全局富强,空间最少留个60G,编译系统推荐用debian10(ubuntu 18测试过编译不成功,缺少包,或者包的版本不够高,只是编译玩家对战环境选Debian)
我用的国外虚拟专用服务器进行编译
(PS:国内用户可以把一种自由操作系统的源全改为ustc.edu的,并添加源回声黛布http://mirrors.ustc.edu.cn/proxmox/debian/pve巴斯特pve-无订阅/etc/apt/sources.list)
1.修改源vim /etc/apt/sources.list全部替换为如下:
黛比http://ftp.debian.org/debian巴斯特主要贡献黛比http://ftp.debian.org/debian巴斯特-更新主要贡献# PVE pve-prox MOX。com提供的无订阅存储库,#不建议用于生产EB http://download.proxmox.com/debian/pve巴斯特pve-无订阅#安全更新db http://security.debian.org/debian-security巴斯特/更新主要贡献2。升级系统,安装依赖2.1添加Proxmox VE存储库(国内用户自行替换)回声黛布http://download.proxmox.com/debian/pve巴斯特pve-无订阅/etc/apt/sources.list添加Proxmox VE存储库密钥:
wget下载. prox MOX . com/debian/prox MOX-ve-release-6 . x . gpg-O/etc/apt/trusted。gpg。d/prox MOX-ve-release-6x . gpg sha 512 sum/etc/apt/trusted。gpg。d/prox MOX-ve-release-6十. gpg #密钥验证2.2升级系统恰当的更新2.3安装以下编译包恰当的安装开发脚本asciidoc-base automake BC bison cpio DH-python bison flex git kmod libdw-dev libelf-dev liberty-dev libnuma-dev libp ve-common-perl lib slang 2-dev libssl-dev libtool林天lz4 perl-modules python 2-minimal rsync sed sphinx-common tar xmlto zlib 1g-dev dwars net-tools htop vnstat 3 .建新的用户不要用根用户去饭桶或者编译
增加组王#新建组useradd -m wang -g wang -s /安详的羊/bash -d /home/wangpasswd王#切换到用户王4。编译前工作编译玩家对战环境历史版本内核,参考下一篇文章:https://博客。csdn。net/w 946612410/article/details/113863814
4.1克隆项目cd ~git克隆git://git。prox MOX。com/git/pve-kernel。git CD pve-内核git子模块更新-初始化子模块/ubuntu-hirsute注意:不同内核编译,ubmodules/ubuntu-*会不同
5 .10 .6-1-聚乙烯醇内核:git子模块更新-初始化子模块/ubuntu-hirsute
5 .4 .78-2-聚乙烯醇内核:git子模块更新-初始化子模块/ubuntu-focal
4.2 修改配置文件4.2.1修改文件文件精力生成文件找到
cat $ { BUILD _ DIR }/$ { KERNEL _ SRC }/debian。主/配置/配置。常见。Ubuntu $ { BUILD _ DIR }/$ { KERNEL _ SRC }/debian。master/config/$ { ARCH }/config。常见。$ { ARCH } $ { BUILD _ DIR }/$ { KERNEL _ SRC }/debian。master/config/$ { ARCH }/config。味道。通用$ { KERNEL _ CFG _ ORG }和CP $ { KERNEL _ CFG _ ORG } $ { BUILD _ DIR }/$ { KERNEL _ SRC }/.配置前面加# 号注掉自动生成配置
保存
4.2.2手动生成。配置(以下脚本就是基于上面注掉的脚本改来的)猫debian.master/config/config.common.ubuntudebian.master/config/amd64/config.common.amd64debian.master/config/amd64/config.flavour.generic。配置执行后,已经进到了~/pve-kernel/子模块/子模块/ubuntu-hirsute/目录
现在添加xt_FULLCONENAT
方法参考:https://github。com/chion 82/netfilter-全锥-NAT有说明和怎么做
4.2.2.1内核补丁1.复制xt_FULLCONENAT.c到Ubuntu-hirsute/net/net filter/XT _ fullconenat。c
CD ~/pve-kernel/sub modules/Ubuntu-hirsute/net/netfilterwget https://GH proxy。未加工的。githubusercontent。com/chion 82/netfilter-full-cone-NAT/master/XT _ fullconenat。c
2.将以下行添加到Ubuntu-hirsute/net/netfilter/Makefile
obj-$(CONFIG _ net filter _ XT _ TARGET _ FULLCONENAT)=XT _ FULLCONENAT。o
3.打开Ubuntu-hirsute/net/IP v4/netfilter/Kconfig,将以下代码插入到配置IP_NF_TARGET_NETMAP部分之后:
配置IP_NF_TARGET_FULLCONENAT三态“FULLCONENAT目标支持"依赖于网络过滤器_高级选择网络过滤器_ XT _目标_完整内容帮助这是一个向后兼容选项,方便用户使用(例如,在运行旧配置时)。它选择配置_网络过滤器_文本_目标_完整网络.
4.打开Ubuntu-hirsute/net/netfilter/Kconfig,将以下代码插入到配置网络过滤器_文本_目标_网络图部分之后:
配置NETFILTER _ XT _ TARGET _ FULLCONENAT三态“完整的内容”目标支持依赖于网络地址转换帮助富尔科内纳特将其编译为模块,此处选择m .如果不确定,就说n .
确保现在在目录`~/pve-内核/子模块下
5.运行制作用于生成菜单并选择:网络支持-网络选项-网络包过滤框架(网络过滤器)- IP:网络过滤器配置- M完整目标支持
6.以下添加拔号内核模块
运行制作用于生成菜单并选择:设备驱动程序网络设备支持购买力平价(点对点协议)支持由*改为M
保存
7.编译
CD ~/pve-内核制造就会自动编译,不需要设置多线程,它会自动调用多线程编译。看中央处理器能力,编译完把当前目录的。黛比包复制出来,就是内核包
5.编译过程中所有问题都是从操作记录中摘抄出来的,请针对问题内容查看解决处理方法问题一编译内核出错:/安详的羊/sh: 1:野牛:未找到脚本/Makefile.lib:196:目标脚本的配方/kconfig/zco
book @ book-VirtualBox:~/project/s3c 2440/Linux-4.19-rc3 $ make menuconfig YACC脚本/kconfig/zconf.tab.c/安详的羊/sh:1:bison:找不到脚本/makefile。lib:196:目标" scripts/kconfig/zconf.tab.c "的配方失败make[1]:* * *[scripts/kconfig/zconf。标签。c]错误127制作文件:550:目标"菜单配置"的配方失败品牌:* * * *[菜单配置]错误2分析:
缺乏某些程序,安装即可解决:
sudo apt-get安装bisonsudo容易得到安装弯曲问题二dpkg-source:error:LC _ ALL=C patch-t-F 0-N-P1-u-V never-E-B-B . PC/0001-Check-for-META-and-DCH-一致性-in-autoconf。补丁/-拒绝文件=-ZFS-Linux _ 0。8 .5 .orig . xst3cd/debian/patches/0001-在autoconf中检查元一致性和DCH一致性。修补子进程返回退出状态1 dpkg-构建包貌似是文件系统错误
解决:
省略这步即可:git子模块更新-初始化子模块/zfsonlinux
实测,编译会自动执行饭桶子模块更新-初始化子模块/zfsonlinux问题三BTF:tmp_vmlinux.btf: pahole (pahole)不可用无法为vmlinux生成苯并三氧化呋咱尝试禁用CONFIG _ DEBUG _ INFO _ btf make[1]:* * * *[/home/demo _ accout/Linux-5。8 .7/Makefile:1139:VM Linux]错误1制作[1]:离开目录"/home/demo _ accout/build/kernel " make:* * * *[Makefile:185:_ _ sub-make]错误2遇到这个问题是最让人崩溃的,花了两个小时编译,好不容易看到曙光了,结果来了个大霹雳啊,摔电脑的心都有啊!
原因:
矮子包无法使用或
版本过低只有1.12-2版编译至少与需要版本v1.16或更高解决:
方法一(推荐):这个是。配置配置文件配置项错误导致的,修改配置文件,把之前的配置调试信息BTF=y改成配置调试信息BTF=n方法二:
克隆项目到本地:git克隆https://github.com/acmel/dwarves.gitcd矮人/mkdir构建CD构建/cmake-D _ _ LIB=LIB.进行安装移动编译好的文件:
cp pahole /usr/安详的羊/paholecp/usr/local/lib/*/usr/lib/再重新编译一次吧。
6.最后获取玩家对战环境历史内核:https://git.proxmox.com/?p=pve-内核。gita=摘要
参考文章(以下顺序不分先后):
玩家对战环境用LXC几乎完美运行脱机支持福尔科内纳特,拔号等更新内核5.4.78-2
Fedora32内核源码包安装升级过程遇到的问题
矮子升级:
矮子包:https://github。com/acmel/dwarvespahole源码:https://git。内核。org/pub/SCM/devel/pa hole/pa hole。git/about/pve文档:https://pve。prox MOX。com/pve-docs/chapter-sysadmin。html #系统管理员_软件包_存储库
chion 82/netfilter-全锥-NAT:https://github。com/chion 82/netfilter-全锥-NAT
文件XT _ fullconenat。c:https://github。com/chion 82/net filter-full-cone-NAT/blob/master/XT _ fullconenat。c
Linux操作系统操作系统内核升级:https://www。cnblogs。com/networking/p/4821248。超文本标记语言