概述
Ubuntu 22.04.1 LTS 编译Linux-6.1 RUST例程
Linux的源码基于C和汇编语言开发,近期引入了RUST作为第三种语言。有感于面向互联网开发确实很便利,也想作出一点点小贡献,分享基于Linux-6.1的RUST例程编译方法,希望兄弟们少踩坑。
前期准备
-
下载Linux-6.1源码
下载Linux-6.1源码包,解压后进入源码目录,在源码目录中进行后续工作。
wget https://codeload.github.com/torvalds/linux/tar.gz/refs/tags/v6.1 tar -xzvpf linux-6.1.tar.gz cd linux-6.1
-
安装必要的依赖
使用apt包管理器安装clang相关软件,编译Linux源码时用到,其他依赖包根据make提示逐个安装。
apt install clang libclang-14-dev lld
-
安装rust工具链
-
安装和配置rustup管理工具链
Rust 由工具 rustup 安装和管理。使用curl进行安装,使用默认配置,安装过程中出现提示选择第一个,如果卡在download installer,按
Ctrol C
取消,然后多尝试几次,可以安装成功。curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup默认使用国外源,下载很不流畅,替换为国内源,打开配置文件config。
vim $HOME/.cargo/config
使用清华源,将以下文本内容写入config文件。
[source.crates-io] replace-with = 'tuna' [source.tuna] registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
使能环境变量,就可以愉快的玩耍了。
source "$HOME/.cargo/env"
-
指定rustc的软件版本
需要使用确定版本的rust编译器编译Linux-6.1,通过override指定rustc的版本为1.62.0。各种测试后,结论为其他版本rustc无法用于编译Linux-6.1,只能用rustc-1.62.0版本。
rustup override set $(scripts/min-tool-version.sh rustc)
-
安装rust-src
Rust标准库源码用于在编译Linux-6.1源码时编译core和alloc。
rustup component add rust-src
-
安装bindgen
使用bindgen工具在编译时绑定到内核的C端,需要安装bindgen-0.56.0。
cargo install --locked --version $(scripts/min-tool-version.sh bindgen) bindgen
-
安装rustfmt
rustfmt工具用于自动格式化所有的Rust内核代码。
rustup component add rustfmt
-
检查编译条件
Linux-6.1提供了检查是否支持编译Rust部分代码的方法。
make LLVM=1 rustavailable
提示:Rust is available!,表示满足编译条件
配置内核
-
使能Rust support,进入General setup往下翻,最后一个就是。
General setup
-> Rust support -
使用Rust samples,使能Rust samples下级目录选项中的Minimal和Host programs。
Kernel hacking
-> Sample kernel code
-> Rust samples
编译
编译机器为x86_64,未在其他架构设备验证。
make LLVM=1
编译成功。
built-in.a hostprogs modules.order rust_minimal.ko rust_minimal.mod rust_minimal.mod.c rust_minimal.mod.o rust_minimal.o
最后
以上就是冷傲大白为你收集整理的Ubuntu 22.04.1 LTS 编译Linux-6.1 RUST例程 Ubuntu 22.04.1 LTS 编译Linux-6.1 RUST例程 前期准备检查编译条件配置内核编译的全部内容,希望文章能够帮你解决Ubuntu 22.04.1 LTS 编译Linux-6.1 RUST例程 Ubuntu 22.04.1 LTS 编译Linux-6.1 RUST例程 前期准备检查编译条件配置内核编译所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复