8月 212022
 

FreeBSD で Xorg を利用していた場合、USB のキーボード、マウスを一回抜き差しすると、設定がぜぇーんぶ飛んでしまいます。

例えば僕は USB 切り替え機器で FreeBSD 、macOS 、WindowsOS の間を一個のキーボードとマウスを利用しています。
FreeBSD から macOS に USB 切替器で切り替えると、 FreeBSD から見ると USB のキーボードとマウスは一旦切り離された状態 (devd 的に言うと detatch された状態) になります。
そして macOS から FreeBSD に戻るときに USB 切替器で切り替えると今度は attach された状態になります。

アタッチされたとき、最近の Xorg ではキーボード、マウスの設定が全部飛んでしまうんですな。以前は設定情報がとんでしまうなんてことは無かった。しかし、今は飛んでしまう。 Xorg のデバイス検知の仕掛けが libinput とか xinput 、 evdev 辺りになった影響なのかもしれないですな。

 
では、USB キーボード・マウスの、どんな設定が detatch -> attach で飛んでしまうのか?

キーボードの場合、 2 個前のエントリで書いた ${HOME}/.xmodmaprc の内容が消えてしまう。毎回 USB キーボードを attach する毎に xmodmap コマンドを打つ必要がある・・。orz

打つコマンドとしては以下のような感じ。

$ xmodmap ~/.xmodmaprc

 

マウスの場合、俗に『ナチュラルスクロール』などと言っていますが、回転方向を macOS みたいにする設定ですね。
KDE の場合「KDE システム設定」->「入力デバイス」->「マウス」から『スクロール方向を反転』のチェックをはずして [適用] を押したあと、チェックをつけて再度 [適用] を押すともとに戻ります。

が、GUIベースでこんなことしないで、CLI 的コマンドが何個か用意されています。

# libinput list-devices
<略>
Device:           MOSART Semi. 2.4G Keyboard Mouse, class 0/0, rev 1.10/1.03, addr 15
Kernel:           /dev/input/event7
Group:            8
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a
<略>
$
$ xinput list
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                    id=4    [slave  pointer  (2)]
⎜   ↳ System mouse                                  id=6    [slave  pointer  (2)]
⎜   ↳ Compx 2.4G Wireless Receiver                  id=11   [slave  pointer  (2)]
⎜   ↳ MOSART Semi. 2.4G Keyboard Mouse              id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                     id=5    [slave  keyboard (3)]
    ↳ System keyboard multiplexer                     id=7    [slave  keyboard (3)]
    ↳ Power Button                                    id=8    [slave  keyboard (3)]
    ↳ AT keyboard                                     id=9    [slave  keyboard (3)]
    ↳ Compx 2.4G Wireless Receiver                    id=10   [slave  keyboard (3)]
    ↳ MOSART Semi. 2.4G Keyboard Mouse                id=12   [slave  keyboard (3)]

 
今回やりたいことはマウスの逆回転をコマンドで設定したいということで、表示された内容を確認するには pointer をチェックします。すると “MOSART Semi. 2.4G Keyboard Mouse” と、いうマウスデバイスになります。

このマウスの回転方向を逆転するには以下のコマンドを利用します。

$ xinput list-props "pointer:MOSART Semi. 2.4G Keyboard Mouse"
<略>
$ xinput set-int-prop "pointer:MOSART Semi. 2.4G Keyboard Mouse" "libinput Natural Scrolling Enabled" 8 1

 
一行目のコマンドで対象となるマウスの内容を一旦表示してみました。二行目のコマンドでマウスの回転方向を逆にします。オプションの “libinput Natural Scrolling Enabled” 8 1 がそれになります。
前半部分はマウスのデバイス名になるので、マウスが変わるとデバイス名が変わります。

 
と、いうことで、ここまでが前ふり部分のお話です。

  • キーボードのキーマップを変えたいときはキーボードの attach 後に毎回 xmodmap コマンドを投入
  • マウスのホイールを逆回転にしたいときはマウスの attach 後に毎回 xinput コマンドを投入

 
detatch -> attach 後に毎回上記コマンドを打つとなると、それなりにイヤになりますね。
USB 機器の attach を検知して自動的にコマンドを実行してくれないものか・・。

そーいうときのために devd という機能がありましたっ!! 早速 /etc/devd/keybord.conf という設定ファイルを書いて devd を restart してみます。

notify 100 {
        match "system"          "USB";
        match "subsystem"       "DEVICE";
        match "type"            "ATTACH";
        match "vendor"          "0x25a7";
        match "product"         "0xfa70";
        action "/home/takachan/bin/KeybordOn.sh";
};

 
USB デバイスの vendor と product を usbconfig -d ugen0.5 show_ifdrv コマンドで拾ってきて設定します。 USB デバイスが attach されたときに action に記載されたスクリプトが実行されます。

なんか、無事に USB デバイスの検知はしているようですが、スクリプトの動いている感が全くありません。
なんでか、悩んだのですが、そもそも devd は root 権限で動作しております。それが一般ユーザの takachan のために Xorg のキーボードの設定やマウスの設定なんてしてくれるはずが無いのです。 $DISPLAY とかどうなっているのだ?! 的発想です。
まぁ、当たり前と言えば当たり前ですが・・。

ちなみに devd には /var/run/devd.seqpacket.pipe のいうのがあって、この pipe を一般ユーザ権限で動作するプログラムが受けると、一般ユーザ権限でイベントが受けられらしいですが、あまりドキュメントが無い・・。 devd-rs というのがヒントになります。

 
一般ユーザがもっと気軽に USB デバイスのイベントを拾えるようなものはないのか? 探してみると ports にあるようです。x11/inputplug になります。 コンパイル時には rust がいるかな? (大変だぁ・・)

inputplug は、例えば ~/.xsession に記載しておくことにより Xorg へのログイン時に一般ユーザ権限のデーモンとして起動します。起動後は xinput のイベントを拾うことができるようになります。

$ echo 'echo "$@"' > xishow; chmod 755 xishow
$ inputplug -d -c ./xishow

 
とりあえず xinput のイベントを拾って表示する xishow スクリプトを用意して inputplug を起動します。 -d はデーモンモードにならないオプションで -c はスクリプトを指定します。 -d を指定しないとバックグラウンドで動作してしまって、仮に情報が拾えていても tty に表示してくれないので、最初の試験中はほぼほぼつけていたほうが良いです。

上記の状態で USB 機器を detatch -> attach してイベントが拾えていれば OK。 あとはスクリプトの部分を作成していくことになります。
それにしてもこれで一般ユーザ権限でようやっと USB 機器のイベントが拾えるようになったぁ。ふぅ・・。

 
と、いうことで、僕が作成したスクリプトはこんな感じ。大急ぎの perl であまり美しくないですけどねぇ・・f(^^;;。

#!/usr/local/bin/perl

use strict;

my $pointer = "MOSART Semi. 2.4G Keyboard Mouse";
#my $pointer = "Telink Wireless Receiver";

my $cmd1 = "/usr/local/bin/xmodmap ${HOME}/.xmodmaprc";
my $cmd2 = "/usr/local/bin/xinput set-int-prop ";
$cmd2   .= "\"pointer:${pointer}\" ";
$cmd2   .= "\"libinput Natural Scrolling Enabled\" 8 1";
my $cmd3 = "loggder -t USB-keybord and mouse Ready.";   


my @opt = ();

for (my $c = 0;$c < 11; $c++) {
    push(@opt,shift);
}

my $f1 = 0;
my $f2 = 0;
my $f3 = 0;

foreach my $data (@opt) {
    $f1++ if ($data eq "XIDeviceEnabled");
    $f2++ if ($data eq "XISlaveKeyboard");
    $f3++ if ($data eq $pointer);
#    print "DEBUG: $f1 / $f2 / $f3 : $data" . "\n";
}

if ($f1 && $f2 && $f3) {

# デバイスを認識する前にコマンドを実行してまうので 5 秒ほどスリープ
    sleep 5;
    print "CMD1: " . $cmd1 . "\n";
    print "CMD2: " . $cmd2 . "\n";
    print "CMD3: " . $cmd3 . "\n";
    system("$cmd1");
    system("$cmd2");
    system("$cmd3");
}

exit 1;

 
これで、USB 機器接続後に xinput のイベントを拾ったあと、xmodmap と xinput set-int-prop のコマンドを実行してくれるようになりました。
やりたいことがようやっとできました。そこはかとなく長い道のりだったのであります。

が、今の時代、 FreeBSD でここまでがっつりと Xorg 使っている人、居るんかいな?
このエントリが無駄にならないことを切に願うのであります・・。

8月 132022
 

いやぁ。自宅のサーバを更新しました。富士通の PRIMERGY MX130 S2を使い続けて約 10 年。そろそろ潮時だろうと・・。

小型の PC を探していたのだけど、中々良いのがない。自宅のサーバとはいえ、VMwareESXi7.0 を起動させるので RealTek の NIC では無理。PCI-e スロットがあって、 2Port NIC なんかが内蔵できるようなやつが必要。

と、いうとこで、最近は PC 高いし、納品遅いのですが、以前購入したデスクトップ機と同様の HP ProDesk 405 G6 SFF/CT にしました。ただし時代は変わっているので今回購入したモデルは G8 になります。

CPU は AMD Ryzen7 PRO 5750G で 8Core/16 スレッド。サーバにはバッチリ。 HP から購入したときの構成は 4GB のメモリと 500GB の HDD でだいたい 62,000yen くらいでした。「価格.com 限定モデル」にすると相場より 10,000yen くらい安く買えるようです。

ここに別途 64GB のメモリっ!! 大体 25,000yen くらい。
3TB の HDD と 1TB SSD は今年の頭くらいに購入したものがあったのでそれを使い回しします。
PCI-e x2 接続の 2Port NIC は家に腐るほどあるので、Broadcom と Intel どちらにしようか悩んだけど、Intel の em0 にしました。

と、いうことで 8Core/16 スレッドで、メモリ 64GB 、ネットワーク 2NIC と、それはもう VMware ESXi7.0 を動かすのにはバッチリな環境が整ったのであります。

 
今回メモリは Crucial DDR4-3200 288pin UDIMM 64GB(32GB×2枚) CT2K32G4DFD832A をチョイスしました。『 PayPay モールで初めてお買い物』で 1,500yen 引き。その他 PayPay ポイントが 5,400 ポイントくらい付いたので、実質 22,000yen くらいでの購入でした。
HP ProDesk 405 G8 SFF/CT とも相性は良いみたいで、特に問題もなく 64GB を認識してくれました。うひひ;-)。

 
さてと。まずは default で入っている WindowsOS のアクティベーションを行います。が・・。 orz

