问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

国产UOS+Buildroot:轻松搭建MIPS64交叉编译环境

创作时间:
作者:
@小白创作中心

国产UOS+Buildroot:轻松搭建MIPS64交叉编译环境

引用
CSDN
9
来源
1.
https://blog.csdn.net/qq43748322/article/details/120196200
2.
https://blog.csdn.net/macaiyun0629/article/details/106038776
3.
https://blog.csdn.net/weixin_45813250/article/details/120056198
4.
https://sammyne.github.io/buildroot-quickstart/
5.
https://doc.chinauos.com/content/jc2clIgBZybsW1rIbBg2
6.
https://faq.uniontech.com/desktop/f435/install/da34
7.
https://doc.embedfire.com/lubancat/build_and_deploy/zh/latest/building_image/buildroot/buildroot.html
8.
https://www.cnblogs.com/arnoldlu/p/9553995.html
9.
https://www.modb.pro/db/110645

在嵌入式开发领域,如何快速高效地搭建一个稳定的MIPS64交叉编译环境一直是开发者们关心的问题。本文将详细介绍如何使用国产操作系统UOS和强大的工具链管理器Buildroot来实现这一目标。通过简单的步骤,你可以在本地环境中轻松部署MIPS64交叉编译工具链,从而为你的嵌入式项目提供强有力的支持。

01

为什么选择UOS+Buildroot?

统信UOS操作系统是基于Linux内核的国产操作系统,支持AMD64、ARM64、MIPS64、SW64等多种CPU架构。其服务器版本以稳定性和兼容性著称,非常适合用作开发环境。而Buildroot则是一个简单、高效、易用的工具,能够利用交叉编译生成嵌入式Linux系统。两者结合,可以为MIPS64架构的嵌入式开发提供一个强大而灵活的开发环境。

02

环境准备

UOS系统配置

确保你的UOS系统已经正确安装并更新到最新版本。本文以统信UOS服务器版V20为例,该版本基于CentOS社区发行版进行二次商业化发行,具有良好的稳定性和兼容性。

Buildroot安装

在UOS系统中安装Buildroot之前,需要先安装一些必要的依赖软件。打开终端,运行以下命令:

sudo apt update
sudo apt install -y build-essential git wget unzip

然后,从Buildroot官网下载最新版本的源码包:

wget https://buildroot.org/downloads/buildroot-2023.02.tar.gz
tar -xzvf buildroot-2023.02.tar.gz
cd buildroot-2023.02
03

MIPS64交叉编译环境搭建

下载交叉编译器

首先需要获取适用于MIPS64架构的交叉编译器。可以从龙芯官网或其他可信来源下载预编译的工具链。例如:

wget https://mirror.linux.cn/download/0镜像站/0工具链/0龙芯/mips64el-linux-gnuabi64-8.3.0-x86_64-unknown-linux-gnu.tar.gz

配置环境变量

解压下载的工具链包,并将其添加到系统PATH环境变量中:

mkdir -p ~/opt/cross
tar -xzvf mips64el-linux-gnuabi64-8.3.0-x86_64-unknown-linux-gnu.tar.gz -C ~/opt/cross
echo 'export PATH=~/opt/cross/mips64el-linux-gnuabi64-8.3.0-x86_64-unknown-linux-gnu/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

为了确保交叉编译器能够正确链接动态库,还需要配置LD_LIBRARY_PATH环境变量:

echo 'export LD_LIBRARY_PATH=~/opt/cross/mips64el-linux-gnuabi64-8.3.0-x86_64-unknown-linux-gnu/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

验证交叉编译环境

创建一个简单的C语言测试程序,验证交叉编译环境是否配置正确:

echo '#include <stdio.h>
int main() {
    printf("Hello, MIPS64!\n");
    return 0;
}' > test.c

mips64el-linux-gnuabi64-gcc -o test test.c

如果编译成功,说明你的MIPS64交叉编译环境已经搭建完成。

04

使用Buildroot管理工具链

配置Buildroot项目

进入Buildroot源码目录,使用menuconfig配置界面:

make menuconfig

在配置界面中,选择适合你目标平台的配置选项。对于MIPS64架构,需要确保以下选项被正确设置:

  • Target options -> Target Architecture: MIPS64
  • Toolchain -> Use the toolchain from the system
  • Toolchain -> System toolchain type: Custom toolchain
  • Toolchain -> Custom toolchain prefix: mips64el-linux-gnuabi64-

添加自定义应用

Buildroot允许你方便地添加自定义应用。以添加一个简单的hello world应用为例:

  1. 在buildroot目录下创建一个新的package目录:
mkdir -p package/hello
  1. 创建Config.in文件:
echo 'config BR2_PACKAGE_HELLO
    bool "hello world"
    help
      hello world to you' > package/hello/Config.in
  1. 创建hello.mk文件:
echo '################################################################################  
#  
# hello
#  
################################################################################  
HELLO_VERSION = 0.1
HELLO_SITE_METHOD = local
HELLO_SITE = /path/to/your/hello-$(HELLO_VERSION)
HELLO_ALWAYS_BUILD = YES  
HELLO_INSTALL_STAGING = YES  
HELLO_CFLAGS =   
HELLO_LDFLAGS =   
OUT_BIN = hello' > package/hello/hello.mk
  1. 创建应用源代码目录和Makefile:
mkdir -p package/hello/hello-0.1
echo '#include <stdio.h>
int main() {
    printf("Hello, MIPS64!\n");
    return 0;
}' > package/hello/hello-0.1/main.c

echo '# 应和 hello.mk 传入的 $(OUT_BIN) 保持一致
app = $(OUT_BIN)

all: $(app)

$(app): main.c
    $(CC) -o $@ $<

clean:
    @rm -rf $(app)' > package/hello/hello-0.1/Makefile
  1. 重新运行menuconfig,确保"hello"应用被选中:
make menuconfig

在配置界面中,选择"Target packages" -> "hello",然后保存并退出。

生成根文件系统镜像

最后,运行以下命令生成根文件系统镜像:

make

Buildroot会自动下载、编译所有选中的软件包,并生成适用于MIPS64架构的根文件系统镜像。完成后,你可以在output/images目录下找到生成的镜像文件。

05

总结与展望

通过以上步骤,你已经成功在UOS系统上使用Buildroot搭建了一个完整的MIPS64交叉编译环境。这个环境不仅支持基本的C/C++编译,还可以方便地添加各种开源软件包,为你的嵌入式开发项目提供强大的支持。

未来,你可以根据具体需求进一步优化这个环境,例如添加图形界面支持、网络功能等。同时,随着UOS系统和Buildroot的持续更新,你还可以不断升级工具链和软件包,保持开发环境的先进性和安全性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号