OpenBSDユーザーコーナー Part11at UNIX
OpenBSDユーザーコーナー Part11 - 暇つぶし2ch12:名無しさん@お腹いっぱい。
25/10/29 11:42:21.31 .net
手順は定石どおり
1. USBにイメージ書き込み
2. モード0で起動し初期設定
3. rootでログイン、doas.confと普通のユーザ作る
4. 作ったユーザでログイン
5. usbfadmでUSBの保存領域を拡張して、ベース環境を保存
6. dtjsetupでデスクトップ・日本語環境・定番アプリを
リストから選択してインストール&設定
7. その他使いたい奴をpkg_add
8. 使いながら細かい手直し
9. usbfadmで運用環境として保存
こんな感じ。

13:名無しさん@お腹いっぱい。
25/10/29 11:46:55.69 .net
入れたのは、audacious, chromium, emacs, evince(PDFビューワ), fcitx-anthy,
firefox, icewm, libreoffice, mlterm, obsdfreqd, pavucontrol(音量調整),
rox-filer, sshfs-fuse, viewnior(画像ビューワ)
こんなところ。あとフォント諸々
SSHFSでリモートファイルをマウントして、午前中のお仕事しました。

14:名無しさん@お腹いっぱい。
25/10/29 20:29:26.45 .net
patch002.003,004対応
xserver, unbound, libssl ... 常連さんですねw

以前書いたように河豚板ではsyspatchとか使えないのでソースレベルでの対応に:
- 該当部分をcvs update
- errataページの説明どおりにコンパイル、インストール
- インストールされたファイルをtar ballにして
河豚板ビルドシステムの install_patches ディレクトリにコピー

しておくと、ビルド時にこのtar ballをOSのファイルツリーに上書きする

カーネルのerrata場合は、/usr/src/sys以下をcvs updateして
河豚板をビルドし直せばOK

15:名無しさん@お腹いっぱい。
25/10/29 20:47:12.65 .net
で、今回ビルドに使ったソースはpatch-003, -004の
修正がすでに入ってるぽいのに気がついた。

が、めんどくさいので、対応作業ひととおり全部やる。

16:名無しさん@お腹いっぱい。
25/10/29 23:34:38.63 .net
実は一連の作業と併行して、i386とamd64の新しいビルド環境を河豚板7.7のvmm/vmd上で動く仮想ホストとして
構築していた。前スレで
「リリース作業と併行して最初からOpenBSDフルビルドやっといたほうがいいかも」
って言ってたやつ。Errata対応はこの環境でやった

tmuxでi386とamd64の作業画面を並べて、tmuxのset-window-option synchronize-panes onで両方一緒に操作。
こりゃ捗るわ

ただ、同一タイミングででかいファイルの操作とかやると、ストレージのI/O性能が如実に現れるね。特にHDD

i386とamd64のテスト版ミラーに上げました

17:名無しさん@お腹いっぱい。
25/10/30 00:20:09.11 .net
重い腰上げて借りてたRPi400出してきたけどこれがまた無理ゲー

- 電源入れても画像が出ない → 付属のHDMImini〜HDMIケーブルがNGでした → 手持ちので代替

- install78.imgがinsufficient file formatとか言ってカーネルロードできない → miniroot78.imgでOK

- 有線LANが繋がらない、WiFiはfwがないので使えず
→ fwダウンロードしてきてマイクロSDに書こうとしたらパーティション小さすぎて入らず
→ fdisk,disklabel,growfsして広げて入れてみたけど読まない(rdroot(Linuxでいうinitrd)に入れないと意味ないと後で気づく)
→ 有線はオートネゴに失敗してた。手動でifconfig bse0 media 100baseTXとかやって解決(でもなんか遅い)

まぁなんとかビルドが動くとこまでごきつけました
還暦過ぎの年寄りには酷じゃわい

18:名無しさん@お腹いっぱい。
25/10/30 09:35:45.02 .net
i386/amd64は一段落したので、arm64。

RPi3B/400どっちもちゃんと動いてる
見たところ、RPi3Bは-j1で1GB足りず、RPi400は-j2で試行してるけど、-j3位までいけそう
マルチコアが活かされてないなぁ。もったいない

- LLVMのビルドだけ、-j1でやるようにMakefile改造

- スワップデバイスがHDDなので、より高速なものにするとか
(メモリがいっぱいある他ホストでMFS上にスワップファイル作ってNFSとかで共有
...とかの方がシークがなくて意外と高速かも)

あと、せっかく2台あるから、distccでトータルの処理時間減らせるかな
packages検索したら見つかったから、これもアリかも

19:名無しさん@お腹いっぱい。
25/10/30 11:58:02.03 .net
armのビルド完了待ち

amd64の試用環境(今これ書いてるやつ)も、問題なく動いてて
テスト環境なのを忘れそう

20:名無しさん@お腹いっぱい。
25/10/30 12:07:37.10 .net
なのでちょっと雑談

