最近一直在折腾我的光猫、路由器以及学习嵌入式开发的相关知识,于是有了下面这篇文章,参考了网上很多文章,终于实现了自己的目标,简单的记录下来,名为“保姆级”其实是因为自己技术很菜,生怕写的太粗略了过段时间自己都记不起来当时是怎么实现的了。

1.下载buildroot工具链

到官网https://buildroot.uclibc.org/download.html下载,我选择了长期支持版2021.02.7

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的图形界面后,选择如下的参数。 image.png image.png image.png 注意需要按两次Esc键。 image.png image.png image.png 按三次回车后又回到此界面了,然后按两次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所需要的编译工具了 image.png 话不多说,看看我们的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-gcchello.c源文件进行编译。

./mipsel-buildroot-linux-uclibc-gcc hello.c -o hello

查看生成的二进制文件hello的文件格式

file hello

image.png 将编译生成的二进制文件hello复制到我的路由器上。

scp hello root@192.168.2.1:/tmp

image.png 登录路由,运行二制文件查看结果。

image.png

OK ,完美运行,也输出了想要的结果。