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。