這裡的改機,大概分成三個stage
1> 刷OSSLab的NextPBX, Asterik voip交換機
2> 刷Uboot,將256MB RAM都可以用到
3> 修改開機程序,一開機就可以掛上USB,開啟bt, FTP, Samba
更新: 使用google doc連結,已有更新版本(<<=LINK)
Google DOC預覽內容
舊版pdf
下載文件與下面內容相同,可以直接使用本下載文件:NextVOD_SOP.pdf 文章內容為純文字,可下載sop文件: 內文中的pdf檔案
請抓到 電腦之後,再用PDF Reader打開,在瀏覽器中開啟可能有不預期的錯誤
Disclaimer: 圖片與商標皆為原組織所有。 教學圖片請註明引用來源。
OSSLab URL
Facebook改機俱樂部
https://www.facebook.com/groups/477359555618518/
Stage1 刷osslab
需要實體工具:
主機,隨身碟一隻,一隻細長的棒狀物(牙籤、小髮夾,在這裡是螺絲起子)
軟體工具: putty (或者使用telnet)
Step 1-1
確定網樂通的ip位址,網樂通需要連在一台router下,讓他自動取得ip,這樣我們可以再router的使用pc列表中找到他。
通常ip分享器的預設IP是192.168.1.1
至少我們可以確定這台unknown的機器是網樂通,可以對照後面的MAC address
在機器上的貼紙可以找到mac位址
Step1-2
打開Pietty,輸入剛剛找到的IP
先將網樂通斷電,拿起條狀物,準備戳向網樂通。用力壓,按鈕比較緊。
接上電之後,led燈會閃三下,就可以放開按鈕了
之後指示燈會閃一陣子,等到不會閃爍之後,就用PieTTY連線進去!
Note (純粹sop可以省略這段) 可以打個df –h來判定我們是不是真的要在這個磁碟下工作,以OSSlab的建議文件,是要在sda1先覆蓋過,然後在讓網樂通自己覆蓋到sda2。 而網樂通改機俱樂部的方式,則是直接覆蓋到正常開機之後的sda2。
各有好處,OSSLab是不管如何,Recover之後就可以獲得修改之後的Asterik NextPBX,而改機俱樂部的方法,則是不論如何,都可以Recover到網樂通最原始的系統,因為sda1沒改到。
在這裡用”改機俱樂部”的方法來做。 所以插上USB隨身碟,裡面放好target_NextPBX_by_osslab_v0.6.3.tgz (檔案版本不一定相同,這裡的文字引用網樂通改機俱樂部,但稍後的介紹可能只是v0.4.3而已) dist_compact.sh4.tar.gz (刷機檔)。
|
插上USB隨身碟,這隻隨身碟的檔案格式可以是FAT32,裡面放好target_NextPBX_by_osslab_v0.6.3.tgz (檔案版本不一定相同,這裡的文字引用網樂通改機俱樂部,但稍後的介紹可能只是v0.4.3而已)
dist_compact.sh4.tar.gz (刷機檔)。
接續用PieTTY連進去之後,插上usb。
mount -o iocharset=utf8 /dev/sdb1 /mnt/usb
mount /dev/sda2 /mnt/app
tar xzvf /mnt/usb/target_NextPBX_by_osslab_v0.6.3.tgz -C /mnt/app
sync;sync;sync
複製以上的文字,在PieTTY上點個右鍵,就可以依序執行,不過最後一行的sync;sync;sync 得要自己敲一次enter
不過要小心,target_NextPBX_by_osslab_v0.6.3.tgz這個檔案名稱要自己找一下。
在我這隻隨身碟,檔案名稱是target_IPPBX_by_osslab_v043.tgz
執行tar xzvf這行之後,大概會長這樣
系統正在解壓縮資料到內建的USB DOM中。 等他結束之後就可以敲sync;sync;sync這行。
到這裡為止,可以完成第一段的改機。
拔電源,再接上,連PieTTY
這個時候的Usernam是root, Password是osslab。
先登入,再進行第二段。
Step2 刷改機俱樂部的相關服務
開機登入之後。
mount -o iocharset=utf8 /dev/sdb1 /mnt/usb
mount /dev/sda2 /mnt/app
tar xzvf /mnt/usb/dist_compact.sh4.tar.gz -C /mnt/app
/mnt/app/usr/bin/chroot /mnt/app /bin/bash
ldconfig
exit
#sync; sync; sync;
umount /mnt/app
umount /mnt/usb
以上步驟完成後,拔隨身碟、電源線。
帳密 root/123456
複製上面這段,貼到PieTTY執行之後大概長這樣。
執行完至少都有transmission-daemon, pureftpd了
Step3 刷Uboot
在刷Uboot之前,打top指令,可以看到記憶體的size大概只有128MB
[離開top的方法:按q]
開始升級(免拆機)升級前的注意事項:
升級步驟:
NOTES: 注意:U-Boot 韌體更新過程,不可臨時中斷,否則有可能變成磚塊。
|
這邊的難處是: 如何在Linux下切割出一個FAT16?
我們可以先插上一個小容量的隨身碟。
fdisk /dev/sdb
然後敲m
先敲個”p” 來確定一下容量大小。
確定這個隨身碟是2G,目前的切割是FAT32。 所以要先刪除這個切割。
他的磁柱(cylinder)編號是從1~992,稍後可以用這個來切割一個比較小的分割區給FAT16
刪除分割要點”d”
因為只有一個分割區,所以他就直接刪掉了。可以再敲p來看看有沒有分割區
空掉了~ 可以來建立分割了!
敲n,
要建立Primary partition,所以選p
然後選擇分割區1
做好分割之後,就可以敲w把改動寫入後離開,然後拔開這個隨身碟。 如果之前的改動,想略過改動,就敲q,fdisk後就什麼事情都沒發生
[可以額外敲 t,再敲6把system ID變成FAT16]
就可以拿到windows下作格式化了。
在win下面看到的size就剩196MB
這個的End cylinder是100,不是前面寫的200,所以會有差距。
把link中的放到隨身碟,戳著小孔切斷電源,上電閃三下,放開小孔。
之後連線上之後,打top,就會發現Memory變大了
記得把隨身碟拔掉再重開。
Step-3
把不需要的服務關閉:
如asterik (如果我不用VoIP交換器功能)
打開BT transmission, FTP, samba……etc
簡單起見,我們使用一隻4G的隨身碟,格式化成FAT32
以下內容為網樂通改機俱樂部的文字。
insmod /root/modules/fuse.ko
下方依據您使用隨身碟或外接硬碟格式不同選擇性輸入:
mount -o iocharset=utf8 /dev/sdb1 /root/Downloads (隨身碟)
mount.exfat -o iocharset=utf8 /dev/sdb1 /root/Downloads (exFAT 外接硬碟)
mount.ntfs-3g -o iocharset=utf8 /dev/sdb1 /root/Downloads (NTFS 外接硬碟)
/etc/init.d/pure-ftpd start
cp /usr/pub/lib/libz.so.1.2.3 /lib/libz.so.1
/etc/init.d/transmission-daemon start
/etc/init.d/transmission-daemon stop
[這我是掛/dev/sdb5/ 原因是因為FAT32的分割區變成在sdb5而不是sdb1]
修改transmission (BT) 設定 :
vi /root/Downloads/transmission/settings.json
按 I 開始編輯。
找到 rpc-whitelist-enabled:true 改成 rpc-whitelist-enabled:false
找到 download-dir://Downloads 改成 download-dir:/root/Downloads
找到 incomplete-dir://Downloads 改成 incomplete-dir:/root/Downloads
找到 incomplete-dir-enabled:true 改成 incomplete-dir-enabled:false
以上完成後,按 esc 鍵退出編輯,接著輸入 :wq 存檔。
[或者改用個人修改的setting.json,這個設定是關掉whitelist,讓192.168.*.*下的裝置都可以access,速度限制在600k/25k,即使是只有128MB的版本還是可以順利下載4的torrent]
新增 samba (網路芳鄰) 功能:
將 samba-3.5.8.sh4.tar.gz 置於隨身碟或外接硬碟「根目錄」下。
打開 CMD (命令提示字元),開始輸入。
telnet 192.168.XX.XX (記得修改成機上盒之正確 IP)
tar xzvf /root/Downloads/samba-3.5.8.sh4.tar.gz -C /
/etc/init.d/samba start
更改 samba 密碼請照下方輸入,您輸入的密碼將不會顯示,共輸入兩次完成確認即可。
/usr/local/bin/smbpasswd -a
[因為這裡的登入名稱是root,所以這裡的SMB password是針對root的]
FTP變更帳號密碼
/usr/local/bin/pure-pw useradd [你的帳號] -u 1000 -g 1000 -D /root/Downloads
/usr/local/bin/pure-pw userdel joe
/usr/local/bin/pure-pw mkdb
FTP變更連接戶2121-->21
vi /etc/init.d/pure-ftpd
按 I 開始編輯
更改 2121-->21
完成後,按 esc 鍵退出編輯,接著輸入 :wq 存檔。
[不太會用到ftp,就暫時不處理他了]
修改網樂通開機後自動開啟FTP、BT、網路芳鄰及停用程式 :
vi /etc/init.d/rcSBB
按 I 開始編輯,將下列一連串貼上。
#mount USB
insmod /root/modules/fuse.ko
下方依據您使用隨身碟或外接硬碟格式不同選擇性輸入:
mount -o iocharset=utf8 /dev/sdb1 /root/Downloads (隨身碟)
mount.exfat -o iocharset=utf8 /dev/sdb1 /root/Downloads (exFAT 外接硬碟)
mount.ntfs-3g -o iocharset=utf8 /dev/sdb1 /root/Downloads (NTFS 外接硬碟)
sleep 10
#start pure-ftpd
/etc/init.d/pure-ftpd start
#start transmission
/etc/init.d/transmission-daemon start
#start samba
/etc/init.d/samba start
註銷 iptable
註銷 Firewall
註銷 PPPoe
註銷 Asterisk
註銷 Cron
[有額外註銷 run_a18.sh]
DHCP 不可註銷 否則無法TELNET
把想開的服務掛在後面。
因為我的隨身碟要掛在sdb5,所以得改這部份。不然依照前面的步驟走/dev/sdb1/,應該只要按照內容改就可以了。
以上完成後,按 esc 鍵退出編輯,接著輸入 :wq 存檔。
如果改錯,不想存” :q”。
以上搞定,存檔之後就reboot看看,是不是服務都有掛起來了!