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の一人者である松尾先生も、わくわくする一冊であると推薦されてた。


This year's Index

Home