赞
踩
之前工作的时候,在nuc972上有做过使用4G模块上送数据的应用.因为需要调试,所以要把自己的手机卡插上去用,这样自己就没办法上网了(公司没网络,只能开手机热点)
然后一顿操作后,板子就变成了路由器,板子用4G模块拨号,电脑通过网口分配的IP的方式上网了
不过这么整了之后,又想着这路由器功能太弱,搞个更强的,但一点点加功能就太low了,所以就打算移植openwrt到板子上,这就是故事的开始
第一步是先上的官网下载了最新的,已经出到22了,结果一编译,需要gcc6?
我的ubuntu只支持5.4,所以换版本,一直换到了openwrt-17才算能编译
结果没找着支持nuc972的,倒是在nuvoton的git上找到了980的版本
不过这只是地狱的开始
照着教程的做法,第一步是先
./script/feeds update,结果是失败,不过失败也没什么,先不管
在make的过程中可就折腾了,由于网络不稳定,内核git了十几次都下不下来,白白浪费了10个G的流量,后来看到.config里面有一个选项,可以选择本地目录,才终结了这个恶梦,这个选项就是CONFIG_EXTERNAL_KERNEL_TREE
接着就是编译内核了,这里是980的,本想改成972的,奈何实力不够,改不动,就先不改了,把980的东西全部编译一遍再说
编译还算顺利,东西都生成在bin/target/nuc980里面,发现生成的都是.bin这样的固件,还好有一个文件系统的打包在,不然后面就整不活了
虽然编译出来的是980的东西,但我可以只用文件系统嘛,内核和uboot我都能自己编,唯独这文件系统是没办法的,这里我是将原来972上的文件系统打包方法拿过来了,将生成的rootfs生成了yaffs的格式,烧录到了板子上
烧录完之后启动,成功进入openwrt,我知道openwrt有一个叫luci的管理网页,所以就想先登陆上去看看,结果发现没有分配到IP,看到这MAC,瞬间就想到了MAC冲突,做了个脚本开机生成了新的MAC后,可以分配到IP了
然后.....还是打不开网页,ping什么都不通,包括127.0.0.1
查了好久,忽悠悟了,会不会是防火墙?执行/etc/init.d/firewall stop
好了,这会终于ping通127.0.0.1
然后打开本地网页,?,还是打不开?
这会才发现,/www里面什么也没有,百度兄说,你得安装luci
用了opkg install luci安装成功了,结果提示cannot open shared object file libc.so
将/lib/libc-2.24.so链接到/usr/lib下,结果提示undefined symbol stat
瞬间意识到会不会是编译器不一致的问题,百度兄说,你是对的
openwrt的应用也是需要在编译的时候预先编好的,所以开头的那句子./script/feeds update很重要,
可惜那会不懂...哈哈..
问题又回到第一步,如何让update顺利通过呢
将./feeds.config.default里面的网址放到浏览器上,发现已经打不开了
问了百度兄好几次后,也没问题出东西来, 偶然发现有一个网址名是git.openwrt.org,
仔细看了下,发现正是我需要的网址,修改之后,终于update成功
接着就是./script/feeds install luci,提示安装成功,接着make V=s
这回终于应该可以了,重新烧录,啊日,还是不行,/www依然没有东西
百度兄也不知道,问了gpt才知道,原来需要在make menuconfig配置的
配置完后接着make V=s,又报错了,缺少依赖luci-lib-nixio,luci-lib-ip,luci-lib-jsonc
通通安排./script/feeds install
这回编译总算没出错了,先检查下有没有www再烧录吧....
好了,真的装好了,烧录开机
很好,终于有个专业点的路由器了,可喜可贺
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。