永发信息网

如何从openwrt移植软件包到entware

答案:2  悬赏:0  手机版
解决时间 2021-03-02 02:26
如何从openwrt移植软件包到entware
最佳答案
因为要把fastd移到entware,找了一下发现entware并没有提供完整的文档说明,在这里整理一下我的心得。各种错误疏漏在所难免,欢迎指正。 背景: Broadcom方案的路由一般将系统设置保存在NVRAM,文件系统的根卷采用只读的SquashFS,意味着你虽然...
全部回答
因为要把fastd移到entware,找了一下发现entware并没有提供完整的文档说明,在这里整理一下我的心得。各种错误疏漏在所难免,欢迎指正。 背景: broadcom方案的路由一般将系统设置保存在nvram,文件系统的根卷采用只读的squashfs,意味着你虽然看得到/etc/下的各种配置,但其实无法修改,除非重新编译安装固件。由此派生出来的dd-wrt和tomato也是照办。 对于额外可用的flash,dd-wrt和tomato都支持格式化为jffs2卷(jffs2以下也统一简称jffs),并一般挂载到/jffs路径。 而主要支持atheros方案路由的openwrt则一般采用squashfs + jffs overlay的方案,即根卷仍然是只读的squashfs卷,但在其上覆盖可读写的jffs卷,看起来就好像你可以自由修改文件系统一样,但其实只是jffs卷的内容覆盖在squashfs上。这样既方便,又保留了只读squashfs的灾难恢复功能。 作为对比,下面是r6300v2运行tomato的mount表: rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro,relatime) proc on /proc type proc (rw,relatime) tmpfs on /tmp type tmpfs (rw,relatime) devfs on /dev type tmpfs (rw,noatime) sysfs on /sys type sysfs (rw,relatime) devpts on /dev/pts type devpts (rw,relatime,mode=600) usbfs on /proc/bus/usb type usbfs (rw,relatime) /dev/mtdblock6 on /jffs type jffs2 (rw,noatime) 在r6300v2上登录到ssh以后,我的home目录是跑在tmpfs上的/tmp/home/root,相当于是ramdisk里面。真正可以写入内容并且重启后不丢失的位置只有 /jffs。在r6300v2 + tomato上面,/jffs是利用系统64mb空闲的flash。 下面是wndr3700v4运行openwrt的mount表: rootfs on / type rootfs (rw) /dev/root on /rom type squashfs (ro,relatime) proc on /proc type proc (rw,noatime) sysfs on /sys type sysfs (rw,noatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime) /dev/ubi0_1 on /overlay type ubifs (rw,noatime) overlayfs:/overlay on / type overlayfs (rw,noatime,lowerdir=/,upperdir=/overlay) tmpfs on /dev type tmpfs (rw,relatime,size=512k,mode=755) devpts on /dev/pts type devpts (rw,relatime,mode=600) debugfs on /sys/kernel/debug type debugfs (rw,noatime) wndr3700v4有128m nand flash,大概90多mb空闲。从上面可以看出和tomato的区别在于这些空间(/dev/ubi0_1)被作为overlayfs,透明覆盖于 / 之上。我在wndr3700v4的/etc/下所作的修改都保存到了overlay中,遮蔽了原有存在于squashfs中的文件。另外wndr3700v4是使用廉价的nand flash,因此openwrt专门为其使用ubifs文件系统,而不是上文所说的jffs。 说了这么多看似无关的,是为了解释openwrt/opkg和entware之间一个重要的区别:openwrt默认把opkg包安装到/usr/,而作为移植版的entware默认安装到/opt/。因为ddwrt/tomato根卷只读,/usr/不像openwrt上面那样可以写入,所以只能另选一个通常根卷上没有的路径,因此就有了/opt/。别忘了entware的前身就是optware。 所以ddwrt/tomato的用户常常会需要将/jffs重新bind到/opt,或者挂外接硬盘/u盘到/opt上,openwrt用户则不需要。当然路由内置空间太小的openwrt是另外一回事。 那么把一个软件包从openwrt移植到entware所要做的工作就很直观了:把各种约定好的路径统统改到/opt! /usr/bin? 改到 /opt/bin /usr/sbin? 改到 /opt/bin /etc/配置文件? 改到 /opt/etc/配置文件 使用openwrt uci配置系统的 /etc/config/配置文件?还有openwrt风格的 /etc/init.d/启动脚本?对不起,这些和ddwrt/tomato不兼容,只能case by case修改 实际上entware仓库中你可以找到大量的fix-path.patch文件,就是针对各个软件包修改makefile中的路径。当然,由于内核版本不同(openwrt bb是3.10,cc已经升到3.18,tomato仍然沿用2.26系列)和其他种种原因,总有一些软件包还需要修改其他地方。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
asp日期格式不对,报告出错,求解决
美悦荟在哪里啊,我有事要去这个地方
生产企业出口退税申报时,所属期问题,求解答
纤维素为什么是晶体
打算出行旅游,暂定黄山,九华山,庐山,哪个
求主角叫凰雅的修仙文叫什么书?
卡蔓(步行街)地址有知道的么?有点事想过去
有take part for这个短语吗
第七个图形有多少个正方体木块(图一有一个 图
珠海机场出发坐船到深圳蛇口详细路线?
谢山湾我想知道这个在什么地方
T440s到底有几个M2接口
宁波火车站坐什么车能到庄桥上邵村东区
【conjugate】复共轭(complexconjugate)的定
一个白一个本怎么读
推荐资讯
重庆合川属于哪个区
请问 ~可丽金有激素吗?
什么馅的饺子好吃?
天成商务酒店怎么去啊,有知道地址的么
即使也造句
如图是甲、乙两种物质的溶解度曲线,根据图中
脸上的黑点就像痣一样怎么能弄掉呢
我参加了职工医保,住院找什么比例报销
几天没联系,发信息,他不回,原来一直都很相
男人要面子难道女人就不要面子吗
去其糟粕取其精华是什么意思
读“我国四大地理区域分布图”,回答下列问题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?