最近一直在折腾我的光猫、路由器以及学习嵌入式开发的相关知识,于是有了下面这篇文章,参考了网上很多文章,终于实现了自己的目标,简单的记录下来,名为“保姆级”其实是因为自己技术很菜,生怕写的太粗略了过段时间自己都记不起来当时是怎么实现的了。
1.下载buildroot
工具链
到官网https://buildroot.uclibc.org/download.html下载,我选择了长期支持版2021.02.7
mkdir /home/buildroot
cd /home/buildroot
wget https://buildroot.uclibc.org/downloads/buildroot-2021.02.7.tar.gz
2.解压buildroot
tar -xvf buildroot-2021.02.7.tar.gz
进入buildroot
目录
cd buildroot-2021.02.7/
进行编译前的配置,(和编译系统内核很相似)
make menuconfig
出现BuildRoot
的图形界面后,选择如下的参数。
注意需要按两次Esc
键。
按三次回车后又回到此界面了,然后按两次Esc
,退出此界面。
运行make
命令,提示缺少g++
,patch
,perl
,通过yum
进行安装
yum install -y gcc-c++
yum install -y patch
yum install -y perl
再次make
,可以往下进行了。
又是一个漫长的过程。
如果没有什么报错的话交叉编译环境就建立成功了。进入buildroot-2021.02.7/output/host/bin
目录你会发现这里的许多以mipsel-
开头的可执行程序就是你编译mips
所需要的编译工具了。
话不多说,看看我们的mips
编译工具是否真的好用了吗?
cd /output/host/bin
vim hello.c
编辑一个hello.c
文件
#include<stdio.h>
int main(){
printf("Hello world!\n");
return 0;
}
使用交叉编译工具mipsel-buildroot-linux-uclibc-gcc
对hello.c
源文件进行编译。
./mipsel-buildroot-linux-uclibc-gcc hello.c -o hello
查看生成的二进制文件hello
的文件格式
file hello
将编译生成的二进制文件hello
复制到我的路由器上。
scp hello root@192.168.2.1:/tmp
登录路由,运行二制文件查看结果。
OK ,完美运行,也输出了想要的结果。