FuguIta-7.4
Table of Contents
FuguIta
過去に作ったポータブルOpenBSDのUSBが、所在不明になってたので、 河豚板 - OpenBSDベースのライブシステム から最新の物を頂いてきて、試食してみる。なんせ、河豚はフクですから。
ターゲットマシンは、2010年に、Windows7機として購入した ThinkPad(SL510) だ。セレロンな石に、当時としては贅沢な4Gのメモリーを搭載したもの。勿論 WiFiは搭載されてた。
現在はDebianとFreeBSDのディアルOSになってる。昔ポータブルなOpenBSDをやっ た時、WiFiの性能が出なかった記憶がある。7.4の時代になって、改善された かが、最大の注目ポイントだ。
河豚を焼く
FreeBSDで焼いてみる。USBを差してデバイス名を知る。dmesgからの情報ね。
usb_msc_auto_quirk: UQ_MSC_NO_GETMAXLUN set for USB mass storage device TOSHIBA TransMemory (0x0930:0x6544) usb_msc_auto_quirk: UQ_MSC_NO_PREVENT_ALLOW set for USB mass storage device TOSHIBA TransMemory (0x0930:0x6544) usb_msc_auto_quirk: UQ_MSC_NO_SYNC_CACHE set for USB mass storage device TOSHIBA TransMemory (0x0930:0x6544) ugen7.2: <TOSHIBA TransMemory> at usbus7 umass0 on uhub6 umass0: <TOSHIBA TransMemory, class 0/0, rev 2.00/1.00, addr 2> on usbus7 umass0: SCSI over Bulk-Only; quirks = 0xc100 umass0:7:0: Attached to scbus7 da0 at umass-sim0 bus 0 scbus7 target 0 lun 0 da0: <TOSHIBA TransMemory 1.00> Removable Direct Access SPC-2 SCSI device da0: Serial Number 50465D4C9881C1A0C002431A da0: 40.000MB/s transfers da0: 7400MB (15155200 512 byte sectors) da0: quirks=0x3<NO_SYNC_CACHE,NO_6_BYTE>
では、焼くぞ。
[sakae@fb ~]$ sudo dd if=FuguIta-7.4-i386-202401171.img of=/dev/da0 bs=1M 2048+0 records in 2048+0 records out 2147483648 bytes transferred in 353.136170 secs (6081177 bytes/sec)
試食
難関のWiFiはやはり問題が出た。iwn0と認識するも接続できず。
ガイドをちゃんと見たら、古いNICのファームは載せていないから、有線に接
続して、 fw_update -v
してくれと。
> i915 > intel > intel-ucode-license > iwn-100 > iwn-1000 > iwn-105 > iwn-135 > iwn-2000 > iwn-2030 > iwn-4965 > iwn-5000 > iwn-5150 > iwn-6000 > iwn-6005 > iwn-6030 > iwn-6050 > iwn-license
こんなのが追加された(/etc/firmwareの差分)。そして、接続できた。
iwn0: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu 1500 lladdr 00:00:00:12::34::56 index 1 priority 4 llprio 3 groups: wlan egress media: IEEE802.11 autoselect (HT-MCS4 mode 11n) status: active ieee80211: nwid myssid chan 36 bssid 98:11:99:aa:bb:cc -69dBm wpakey wpaprotos wpa2 wpaakms psk wpaciphers ccmp wpagroupcipher ccmp inet xx.xx.xx.99 netmask 0xffffff00 broadcast xx.xx.xx.255
shutdown事
wheelだったかoperatorに属していれば、shutdown作業が出来たんだけど、7.4 時代になって、それも叶わなくなった。何で?
fug$ ls -l `which shutdown` -r-sr-x--- 1 root _shutdown 259652 Dec 20 18:57 /sbin/shutdown*
と言う事で、特殊な派閥に属する様に設定。権利関係がどんどんシビアになる な。
fug$ grep _shutdown /etc/group _shutdown:*:118:sakae
network
最初iwn0に固定IPを設定してたんだ。そしたら、外にpingが出来なかったので、
DHCPにした。素直に生のpasswdが記載されてるんで、取扱い注意。FreeBSDみ
たいに、 wpa_supplicant.conf
なんて不要でラクダ。
fug$ cat /etc/hostname.iwn0 nwid myssid wpakey ssid-passwd up #inet xxx.xxx.xxx.99/24 inet autoconf
固定IPを設定した時に、つられて設定された出口情報(残骸)
fug$ cat /etc/mygate xxx.xxx.x.1
名前解決は、最初、最後の2行だけを設定してた。前の方の行は勝手に追加さ れた。犯人はdhcpleasedだろうね。
fug$ cat /etc/resolv.conf nameserver xxx.xxx.xxx.1 # resolvd: iwn0 lookup file bind family inet4 nameserver xxx.xxx.x.1 nameserver 8.8.8.8
こちらは、有線した時の残骸。
fug$ cat /etc/hostname.re0 up inet xxx.xxx.1.100/24
ルーチィング・テーブルの抜粋。注目はdefaultな出口だな。
fug$ route -n show -inet Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default xxx.xxx.x.1 UGS 5 124 - 12 iwn0 xxx.xxx.x/24 xxx.xxx.x.99 UCn 2 897 - 8 iwn0 xxx.xxx.x/24 xxx.xxx.x.100 Cn 0 1 - 4 re0 xxx.xxx.x.255 xxx.xxx.x.99 UHb 0 5 - 1 iwn0 xxx.xxx.x.255 xxx.xxx.x.100 Hb 0 0 - 1 re0
ntp
Inventor of NTP protocol that keeps time on billions of devices dies at age 85
ネットワー ク・タイム・プロトコル(NTP)の発明者デイビッド・L・ミルズ博士が2024年 1月17日に85歳で安らかに亡くなったと発表した。ご冥福をお祈り致します。 NTPは地味ながら、とっても重要な仕事をする。
OpenBSDの人達は、そこん所をちゃんと理解してて、独自の実装を搭載してる。 なにかとntpは(も)物騒ですから。起動して10分ぐらいしか経過していないので、頻繁にチェッ クしてる状態です。
fug$ ntpctl -s all 5/5 peers valid, constraint offset -1s, clock synced, stratum 4 peer wt tl st next poll offset delay jitter 162.159.200.123 time.cloudflare.com 1 10 3 8s 31s -1.468ms 15.839ms 6.085ms 162.159.200.1 from pool pool.ntp.org * 1 10 3 3s 30s -8.325ms 30.309ms 37.242ms 129.250.35.250 from pool pool.ntp.org 1 10 2 20s 31s -1.200ms 17.674ms 8.819ms 133.243.238.243 from pool pool.ntp.org 1 10 1 5s 32s 0.528ms 16.746ms 6.136ms 162.159.200.123 from pool pool.ntp.org 1 10 3 17s 31s -0.902ms 13.391ms 1.069ms
こちらは、起動後2時間経過。安定してきて、poll間隔が長くなってる。
fug$ w 3:35PM up 2:01, 2 users, load averages: 0.52, 0.47, 0.42 USER TTY FROM LOGIN@ IDLE WHAT root C0 - 1:38PM 57 -ksh sakae p0 xxx,xxx.xxx.x 1:59PM 0 tmux: client (/ram/tmp/tmux-1000/def fug$ ntpctl -s all 5/5 peers valid, constraint offset -1s, clock synced, stratum 4 peer wt tl st next poll offset delay jitter 162.159.200.123 time.cloudflare.com 1 10 3 1413s 1529s -2.195ms 21.956ms 13.904ms 160.16.113.133 from pool pool.ntp.org * 1 10 3 8s 1596s -1.214ms 25.090ms 22.727ms 133.243.238.163 from pool pool.ntp.org 1 10 1 1507s 1596s 1.050ms 25.042ms 18.575ms 162.159.200.123 from pool pool.ntp.org 1 10 3 1563s 1636s 0.097ms 21.591ms 16.135ms 133.243.238.243 from pool pool.ntp.org 1 10 1 1337s 1550s -3.241ms 22.383ms 12.989ms
あれ? 何もしていないのにwが報告してくるロード・アベレージが高いなあ。
fug$ top load averages: 0.52, 0.48, 0.42 fug 15:41:23 33 processes: 32 idle, 1 on processor up 0 days 02:06:11 CPU: 0.0% user, 0.0% nice, 0.0% sys, 0.0% spin, 0.0% intr, 100% idle Memory: Real: 533M/849M act/tot Free: 1987M Cache: 202M Swap: 0K/16M
こちらも同様か。出所は同じだろうね、ってか、統計情報は、そんなに有るも のじゃない。
キーボード事
デフォだと、入力ミスをすると、ピーピーと五月蝿い。女房からクレームが有っ た。ちゃんと対処しないとパソコン使用禁止の刑を喰らいそう。
fug$ cat /etc/wsconsctl.conf keyboard.bell.volume=0 display.screen_off=180000 # set screen burner timeout to 180 seconds keyboard.map+="keysym Caps_Lock = Control_L" display.outact=on # screen saver
pkg_add
/var/db/pkgを見るとrsyncとかの先客が居るけど、それは見なかった事にし て、オイラーが介入した物を挙げてみる。
gdb-9.2p3/ emacs-29.1p0-no_x11/ tree-0.62/ w3m-0.5.3pl20230121/ ; ここまでは、自主的に入れた intel-firmware-20231114v0/ ; ここからは、 =fw_update= で、自動導入 inteldrm-firmware-20230919/ iwn-firmware-5.11p1/
これを見ると、GUIには全く興味が無いって事がバレてしまうな。ああ、w3mの 代わりにemacsに同梱されてる、ewwが有るのは承知。昔からの相棒ですから。
df
fug$ df -k Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/rd0a 1551 955 596 62% / /dev/sd1a 849710 831738 17972 98% /sysmedia /dev/vnd5a 811294 803430 7864 100% /fuguita mfs:17905 1014455 352054 611679 37% /ram
fug$ doas usbfadm -i FuguIta's persistent storage status: Version/Arch: 7.4/i386 (FuguIta-7.4-i386-202401171) Boot mode: usbflash Target device: /dev/sd1d Data saved as: fugu-save Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/sd1d 5.6G 336M 5.3G 6% 31349 3330441 1% /mnt scanning... 336M 7.4/i386/fugu-save 512B 7.4/i386/noasks
sd1dをマウントして、どんな構成になってるか確認。
fug$ tree -L 5 /mnt /mnt `-- livecd-config `-- 7.4 `-- i386 |-- fugu-save | |-- altroot | |-- etc | |-- home | |-- root | |-- tmp | |-- usr | `-- var `-- noasks 11 directories, 1 file
この内容が、/ramに反映されるんだな。
X
Xが動くか軽く確認。その為にわざわざ何かを入れる必要はないので、適当な 物をリストアップする。
fug$ ls -l /usr/X11R6/bin/*wm lrwxr-xr-x 1 root wheel 26 Nov 8 11:08 /usr/X11R6/bin/cwm@ -> /fuguita/usr/X11R6/bin/cwm lrwxr-xr-x 1 root wheel 27 Nov 8 11:08 /usr/X11R6/bin/fvwm@ -> /fuguita/usr/X11R6/bin/fvwm lrwxr-xr-x 1 root wheel 26 Nov 8 11:08 /usr/X11R6/bin/twm@ -> /fuguita/usr/X11R6/bin/twm
そして起動スクリプト。使うなら、CTL <> Caps の入れ替えぐらいはしろよ。
fug$ cat .xinitrc xterm & fvwm
startx したら、ちゃんと動いた。やや画面が明るすぎるけど、どうやって調 整したらいいの?
/etc/rc.conf.local
メールは不要なので、起動しないように設定。
fug$ cat /etc/rc.conf.local smtpd_flags=NO
/sbin/slaacd って、IPv6 関係だから(多分)不要だろう。止めてもいいかな??
src
FreeBSDに入れていたOpenBSDのソースをscpで転送(テスト)。途中で落ちる事 もなかったので、まずは合格かな。
fug$ du -sh /usr/src/* 2.9M /usr/src/bin 556K /usr/src/include 34.4M /usr/src/lib 1.8M /usr/src/libexec 10.4M /usr/src/sbin 26.3M /usr/src/usr.bin 30.6M /usr/src/usr.sbin
sysが転送されていないのは、ご愛嬌です。だって、コンパイルしたくなるじゃ ないですか。そんな時は、qemuを入れてgdbと言うコースになるけど、この環 境じゃ、ちと窮屈でしょう。
Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/rd0a 1551 955 596 62% / /dev/sd1a 849710 831738 17972 98% /sysmedia /dev/vnd5a 811294 803430 7864 100% /fuguita mfs:43108 1014455 461497 502236 48% /ram /dev/sd1d 5864303 450504 5413799 8% /mnt
play
そんな訳で、ユーザーランドなコマンドで遊ぶのさ。試しにkshをば。
fug$ cp -r /usr/src/bin/ksh/ /tmp fug$ cd /tmp/ksh/ fug$ make : #include "charclass.h" ^~~~~~~~~~~~~ 1 error generated. *** Error 1 in /tmp/ksh (<sys.mk>:87 'misc.o')
ありゃりゃ、このヘッダーは、何処出身? こういうのを探るのも楽しみです。 全体的に足りない物が有るか、小規模なコマンドで確認。
fug$ cd ed/ fug$ make cc -O2 -pipe -MD -MP -c buf.c cc -O2 -pipe -MD -MP -c glbl.c cc -O2 -pipe -MD -MP -c io.c cc -O2 -pipe -MD -MP -c main.c cc -O2 -pipe -MD -MP -c re.c cc -O2 -pipe -MD -MP -c sub.c cc -O2 -pipe -MD -MP -c undo.c cc -o ed buf.o glbl.o io.o main.o re.o sub.o undo.o
大丈夫なんで、gdb出来るようにMakefileに一行追加。
CFLAGS= -O0 -g3
再コンパイルしてから、go じゃなくて、gdb。
fug$ gdb -q ed Reading symbols from ed... (gdb) b main Breakpoint 1 at 0x70de: file main.c, line 130. (gdb) r Starting program: /ram/tmp/ed/ed Breakpoint 1, main (argc=1, argv=0xcf7bea04) at main.c:130 130 int status = 0; :
わざわざソースを/tmpにコピーしてるけど、FuguItaなら、どんなに改変して も、それをセーブしなけりゃ、無かった事に出来るな。おかしくなってしまっ たら、再起動するだけーー。
ifconfig scan
何気に、ifconfigの結果を眺めていたら、-66dBm なんてのが報告されてた。 これって、電界強度だよね。scanすれば、各局の強度がモニター出来るはず。
fug$ cat scan.sh #!/bin/sh ifconfig iwn0 scan | sed '/ieee80211:/d' | awk '/dBm/{print($7, sprintf("%3d",$4), substr($2,1,5))}' | sort -nr
左から、電界強度、チャンネル、ssid(の一部)です。
fug$ ./scan.sh | head -49dBm 11 Buffa -50dBm 6 Buffa -54dBm 4 Exten -56dBm 116 Buffa -60dBm 9 0x000 -62dBm 11 Buffa -67dBm 9 ctc-g -68dBm 36 aterm -71dBm 5 Buffa -72dBm 36 Buffa
バフャロー人気だな。どんな割合?
fug$ ./scan.sh | cut -b12- | sort | uniq -c | sort -nr 11 Buffa 3 aterm 2 Exten 2 0x000 1 rs500 1 ctc-g 1 ctc-a 1 5C619
sd1
TOSHIBAのUSBが頻繁にアクセスされてるみたい。アクセス・ランプがずっと点 滅してる(アイドル状態でも)。USBの寿命が縮まないか心配、それより小心者 のオイラーの寿命が心配。検査してみるか。
fug$ vmstat -w 3 sd1 procs memory page disks traps cpu r s avm fre flt re pi po fr sr sd0 sd1 int sys cs us sy id 3 75 537M 1870M 83 0 0 0 0 0 0 19 68 550 79 0 0 99 0 78 537M 1870M 7 0 0 0 0 0 0 0 38 28 79 0 0 100 0 78 537M 1870M 4 0 0 0 0 0 0 0 39 26 33 0 0 100 0 78 537M 1870M 3 0 0 0 0 0 0 0 41 20 34 0 0 100 1 77 537M 1870M 3 0 0 0 0 0 0 0 37 17 47 0 0 100 0 78 537M 1870M 3 0 0 0 0 0 0 0 41 17 62 0 0 100 0 78 537M 1870M 4 0 0 0 0 0 0 0 40 17 40 0 0 100 1 77 537M 1870M 3 0 0 0 0 0 0 0 44 17 36 0 0 100
vmstatは異常なし。一秒に数回は点滅してるから、これで検出されてもよさそ う。
fug$ iostat -w 3 sd1 tty sd1 cpu tin tout KB/t t/s MB/s us ni sy sp in id 0 20 10.48 9 0.09 0 0 0 0 0 99 0 152 0.00 0 0.00 0 0 0 0 0100 0 44 0.00 0 0.00 0 0 0 0 0100 0 44 0.00 0 0.00 0 0 0 0 0100 0 44 0.00 0 0.00 0 0 0 0 0100 0 44 0.00 0 0.00 0 0 0 0 0100 0 44 0.00 0 0.00 0 0 0 0 0100
セカンド・オピニオン。って、統計元は一緒か? ソース嫁。
これ、どうやって追求する? ダエモン君を一つづつ停止させてみる。最後は、 ddbに落ちて、Stop the worldの状態にしてみる。落ちるには、
ddb is invoked upon a kernel panic when the sysctl(8) ddb.panic is set to 1. It may be invoked from the console when the sysctl ddb.console is set to 1, using any of the following methods: - Using the key sequence Ctrl-Alt-Esc. - Sending a BREAK when using a serial console. - Writing to the sysctl ddb.trigger. - For i386 and amd64 architectures, using the key sequence Ctrl-Alt-Delete when the sysctl machdep.kbdreset is set to 2.
無茶しても、FuguItaなら大丈夫だろう。
TODO
ここまでで、大体の使いかたは分ったので、後は拡張あるのみ。
try AMD64
Windows10が入っているマシン ThinkPad/E560 が次に餌食だな。 オイラーがThinkPadを好むのは、BTOで英語キーボードを選択できる事です。 そろそろ、次期マシンの検討時期。そうなると、余生は、OpenBSDを入れてあ げたい。そんな訳で、体験入居してもいいかなと。
AMD版だと、/ram を広く取れるそうなので、楽しみ。
install real machine
今FuguItaが動いている、ThinkPad/SL510 (32Bit) を、まるごとOpenBSDにし ちゃうか。
fug$ dmesg | grep sd0 sd0 at scsibus1 targ 0 lun 0: <ATA, HITACHI HTS54502, PB2Z> naa.5000cca5e7cd4ce8 sd0: 238475MB, 512 bytes/sector, 488397168 sectors
広大なHDDをどう分割する。/var に150Gぐらいを割り当てて、httpdな用途に するかな。アパッチとか入れなくても、設備が作り付けで用意されてるからね。 悩む事はないぞ。
server='python3 -m http.server 8080'
こんな、どこでもサーバーよりは、ずっと良いでしょう。
study FuguIta
いままでは、もっぱら使うだけだった。もっと河豚の生態を勉強して品種改良 できないか検討したい。
たとえば、パソコンの電源をONにしてからログイン出来るまで3分30秒かかっ ていた(内2分はカーネルのロード時間)。もっと短縮できないだろうか。
河豚板ガイド/4-開発編 で、ヒントを見付かるかな?
謝辞
使い勝手の良いシステムを公開され、また、すばやいパッチ対応を長年に渡っ て提供されておられ、感謝いたします。
シンプルで安全なOpenBSDがFuguItaをきっかけに、発展していく事を願ってや みません。