Published using Google Docs
sh4twbox使用手冊
Updated automatically every 5 minutes

sh4twbox 使用手冊

網樂通變身計畫

壹、簡介

貳、安裝

參、sh4twbox OS 使用方式

一、初次使用設定

二、安裝套件

三、其他使用問題

四、進階使用

五、最小安裝套件介紹

肆、Arch Linux(完整功能Linux)

一、安裝 Arch Linux

二、安裝完初次設定

三、自行編譯套件

伍、進階Linux設定

一、設定虛擬記憶體

陸、附錄

一、版本異動說明

壹、簡介

壹電視停止營運後網樂通變成沒用的垃圾, 其實它可以改成省電的 Linux 主機, 也就是本站的 sh4twbox. 這名字是下列三個原因組成

  1. 網樂通內部的核心(CPU)架構稱為 sh4
  2. 網樂通是壹電視停止網路電視營運後給台灣的免費禮物( Taiwan 網域 .tw)
  3. 網樂通外型就是個盒子(box)

sh4twbox 主要有下列特色

  1. 記憶體多: 自編的 kernel 支援 256M 記憶體 (原始網樂通僅 128M), 編譯方式如連結
  2. 可用套件多:
  1. 安裝 Arch Linux: 以pacman套件管理,可編譯官方套件10849套社群套件41708套
  2. 最小安裝: 以較陽春的 shpkg 套件管理, 支援自編套件及引入第三方編輯套件,已有現成套件9000套以上(包含已測試成功的 transmission-cli, squid, openvpn, iptraf... 等)
  1. 開機對時: 網樂通連上網路後, 自動設為台北時區
  2. 架構精簡: 僅安裝必要套件, 開機程序精簡易於理解學習, 可將自定啟動程序放在 /etc/rc.local
  1. Arch Linux: /etc/inittab, /etc/rc.sysinit, /etc/conf.d/, /etc/rc.d/
  2. 最小安裝: /etc/inittab, /etc/init.d/rcS
  1. 具有 system log, 易於除錯
  2. 已內建 加強版busybox bash ntpdate ssh ssh-keygen sshd scp tune2fs fdisk fossil 若要移除先用 shpkg 安裝再移除即可.
  3. 可啟動 sshd(使用較省資源的 dropbear-scp套件) 只要使用 scp 或是 winscp 即可在遠端 copy/edit 網樂通內部檔案

誠徵自願者幫忙編寫文件、測試及開發學習, 請洽 www.twpda.com

推薦:

貳、

所謂最小安裝的系統只包含 kernel + busybox + 開機必要套件, 較省系統資源,安裝完之後, 建議改裝為 Arch Linux, 可使用較多 Linux 功能.

安裝前準備:(免拆機)

  1. 迴紋針: 用來按 RESET 孔
  2. USB 隨身碟: 用來配置安裝碟, 必須是 512 byte 為存取單位的.(一些舊型的隨身碟是2048bytes為存取單位, 此時網樂通的開機BIOS-U-BOOT, 無法使用它開機, 熟 Linux 使用者可以運用 fdisk -l 檢查)
  3. 連線程式: 用來與網樂通連線
  1. 以 telnet 連線較省資源(v0.4 版以後僅預裝 telnet)
  2. 以安全模式連到網樂通。Linux 使用 ssh;  Windows 用 pietty 或 putty
  1. 寬頻分享器(選項): 將網樂通和PC都插在寬頻分享器可以運用寬頻分享器的DHCP簡化設定。
  2. 解 xz 格式壓縮軟體
  1. Linux: 7z x sh4twbox-<version>.7z
  2. Mac: The Unarchiver 或是另外裝 xz
  3. Windows: Windows 可以用 7-zip

最新版 sh4twbox 0.9.2 安裝方式更簡單了,參考連結.

下載網址:http://code.google.com/p/sh4twbox/ 歡迎 mirror site, 下載完的升級檔案請以檔案 list.md5 檢查過後再使用, 以避免下載到檔案上傳中的版本

