FuguIta-7.4 (2)

Table of Contents

where header file

前回、試しにkshをコンパイルした時、#include "charclass.h" エラーになっ た。何処にある?

fug$ find . -name charclass.h
./lib/libc/gen/charclass.h
./usr.bin/rsync/charclass.h

ちゃんと有るじゃん。

cc -O2 -pipe  -DEMACS -DVI -I. -I/tmp/ksh -I/tmp/ksh/../../lib/libc/gen -Wall -Wpointer-arith -Wuninitialized -Wstrict-prototypes -Wmissing-prototypes -Wunused -Wsign-compare -Wshadow  -MD -MP  -c misc.c
misc.c:16:10: fatal error: 'charclass.h' file not found
#include "charclass.h"
         ^~~~~~~~~~~~~

ヘッダーファイルは普通 <charclass.h>のはず。なのにローカルな場所指定に なってる。その場で自動生成してるのか。 もう一度エラーを見ると、ヘッダーの指定が、相対になってるじゃん。勝手に コピーや移動してはいけないと言う事。元居た場所で咲きなさい、なんだな。

fug$ cd /usr/src/bin/ksh/
fug$ doas make
 :
cc  -static -pie -o ksh alloc.o c_ksh.o c_sh.o c_test.o c_ulimit.o edit.o emacs.o eval.o exec.o expr.o history.o io.o jobs.o lex.o mail.o main.o misc.o path.o shf.o syn.o table.o trap.o tree.o tty.o var.o version.o vi.o -lcurses
var.c(var.o:(getspec)): warning: rand() may return deterministic values, is that what you want?

お騒がせしました。

load averages

fug$ w
 3:10PM  up  1:04, 2 users, load averages: 0.49, 0.48, 0.42
;; この間、アイドル状態
fug$ w
 3:26PM  up  1:20, 2 users, load averages: 0.52, 0.48, 0.42

ダエモン君は、大幅に殺してある。

fug$ ps awx
  PID TT  STAT        TIME COMMAND
    1 ??  I        0:01.00 /sbin/init
58817 ??  I        0:00.86 /boottmp/mount_mfs -s 2097152 -o wxallowed swap /ram
95564 ??  IU       0:00.00 /sbin/dhcpleased
71814 ??  Ip       0:00.00 dhcpleased: engine (dhcpleased)
60406 ??  IpU      0:00.01 dhcpleased: frontend (dhcpleased)
45621 ??  IpU      0:00.00 /sbin/resolvd
82965 ??  Ipc      0:00.03 pflogd: [running] -s 160 -i pflog0 -f /var/log/pflog (pflogd)
 1253 ??  I        0:00.00 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups (sshd)
76001 ??  I        0:00.06 sshd: sakae [priv] (sshd)
 1678 ??  R/0      0:00.08 sshd: sakae@ttyp0 (sshd)
87654 ??  Rp/0     0:00.39 tmux: server (/ram/tmp/tmux-1000/default) (tmux)
34871 p0  Ip       0:00.01 -ksh (ksh)
 4862 p0  I+p      0:00.01 tmux: client (/ram/tmp/tmux-1000/default) (tmux)
86655 p1  I+p      0:00.00 -ksh (ksh)
 1157 p2  Sp       0:00.02 -ksh (ksh)
92316 p2  R+pU/0   0:00.00 ps -awx
42636 C0  I+p      0:00.18 -ksh (ksh)
 9443 C1  I+pU     0:00.00 /usr/libexec/getty std.9600 ttyC1
17630 C2  I+pU     0:00.00 /usr/libexec/getty std.9600 ttyC2
 3298 C3  I+pU     0:00.00 /usr/libexec/getty std.9600 ttyC3
77055 C5  I+pU     0:00.00 /usr/libexec/getty std.9600 ttyC5

この問題はFuguItaの作者さんの所でも発生してるそうだ。安心したよ(安心し ないで潜れ、それでこそOpenBSD使いだろう)。それにしても、rcctl stop pflogdしても停止しない暴走族君が居るよ。その性根を探れば面白いだろうね。

USB led点滅問題

上記の様にプロセスを殺しても、点滅してる。ならばカーネルを仮死状態にし てみよう。Ctrl-Alt-Delete は駄目だったので(後で分かった事だけど、これ れもddb.console=1の影響下にある)、下記を追加。

ddb.console=1   ;; on /etc/sysctl.conf (ddb main switch)
alias inddb='sysctl -w ddb.trigger=1'

ddbに落ちても、点滅してた。何なのこれ、メーカーのお客様相談室に聞いて みるか。AIには、そんな疑問は登録されませんと一蹴されるかな。そしたら豹 変してクレーマーになってやる。ヲイヲイ!

よく観察すると、カーネルがロードされ、(多分)イニシャライズ中は、消灯し てるんだよな。そして/etc/rcが走り初めると、また点滅状態になる。わけワ カメであります。

これも作者さんが過去記事を掘り出してくれました。何とも情けない事です。 結論は気にするな、です。

日本語表示に問題あり

そりゃ、コンソール上ではそうでしょう。対応フォントも無いし、コンソール・ ドライバーも対応してないからね。

でも、sshでログインした場合はどうなの? 日本語文書をcatしてもw3mでWEB にアクセスしても化ける。

こんな設定をしてみたけど、効果なし。

fug$ export LANG=ja_JP.UTF-8
fug$ locale
LANG=ja_JP.UTF-8
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_ALL=

ssh接続と言えど、ptyなんで駄目なのかな?

Xな端末

コンソールをXな端末にしたら、Nihonngo OK desu. になるだろう。

日本語デスクトップ環境を導入する

案内をざっと見すると、かなり色々なパッケージを取り寄せしてるみたい。そ のダウンロード元は何処?

fug$ cat /etc/installurl
https://cdn.openbsd.org/pub/OpenBSD

pkg_add の参照するURLはこれだけ。適当に分散してくれるのかな。 Debianみたいにバージョンが代わるた びに、設定するなんて面倒(/etc/apt/source.list)は無い。

fug$ doas dtjsetup
Which desktop software will you install?
  1:  no desktop (wm only)
  2: [rox-filer]
  3:  xfce
  4:  mate
  5:  lumina
  6:  lxqt
->

Which window manager will you install?
  1:  cwm
  2:  fvwm
  3:  twm
  4: [icewm]
  5:  fluxbox
  6:  jwm
->2

Will you setup Japanese language environment? [y/N] -> y

Which input method will you install?
  1: [fcitx-anthy]
  2:  ibus-anthy
  3:  ibus-skk
  4:  scim-anthy
  5:  uim-gtk
->3

 *** You selected fvwm as desktop software.
 *** Installing Japanese environment is YES.
 *** Japanese input method is ibus-skk.

 *** Installing packages: rox-filer ja-nkf ja-kterm-- ja-fonts-funet ja-fonts-gnu
 ja-sazanami-ttf hanazono mixfont-mplus-ipa mplus-fonts vlgothic ibus-skk ibus
Will you continue? [y/N] -> y
quirks-6.160 signed on 2024-01-23T10:49:46Z
rox-filer-2.11p4:pcre2-10.37p1: ok
rox-filer-2.11p4:glib2-2.76.5: ok
  :
ibus-skk-1.4.3p4:iso-codes-4.15.0: ok
Error: mfs:11682 on /ram is not large enough (/usr/local/share/ibus/dicts/emoji-gu.dict)
Error: mfs:11682 on /ram is not large enough (/usr/local/share/ibus/dicts/emoji-ha.dict)
  :
Couldn't install ibus-1.5.29rc1 ibus-skk-1.4.3p4
 *** Installing package(s) failed.

メモリー不足問題発生。

fug$ df -k
Filesystem  1K-blocks      Used     Avail Capacity  Mounted on
mfs:11682     1014455    977771    -14038   102%    /ram

これはもう、tmpfsに切り変えるしかないのかな? それにしても、底無し沼の 予感。

fug$ man fs

/ram: write failed, file system is full
man: /fuguita/usr/share/man/man5/fs.5: SYSERR: write: /tmp/man.rg8tcIg4Jj: No space left on device
man: see above the output for SYSERR messages

雀の涙程にメモリーを開放。

fug$ doas rm -rf /usr/local/share/doc
fug$ ps awx
11682 ??  S        0:01.89 /boottmp/mount_mfs -s 2097152 -o wxallowed swap /ram
fug$ man mount_mfs
     -s size
             The size of the file system in sectors (see -S).  Alternatively
             size may instead use a multiplier, as documented in
             scan_scaled(3), to specify size in bytes; in this case size is
             rounded up to the next sector boundary.  The maximum size of an
             FFS file system is 2,147,483,647 (2^31 - 1) of 512-byte blocks,
             slightly less than 1 TB.  FFS2 file systems can be as large as 64
             PB.  Note however that for mount_mfs the practical limit is based
             on datasize in login.conf(5), and ultimately depends on the per-
             arch MAXDSIZ limit.

これが効いてて、制限をかけているの?

fug# ulimit -a
data(kbytes)         1048576

駄目元で、起動モード0を使って、ramを2048Mに設定してみたけど、しっかり 1024Mに訂正されてしまったよ。安全弁がちゃんと組み込まれていた。

fug$ cat /etc/fuguita/global.conf
fuguita_sys_mb=830    # size of sysmedia.img
newdrive_defswap=16M  # default swap size at usbfadm newdrive
memfstype=mfs         # 'mfs' or 'tmpfs'
mfs_max_mb=1024       # mfs hard limit
disable_uefiboot=Yes  # not prompt at usbfadm/newdrive

これがリミット値なんだな。そして

/boottmp/rc

        umem=$(min "$mfs_max_mb" $(parsesize "$umem" $maxmem $swpmem))
          :
if [[ "$memfstype" = 'tmpfs' ]]; then
    /fuguita/sbin/mount_tmpfs -s ${umem}M -o wxallowed tmpfs /ram || exit
else
    # mount_mfs exists on in-kernel FS
    # to be able to umount /fuguita at boot mode 2
    /boottmp/mount_mfs -s $((2*1024*umem)) -o wxallowed swap /ram || exit
fi

メモリーを大量に積んでいたら、もっとリミットを緩くしても大丈夫そうな予 感。まて、そんな根幹を勝手にいじるな。止めとけ。今後の付き合いも有るか らね。丁度カスタム・カーネルは、syspatchの対象外ですと一緒の構図だ。

それにしても、この rc は、力作ですねーー。

fug$ df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
mfs:71258      991M    472M    469M    51%    /ram

下記のddskkまで導入した状態で、空エリアはこんなに有るって、ポジティブ に捉えておこうよ。将来的には、/usr/src/ を他に移動させるんで、そうした ら、もう100M程、余裕が出来るからね。これで手打だ。

more simple

上の導入で、懐かしいktermもやって来るけど、日本語がちゃんと表示できる のかな? 指示されてたフォント一式も入れてみたけど、やっぱり文字化け。 何か設定が必要なのかな? オイラーはフォントと印刷関係が鬼門だったりし ます。

そこで方針転換。こんな .xinitrc を作成。ちゃんとemacsの指使いになるよ うに設定。

setxkbmap -option ctrl:nocaps &
export LANG=ja_JP.UTF-8
xterm -r &
fvwm

これで、ちゃんと日本語を表示できた。ちとフォントサイズが小さい。 xtermのメニューからサイズを大きい物に変更すると、豆腐文字になる。 さて、どうやって大きいフォントにしたらいいの?

fug$ cat .Xdefaults
! $OpenBSD: dot.Xdefaults,v 1.3 2014/07/10 10:22:59 jasper Exp $
XTerm*loginShell:true

多分、この辺だろうけど。。真剣にXなんて使用しないからなあ。 まて、フォント問題はこれじゃ解決できず、別な端末ソフトを導入した覚えが あるぞ。記憶が飛んでいるなあ。歳くった証拠ぢゃわい。

日本語入力は、ddskk on emacsで十分だな。w3mでググる時は、コピペでいい かな。

画面の明るさは、下記で設定できるとの事。こういう助言は非常に助かります。 OpenBSDなユーザーなんて、ほとんどいませんから。

# wsconsctl display.brightness=70    ;; (0 <= XX <= 100)

参考までに、Debianでの調光装置

#! /bin/sh
# @brief Change LCD brightness

PREFIX="/sys/class/backlight/intel_backlight"
MAX_V=$(cat ${PREFIX}/max_brightness)
CUR_V=$(cat ${PREFIX}/brightness)
CUR_R=$(echo "scale=1; ${CUR_V} * 100 / ${MAX_V}" | bc)
VALUE=$(echo ${1:?} | awk '{print $1*1}')
[ ${VALUE} -gt 100 ] && VALUE=100
[ ${VALUE} -lt  20 ] && VALUE=20
VALUE=$(echo "${MAX_V} * ${VALUE} / 100" | bc)
# must be (20 < x < 100)
echo ${VALUE} | sudo tee ${PREFIX}/brightness >/dev/null

ddskk

package-install ddskk

M-x skk-get ;; install dict

