寫在前頭
目前編出了fluffos的driver但是es2的lib 1.3版還是無法載入成功
在這期間感謝 laechan及諸位前輩撥空指導(dǎo)及經(jīng)驗(yàn)傳授。
更感謝派樂靈丹發(fā)展的sh4twbox
讓壹電視停止?fàn)I運(yùn)後網(wǎng)樂通變成沒用的垃圾, 其實(shí)它可以改成省電的 Linux 主機(jī)
前段的文章來自於sh4twbox 安裝及使用手冊(cè) 發(fā)問前請(qǐng)讀使用手冊(cè)
https://docs.google.com/document/d/1UWJxV8N8fbvjcvePgrruRmZuJwPseCyHZvebNddeYWc/pub
一、準(zhǔn)備工具
機(jī)器:網(wǎng)樂通一臺(tái)(不用遙控器)、5伏2安培變壓器
其他配件:rj45網(wǎng)路線
道具:迴紋針: 用來按 RESET 孔
隨身碟:最好2G以上
一、下載檔案複製到隨身碟
下載自動(dòng)安裝碟 sh4twbox-usb-auto-<version>.dd.xz
https://sh4twbox.googlecode.com/files/sh4twbox-usb-auto-0.5.1.dd.xz
到http://sourceforge.net/projects/win32diskimager/下載Win32 Disk Imager
把sh4twbox-usb-auto-0.5.1.dd.xz安裝到隨身碟內(nèi)
二、決定和網(wǎng)樂通連線方式
這裡不繁述,用DHCP先拿一個(gè)私人IP
三、快速安裝sh4twbox
1. 解壓縮成 *.dd 檔, 再使用 dd 或 win32-image-writer 燒錄到 usb 碟
2. 拔電源, 插上 usb 碟及網(wǎng)路線
3. 按住 RESET孔
4. 插電源, LED閃藍(lán)燈三下再放開 RESET
5. 等40秒 (若只想要用外接 USB 玩 sh4twbox, 到這步驟即可)
6. 拔電源, 拔 usb 碟
7. 插電源, LED閃藍(lán)燈三下再放開 RESET
8. 等約3分鐘, 可以接電視看畫面, 過程中LED閃藍(lán)燈會(huì)一閃一閃
9. 以 telnet 連入網(wǎng)樂通, root 帳號(hào)連到網(wǎng)樂通, 密碼是本站名稱(twpda)打兩次(共
10個(gè)字元)
三、調(diào)整網(wǎng)樂通8GDOM的分割區(qū)
sh4twbox 輸入安裝指令
=== sh4twbox v0.5.1 MENU === boot from /dev/sda2 (如果是使用隨身碟開機(jī)應(yīng)該是
sdb1)
1) Shell (default)
2) Set Time
3) Backup
4) install sh4TwBox to device (/dev/sda1:backup, /dev/sda2:normal)
5) install force overwrite
6) pack sda2 to sda1/target.tgz as the RESET restoring image
7) format partition
8) Restore
============ Please Enter Number:
以合併2,3,4分割區(qū)為例
在 MENU 按<Enter> 進(jìn)入 Linux Shell
fdisk 將 partition 2,3,4 取消建立第二個(gè) partition, 儲(chǔ)存新的 partition table
2-1. 指令 fdisk /dev/sda 會(huì)出現(xiàn) Command (m for help):
2-2. 指令 d 會(huì)出現(xiàn)Partition number (1-4): 依序輸入2 3 4後
2-3. 指令 n p 然後按下兩次enter等待回到Command (m for help):後輸入w
即可完成2,3,4合併的動(dòng)作
打 sh4twbox 回到選單
選擇 menu format 格式化
四、記憶體升級(jí)256M
升級(jí)前打 free指令檢查
# free
total used free shared buffers
Mem: 100176 7140 93036 0 828
-/+ buffers: 6312 93864
Swap: 0 0 0
升級(jí)方式:
下載 sh4twbox-uboot256m-<version>.dd.xz, 解壓縮複製到隨身碟
https://sh4twbox.googlecode.com/files/sh4twbox-uboot256m-0.1.dd.xz
後方插入 FAT16/32 格式的 USB 碟, 按 RESET(即等LED閃藍(lán)燈三下放開動(dòng)作),
電視畫面不動(dòng),升級(jí)完系統(tǒng)會(huì)自動(dòng)重開機(jī),不需要管電視畫面
升級(jí)完系統(tǒng)會(huì)自動(dòng)重開機(jī)
使用 telnet 連入系統(tǒng)即可檢查
拔掉 USB
以 free 指令檢查, 應(yīng)出現(xiàn)類似下列畫面
# free
total used free shared buffers
Mem: 238252 6648 231604 0 440
-/+ buffers: 6208 232044
Swap: 0 0 0
五、最小安裝使用方式
以下指令列出 vi 代表編輯, 若不會(huì)使用 vi 編輯器可以改用 nano 替代
ping tw.yahoo.com # 確認(rèn)網(wǎng)路暢通 , 按 ctrl-c 中斷
若 ping 查不到 ip address, 或是 shpkg 找不到 googlecode 網(wǎng)站,有可能遇到域名挾
持 請(qǐng)自行在 /etc/resolv.conf 加上
nameserver 168.95.1.1 # hinet 通常沒問題放前面
nameserver 8.8.8.8 # google dns 有可能被污染放後面
也可以設(shè)定固定 IP避免DHCP定期改動(dòng) /etc/resolv.conf 問題 (將
/etc/init.d/staticip.sample 編寫後改成 /etc/init.d/staticip)
passwd # 更換 root 密碼
adduser <xxx> # 建立一般使用者, 平常盡量使用一般使用者登入
關(guān)閉不需要的 services (檢查 /etc/init.d/*, 將不需要的 rename 即可)
vi /etc/sysctl.conf # 如果不需要當(dāng)成 bridge 的話, 關(guān)閉 ip forward 功能
shpkg -Syu sh4twbox-kernel sh4twbox-init # 更新到系統(tǒng)到最新套件
shpkg -Syy # 再強(qiáng)迫更新一次套件列表(因?yàn)樵惭b碟沒有相依性列表)
shpkg -E # 檢查一下是否有相依性套件可以裝
避免使用 shpkg -Syu 時(shí)自動(dòng)升級(jí) kernel 及系統(tǒng)檔案覆蓋到檔案
rm -rf /var/lib/shpkg/local/sh4twbox-kernel*
rm -rf /var/lib/shpkg/local/sh4twbox-init*
reboot # 更換 kernel 及系統(tǒng)開機(jī)script 後重新開機(jī)
echo 主機(jī)名 > /etc/hostname # 設(shè)定主機(jī)名, 重開機(jī)(或手動(dòng)打 hostname <xxx>)後生
效
暫時(shí)關(guān)閉沒插開機(jī)碟時(shí)RESET閃三下會(huì)自動(dòng)回存?zhèn)浞萆w掉 sda2模式(初學(xué)者可省略此段)
mount /dev/sda1 /mnt/sda1
vi /mnt/sda1/root/run_a18.sh # 將最後一行的 loader.exe 前面加上 # 註解掉
以後需要修復(fù)請(qǐng)務(wù)必插上救援碟再按閃三下模式, 不然系統(tǒng)會(huì)切成 sda1 開機(jī), 目前恢復(fù)
sda2 開機(jī)的辦法只有將 sda2 打包放入 sda1 的
target.tgz
若不小心沒插救援碟就按閃三下模式, 請(qǐng)將前面 loader.exe 註解取消, 再執(zhí)行救援碟安
裝吧!
六、Arch Linux(完整功能Linux)
mount /dev/sda1 /mnt/sda1
將此檔案 copy 到 /mnt/sda1/target.tgz (記得要改名)
wget -O /mnt/sda1/target.tgz
http://sh4twbox.googlecode.com/files/target.arch.20130416.tgz
sha1sum /mnt/sda1/target.tgz # 比對(duì)檢查碼必須和下載網(wǎng)頁相同
拔電源, 拔 usb 碟
按住 RESET孔
插電源, LED閃藍(lán)燈三下再放開 RESET
等約4~10分鐘, 可以接電視看畫面, 過程中LED閃藍(lán)燈會(huì)一閃一閃
以 putty, pietty 或 ssh 連入網(wǎng)樂通 (帳號(hào): root, 密碼是twpda打兩次(共10個(gè)字元))
新增使用者 useradd -m <id>
改密碼 passwd <id>
調(diào)整啟動(dòng)設(shè)定(包含網(wǎng)路連線方式) vi /etc/rc.local, 不會(huì)用 vi 可改用 nano
套件管理 pacman -S <package_name>
服務(wù)管理 因?yàn)槿备呤稚?jí) kernel , 只能使用傳統(tǒng)的 sysvinit, 無法使用 systemd,概
述如下
編輯 /etc/rc.conf
設(shè)定檔放 /etc/conf.d/*
重新啟動(dòng)服務(wù) /etc/rc.d/<server> restart
停止服務(wù) /etc/rc.d/<server> stop
自行設(shè)定的服務(wù) /etc/rc.local
七、設(shè)定GCC和安裝FluffOS
vi /etc/pacman.conf
75行 Server = http://sh4twbox.googlecode.com/files (#拿掉)
76行 # Server = http://t:8000/sh4twbox (此行刪掉, 或加 # 註解)
可在 /etc/resolv.conf 可以加上
nameserver 8.8.8.8
以免無下載
pacman -Rsn yaourt # 暫先移除
pacman -Syu # 再在升級(jí)
pacman -S yaourt # 再重裝
pacman -S wget
pacman -S libtool
pacman -S gzip
pacman -S gcc (會(huì)更新檔案約20MB)
-----------------------------------------------
若使用 pacman -S gcc 沒下載20MB的檔案,請(qǐng)手動(dòng)下載安裝
wget https://sh4twbox.googlecode.com/files/gcc-4.2.4.76-1.1-sh4.pkg.tar.xz
tar -xvf gcc-4.2.4.76-1.1-sh4.pkg.tar.xz
-----------------------------------------------
下載安裝 libstdc++
-----------------------------------------------
輸入 file /usr/lib/libstdc++.so
出現(xiàn) /usr/lib/libstdc++.so: broken symbolic link to `libstdc++.so.6.0.9'
發(fā)現(xiàn) libstdc++.so 是連結(jié)到 libstdc++.so.6.0.9,
使用 find -name libstdc++.so.6.0.9
發(fā)現(xiàn)系統(tǒng)無 libstdc++.so.6.0.9 這個(gè)檔案
刪除原來的連結(jié)
rm /usr/lib/libstdc++.so
開始下載安裝 libstdc++
wget http://www.sh-linux.ssdev.jp/rpm-fc9/RPMS/sh4/libstdc++-4.3.2-7.sh4.rpm
rpm -i libstdc++-4.3.2-7.sh4.rpm (libstdc++.so.6,libstdc++.so.6.0.10)
重新連結(jié)
ln -s /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so
-----------------------------------------------
準(zhǔn)備工具
OS: Arch Linux
MUDOS: FluffOS 2.24
MUDLIB: ES2_lib.v1.3b
將抓下來的FluffOS 解開,放在工作目錄下。
http://www.fluffos.myzen.co.uk/fluffos/fluffos-2.27.tar.xz
下載最新版本
指數(shù)在http://www.fluffos.myzen.co.uk/fluffos/
居然是個(gè)XZ,也不知道怎麼想的
yum -y install xz
xz -d fluffos-2.27.tar.xz
tar -xvf fluffos-2.27.tar
也是一樣,先改options.h
/ build.FluffOS的
使用make
*** No rule to make target `local_options’, needed by `dtrace_compile’.
Stop.
不明白。
找到options.h裡面有 ‘cp options.h local_options’ and edit that
instead. local_options,
cp options.h local_options
繼續(xù)make
make install
install -c driver ../bin
install -c addr_server ../bin
install -c portbind ../bin
八、準(zhǔn)備安裝MUDLIB--以ES21.3及DALIB為例
wget http://es2.muds.net/download/ES2_lib.v1.3b.tar.gz
http://0rz.tw/b32S4 有DALIB 解開RAR自己用FlieZilla上傳
cd /home
mkdir mud
我們把Es2或DALIB放在/home/mud
tar -xzvf ES2_lib.v1.3b.tar.gz產(chǎn)生mudlib
cd /home/mud/mudlib/adm/etc/將es2.conf裝在/home/mud/bin
cp es2.comf /home/mud/bin
用nano或vi修改es2.conf
nano /home/mud/bin/es2.conf
找到
# absolute pathname of mudlib 放mudlib的地方
mudlib directory : /home/mud/mudlib //我就設(shè)成/home/mud/mudlib DA的話就是
OPEN_DA
# absolute pathname of driver/config dir //fluffOS driver的地方
binary directory : /home/mud/bin
存檔改好退出
cd /home/mud/bin
./driver es2.conf
[root@sh4twbox bin]# ./driver es2.conf
using config file: es2.conf
Initializing internal tables....
----------------------------------------------------------------------------
DALIB (FluffOS v2.24) starting up on Linux - Sun Sep 1 15:04:02 2013
System Error: init_addr_server: socket:Address family not supported by
protocol
/adm/simul_efun/message.c line 91: Undefined function living
No error handler for error: *Error in loading object '/adm/obj/simul_efun'
program: (none), object: (none), file: (none)
The simul_efun (/adm/obj/simul_efun) and master (/adm/obj/master) objects
must be loadable.
目前只做到這裡 如果要除錯(cuò) 請(qǐng)看Spock老大的LPC教學(xué)
謝謝各位讓我講的落落長 謝謝收看