Rust编写linux内核模块——详细步骤

以下都是在Ubuntu20.04-server环境

0、下载源码

git clone https://github.com/Rust-for-Linux/linux.git

1、安装rustc编译器要求,rustup 1.57.0

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh			#安装rustup

2、安装Rust标准库的源码

cd linux					#打开下载的代码文件夹
rustup override set 1.57.0	#执行override子命令后在当前文件夹下使用的rustc就为设置的1.57.0版
rustup component add rust-src
sudo apt install build-essential	#安装编译链
cargo install --locked --version 0.56.0 bindgen

3、安装libclang库。

LLVM版本

wget https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.0/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz	#下载包
sudo tar -xvf clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz -C /opt		#解压至/opt目录
sudo mv /opt/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04 /opt/lvm				#重命名
sudo vim /etc/profile																#在该文件最后添加如下
source /etc/profile																	#生效
export PATH=$PATH:/opt/llvm/bin		#根据llvm的安装路径进行修改,添加到最后

4、配置内核

make mrproper							#清除之前的配置
cp /boot/config-$(uname -r) .config		#复制当前内核配置
sudo apt-get install libncurses-dev flex bison libelf-dev libssl-dev
make menuconfig							#启动内核配置
scripts/config --disable SYSTEM_REVOCATION_KEYS
scripts/config --disable CONFIG_DEBUG_INFO_BTF
make LLVM=1 -j8							#等待内核编译完成
sudo make modules_install				#安装模块
sudo make install						#安装内核

勾选General setup → Rust support
勾选Kernel hacking → Sample kernel code → Rust samples里的子项目
勾选 Kernel hacking → Rust hacking → Optimization level里的0/1/2/3中的任意一项

注意:如果找不到General setup中找不到Rust support,请先屏蔽MODVERSIONS选项。然后勾选上面的项目之后,再重新勾选该项。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cimz9mSx-1648211965066)(https://gitee.com/ZechariahZheng/pic-go/raw/master/image-20211227214638784.png)]

参考:
https://linux.cn/article-13555-1.html
https://zhuanlan.zhihu.com/p/424831636****

你可能感兴趣的:(rust,linux)