Try FuguIta
梅雨空なこの季節。雨の合間をぬって散歩に勤しんでいる。さすがに雨の時はご遠慮してるんで、辛うじて人間だな。犬だと雨だろうが雪だろうが、散歩に連れて行けと大騒ぎするけどな。
で、雨の合間ってのは農家の人も同じとみえる。この間、毒霧攻撃を受けたぞ。果樹園の病害虫退治の、大事な作業なんですな。農家の人によっては、オイラーが通行してる時は、消毒を休止してくれる事がある。貴重な時間を潰してしまって御免なさいと、足早に通り過ぎる、あるいは迂回するとかするんだけどね。ついつい考え事をしながら歩くと、霧に突っ込む事になるんだ。
いつも、茶髪の犬3尾と黒毛の犬1尾をまとめて散歩させてる人に会うんだ。が、たまたま黒毛の犬だけを散歩させてる人に出会った。
そのワンコは、空を仰ぎ見ながら、気持ちよさそうに脱糞中。まだまだ時間がかかりそうなんで、その人に話かけてみた。4尾まとめて散歩してる人は、40歳を超えた息子さん。今回の人は、その父親なんですと。
自衛隊を退官して悠悠自適な生活をなされてるとか。息子の嫁が見つからず、やきもきしてるんですよ。あなたのお知り合いで、適当な方がいたら紹介くださいと頼まれてしまったぞ。
田舎は出会いが少ないですからねーー。まして、農家の跡取り息子となると、なおさらですよ。 あれ?そうすると、農家は奥さんが担当されてたのかな? まあ、深くは突っ込むまい。
それより、黒毛のワンコに興味が出て来た。余り見かけない犬ですけど、犬種は何になるんですか? 甲斐の純血らしい。
散歩してる割には、ふくよかですねって言うと、メス犬なんだけど、子宝に恵まれなかったので、子宮に問題を生じたため、取ってしまったとか。それでホルモンバランスが崩れ、太ったそうな。人間で言うともう、おばあちゃんだそうだ。そのせいか、後ろ足がブルブルと震えていた。
なんか、人間世界も犬世界も、大変だな。
emacs mozc on Debian
前回の最後で思案したあれ。CUIな人が端末上で使うemacsから、もずくが快適に使えるかのお題。手を動かせって事でやってみた。
emacs-mozc ってのが、mozc.elの事。emacs-mozc-binがヘルパーらしい。
CUIなemacsでも、候補がビローンと出てきて、一応入力出来るけど、本命はGUI上のemacsで使えって事だな。それに、i386な石じゃ、重くてかなわん。貧乏人は、anthyを素直に使っとけってのが結論。
debian:~$ ps awx|grep mozc 7975 ? Ss 0:00 /usr/bin/mozc_emacs_helper --suppress_stderr 8009 ? Sl 0:00 /usr/lib/mozc/mozc_server
デフォで、emacs25 が入っているんだけど、emacs-mozcを取り寄せると、emacs24が付いてくる。なんだかなあ。(実害は無いんで、放置しといてもいいよ)
もっとスマートにやりたいなら、 Google mozc の、src/unix/emacs内にある、mozc.elを抽出してきて、emacsのライブラリィーPATHの中に放り込んでしまえばおk。努々、全部を落としてこないように。Cフラフラ語に対面する事になって、頭がクラクラしますから。
check FuguIta
河豚喰いねえ、江戸っ子だってねぇ。
って、昔、山口県あたりに出張した時に勧められた。 空港で、ふぐの一夜干しと、ふぐのてんぷらだっかと、ふぐヒレをセットで買った覚えがある。
前回見つけておいた、OpenBSDのライブ版 FuguIta ってのを試してみる。取ってきたのを 展開。素性を確認。USBに焼いたのをを刺すから、これぞ河豚刺しだか河豚ヒレです。
ob6$ file FuguIta-6.3-i386-201805241.img FuguIta-6.3-i386-201805241.img: x86 boot sector; partition 4: ID=0xa6, active, starthead 255, startsector 128, 2096972 sectors
1GのUSBに焼けるように構成されているとな。
ob6$ doas vnconfig vnd0 /home/sakae/FuguIta-6.3-i386-201805241.img ob6$ doas mount /dev/vnd0a /mnt
まずは、まな板に乗せられるように、仮想デバイスに紐付けてから、マウント
ob6$ cd /mnt ob6$ ls -l total 1432952 -rw-r--r-- 1 root wheel 82784 May 24 02:21 boot -rwxr--r-- 1 root wheel 2048 May 23 23:44 boot.catalog* -rw-r--r-- 1 root wheel 6914286 May 24 00:00 bsd-fi -rw-r--r-- 1 root wheel 6943640 May 24 00:00 bsd-fi.mp -r-xr-xr-x 1 root wheel 85592 May 24 00:00 cdboot* -r-xr-xr-x 1 root wheel 2048 May 24 00:00 cdbr* drwxr-xr-x 2 root wheel 512 Apr 18 2014 etc/ -rw-r--r-- 1 root wheel 719388672 May 24 02:21 fuguita-6.3-i386.ffsimg ob6$ ls etc boot.conf random.seed ob6$ cat etc/boot.conf echo echo >> bsd-fi.mp is for echo >> multiprocessor kernel (default). echo >> Enter 'bsd-fi' for Uniprocessor. echo set timeout 10 set image /bsd-fi.mp
USB用と言っても、実体はCD風なのね。
ob6$ doas umount /mnt ob6$ doas vnconfig -u vnd0
構成が分かったんで、本体のfuguitaを抽出。取り合えずCD(もどき)は、マウントを解除。 今度は、本体を解体してあげる。 特徴的な所を、思いつくまま見ていく。
ob6$ ls /mnt/dev MAKEDEV* klog ksyms null stdin tty zero console kmem mem stderr stdout xf86
必要最低限なデバイスだな。
ob6$ tree /mnt/usr/fuguita/sbin /mnt/usr/fuguita/sbin |-- compress_man.sh |-- fdadm -> /boottmp/fdadm |-- find1so.sh |-- gen_mode0sldir |-- mkusbfi.sh `-- usbfadm -> /boottmp/usbfadm
usbfadmで、ユーザーが変更を加えたものをsave出来るそうなんだが。。。/mnt/etc/mtreeの中を確認すべきかな。まあ、そこは端折って先に行く。気の向くままに、本能的にね。
ob6$ diff -u /etc/rc /mnt/etc/rc --- /etc/rc Fri Apr 20 16:35:24 2018 +++ /mnt/etc/rc Sun Apr 8 09:20:25 2018 @@ -367,11 +367,12 @@ # Mount all filesystems except those of type NFS and VND. mount -a -t nonfs,vnd -# Re-mount the root filesystem read/writeable. (root on nfs requires this, -# others aren't hurt.) -mount -uw / -chmod og-rwx /bsd -ln -fh /bsd /bsd.booted +# disabled by FuguIta +# # Re-mount the root filesystem read/writeable. (root on nfs requires this, +# # others aren't hurt.) +# mount -uw / +# chmod og-rwx /bsd +# ln -fh /bsd /bsd.booted rm -f /fastboot @@ -615,9 +616,11 @@ start_daemon apmd sensorsd hotplugd watchdogd cron wsmoused xenodm echo '.' -# Re-link the kernel, placing the objects in a random order. -# Replace current with relinked kernel and inform root about it. -### /usr/libexec/reorder_kernel & +# disabled by FuguIta +# # Re-link the kernel, placing the objects in a random order. +# # Replace current with relinked kernel and inform root about it. +# /usr/libexec/reorder_kernel & +echo 'KARL: disabled' date exit 0
親分には怒られるかも知れないけど、多大な時間がかかるアレはオミットしてるのね。そして、初回起動時のお約束。
ob6$ cat /mnt/etc/rc.firsttime /usr/sbin/fw_update -v
USBに焼いて、ThinkPad/SL510に刺してみる。
無線LAN どうしよう?
ホスト名は心に決めていたんだ。西国では河豚のことを ふく って言ってたはず。 ならば、ふく でいいと思ってた。けど、いざ登録する時に、英語キーボードを使ってるんで、 指が勝手に happy ってタイプしちゃったぞ。
で、問題は、無線LAN。使えるようにするには、fw_update して、ファームウェアを落として こなければならない。その為には一度、有線LANに繋ぐ必要がある。
リビングと言うか居間にあるテーブルと言うか兼用の炬燵テーブルの上にパソコンを置いて、 線を這わせて。。。女房に白い眼で見られるな。今時、線なんか繋いで。
女房にばれないように、超早朝に工事をするかな。まてまて、今時のパソコンには有線LANの口が無い物も有るとか。そういう人の為に知恵を絞るんだ。
過去にポータブルOpenBSDでやった残骸が残っているじゃん。そこから使うUSBに必要なものを 移しちゃえ。
供給されてるUSBのイメージは1G。使う予定のUSBは、公称8Gと言う、容量水増し呼称のもの。 まずは、広く使えるように、usbfadm のnewdeviceで、焼き直しをしておこう。
一番気を遣う所は、デバイス名を間違えない事。sd0 は備え付けのHDD。sd1は、起動したFuguitaのUSB。追加で刺したのは、sd2 になってた。書き込んで、新しいので起動。
happy# df -h Filesystem Size Used Avail Capacity Mounted on /dev/rd0a 1.6M 712K 850K 46% / /dev/sd1a 706M 700M 6.1M 99% /sysmedia /dev/vnd5a 676M 562M 113M 83% /fuguita tmpfs 2.6G 227M 2.4G 8% /ram
なんの変化もないけど、裏に隠れているんだな。
happy# mount /dev/sd1d /mnt happy# df -h /mnt Filesystem Size Used Avail Capacity Mounted on /dev/sd1d 6.4G 219M 6.2G 3% /mnt
これが、隠れているデータの保存場所。
happy# tree -d -L 5 /mnt /mnt `-- livecd-config `-- 6.3 `-- i386 `-- happy |-- altroot |-- etc |-- home |-- root |-- tmp |-- usr `-- var
こんな風に、起動時にオーバーライドされる領域が出来ているんで、この適当な場所に、 必要なものを入れていけばよい。etc/hostname.iwn0 とか、etc/firmware/iwn-* とかね。
こうしておいて、再度、fw_update すると、pkgの管理下で再登録される。後は、好きにpkg_addするだけ。おっと、etc/installurlを忘れないで先に入れておく。
happy# cat /etc/installurl https://ftp.jaist.ac.jp/pub/OpenBSD
使うであろう最低限のpkgを入れておいた。
happy# ls /var/db/pkg anthy-9100hp2 iwn-firmware-5.11p1 p11-kit-0.23.2p0 boehm-gc-7.6.0p1 libffi-3.2.1p4 quirks-2.414 emacs-25.3p0-no_x11 libiconv-1.14p3 rlwrap-0.43 emacs-anthy-9100hp3 libidn2-2.0.0p0 rsync-3.1.3 gettext-0.19.8.1p1 libnettle-3.4 tree-0.62 gmp-6.1.2p1 libtasn1-4.13p0 w3m-0.5.3p6 gnutls-3.5.18 libunistring-0.9.7 xz-5.2.3p0 intel-firmware-20180312v0 libxml-2.9.8
デフォで入っていたのは、rsyncとrlwrap。rsyncは、usbfadmで使うと想像出来るけど、rlwrapは、普通の人は余り用ないよな。ひょっとして、作者さんの一番のお気に入り?
まあ、オイラーもrlwrapの使いどころは知ってて、便利に使わせてもらうんで、同梱されてるのには異議無しなんですけどね。ああ、OpenBSDでは、gaucheが動かないので、gambitを入れておこう。
ちょっと探検
usbfadmでrsyncが使われているはず。確認してみる。
happy$ grep rsync usbfadm rsync -aqHx --delete --include '*/tmp' --exclude 'tmp/*' /ram/. /mnt/livecd-config/$verarch/$uconf/. rsync -avHx --delete --include '*/tmp' --exclude 'tmp/*' /ram/. /mnt/livecd-config/$verarch/$uconf/. rsync -avHx --delete --include '*/tmp' --exclude 'tmp/*' /ram/. /mnt/livecd-config/$verarch/$uconf/.
久しぶりにrsyncのコマンドラインに遭遇。消されている物は、バックアップ側でも情け容赦なく削除。こうしておかないとごみが溜まりますからね。一時的な作業はどうぞtmpの下で行ってくださいって事だな。
無駄にrlwrapを入れてはいないだろうという予感がするな。
#------------------- # read user's input with readline functionality # outputs echoed to stdout # # usage: rl_wread prompt-str default-str [completion words ....] # function rl_wread { typeset prompt="$1"; shift typeset default="$1"; shift if [ -x /usr/local/bin/rlwrap ]; then echo "$@" > /tmp/rl_words rlwrap -b '' \ -f /tmp/rl_words \ -P "$default" \ sh -f -c 'echo -n "'"$prompt"' --> " >&2 ; read w || echo EOF; echo $w' || echo RL_ERR else #------------------- # fallback to dumb input :
親切な心が、ユーザーの利便性を高めるという証拠。海外の人に、日本人の お・も・て・な・し。嫌味が無いのが、どこかのM$と大違い!
acpicpu0 at acpi0: !C2(250@17 mwait.3@0x20), C1(1000@1 mwait.1) acpitz0 at acpi0: critical temperature is 105 degC "LEN0017" at acpi0 not configured acpithinkpad0 at acpi0 acpiac0 at acpi0: AC unit online acpibat0 at acpi0: BAT1 model "42T4763" serial 3822 type LION oem "SANYO" acpibtn0 at acpi0: LID_ acpibtn1 at acpi0: PWRB acpibtn2 at acpi0: SLPB
dmesgに珍しいのが出てたので載せておく。LEN0017ってThinkPadのポインティングデバイスなんだ。そんな事知らんがな。やばい温度が105度って、どこの事? 石のジャンクション温度だったら、設定が高すぎると思うぞ。おまえら、アレニウスの法則って知ってるんか? アレニウスのあれは、温度が10度上がると、活性度が倍になるってやつね。
Lチカ
実は8GのUSBで使おうと思ったのには、深遠な理由がある。ポータブルOpenBSDを、東芝のUSBに 作ったんだけど、意味もなくLチカ(アクセスランプが点灯)してたんだ。
今回のFuguItaは、完全にメモリー上に展開された上で実行されてるんで、Lチカする理由が無いはず。だったら、東芝のUSBにFuguItaを入れてLチカすれば、東芝USBの個性と言う事になるな。ってな事で、検証したのさ。結果は、
Lチカしてました。
ちなみに、東芝さんUSBの諸元は、
sd1 at scsibus2 targ 1 lun 0: <TOSHIBA, TransMemory, 1.00> SCSI2 0/direct removable serial.09306544C1A0C002431A sd1: 7400MB, 512 bytes/sector, 15155200 sectors
東芝さんに理由を聞いてみたいぞ。まてまて、もう一本持ってるバッファローのUSBにポータブルOpenBSDを入れてみるか。入れてみた。そして起動。運用中は全くLチカしなかった。
後は、勝手にLチカする東芝さんのUSBをポータブルFreeBSDにしてみる事ぐらいかなあ。これを 確認すれば、OSとの相性が点検出来るな。
それをやる前に、別な事の確認を
X Windows
以前作ったポータブルOpenBSDで、Xを立ち上げようとして、startxすると、ddbに落ちてしまう。河豚毒にあたって、ほぼ即死。ダイイングメッセージを残す間もなく、逝ってしまう。
折角、別の方が設計製作された、FugiItaが有るんで、Xが動くか検証しておきたい。解毒剤は、開発されてるか? あるいは、調理師免許を持った方が料理されてるか?(多分、どっちも、だめだろうけど)
やってみた。あっと言う間にddbに落ちましたよ。でも嬉しい?事に、再起動させると、fsckが走る事なく、普通に動き出した。落ちたっていう痕跡は、lastコマンドに crash して終了しましたってのが残ってるぐらいだな。勿論、/var/log/Xorg.0.log には記録無し。(記録する前に、落ちちゃったんでしょうな。)
はて、どうしたものかとググル先生に聞き込み開始。 手がかりが余りないので、上手に質問しないと有益な情報が得られないな。現場のデカ(刑事)さんの心境。OpenBSD startx SL510 ddb ぐらいかな。最初から絞り過ぎると情報量が減るので、最初は緩く、段々と締め上げていくのが鉄則かな。(デカさんは、絞めて緩めて、矛盾を突いていくらしいですけど)
グラフィックボードを2枚刺ししてる優雅な人がいて(きっとBitCoinのあれだな)、OpenBSDの重鎮に聞いてた。
そんなブルジョア生活するなとな。で、その人は試行錯誤してた。その中にオイラーへのヒントが潜んでいた。
次の設定ファイルに追加しちゃうという、荒技(この時点でポータブル性を放棄)。インテルさんをご指名。
/usr/X11R6/share/X11/xorg.conf.d/{50-fpit.conf,70-synaptics.conf}
Section "device" Identifier "default device" Driver "intel" EndSection
startx用
ob$ cat .xinitrc LANG=ja_JP.UTF-8 setxkbmap -option ctrl:nocaps & # twm # fvwm fluxbox
記念に Xorg.0.logの一部を載せとく。
[ 744.839] (II) LoadModule: "intel" [ 744.839] (II) Loading /usr/X11R6/lib/modules/drivers/intel_drv.so [ 744.863] (II) Module intel: vendor="X.Org Foundation" [ 744.863] compiled for 1.19.6, module version = 2.99.916 [ 744.863] Module class: X.Org Video Driver [ 744.864] ABI class: X.Org Video Driver, version 23.0 [ 744.864] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets: i810, i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G, 965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45, 4 Series, G45/G43, Q45/Q43, G41, B43 [ 744.866] (II) intel: Driver for Intel(R) HD Graphics: 2000-6000 [ 744.866] (II) intel: Driver for Intel(R) Iris(TM) Graphics: 5100, 6100 [ 744.866] (II) intel: Driver for Intel(R) Iris(TM) Pro Graphics: 5200, 6200, P6300 [ 744.868] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20151010 [ 744.879] (--) intel(0): Integrated Graphics Chipset: Intel(R) GM45 [ 744.879] (--) intel(0): CPU: x86, sse2, sse3, ssse3 [ 744.879] (II) intel(0): Creating default Display subsection in Screen section "Default Screen Section" for depth/fbbpp 24/32 [ 744.879] (==) intel(0): Depth 24, (--) framebuffer bpp 32
気を良くしたオイラーは、FuguItaのシステムに適用しようとした。
happy$ doas vi 50-fpit.conf 70-synaptics.conf : Read-only file, not written; use ! to override. Error: 50-fpit.conf: Read-only file system.
あろう事か、書き込み禁止エリアになってる。
rootを見ると、usr -> ram ってなってるんで、
happy$ cd /ram/usr/X11R6/share/X11/xorg.conf.d
してから、実行しても、やはり書き込み禁止だなあ。何処かに見落としが有るかな?
lrwxr-xr-x 1 root wheel 58 Jun 21 15:08 70-synaptics.conf -> /fuguita/usr/X11R6/share/X11/xorg.conf.d/70-synaptics.conf
なんと、変な所へリンクされてるな。このリンクを止めて、上書きするんだ。 こういうからくり、さっさと気づけよ。aliasに、ls -F を登録しとこう。
こういう仕組みは、/boottmp/ を見るといいんだな。やや、世間一般で言う busybox が色々と居るなあ。rc,libcd-retr.sh.incの力作が置いてある。