※ 本文為 zbali.bbs. 轉寄自 ptt.cc 更新時間: 2012-10-04 03:31:46
看板 Modchip
作者 標題 [心得] 網樂通解磚
時間 Sat Mar 12 18:17:30 2011
一不小心網樂通這種東西也會半磚的,今天就讓我這台半磚然後又救回來XD。
其實今天手賤想編新版的0125核心進去,無奈怎麼編出來的vmlinux.ub檔案
U-boot都會抱怨說:「這是29-bit的核心,請給我32-bit的核心不然就把我換掉
」,換了pdk7105se 的設定檔重編還是一樣,最後發現是官方套件的bug...
(/‵Д′)/~ ╧╧
把肥佬黎給的A18B原始碼裡面的patch 打進去後就可以正確編出32-bit的核心了
。
那到底是怎麼弄成磚的?因為之前有按照雪狼大的建議在救援磁碟/dev/sda1 的
/etc/init.d/rcSBB 裡面加上/usr/sbin/telnetd -l /bin/sh,這就是一切災難
的開始,sh這個介面不會顯示當前所在的路徑,所以不時要用 pwd指令去查看目
前的位置,結果原本應該要把/dev/sda2/vmlinux.ub換掉的卻換成/dev/sda1 裡
面的了。
/etc/init.d/rcSBB 裡面加上/usr/sbin/telnetd -l /bin/sh,這就是一切災難
的開始,sh這個介面不會顯示當前所在的路徑,所以不時要用 pwd指令去查看目
前的位置,結果原本應該要把/dev/sda2/vmlinux.ub換掉的卻換成/dev/sda1 裡
面的了。
這時候我的vmlinux.ub是壞的但沒察覺,所以很高興的重新開機,系統載入原本
/dev/sda2 裡面的,所以可以正常開機但卻不是我要的核心,於是我又再把核心
蓋一次,這下sda1跟sda2的核心都是壞的了,但當下並不知情,所以重新開機就
磚了,而且還是回復模式跟普通模式都磚掉。哇咧~
/dev/sda2 裡面的,所以可以正常開機但卻不是我要的核心,於是我又再把核心
蓋一次,這下sda1跟sda2的核心都是壞的了,但當下並不知情,所以重新開機就
磚了,而且還是回復模式跟普通模式都磚掉。哇咧~
只好拿出 USB2TTL傳輸線放大決解磚了,幸好今天還沒動到U-Boot,要是U-Boot
壞掉真的就全磚沒救了。
開機後U-Boot說核心壞掉了不能載入,所以停在U-Boot的指令模式,好吧!看看
U-Boot的技術文件上說支援tftp載入核心,就決定用這個方法救了,誰叫U-Boot
看不到網樂通的USB 連接埠。
U-Boot的技術文件上說支援tftp載入核心,就決定用這個方法救了,誰叫U-Boot
看不到網樂通的USB 連接埠。
所以去下載了tftpd32/64,把備份檔裡面的核心vmlinux.ub取出放在tftpd 的目
錄備用。
打開終端機,用Console 線連到網樂通U-Boot的指令模式介面設定IP位址,指令
> setenv ipaddr 192.168.0.10 //視需要自己改
> setenv serverip 192.168.0.3 //一樣看你tftpd 架在哪台電腦上
> printenv //檢查一下是不是都改對了
> tftp 80000000 vmlinux.ub //將核心檔案載入到記憶體80000000的位
置,這個位置是網樂通開機的進入點
> bootm
成功的話會看到一大串開機訊息,反正回復韌體需要一段時間讓他跑沒關係,這
時網樂通會自動把/dev/sda1/target.tgz解開蓋回/dev/sda2 裡面,先把普通模
式救回來。
時網樂通會自動把/dev/sda1/target.tgz解開蓋回/dev/sda2 裡面,先把普通模
式救回來。
於是乎,網樂通的普通模式就復活了,重新開機進入普通模式,再用telnet進入
主機,這時候要用普通模式存取回復模式的磁區,所以先在/mnt底下建一個目錄
,比如說
主機,這時候要用普通模式存取回復模式的磁區,所以先在/mnt底下建一個目錄
,比如說
host $ mkdir /mnt/rcvy
然後掛載
host $ mount /dev/sda1 /mnt/rcvy
然後趕快把根目錄剛剛救回來的核心複製到 /mnt/rcvy下面
host $ cp vmlinux.ub /mnt/rcvy
這樣就把回復模式救回來了。
為了避免下次在犯同樣錯誤,個人建議把/usr/sbin/telnetd -l /bin/sh這行稍
做修改,改成:
/usr/sbin/telnetd -l /bin/login 或是 /usr/sbin/telnetd -l /bin/bash
前者在連線時會提示登入,然後呼叫/bin/bash ,bash會讀取/etc/profile裡面
的設定,如此就可以顯示路徑;後者則是直接讀取/etc/profile裡面的設定,而
profile 檔案裡面有指定要是執行bash的話要顯示路徑。
的設定,如此就可以顯示路徑;後者則是直接讀取/etc/profile裡面的設定,而
profile 檔案裡面有指定要是執行bash的話要顯示路徑。
如果你想保護你的主機不被別人亂搞的話,就用前者,然後passwd設一下密碼。
--
○ ____ _ _ _ _ ____ _ _ ____ _____ ____
。 ★(_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \
o _)(_ ) ( \ / )__) ) ( )( )(_)( ) / ● ‧
(____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_) ★
o
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.31.137
推 :歐歐歐 很標準的救援方式,FON也是這樣搞1F 122.116.119.110 台灣 03/12 21:22
推 :太深奧啦XD2F 111.241.69.75 台灣 03/12 21:38
→ :建議換kernel的時候,是把舊的kernel改名3F 118.161.188.233 台灣 03/13 10:55
→ :例如舊的改為vmlinux.ub-orig
→ :再放新的(vmlinux.ub),萬一開失敗進
→ :uboot提示的話,還可以用ext2load指令來
→ :載入原本的 vmlinux-orig,再下bootm
→ :80000000 就可以用舊的開機。當然,要有
→ :console 線才可以這麼做,這樣才看得到開
→ :機失敗,才可以下 command。詳細的指令可
→ :以看 uboot下printenv印出來的bootcmd
→ :這一行顯示的開機指令。
※ 編輯: cassine 來自: 122.117.54.160 (03/13 11:09)→ :例如舊的改為vmlinux.ub-orig
→ :再放新的(vmlinux.ub),萬一開失敗進
→ :uboot提示的話,還可以用ext2load指令來
→ :載入原本的 vmlinux-orig,再下bootm
→ :80000000 就可以用舊的開機。當然,要有
→ :console 線才可以這麼做,這樣才看得到開
→ :機失敗,才可以下 command。詳細的指令可
→ :以看 uboot下printenv印出來的bootcmd
→ :這一行顯示的開機指令。
→ :另外,在uboot下,用ext2ls usb 0:1可以看13F 118.161.188.233 台灣 03/13 11:11
→ :第一個分割區(/dev/sda1)中的檔案,改為
→ :ext2ls usb 0:2 則是/dev/sda2。
→ :第一個分割區(/dev/sda1)中的檔案,改為
→ :ext2ls usb 0:2 則是/dev/sda2。
--
回列表(←)
分享