FuguIta ja 16G -> 8G
Table of Contents
USB 16G -> 8G
2回に渡って、FuguIta 7.7 ja のショーケースを楽しんだ。安物USBには泣か されたけど。安物買いの銭失ないと嘆くんじゃなくて、チャンスと捉えるんだ。 あのトランプ野郎も暗殺されそうになったけど、生きのびた。神が生きろとお命じ になったと、益々元気になって、世界に迷惑を振り巻いているからね。
で、実際問題としては安物USB(16G)は使用不可だった。ならばブランドUSB(8G)で 同様の事をやればいいじゃん。移植の範疇ですかね。
大事なのは、起動時のスピードアップ化だ。これが一番の目玉。これに焦点を 絞る事にする。
遅い原因を排除
ショーケースでは、pkgを保存領域から分離してる。保存領域に内容が 有れば有る程、起動時の復帰に時間がかかるからね。だからpkgの保存領域である、/usr/localを 保存領域から除外するのさ。その為に、専用のパーテションを用意してる。
オイラーは、この保存領域(sd1d)にlocalってdirを作り、そこにpkgを入れる事にした。 そして、日頃は隠れているsd1dを最初からマウントしちゃう事にした。
make base
その為の土台を、いの一番で作成する。 河豚板のマニュアルを参照しながら、保存エリアの拡張を実施しておく。
起動時に自動マウントもして欲しいので、 河豚板の機能に頼る事にする。こういうのは自分で発明するんじゃなくて、既存の 機能を利用するのが鉄則だ。
fu$ cat /etc/fuguita/fstab.tail /dev/sd1d /ram/my ffs rw 0 1
こんな内容のファイルを用意する。
mkdir /ram/my mkdir /ram/my/local
そして、実際のマウントポイントとpkgの保存エリアも用意する。
fu$ ls /ram/my livecd-config/ local/ fu$ ls /ram/my/local/ 2nd/ include/ lib/ libexec/ rox/ share/ bin/ info/ libdata/ man/ sbin/ src/ fu$ ls -l /usr/local lrwxr-xr-x 1 root wheel 13 Jul 28 07:43 /usr/local@ -> /ram/my/local
//usr/local 内のコンテンツを新らしいエリアにコピー。そして既存の//usr/localを リンクしちゃう。なお、2nd は、セカンドホームの積り。ここに自分のファイル類を 永久保存する。そうすれば、usbfadmで更新の必要が不要。但し、コピーの忘れで ファイルが紛失してしまうのは自己責任ね。
fu$ du -sh /my/local/src/* 2.7M /my/local/src/bin 33.0M /my/local/src/lib 10.6M /my/local/src/sbin 610M /my/local/src/sys 27.0M /my/local/src/usr.bin 31.5M /my/local/src/usr.sbin
OpenBSDの主要ソースを用意した。gnuとかの巨大なファイル群は今迄、参照した事が なかったので、オミットしてる。カーネルが一番大きいけど、ほとんどがデバドラだ。
/etc/resolv.conf
これでpkgをインストール出来るかと思ったら、あろう事か名前解決に失敗してた。 WiFiの設定ばかりに気を取られていて、すっかり失念してたんだ。
fu$ cat /etc/resolv.conf nameserver xxx.xxx.xxx.xxx # resolvd: iwm0 lookup bind file family inet6 inet4 nameserver 8.8.8.8
inet6優先、ついでにサーバーも追加しといた。ちゃんと手順通りにやれば、トラブルを かかえる事は無いんだけどね。
pkg install
いよいよインストール。まずは、日本語環境のインストール。続いて、個人的に 必要と思う、 emacs w3m firefox gdb mlterm git tree を入れた。firefoxは最新の141版が やってきた。
メンテナさん、偉い。月に一度は、更新してあげましょう。
副作用
良い事が有れば悪い事が有る。保存をするには、usbfadm -r が必要なんだけど、 それには、保存エリアがumountされてる必要が有る。
fu$ df -h Filesystem Size Used Avail Capacity Mounted on /dev/rd0a 3.7M 1.7M 2.0M 45% / mfs:15458 5.7G 1.2G 4.3G 22% /ram /dev/sd1d 5.3G 3.5G 1.8G 66% /ram/my fu$ doas umount /ram/my umount: /ram/my: Device busy
使われてるから、そんな事は出来ませんとな。一体誰が使ってるの? そんな場合の犯人探しコマンドを発動。
fu$ fstat -f /ram/my USER CMD PID FD MOUNT INUM MODE R/W SZ|DV sakae icewm 20090 text /ram/my 1919708 -rwxr-xr-x r 1665472 sakae ROX-Filer 27070 text /ram/my 1800862 -rwxr-xr-x r 634016 sakae fcitx5 1214 text /ram/my 1919824 -rwxr-xr-x r 547880 sakae dbus-daemon 68398 text /ram/my 1919377 -rwxr-xr-x r 299544 sakae dbus-daemon 68398 5 /ram/my 2383449 drwxr-xr-x re 512 sakae dbus-daemon 68398 6 /ram/my 2383448 drwxr-xr-x re 512 sakae dbus-launch 75898 text /ram/my 1919378 -rwxr-xr-x r 34080
いずれも、pkg由来だ。これらを終了すれば、何とかなる。一番簡単なのは、Xを止めて
CUIに移行し、そこで実行する。或いは、一時的にtmuxでも起動して、その状態で
セーブしちゃう。
これだと、次回もtwmが起動しちゃうんで、後で、セーブエリアを直接編集しちゃうって
言う荒技が必要。軽微な変更なら、これが楽だ。
なお、 pkg_add
した場合、/var/db/pkg も更新されるから、セーブは必須だ。
調整
折角日本語環境とicewmを用意したんだけど、普段はそこまで利用する事は無さそう。 そこで、下記の様に、.xsessionの所で、fvwmを強制起動させた。この行をコメントに すれば、ちゃんとした日本語環境になる。
#!/bin/sh . $HOME/.profile setxkbmap -option ctrl:nocaps & for dir in $(ls -1d /usr/local/share/fonts/*/fonts.{dir,scale} 2>/dev/null | sed -e 's/[^/]*$//' | uniq); do xset fp+ $dir done xset fp rehash # set language locale export LANG=ja_JP.UTF-8 mlterm -g 80x36 & # for utf-8 terminal fvwm ########## below for fcitx and icewm
with sd0 (Lubuntu)
ちょっとしたデータをLubuntuとやりとりしたい。そこで、Lubuntuのブートエリアが dosになってる事を利用しちゃえ。
doas mount_msdos /dev/sd0i /mnt
この為に、/mnt ってマウントポイントを空けておいたのさ。
fu$ tree /mnt /mnt |-- EFI | |-- BOOT | | |-- BOOTX64.EFI | | |-- fbx64.efi | | `-- mmx64.efi | `-- ubuntu | |-- BOOTX64.CSV | |-- grub.cfg | |-- grubx64.efi | |-- mmx64.efi | `-- shimx64.efi `-- zCOMM |-- MEMO `-- z.org
zCOMMってのが交換用の箱ね。
Lubuntu側からは、
sakae@lu:hes2025$ sudo cp /boot/efi/zCOMM/z.org .
/boot/efiは常にマウントされてるんで、利用は簡単さ。
autologin
個人使用なんで、勝手にログインして欲しいって、勝手な願いを実現する。 それには、下記1行を追加するだけだ。
fu# cat /etc/X11/xenodm/xenodm-config DisplayManager._0.autoLogin: sakae :
これで完成かな。bootのプロンプトが出てから、Desktopが表示されるまでを、計時 してみる。ストップウォッチなんて無いんで、キッチンタイマーを使う。 カップヌードル時間の3分を設定して、そこから逆算すればいいな。 最近のカップヌードルは1分バージョンも有るのかしら?
ベンチマークして、時間短縮に挑戦するのも楽しいかも。 余計な事はするなって、厳しい目で見ればいいんだな。
fu$ cat /etc/rc.conf.local xenodm_flags= smtpd_flags="NO" ntpd_flags="NO" pflogd_flags="NO" sndiod_flags="NO" library_aslr="NO"
こんな設定をして、いらんプロセスが発動しない様にした。
fu$ pwd /my/livecd-config/7.7/amd64/fudat fu$ doas du -sh * 512B altroot 6.8M bin 13.0K dev 43.3M etc 38.7M home 512B mnt 512B my 98.0K root 15.8M sbin 0B sys 512B tmp 1.0G usr 11.7M var fu$ doas du -sh usr/* 314M usr/X11R6 282M usr/bin 2.5M usr/fuguita 1.9M usr/games 51.0M usr/include 236M usr/lib 53.7M usr/libdata 5.4M usr/libexec 0B usr/local 615K usr/mdec 18.2M usr/sbin 92.1M usr/share
それから、どれぐらいの容量が転送されてくかも確認。usr/localがリンクになってる ので、全く転送されない。これが肝なんだな。
で、肝心の起動時間だが、経過時間で言うと、boot> から、mode 3 で、復帰が 開始されるまでが約55秒ぐらい。転送が終了するまでが2分。再起動してGUIの起動 が完了するのが、2分18秒であった。これはもう純粋にマシンの性能に左右 されちゃうから我慢するしかない。
使用感
一応の完成を見たので、使ってみる。OpenBSDはLubuntu内のVMWareやらkvmと言った 仮想マシンで既に利用中であるが、何と言ってもリアル・ハードで稼動するマシンが 欲しかったのさ。
ガンガンとコンパイルすると、仮想DISKが肥大してく。それがイヤ。河豚板なら all ramな環境でコンパイルできる。shutdownしちゃえば、それらは無かった事に できる。気楽なものである。
試しに、 vlangをgitしてきてコンパイル 。pkgにもなってるんで、どうって事は ないんだけど、git版もある時期からi386ではコンパイル不可となってしまってた。 そこで、amd64はどうよ。makeはgmakeが必要? 幸いな事にBSDmakeでも大丈夫 だった。後でgmakeも登録しておこう。
まあ、無事に動いたので、大手を振って、仮想マシンにも導入できるな。 こんな感じて使います。大人の遊び場だな。
init.elにこいつを設定しておかないと、emacsからgdb出来なかった。
;; debug (setq gdb-non-stop-setting nil)
usb
USBをやれって神の声が聞こえてきたので、試してみた。
/usr/sbinに鎮座してる管理者用なのか。ドライバー名まで表示するってのは、もう ここ見ろワンワンですよ。それから、-vv なんてやると、更に詳しくなるな。
fu$ usbdevs -v Controller /dev/usb0: addr 01: 8086:0000 Intel, xHCI root hub super speed, self powered, config 1, rev 1.00 driver: uhub0 addr 02: 1bcf:0005 Sunplus, USB Optical Mouse low speed, power 98 mA, config 1, rev 0.14 driver: uhidev0 addr 03: 0930:6544 TOSHIBA, TransMemory high speed, power 200 mA, config 1, rev 1.00, iSerial 50465D4C9881C1A0C002431A driver: umass0 addr 04: 8087:0a2a Intel, Bluetooth full speed, self powered, config 1, rev 0.01 driver: ugen0 addr 05: 04f2:b541 Chicony Electronics Co.,Ltd., Integrated Camera high speed, power 500 mA, config 1, rev 0.09, iSerial 0001 driver: uvideo0
カメラも青歯もUSBなのか。何でもシリアルだな。power 500 mA なんて表示が 出てきてるけど、これってデバイスが自己申告してるんだよね。
折角なので、そろりそろりとgdbできる様にコンパイルして、動作をリアルに 追ってみるかな。
README
もじモジ探偵団 なんて本を読んだ。 文字にまつわるあれこれを取り上げた本。
ホチキスで有名な文具メーカーが開発した、ワードライターと言う製品が 紹介されてた。 産廃業界では、7枚複写の伝票を起こす必要が有るらしい。1枚ぐらいなら 強い筆圧で書けば何とかなるけど、それが数十枚ともなれば、拷問だ。 と言う事で、開発された。宅配の宛名書きにも重宝される。
ストローク体と言う独自な筆順で書くためのフォントを自社開発したそうだ。 筆運びに無駄が出ない筆順ね。X-Yプロッターだな。
次は、卵やらペットボトルに印刷される、賞味期限やらの文字。インクジェット プリンターの一種。印字される標的は、毎分100Mぐらいのスピードでベルトコンベアー を流れてくる。それに向って、ドッドを打つ。インクは超速乾性を求められるので、 印字をしてない時でも、無駄なドットを打ち、それを電界で強力に曲げて回収。 再利用してるとか。 ドットは、5から32までのフォントを自社で用意してるそうだ。ユーザーからの 外字(絵文字)も可能で、それの作成は、新人の仕事だそうだ。今度、しげしげと 眺めてみるかな。
もう一発、今度は、ドンキのポップ広告。各店舗に、ポップ屋さんと呼ばれる、 ポップ書きを専任とする職人さんが居るそうだ。一応店舗間の差が余り出ない様に マニュアルが存在したり教育が実施されるそうだけど、個人の裁量に任されるのが 多いらしい。
個人と言えば、関越道の新潟県、越後川口SAの行事カレンダーが超有名だそうだ。 案内係りの女性が一人で作成されてるそう。一度、見てみたいものだ。
もう一冊、 考える機械たち
ノルゥーのAI研究者の翻訳本。本国ではベストセラー本だそうだ。 一般向けなんでスイスイ読める。
面白いと思ったのは、どうしてそういう選択をしたって言う問。いわゆる 説明責任のありAI。その原理が軽く紹介されてた。なるほどねぇ。 それから、ピカソ風な画像を作って下さいの原理。そこから発展して、著作権との 兼ね合いに言及してる。広くAIを知るには、うってつけ。
日本のAIの一人者である松尾先生も、わくわくする一冊であると推薦されてた。