[心得] 在網樂通打造LP MUD環境

看板mud (網路地下城/文字遊戲)作者 (漂流島之王)時間12年前 (2013/09/01 15:07), 編輯推噓7(701)
留言8則, 7人參與, 最新討論串1/2 (看更多)
寫在前頭 目前編出了fluffos的driver但是es2的lib 1.3版還是無法載入成功 在這期間感謝 laechan及諸位前輩撥空指導及經驗傳授。 更感謝派樂靈丹發展的sh4twbox 讓壹電視停止營運後網樂通變成沒用的垃圾, 其實它可以改成省電的 Linux 主機 前段的文章來自於sh4twbox 安裝及使用手冊 發問前請讀使用手冊 https://docs.google.com/document/d/1UWJxV8N8fbvjcvePgrruRmZuJwPseCyHZvebNddeYWc/pub 一、準備工具 機器:網樂通一台(不用遙控器)、5伏2安培變壓器 其他配件:rj45網路線 道具:迴紋針: 用來按 RESET 孔 隨身碟:最好2G以上 一、下載檔案複製到隨身碟 下載自動安裝碟 sh4twbox-usb-auto-<version>.dd.xz https://sh4twbox.googlecode.com/files/sh4twbox-usb-auto-0.5.1.dd.xzhttp://sourceforge.net/projects/win32diskimager/下載Win32 Disk Imager 把sh4twbox-usb-auto-0.5.1.dd.xz安裝到隨身碟內 二、決定和網樂通連線方式 這裡不繁述,用DHCP先拿一個私人IP 三、快速安裝sh4twbox 1. 解壓縮成 *.dd 檔, 再使用 dd 或 win32-image-writer 燒錄到 usb 碟 2. 拔電源, 插上 usb 碟及網路線 3. 按住 RESET孔 4. 插電源, LED閃藍燈三下再放開 RESET 5. 等40秒 (若只想要用外接 USB 玩 sh4twbox, 到這步驟即可) 6. 拔電源, 拔 usb 碟 7. 插電源, LED閃藍燈三下再放開 RESET 8. 等約3分鐘, 可以接電視看畫面, 過程中LED閃藍燈會一閃一閃 9. 以 telnet 連入網樂通, root 帳號連到網樂通, 密碼是本站名稱(twpda)打兩次(共 10個字元) 三、調整網樂通8GDOM的分割區 sh4twbox 輸入安裝指令 === sh4twbox v0.5.1 MENU === boot from /dev/sda2 (如果是使用隨身碟開機應該是 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分割區為例 在 MENU 按<Enter> 進入 Linux Shell fdisk 將 partition 2,3,4 取消建立第二個 partition, 儲存新的 partition table 2-1. 指令 fdisk /dev/sda 會出現 Command (m for help): 2-2. 指令 d 會出現Partition number (1-4): 依序輸入2 3 4後 2-3. 指令 n p 然後按下兩次enter等待回到Command (m for help):後輸入w 即可完成2,3,4合併的動作 打 sh4twbox 回到選單 選擇 menu format 格式化 四、記憶體升級256M 升級前打 free指令檢查 # free total used free shared buffers Mem: 100176 7140 93036 0 828 -/+ buffers: 6312 93864 Swap: 0 0 0 升級方式: 下載 sh4twbox-uboot256m-<version>.dd.xz, 解壓縮複製到隨身碟 https://sh4twbox.googlecode.com/files/sh4twbox-uboot256m-0.1.dd.xz 後方插入 FAT16/32 格式的 USB 碟, 按 RESET(即等LED閃藍燈三下放開動作), 電視畫面不動,升級完系統會自動重開機,不需要管電視畫面 升級完系統會自動重開機 使用 telnet 連入系統即可檢查 拔掉 USB 以 free 指令檢查, 應出現類似下列畫面 # free total used free shared buffers Mem: 238252 6648 231604 0 440 -/+ buffers: 6208 232044 Swap: 0 0 0 五、最小安裝使用方式 以下指令列出 vi 代表編輯, 若不會使用 vi 編輯器可以改用 nano 替代 ping tw.yahoo.com # 確認網路暢通 , 按 ctrl-c 中斷 若 ping 查不到 ip address, 或是 shpkg 找不到 googlecode 網站,有可能遇到域名挾 持 請自行在 /etc/resolv.conf 加上 nameserver 168.95.1.1 # hinet 通常沒問題放前面 nameserver 8.8.8.8 # google dns 有可能被污染放後面 也可以設定固定 IP避免DHCP定期改動 /etc/resolv.conf 問題 (將 /etc/init.d/staticip.sample 編寫後改成 /etc/init.d/staticip) passwd # 更換 root 密碼 adduser <xxx> # 建立一般使用者, 平常盡量使用一般使用者登入 關閉不需要的 services (檢查 /etc/init.d/*, 將不需要的 rename 即可) vi /etc/sysctl.conf # 如果不需要當成 bridge 的話, 關閉 ip forward 功能 shpkg -Syu sh4twbox-kernel sh4twbox-init # 更新到系統到最新套件 shpkg -Syy # 再強迫更新一次套件列表(因為原安裝碟沒有相依性列表) shpkg -E # 檢查一下是否有相依性套件可以裝 避免使用 shpkg -Syu 時自動升級 kernel 及系統檔案覆蓋到檔案 rm -rf /var/lib/shpkg/local/sh4twbox-kernel* rm -rf /var/lib/shpkg/local/sh4twbox-init* reboot # 更換 kernel 及系統開機script 後重新開機 echo 主機名 > /etc/hostname # 設定主機名, 重開機(或手動打 hostname <xxx>)後生 效 暫時關閉沒插開機碟時RESET閃三下會自動回存備份蓋掉 sda2模式(初學者可省略此段) mount /dev/sda1 /mnt/sda1 vi /mnt/sda1/root/run_a18.sh # 將最後一行的 loader.exe 前面加上 # 註解掉 以後需要修復請務必插上救援碟再按閃三下模式, 不然系統會切成 sda1 開機, 目前恢復 sda2 開機的辦法只有將 sda2 打包放入 sda1 的 target.tgz 若不小心沒插救援碟就按閃三下模式, 請將前面 loader.exe 註解取消, 再執行救援碟安 裝吧! 六、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 # 比對檢查碼必須和下載網頁相同 拔電源, 拔 usb 碟 按住 RESET孔 插電源, LED閃藍燈三下再放開 RESET 等約4~10分鐘, 可以接電視看畫面, 過程中LED閃藍燈會一閃一閃 以 putty, pietty 或 ssh 連入網樂通 (帳號: root, 密碼是twpda打兩次(共10個字元)) 新增使用者 useradd -m <id> 改密碼 passwd <id> 調整啟動設定(包含網路連線方式) vi /etc/rc.local, 不會用 vi 可改用 nano 套件管理 pacman -S <package_name> 服務管理 因為缺高手升級 kernel , 只能使用傳統的 sysvinit, 無法使用 systemd,概 述如下 編輯 /etc/rc.conf 設定檔放 /etc/conf.d/* 重新啟動服務 /etc/rc.d/<server> restart 停止服務 /etc/rc.d/<server> stop 自行設定的服務 /etc/rc.local 七、設定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 # 再在升級 pacman -S yaourt # 再重裝 pacman -S wget pacman -S libtool pacman -S gzip pacman -S gcc (會更新檔案約20MB) ----------------------------------------------- 若使用 pacman -S gcc 沒下載20MB的檔案,請手動下載安裝 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 出現 /usr/lib/libstdc++.so: broken symbolic link to `libstdc++.so.6.0.9' 發現 libstdc++.so 是連結到 libstdc++.so.6.0.9, 使用 find -name libstdc++.so.6.0.9 發現系統無 libstdc++.so.6.0.9 這個檔案 刪除原來的連結 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) 重新連結 ln -s /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so ----------------------------------------------- 準備工具 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 下載最新版本 指數在http://www.fluffos.myzen.co.uk/fluffos/ 居然是個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 繼續make make install install -c driver ../bin install -c addr_server ../bin install -c portbind ../bin 八、準備安裝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產生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 //我就設成/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. 目前只做到這裡 如果要除錯 請看Spock老大的LPC教學 謝謝各位讓我講的落落長 謝謝收看 -- 妖魔逃出小村! 米莉亞施展幻影絕技,終於在天黑前追上妖魔! 米莉亞:妖魔,受死領便當吧! 妖魔: 我好慘啊! 跑了一整天,腿都虛累累阿,還要被妳殺掉。 米莉亞:我比你還慘! 你只用跑一趟,殺了你我還要扛著你那麼重 的屍體回去,村長才肯給賞金! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 182.234.32.242

