如何为OpenWRT设备编译模块

#如何为OpenWRT设备编译模块?

1.收集信息

a. 收集硬件设备信息

b. 收集系统信息

a. 收集硬件设备信息

#查看CPU信息

root@OpenWrt:/proc# cat cpuinfo

system type : Ralink RT3052 id:1 rev:3

machine : HuaWei HG255D

processor : 0

cpu model : MIPS 24KEc V4.12

BogoMIPS : 255.59

wait instruction : yes

microsecond timers : yes

tlb_entries : 32

extra interrupt vector : yes

hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]

isa : mips1 mips2 mips32r1 mips32r2

ASEs implemented : mips16 dsp

shadow register sets : 1

kscratch registers : 0

core : 0

VCED exceptions : not available

VCEI exceptions : not available

#查看TTL频率

root@OpenWrt:/proc# cat cmdline

console=ttyS0,57600 rootfstype=squashfs,jffs2


b. 收集系统信息

#查看Linux版本信息

root@OpenWrt:/etc# uname -a

Linux OpenWrt 3.10.49 #1 Sat Mar 5 10:09:17 UTC 2016 mips GNU/Linux

root@OpenWrt:/proc# cat /proc/version

Linux version 3.10.49 (wenzhi@ASUS) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r48549) ) #1 Sat Mar 5 10:09:17 UTC 2016

#查看OpenWRT版本信息

root@OpenWrt:/etc# cat /etc/openwrt_release

DISTRIB_ID="OpenWrt"

DISTRIB_RELEASE="Barrier Breaker"

DISTRIB_REVISION="r48549"

DISTRIB_CODENAME="barrier_breaker"

DISTRIB_TARGET="ramips/generic"

DISTRIB_DESCRIPTION="OpenWrt Barrier Breaker 14.07"

DISTRIB_TAINTS="no-all"


2. 下载系统源码

我们知道设备使用OpenWRT版本后可以到GitHub上下载对应tag的源码进行编译,如我的设备OpenWRT版本是14.07,那我就去下载V14.07的tag源码

但当前的GitHub里已经没有此版本的源码了,我想编译aria2(自带的aria2不能下载种子,所以想重新编译)怎么办呢?

我们可以使用opkg update更新安装包,此时会在命令行打印出此版本的package下载地址,我们只需知道这个地址即可找到对应的OpenWRT编译的SDK,注意不是源码

如,

root@OpenWrt:~# opkg update

Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/base/Packages.gz.

我们只需使用ttp://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/,在页面的下方就有我们想要的SDK压缩包,

3. 编译SDK

1.解压SDK

2.使用./script/feed update -a更新模块package

3.使用./script/feed install -a将模块与编译环境关联

4.使用make menuconfig进行模块配置.如我想要为aria2添加种子和磁力支持,勾选相应的选项保存即可

5.使用make pakcage/xxx/compile进行编译,如我要编译aria2,则使用make pakcage/aria2/compile.编译产物位于根目录下的 bin/ramips/packages/packages/即可看到编译的ipk安装包

4. 安装ipk程序

将新的ipk程序上传到路由器上,使用opkg install xxxx.ipk即可.如果是替换原有的程序,也无需将原先的程序卸载,直接安装即可.

5. 遇到问题

1.使用make menuconfig进行编译配置错误

错误信息如下:

client@linux:~/Desktop/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2$ make menuconfig V=s

make[1]: Entering directory `/home/client/Desktop/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/scripts/config'

/usr/bin/ld: zconf.tab.o: relocation R_X86_64_32S against symbol `symbol_yes' can not be used when making a shared object; recompile with -fPIC

/usr/bin/ld: final link failed: Nonrepresentable section on output

collect2: error: ld returned 1 exit status

make[1]: *** [mconf] Error 1

make[1]: Leaving directory `/home/client/Desktop/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/scripts/config'

make: *** [scripts/config/mconf] Error 2

解决方式:make -C scripts/config clean

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容