尝试为 Ubuntu 18.04 构建内核 3 天后,我彻底沮丧了。我需要构建一个内核来启用 mininet 所需的“RT_GROUP_SCHED”。文档自相矛盾。在内核中启用这样的功能不应该这么困难。非常感谢您的帮助。以下是我尝试的方法:
我安装了下面的内容,尽管文档不一致,但我再次认为其中一些是在 build-essential 范围内。
sudo apt-get install -y fakeroot kernel-package linux-source uboot-mkimage gcc libc6-dev binutils-dev make bin86 module-init-tools build-essential
我尝试通过解开 /etc/apt/sources.list 中的以下行来下载源代码
deb-src http://ug.archive.ubuntu.com/ubuntu/ bionic main restricted
deb-src http://ug.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
sudo apt-get update && sudp apt-get upgrade
我尝试了这两个选项来下载源代码,但它们只下载了存根,但没有下载源代码。
apt-get source linux-image-$(uname -r)
apt-get build-dep linux-image-$(uname -r)
apt-get install linux-source
最后,我采取了直接下载的方式。
curl -O http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux_4.15.0.orig.tar.gz
tar -xzvf linux_4.15.0.orig.tar.gz
cd linux_4.15
我做了改变
make menuconfig
General setup --->
Control Group support --->
CPU Controller --->
[*] Group scheduling for SCHED_RR/FIFO
Do you wish to save your new configuration? <Yes>
然后我尝试编译。
make-kpkg clean
fakeroot make-kpkg --initrd --revision=1.0.custom kernel_image
然后它就消失了,所以我上床睡觉了,但早上却发现它已经占用了整个硬盘。
LD [M] drivers/scsi/be2iscsi/be2iscsi.ko
ld: final link failed: No space left on device
scripts/Makefile.modpost:129: recipe for target 'drivers/scsi/be2iscsi/be2iscsi.ko' failed
make[2]: *** [drivers/scsi/be2iscsi/be2iscsi.ko] Error 1
Makefile:1214: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
make[1]: Leaving directory '/tmp/linux-4.15'
debian/ruleset/targets/common.mk:295: recipe for target 'debian/stamp/build/kernel' failed
make: *** [debian/stamp/build/kernel] Error 2
参考
https://help.ubuntu.com/lts/installation-guide/amd64/install.en.pdf https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel 重新编译内核的简单方法是什么? 尝试构建内核时出现“未知序列 editconfigs” https://help.ubuntu.com/lts/installation-guide/amd64/ch08s06.html
/usr/share/doc/内核包/README