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)

試食

河豚板ガイド/1-準備編

河豚板ガイド/2-入門編

河豚板ガイド/3-運用編

難関の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をきっかけに、発展していく事を願ってや みません。


This year's Index

Home