背景
使用openwrt的原因就在于系统的可玩性,自己编译第三方的插件是必不可少的过程,但是编译出来的插件如果一个一个的上传到系统中,再一个个的安装,因为依赖的问题,会让你有一种在玩套娃的感觉。所以必须让opkg的软件源指向本地目录,让其自己去解决依赖的问题。
方式
挂载目录
固件编译完之后的bin目录就是我们需要挂载到openwrt文件系统的目录,一般bin目录的结构是这样的:
.
├── packages
│ └── mipsel_24kc
│ ├── base
│ ├── luci
│ ├── packages
│ └── routing
└── targets
└── ramips
└── mt7621
我们可以采用nfs的方式挂载目录,也可以将整个目录上传到文件系统中,这里我懒得搞nfs服务器了,为了省事儿我就直接把目录上传到/tmp/upload/文件夹中了
更改软件源
1.进入到opkg目录
cd /etc/opkg/
2.备份系统默认软件源文件
cp distfeeds.conf distfeeds.conf.backup
3.更改distfeeds.conf文件内容
vim distfeeds.conf
4.将 http://downloads.openwrt.org/snapshots替换为file:///tmp/upload/OpenWrtfirmware200515 如下:
src/gz openwrt_core file:///tmp/upload/OpenWrtfirmware200515/targets/ramips/mt7621/packages
src/gz openwrt_base file:///tmp/upload/OpenWrtfirmware200515/packages/mipsel_24kc/base
src/gz openwrt_luci file:///tmp/upload/OpenWrtfirmware200515/packages/mipsel_24kc/luci
src/gz openwrt_packages file:///tmp/upload/OpenWrtfirmware200515/packages/mipsel_24kc/packages
src/gz openwrt_routing file:///tmp/upload/OpenWrtfirmware200515/packages/mipsel_24kc/routing
5.更改完成后保存
esc + : + wq
关闭检查签名
1.修改opkg.conf文件
vi /etc/opkg.conf
2.注释option check_signature这行,修改后的内容如下:
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
#option check_signature
更新软件源
1.执行命令
opkg update
开始安装软件
软件源更新成功后就可以跟往常一样开始安装软件了
安装kmod内核模块
参考:https://www.jianshu.com/p/117d8732a32d
在安装某些依赖内核的ipk是提示如下:
satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-net-rndis
因为没有这个版本内核源码,无法编译固件,苦苦寻觅了下,有人说加上–force-depends。加上发现也不行。后来找到文章说加上 --nodeps参数,试了一下,安装上了,如下: