2月 162025
 

今まで購入した「NiPoGi GK3Pro ミニ PC」や「Beelink MINI S」は Intel の Atom 系の CPU だったのだけど、今度は AMD Ryzen7 の CPU 搭載ミニ PC を購入しました。

まぁ、AMD Ryzen7 搭載ミニ PC が欲しかった。と、いうのもあるのですが、一番は USB Type-C がついているモノが欲しくなった。と、いうのが大前提としてありました。モバイルサブディスプレーなどは HDMI ではなく USB Type-C のものがそれなりに存在しているし、そーいうのに接続できるミニ PC が欲しくなった。と、いうことですね。

 
amazon で購入しましたが、注文したのは 2024/12/29 で、正月休みにこれで遊べたら嬉しいなぁ。なんて思っていましたが、配達されたのが、明けた 2025/01/18 でした。あらま・・。
まぁ、このミニ PC は 2022 年に発売されたようで、今はもう売ってないみたいです。僕が買ったタイミングで、多分、既に在庫一斉セール状態だったのかもしれません。だって、以下のスペックなのに 40,154yen で、そこにポイント還元で 400 ポイントくらいもらったので、実質 30,000yen 台で購入することができました。

  • CPU: Ryzen 7 5800H (3 コア/16 スレッド)
  • Memory: 16GB (DDR4 SO-DIMM 8GBx2)
  • SSD: PCIe M.2 2280 SSD 512GB

 
多少古い製品で、既にディスコンとはいえ、新品でこのスペックであればサブ機として十分です。
届いた箱を早速開けました。中に入っていたのはこんな感じ。

写真中央のちょっと上の黒い個体が本体で、右の説明書の下にあるのが、100W の USB Type-C のアダプターです。 USB Type-C のポートが二つあり、一個はミニ PC 本体への電源供給。もう一個は他の機器の充電用。なのだと思い、試しましたが PC に電源供給して起動している最中にもう一個の USB-C ポートに接続したら、PC 本体の電源が落ちてしまいました(g_g)。ダメじゃん・・orz。

本体の下の袋にはいっているのが S-ATA コネクタです。マザーボードに接続してミニ PC 本体に S-ATA の 2.5 インチ SSD などを追加可能です。早速、余っていた SSD を中に入れました。

全体のスペック、筐体の雰囲気などはこんな感じです。

 
このミニ PC 使い方ですが、どうしよう・・。

以前購入した NiPoGi GK3Pro ミニ PC は Windows11 Pro がインストールされていて、かつ FreeBSD でデスクトップ環境もフルで KDE6+Plasma6 が入っているマルチブートな環境で利用していますが、メインでの利用は FreeBSDで、それを bhyve サーバとして、利用していて仮想マシンが 3 台動作しています。

今回購入したのは Windows11 Pro の専用機に使用かなぁ。と、なったのであります。

 
まぁ、中国産のミニ PC は基本 OS 再インストール必須なので、今回も全て削除してから Windows11 Pro を再インストール。アクティベーションキーは BIOS(UEFI) 中で持っているので、サクっと再インストールできました。また、 Atom 機とは違い使っているデバイスも AMD 系 PC の一般的なものなので、あちこちから拾ってくる手間いらずで嬉しいです。

探し回ったのは WiFi と Bluetooth のドライバくらいでしょうか。最近は AMD の CPU 搭載 PC は MediaTek のものを利用しているケースが多いので、それだけ拾ってきました。

普段は FreeBSD の pciconf -lv を貼り付けるのですが、今回は FreeBSD はインストールしないので「デバイスマネージャー」のキャプチャを貼り付けておきます;-)。

さてと。 Windows 専用マシンとして利用するのにどうしよう。などと思ったのですが Oracle VirtualBox をインストールして、そこに FreeBSD/amd64 14.2-RELEASE をインストールしてみたいと思います。

と、いうのも Oracle VirtualBox はバージョンが 7.1.6 になって、MS ゴシックのギザギザしたフォントが変更になり、ちゃんとアンチエイリアスが効いたフォントで表示されるようになりました。また、Qt5 から Qt6 にフレームワークが変更になり、ロゴのアイコンまで変更になり「お。なんか良い感じじゃーん。」となっているのであります。

 
では、ここから FreeBSD/amd64 14.2-RELEASE をインストールして、X まで動作させていきます。

1. VirtualBox 7.1.6 を拾ってきてインストール
2. VirtualBox 7.1.6 Extension Pack を拾ってきてインストール
3. FreeBSD の iso ファイルを拾ってくる
4. FreeBSD をインストール

 
端折りましたが、ここまで大丈夫でしょうかね。

で、今回は X まで動作させるので、当然 KDE6 をインストールします。
他のマシンで既に KDE6+Plasma6 が動作しているので、そのマシン上で以下のコマンドを実行すれば、pkg を生成してくれます。

