OPKG 配置
https://blog.phpgao.com/xiaomi_router_opkg.html
opkg是openwrt里的軟件包管理器,類似mac下的brew、Ubuntu下的apt-get和centos下的yum。
但是為什么有很多同學都沒辦法在openwrt中使用opkg,其主要原因其實嵌入式的硬件繁多,不像我們一般PC只有i386和AMD64之分。
此方法適用於OpenWRT,Pandorabox,官方系統。
ps.工具鏈是什么?可以參考 http://wiki.openwrt.org/zh-cn/about/toolchain
舉個例子:
老高用C語言寫了一個HELLO_WORLD程序,然后使用交叉編譯出適合小米路由mini的程序,然后拿到小米路由中去執行時執行不了的。因為硬件不同,程序運行的環境不同。
所以一個軟件的發布是個很頭大的問題,下圖是chinadns的下載地址,大家數數有幾個平台的編譯版本:
如何配置opkg
其實讀懂了上面的例子,解決的方法其實很簡單。
小米路由器mini的CPU為MTK MT7620A 單核580MHz
,小米路由器的CPU為博通 BCM4709
。
mt7620a平台所需要的軟件包,工具鏈等都能在這里找到:
http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/
有了以上的數據我們就可以開始配置opkg!
# 備份舊的 mv /etc/opkg.conf /etc/opkg.conf.bak # 使用vi編輯配置文件 vi /etc/opkg.conf
此處更方便的方法是后台進入 系統->軟件包->配置
然后在輸入框中輸入以下內容(注意notice處,/mnt/sdb1/opkg為掛載U盤或移動硬盤的全路徑)
dest root / dest ram /tmp lists_dir ext /etc/opkg-lists option overlay_root /overlay # notice dest usb /mnt/sdb1/opkg arch all 100 arch ramips_24kec 200 arch ramips 300 arch mips 400 arch unkown 500 src/gz barrier_breaker_base http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base src/gz barrier_breaker_luci http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/luci src/gz barrier_breaker_management http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/management src/gz barrier_breaker_oldpackages http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/oldpackages src/gz barrier_breaker_packages http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/packages src/gz barrier_breaker_routing http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/routing src/gz barrier_breaker_telephony http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/telephony
加速版本
使用了mirrors.ustc.edu.cn
的反代加速
dest root /
dest ram /tmp
lists_dir ext /etc/opkg-lists
option overlay_root /overlay
# notice dest usb /mnt/sdb1/opkg arch all 100 arch ramips_24kec 200 arch ramips 300 arch mips 400 arch unkown 500 src/gz barrier_breaker_base http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/base src/gz barrier_breaker_luci http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/luci src/gz barrier_breaker_management http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/management src/gz barrier_breaker_oldpackages http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/oldpackages src/gz barrier_breaker_packages http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/packages src/gz barrier_breaker_routing http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/routing src/gz barrier_breaker_telephony http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/telephony
更多源設置
以上源只是配置了基礎的源,像openwrt-dist這種源,由於某種神秘力量導致我們無法直接使用,需要使用反代,老高發現一個不錯的反代
src/gz openwrt_dist http://openwrt-dist.thankgfw.ml/releases/ramips/packages src/gz openwrt_dist_luci http://openwrt-dist.thankgfw.ml/releases/luci/packages
如何使用呢?
把上面的代碼加到opkg配置文件的后面就行!
如何使用opkg命令
配置完畢后我們就可以開始使用opkg工具了,下面老高簡單的介紹幾個常用命令。
# 打印幫助 opkg -h # 更新資源列表 opkg update # 列出已安裝的包 opkg list # 搜索包 opkg search tcpdump # 安裝軟件,以安裝curl和wget為例 opkg install curl # 安裝本地軟件包 opkg install /tmp/wget_1.16-1_ramips_24kec.ipk # 移除軟件 opkg remove wget
使用opkg常見問題
錯誤 Unknown package 'redsocks2'.
解決方法:軟件源配置錯誤,請選擇合適的源
opkg_conf_parse_file: /etc/opkg.conf:1: Ignoring invalid line: `t root /'
- satisfy_dependencies_for: Cannot satisfy the following dependencies for redsocks2:
- libc libc
- opkg_install_cmd: Cannot install package redsocks2.
解決方法:libc需要手動安裝
cd /tmp # wget http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base/libc_0.9.33.2-1_ramips_24kec.ipk wget http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/base/libc_0.9.33.2-1_ramips_24kec.ipk ## 安裝libc opkg install libc_0.9.33.2-1_ramips_24kec.ipk
================= End