apt-get install libssl-dev libncurese-dev bc
bc’s version must <= 1.06
apt-get linux-source-xxxx
or
ubuntu 官方维护的代码仓库, 可以保证每一个commit点每一行代码的准确性
git clone https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/kinetic
cd /usr/src/linux-source-VERSION
cp /boot/config-VERSION-generic .config
make menuconfig
#可配可不配, 主要是为了减少image体积和加快编译时间
如果不熟悉就不要修改任何配置
load --> save -->exit
#-j 一定要跟一个数字, 不然很容易把内存吃光导致编译失败
make -j 32
#必须, 不然/boot分区会被占满, 无法开机
make INSTALL_MOD_STRIP=1 modules_install
make install
update-initramfs -c -k < version >
##这里要注意
update-grub
##调试完毕之后如果需要把默认启动改回来
- 查看 /etc/default/grub.cfg /etc/default/grub
- 修改 /etc/default/grub 里面的default值 “aaa” > “bbb”
调试:
##单独编译某个驱动
make M=drivers/net/ethernet/intel/ice