文章地址:
在给OpenWrt挂载了U盘以后,路由器可以放下更多的程序了,是时候为它量身打造一套自己的程序了!
万事开头难,写出第一个HelloWorld也废了不少功夫。
关于OpenWrt的HelloWorld程序,网上有不少文章,但大都是千篇一律,照葫芦画瓢的将一个小小的HelloWorld程序经过层层工序,打包生成OpenWrt的安装包文件,本人使用的Fedora9在这期间出过无数问题,极为繁琐。使写一个HelloWorld成为了浩大的工程,浪费了不少时间。
杀鸡焉用牛刀?
由于本人使用的路由器是D-Link的Dir-825,经过查证,此路由器使用的
CPU是ar7161,ar7161是一种RISC指令集的CPU,属于mips构架。所以写个HelloWorld只需要在Linux下搭建一个Mips交叉编译环境就好咯。
闲话少说,现在开始搭建
1:下载
在 下载buildroot:
tar -jxvf buildroot-snapshot.tar.bz2
cd buildroot
2:配置
make clean
make menuconfig
会出现和编译Linux类似的菜单选择界面,如下图:
如果出现
Your display is too small to run Menuconfig!
It must be at least 19 lines by 80 columns.
make: *** [menuconfig] 错误 1
类似的错误,全屏运行虚拟机就好了。
选择第一项“Target Architecture”,改成MIPS(big endian),如下图:
说明:
little endian是小端模式 如果你的cpu是mipsel架构的,选此项
big endian是大端模式 mips架构选此项
另外,选择“Toolchain”,将“Kernel Headers”的Linux版本改成你自己主机的Linux版本 如下图
3:编译
编译时要联网
输入 make 就开始编译了
之后就是漫长的等待了。。。
说明:
如果在编译过程中出现提示有某个包未安装的错误时,安装好那个包就好了。
4:完成
编译完成后,在buildroot文件夹下多了一个output文件夹,其中就是编译好的文件:
cd buildroot/output/host/usr/bin
我们发现了mips的交叉编译工具已经生成啦~~:
为了以后方便使用,我们直接将其中的bin文件夹添加到环境变量中。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
为了方便测试,直接在/output/host/usr/bin/ 下建立hello.c文件
-
#include <stdio.h>
-
void main()
-
{
-
printf("helloworld!/n");
-
return;
-
}
输入:
-
./mips-buildroot-linux-uclibc-gcc hello.c
会发现在当前文件夹下生成了一个名为 a.out 的文件。
将a.out上传到路由器,使用命令
改变文件权限
运行a.out
可以发现 helloworld 已经出现在屏幕上了!!!
阅读(2921) | 评论(0) | 转发(0) |