OpenWrt Rust环境安装
在本文中,我们将详细介绍如何将Ubuntu系统迁移到OpenWrt。这包括了软件源的更换、OpenWrt SDK的安装与配置、以及如何在新环境中编译和运行C和Rust程序。
mips 是32位大端字节序
mipsel 是32位小端字节序
mips64el 是64位小端字节序
一、更换软件源
1. 备份当前软件源列表
在进行任何更改之前,建议先备份当前的`/etc/apt/sources.list`文件,以防需要恢复。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
22. 编辑软件源列表
使用文本编辑器(如`vim`或`nano`)打开`/etc/apt/sources.list`文件,并添加新的软件源条目,有些包在新源里头。
sudo vim /etc/apt/sources.list
在文件中添加以下内容:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
3. 更新软件包列表
执行以下命令以更新软件包列表:
sudo apt-get update sudo apt-get upgrade
4. 检查Ubuntu代号名称
使用以下命令查看当前Ubuntu的版本代号:
lsb_release -a
修改sources文件:
sudo vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
二、安装OpenWrt SDK
1. 下载OpenWrt SDK
访问OpenWrt官方网站下载适合您的设备的SDK包。例如,对于MT7620设备,可以使用以下命令:
wget https://downloads.openwrt.org/releases/22.03.0/targets/ramips/mt7620/openwrt-sdk-22.03.0-ramips-mt7620_gcc-11.2.0_musl.Linux-x86_64.tar.xz
2. 解压OpenWrt SDK
使用以下命令解压下载的SDK包:
tar -Jxf openwrt-sdk-22.03.0-ramips-mt7620_gcc-11.2.0_musl.Linux-x86_64.tar.xz
3. 配置环境变量
进入解压后的目录,并将工具链路径添加到环境变量中:
PATH=$PATH:~/Openwrt/openwrt-sdk-22.03.0-ramips-mt7620_gcc-11.2.0_musl.Linux-x86_64/staging_dir/toolchain-mipsel_24kc_gcc-11.2.0_musl/bin export PATH export LC_ALL=C.UTF-8
4. 编译源码
使用以下命令进行菜单配置和编译:
sudo vim /etc/apt/sources.list0
完成后,工具链将被生成并存放在`staging_dir`目录下。
5. 将SDK的staging_dir 存到PATH中使用并查看:
sudo vim /etc/apt/sources.list1
6. 修改用户目录下的~/.bashrc进行配置:
sudo vim /etc/apt/sources.list2
三、验证工具链
1. 设置STAGING_DIR环境变量为上面工具链目录:export STAGING_DIR=/home/kondl/Openwrt/OpenWrt-sdk-22.03.0-ramips-mt7620_gcc-11.2.0_musl.Linux-x86_64/staging_dir
2. 写一个hello world程序a.c:
sudo vim /etc/apt/sources.list3
3. 使用工具链编译该文件:$STAGING_DIR/toolchain-mipsel_24kc_gcc-11.2.0_musl/bin/mipsel-openwrt-linux-gcc -o a-c a.c
四、交叉编译Rust程序
1. 安装Rust环境
使用以下命令安装Rust环境:
sudo vim /etc/apt/sources.list4
2. 设置环境变量
加载Rust环境:
sudo vim /etc/apt/sources.list5
3. 查看Rust版本
确认Rust安装成功:
sudo vim /etc/apt/sources.list6
4. 安装Nightly版本的Rust环境并设置为当前目录
安装Nightly版本的Rust环境:
sudo vim /etc/apt/sources.list7
5. 查看支持的目标CPU架构
查看当前支持的目标CPU架构:
sudo vim /etc/apt/sources.list8
6. 安装目标支持环境
安装目标支持环境:
sudo vim /etc/apt/sources.list9
交叉编译后目标平台CPU架构是mips、厂商unknown、操作系统linux、运行时库musl。
7. 安装Rust源码供交叉编译使用
安装Rust源码:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse0
8. 安装Xargo工具方便Rust进行交叉编译
安装Xargo工具:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse1
9. 配置交叉编译文件
创建或修改`~/.cargo/config`文件:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse2
创建或修改`Xargo.toml`文件:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse3
10. 编译并运行Cargo项目
使用以下命令进行编译和运行:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse4
以上所述过程简述如下:
首先在官网上选择符合你硬件平台的openwrt的固件。在这里我的目标平台的硬件是mt7620a所以选择的包是该平台下的,将固件烧录进硬件中。其次选择下载该平台对应的SDK,编译SDK后可以通过里面的tools目录下的工具来执行我们的代码。
点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)
饿了么红包
本站附件分享,如果附件失效,可以去找找看