河豚板はOpenBSDのLiveDVD/LiveUSBなのはそのとおりなのですが、
その本質は、OS本体とユーザ環境が分離されてるところにあります

例えばこのデモ
youtu.be/r9brzQClCCY?si=lshumFAwykdNGIP9

4本のUSBメモリには、それぞれ
- カーネルとブートローダ
- OSのファイルツリー
- ユーザ環境
- スワップパーティション
が入ってますが、起動時に自動検出、あるいはユーザの指定により
動的に読み込んで動作します。

このうち、前の2つは、LiveDVDを使うことも可能です

21:名無しさん@お腹いっぱい。
25/10/30 20:54:34.31 .net
夕食いただいたら、まったりと作業再開

確認作業、こんどはメディアのリマスタリング

>>7 で書いたように、LiveUSBのリマスタリング自体はすでにやってるので、

- リマスタリングしたLiveUSBからさらにリマスタリングして、それがちゃんと
起動するか

- LiveDVDのリマスタリングで作成したISOイメージもちゃんと起動するか
(これはusbfadmとは別の、remaster_dvdというツールを使用)

テストはどちらもvmm/vmd上で実施

OK

22:名無しさん@お腹いっぱい。
25/10/30 21:06:11.00 .net
USBメモリ管理ツールのusbfadm
実はOpenBSD 7.7→7.8になった時点でエンバグしてた(修正済)

www.openbsd.org/78.htmlにfdiskの表示形式が変わったみたいなことが
書いてあってやな予感したんだけど、案の定。

ユーザ環境保存用のパーティションを拡張する機能で、
パーティションがGPTの場合、ちゃんと動かなくなってた

原因はfdisk -vの出力、GPTのUsable LBA行のスペースがひとつ、TABになってた
最もやらしいパターン

インタラクディブなコマンドをスクリプト中で無理やり使うとおきがち
過去にも何度か経験した
(OpenBSDのインストールスクリプトでも同じようなことはやってるんだけど)

23:名無しさん@お腹いっぱい。
25/10/30 22:51:44.42 .net
さて、OpenBSD/arm64ビルド中のふたりは、

...どっちもまだLLVM(笑)。一日経過したのに。

次のアクションは、これの終わり待ちですな

ちょっと宣伝
今回の件を含めOpenBSDの動作のモニタリングには、
拙作のSAG (System Activity Grapher)
fuguita.org/?SAG
というのを使ってます。

簡単なものですが
OpenBSDサーバのモニタとチューニングのお供にどうぞ


おやすみなさい

24:名無しさん@お腹いっぱい。
25/10/31 08:29:31.40 .net
おはようございます。

Patch-005 ... OpenSMTPDかー

25:名無しさん@お腹いっぱい。
25/10/31 12:08:06.22 .net
昨日のpatch-002,003,004と同じ手順で適用、河豚板のリビルド実施
現在ミラー中

問題はarm64
OpenBSDのビルド完了まで多分まだ1日~2日かかりそうなので、
その間を利用して、Errata部分のソースがどうなってるかチェックするかー
→直ってなかったらcvs updateしてバイナリパッチtarball作る

26:名無しさん@お腹いっぱい。
25/10/31 22:34:13.81 .net
arm64
patch-002 ... これからビルドされる中でcvs update→コンパイルされるので放っとく
patch-003,004 ... 修正済みのソースでビルドされた後だった
patch-005 ... 手付かず
だったので、patch-005のみ手動でcvs update→make→バイナリパッチ用tarball作った

005のtarballは、河豚板作るときに忘れずに適用しないと

27:名無しさん@お腹いっぱい。
25/10/31 22:58:12.53 .net
実況してきた中で質問ありますか?

28:名無しさん@お腹いっぱい。
25/11/01 01:43:46.41 .net
ジェネリックカーネルのコンパイル中
インストールカーネル、xenocara、portsと進んでおわり

朝起きたらどこまで進んでるかな

29:名無しさん@お腹いっぱい。
25/11/01 09:38:54.70 .net
朝、tmux attachしてみたら、ちょうどOpenBSD/arm64のビルドが終わるところだった(RPi400の方ね)

これから河豚板のビルド
ちょっと詳しく書いてみる

30:名無しさん@お腹いっぱい。
25/11/01 09:50:47.07 .net
手順は概ねgithub.com/ykaw/FuguItaのREADME.txtどおりなんだけど、
リリース初回なので、もう少しやることがある

RPi400での河豚板ビルドは初めてなので、リポジトリからcheckout

- make initでディレクトリ作成
- lib/fioptでrsync, pv, rlwrap作成
(portsを汚さないように、独自ビルド&インストールになってる)
- install-setsに*78.tgz, fiopt.tgz(今作ったやつ)入れる

make setup && make livedvd

31:名無しさん@お腹いっぱい。
25/11/01 10:30:42.86 .net
sysmedia/cdbrターゲットをmake中にエラー発生

arm64はcdbr (CD boot record)を作っておかないといけないの忘れてた
i386/amd64は/usr/mdecからコピーすればいいだけだが

