天天看點

OPKG 配置

OPKG 配置

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 配置

如何配置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      

此處更友善的方法是背景進入 系統->軟體包->配置

OPKG 配置

然後在輸入框中輸入以下内容(注意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

繼續閱讀