開發系統OS: STLinux 2.3 on Debian 6.0.6 on ArchLinux
- sh4-linux-gcc-4.2.4
- Kernel: 2.6.23.17_stm23_A18B-PDK7105-32BITS-A18 + 256M patch + 其它driver
- busybox: 1.20.2
製作方式:
- 編譯 busybox
- 編譯 kernel
- 準備 rootfs、dev檔案 及 STLinux 以編譯好的工具: 參考: mk_minifs.sh
- 可調整 EXE 變數增加STlinux 已編譯套件(bash ntpdate ssh ssh-keygen sshd)
- 準備設定檔(可參考/opt/STM/STLinux-2.3/devkit/sh4/target/)
- etc/inittab # 設定執行 etc/init.d/rcS 及 console 登入
- etc/init.d/rcS # 主要啟動 script, 設定包含 network, ntpdate, telnetd,syslogd,...
- etc/resolv.conf # 如果不使用動態ip,在這個檔設定 dns
- root/run_a18.sh # 空檔, 相容於 NextVOD 的 loader.exe
- etc/passwd, etc/shadow # 允許 ssh/telnet 設定密碼
- etc/sysctl.conf # 允許 bridge ip forward 功能
- etc/default/ntpdate # 設定 ntp time servers
- etc/rc.local # 如果有自己要設定的啟動設定,建議放在這裡
- etc/profile # 自訂 shell prompt
問題及可能解(有錯還請指正):
- 問:不知道console 設備編號怎麼看 drivers/serial/clps711x.c,sn_console.c
- 解:似乎不用特別設,推測可能是 u-boot 已經轉成 console 再交給vmlinux.ub
- 問: can't open /dev/ttyAS0: No such file or directory
- 解: inittab 的 ttyAS0 改成 console
- 問:telnetd -l /bin/sh 沒有執行 /etc/profile
- 解: 改用需要輸入密碼的 telnetd
- 問:ntpdate Error : Servname not supported for ai_socktype
- 解: 設定 /etc/services
- 問:ping www.twpda.com 無法解議成 ip # 讓 busybox 可使用 udhcpc
- 解: 設定 etc/nsswitch.conf usr/share/udhcpc/default.script 及 lib/libnss*
- 問:etc/init.d/sshd start, Missing privilege separation directory
- 解: 缺少 /var//empty 目錄
- 問:who, last 失效
- 解: 啟動 telnetd 前 touch /var/log/wtmp
- 問:找出檔案整體套件所需的檔案
- 解: rpm -qf /opt/STM/STLinux-2.3/devkit/sh4/target/etc/passwd
- 問:telnetd root password 無法認證
- 解: /etc/passwd 的 root 欄位第二攔打 x
- 問:telnetd 如何限制連進的 telnet 次數
- 解: echo pts/0 > /etc/securetty 即限制只有一個可以連線
- 問:syslogd 沒有產生訊息
- 解: 啟動前設定目錄 /var/log/
- 問:無法使用telnetd
沒有留言:
張貼留言