問題回報: http://code.google.com/p/sh4twbox/issues/list

臉書討論區 https://www.facebook.com/groups/477359555618518

、sh4twbox OS 使用方式

一、初次使用設定

  1. 安全性設定
  1. passwd # 更換 root 密碼
  2. ping g.cn # 確認網路暢通 , 按 ctrl-c 中斷
  1. 若 ping 查不到 ip address, 或是 shpkg 找不到 googlecode 網站,有可能遇到域名挾持 請自行在 /etc/resolv.conf 加上
    nameserver 168.95.1.1 # hinet 通常沒問題放前面
    nameserver 8.8.8.8    # google dns 有可能被污染放後面
  2. 也可以設定固定 IP避免DHCP定期改動 /etc/resolv.conf 問題 (將 /etc/init.d/staticip.sample 編寫後改成 /etc/init.d/staticip)
  1. adduser <xxx> # 建立一般使用者, 平常盡量使用一般使用者登入
  1. chmod 755 /home/<xxx> # 修正 home directory 權限,若要更具安全性設成 700 也可(TODO)
  1. 關閉不需要的 services (檢查 /etc/init.d/*, 將不需要的 rename 即可)
  1. 例如: busybox 提供的 ftpd 不需密碼可登入,以下列指令關閉
  2. ps -ef | grep ftpd ; kill <pid> 停掉程式
  3. mv /etc/init.d/ftpd /etc/init.d/ftpd.old # 開機不啟動
  1. 安裝 nano 編輯器(如果會使用 vi 略過此節)
  1. shpkg -Sy
  2. shpkg -Sn  nano st24/stlinux24-sh4-ncurses st24/stlinux24-sh4-ncurses-term
  3. shpkg -Sn  st24/stlinux24-sh4-ncurses-base
  4. 以下指令列出 vi 代表編輯, 若不會使用 vi 編輯器可以改用 nano 替代
  1. 套件相關
  1. 系統升級, 網樂通 0.5.1~0.6.2 版, 不提供安裝碟, 只要透過以下步驟就可以將安裝碟或是已安裝系統更新
  1. 如果不是第一次安裝要保留目前系統設定, 可參考此篇
  2. shpkg -Syu sh4twbox-kernel sh4twbox-init # 更新到系統到最新套件
  1. 這動作有時因為google網站不穩定或是你的 DNS 設定問題會失敗, 請重新看前面 resolv.conf 設定,或隔一陣子再試, 或手動到網站抓取
  2. 這網址不能連是正常的 http://sh4twbox.googlecode.com/list (因為 google設定了權限管制)
  1. shpkg -Syy # 再強迫更新一次套件列表(因為原安裝碟沒有相依性列表)
  2. shpkg -E # 檢查一下是否有相依性套件可以裝
  3. sh4twbox # 選取選項Upgrade, (記得升級sh4twbox-init 到 0.6.2以上)
  4. 避免使用 shpkg -Syu 時自動升級 kernel 及系統檔案覆蓋到檔案
  1. rm -rf /var/lib/shpkg/local/sh4twbox-kernel*
  2. rm -rf /var/lib/shpkg/local/sh4twbox-init*
  1. sync ; reboot # 更換 kernel 及系統開機script 後重新開機
  1. shpkg -Q 看目前已安裝套件
  2. shpkg -Sl | more # 更新套件列表, 並看一下目前提供的所有套件
  3. 例如: 不想用 telnet 改用 ssh 較安全(dropbear 為較省資源之 sshd)
  1. shpkg -Ss dropbear # 發現 sh4twbox 有提供 dropbear-scp 套件
  2. shpkg -S dropbear-scp
  3. shpkg -E # 確定安裝之套件的執行檔都找的到動態連結函式庫(.so)
  4. /etc/init.d/dropbear start # 啟動 ssh deaman, 應該可以連進去了
  5. vi  /etc/rc.local # 若要開機自動啟動, 將前面那行, 手動加入
  1. 個人化設定
  1. echo 主機名 > /etc/hostname # 設定主機名, 重開機(或手動打 hostname <xxx>)後生效
  2. vi /etc/rc.local # 自訂開機打算執行的指令
  1. 暫時關閉沒插開機碟時RESET閃三下會自動回存備份蓋掉 sda2模式(初學者可省略此段)
  1. mount /dev/sda1 /mnt/sda1
  2. vi /mnt/sda1/root/run_a18.sh # 將最後一行的 loader.exe 前面加上 # 註解掉
  3. 以後需要修復請務必插上救援碟再按閃三下模式, 不然系統會切成 sda1 開機, 目前恢復 sda2 開機的辦法只有將 sda2 打包放入 sda1 的 target.tgz
  4. 若不小心沒插救援碟就按閃三下模式, 請將前面 loader.exe 註解取消, 再執行救援碟安裝吧!

二、安裝套件

使用套件心法

三、其他使用問題

Q: sh4twbox 0.5~0.6.2 如何使用 ntfs 格式 usb?

A: shpkg -S fusemodule ntfs-3g ; depmod

Q: sh4twbox 0.5~0.6.2 移除 bash 後造成 shpkg 無法運作

A: 因為移除 bash 套件會將 /bin/sh 同時移除, 而 shpkg 必須要有 bash 才能運作

ln -sf busybox /bin/sh # 先修復 sh

rpm -i /var/cache/shpkg/pkg/stlinux23-sh-bash-3.0-14.sh4.rpm # 重裝 cache 套件

四、進階使用

# xz -d <file>

# modprobe loop

# kpartx -a -v <file>

add map loop0p1 (254:0): 0 47103 linear /dev/loop0 1

device-mapper: resume ioctl on loop0p2 failed: Invalid argument

create/reload failed on loop0p2

add map loop0p2 (0:0): 0 4102144 linear /dev/loop0 65536

# mkdir -p /tmp/mnt

# mount /dev/mapper/loop0p1 /tmp/mnt  # 對照前面 create 指令

# ls /tmp/mnt

bin   linuxrc          proc        usr

dev   lost+found  root        var

etc   mnt          sbin        vmlinux.ub

home  mnt_system  sys        vmlinux.ub.256M_swap_netfilter_bridge_cdc_ether

lib   opt          tmp

、最小安裝套件介紹

此處僅列出大致分類,以 shpkg 安裝套件時其相依套件庫也必須安裝, 可查詢 wiki, 其他未描述的套件請使用者幫忙更新 wiki. 自行找出相依性套件的方法,詳見網頁說明

、Arch Linux(完整功能Linux)

Arch Linux 雖然使用和精簡安裝相同的 kernel 及 busybox, 但是, 所有的指令已經盡量改用 Arch Linux 指令, (例如: ps, ping,...)雖然會較占空間及CPU, 但是可以有較完整 linux.

一、安裝 Arch Linux

  1. 方法一、下載tgz後 放入開機碟、以 sh4twbox 0.9.2 版開機後選取 p2 或 p1 自動安裝
  2. 方法二、以 sh4twbox 0.9.2 版開機後選取 p2 或 p1
  1. source file put on device or none (default:/dev/sdb1) : none 不需從USB copy
  2. source file or download URL (default:auto) : 填入下載網址
  1. 以 putty, pietty 或 ssh 連入網樂通 (帳號: root, 密碼是本站名稱(twpda)打兩次(共10個字元))
  2. 修正 20130416 版本的問題
  1. 修正無法t:8000 : Connection timed out 問題
  1. vi /etc/pacman.conf # 編輯
  1. Server = http://sh4twbox.googlecode.com/files   (#拿掉)
  2. # Server = http://t:8000/sh4twbox (此行刪掉, 或加 # 註解)
  1. 修正 pacman -Syu 時, package-query 舊版造成無法升級問題
  1. pacman -Rsn yaourt  # 暫先移除
  2. pacman -Syu # 再升級
  3. pacman -S yaourt # 再重裝

手動安裝(此段文件暫時保留為 sh4twbox 0.5~0.6.2 使用者升級方法, 可參考 sh4twbox-hello 套件 inst_arch.sh 了解學習如何安裝配置未來自己的套件):

  1. 以自動安裝碟/救援碟開機, 直接用 sh4twbox 0.5.1 或 0.6.2 都可以
  1. rm /etc/rc.local /target.tgz # 變成救援碟
  1. shpkg -S hello (至少 1-11 版以上)
  2. 編輯 /etc/passwd 將 root 的 shell 換成 ash (避免更新 bash到 4.0  後無法開機)
  3. shpkg -S bash (至少 4.0 版以上)
  4. [選項] 以 sh4twbox 選項 format partition 將 /dev/sda2 清乾淨
  5. 清出最少 12.6M 空間
    shpkg -R nano stlinux23-sh4-ncurses stlinux23-sh4-ncurses-base
    rm /target.tgz /vmlinux.ub.256M_swap_netfilter_bridge_cdc_ether
    rm /usr/lib/*.a

shpkg -R nano

vi /etc/passwd # let root use ash instead of sh

shpkg -S bash

# clean for more space

shpkg -Scc

df -h # make sure there is 12.6M at least.

shpkg -S pacman

cd /hello

./inst_arch.sh mount # 掛載內建USB

./inst_arch.sh inst # 安裝, 若中途下載失敗,可重做續傳到完成

./inst_arch.sh inst2 # 以 chroot 方式再重裝一遍 ,若中途下載失敗,可重做續傳到完成

# 這步驟可能會有locale-gen 執行時, sed 找不到的訊息, 可忽略
./inst_arch.sh inst3 # 測試啟動 sshd, 設定密碼等, 遇到 Y/N 就打 y 再按 Enter

chroot /mnt/sda2 /bin/bash # 以 chroot 測試看看

chroot /mnt/sda2 /etc/rc.d/sshd stop # 停用 sshd

./inst_arch.sh umount #卸載內建USB

sync ; halt # 寫入後將 CPU 停住

拔除 USB, 拔插頭重開機

二、安裝完初次設定

安裝好之後可參考 Arch Linux 官方網站 wiki, 建議看英文版或是大陸版其次是台灣版

https://wiki.archlinux.org/index.php/Beginners%27_Guide#Post-installation

簡述指令如 下:

  1. 新增使用者 useradd -m <id>
  2. 改密碼 passwd <id>
  3. 調整啟動設定(包含網路連線方式) vi /etc/rc.local, 不會用 vi 可改用 nano
  4. 套件管理 pacman -S <package_name>
  5. 服務管理 因為缺高手升級 kernel , 只能使用傳統的 sysvinit, 無法使用 systemd,概述如下
  1. 編輯 /etc/rc.conf
  2. 設定檔放 /etc/conf.d/*
  3. 重新啟動服務 /etc/rc.d/<server> restart
  4. 停止服務 /etc/rc.d/<server> stop
  5. 自行設定的服務 /etc/rc.local

三、自行編譯套件

動手前先必讀

伍、進階Linux設定

一、設定虛擬記憶體

一般來說盡量不要使用虛擬記憶體, 因為很有可能會拖慢整個系統速度, 若使用虛擬記憶體最好是分割partition 專用, 此處以簡單的開檔方式, 增加 500MB 為例, 指令如下,

dd if=/dev/zero bs=1M count=500 of=/swapfile \

&& mkswap /swapfile \

&& swapon /swapfile \

&& free

陸、附錄

一、版本異動說明

v0.1 2013/01/12 Release

v0.2 2013/01/14 Release

v0.3 2013/01/17 Release

v0.4.6 2013/01/24 Release

v0.5.0 2013/01/24 Release

v0.5.1 2013/01/25 Release

v0.6.2 2013/01/28 Release

2013/04 Arch Linux 安裝方式推出 2013/04

v 0.9.2 2013/10/30 Release