Linux 内核更换与代码阅读环境设置(Vscode+Clangd)

内核更换

测试环境:Ubuntu 22.04

安装编译依赖

复制代码
sudo apt update
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev dwarves

获取内核源代码

复制代码
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.43.tar.xz
tar xf linux-6.6.43.tar.xz
cd linux-6.6.43

内核配置

复制代码
make menuconfig

处理证书问题,在编译时遇到证书问题输入两次 enter 即可继续

复制代码
scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS

编译内核和模块

复制代码
make -j$(nproc)

安装模块

复制代码
sudo make modules_install

安装内核

复制代码
sudo make install

更新引导加载程序

复制代码
sudo update-grub

重启

复制代码
sudo reboot

默认情况下已经更换为最新的内核。如果没有更换,则在 GRUB 引导界面(在开机过程中按下 Esc 键)选择 Advanced options for Ubuntu,手动选择对应的内核版本启动即可。

代码阅读环境设置

在内核代码成功编译之后执行,会在代码根目录生成 compile_commands.json 文件

复制代码
scripts/clang-tools/gen_compile_commands.py

安装 Clangd

复制代码
sudo apt install clangd

在 Vscode 中安装扩展 Clangd,打开扩展设置(远程),将 Clangd: Path 设置为 /usr/bin/clangd 。(这适用于本机是 Windows,通过远程连接到 Linux 环境)

之后随便打开一个代码文件,使用快捷键 ctrl + shift + p 打开 Vscode 命令面板,输入 reload window,选择 开发人员: 重新加载窗口(Developer: Reload Window),重新打开后可以看到界面左下角 clangd 插件正在生成索引信息,等待完成后即可进行符号的跳转。

相关推荐
xiaoye-duck20 分钟前
《Linux 网络编程》深入理解数据链路层:从MAC帧到ARP协议的底层原理详解
linux·网络
sunoo-22939 分钟前
【ARM嵌入式学习笔记Day6】一文打通i.MX6ULL时钟体系:PLL/PFD/预分频+滞回比较器全解析
arm开发·笔记·vscode·单片机·imx6ull·汇编语言
明天…ling1 小时前
gitee与vscode远程连接
vscode·gitee
j7~1 小时前
【Linux 网络】四十.《网络基础(传输层协议:UDP、TCP)》--中篇
linux·tcp·tcp协议·确认应答机制·连接管理机制·tcp流量控制
牢姐与蒯1 小时前
Linux进程间通信(三).基于匿名管道的进程池的实现
linux·运维·服务器·ubuntu
凤年徐1 小时前
C++ 仿 muduo 高并发服务器:用户态缓冲区 Buffer 模块实现
linux·c++
Java红桃峰峰日拱一卒3 小时前
在jdk8的centos上安装jdk17
linux·jdk17·jdk8
M78佐菲9 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
益达丫10 小时前
Socket编程揭秘:端口、IP与进程通信的底层逻辑
linux·笔记
2501_9159184112 小时前
iOS编程用什么软件好?主流工具Xcode、AppCode、CodeRunner与新兴快蝎对比
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程