画面がまともに映らないではないか・・。 orz。

HP の PC は法人向け PC を購入した場合 HP wolf security というのが default でインストールされているそうです。個人向けの PC の場合はインストールされてないです。今回は HP で購入したとき「TAKANO Network Service.」として購入したので法人扱いになったようです。従業員 10 名未満f(^^;;。

 
で、これが悪さしているのか解らないのですが、画面の下半分に起動時の画面がそのまま残ってしまい、OS インストール時は画面が上半分しか表示されない状態です・・。orz

しかし、この状態で本当によく Windows11 のアクティベーションができたモノだ・・。原因がどこにあるのか、さっぱり解らない。UEFI(BIOS) 画面でセキュリティに関する項目を根こそぎ OFF にしたけどだめ。

純正メモリ 4GB を 64GB にしたからかぁ?などと思い、もとに戻したりもしたけど、ダメ。
PCI-e x16 スロットに nVidia のグラフィックスカードを接続してそっちから画面だそうとしたら真っ白に表示されるし・・。orz

が、原因が特定できました。

PCI-E x16 のスロットに何か刺していると画面が半分に表示されるようです。それも WindowsOS のときのみ。
VMwareESXi7.0 のインストーラは ESXi の画面では半分表示にならない・・。ひどい話だぁ・・。

と、いうことで、 500GB の未使用となる WindowsOS がインストールされている HDD は再利用されることもなく、そのままお蔵入りとなるのでありました。あ。Windows のライセンスは引っこ抜きましたけどねぇ。 ESXi 上で動作させるか;-)。

 
それでは本命の VMwareESXi7.0 をインストールですが、こちらは PCI-e スロットに接続した 2Port NIC も問題なく、メモリ 64GB もサクっと認識して無事に起動して動作するのでありました。

こちらはインストールしている最中の新旧サーバの図。 ESXi のインストールが完了したら、ネットワークの設定とか VMware vCenter Converter を利用して OS の引っ越しです。

 
ESXi 上に存在している仮想マシンは全部で 17 台。常時動作しているのは VyOS と TrueNAS 、 WindowsServer2019 を含めて 8 台。ってところでしょうか。
メモリジャブジャブ、FreeBSD ports のコンパイルなどで CPU 負荷かけても大丈夫。そして音も静か。

中々良い感じのリプレイスではないかなぁ。と、思った次第なのでありました。
PCI-e スロットが付いている小型の HP ProDesk 405 G8 SFF/CT 。サーバとしてもちょうど良い感じでした。

 
さてと。前回購入した自宅サーバは約 10 年利用しました。今回購入した自宅サーバは、特に問題もなく壊れないと想定して 10 年持ったとした場合、もしかしたら、これが最後の『自宅サーバ購入』になるのかもしれません・・。 ちなみに自宅サーバ、今回が 9 代目となります;-)。

どうなることやら。

8月 112022
 

以前のエントリで「macOS で Wiondows キーボードを。」というのを書きました。このときは、かな刻印のない HHKB Lite2 の後釜どうしよう。的な記事で、安めの エレコムの TK-FCM103XBK を購入して、Windows・FreeBSD・macOS で利用。って、感じの記事でした。

あれからしばらくして、有線ではない、無線の TK-FDM105TXBK と、いうのも購入しました。エレコムのこれ系のキーボードは都合 3 個購入して色々なシーンで利用しようと思いました。

 
が、しょせんは HHKB Lite2 と一緒でナイロンの弾力でベコベコ打つ。みたいな感じです。『赤軸とか青軸と呼ばれるちょっと高価なキーボード使ってみたいなぁ。』とか思い探してみることにしました。

あんまり高いのは買えないので、まず、そこはかとなく安価な GAMDIAS の HERMES S1R というの購入してみました。

やじるしキーがついていて日本語配列、かな刻印あり。
あ。下のキーボードについてはあとで説明します;-)。

僕に必要な機能は一通り付いていました。キー配列などはエレコムの TK-FCM103XBK と一緒なので問題ありません。
それにしても個人的には初めてのゲーミングキーボード。ゲーミングキーボードって、どうしてキーの根元が丸見えなんでしょうかねぇ?不思議です。僕は PC でゲームをやらないので良くわからないのですが、左側の Windows キーはジャマなんでしょうかねぇ?

キーを押したときに色が光るのはまぁ、よしとします。自分で色々なパターンや明るさを設定できるのも良い感じでしょうか。

 
赤軸なのでキーを押したときの感覚がなかなか良い感じです。そして打刻音もベコベコとした雰囲気が良い感じです。

これをしばらく使い続けていたのでありました。

 
そんな状況の中で『60% キーボード』という言葉を耳にしました。フルサイズのキーボードの 60% 程度の大きさで、サイズ的には HHKB くらいのサイズです。

へー。

とか、思いネットを色々さまよってみました。そしたら、WENRUI メカニカルキーボード 日本語配列 キーボードというのが目に止まりました。

日本語配列、かな刻印あり、有線 USB 接続、無線 USB 接続、Bluetooth での接続もできて、バッテリー搭載。と、いうもういたせりつくせりな感じ。

『無線 USB 接続』というのは FreeBSD では必須です。FreeBSD の Bluetooth はアテになりませんしね。USB 有線よりは無線のほうが良いという雰囲気。

このキーボードが 6,000yen を切る価格で販売されていたので購入してみました。

上が HHKB Lite2 で、下が今回購入した WENRUI メカニカルキーボード 日本語配列 キーボードです。

 
一点気になったのが、物理的な『矢印』キーが付いていない点でしょうか。
Fn キーを押しながら『め』『かな』『変換』『Menu』キーを同時押しすると『矢印』キーとして動作する。と、いう状態です。

物理的な問題としては他に、スペースバーの左側に『無変換』キーがありません。『Alt』キーと一緒になっています。macOSの場合、日本語オフ (裏を返すと英語入力のオンか) する場合 Fn との同時押しが必要かも。

『Esc』 キーは Fn キーを押さない場合は『全角/半角』キーになります。 Fn キーと同時押しで『Esc』キーが機能するとなると Emacs 使いには非常に厳しい・・。

機能的には他に Shift + → + Fn が動作しません。

僕の場合、仮想デスクトップを利用するときに、デスクトップを切り替えるのに Ctrl + 『矢印』キーを利用しているのですが、このキーボードは『矢印』キーがないので Fn を同時押しする必要があります。

KDE5 の konsole とか、タブのついているアプリのタブ切り替えは Shift + 『矢印』キー だったのですが、Shift + → + Fn が動作しないため Shift + ← + Fn を押してグルッと反対方向に一周させる必要があります。

Shift + → はキーが別のに取られているようで、どうしようもない。と、いうのが現状のようです。

 
では実際に色々な OS で正しく動作するように設定を入れてみました。

WindowsOS では『Esc』 キーを Fn との同時押しにしないようにするために Microsoft PowerToys をインストールしてキー設定しました。

VK244 が『Esc』 キーを Fn との同時押しにしないようにするための設定。
Apps/Menuの設定が Shift + → + Fn を有効にする設定。

 
macOS では以前も解説した(上記リンクを参照してください)ことのある Karabiner-Elements で設定しました。『無変換』キーも無いので日本語オン・オフは『変換』キーと『かな』キーに割り当てました。当然 Shift + → + Fn を有効にする設定も追加しました。

