之前写过一篇利用脚本安装的文章,这里再写个自己提取bin固件包中opkg安装的方法(主要是刚玩儿了固件解包,想试试看)。
前提
· R3P路由器已开启ssh(方法可见)
环境
系统: ubuntu 18.04
软件: binwalk squashfs-tools
一、ubuntu操作
1.1 下载含有opkg的mt7621固件
wget https://archive.openwrt.org/chaos_calmer/15.05/ramips/mt7621/openwrt-15.05-ramips-mt7621-dir-860l-b1-squashfs-factory.bin
ls
1.2 安装binwalk和squashfs-tools包
sudo apt install binwalk squashfs-tools
1.3 解包bin
binwalk -e openwrt-15.05-ramips-mt7621-dir-860l-b1-squashfs-factory.bin
ls
1.4 解包squashfs
cd _openwrt-15.05-ramips-mt7621-dir-860l-b1-squashfs-factory.bin.extracted/
ls *.squashfs
unsquashfs 120038.squashfs
ls squashfs-root/
1.5 打包opkg
cd squashfs-root/
find -name "*opkg*"
tar -zcf opkg.tgz bin/opkg usr/lib/opkg usr/sbin/opkg-key etc/opkg etc/opkg.conf
ls
6.上传到路由器
scp opkg.tgz root@192.168.31.1:/data
二、路由器操作
2.1 连接路由器
ssh root@192.168.31.1
2.2 解压
cd /data
ls
tar -zxf opkg.tgz
2.3 修改opkg配置文件
c=/data/etc/opkg.conf
sed -i "s/\(dest root \).*/\1\/data/" $c
sed -i "s/\(lists_dir ext \).*/\1\/data\/var\/opkg-lists/" $c
sed -i "s/\(option overlay_root \).*/\1\/data/" $c
2.4 添加环境变量
PATH=$PATH:/data/bin:/data/usr/sbin
echo "export PATH=$PATH" >> /etc/profile
echo "export LD_LIBRARY_PATH=/data/usr/lib" >> /etc/profile
source /etc/profile
2.5 完成
三、测试
从提取(复制)到安装(解压)的操作就完成了,下面来测试一下。
root@XiaoQiang:/data# opkg-key
Usage: /data/usr/sbin/opkg-key <command> <arguments...>
Commands:
add <file>: Add keyfile <file> to opkg trusted keys
remove <file>: Remove keyfile matching <file> from opkg trusted keys
verify <sigfile> <list>: Check list file <list> against signature file <sigfile>
root@XiaoQiang:/data# opkg list
root@XiaoQiang:/data# opkg update
root@XiaoQiang:/data#
**失败!命令可以识别,但是不能执行更新、安装等的任何操作
时间有限,留待日后再研究**
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。