1. 程式人生 > >openwrt 在無usb的wifi 路由器上用opkg 安裝軟件

openwrt 在無usb的wifi 路由器上用opkg 安裝軟件

network com ima 發現 安裝 map text server -o

前言

前幾天把dir615 刷成了openwrt,在安裝完畢之後,發現最大的問題是自身的內存太小,導致可用存儲空間不足,安裝幾個軟件後就報存儲空間不足了。由於這個路由沒有usb接口,所以無法外掛存儲。為了仍能愉快的安裝各種軟件,我設計了用NFS 擴展路由器存儲空間的辦法:
技術分享圖片

工具準備

wifi Router:Dir615
nfs Server :Mac Mini

nfs Server 配置

條件有限,我手上只有一臺Mac Mini,所以就利用Mac OS 自帶的NFS 進行配置了

sudo vi /etc/exports
/Volumes/MacSoft/openwrt/dir615 -alldirs -rw -maproot=xxx:admin -network 192.168.100.0 -mask 255.255.255.0
sudo nfs restart

/Volumes/MacSoft/openwrt/dir615: 要共享的本機目錄
-alldirs 掛載該目錄下的所有子目錄
-maproot=xxx:admin 以管理員組的 xxx 用戶身份讀寫該目錄,xxx 替換成自己的
-network 192.168.100.0 -mask 255.255.255.0: 允許連接的網絡範圍

刷機過程

參見 http://blog.51cto.com/13673090/2161277

openwrt 擴展存儲

首先調整軟件包配置並更新軟件包列表:

系統》軟件包》配置

option overlay_root /tmp/overlay

系統》軟件包》動作》刷新列表

  • 命令行可執行opkg update

擴展存儲空間到內存

由於dir615 的存儲比較小,所以要先用內存的/tmp分區中轉一下,自身內存在64M 的可以略過這個步驟

mkdir /tmp/root
cp -r -d -p /etc /tmp/root/
cp -r -d -p /lib /tmp/root/
cp -r -d -p /usr /tmp/root/

mount --binds /tmp/root/usr /usr
mount --binds /tmp/root/etc /etc
mount --binds /tmp/root/lib /lib

安裝nfs 內核支持,掛載分區

opkg install kmod-fs-nfs 
mkdir /opt
mount -o nolock,rw -t nfs 192.168.100.2:/Volumes/MacSoft/openwrt/dir615 /opt
mkdir /opt/root
mkdir /opt/root/overlay
mkdir /opt/root/opkg-lists
cp -r -d -p /etc /opt/root/
cp -r -d -p /lib /opt/root/
cp -r -d -p /usr /opt/root/

mount --binds /opt/root/usr /usr
mount --binds /opt/root/etc /etc
mount --binds /opt/root/lib /lib
sed -i "s#/tmp/overlay#/opt/root/overlay#g" /etc/opkg.conf
sed -i "s#/var/opkg-lists#/opt/root/opkg-lists#g" /etc/opkg.conf
opkg update
rm -rf /tmp/root

增加swap 內存

opkg install swap-utils block-mount losetup kmod-loop 
dd if=/dev/zero of=/opt/swap/swapfile bs=1024k count=512
mkswap /opt/swap/swapfile
losetup /dev/loop2 /opt/swap/swapfile
swapon /dev/loop2

到此為止,一個可自己隨意安裝軟件的openwrt 環境就構建完畢了,這個路由cpu 太慢,軟件編譯很吃力。
windows 共享服務也是可以支持的,我沒去試驗,把安裝nfs 換成cifs 支持就可了,喜歡折騰的朋友可以繼續研究一下。

openwrt 在無usb的wifi 路由器上用opkg 安裝軟件