交叉编译适用于Padavan固件的可执行文件
交叉编译
由于不同平台编译出来的文件并不能通用,比如在arm下make命令编译的文件,放到mips上就不能运行。
所谓交叉编译就是在某一平台下编译另一平台的bin文件(可执行文件)。
padavan
俄罗斯大神的杰作,极其稳定,在CN大神经过本地化之后加入了很多的功能(SS、adbyby等)。
这里推荐使用hiboy的固件
准备
提示: 千万别用centos(别问我为什么,我卡在这里很多天之后换成debian才编译成功)。
系统: Debian 7
安装依赖
1 | $ apt-get install git autoconf automake bison build-essential flex gawk gettext gperf libtool pkg-config zlib1g-dev libgmp3-dev libmpc-dev libmpfr-dev texinfo python-docutils mc autopoint lrzsz -y |
开始交叉编译
下载padavan固件源码
1 | $ cd ~ |
网速快的话一分钟不到就克隆到了/root/rt-n56u/
目录
编译交叉工具链
1 | $ cd ~/rt-n56u/toolchain-mipsel |
耗时很长时间。
完成之后提示 all is done之后。
配置环境变量
1 | $ export PATH=$PATH:/root/rt-n56u/toolchain-mipsel/toolchain-3.4.x/bin: && export STAGING_DIR=/root/rt-n56u/toolchain-mipsel/toolchain-3.4.x/mipsel-linux-uclibc |
这里路径toolchain的路径自己修改一下。
编译三步曲(两步)
首先cd到需要编译的源码目录
1 | $ ./configure --host=mipsel-linux-uclibc |
自动生成makefile
1 | $ make |
这一步编译出了一个二进制可执行文件,在指定的目录。
PS: 如果没有configure这个文件,那就修改 makefile,改成cc=mipsel-linux-uclibc-gcc
,再执行make。
测试
把之前生成的bin文件上传到路由器的/etc/storage
目录。
需要注意的是,这个固件与openwrt不同,它的所有可写的目录均是在RAM里面,也就是只要重启,所有修改的内容都会丢失。
所以需要在弄完之后执行
1 | $ mtd_storage.sh save |
系统会把/etc/storage
目录下的内容压缩打包,保存进 内存中的 区块,重启就不消失了。
运行自己的软件
1 | $ /etc/storage/helloword |
评论
评论插件加载失败
正在加载评论插件