使用VSCode调试Linux内核
环境:Ubuntu-18.04
1. 安装开发工具
plaintext
1 | lucas@ubuntu:~/Desktop/lab3$ sudo apt install build-essential |
2. 下载内核源码
plaintext
1 | lucas@ubuntu:~/Desktop/lab3$ sudo apt install axel |
3. 配置内核选项
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34$ make defconfig |
4. 编译和运行
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34$ make -j$(nproc) |
5. 制作根文件系统
使用busybox
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34$ axel -n 20 https://busybox.net/downloads/busybox-1.31.1.tar.bz2 |
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34/busybox-1.31.1$ make -j$(nproc) && make install |
制作内存根文件镜像
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34/busybox-1.31.1$ cd ../../linux-5.4.34/ |
制作init文件
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34/rootfs$ touch init |
其中mount命令是对proc和sys进行挂载,为init添加执行权限:
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34/rootfs$ chmod +x init |
打包成内存根文件系统镜像
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34/rootfs$ find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../rootfs.cpio.gz |
测试挂载根文件系统,看内核启动完成后是否执行init脚本
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34/rootfs$ cd .. |
5. 配置VSCode
打开VSCode
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34$ code . |
安装插件
使用快捷键Ctrl+`打开VSCode的终端,下载VSCode脚本并拷贝到新建的.vscode文件夹中
plaintext
1 | lucas@ubuntu:~/Desktop/lab3/linux-5.4.34$ python3 ./scripts/gen_compile_commands.py |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment
Be the first person to leave a comment!