application はShift + → + Fn を有効にする設定です。
grrave_accent_and_tilde(`) の設定が『Esc』キーのみで Esc が動作する設定。
スペースバーの右側 2 つのキーを英数字オン・漢字オンに割り当てました。

 
FreeBSD の場合、僕は KDE5 を利用しているので「KDE システム設定」の「キーボード」→[詳細] タブでそれらしいのをチョイスしして『全角/半角』キーと『Esc』キーを入れ替えました。

昔の X の設定は ${HOME}/.xmodmaprc とかに色々書いたりしていましたが、今は、KDE5 を使うのであればそちらの設定に任せてしまったほうが楽ちんですね。

が、上に書いた Shift + → + Fn が機能しない件ですが、こちらは ${HOME}/.xmodmaprc で解決しました。必要ない。って言ったのに、やっぱり書いてみました・・;-P。
Shift + → + Fn は keycode 147 なので、これを Right の keycode 114 に変更します。 (xev で確認できるよー;-)
『Esc』は keycode 9 なので 49 を 9 に変更します。

! shift + -> 
keycode 147 = Right Right Right 

! Zenkaku_Hankaku -> Escape
keycode 49 = Escape Escape Escape

 
と、いうことで必要な設定は OS ごとに準備完了。あとはベコベコうち続け、経験値を積んていくだけです。

このエントリも WENRUI メカニカルキーボード 日本語配列 キーボードで打っています。『矢印』キーは Fn キーと同時押しなので、ちとめんどう。Emacs のカーソル移動ショートカットで回避 (C-n C-p C-f C-b) すると、やじるしキーの出番は少なくなりそうですね。
Windows でも xkeymacs 利用しているし macOS はそもそも emacs キーバインドなので、良い感じです。

 
テレワークで家で仕事する機会が多いので、文字入力環境を考えていたら、なんか、ずいぶんとキーボードが溜まってきたような気がしますf(^^;;。

自分にあったものを色々と見つけてみたいと思います。が、キーボードはさすがにしばらくもー良いかな。

6月 222022
 

僕が SoftBank の iPhone8 を購入したのは 2017/01 のようですね。
すると5年前か・・。ずいぶんと古い話で恐縮です。

 
最近、楽天モバイルが 0yen から撤退する。と、いうことで、それに変わる通信キャリアを探しているのですが、僕の場合、既に povo の契約者だったので、試しに iPhone8 に povo2.0 の SIM を入れてみたところ、あぁ・・。なんということだ。圏外だ・・。

と、いうことで失敗談をちょっと書いてみます。

 
1. SoftBank ショップで iPhone8 を購入
上にも書いた通りですが iPhone8 はアキバヨドバシの SoftBank ショップで購入しました。ポイントが欲しかったので現金ニコニコ一括払いです;-)。
以前使っていたのは iPhone6 で、こちらは SIM ロック解除ができない機種でした。
今回の iPhone8 は購入して 3 日後くらいには SIM ロックを解除して SIM フリーな機種になったので大喜びしていたのでありました。

 
2. Apple のリコールで筐体交換
いつごろだったかなぁ・・。iPhone8 を使いだして 1.5 年くらい経ったときだったか、 iPhone8 にリコールが出て、本体を交換してくれる。と、いうのでアキバの、今はもうないソフマップ ReCollection という Apple 製品のメンテナンスをしてくれるお店に行って本体を交換してもらいました。

いきなり新品になったのでそりゃー嬉しいさっ。ただしこの段階でやることをすっかりと忘れていただわサ・・。orz
やることリストは以下の通り。

  • SoftBank ショップに行って、筐体が変わったことを連絡する。購入時の シリアル番号とか IMEI 番号が SoftBank のデータベースにユーザ情報と紐付いて登録されているのでそれを更新してもらう必要があります。機種が変わったらまず SoftBank ショップへゴー。
  • SIM ロック解除作業

 
この二つをやっておかないとあとで痛い目に遭います。

と、いうことで、

 
3. Y-monile に MNP
SoftBank から Y-mobile に NMP しました。 SoftBank で購入してリコールで交換した iPhone8 はそのまま利用しました。
このとき、2. で交換してもらった iPhone8 は SoftBank の SIM ロックがかかっていました。それを知らずに(すっかり忘れていて) Y-mobile の、俗に言う n101 SIM を入れれましたが特に問題なく利用できました。
SoftBank と Y-mobile では SIM ロックは関係ない。と、いうことだったのですね。

そして、僕も交換してもらった iPhone8 は SoftBank の SIM ロックがかかっていることをすっかりと忘れていつつ Y-mobile を使い続けていたわけです。

 
4. そもそも TOYOTA の純正カーナビが悪いっ!!
ちょっと話は変わりますが、僕はトヨタのカローラフィールダーに乗っているのであります。カーナビは純正品の NSZT-W64T と、いうそこはかとなく古いモノですが、車に付いているんだから仕方ない。

で、TOYOTA の純正カーナビは iOS 13 以降のバージョンだとテザリングの認証時に毎回ログイン ID && Pass を聞いてくる。と、いうバグがあります。

こちらの URL が非常に詳しく書かれています。

https://sr400fi.com/2021/10/16/mg0ul096n472/2/

対応するカーナビの最新のファームウェアをトヨタのウェブサイトからダウンロードして、SD カードから更新すれば iOS 15 でもテザリングの認証を毎回聞かれることはなくなる。とのことです。が、NSZT-W66T の最新ファームウェアはあるようなのですが NSZT-W64T のファームウェアはないみたいで・・。

 
iPhone だとダメだけど、 Android ではそんなことはないみたいなので、テザリング端末を iPhone8 から何台か持っている Android でやってみると確かにうまくいく。

で、パケットが余っている Y-mobile の SIM カードを Android に入れてみたら無事に TOYOTA のカーナビでテザリングが可能になったのであります。ふぅ・・。

と、いうことで、今まで iPhone8 に入っていた Y-mobile の SIM カードは Android 端末に入れました。すると iPhone8 は余ってしまいますなぁ・・。

そして、次へ。

 
5. Y-mobile の SIM カードを抜いた iPhone8 はどうなった?
とりあえず OPPO RenoA から povo2.0 の SIM カードを抜いて iPhone8 に入れました。このときの衝撃と言ったら・・。 orz
ガビーンっ!! 圏外だ・・。

SIM ロック解除するの忘れてた・・。 orz

 
6. SIM ロック解除できないワナ
SIM ロック解除はウェブ上で行うとタダ。お店に持っていくと 3,000yen (+税) が取られます。と、いうことでまずはウェブでトライ。

今契約している Y-mobile の My Y-mobile にアクセスして iPhone8 の IMEI を入力するのですが「こんな番号は知らん。」と、言われます。まぁ、そらそーだわな・・。 Y-mobile で購入した端末ではないので・・。

次に My SoftBank にログインして (アカウント自体は残っていた) 設定変更の画面までたどり着かない。そりゃそーだわな。もう既に解約済みないんだし・・。

 
と、いうことでしょーがないので 3,000yen 払う気になって SoftBank/Y-mobile のショップに行きました。

『この iPhone8 の SIM ロック解除をお願いします。
本体はアキバヨドバシの SoftBank ショップで購入しました。
IMEI 番号はこれです。』

と・・。SoftBank のデータベースには 僕の携帯番号とか、購入した iPhone8 の情報などが残っていたようです。まぁ、今でも Y-mobile を契約しているので残っていてもおかしくはないと思いますが・・。

お店の人が、

『どこかのタイミングで本体を交換していませんか?
今のシリアル番号とか IMEI 番号が購入時のものと違います。』

とのこと・・。あららら orz。

『SoftBank のデータベースの情報を今利用している iPhone8 のシリアル番号とか IMEI 番号の情報に書き換える必要があります。これには一時間ほどかかります。』

あぁ・・。orz

と、いうことで上記 2. のところで書いたことは契約している最中にきっちりとやっておきましょう・・。orz

一時間程度待つのと 3,000yen かかるという二点。そして、もう 5 年前に発売された iPhone8 に今更時間とお金をかけるのか・・。新しい iPhone を購入したほうが良いのではないか・・。と、思い退散したのでありました・・。

と、いうことですが、話はまだまだ続きます。

 
7. で、結局 iPhone8 はどうなった?
今、こんな感じです。

SIM ロックされているのですがpovo2.0 の SIM で動作しております;-)。

以前 iPhone6 用に購入した SIM ゲタを iPhone8 に入れてみました。そしたらっ!!

無事に動作したのでありましたっ!!

いやぁ。捨てずにとっといてよかったぁ。と、いう感じなのであります。 iPhone8 はしばらくこのまま利用して、欲しいと思えるような新しい iPhone が出たらそちらに乗り換えようかなぁ。と、ことにしたいと思います。

 
とまぁ、今回の顛末はこんな感じです。

 
Y-mobile の SIM は今は SONY Xperia 10 II XQ-AU52 (海外版) に入っております。
これも 2020/09 に購入した端末ですが、ついこの間 Android12 が降ってきました。
おぉっ!! やるなっ!! SONY っ!! って感じで、そう考えると SONY Xperia 10 II XQ-AU52 もまだまだ現役です。海外版でありながら SoftBank 系の LTE バンドにもばっちり対応しているので余裕で利用できて TOYOTA のカーナビのテザリングもバッチリなのであります;-)。

ふぅ。

5月 182022
 

AKIBA PC ホットラインをみていたらこんな記事を見つけました。

https://pc.watch.impress.co.jp/docs/column/nishikawa/1408756.html

手頃な大きさと値段で AMD Ryzen7 8 コア / 16 スレッド・メモリ 32GB ・ストレージ 512GB と、そこはかとなく大盛りで、小型な PC。

実は、以前使っていた富士通の PRIMERGY MX130 S2 は計二台あり、一台は自宅サーバ、もう一台はデスクトップで利用していたのですが、デスクトップのほうは新規に HP ProDesk 405 G6 SFF/CT を購入したので二台の MX130 S2 は自宅のサーバとして Vmware ESXi 7.0 をインストールして仮想マシンをドドドと動かして・・。

しかし、所詮は 10年前のマシンです。 CPU 6 コア・メモリは 20GB と 16GB ですが、この二台を本当に引退させて新たに 8 コア / 16 スレッド・メモリ 32GB なマシン 1 台で運用するかなぁ。などと思ったのでありました。

 
と、いうことで、今回、上記記事に載っていたモノをちょいと購入してみた。と、いうことです。ちなみに今はもう既に品切れのようで amazon に商品が表示されていないようです。

さてと。問題は HP ProDesk 405 G6 SFF/CT をサーバにするか、今回購入した Beelink SER4 をサーバにするか・・。

Beelink SER4 はメモリ 32GB 搭載されているけど、拡張性ないし、小さいので 24/365 運用に耐えられるのかがちと不安・・。

まぁ、どちらを自宅サーバにするかはもう少し検討の余地があるかな。と、いう感じ。

 
以上、前置きはさておき、ここからが本題。

まずは今回購入した Beelink SER4 の詳細について。まずは届いた箱の写真など。

ハードウェア的には上記に書いた通り。

  • CPU: AMD Ryzen7 8 コア / 16 スレッド
  • メモリ: 32GB
  • ストレージ: NVMe SSD 512GB (Intel)
  • NIC: RealTek 1000Mbps
  • WiFi: AMD RZ608 Wi-Fi 6E 80MHz

 
変わったところでは WiFi チップが目を引くかな。 AMD と Mediatek が共同で作ったシロモノらしく、今後 Ryzen の NotePC に標準で組み込まれるよになるとかならないとか・・。 802.ax に対応しているようです。当然、FreeBSD にはドライバはありません。

本当に小さい筐体で『よくここまで詰め込んだっ!!』 などと思います。

あ。実際に利用してみると USB Type-A のポートが逆さです・・。USB 機器刺したときの見た感じ変で、刺すとき上下 (『表裏』か?) 悩みます。上記の写真は FreeBSD 13.1-RELEASE をインストールするために作成した USB メモリを刺している状態です。 USB メモリの裏側が上に来ます。そして、裏表のない Type-C はフロントに一個だけ。

 
まずは OS としてプレインストールされている Windows11 Pro を起動します。しかし、この筐体・スペックでこの値段なのに OS は Windows11 Pro となると、こちらをデスクトップとして利用して HP ProDesk 405 G6 SFF/CT をサーバにしたくなりますよねぇ・・。本当に OS も十分におごっています。

が・・。見事に落とし穴がありますっ!!

 
プリインストールされている OS の前に BIOS (UEFI セットアップメニュー) の設定について、感じた点。

  • メニュー項目が多い。基本的に AMI BIOS ですが拡張されていて色々な設定項目があります。
  • RealTek の 1000Mbps NIC のオプションに VLAN タグを設定できる項目があります。僕は BIOS レベルで VLAN 設定できる PC というか BIOS を初めてみました。 iLO や iDRAC ではありません。PC の OS で利用する NIC 側です。
  • secure boot が default で disable です。これまた初めてみました。FreeBSD をインストールするために明示的に disable にする必要があるので、その手間が省けるのは良いことですが、最近の PC では驚きです。

 
なんか、機能多すぎ・怪しさ満点の BIOS です。そして、実は OS はもっと、というか、しっかりと怪しかったりしますX-(。

 
僕は基本的に購入した PC では FreeBSD をインストールして WindowsOS と FreeBSD のデアルブート環境を整えます。そのために WindowsOS 側は事前に回復 USB ディスク作成したり、Windows のライセンスキーを抜きだしたりしています。
例えば Windows のライセンスキーを抜き出すアプリとして Windows Product Key Viewer というのがあります。

http://www.rjlsoftware.com/software/utility/winproductkey/download.shtml

色々な OS をインストールしていると回復パーティションとか飛ばしてしまったり、回復 USB からイントールできなかったときのために、最悪のことを考えてライセンスキーを保存しているのですが、この PC で上記アプリを実行してみると・・。

うひ・・。Windows10 Pro からのアップグレードで、ライセンスキーは B だけがならんでいるじゃん・・。orz
ダメだこら・・。

C:\ 直下は AMD/ Driver/ Power_On_and_WOL/ な名前のドライバが格納されているディレクトリがそのままあったり、設定方法をキャプチャしたイメージが保存されているディレクトリがあったり・・。

 
NIC のデバイス名がなぜ #2 なのだ?と思ってデバイスマネージャ見てみると『あぁ・・。以前は Intel の WiFi/Bt チップ使っていたのね。』みたいな。

もう怖すぎる (ダメすぎる?) OS です。
僕の場合 xkeymacs を利用しているのですが、これをインストールするためには『Visual Studio 2015 の Visual C++ 再頒布可能パッケージ』な vc_redist.x64.exe を先にインストールする必要があるんだけど、それもどうやら既にインストールされている状態だし。
他にも何かインストールされていて、データがガシガシ大陸のほうに飛んでいくんでないの?随時キャプチャしてないと怖くて使えない OS だわ。みたいな雰囲気満載です。

 
と、いうことで Windows11 Pro は非常にもったいないのだけど、サクっと削除して、まずは FreeBSD/amd64 13.1-RELEASE をインストールしてみて、その後 Vmware ESXi7.0 でもインストールしてそっちを利用しようかなぁ。と、言う感じです。
もし、正しいライセンスが入っているのであれば Microsoft から Windows11 の ISO イメージをダウンロードして来て、 Windows Product Key Viewer で表示されるライセンスを入れたりするのですけどねぇ。

本体のスペックが良くてこの価格なので『OS はオマケみたいなモノなので本格的に利用しないでねぇ。』みたいな雰囲気なのでしょうかねぇ? しかし、これって、使い続けると Microsoft のライセンス違反?アクティベーションできていれば問題ないのかな?
あ。けど、MSDN のライセンスは商用 PC で利用できない。あくまで検証用ライセンスだ。ただ、この PC にインストールされている WindowsOS のライセンスが MSDN のライセンスかは知らないけど。

もしかして、アクティベーション先を自社に向けているとか? うひっ。考えたらキリがないっ!!

ふむー・・。

あ。もしかしたら Windows Product Key Viewer が正しいライセンスキーを取得・表示できなかっただけかもしれない。そう思いましょうかねぇ;-P。

 
Beelink SER4 の WindowsOS のお話についてはこれでおしまい。次回は FreeBSD/amd64 13.1-RELEASE についてのお話とか Vmware ESXi7.0 の稼働状況についてお話できれば嬉しく思います。

って・・。今思い出した Vmware ESXi7.0 は RealTek の NIC 動かないじゃん・・。orz
USB NIC ブラブラさせるのか・・。orz

 
#この記事掲載したら、某所から DDoS 受けて閲覧不可になる。とか、ないよねぇ? ;-P

2022/05/23 加筆
一応、amazon のサポートに

『この製品のちゃんとした WindowsOS のライセンスが欲しいのですけど・・。』
『本体やスペツクは好きなので、このまま利用したいと思っているのですけど・・。』

などと、有人チャットで話しあいましたが「返品しましょう。」の一言でした。

まぁ、確かに安心して利用できない OS がバンドルされていても困るだけなので、僕の場合、今回は返品対応をお願いしました。
その他、現在も利用していたり、新規に購入を考えてる方は WindowsOS や Microsoft のライセンスについて、状態が気にならない場合は、今回の僕の事象は気にせずに購入したり、そのまま使い続けも良いのではないかと思われます。

ただ、データが引っこ抜かれているなど、他に色々あったとしても自己責任でお願いします。
加筆ここまで

2月 252022
 

以前に購入した OPPO Reno A は楽天モバイルの SIM を入れていました。購入してからもうずいぶんと経っていて、バッテリーもへたり気味だったのでそろそろ潮時かな?などと思っていました。

そして、海外向けの SONY Xperia 10 II XQ-AU52 は、一応今でも現役ですが、VoLTE が利用できないので、3G 停波なキャリアでは利用不能です。

現在、僕が利用しているのは以下な感じ。

  • iPhone8: Y-mobile / (去年の 9 月にバッテリー交換したので未だ現役;-)
  • AQUOS sense6 SH-M19: 楽天モバイル / (今回の購入したスマートフォン)
  • OPPO Reno A: povo2.0 / (VoLTE 対応なので povo2.0 でも OK)
  • SONY Xperia 10 II XQ-AU52: – / (キャリアなしの自宅内 Wi-Fi 専用端末)

 
とまぁ、こんな感じです。楽天モバイルと povo2.0 は実質お金がかかってないので、SIM が入っているスマートフォン 3 台持ちですが Y-mobile のみ費用が発生している感じ。
まぁ、仕事はテレワークメインなので、自宅 Wi-Fi の利用率が異様に高い。と、いうのも当然ありますが;-)。

 
三つ並べた写真がこんな感じ。

左から AQUOS sense6 SH-M19、SONY Xperia 10 II XQ-AU52、OPPO Reno A。サイズ的には SONY Xperia 10 II XQ-AU52 と近いかな? 5mm ほど横幅が広いです。そして縦長です。このサイズ、結構持ちやすくて好きです。

 
で、今回購入した AQUOS sense6 SH-M19 の簡単なレビューなどを。

今回は Amazon で SIM フリー版である SH-M19 を購入しました。俗に言う『4G/64G』バージョンです。5G に対応していて SoC は Snapdragon690 です。 多少世代がずれますが、比較対象としては Xperia 10 II XQ-AU52 の Snapdragon655 と同等か、それよりちょっと上な CPU パフォーマンスです。あ、CPU の比較『ポケモンGO をしたときの動作』から来ていますf(^^;;。

 
家の近所で楽天モバイルがミリ波・Sub-6 のアンテナを立てました。すげっ!! 自宅では入らないのですが、良く行く飲み屋とか街中華のお店で 5G が体験できます。嬉しいことです。が、しかし、速度が出ない。 楽天モバイルの 5G と AQUOS sense6 の 5G でマッチするのは n77 or n78 だと思いますが、これは Sub-6 ですかね。

あと、楽天モバイルの怪しいのは、アンテナから基地局まで何引いているんだろ?って、感じ。Flet’s かな? ダークファイバーかな?だとすると、電波・アンテナが 5G Ready で高速でも、ラストワンマイル的な地上回線が遅い回線使っていると、中々恩恵受けられないような気がする。
ちなみに google のスピード計測してみたら 40Mbps 程度でした。ふぅ・・。

 
さてと。ここからは AQUOS sense6 本体のレビューを。

あちこちで書かれているのがディスプレーの色使い。確かに変だよ。全体的に暗い。色が濃く見える。カメラで撮った写真もひどく暗く見えるので、ちょっと残念な雰囲気。 IGZO OLED (有機EL) だというのでもっとキラキラしているのかと思いきや・・。

ただ、色々調整して何とか見られる状態にはできた。

「設定」アプリから → [AQUOSトリック] → [リッチカラーテクノロジーモバイル] とたどります。

  • 基本設定: ナチュラル
  • アウトドアビュー: オン
  • リラックスビュー: オン (スライドバーは目分量で大体 20% くらい)
  • はっきりビュー: オフ

 
上記設定のキャプチャはこんな感じ。

これで、暗さ・色の深さ・濃さがなんとか薄まる感じでしょうか。

 
カメラは、あまいかなぁ。カドが立たない。ぼやける感じ。シャッター押すときの腕が悪いのかな?
Xperia 10 II XQ-AU52 のカメラもひどかったけど、それよりちょっと良い?という雰囲気。カメラは持っている中では iPhone8 か OPPO Reno A に軍配かな。

 
普段使いのアプリについて。

おサイフケータイ対応なので購入したのは当然で OPPO Reno A からの機種変更として無事に色々フツーに動作しているかんじ。
「Pay トリガー」とか面白い機能ですかね。ディスプレー上の指紋認証を長押ししていると「PayPay アプリ」が起動します (「PayPay アプリ」を起動するように設定していた場合)。あと、電源ボタン長押しでもアプリを起動できる。こちらには「楽天ペイアプリ」を起動するように設定しています。
なので、お買い物時にサっと支払いができる。

認証は指紋認証と顔認証。冬で指先が荒れている(感想している)からかも知れませんが、指紋認証は反応が鈍いです。顔認証のほうは、当初メガネ(俗にローガンキョーとも言う(^^;;)なしで登録したんだけど、メガネをかけていてもロック解除されるのは嬉しい点かな。

 
基本的に google のアプリが default で動作するようになっているので『僕は google はキライだぁ。だから不要なアプリは無効にしてしまぇー。』とか思っていると、色々なモノがなくなってしまいます。
音楽プレーヤー・写真ギャラリー・ファイルマネージャーなどなど。他にも google のアプリがメインになっているモノが色々あるですな。

まぁ、それは好みの問題として。

 
全体的な動作としてはキビキビしている感があるのだけど、時々フリーズすることがるので電源ボタン長押しで再起動してることがある。もしかしたら「ポケモン GO」アプリと相性が非常に悪いのかも知れない。ただ、Android 素の Xperia 10 II XQ-AU52 ではそんなことなかったし、 ColorOS で毛色がちょっと違いますが OPPO Reno A でもそんなこと無かったのでただ単に AQUOS sense6 の OS の作り込みのせいかも。もしくは、結構色々なアプリを無効化しているのでその影響が出ているのかも・・。

 
当初 AQUOS sense6 と Xperia 10 III のどちらを購入しようかと思っていたのだけど、国内向けの Xperia 10 III は Xperia 10 II を持っているので、ひれなりに魅力的ではあった。が、最近評判の AQUOS を使ってみたいという気分もあった。価格も安かったし。楽天モバイルなどで手に入るのだけど、結局 SIM フリー版を Amazon で購入して、約 36,000yen。これくらいだと手が出るかなぁ。と、いう感じ。

まぁ、どっちを購入したら良かったのか、今となっては不明ですが、飽きが来なければ 2,3 年使ってみたいと思います。

1月 292022
 

ちょっと前に「HP ProDesk 405 G6 SFF/CT 購入。」と、いうエントリを書きました。ことのときから 13.0-STABLE を利用するようになりました。

ただし、CURRENT とか STABLE というのはある意味ナマモノであり『ちゃんと動作するタイミング』というのがあるので、一旦、正常動作しているソースツリーにぶち当たるとそれをずっと使い続ける。と、言う状態だったのですが、最近、風の噂で Intel Wi-Fi 6 AX200 がどうやら動作するようになって来た。と、言う話題が出ていたので、いよいよ試してみようか。と・・。
上のエントリの中でも試しているのですが、このときは見事に玉砕していたのですけどもね。

 
と、いうことで git で STABLE の /usr/src のソースコードをどうやって持ってくるのか、ちっとも解らない。ググッても、ちっとも解らない・・。orz

http://ftp.iij.ad.jp/pub/FreeBSD/snapshots/amd64/13.0-STABLE/

とりあえず、ここにアクセスしてみた。なるほどー。snapshot なので定期的に更新されているようですね。ここから src.txz の たー玉をゲット。 /usr/src に展開したあと make buildworld 系おまじないをかけて、そこはかとなく新しい /usr/src/sys/contrib/dev/iwlwifi/ が存在していて if_iwlwifi.ko カーネルモジュールがインストールされる環境が整ったのでありました。

 
さてと、ここからは実際に kldload if_iwlwifi.ko して利用してみましょう。あ、今回は ThinkPad X13 で試しました。こいつには Intel AX200 が付いているしいよいよいもって使ってみたいのでね。

参考になるのは以下の URL です。

https://wiki.freebsd.org/WiFi/Iwlwifi

と、いうか、今のところ、ここしかない感じ。あと、freebsd-wireless な ML のスレッドを追いかけるしかないです。

https://lists.freebsd.org/archives/freebsd-wireless/

 
まずはじめに /boot/loader.conf に if_iwlwifi_load=”YES” を書くところから始めるのですが、これ書くと以下のエラーがドドドと表示されて iwlwifi のファームウェアが正しくロードできないようです。

<略>
kernel: iwlwifi0: could not load firmware image 'iwlwifi-cc-a0-57.ucode'
kernel: iwlwifi0: File size way too small!
kernel: iwlwifi0: could not load firmware image 'iwlwifi-cc-a0-56.ucode'
kernel: iwlwifi0: File size way too small!
<略>

 
なんか、調べてみると、上記の現象は /boot/loader.conf から if_iwlwifi.ko を kldload した場合、ファームウェアが格納されるメモリが無くなってしまって正しいサイズのファームウェアがロードできない状態らしい。なので /etc/rc.conf に書いたほうが良い。とのことでした。

こんな感じ。

kld_list="amdgpu.ko if_iwlwifi.ko"

 
僕のは Renoir なマシンなので、amdgpu.ko と一緒にロードさせてあげます。で、再起動すると、今度は無事に動作しそうな雰囲気です。とりあえずは pciconf -lv で確認してみましょう。

iwlwifi0@pci0:2:0:0:    class=0x028000 rev=0x1a hdr=0x00 vendor=0x8086 device=0x2723 subvendor=0x8086 subdevice=0x0080
    vendor     = 'Intel Corporation'
    device     = 'Wi-Fi 6 AX200'
    class      = network

 
Wi-Fi 6 AX200 に違うドライバ、例えば iwm0 などが割り当てられていた場合、 WiFi/Iwlwifi にも書いてあったとおり

# devctl detach pci0:2:0:0
# devctl set driver pci0:2:0:0 iwlwifi

 
してみて、ちゃんと iwlwifi0が割り当てられることを確認しましょう。無事に割り当てることができたら第一関門突破です;-)。

 
さてと。無事に認識したようなので、次に /etc/rc.conf に設定を書きます。僕の場合はこかん感じで。

wlans_iwlwifi0="wlan1"
create_args_wlan1="wlanmode sta regdomain JAPAN country JP"
#wlandebug_wlan1="+state +crypto +node +auth +assoc +dot1xsm +wpa"
ifconfig_wlan1="WPA DHCP ssid AP-Point mode 11ac country JP"

 
しかし、全く起動時に反応してくれない。しょーがないので起動時の利用は諦めるしか無い雰囲気・・。

一応、有効化するためのスクリプトと、いうかコマンドを並べてみました。

#!/bin/sh

#devctl set driver pci0:2:0:0 iwlwifi0

ifconfig wlan1 create wlandev iwlwifi0
ifconfig wlan1 mode 11ac country JP
ifconfig wlan1 ssid AP-Point bssid 90:17:c8:ff:ff:ff
ifconfig wlan1 up
ifconfig wlan1 scan
ifconfig wlan1 WPA
ifconfig wlan1 DHCP
/usr/sbin/wpa_supplicant -s -B -i wlan1 -c /etc/wpa_supplicant.conf -D bsd -P /var/run/wpa_supplicant/wlan1.pid

 
上のコマンドを順番に打っていくと・・。

# ifconfig wlan1 mode 11ac country JP
ifconfig: SIOCSIFMEDIA (media): Device not configured
# ifconfig wlan1 WPA
ifconfig: WPA: bad value
# ifconfig wlan1 DHCP
ifconfig: DHCP: bad value

 
mode 11ac を受け付けてくれず、他に WPA と DHCP オプションが機能してくれないようです・・。orz。

一応確認してみると、

# ifconfig wlan1
wlan1: flags=8843 metric 0 mtu 1500
        ether a8:7e:ea:ff:ff:ff
        inet 192.168.1.150 netmask 0xffffff00 broadcast 192.168.1.255
        groups: wlan
        ssid AP-Point channel 36 (5180 MHz 11a) bssid 90:17:c8:ff:ff:ff
        regdomain JAPAN country JP authmode WPA2/802.11i privacy ON
        deftxkey UNDEF AES-CCM 3:128-bit txpower 23 bmiss 7 mcastrate 6
        mgmtrate 6 scanvalid 60 wme roaming MANUAL
        parent interface: iwlwifi0
        media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11a
        status: associated
        nd6 options=29

 
802.11ac で接続してもらって、速さを体験したいのに、なんで 11a でしか接続しないのだろう・・。ちなみに ifconfig は ssid の他に bssid も合わせて指定していて 802.11g ではない 5GHz 帯の AP に接続するように調整しています。ヘタるすと 802.11n とか 802.11g に(『で』が正解か?)接続してしまう場合もあります。

この状態でスピードサイトにアクセスして計測してみると、ダウンロードで 20Mbps 下回る程度、アップロードでも 10Mbps 程度の速度しか出ません。

あれあれ? iwlwifi0 って 802.11ac と ax に対応しているんじゃないの? どうしてこんな遅いの!? ちょっとガクゼンとしてしまいました・・。 orz

 
このブログでは今までもう何回も FreeBSD で動作する WiFi USB ドングルについて記載してきました。

FreeBSD 12.0-RELEASE から if_rtwn が利用可能ななった。」など。

REALTEK の RTL88 系チップは 802.11ac に対応していて、ドライバは rtwn0 を利用するとこにより 5GHz 帯に接続できるぜぃ。みたいな感じで AX200 が利用できない状態においては非常に効果的に機能する WiFi ドングルでした。最近の FreeBSD 12.2-RELEASE 以降では問題なく利用できる状態。

ただ、こちらもやはり 20Mbps 程度と、FreeBSD で利用すると速度が出ていなかった・・。なので、 802.11ac に対応した iwlwifi0 で『Windows 並にバリバリ速度でるのかな? ワクワクっ!!』などと期待感大だったのに、ちょっと裏切られた感じ・・。

 
今まで USB ドングル利用していた WiFi はオンボードのチップが使えるようになって、 USB ポートが一個空いたねぇ。な感じ。速度的には変わらないし、 /etc/rc.conf に記載した内容が起動時に反映されないし・・。

13.1-RELEASE ではもう少しマトモになるかもしれないけど、速度的には望めないとなると、悲しい部分が・・。orz
と、いうことで /etc/rc.conf に記載してブート時に利用可能になるまで、もうすこし rtwn0 を利用し続けるかなぁ・・。

1月 082022
 

ウェブで色々調べてみると、みんな中途半端なネタしかなくて、ウェブ UI まで含めた Docker Registry を作るのにずいぶんと苦労しました。

今回はそれをきれいさっぱりとまとめてみたいと思います。

僕はそれほど Docker に詳しくはないけど、今回のターゲットの読者 (って、いるのかな?;-) は、普段から Docker コンテナを利用していて、 Docker image を自分が作成した Docker Registry で管理したい人向けです。

では始めます。今回のプラットホームは AlmaLinux 8.5 です。 docker は以下です。

$ cat /etc/os-release 
NAME="AlmaLinux"
VERSION="8.5 (Arctic Sphynx)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.5"
PLATFORM_ID="platform:el8"
PRETTY_NAME="AlmaLinux 8.5 (Arctic Sphynx)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:almalinux:almalinux:8::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8"
ALMALINUX_MANTISBT_PROJECT_VERSION="8.5"

$ rpm -qa | grep dock
docker-scan-plugin-0.12.0-3.el8.x86_64
docker-ce-rootless-extras-20.10.12-3.el8.x86_64
docker-ce-cli-20.10.12-3.el8.x86_64
docker-ce-20.10.12-3.el8.x86_64
$

 
まず、Docker image を取ってきます。まぁ、ほぼほぼ標準のイメージです。
あ、 /etc/group の docker グループに自分のアカウントを追加して上げましょう。一般ユーザ権限で docker コマンドが利用可能になります。

$ docker pull registry:2
<略>
$ docker pull konradkleine/docker-registry-frontend:v2
<略>
$ docker pull ekazakov/docker-registry-frontend
<略>

 
一番最初の docker pull は Registry サーバ本体です。
二番目の docker pull は ウェブで検索すると良く出てくる Registry のウェブ UI です。
三番目の docker pull は registry:2 のウェブ UI ですが、なんと、削除ボタンが付いていて不要な Docker image を削除することができます(が、僕はまだ削除したことないですf(^^;;)。

これで Docker image が揃ったので docker run してみます。と、言いつつまだまだ準備ができていません。

と、いうか、最近の docker pull/push は SSL に対応しているので、プライベートで立てる Registry サーパ (『リポジトリサーバ』とも言う) も SSL でアクセスできるようにして上げる必要があります。
つまり、 Docker image の registry:2 を起動するためには SSL 証明書が必要なんですな。 Let’s Encrypt などでまずは証明書を準備してください。

ここ、大切な部分です。この工程をはしょって『プライベートレジストリを構築するーっ!!』って、サイトが多くてイヤになる・・。非常にノイジー。古いコンテンツは消して欲しい。と、思う部分ですな。
とはいいつつ、僕のサイトにも古い記事が今でも残っているけど・・f(^^;;。

と、いうことで registry:2 を run するための証明書の準備です。

# mkdir /opt/docker/repository/certs/
# cd /usr/local/etc/letsencrypt/live/running-dog.net/
# cat cert.pem > /opt/docker/repository/certs/domain.crt
# cat chain.pem > /opt/docker/repository/certs/ca.crt
# cat privkey.pem > /opt/docker/repository/certs/domain.key

 
Let’s Encrypt で取得した証明書を /opt/docker/repository/certs/ と、いうディレクトリにそれぞれの名前で格納しました。自分のドメイン名に照らし合わせてください。
あーぅー。Linux の場合、 Let’s Encrypt のベースディレクトリはどこになるのだろう? 上記の例では FreeBSD 的に /usr/local/etc/letsencrypt/ になっていますな。自分の環境に合わせてくださいf(^^;;。

そして、追加でもう少し。

# cd /usr/local/etc/letsencrypt/live/running-dog.net/
# cat cert.pem > /etc/pki/tls/certs/running-dog.net.crt
# update-ca-trust
# systemctl restart docker

 
証明書を準備したら上記コマンドを実行してください。証明書を更新したときも実行してください。
SSL 証明書を /etc/pki/tls/certs/ に設置したあと update-ca-trust コマンドを叩いて dockerd を再起動しなます。
これをやらないと docker pull や push がエラーになるかもしれません。

 
さてと。これで SSL 証明書関連の準備が完了です。起動するときは以下のような感じ。

# mkdir /opt/docker/repository/data/
$ docker run -d -p 0.0.0.0:5000:5000 --restart=always \
 -v /opt/docker/repository/data:/var/lib/registry \
 -v /opt/docker/repository/certs:/certs \
 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
 -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
 --name registry-server \
 registry:2

 
-v でレジストリのデータを管理するディレクトリと、証明書が格納されているディレクトリをコンテナから参照できるようにしてあげます。

IP アドレスは 0.0.0.0 を指定してあげまていますが、Docker ホスト側の IP アドレスの Port:5000 に (telnet で) アクセスすると開いているかと思います。
Registry サーバは SSL でアクセスするので、 Docker ホストの IP アドレスに FQDN を指定してあけます。今回は registry.running-dog.net にしました。view internal な DNS ゾーンファイルに設定するか /etc/hosts に指定してください。

curl を利用して以下の要領でアクセスすれば良いです。

$ curl -k https://registry.running-dog.net:5000/v2/_catalog
$ curl -k https://registry.running-dog.net:5000/v2/centos/tags/list

 
上の curl は docker push されている、つまり、プライベートレジストリに登録されている Docker image の一覧が表示されます。
下の curl は、仮にプライベートレジストリに centos という Docker image が push されていたとすると登録してあるタグ番号一覧を返してくれます。

ここまでは Port:5000 でアクセスする Registry サーバ側の設定と起動方法になります。ウェブ UI がなくても上記 curl でイメージとタグ番号の確認はできます。

 
では、ここからはいよいよウェブ UI 側のコンテナの起動です。

インターネット上で検索してみると、docker run してサクっと Registry サーバに接続してその情報を表示してくれる。みたいなサイトがゴマンとありますが、あれ、みんなウソです。全然表示してくれない。なんでやねんっ!?

僕もずいぶんと悩みました。どんなにやってもウェブ UI のコンテナから Registry サーバにアクセスできないっ!! ずっと悩んでいたのですが、ようやっと、問題解決です。

先にタネ明かししますが Registry サーバへは SSL で Port:5000 にアクセスします。 URL 的には https://registry.running-dog.net:5000/ になりますね。
ウェブ UI 側も registry.running-dog.net の Port:5000 にアクセスするように docker run 時に指定するのですが、これは http で registry.running-dog.net の Port:5000 にアクセスしているんですね。プロトコルが https で Port:5000 にアクセスできていないので、ウェブ UI 上に Registry サーバ の情報を表示できなかったんですね。

ここの情報について書いているサイト、ほぼ皆無です。

ウェブ UI 側のコンテナは以下のように docker run してみましょう。

$ docker run -d -p 0.0.0.0:8080:80 \
 --net reg-Segment \
 -e ENV_DOCKER_REGISTRY_HOST=registry.running-dog.net \
 -e ENV_DOCKER_REGISTRY_PORT=5000 \
 -e ENV_DOCKER_REGISTRY_USE_SSL=1 \
 -e DOCKER_REGISTRY_SCHEME \
 --name registry-web \
 ekazakov/docker-registry-frontend:latest

 
今回は削除ボタンのある ekazakov/docker-registry-frontend:latest の Docker image を利用してみました。
-e で環境変数を指定します。よくあるのは ENV_DOCKER_REGISTRY_HOST と ENV_DOCKER_REGISTRY_PORT です。この二つだけの指定では ウェブ UI は http で ENV_DOCKER_REGISTRY_HOST に指定したホストの ENV_DOCKER_REGISTRY_PORT に指定したポート番号にアクセスします。

この瞬間、まさに『ダメだ。こりゃ。』な状態です。

https でアクセスするためには更に追加で DOCKER_REGISTRY_SCHEME と ENV_DOCKER_REGISTRY_USE_SSL=1 を指定してあげます。これで Registry サーバに https でアクセスしに行って、ウェブ UI 上に登録されている情報を表示してくれるようになります。

いやぁ・・。疲れた。あとはひたすらウェブ UI を使い込んでいくことなるかと思います。ふぅ・・。

 
と、いうことで、 https でアクセスする Registry サーバと Registry サーバから https で情報を取りに行ってウェブ UI に表示してくれる Registry サーバのウェブ UI がセットで起動できました。
あ、ウェブ UI 側は http://registry.running-dog.net:8080/ でアクセスできます。こちらのプロトコルは http です;-)。

 
では、どうして今回、ウェブ UI は『どうして表示できないのだ?!』と、悩んでいたのが解決できたか?についてですが『そもそも https でアクセス行ってないからじゃね?』と、思ったから。が、ベースとなっていますが Docker image である registry:2 も ekazakov/docker-registry-frontend:latest も docker exec で中に入ることができないんですねぇ・・。コンテナに与える環境変数は他にはないのか?確認する手段が無かった。と、いうのが大きな点ではありますが、ところがそうではないっ!!

$ docker ps -a
CONTAINER ID   IMAGE                                      COMMAND                  CREATED        STATUS        PORTS                                            NAMES
2f3a138f1b8e   ekazakov/docker-registry-frontend:latest   "/bin/sh -c $START_S…"   23 hours ago   Up 23 hours   443/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp   registry-web
d1e9dbf6e9a5   registry:2                                 "/entrypoint.sh /etc…"   24 hours ago   Up 24 hours   0.0.0.0:5000->5000/tcp                           registry-server
$ docker exec -it d1e9dbf6e9a5 /bin/bash
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
$ docker exec -it d1e9dbf6e9a5 /bin/sh
/ # ls -l /bin/busybox 
-rwxr-xr-x    1 root     root        841288 Nov 12 11:37 /bin/busybox
/ # exit
$

 
docker ps してから docker exec -it で registry:2 に /bin/bash で入ろうしたけど、/bin/bash がないので、試しに /bin/sh にしてみたらあらは入れた。ついでに registry:2 は busybox で動作しているのねぇ。 i386 i686 系の busybox って、初めて見た。みたいな。

 
konradkleine/docker-registry-frontend:v2 も /bin/bash はないけど /bin/sh で中に入れます。
ekazakov/docker-registry-frontend:latest は /bin/bash で中に入れました。

$ docker exec -it 2f3a138f1b8e /bin/bash
root@2f3a138f1b8e:/# env
HOSTNAME=2f3a138f1b8e
APACHE_RUN_USER=www-data
TERM=xterm
ENV_DOCKER_REGISTRY_PORT=5000
APACHE_LOG_DIR=/var/log/apache2
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
APACHE_RUN_GROUP=www-data
ENV_DOCKER_REGISTRY_USE_SSL=1
SOURCE_DIR=/tmp/source
WWW_DIR=/var/www/html
SHLVL=1
HOME=/root
START_SCRIPT=/root/start-apache.sh
ENV_DOCKER_REGISTRY_HOST=registry.running-dog.net
_=/usr/bin/env
root@2f3a138f1b8e:/# cat /root/start-apache.sh
<略>
root@2f3a138f1b8e:/# exit
$

 
こんな感じです。 ekazakov/docker-registry-frontend:latest の ウェブ UI は apache で起動しているみたいです。 /root/start-apache.sh の中に docker run 時に指定した環境変数を取り込んでホスト名・ポート番号・プロトコルが設定されます。
この /root/start-apache.sh のファイルの中をじっくりと確認することによって、そこから想像する分には『https://でアクセスするようにしないとアカンのねえ・・。』と、思いつくのでありました。
あとは環境変数を見つけてそれをコンテナに渡してあげれば・・。ふぅ。なんとか動き出した。と、いう状態なのでありました。それが 、 DOCKER_REGISTRY_SCHEME と ENV_DOCKER_REGISTRY_USE_SSL なのでありますね。

 
それにしても、有名どころの git で拾ってきた Docker image も docker exec で /bin/bash で中に入れないとき /bin/sh とかだと入れるとか、他にもっと実は色々な入り方 (裏技) があるのかもー。と、関心させられた事象だったのであります。

そして、Port:5000 番でアクセスする Registry サーバと、Port:8080 でアクセスする ウェブ UI 。ふぅ。なんとか構築することができたのであります。

 
今の docker pull/push は SSL が基本です。http でアクセスできていた古いインターネット上の記事には惑わされないようにしてください;-P。

11月 202021
 

新しくデスクトップ PC を購入しました。『AMD FX おじさん』ではないですが、今まで利用していた PRIMERGY MX130 S2 は 2012 年に購入したのですなぁ。約 10 年使っていた。と、いうことか・・。速度的に『遅いっ!!』とは思ってなかったのでずっと使い続けていましたが・・。

今は半導体不足なときで、PC も決して安くはない。 AMD Ryzen7 PRO 4750G / Memory 16GB / 512GB SSD で 85,000yen 程度。納期は約一週間でした。

写真的には外側よりも内部のほうが嬉しいですよね。多分;-)。

HP ProDesk 405 G6 SFF/CT を買う前に一旦 Lenovo の ThinkCentre M75t Tower Gen2 を注文したんだけど、納期が約半年先、来年の 3 月になる。とのことだったので、待ってられないのでキャンセルした。ということがあるのであります。
HP は昔の日本 DEC の工場を持っているので納期が早いのねぇ。と、いう感じがします。

default の OS は Windows10 home でした。まだ Windows11 にはしていません。それよりも先に、すかさず FreeBSD のインストールを開始するのであります。

 
がっ!!驚きーっ!!よく調べずに今回の PC を買ったのですが、なんとっ!! FreeBSD/amd64 13.0-RELEASE がインストールできないのです。インストール用 USB メモリを Rufus で書き込みブートさせるのですが —<<BOOT>>— が出る前でフリーズしてしまうのでありました。『あらら? もしかしてハズレな PC 買ってしまったか?』 などと調べ始めると・・。

ほおほお。 HP の デスクトップ PC や NotePC では 13.0-RELEASE 以前のバージョンではブートできないパターンがあるのねぇ。

https://forums.freebsd.org/threads/freebsd-on-hp-prodesk-g6.79252/

こちらのスレッドがまさしくビンゴ。 HP の PC は本当に悩みモノらしい。下まで読み進むと 14-CURRENT ではブートするようになったみたいなので、試してみたら確かにブートしてインストールできた。ホっ。
で、更に追加で 13.0-STABLE でも試してみたらこちらも無事にブートしたのでありました。ふぅ。

上記 URL のネタは 6 月には CURRENT 用の修正版が出たみたいだし STABLE に降りてくるのにはそんなに時間がかからないと思うので、今の 11 月辺りでは 13.0-STABLE でも OK 。と、いう感じなのでしょうねぇ。
と、いうことで今回インストールしたのは FreeBSD-13.0-STABLE-amd64-20211111-7647baa1e8f-248036-bootonly.iso になります。 2021/11/11 分の STABLE ですね。

一個前のエントリで書いていますが 13.0-RELEASE と同様に Windows の EFI パーティションをつぶすこともなく、インストールが完了しました。
Lenovo の PC と違い BitLocker を気にする必要がなく、素直にセキュアブートをオフにするだけでインストールすることができたのであります。

 
デバイス的なことを書きましょう。手元に Intel AX200 の代わりに購入した Intel Wireless-AC 9260 があったので、それを設置しました。 NotePC 用に買ったのでアンテナが無かったのですが Amazon で 760yen で追加購入。ただのケーブルが二本だけど、Wi-Fi モジュールに接続できる必要があるので、しっかりと選択する必要があります。長さはだいたい 30cm ほどかなぁ。ケース内にケーブルを這わせたあと、 FreeBSD で利用すると 20Mbps 程度、Windows で利用すると 200Mbps 程度出ます(自宅で可動しているスピード計測サイトでの計測;-)。

他に S-ATA 接続の Samsung SSD 870 QVO 1TB SVQ01B6Q も設置。 M2.2280 な SSD と合わせて 1.5GByte の容量を確保できました。

 
FreeBSD の pciconf -lv で特筆すべきデバイスをちょっと並べてみます。

none0@pci0:4:0:0:       class=0xff0000 rev=0x1a hdr=0x00 vendor=0x10ec device=0x816e subvendor=0x10ec subdevice=0x8168
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'Realtek RealManage BMC'
re0@pci0:4:0:1: class=0x020000 rev=0x29 hdr=0x00 vendor=0x10ec device=0x8168 subvendor=0x103c subdevice=0x872d
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller'
    class      = network
    subclass   = ethernet
none1@pci0:4:0:2:       class=0x070002 rev=0x1a hdr=0x00 vendor=0x10ec device=0x816a subvendor=0x10ec subdevice=0x8168
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8111xP UART'
    class      = simple comms
    subclass   = UART
none2@pci0:4:0:7:       class=0x0c0701 rev=0x1a hdr=0x00 vendor=0x10ec device=0x816c subvendor=0x10ec subdevice=0x8168
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8111xP IPMI interface'
    class      = serial bus
    subclass   = IPMI
iwm0@pci0:5:0:0:        class=0x028000 rev=0x29 hdr=0x00 vendor=0x8086 device=0x2526 subvendor=0x8086 subdevice=0x0014
    vendor     = 'Intel Corporation'
    device     = 'Wireless-AC 9260'
    class      = network

 
HP の法人向け PC なので Intel でいうことろの vPro みたいなのを積んでいるようですが、 AMD の CPU 搭載なので Intel チップはちと無理か。そのかわりに Realtek のリモート管理系チップが搭載されているようです。俗に『AMD DASH』と呼ばれているヤツかな? BIOS (UEFI) の設定メニューにオン/オフのオプションがありました。

が、当然 FreeBSD では認識されません。

iwm0 はあとから自分が取り付けたモノになります。 BIOS (UEFI) 的にもフツーに認識されているし Bluetooth も BIOS で認識しているので問題ないですね。
下の写真では、一番上の真ん中にあるある出っ張ったパーツです。アンテナが伸びているのは一枚目の写真でも解るでしょうか?

せっかく 13.0-STABLE にしたし Intel Wireless-AC 9260 もついたので、Iwlwifi を試してみるかねぇ。みたいな状態で https://wiki.freebsd.org/WiFi/Iwlwifi を試してみましたが・・。
https://people.freebsd.org/~bz/wireless/apply-wireless-latest.sh これはもうコードが古くてコンパイルも通らないですね・・。orz 20210904 のカーネルソースコードだと linuxkpi のコードにもずいぶんと改修が進んでいるだろうに・・。
と、いうことで FreeBSD での 802.11ac はまだ待ちの状態です。

 
Realtek の NIC は re0 で認識されてはいますが /boot/kernel/if_re.ko では認識できないチップです。最新のチップかな? 最初『え゛。Realtek のチップ認識しないの?』と、驚いたのですが、今の世の中 ports からインストールするとか。 ports の net/realtek-re-kmod/ をインストールすると /boot/modules/if_re.ko が入ります。これを利用すると re0 で認識できます。
/boot/loader.conf はこんな感じで。

if_re_load="YES"
if_re_name="/boot/modules/if_re.ko"
hw.re.max_rx_mbuf_sz="2048"

 
あと、今回の PC は CPU が AMD Ryzen7 PRO 4750G なので GPU は Renoir です。これは ThinkPad X13 と一緒。 ports の graphics/drm-devel-kmod/ では X が起動しませんでした。
せっかく 13.0-STABLE を利用しているので linuxkpi 系は最新のソースコードがはいっているはず。と、いうことで GitHub から drm-kmod-master の最新版を取ってきました。今だと drm-kmod-5.7 になります。これをインストールしたらあーたっ!!

X はバリバリ動作する。

$ xrandr 
Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 16384 x 16384
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 527mm x 296mm
   2560x1440     59.95*+  60.00  
   2048x1152     60.00  
   1920x1200     59.88  
   1920x1080     60.00    60.00    59.94    30.00    24.00    29.97    23.98  
   1600x1200     59.95  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     60.02  
   1440x900      59.95  
   1280x800      59.95  
   1280x720      60.00    59.94  
   1024x768      60.00  
   800x600       60.32  
   720x480       60.00    59.94  
   640x480       60.00    59.94  

 
スゲースゲー。 ThinkPad X13 では 13.0-RELEASE と drm-kmod-5.5-wip でやっとこさ X を動かしたんだけど、 AC アダプタ抜くとカーネルパニックとかしていてまだまだだなぁ。と思っていたんだけどそんなこともなく。

あと、デスクトップ PC で 13.0-STABLE + drm-kmod-master (5.7) を利用すると suspend/resume できますっ!! デスクトップ PC で suspend/resume っ!! resume 後に X が死ぬ。と、いうこともなく本当に無事に、 WindowsOS のようにフツーに動作します。かなり感動的っ!!

 
今回、HP ProDesk 405 G6 SFF/CT にイントールしたあと、すかさず ThinkPad X13 も同じ構成にしてみたんだけど、上にも書いた通り AC アダプタ抜いてもカーネルパニックせず、 X は無事に動作するし suspend/resume も完璧に動作する。嬉しいっ!!

 
PC の技術はどんどん進化しているんだけど UEFI+CSM 時代は 10.1-RELEASE が一番良いと思っていた (suspend/resume していた)。そして、 UEFI 時代の FreeBSD は今度でる 13.1-RELEASE が最適なバージョンになるでしょうなぁ。今回利用した 13.0-STABLE の出来の良さに驚いたのでありました。

もし、手元に UEFI のみで動作するバリバリ最新の PC があるのであれば、是非とも FreeBSD をインストールしてみて頂きたいものであります。

いやぁ。今回は「イバラの道」というのは 13.0-RELEASE インストールでフリーズする以外、13.0-STABLE をチョイスして drm-kmod-master をインストールしたらスルっと、なんの苦労もなく動作したので、幸せな日々が送れて嬉しいのであります;-)。

このネタ、もう完結してしまって、続きませんf(^^;。

11月 102021
 

過去に何回か ThinkPadE145 や ThinkPad X13 に FreeBSD をインストールしているネタとか書いているのですが、 12.2-RELEASE の頃は Windows の UEFI を boot1.efifat が上書きしてしまい、Windows がブートしなくなってしまう。と、書いています。なので、FreeBSD インストール時には FreeBSD 専用の EFI パーティションを切ってあげると FreeBSD はそこを利用することになるので Windows が無事に動作して、マルチブートが可能な状態になるんですね。

しかし、まぁ、FreeBSD/adm64 13.0-RELEASE からは Windows の EFI パーティションの中に bootx64.efi を書き込んでブート情報を Windows と同列に設定してくれるようになりました。
Windows 側で mountvol して以下のオペレーションをする必要がなくなりました。

C:\Windows\system32> mountvol
C:\Windows\system32> mountvol z: /S
C:\Windows\system32> z:\
z:\> mkdir EFI\FreeBSD\Boot 
z:\> cd EFI\FreeBSD\Boot 
z:\> copy c:\boot1.efi ./bootx64.efi
z:\> dir
z:\> c:\
C:\Windows\system32> exit

 
この部分を bsdinstall がやってくれるようになりました。なので、うも、なんの遠慮もなく、何回でも FreeBSD のインストールが可能になりました。嬉しいことですね。

ただ、一点。「Firmware Windows Boot Manager」に対しては bcdedit /set {fwbootmgr} displayorder {UUID} /addfirst するようで、 FreeBSD の起動が一番上に来ます。 PC を再起動すると FreeBSD がブートするので『あらら? Windows パーティション飛ばしてしまったか?』となりますが、PC の BIOS (UEFI) のブートの順番画面で変えてあげると Windows が無事にブートします。
なので、いつもブートする OS を Windows か FreeBSD どちらにするかの選択が容易にできるようになります。

さぁ、皆さんもドドドと、 PC に FreeBSD をインストールしてみましょうっ!!

 
と、いうことで今回のエントリはこれで終了。次回のエントリは 13.0-STABLE について書いてみます;-)。