#14 2009-07-09 23:49:58
Re: [DD-WRT] 華碩Router改機
參考DD-WRT wiki Optware, 這是已寫好的script來安裝. 若要手動安裝, 可參考Optware-ByHand, 一步步執行.
我個人是用手動安裝, 了解概念後, 就可套用到其他的Optware.
6-3. 安裝OpenWrt相關套件這部分, 是為了安裝格式化硬碟的程式. 若主要是使用Optware, 且硬碟已在其他Linux下格式化完成, OpenWrt這部分可忽略.
離線
#15 2009-07-10 12:12:44
Re: [DD-WRT] 華碩Router改機
hippo 提到:
參考DD-WRT wiki Optware, 這是已寫好的script來安裝. 若要手動安裝, 可參考Optware-ByHand, 一步步執行.
我個人是用手動安裝, 了解概念後, 就可套用到其他的Optware.
6-3. 安裝OpenWrt相關套件這部分, 是為了安裝格式化硬碟的程式. 若主要是使用Optware, 且硬碟已在其他Linux下格式化完成, OpenWrt這部分可忽略.
感謝協助
不知ipkg update跟 ipkg.sh update 有何不同,我在telnet下執行 ipkg.sh update無法運行,不知是什麼原因
還有,DD-WRT在USB設定上有mount USB HDD,其中有一個選項是 "Disk Mount Ponit",不知這個選項選成 /opt是否有影響?
離線
#16 2009-07-10 14:44:52
Re: [DD-WRT] 華碩Router改機
在DD-WRT, /bin/ipkg是script, 在Oleg's firmware, ipkg.sh, 也是個script.
DD-WRT預設的資料來源是openwrt.org; Oleg預設的資料來源是nslu2-linux.org, 也就是Optware的資料來源. 所以, 手動設定DD-WRT, 將資料來源指定到nslu2-linux.org, 才能取得ipkg-opt的套件, 然後才能安裝.
預設掛到/mnt, 當然也可指定掛到/opt, /jffs. 我的做法是將flash memory剩餘空間掛成/jffs, 安裝啟動檔; /opt是掛到小容量硬碟, 安裝Optware; /mnt另建幾個目錄, 掛大容量硬碟, 存放資料, 隨時可替換. 所以, 您可先依照自己的需求, 分配mount point所要掛載的硬碟.
離線
#17 2009-07-11 23:23:10
Re: [DD-WRT] 華碩Router改機
基於許多網友無法順利於DD-WRT安裝Optware, 以下是我的非正規作法. 借用Router記憶體, 安裝ipkg-opt套件. 主要使用Optware套件庫, 而不使用OpenWrt套件庫. 安裝ipkg-opt後, 打包壓縮. 再解壓縮到已事先格式化且掛載為/opt的硬碟.
這種作法與DD-WRT wiki之Optware所敘述的作法不同, 主要是我不喜歡wiki所敘述的, 將/opt掛在/jffs之下, 而想將/opt掛於單獨的硬碟磁區. 所以, 請網友心領神會後, 發展出符合自己需求的作法.
機型: 華碩 WL-500gx
韌體: DD-WRT v24-sp2 (07/10/09) mini-usb - build 12476M NEWD Eko
設定DD-WRT:
1. 恢復出廠預設值.
2. 啟用JFFS2.
3. 設定PPPoE, 時區, NTP等.
4. 系統管理--> 基本管理--> 重新啟動路由器.
5. 確認可上網.
6. Telnet進入DD-WRT, 確認可ping ipkg.nslu2-linux.org
# ping ipkg.nslu2-linux.org
PING ipkg.nslu2-linux.org (140.211.169.169): 56 data bytes
64 bytes from 140.211.169.169: seq=0 ttl=50 time=212.430 ms
64 bytes from 140.211.169.169: seq=1 ttl=50 time=241.961 ms
64 bytes from 140.211.169.169: seq=2 ttl=50 time=219.324 ms
--- ipkg.nslu2-linux.org ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 200.414/218.532/241.961 ms
以下皆在shell環境下操作. 若要查閱命令說明, 請參考拙作答案就在軟體內.
1. 借用RAM, 掛載/jffs, /opt
# mkdir /tmp/jffs
# mount /tmp/jffs /jffs -o bind
# mkdir -p /jffs/tmp/ipkg
# mkdir /jffs/opt
# mount /jffs/opt /opt -o bind
# mkdir /opt/etc
2. 設定Optware資料來源
# cat > /opt/etc/ipkg.conf
輸入以下設定, ctrl-d 結束
src optware http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable
dest root /jffs
3. 更改ipkg設定檔路徑
# export IPKG_CONF_DIR=/opt/etc
4. 更新資料來源
# ipkg update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages ...
Connecting to ipkg.nslu2-linux.org (140.211.169.169:80)
Packages 100% |***************************************************| 463k 00:00:00 ETA
Done.
Updated list of available packages in /jffs/usr/lib/ipkg/lists/optware
5. 查詢ipkg套件
# ipkg list | grep ipkg
ipkg-opt - The Itsy Package Manager
ipkg-web - A web frontend for ipkg
6. 安裝ipkg-opt, 並覆寫原有設定檔
# ipkg -force-depends install ipkg-opt
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/uclibc-opt_0.9.28-13_mipsel.ipk ...
Connecting to ipkg.nslu2-linux.org (140.211.169.169:80)
uclibc-opt_0.9.28-13 100% |***************************************************| 832k 00:00:00 ETA
Done.
Unpacking uclibc-opt...Done.
Configuring uclibc-opt...Updating /opt/etc/ld.so.cache
Done.
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/ipkg-opt_0.99.163-10_mipsel.ipk ...
Connecting to ipkg.nslu2-linux.org (140.211.169.169:80)
ipkg-opt_0.99.163-10 100% |***************************************************| 75810 00:00:00 ETA
Done.
ipkg_install_file: Warning: ipkg-opt depends on the following uninstalled programs: uclibc-opt
Unpacking ipkg-opt...Done.
Configuring ipkg-opt...Configuration file `/opt/etc/ipkg.conf'
==> File on system created by you or by a script.
==> File also in package provided by package maintainer.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions (if diff is installed)
The default action is to keep your current version.
*** ipkg.conf (Y/I/N/O/D) [default=N] ? Y
Done.
7. 檢查覆寫後的設定檔
# cat /opt/etc/ipkg.conf
#Uncomment the following line for native packages feed (if any)
#src/gz native http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/native/stable
src/gz optware http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable
dest /opt/ /
#option verbose-wget
8. 再更新資料來源
# ipkg-opt update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz
Updated list of available packages in /opt/lib/ipkg/lists/optware
Successfully terminated.
9. 檢查已安裝套件, 空的...
# ipkg-opt list_installed
Successfully terminated.
10. 查詢ipkg套件
# ipkg-opt list | grep ipkg
ipkg-opt - 0.99.163-10 - The Itsy Package Manager
ipkg-web - 7-7 - A web frontend for ipkg
11. 再安裝ipkg-opt
# ipkg-opt install ipkg-opt
Installing ipkg-opt (0.99.163-10) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/ipkg-opt_0.99.163-10_mipsel.ipk
package uclibc-opt suggests installing ipkg-opt
Installing uclibc-opt (0.9.28-13) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/uclibc-opt_0.9.28-13_mipsel.ipk
Configuring ipkg-opt
Configuring uclibc-opt
Updating /opt/etc/ld.so.cache
Successfully terminated.
12. 檢查已安裝套件
# ipkg-opt list_installed
ipkg-opt - 0.99.163-10 - The Itsy Package Manager
uclibc-opt - 0.9.28-13 - micro C library for embedded Linux systems
Successfully terminated.
幾經波折, 終於...
13. 檢查ipkg-opt相關檔案
# ipkg-opt files ipkg-opt
# cat /opt/etc/ipkg.conf
# ls -l /opt/lib/ipkg/
14. 打包, 壓縮
# cd /opt
# tar -cvf /tmp/dd-wrt_optware.tar *
# gzip /tmp/dd-wrt_optware.tar
# ls -l /tmp/dd-wrt_optware.tar.gz
-rw-r--r-- 1 root root 1035378 Jan 1 00:42 dd-wrt_optware.tar.gz
15. 上傳dd-wrt_optware.tar.gz到FTP server(FreeNAS)
# ftpput -u root -p freenas 192.168.1.250 dd-wrt_optware.tar.gz /tmp/dd-wrt_optware.tar.gz
此步驟亦可使用WinSCP複製到PC端.
16. DD-WRT恢復出廠預設值.
使用條件:
1. 已在其他Linux環境, 分割, 格式化硬碟.
2. DD-WRT已驅動USB, ext2/ext3等.
3. DD-WRT已掛載/opt.
使用方式:
1. 下載dd-wrt_optware.tar.gz到/tmp
# ftpget -u root -p freenas 192.168.1.250 /tmp/dd-wrt_optware.tar.gz dd-wrt_optware.tar.gz
# ls -l /tmp/dd-wrt_optware.tar.gz
此步驟亦可使用WinSCP, 由PC端複製到/tmp
2. 確認掛載/opt, 且無其他資料.
# mount | grep opt
/dev/discs/disc0/part5 on /opt type ext3 (rw)
# ls /opt
lost+found
3. 解壓縮到/opt
# tar -xzvf /tmp/dd-wrt_optware.tar.gz -C /opt
4. 檢查
# ls -l /opt
drwxr-xr-x 2 root root 4096 Jul 11 22:43 bin
drwxr-xr-x 2 root root 4096 Jul 11 22:43 etc
drwxr-xr-x 3 root root 4096 Jul 11 22:43 lib
drwx------ 2 root root 16384 Jul 11 13:51 lost+found
drwxr-xr-x 2 root root 4096 Jul 11 22:43 sbin
drwxr-xr-x 3 root root 4096 Jul 11 22:43 share
drwxr-xr-x 3 root root 4096 Jul 11 22:43 usr
5. 刪除壓縮檔
# rm /tmp/dd-wrt_optware.tar.gz
6. 檢查已安裝的套件
# ipkg-opt list_installed
ipkg-opt - 0.99.163-10 - The Itsy Package Manager
uclibc-opt - 0.9.28-13 - micro C library for embedded Linux systems
Successfully terminated.
7. 更新套件來源
# ipkg-opt update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz
Updated list of available packages in /opt/lib/ipkg/lists/optware
Successfully terminated.
# ipkg-opt upgrade
Nothing to be done
Successfully terminated.
接下來, 請參考站長寫的改機文件, 安裝需要的軟體.
請謹記, 我的作法只是"參考", 您領悟之後所獲得的答案, 那才是最真實的.
同步更新wiki.
離線
#19 2009-07-14 17:26:59
Re: [DD-WRT] 華碩Router改機
先恭喜您搞定了Optware. 我的作法不算是正規方式, 只不過是為了解決我的疑惑所搞出來的方法. 您若領悟後, 應能創造出符合自己需求的作法.
在Optware的busybox, util-linux, util-linux-ng套件有swapon; 在OpenWrt則為swap-utils套件. 我個人使用util-linux-ng. 請參閱拙作[DD-WRT] 彌補內建命令的不足.
系統啟動檔, Oleg使用flashfs, 有64k限制. DD-WRT使用jffs, 可使用外接USB儲存設備(SD card, HD等)來擴充jffs. 用法各有巧妙, 就看您的script怎麼寫, 來達到您的目的. 我個人使用mini usb版, 就是為了較多的jffs空間, 存放自製的壓縮檔, 作開機mount硬碟前的磁碟掃描. 請參閱拙作[DD-WRT] 使用JFFS2. 所以, /usr/local是Oleg專用的作法, 不適用於DD-WRT.
DD-WRT可用於其他廠牌的機器, 不只華碩. Oleg只能用於華碩的機器. 請參閱[DD-WRT] 硬體支援列表改版, 找韌體更方便.
離線
#20 2009-07-14 18:24:22
Re: [DD-WRT] 華碩Router改機
hippo 提到:
先恭喜您搞定了Optware. 我的作法不算是正規方式, 只不過是為了解決我的疑惑所搞出來的方法. 您若領悟後, 應能創造出符合自己需求的作法.
在Optware的busybox, util-linux, util-linux-ng套件有swapon; 在OpenWrt則為swap-utils套件. 我個人使用util-linux-ng. 請參閱拙作[DD-WRT] 彌補內建命令的不足.
系統啟動檔, Oleg使用flashfs, 有64k限制. DD-WRT使用jffs, 可使用外接USB儲存設備(SD card, HD等)來擴充jffs. 用法各有巧妙, 就看您的script怎麼寫, 來達到您的目的. 我個人使用mini usb版, 就是為了較多的jffs空間, 存放自製的壓縮檔, 作開機mount硬碟前的磁碟掃描. 請參閱拙作[DD-WRT] 使用JFFS2. 所以, /usr/local是Oleg專用的作法, 不適用於DD-WRT.
DD-WRT可用於其他廠牌的機器, 不只華碩. Oleg只能用於華碩的機器. 請參閱[DD-WRT] 硬體支援列表改版, 找韌體更方便.
那這樣照hippo大大說的,我用DD-WRT建立系統啟動檔是建立在/jffs下嗎
若將系統啟動檔寫入 flash 記憶體是寫入在/jffs下嗎?
若是這樣
那在Aven大大的文章中[WL-500g 系列改機基本步驟]需要把將系統啟動檔案寫入 flash 記憶體的動作就不需要了吧!
可是這樣會不會機器重開後/jffs內的資料被重置呢?
用ls查看說 /jffs下有/usr
若用WinSCP登陸的話在根目錄下也有/usr
這有分嗎?
我現在是用Linksys WRT350N + DD-WRT V24 SP2 來改機啊!
最後修改: walkman (2009-07-14 18:32:31)
離線