そのためのセットアップスクリプト FIBUILD/lib/makebootarc_arm64.sh を走らせて
再挑戦

32:名無しさん@お腹いっぱい。
25/11/01 13:54:56.77 .net
一応ISOイメージできた

実機ではISOイメージから起動できないので、仮想環境が要る
めんどくさいので、pkg_add qemuで。
遅いけど、運用環境として使うわけじゃないから、これでいいか

エラーで動かん
「qemu-system-aarch64: cannot set up guest memory 'mach-virt.ram'」

しばし調査
.... って、またlogin.confかい(脱力)

33:名無しさん@お腹いっぱい。
25/11/01 14:10:38.75 .net
./qemu_aarch64.sh FuguIta-7.8-arm64-202511011.iso &

EFIファームウェア(QEMU_EFI.fd)読み込んだり、シリアルコンソールを
telnetに設定したりとか色々やってqemu起動するラッパースクリプト

telnet localhost 10023
Trying ::1...
Connected to localhost.
Escape character is '^]'.
.

ん、「.」がでただけでだんまり

ブート廻り失敗してるっぽい

34:名無しさん@お腹いっぱい。
25/11/01 14:24:08.79 .net
>>31 のmakebootarc_arm64.sh をチェック

これはESP (EFI System Partition)の中身をリマスタリングのために
tarballにするスクリプトなんだけど、
これは、gen_makebootarc_arm64.shというスクリプトが生成する

gen_makebootarc_arm64.shはpkg_addで入れたラズパイファームウェアとu-boot、
それと実際にインストールされているESP (EFI System Partition)の中身を
付き合わせてmakebootarc_arm64.shを生成する

改めてgen_makebootarc_arm64.sh走らせてみたら、7.7から使い回してきた
makebootarc_arm64.shとかなり違っていた(RPi5用のファーム/設定が追加されてたとか)

35:名無しさん@お腹いっぱい。
25/11/01 14:31:13.79 .net
気を取り直して make setup && make livedvd
>> と同じエラー「vnd3d: Device Busy」

あ、

36:名無しさん@お腹いっぱい。
25/11/01 14:35:07.85 .net
OpenBSDをフルビルドする時は、生成物の置き場所として別にパーティションが必要
(特別なマウントオプションを指定するため)

今回、パーティション切り直すのが面倒だったので6GBくらいのファイル作って
それをvnconfig && mountしてた

これが河豚板のMakefileの中のvnd3使ってる処理とコンフリクト

とりあえず、umount && vnconfig -u vnd3で再試行

37:名無しさん@お腹いっぱい。
25/11/01 18:00:44.50 .net
とりあえず生成したISOイメージでQEMUから起動成功

ただ、それでリマスタリングしたLiveUSBイメージが正常に起動しない
起動時にlndirでシャドウディレクトリを作るフェーズで、iノード番号がおかしいとか言われまくる

38:名無しさん@お腹いっぱい。
25/11/01 21:31:32.53 .net
判明

これ↓
fuguita.org/?%E6%B2%B3%E8%B1%9A%E6%9D%BF%E3%82%AC%E3%82%A4%E3%83%89/4-%E9%96%8B%E7%99%BA%E7%B7%A8#tfa3add4
やるの忘れてた。
ISOイメージが動いたのがうれしすぎてw

test# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/rd0a 3.7M 1.7M 2.0M 46% /
/dev/sd0a 1.2G 1.1G 9.4M 100% /sysmedia ←これが小さすぎてあふれてた
/dev/vnd5a 1.1G 1.1G 4.5M 100% /fuguita
mfs:30822 736M 30.5M 668M 5% /ram

fuguita_sys_mbに適正値を設定してOK

あとは実機での確認。
arm64の場合、QEMUではQEMU_EFI.fd、実機(ラズパイ)ではRPi FW+U-Bootと起動のしくみが
全然ちがうので

39:名無しさん@お腹いっぱい。
25/11/02 00:07:19.95 .net
実機確認、RPi400でXfceが動作するところまでOK

RPi3Bは未確認(まだLLVMコンパイルしてるのでw)、多分大丈夫でしょう

あとは細かい確認・手直しをやって、OKなら河豚板 7.8の正式リリースですかね

リリースごとに毎回違うところでハマるんですが、今回ははarm64に予想以上にてこずりました。
河豚板では普通やらないようなコマンドの使い方をしたりもするので、
レアなバグを踏んでしまい、後本家に報告して直してもらったことも何回かありました


最後にちょっとだけ宣伝
>>12 で書いたような、河豚板のデスクトップ環境の構築法をQiitaで解説しています
qiita.com/ykaw/items/ff6e3490cf79c3351f92
現在、全四回の二回まで公開済み。よろしければどうぞ

長い連投になりましたが、読んでいただきありがとうございました。

40:名無しさん@お腹いっぱい。
25/11/02 18:46:49.41 .net
読んでません
読みません
お疲れさまでした

41:名無しさん@お腹いっぱい。
25/11/10 00:12:45.50 .net
ポスターってもう買えないの?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch