看板 Modchip 關於我們 聯絡資訊
一不小心網樂通這種東西也會半磚的,今天就讓我這台半磚然後又救回來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 裡 面的了。 這時候我的vmlinux.ub是壞的但沒察覺,所以很高興的重新開機,系統載入原本 /dev/sda2 裡面的,所以可以正常開機但卻不是我要的核心,於是我又再把核心 蓋一次,這下sda1跟sda2的核心都是壞的了,但當下並不知情,所以重新開機就 磚了,而且還是回復模式跟普通模式都磚掉。哇咧~ 只好拿出 USB2TTL傳輸線放大決解磚了,幸好今天還沒動到U-Boot,要是U-Boot 壞掉真的就全磚沒救了。 開機後U-Boot說核心壞掉了不能載入,所以停在U-Boot的指令模式,好吧!看看 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 裡面,先把普通模 式救回來。 於是乎,網樂通的普通模式就復活了,重新開機進入普通模式,再用telnet進入 主機,這時候要用普通模式存取回復模式的磁區,所以先在/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的話要顯示路徑。 如果你想保護你的主機不被別人亂搞的話,就用前者,然後passwd設一下密碼。 -- ____ _ _ _ _ ____ _ _ ____ _____ ____ (_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \ _)(_ ) ( \ / )__) ) ( )( )(_)( ) / (____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.31.137
kikiqqp:歐歐歐 很標準的救援方式,FON也是這樣搞122.116.119.110 03/12 21:22
tp6vul3u:太深奧啦XD 111.241.69.75 03/12 21:38
firewolf:建議換kernel的時候,是把舊的kernel改名118.161.188.233 03/13 10:55
firewolf:例如舊的改為vmlinux.ub-orig118.161.188.233 03/13 10:56
firewolf:再放新的(vmlinux.ub),萬一開失敗進118.161.188.233 03/13 10:57
firewolf:uboot提示的話,還可以用ext2load指令來118.161.188.233 03/13 10:57
firewolf:載入原本的 vmlinux-orig,再下bootm118.161.188.233 03/13 10:58
firewolf:80000000 就可以用舊的開機。當然,要有118.161.188.233 03/13 10:58
firewolf:console 線才可以這麼做,這樣才看得到開118.161.188.233 03/13 10:58
firewolf:機失敗,才可以下 command。詳細的指令可118.161.188.233 03/13 10:59
firewolf:以看 uboot下printenv印出來的bootcmd118.161.188.233 03/13 10:59
firewolf:這一行顯示的開機指令。118.161.188.233 03/13 11:00
※ 編輯: cassine 來自: 122.117.54.160 (03/13 11:09)
firewolf:另外,在uboot下,用ext2ls usb 0:1可以看118.161.188.233 03/13 11:11
firewolf:第一個分割區(/dev/sda1)中的檔案,改為118.161.188.233 03/13 11:12
firewolf:ext2ls usb 0:2 則是/dev/sda2。118.161.188.233 03/13 11:13