09/01 16:14, , 1F
創意無限!
09/01 16:14, 1F

09/01 16:47, , 2F
推!
09/01 16:47, 2F

09/01 17:17, , 3F
09/01 17:17, 3F

09/01 17:26, , 4F
實驗值得讚賞
09/01 17:26, 4F

09/01 23:02, , 5F
es2lib 不能#define NO_ADD_ACTION吧
09/01 23:02, 5F
我講錯了 options.h 我設成 #undef NO_ADD_ACTION

09/03 09:44, , 6F
需要#define package_dwlib ??
09/03 09:44, 6F
架好了 telnet://kobmud.no-ip.biz:4000 葫 蘆 之 惡 魔 天 使 - Powered BY Undine 1.3 -本機採用網樂通架構平台 <測試國家制度 4/12, 2002> 本 mud 架構修改自 es2,及dalib 我們感謝 Annihilator 與 Bor 對台灣 Mud 的貢獻! 更感謝sh4twbox派樂靈丹計畫可以改成省電的 Linux 主機 http://www.twpda.com/ 我們的社群為http://next.fishome.tw/bbs/ 管理者 Earl, e-mail : earlreco@gmail.com 官方網站: FB粉絲團籌備中 本 mudlib 架設的 mud: kobmud.no-ip.biz 4000 葫蘆Ⅱ已經執行了六分二十八秒 目前共有二位巫師、二十位玩家在線上﹐以及一位使用者嘗試連線中。 您的英文名字﹕ ※ 編輯: EarlEco 來自: 182.234.32.242 (09/06 01:42)

09/09 03:11, , 7F
鴾ㄟ_﹐<---輸入中文名字直接ENTER
09/09 03:11, 7F

09/18 16:52, , 8F
太屌了!!
09/18 16:52, 8F
文章代碼(AID): #1I8kV1mf (mud)
討論串 (同標題文章)
文章代碼(AID): #1I8kV1mf (mud)