;; for SKK -------------------------------
(global-set-key (kbd "C-x C-j") 'skk-mode)
(global-set-key (kbd "C-x j") 'skk-auto-fill-mode)
(setq default-input-method "japanese-skk")
(setq skk-sticky-key ";")
(add-hook 'isearch-mode-hook 'skk-isearch-mode-setup)
(add-hook 'isearch-mode-end-hook 'skk-isearch-mode-cleanup)
(setq skk-egg-like-newline t)

SKK に関するドキュメント

河豚の美味しい所

無茶しても再起動すれば、それが無かった事になる。自覚があれば、usbfadm -r しなけりゃいいだけですから。逆に言うと、永久保存したい時だけ実行す れば良い。

他に嬉しいのは、emacsの起動がメチャ速いこと。起動が遅くて有名なんで、 emacsをダエモン化しておいて、クライアントモードで接続するのを勧めてい る。が、FuguItaでは、それが必要ない。 全部がメモリー上にあるからだ。

下記は、loginした直後に、Xを起動して、xtermの中からemacsした状態。

fug$ iostat -w 5 sd1
      tty                sd1                cpu
 tin tout  KB/t  t/s    MB/s  us ni sy sp in id
   0   44  0.00    0    0.00   0  0  0  0  0100
   0   27  0.00    0    0.00   0  0  0  0  0100
   1  169 19.76  174    3.35   4  0  5  0  0 90
   0   27 23.03   64    1.43   5  0  6  1  1 87
   4  201 16.00    1    0.02   7  0  3  0  0 90

こちらは2回目の実行

fug$ iostat -w 5 sd1
      tty                sd1                cpu
 tin tout  KB/t  t/s    MB/s  us ni sy sp in id
   0   74  0.00    0    0.00   0  0  0  0  0100
   0  192  0.00    0    0.00   5  0  5  0  0 89
   0   27  0.00    0    0.00   5  0  3  0  1 91
   4  199  0.00    0    0.00   7  0  2  0  0 91
   0   26  0.00    0    0.00   0  0  0  0  0100

3回目で、vmstatしてみた。

fug$ vmstat -w 5 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  531M   1930M  136   0   0   0   0   0   0  43  105   421  119  0  1 99
 2  80  554M   1923M 1549   0   0   0   0   0   0   0   72  1780  145  1  4 95
 0  89  581M   1891M 2433   0   0   0   0   0   0   0  216  3948  713  8  7 85
 0  90  599M   1881M  644   0   0   0   0   0   0   0   41  1550  100  8  2 90
 0  90  599M   1881M    3   0   0   0   0   0   0   0   38    10   60  0  0 100

sys source

画面の明るさ調整ってどういう機構なのだろう。想像するに、LCDのバックパ ネルを光らせる発光ダイオードに流す電流を変えているんだろうね。リナにも 同様な機能があって、ソースを見たけど、森の中で迷子になった。

今なら綺麗なソースと対面できるよ。って、まだsysなソースは入れてなかっ た。ソース・ツリーにはgnuもあるけど、コンパイラー関係なんで手を出すの は無謀だ。

fug$ ftp https://ftp.jaist.ac.jp/pub/OpenBSD/7.4/sys.tar.gz
Trying 150.65.7.130...
Requesting https://ftp.jaist.ac.jp/pub/OpenBSD/7.4/sys.tar.gz
100% |**************************************************| 56674 KB    00:31
58035169 bytes received in 31.21 seconds (1.77 MB/s)

今朝の北陸地方は大雪の為、荷物の配送が遅延してます、ってか。展開したら /ram不足になったぞ。

fug$ doas mkdir /mine
fug$ doas mount_mfs -s 1536000 -o wxallowed swap /mine
fug$ cd /mine
fug$ doas tar zxf /tmp/sys.tar.gz
fug$ du -sh sys/
526M    sys/

tagsも作りたいので、これじゃ絶望的だな。 それに、portsのソースもほしいなんて贅沢は、もう無謀ってもんです。

see tag jump 2018年は色々やってたんだな。すっかり忘却でイカンゼヨ。

hddとの併用計画

そこで出てくるのは、Debian/FreeBSDが鎮座してるHDDだ。両OSとも、 Windows10なマシンの中にあるVMWareやWSL2上で動いているからね。

この際、HDDを丸ごとOpenBSDにしちゃって、容量の喰うものはそちらに入れる。 そして、それをFuguItaからマウントしてアクセスする。

fug$ doas mount /dev/sd0j /mnt
fug$ ls /mnt
COPYRIGHT  dev/       lib/       mnt/       rescue/    tmp/
FBDEB/     entropy    libexec/   net/       root/      usr/
bin/       etc/       media/     opt/       sbin/      var/
boot/      home@      meet@      proc/      sys@

適当にマウントしてみたら、FreeBSDの / が見えたぞ。

fug$ doas dd if=/dev/sd0c of=/dev/null bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 29.345 secs (35731578 bytes/sec)

余りアクセスしないと、HDDのヘッダーが固着しちゃうかも。たまには喝を入 れてあげないとな。iostatで転送スピードをチェックしてみたぞ。

fug$ iostat -w 5 sd0
      tty                sd0                cpu
 tin tout  KB/t  t/s    MB/s  us ni sy sp in id
   0   67  0.00    0    0.00   0  0  0  0  0100
   1  338  3.98 1573    6.12   0  0  2  0  1 97
   0   10  4.00 8684   33.92   0  0 14  1  5 80
   0   10  4.00 8672   33.87   0  0 14  1  7 78
   0   10  4.00 8779   34.29   0  0 14  2  5 79
   0   10  4.00 8692   33.95   0  0 16  2  6 77

OpenBSD化実施計画書

ThinkPad本体に生のOpenBSDをインストールする。そしてそれが単独でも動作 する様に設定する。普段はFuguItaのUSBを差しておいて、高速な動作を授受す る。

もう有線に一度も接続する事なく、生OpenBSDでWiFi readyにしたい(女房に白い眼でみら れない為の配慮)。

1. 取り敢えず、NIC無しとしてインストール
2. FuguItaで起動してネット関係を転送(hostname.{iwn0,re0},mygete,resolv.conf)
3. /etc/firmwareを転送(i915,intel,intel-ucode*,iwn-*)
4. intel-firmware-20231114v0,inteldrm-firmware-20230919,iwn-firmware-5.11p1導入
5. 多分ダエモン君の起動の追加が必要だろう
6. syspatch
7. cp /home/*

pkg関係の導入は面倒なので、強引に、/usr/local/と/var/db/pkg/ をコピー しやうのが楽か。こいうの頭上演習だから、実施してみるまで穴には気がつか ないわな。

batt

14年もののパソコンだと、どこかしらガタが来るものだ。設計寿命を遂に過ぎ ているだろうから。目につくのは、バッテリーのチャージ状態を示すインジケー タ。去年までは、緑色の月マークだったけど、今年になってオレンジ色のバッ テリーマークが点滅するようになった。取り敢えず健康診断。

fug$ systat sensor
   1 users Load 1.39 1.06 0.69                                     fug 08:47:57

SENSOR                                 VALUE  STATUS  DESCRIPTION
acpithinkpad0.temp0                0.00 degC
acpithinkpad0.temp1               55.00 degC
acpithinkpad0.temp2               55.00 degC
acpithinkpad0.temp3                0.00 degC
acpithinkpad0.temp4                0.00 degC
acpithinkpad0.temp5                0.00 degC
acpithinkpad0.temp6               17.00 degC
acpithinkpad0.temp7                0.00 degC
acpithinkpad0.fan0                   652 RPM
acpithinkpad0.indicator                  Off unknown  port replicator
acpiac0.indicator0                        On          power supply
acpibat0.volt0                    14.40 V DC          voltage
acpibat0.volt1                     0.00 V DC          current voltage
acpibat0.power0                       0.00 W          rate
acpibat0.watthour0                   0.00 Wh          last full capacity
acpibat0.watthour1                   1.58 Wh          warning capacity
acpibat0.watthour2                   0.32 Wh          low capacity
acpibat0.watthour3                   0.00 Wh CRITICAL remaining capacity
acpibat0.watthour4                  31.68 Wh          design capacity
acpibat0.raw0                          0 raw    OK    battery full
acpibtn0.indicator0                       On          lid open
acpitz0.temp0                     55.00 degC          zone temperature
cpu0.temp0                        43.00 degC

FuguIta for ThinkPad E560 でもFuguItaでセンサーチェックしてるけど、 64bit機だからなあ。まずは体型からして違うよ。参考にならないな。ああ、 参考にならないと言えば、血圧って年齢により違いが有るはずなんだけど、一 律に130以上は要注意って、医者の陰謀ではなかろうか? まあ、反論が有る事 は承知ですが。

etc