# pkg create -n -g -o /usr/ports/packages/All -a

 
あとは今回 Virtialbox にインストールした FreeBSD 側で /usr/ports/packages/All を NFS マウントするなり /usr/ports/packages/All/* を scp で取ってくるなりして pkg add kde-6.2.5.24.12.2.pkg などすれば 一気にインストールされます。また、 xorg-7 や emacs-29.4 などを pkg add するのも良いでしょう。

と、いうか、僕の場合、メインの ports コンパイルマシンがあって、そこでコンパイルして pkg create して NFS サーバ上に置いて、他の FreeBSD は NFS マウントして pkg add しています。 FreeBSD サイトを利用した pkg install はほぼ利用していないです。 pkg install すると、僕の make config とは合わないので、あまり利用していません。

 
と、いうこどて、 Xorg をインストールして KDE6+Plasma6 までインストールが完了しました。と、いうことで Xorg を起動させましょう。

今回 VirtualBox で FreeBSD を動作させるには以下のサイトが参考になるかと思います。

https://docs.freebsd.org/en/books/handbook/virtualization/#virtualization-guest-virtualbox

 
virtualbox-ose-additions を emulators/virtualbox-ose-additions からインストールします。 Xorg 使う版をインストールします。その後、 /etc/rc.conf に以下の行を追加。

vboxguest_enable="YES"
vboxservice_enable="YES"

 
続いて /usr/local/etc/X11/xorg.conf.d/ 配下の xorg.conf の設定です。 今の Xorg は結構自動で設定認識して動作するので設定は不要かもしれないです。僕の場合の設定を記載します。

o. 00-module.conf

Section "Module"
    Load  "GLcore"
    Load  "drm"
    Load  "fb"
    Load  "vgahw"
    Load  "shadow"

    SubSection "extmod"
        Option      "omit xfree86-dga"
    EndSubSection
EndSection

Section "DRI"
    Group "video"
    Mode 0666
EndSection

Section "ServerFlags"
    Option      "StandbyTime" "3"
    Option      "SuspendTime" "5"
    Option      "OffTime"     "10"
    Option      "AIGLX"       "True"

#   Option      "AllowEmptyInput" "off"
#   Option      "AutoAddDevices"  "off"
EndSection

 

o. 10-monitor-screen.conf

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Monitor Vendor"
    ModelName      "Monitor Model"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "NvAGP"

    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

 

o. 20-video.conf

Section "Device"
    Identifier "Card0"
    Driver "vboxvideo"
    VendorName "InnoTek Systemberatung GmbH"
    BoardName "VirtualBox Graphics Adapter"
EndSection

 

o. 50-keyboard.conf

Section "InputClass"
    Identifier      "AT Keyboard"
    MatchIsKeyboard "on"
#   Driver      "kbd"
    Driver      "evdev"
#   Option      "XkbRules"   "xorg"
    Option      "XkbRules"   "base"
    Option      "XkbModel"   "jp106"
    Option      "XkbLayout"  "jp"
#   Option      "XkbOptions" "ctrl:swapcaps"
EndSection

 

o. 60-mouse.conf

Section "InputDevice"
        Identifier      "Mouse0"
        Driver          "vboxmouse"
        Option          "Protocol"      "auto"
#       Option          "Device"        "/dev/sysmouse"
        Option          "Buttons"       "5"
        Option          "ZAxisMapping"  "5 4 6 7 8 9"
EndSection

 
Xorg でディスプレーを表示させたり、キーボードやマウスを認識させたり、マウスホイールを動作させたりするには VirtualBox 側の「設定」が重要になってきます。

必要な設定内容を抜き出しました。

  • 「システム」の「ポインティングデバイス」は[PS2 マウス]を選択
  • 「システム」の「EFIを有効化」にチェック
  • 「システム」の他の「拡張機能」も必要に応じてチェック
  • 「ディスプレイ」の「グラフィックコントラー」は[VBosSVGA]を選択
  • 上記の設定を有効にすることにより一番下に「無効な設定が見つかりました」となるがとりあえず無視して[OK]を押す
  • CPU やメモリ容量については自分の好みでチョイス

 
こんな感じで設定して、 FreeBSD を起動して Xorg を起動すると動作してくれると思います。

ただ、一点。マウスのホイール機能がいまいち怪しい動作です。どうやら VirtualBox の他の機能に食われているようです。

FreeBSD の画面のメニューから「入力」をクリックして「マウス統合」を無効にしてみてください。

「マウス統合」を無効にすると、FreeBSD のウィンドから他のウィンドに移動する際、左 Ctrl ボダンを押す必要があります。シームレスにマウスが動作しません。しかし、VirtualBox の FreeBSD ではホイール機能はちゃんと動作するようになりました。ただ、ダブルクリックしてコピーしようとしたとき、下にちょっとズレたり、あまり使い勝手が良くないような・・。

このあたり、趣味の世界で利用方法を選択してください。

 
今回、初めてコッテリと Windows 側で FreeBSD を設定してみました。普段は PC 買ったら即『マルチブート』が鉄則になっていたので、まぁ、ある意味良い体験でした。これで、Windows 上の VirtualBox で FreeBSD が動作することも確認できたし、まぁ良しとするですかねぇ。

ちなみに、今回購入したミニ PC で World of Warships なるゲームを試してみましたが 3 分に一回落ちるとか、結構悲惨。ファイナル・ファンタジーのベンチマークとか走らせたら 1920×1080 のフル HD で 2700 とか。ゲームにはちとつらいか・・。

1月 272024
 

前回の Beelink MINI S 購入に引き続き、もう一個 MINI PC を購入してみしました。

と、いうのも比較的小型の OS が可動する装置としては Raspberry Pi を持っているのですが、どうも FreeBSD 14.0-RELEASE を arm7 とか arm64 で動作させるのに嫌気が差してきて『素直に amd64 で良いじゃん。』と、なり、今回の MINI PC の購入となったのでありました。

今回購入したのは NiPoGi GK3Pro ミニ PC というらしいです。これは Intel の第 12 世代プロセッサである Intel Celeron N5105 を搭載しています。メモリは 8GB で SSD は 256GB です。このスペックで 15,000yen 前後なので、随分と安い。今だと Raspberry Pi 4 とかと同じくらいではないかなぁ・・。値段的にも一緒であれば、 arm64 でなくとも良いよねぇ。みたいな・・。

ただ、値段が安いだけのことはあります。SSD は NMVe ではなく、SATA 接続の M2.SSD です。

安さの秘訣を一覧にしてみましょう。あ。全て FreeBSD/amd64 14.0-RELEASE で認識した内容です。

  • SSD は上にも書いた通り M2 SATA で 256GB の容量
  • サウンドカードは USB 接続の C-Media Electronics Inc. USB Audio Device で snd_uaudio.ko で認識
  • Bluetooth も USB 接続で Realtek Bluetooth Radio で ng_ubt.ko で認識されますが利用できるかは知りません
  • WiFi は Realtek RTL8821CE で if_rtw88.ko で認識できますが、まだ利用できません。これは PCIe にぶるさがっているっぽい

 
この辺りで基本的にプライスダウンしている感じでしょうか。ほとんどのデバイスが USB にぶるさがっているので BIOS の画面から Disable にできません。『FreeBSD で利用できないデバイスなんて要らないよー。』とか思って BIOS 画面覗いても Disable にする項目がないです・・。orz

pciconf -lv してみると none が 11 個もありますが、これは Intel の Celeron プロセッサを使っている PC のパターンでしょうか。

あと、悲しいことに、最近の PC のはずなのに USB-C ポートがありません。これは結構ショックでかい・・。orz。

 
この PC の使い方
さてと。気を取り直して・・。
例の如く、この手の中華製 MINI PC は付属の WindowsOS の出どころが非常に怪しいので、サクっと削除。
Windows Product Key Viewer という Windows のプロダクトキーを確認するアプリでチェックしてみると、やはり “B” のみが並んでおりました。これは Beelink SER4 を購入してチェックしたときにと一緒ですね。

しょーがないので FreeBSD 専用の PC にすることにしました。チョイスした OS は FreeBSD/amd64 14.0-RELEASE です。 CPU の Intel Celeron N5105 には Intel のバーチャリゼーション機能が搭載されているので vmm.ko を kldload した場合は bhyve で仮想環境が構築でき、また、起動時に vmm.ko を kldload していなければ virtualbox が起動できます。

この手の MINI PC って VMware ESXi が動作しなかったり、動作してもデバイスを認識してくれなかったりするので FreeBSD をインストールして仮想環境を構築するのはアリです。まあ、 VMware ESXi は Broadcom に買収されて、その後無料版の VMware ESXi がなくなることになるので FreeBSD+bhyve は今のところチョー注目株です;-)。
AlmaLinux+Docker の環境よりしきいが低いですかね。

ただ、その場合、メモリ 8GB はちょっと量が少ないので 16GB に拡張したほうが良いですかね。
Intel の Celeron N5105 のサイトを見ると対応メモリは 16GB までのようです。

HDMI の上の黒いパーツのネジを一本外して、横にスライドさせると内部にアクセスできます。

MINI PC の上のフタを開けると 2.5 インチの SATA SSD が装着できます。その下にメモリスロットが一個あって default で 8GB のメモリが入っいます。メモリ換装は簡単そうです。 M2.SATA SSD を換装するか、換装せずに 2.5 インチ STAT SSD を増設するか、微妙ではありますね。

ちなみに、上記の写真に写っているのは銅板ではありません。ただ単にテカリのあるプラスチックです:-|。

 
あ。そーそー。この MINI PC は、一個目の HDD として追加の 2.5 インチ STAT SSD が認識され、内蔵の M2.SATA SSD は二個目として認識されます。ちょっとーっ!! この辺りもおかしいよねぇ・・。 orz

以下は mount コマンドの結果。

/dev/ada1p2 on / (ufs, local, soft-updates, journaled soft-updates)
devfs on /dev (devfs)
/dev/ada1p1 on /boot/efi (msdosfs, local)
/dev/ada1p3 on /home (ufs, local, soft-updates, journaled soft-updates)
/dev/ada1p4 on /usr (ufs, local, soft-updates, journaled soft-updates)
/dev/ada1p5 on /var (ufs, local, soft-updates, journaled soft-updates)
/dev/ada0p1 on /opt (ufs, local, soft-updates)
<以下略>

 
何もかも怪しい筐体です・・。orz。

 
FreeBSD もインストールしたし virtualbox に WindowsOS もインストールしたので、これは外に持ち出しも OK っぽい。
仕事でデータセンタ行ったとき、IP アドレス付加したあとに inetd 経由で sredird が動作すればポートサーバ風に利用できてコンソール接続も可。なんてこともできるし。

小さいので夢が膨らみます;-)。

 
最後にですが、全然デバイスが認識できていない pciconf-lv の結果を添付してこのエントリは終了とします;-)。

hostb0@pci0:0:0:0:      class=0x060000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x4e24 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0:     class=0x030000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4e61 subvendor=0x8086 subdevice=0x2212
    vendor     = 'Intel Corporation'
    device     = 'JasperLake [UHD Graphics]'
    class      = display
    subclass   = VGA
none0@pci0:0:4:0:       class=0x118000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x4e03 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Dynamic Tuning service'
    class      = dasp
xhci0@pci0:0:20:0:      class=0x0c0330 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4ded subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
    subclass   = USB
none1@pci0:0:20:2:      class=0x050000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4def subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = memory
    subclass   = RAM
none2@pci0:0:21:0:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4de8 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Serial IO I2C Host Controller'
    class      = serial bus
none3@pci0:0:21:1:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4de9 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Serial IO I2C Host Controller'
    class      = serial bus
none4@pci0:0:21:2:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dea subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
none5@pci0:0:22:0:      class=0x078000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4de0 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Management Engine Interface'
    class      = simple comms
ahci0@pci0:0:23:0:      class=0x010601 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dd3 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = mass storage
    subclass   = SATA
none6@pci0:0:25:0:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dc5 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
none7@pci0:0:25:1:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dc6 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
sdhci_pci0@pci0:0:26:0: class=0x080501 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dc4 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = base peripheral
    subclass   = SD host controller
pcib1@pci0:0:28:0:      class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x4db8 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci0:0:28:1:      class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x4db9 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
none8@pci0:0:30:0:      class=0x078000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4da8 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = simple comms
none9@pci0:0:30:3:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dab subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
isab0@pci0:0:31:0:      class=0x060100 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4d87 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-ISA
hdac0@pci0:0:31:3:      class=0x040300 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dc8 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Jasper Lake HD Audio'
    class      = multimedia
    subclass   = HDA
none10@pci0:0:31:4:     class=0x0c0500 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4da3 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Jasper Lake SMBus'
    class      = serial bus
    subclass   = SMBus
none11@pci0:0:31:5:     class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4da4 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Jasper Lake SPI Controller'
    class      = serial bus
re0@pci0:1:0:0: class=0x020000 rev=0x15 hdr=0x00 vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller'
    class      = network
    subclass   = ethernet
rtw880@pci0:2:0:0:      class=0x028000 rev=0x00 hdr=0x00 vendor=0x10ec device=0xc821 subvendor=0x10ec subdevice=0xc821
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8821CE 802.11ac PCIe Wireless Network Adapter'
    class      = network

 
では。さようなら。

2月 042023
 

ちょっと前のエントリで「今年はキーボード色々。」というのを書きました。このエントリでは新たに「上海問屋 日本語 73 キー配列コンパクトメカニカルキーボード (TTC静音赤軸Ver.) DN-916082」を購入した。と、書いています。

で、このキーボード、カナ刻印ナシなんですよ。しかし、実際に利用してみると、僕ってすごいなっ!!カナ刻印なしでも日本語カナ入力で利用する文字が、ブラインドタッチで打ててしまっている自分がここにいる。と、いうことに気づかされました。

ヲレってすげーっ!! みたいな;-)。

が、しかし、時々つまずくこともあるですな。普段はあまり利用しないと思われる『ま』であったり、『や』『ゆ』『よ』などもちょっと悩む。これらのキーは右 Shift キーと同時押しの場合もある(つまり、ちっちゃい『や』『ゆ』『よ』を打ち込む場合ですな)。

やっぱりカナ刻印はあったほうが良いかもー。と、いうので、実はもう一個、ちっこいキーボードを購入購入してしまいました。

今度は赤軸ではなく、 NotePC みたいに薄い感じのキーボードです。俗にパンタグラフキーボード。などと呼ばれていたりするでしょうか。

とりあえず写真を。

上の写真は、もう 10 年くらい前に購入した Apple の USB の有線のキーボードです。で、下のが今回購入したキーボード。

「Arteck 2.4Gワイヤレスキーボード 無線」と、いうヤツで Amazon で 1,699yen で購入しました。雰囲気的には似てますな。打刻感もまぁ、NotePC に打ち込んでいるような雰囲気です。しかし、値段は上下の差が約 8 倍くらいか。でもって、1,699yen で購入したキーボードは USB の無線接続。 2.4GHz 帯を利用するので OS を選ばずに利用できます。

軽いので NotePC と一緒に持ち歩いても良いかもですね。まぁ、値段が値段だったので、そんな感じで購入しました。

 
が、やはり、慣れてしまうと赤軸なキーボードは捨てがたいですなぁ・・。と、いうことで、上海問屋の DN-916082 なキーボードにカナ刻印を・・。まずは手持ちのキーボードのキーを交換してみようと思いましたが、キーの裏の十字部分が合わずにあえなく玉砕。

 
そんなこんなで、『どうにかかならないもんか?ひらがな。』とか思い情報を集めたところ、なんとっ!! 100yen 均一なお店に、子供の勉強用にひらがなのシールが売っている。と、いう情報を見つけましたっ!!

シール的にはこんな感じっ!! これは行ける?!

で、実際にそのシールを貼ったキーボードがこちら。

おーー。すっかりとカナ刻印付きのキーボードになっているではないですかーっ!!

このワザ利用すると、どんなカナ刻印のないキーボードでも全然問題ないですっ!! すげーっ!!

HHKB がカナ刻印ナシの製品を出すようになって、色々なメーカがカナ刻印ナシキーボードを出すようになって、カナ入力な人は随分と肩身狭い思い、はたまた、選択枝が限られてきた世の中になりつつあったのに、これで一件落着ーっ!! って、感じです;-)。

 
今回はピンクのシールで丸ゴシックちっくなフォントのシールを貼りましたが、色々な 100yen ショップを回ると色々なフォントのひらがなシールが売っているので、自分のセンスやキーボードに合うのをチョイスするのが良いかと思われます;-)。

今の時代、ゲーミングキーボードとか鮮やかに光ったりするので、ピンクの丸ゴシックなフォントを利用しているシールを貼っても全然違和感のないモノに仕上がっている。と、自分自身思っている。それはつまりはただ単に『自己満足の世界』と、いう感じですけども。

 
カナ入力の人で、カナ刻印のないキーボードを使いたいっ!! HHKB でカナ入力したいっ!! という人は是一度試してみることをお勧めします;-)。

12月 312022
 

多分今年最後のエントリーです。今年一年ありがとうございました。

そもそも、ちょっと前のエントリで「キーボード色々購入。」と、いうのを書いていますな。それに追加で、キーボードを更に購入してしまっている自分がいるので、以前のエントリの『その後』を書いてみたいと思います。

と、いうことでまずはこんな感じ。

ふむー。ここにあるのは全部赤軸。以前は HHKB の USB モデルを使っていたのだけど、もう発売が停止になった新製品はカナ刻印なしなモノになったので、どうしようか悩んでいた。

macOS で Wiondows キーボードを。」のエントリで書いたエレコムのキーボードも良かったのだけど、赤軸使い始めたらどうももなじまない。困ったのぉ・・。みたいな感じ。

写真は上から順に、(安いものばかりなんだけど・・)一応赤軸のやつ。

で、今回は真ん中のやつを購入。これはドスパラの “問屋系” のキーボードで、製品名は「上海問屋 日本語 73 キー配列コンパクトメカニカルキーボード (TTC静音赤軸Ver.) DN-916082」ですな。静音なちょっとランクが高いのを購入してみました。確かに良い感じ。

矢印キー付いていて、GAMDIAS の HERMES S1R よりもちょっと小型で、机の上は広々利用可能です。けど、これ、カナ刻印ないんですな。その点が不安だったのですが、えいやっ!!と、購入してみました。

一番下のは以前のエントリで書いた 60% キーボードの「WENRUI メカニカルキーボード 日本語配列 キーボード」ですな。ここに、今回は新たに USB 無線接続のテンキーを追加してみました。
要は『矢印キーさえなんとかできれば使えるんじゃね?』と、いうことで格安で売っていたテンキーを矢印キーとして使えるようにしてみました。

 
以前のエントリで書いた通り、FreeBSD では ~/.xmodmaprc で、 macOS の場合は Karabiner-Elements で矢印キーを設定できたのですが、WindowsOS の場合は Microsoft PowerToys では他の OS と同様の設定が出来なかったので、一番下の組み合わせはお蔵入りになったのであります。 orz

それにしても、赤軸で無線でキー入力を飛ばせるキーボードってあんまり多くなくて、結構、継続的に使ってみたいキーボードだったのだけど、矢印キーが使えないのが本当にザンネンです・・。

 
と、いうことで、今は問屋のキーボードをメインで利用しております。カナ刻印なしなので、どうなるのか非常に心配だったのだけど・・。

ふむー。そもそも日本語かな入力はもう 30 年近く(超え? あ。間違い。越え?)て、打ち続けているので、これがまぁ・・。俗に言う『ブラインドダッチ』というのでしょうな。カナ刻印のないキーボードでも日本語がスラスラス打てているのが、自分でもチョー驚きというか、ある意味 “当然っ!!” というか。そんな感じなのでありました。

「キーボードは刻印にとらわれる必用はない。」と思えるようになると対象となる製品はドドドと開けてきますなぁ。ふっふっふっ。

 
と、いうことで、今年最後のエントリーは自画自賛で終わりを迎えるような気がしないでもないですが、今年は記事が前年より多く書けたような気がします。

最近は本当にもう、モチベーションが下がっている状態ですが、読んで頂きありがとうございました。来年もまたひとつ宜しくお願いします。

10月 242022
 

その昔購入した Lenovo V525 は Windows10 から Windows11 にアップデートして、 2022/10 の Windows Update を実行したら、画面がデスプレィに表示してくれなくなった・・。

回復 USB から青いメンテナンス画面を出して以前のバージョンに戻したり、適用した Windows Update を消したりして、なんとか復活したけど、この PC 、一番安いの購入したので CPU が AMD A6-9500 で、メモリ 4GB を 8GB にパワーアップして利用していたけど、最近は遅すぎてお話にならない。まぁ、最近は Ryzen7 の 8Core / 16 スレッドな PC を利用しているので、遅さにうんざり。って、感じでしょうか。

 
新しい PC を探していたのだけど、手頃で小型な PC が良い。と、いうことで、そーなると、AMD の Ryzen 搭載 PC はちと高め・・。
Intel の第11世代プロセッサである Intel Celeron N5095 を搭載している PC であれば、アーキテクチャが ATOM とはいえ、そこそこ速いであろうということで、Beelink MINI S を購入してみました。

メモリは 8GB 、 SSD は 128GB です。ただ、 M2.SSD ではなく SATA に接続されたモノなので、NVNE よりは遅いのと、買い換えるとしたらちょっと高価になるかな・・。と、いう状態。

amazon で購入しましたが 24,800yen のところクーポン 3,000yen 分がついていたので 21,800yen という、非常に格安な部類の PC が手に入りました;-)。

 
ただ、以前 Beelink SER4 を購入したとき、OS が怪しすぎたので返品しました。今回は継続して利用してみようかと・・。

ただ、やっぱり、不要なドライバがインストールされていたりするので、 Microsoft から Windows11 の ISO イメージダウンロードして、プレインストールの OS はサクっと、削除しました。

 
プレインストールされた OS は一応回復 USB を作成し、 c:\ 直下にあるドライバ類をバックアップしました。

Windows11 クリーンインストール後は Intel Serial IO I2C Host Controller が 7 個くらいあり、これらは認識しなかったので、バックアップしたドライバが入っていたディレクトリからインストールしました。
必要なドライバは全て入っているので、デバイスマネージャーで確認すると ! マークは一個もない状態になりました。

最近は AMD の PC ばかりが手元にあるので Intel プラットームの PC の状況はいまいち把握できていません。この Serial IO は FreeBSD でも根こそぎ認識していません。 pciconf -lv はほぼほぼ none です。

 
今回の PC 購入時に Windows のライセンスについてちょっと調べたのですが、「MAK ライセンス」というのがあるらしいですね。「マルチプルアクティベーションキー」の略だとか。これをメーカが利用すると、出荷する PC はドドドとライセンスを提供できるかな?

 
と、いうことで届いた MINI S はこんな感じ。 iPhone8 との比較ですが、随分と小さいです。これだと、カバンに入れて持ち運べそうです。例えばデータセンタに行けばディスプレーとキーボード・マウスがあるので NotePC を持ち運ぶ必要はないかもですね。

中身はこんな感じです。

実は U95 の写真をウェブで見ていて、メモリスロットが 2 つあると思い、別途 8GB のメモリを購入してしまいました。が、実際に開けてみるとメモリスロットは一個しかあふりません。 Beelink MINI S はメモリスロットは一個です。なので、メモリを増やす場合は 16GB の SO-DIMM を一枚購入する必要があります。 メモリの形式は SO-DIMM DDR4 2400MHz 1.2V です。

SSD は上にもかいた通り M2.SATA SSD です。増設は 2.5 インチ SATA SSD が増設できます。僕は FreeBSD をインストールするために SATA SSD 480GB (余り物) を増設しました。

上の写真だとアップですね。下のほうに M2.SATA SSD 上が、メモリモジュールを外したメモリスロット。一個しか無いです。

無線 /Bt チップは Intel Dual Band Wireless-AC 3165 を利用しているようですが、中を開けてみると M2.SATA SSD の右側にハンダでオンボードに固定のようです。ずいぶんとちっこいチップが写真の右側に見えると思います。

しかし、Dual Band Wireless-AC 3165 は速度出ないですね。 802.11ac で接続して通信確認しましたが 100Mbps 程度しか出ません。 筐体が小さい中に張り巡らせたアンテナの影響もあるのかな?

 
これでほぼ準備完了。 OS も新規に再インストールしたし、気分もドライバもすっきりっ!! ;-)。

実際に使ってみると ATOM の割には速いです。 Intel Celeron N5095 は比較的新しいアーキテクチャだからでしょうかね。まぁ、今まで v525 で利用していた AMD A6-9500 は 2Core でもありますしね。そこそこ頑張ってくれる PC が手に入ってラッキーでした;-)。

今回購入した Beelink MINI S は Windows11 で利用するための PC です。テレビに接続して、色々楽しみたいと思います。

 
と、いいつつ、当然 FreeBSD/amd64 13.1-RELEASE もインストールしました。

本当はこんなことやる必要ないのかもしれないのですが、 EFI 領域がどうなるのか解らなかったので、ちょっとトリッキーにインストールしました。
M2.SATA の Windows11 領域を 20GB ほど小さくして、そこに FreeBSD 用の / パーティションを準備して、/home /usr /var SWAP などは 2.5インチ SATA SSD 側にインストールしました。

サクっと起動して、 X11 まで起動して KDE5 が動作して suspend/resume します。 Dual Band Wireless-AC 3165 は iwm0 で認識します。 802.11a で通信できます。

まぁ、 一応デアルブートにしましたが Windows11 をメインで利用するので、これくらいで。最後に pciconf -lv をつけておきます。

hostb0@pci0:0:0:0:      class=0x060000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x4e24 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0:     class=0x030000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4e55 subvendor=0x8086 subdevice=0x2212
    vendor     = 'Intel Corporation'
    device     = 'JasperLake [UHD Graphics]'
    class      = display
    subclass   = VGA
none0@pci0:0:4:0:       class=0x118000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x4e03 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Dynamic Tuning service'
    class      = dasp
xhci0@pci0:0:20:0:      class=0x0c0330 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4ded subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
    subclass   = USB
none1@pci0:0:20:2:      class=0x050000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4def subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = memory
    subclass   = RAM
none2@pci0:0:21:0:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4de8 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Serial IO I2C Host Controller'
    class      = serial bus
none3@pci0:0:21:1:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4de9 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Serial IO I2C Host Controller'
    class      = serial bus
none4@pci0:0:21:2:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dea subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
none5@pci0:0:21:3:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4deb subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
none6@pci0:0:22:0:      class=0x078000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4de0 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Management Engine Interface'
    class      = simple comms
ahci0@pci0:0:23:0:      class=0x010601 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dd3 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = mass storage
    subclass   = SATA
none7@pci0:0:25:0:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dc5 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
none8@pci0:0:25:1:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dc6 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
pcib1@pci0:0:28:0:      class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x4dbc subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci0:0:28:5:      class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x4dbd subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
none9@pci0:0:30:0:      class=0x078000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4da8 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = simple comms
none10@pci0:0:30:3:     class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dab subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = serial bus
isab0@pci0:0:31:0:      class=0x060100 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4d87 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-ISA
hdac0@pci0:0:31:3:      class=0x040300 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4dc8 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Jasper Lake HD Audio'
    class      = multimedia
    subclass   = HDA
none11@pci0:0:31:4:     class=0x0c0500 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4da3 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Jasper Lake SMBus'
    class      = serial bus
    subclass   = SMBus
none12@pci0:0:31:5:     class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x4da4 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Jasper Lake SPI Controller'
    class      = serial bus
iwm0@pci0:1:0:0:        class=0x028000 rev=0x81 hdr=0x00 vendor=0x8086 device=0x3165 subvendor=0x8086 subdevice=0x8010
    vendor     = 'Intel Corporation'
    device     = 'Wireless 3165'
    class      = network
re0@pci0:2:0:0: class=0x020000 rev=0x15 hdr=0x00 vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller'
    class      = network
    subclass   = ethernet

 
NotePC のかわりにモバイルで持ち出すのもアリな雰囲気です。ちっこくて、ほどほど速い (ベンチ取らずに体感でのコメントで申し訳ない(^^;) し値段も手頃なので、まぁ『あり』なのかなぁ;-)。

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(^^;;。

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

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 のライセンスについて、状態が気にならない場合は、今回の僕の事象は気にせずに購入したり、そのまま使い続けも良いのではないかと思われます。

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

5月 242021
 

前回は FreeBSD/adm64 13.0-RELEASE にして、drm-fbsd13-kmod を gitHUB から持ってきてインストールしたら AMD Ryzen 7 PRO 4750U の GPU である Vega10 が amdgpu として動き出した。と、いうところで終わっています。

あ。そーそー。 xrandr で eDP として認識されたのでバックライトも動作するようになった。と、書いたところで終わっていますね。

今回はその続きからです。

まず、バックライトについてですが、コマンド的には backlight (8) になります。こいつのオプションはすげーですぜ。明示的に明るさを指定するパターンと、ちょっとずつ明るくもしくは暗くしていくオプションがちゃんと用意してあります。

$ backlight -h
Usage:
        backlight [-f dev]
        backlight [-f dev] -i
        backlight [-f dev] <percent>
        backlight [-f dev] incr|+ <percent>
        backlight [-f dev] decr|- <percent>
$ backlight incr 20
$ backlight decr 20

 
backlight incr 20 と打つと、まぁ、雰囲気的には 20% ずつ明るくなって、 backlight decr 20 と打つと、こちらも雰囲気的に 20% ずつ暗くなります。

おやまぁっ!! つまりは acpi_ibm.ko で Fn キーにコマンドイメージをそのまま割り当てれば、 hw.acpi.video.lcd0.brightness へ値を食わせてあげるより楽じゃね? となるのであります。

僕の場合は Plasma5 KDE (この書き方初めてだ。普段は『KDE5』とか書いちゃうんだけど;-) を利用しているので acpi_ibm.ko を利用せずとも、ショートカットを設定すればサクと明るさが変えられるのでありますっ!! すげーっ!! すげーよっ!!

 
と、いうことで『KDE システム設定アプリ』を起動します。

[ショートカット] → [カスタムショートカット] と来て左下に [編集] というのがあるので [New] (これは翻訳されてない;-) → [グローバルショートカット] → [コマンド/URL] を選択します。

すると「名前」のところに「新しいアクション」が青くなるので、任意の文字列を指定します。

僕の場合は以下のようにしました。

そして、[トリガー] タブを開いてキーを指定します。 Fn キーも指定できます。がっ!! LCD の明るるさ調整のペイントがある F5 と F6 には Xorg 的にキーが割り当てられていないようです。 xev で F5 ・ F6 を押してもキー番号が表示されません。あらら・・。

しょうがないので僕の場合は Ctrl + ボリュームアップ と Ctrl + ボリュームダウン にキーをバインドしました。

そして、[アクション] タブを開いて [コマンド/URL] のところに上のコマンドイメージを設定してあげます。

Ctrl + ボリュームアップ を数回押すと 20% ずつ画面が明るくなって Ctrl + ボリュームダウンを数回押すと 20% ずつ画面が暗くなっていきます。いやぁ。思い通りの動作です。キーバインドがプリントされているのとはちょっと違うのが悲しいですが、やりたいことはできました。パチパチパチ。

 
これで、ネタは一個おしまい。

 
さてと。前回のエントリの下のほうに以下のように書きました

  • Realtek のカードリーダ (RTS522A) が rtsx0 で認識して動くようになりました。
  • 音はスピーカーからもヘッドホン端子からも出ます。
  • CPU の温度が拾えるようになりました。
  • Intel Wi-Fi 6 AX200 はまだ動きません。
  • Suspend して Resume で起きても動きません。電源ボタン押すと shutdown はしてくれるようですが、ネットワークは利用できません。

 
そして、

次は suspend/resume にトライだぁ;-)。

と・・。

 
suspend/resume はまるで動作しなくなりました。 suspend してくれます。そのあと resume してくれなくなりました。 12.2-RELEASE の頃は resume 後、画面は真っ暗たけどネットワークが利用できるので ssh してリブートしたり、電源ボタン押すとそのまま poweroff してくれましたが、そういったことはなくなり resume した段階で、シューリョー・・。

あらま・・。

あと、驚いたのが AC アダプタ引っこ抜くとカーネルパニックします。なので FreeBSD を起動したら電源ケーブル (USB Type-C) を引っこ抜くことはできません。

そして poweroff の状態で電源ケーブルが抜かれているときに電源ボタンを押すと FreeBSD は無事に起動します。そして、電源ケーブルを接続するとカーネルパパニックで落ちます。

ACPI の電源周りのコードがまだまだ怪しいのだと思います。お気をつけください。

 
ただ、 13.0-RELEASE にしたおかげで良いこともありました。なんとっ!! デスクトップ機が suspend/resume できるようになりましたっ!!

僕の場合、『Sandy Bridge おじさん』ではなく『AMD FX おじさん』とでも言いましょうか。今でも PRIMERGY MX130 S2 を利用しているわけですが、この PC は UEFI では無く BIOS で動作しています。
なんとっ!! この PC で動作する FreeBSD/amd64 13.0-RELEASE はちゃんと suspend/resume してくれます。ただ、グラフィックスカードが GeForce 210 で、ドライバ的には x11/nvidia-driver-340 を利用しているので resume での復帰後、画面がブラックアウトしてしまいます。が、しかし、これは service sddm restart すれば復活します。

他の AMD 系の古めのグラフィックスカード Radeon HD 5450 辺りを利用するとどうなのかな? とも思うのですが、手持ちがありません・・。 Radeon HD 5450 はその昔利用していたので Xorg が動作することは知っていますが。

 
と、いうことでまさかまさかのデスクトップ機で suspend/resume できるようになっているとは知りませんでした。

 
さてと。話をもとに戻して ThinkPad X13 AMD での FreeBSD/amd64 13.0-RELEASE ですが、上にもある通り Intel Wi-Fi 6 AX200 はまだ動きません。 Windows10 では AX200 を利用していて、 FreeBSD では USB の if_rtwn.ko を利用していました。 Amazon で見つけた RealTek の 802.11a で接続できる USB ドングルを利用していました。

で、ふと思いました。『Intel AX200 使おうとするからダメなんじゃね?』と。では FreeBSD で動作する Intel の WiFi アダプタに交換してしまえーっ!! と。

と、いうことで、調達したのはこれ。

Intel Wireless-AC 9260 で、ウェブで最安値を探していたらメルカリで未使用品が売っていたので、購入してみました。 1,780yen でした。それなりに安い値段でゲットできてホッとしました。いまどき FreeBSD でも利用できる RealTek の 802.11a 用 USB ドングルでも 2,000yen 前後するので、それなら内蔵のほうが良いですねぇ。みたいな。

ただ NotePC の、オンボードに接続されている WiFi アダプタって何回か交換したことあるのですが、別のに換装して電源入れた段階で BIOS が『そんなパーツは知らんっ!!』とか言って PC 自体起動してくれないことを何回か経験したことがあります。

今回もそーなるかな? とか思い下調べしてみると、どうやら ThinkPad X13 は Intel Wireless-AC 9260 は行けるっぽい雰囲気。で、もし動作しなくても最近はお買い物に利用していなかったメルペイの残高で、そこはかとなく安い値段が提示されていたので『行くべっ!!』って感じでした;-)。

 
NotePC の裏ブタ開けて、無線モジュール交換して電源入れたら特に BIOS (今は UEFI か) に怒られることもなくスルスルっと起動しました。
まずは Windows10 で認識して速度計測してみると網内では 500Mbps 程度。 FreeBSD を起動して計測してみると 20Mbps 程度の速度が出たので、まぁ、ヨシとしておきました。 Windows のドライバと FreeBSD のドライバの性能の差がこれだけある。と、いうことですが、確か、シャアは「ドライバの性能の違いが、戦力の決定的差ではないということを・・・教えてやる!」と、言っておりましたなぁ;-P。

pciconf -lv で見るとこんな感じ。 iwm9260fw.ko と if_iwm.ko が kldload され、簡単に動作しました。

iwm0@pci0:2: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

 
余った Intel Wi-Fi 6 AX200 は FreeBSD でドライバが書かれるまで御蔵入りか、メルカリで、今度は売ってしまうか;-)。

それにしても、今まで USB WiFi を接続していた USB ポートがこれで一個空いたことになります。いやっほーっ!!

 
とまぁ、こんな感じでコツコツとやっていくうちに、だいぶベースシステムが動作してくれるようになりました。購入からそろそろ一年が経とうとしているところで、保証も切れていく雰囲気ではありますが・・。

あとの残りは本当に suspend/resume のみになった感じですが AC アダプタを抜き差しするとカーネルパニックするデグレード部分は今後、どうなっていくことやら・・。

それにしても、ほぼ毎日触っている ThinkPad X13 AMD ですが、ほんと FreeBSD でだいぶ動作するようになったことは嬉しいことです。

 
次回、この系統のエントリをかくときは壊れたときか suspend/resume が動いたときだと思われます;-)。

 
あ。思い出したように加筆しておきます;-)。

Windows10 側で FF14 のベンチマーク取りました。そのときのキャプチャをつけておきすますー。

ベンチマーク取ったとしても、ゲームはやらないんですけどね・・。ゲームするなら llvm11 とか rust のコンパイルしてかかった時間をベンチマークとして計測したほうが楽しいよねぇ。みたいな;-P。