linux kernel 开发环境准备

vscode 插件与配置

C
git blame
git len

仓库

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

git 历史补全

git clone --bare git://git.kernel.org/pub/scm/linux/kernel/git/history/history.git
cd linux/.git/
echo ../../../history.git/objects >> objects/info/alternates
echo 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 e7e173af42dbf37b1d946f9ee00219cb3b2bea6a >> info/grafts
echo 7a2deb32924142696b8174cdf9b38cd72a11fc96 379a6be1eedb84ae0d476afbc4b4070383681178 >> info/grafts
git replace --convert-graft-file

编译

sudo apt install git build-essential bc bison flex libssl-dev libncurses-dev libelf-dev qemu-system-x86 libguestfs-tools wget -y
cd linux
make menuconfig
sed -i "s/CONFIG_VIRTIO_PCI=.*/CONFIG_VIRTIO_PCI=y/g" .config
sed -i "s/CONFIG_VIRTIO_BLK=.*/CONFIG_VIRTIO_BLK=y/g" .config
sed -i "s/CONFIG_VIRTIO_NET=.*/CONFIG_VIRTIO_NET=y/g" .config
sed -i "s/CONFIG_EXT4_FS=.*/CONFIG_EXT4_FS=y/g" .config
make bzImage -j`nproc`
# make bindeb-pkg -j`nproc`

使用虚拟机

https://cloud.debian.org/images/cloud/

wget https://cloud.debian.org/images/cloud/buster/20220328-962/debian-10-generic-amd64-20220328-962.qcow2 -O ../guest.qcow2
qemu-img resize guest.qcow2 100G
virt-customize \
    --run-command '/bin/bash /bin/growpart /dev/sda 1' \
    --run-command 'resize2fs /dev/sda1' -a guest.qcow2

virt-customize \
--run-command 'cn=$(lsb_release -cs); echo "
deb http://mirrors.byted.org/debian $cn main contrib non-free
deb http://mirrors.byted.org/debian $cn-backports main contrib non-free
deb http://mirrors.byted.org/debian-security $cn/updates main contrib non-free
deb http://apt.byted.org/private $cn-private $cn-main" > /etc/apt/sources.list' \
--run-command "sed -i '3d' /etc/fstab" \
--uninstall cloud-init,openssh-server \
--install dhcpcd5,openssh-server \
--root-password password:root \
--ssh-inject root -a guest.qcow2

运行虚拟机

sudo qemu-system-x86_64 \
    -enable-kvm \
    -nographic \
    -drive file=../guest.qcow2,if=virtio \
    -device virtio-net,netdev=n0,mac=52:55:00:d1:55:00 \
    -netdev user,hostfwd=tcp::2222-:22,id=n0 \
    -m 8G \
    -smp cores=2,threads=1,sockets=1 \
    -object memory-backend-ram,id=mem0,size=4G  \
    -object memory-backend-ram,id=mem1,size=4G  \
    -numa node,memdev=mem0,cpus=0,nodeid=0 \
    -numa node,memdev=mem1,cpus=1,nodeid=1 \
    -kernel arch/x86/boot/bzImage \
    -append 'nokaslr root=/dev/vda1 console=ttyS0 earlyprintk=ttyS0'
cat > /etc/systemd/system/serial-getty@ttyS0.service.d/override.conf << EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --keep-baud 115200,38400,9600 %I $TERM
EOF

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值