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-server 本体です。
二番目の docker pull は ウェブで検索すると良く出てくる registry のウェブ UI です。
三番目の docker pull は registry のウェブ 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/
# cp cert.pem /opt/docker/repository/certs/domain.crt
# cp chain.pem /opt/docker/repository/certs/ca.crt
# cp 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(^^;;。

起動するときは以下のような感じ。

# 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 で) アクセスすると開いているかと思います。
レジストリサーバは 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-server 側の設定と起動方法になります。ウェブ UI がなくても上記 curl でイメージとタグ番号の確認はできます。

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

僕もずいぶんと悩みました。どんなにやっても ウェブ UI のコンテナから registry-server にアクセスできないっ!! ずっと、悩んでいたのですが、ようやっと、問題解決です。
先に種明かししますが、registry-server は 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-server の情報を表示できなかったんですね。

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

ウェブ 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 イメージを利用してみました。
-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-server に https でアクセスしに行って、ウェブ UI に登録されている情報を表示してくれるようになります。

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

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

 
では、どうして今回、ウェブ UI は『どうして表示できないのだ?!』と、悩んでいたのが解決できたか?
についてですが『そもそも https でアクセス行ってないからじゃね?』と、思ったから。が、ベースとなっていますが、 Docker イメージである 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 イメージも docker exec で /bin/bash で中に入れないとき、 /bin/sh とかだと入れるとか、他にもっと実は色々な入り方 (裏技) があるのかもー。と、関心させられた事象だったのであります。

そして、Port:5000 番でアクセスする registry-server と、Port:8080 でアクセスする registry-web 。ふぅ。なんとか構築することができたのであります。

 
今の 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 について書いてみます;-)。

10月 222021
 

以前のエントリで、FreeBSD の VRF (setfib) は正しく使えない。と、書いたことがありました。エントリ的には「FreeBSD でポリシールーティング。」と、いうヤツですね。

setfib 0 の中に setfib 1 のルーティング情報が載ってしまい、ルーティングテーブルがインターフェースと結びついていない。と、いうのが問題点だ。と、書いています。

しかし、設定の詳しい人に聞いてみるとちゃんとそーいう設定ができるらしいんですね。ちょっと、今更感満載なんですけども・・f(^^;;。
/etc/rc.conf に以下のように書くと良いみたいです。

#defaultrouter="192.168.22.1"
#ipv6_defaultrouter="2001:470:fe36:beef::1"

static_routes="0:vmx0 1:em0"
route_0="-net -inet default -gateway 192.168.22.1 -fib 0"
route_1="-net -inet default -gateway 192.168.1.1  -fib 1"

ipv6_static_routes="0:vmx0 1:em0"
ipv6_route_0="-net -inet6 default -gateway 2001:470:fe36:beef::1  -fib 0"
ipv6_route_1="-net -inet6 default -gateway 3ffe:6580:aa40::ffff:1 -fib 1"

ifconfig_vmx0="inet 192.168.22.20 netmask 255.255.255.0 fib 0"
ifconfig_em0="inet 192.168.1.20   netmask 255.255.255.0 fib 1"

ifconfig_vmx0_ipv6="inet6 2001:470:fe36:beef::20:1 prefixlen 64"
ifconfig_em0_ipv6="inet6 3ffe:6580:aa40::20:1      prefixlen 64"

 
defaultrouter の設定は必要ありません。
static_routes= と、 setfib が IPv6 対応になったので ipv6_static_routes= の二つのオプションがインターフェース名と setfib 番号を紐つけてくれます。そして、route_?= で default gateway を指定してあげれば良い。

この設定で起動したときのネットワークテーブルは以下の通り。

$ setfib 0 netstat -nr -f inet
Routing tables (fib: 0)
Destination        Gateway            Flags     Netif Expire
default            192.168.22.1       UGS         vmx0
127.0.0.1          link#1             UH          lo0
192.168.22.0/24    link#2             U           vmx0
192.168.22.20      link#3             UHS         lo0

$ setfib 1 netstat -nr -f inet
Routing tables (fib: 1)
Destination        Gateway            Flags     Netif Expire
default            192.168.1.1        UGS         em0
127.0.0.1          link#1             UH          lo0
192.168.1.0/24     link#2             U           em0
192.168.1.20       link#3             UHS         lo0

 
良い感じですねぇ。これで 192.168.1.30 辺りの PC から ping を打つと em0 から入ってきて、em0 から抜けていきます。良かったですねぇ。

 
しかし、問題なのは上記の設定を施したサーバ側です。

なんか、僕は思いっきり勘違いしていたか安直に考えすぎていました。 setfib した PC はなんでもかんでも setfib 0 側から出て行ってしまいます。これは想定していなかった・・。

em0 側に 192.168.1.0/24 が付いているのに、とある PC に対して ping 192.168.1.30 すると setfib 0 側、つまり、vmx0 側から出ていきます。
192.168.1.30 側では 192.168.22.20 に返すんだけど、返ってきていないことになっていて、到達性がない状態・・。orz

setfib を利用した VRF でルーティングテーブルが二つに分かれるのは良いんだけど、コネクテッドな IP アドレスに対するアクセスは setfib 0 のルーティングテーブルに関係なく、コネクテッドなインターフェースからパケットが出て行ってほしかった・・。

と、いうか、出ていくモノだと、思っていた。ここが、考えが甘かった点です・・。orz
うーむ・・。世間一般の VRF って、こーいう仕様なのか?

sysctl でコネクテッドな IP アドレスの場合はコネクテッドなインターフェースからパケットが出ていく。と、いうオプションはないものかのぉ・・。orz

 
この仕様のおかげで色々なものが動作しない・・。今悩んでいるのは MRTG。
ウェブ UI は setfib 0 を向いているんだけど、MRTG で情報を取得したいのは em0 なコネクテッドな IP アドレスを持つ宛先。 em0 側はそもそも LAN-ZONE でメンテナンスインターフェースという想定だしねぇ・・。

setfib 1 snmpwalk -v2c -c ICMPv6 192.168.1.30 system

 
これは動くんだけど、 MRTG.cfg に 192.168.1.30 にアクセスする設定を書いた mrtg を動作させようとしても動かない・・。

setfib 1 /usr/local/bin/mrtg /pathto/MRTG.cfg

 
mrtg は setfib 1 を無視して setfib 0 側から出ていくようです。まぁ、perl の内部構造に対して setfib 1 を食わせてあげないとどうしようもない状態かな。

似たようなのに httpd と MySQL の関係もありますな。 httpd は vmx0 側に開いているのは良いことで、別のサーバのコネクテッドな IP アドレスを持つ mysqld へのアクセスは em0 側で行いたい。だけど setfib 0 側から mysqld へのアクセスが出ていくのでこれはアクセスできんぞぉ・・

ansible も動かなくなった・・。AWX と ansible-playbook の関係も似たようなもん。もう、ヒサンすぎる・・。 orz

NFS マウントも /etc/fstab 内ではできなくて、 /etc/rc.clocal 内で setfib 1 mount_nfs -o tcp -o rw hoge と記載すると良いよ。なんてのが、どこかのフォーラムに書かれていたなぁ。 /etc/fstab が setfib に対応していない。

 
と、いうことでやっぱり FreeBSD の VRF は利用するのをやめる予感。

今のように出ていくパケット (established なパケット。と、いう意味かな) は何でもかんでも setfib 0 から出ていく。と、いうのとは別に、コネクテッドな IP アドレスの場合はコネクテッドなインターフェースからパケットが出ていく。と、いうオプションを用意してくれても良いと思うのだけどなぁ・・。

やっぱり pf のポリシールーティングに戻るかねぇ・・。

 
と、いうか、最後に書くんだけど、ネットワーク構成がまちがっている。と、いうことかな。

  • setfib 0 : em0 : サービス提供用ネットワーク
  • setfib 0 : em1 : バックヤード用ネットワーク
  • setfib 1 : em2 : ssh でのメンテナンス専用ネットワーク

 
FreeBSD で setfib な VRF を利用するにはこのように三つのネットワークが必要で「バックヤード用ネットワーク」は MRTG とか snmp、MySQL へのアクセス、と、いう感じでその目的をにして、「ssh でのメンテナンス専用ネットワーク」はリモート管理用に setfib をわけてあげる。と、いう感じですかねぇ。

10月 042021
 

今までは MVNO の IIJmio を契約していて、スマートウオッチが 990yen で売っていたので購入しようとしたら、免許証の写真をアプロードしろだのと、スマートウオッチ買うために、スマートフォン購入時と同じ手続きをしなければならない。
サポートに電話して確認しようとしたら 0570 の電話番号だし、最近 IIJmio のアプリポロボロだし IIJ なのにウェブページにアクセスしようとしてもクラウドに AutoScale とかしようとしないのか、全然見ることできないし・・。
ホトホト嫌気がさして、サクっと解約。ついこの間「IIJmio ギガプラン」の 4GB 版に更新したばっかりだけど、約二ヶ月で解約。

 
と、いうことで三台あるスマートフォン (Apple iPhoneOPPO Reno ASONY Xperia 10II (XQ-AU52)) うち、IIJmio で利用していたのは Xperia だったので、そこに楽天モバイル並の料金で運用できると思われる povo 2.0 を導入してみることにしました。
ちなみに楽天モバイルの SIM は Reno A に入っています。iPhone8 には Y-monile が入っています。

で、今回は物理 SIM なので、届いたのはこんな感じ。

CD みたいな梱包でした。

 
さてと。結論からいいますと Xperia 10II の海外版である XQ-AU52 では、au の SIM である povo は、通話ができませんでした。データ転送は特に問題なく利用できます。

通話のほうについては、箇条書きで。

  • Xperia 10II の海外版である XQ-AU52 は日本国内の VoLTE に対応していません。
  • au は 3G の場合は WCDMA なので XQ-AU52 では 3G に接続できません。
  • 国内向け VoLTE に対応していないスマートフォンは、フツーであれば、通話は 3G で行います。が、XQ-AU52 は WCDMA に接続できません。

 
と、いうことでデータ通信はできますが、通話はできません。Android の「デバイス情報」で確認しても SIM が入っている スロット 1 では電話番号が “不明” となっています。

まぁ、XQ-AU52 での通話に関してはあきらめましょうかねぇ。 VoLTE に対応していない端末で au の SIM を利用しようとした (つまりは何も予備知識・事前の調査などをしていなかった・・。orz) 当人がダメだった。と、いうことでしょうなぁ・・。

ちなみに iPhone8 と RenoA では問題無く通話もデータ通信も行うことができました。

 
なお、データ通信についてですが、特に問題なくできました。
APN は簡単なので手で打っても問題ないですし「ネットワークとインターネット」のメニューから「インターネット設定」をタップすると APN の情報をダウンロードして来てくれるので povo の設定をそのまま利用することができます。

「優先ネットワークの種類」は Android の隠しコマンド *#*#4636#*#* で LTE Only も選択可能ですが、その辺りについては、特に意識する必用もなく LTE/WCDMA/GSM でも大丈夫でした。

 
と、いうことで、早速 データ追加 1GB (7 日間) を 390yen で購入してみましたが、検証段階で、あっという間に終わってしまいましたf(^^;;。

では、トッピングを購入していない povo ではどれくらい利用できるのか?僕の思った感覚ですが、

  • 通話の受信は大丈夫。SMS の受信も大丈夫 (XQ-AU52 以外の端末で)。
  • データ通信時、トッピングがない場合、povo 2.0 のアプリを起動してトッピングを購入する程度の通信はできる。常用するには無理がある・・。
  • XQ-AU52 は au のメインチャンネルである Band18 が利用できないので、そもそも au の SIM には根本的に向かない端末である。

こんな雰囲気でしょうかねぇ・・。トッピング購入せずに利用する。と、いうのは携帯電話の受電と SMS の受信のみが効果的でしょうかねぇ・・。

 
さてと。僕の場合、 XQ-AU52 で au の SIM が利用できない。と、いうことが解ったので、このまま、トッピングは購入せず 180 日後に自動解約・・。と、いう運命をたどりそうな感じなのであります・・。

7月 292021
 

前回のエントリでは Let’s Note CF-SZ5 の中古を購入して FreeBSD/amd64 13.0-RELEASE をインストールしました。そして、無事に動作して、なんちゃってな suspend/resume が動作しているところまで書いています。

 
さて、suspend/resume ですが、ports-CURRENT を追いかけていると、以下をインストールした辺りで正常に suspend/resume が動作するようになります。

  • drm-fbsd13-kmod-5.4.92.g20210720_1
  • mesa-dri-21.1.5
  • mesa-libs-21.1.5

もう、 /etc/rc.resume の中に色々書く必要ないです。

/etc/sysctl.conf に、以下の設定を記載すると、フタの開け閉めで suspend/resume ができるようになります。

# suspend/resume
#hw.acpi.lid_switch_state=NONE
hw.acpi.lid_switch_state=S3
hw.pci.do_power_suspend=0
hw.acpi.lid_switch_state=S3
hw.acpi.power_button_state=S5

 
すごいことですねぇ。 NotePC でバリバリ利用可能な FreeBSD の完成です;-)。

 
と、いうことで、ここからが本題。

以前のエントリでは Let’s Note のクルクル回すタッチパットでスクロールできない。と、書いていましたが、こちらも問題解決できたので、追加でエントリ書いてみたいと思います。

 
インターネット上で色々探してみると古い FreeBSD のバージョンでは特に気にすることなく動作していたみたいですが、12 系リリースの辺りからクルクルホイールさせるためには色々とワザが必要なって来たようです。

まず、カーネルがブートしたときの psm の状況を見てみましょう。
あ、このとき、/boot/loader.conf には以下のように設定してあります。

# psm/sysmouse
hw.psm.synaptics_support=1
hw.psm.trackpoint_support=1
#hw.psm.elantech_support=1

 
hw.psm.synaptics_support=1 が記載してあります。

それでもブート時には以下のように表示されます。

$ dmesg | grep psm
psm0:  flags 0x1000 irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
WARNING: Device "psm" is Giant locked and may be deleted before FreeBSD 14.0.
psm0: model Generic PS/2 mouse, device ID 0

 
このようになっていた場合、どう xorg の synaptics 設定を書いてもクルクルホイールできません。ただのタッチパッドの動作になります。この状態では、とあるおまじないをする必要があります。

おまじないが有効化されるとこのようになります。

$ dmesg | grep psm
psm0:  flags 0x6000 irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
WARNING: Device "psm" is Giant locked and may be deleted before FreeBSD 14.0.
psm0: model Synaptics Touchpad, device ID 0

 
一番最後が model Generic PS/2 mouse か model Synaptics Touchpad の違いです。

ではどのようにすると model Synaptics Touchpad になるのか?

ソースコードをいじる必要があるんですねぇ・・。
いやぁ、ようやっと、ネタを見つけた。と、いうか・・。

https://github.com/wulf7/iichid/issues/53

pciconf -lv したときに ichsmb0 があると良いのですが・・。 kldstat で ichsmb.ko がロードされているか確認してみてください。

さて、上記 URL を確認してみると、タッチパッドが SMBus 経由で動作するかもしれん。と、いうことで /usr/src/sys/dev/atkbdc/psm.c を書き換えてみてください。と記載されています。

--- psm.c.orig  2021-04-13 10:02:53.550143000 +0900
+++ psm.c       2021-07-28 10:23:34.503022000 +0900
@@ -6315,7 +6315,7 @@
                    active_ports_count);
 
        /* psm has a special support for GenMouse + SynTouchpad combination */
-       if (active_ports_count >= 2) {
+       if (active_ports_count >= 1) {
                for (port = 0; port < KBDC_AUX_MUX_NUM_PORTS; port++) {
                        if ((active_ports_mask & 1 << port) == 0)
                                continue;

 
(active_ports_count >= 2) の部分を 1 に書き換えたあと、カーネルを作り直して再起動してると・・。
おやまぁっ!! psm0 が model Generic PS/2 mouse から model Synaptics Touchpad になったではありませんかっ!!

最近の Let’s Note のタッチパットでクルクルを有効化させるためにはコードを修正する必要がある。と、いう感じでしょうか。

 
あとは xorg の設定をしていきます。僕の場合、/usr/local/etc/X11/xorg.conf.d/70-synaptics.conf を用意しました。

Section "InputClass"
    Identifier          "touchpad catchall"
    Driver              "synaptics"
    MatchIsTouchpad     "on"
    MatchDevicePath     "/dev/input/event*"
    Option              "CircularScrolling"     "1"
    Option              "CircularScrollTrigger" "0"
EndSection

 
/dev/input/event は何番になっているか? とかは libinput list-devices コマンドが良い感じかも。

あと、他の設定はどこに書いたら良いのか・・。僕の設定は /etc/sysctl.conf に書いていました。色々やったけど、動かなかったので /etc/sysctl.conf に書いていた。と、いう状態でしょうか・・。

# synaptics mouse 
hw.psm.synaptics.vscroll_hor_area=1300
hw.psm.synaptics.min_pressure: 16
hw.psm.synaptics.max_pressure: 220
hw.psm.synaptics.max_width: 10

 
こんな設定が入っていましたf(^^;;。これが効いているのかは sysctl で確認。と、いう感じです。
あと、KDE5 を利用している場合「KDE システム設定」の「入力デバイス」→「タッチパッド」で GUI 的に色々設定できるのでそっちで細かい設定をしたほうが直感的かも。

それにしてもようやっと、ホイールが動作してタッチパッドが動作するようになりました。嬉しいかぎかぎカギリですです。

ホイールクルクル回す他に、二本指で上から下に、もしくはその逆になぞるとスクロールもしてくれます。動作的には ThuinkPad X13 AMD みたいな感じかな。

 
さてと。これで Let’s Note CF-SZ5 はほぼぼカンペキな FreeBSD マシンになりました。 ThinkPad X13 AMD の Renoir が今でもまともに動作しないので、どうしてもこの NotePC が FreeBSD のメイン機として活躍していきそうな気配です。

 
あと、この NotePC は vPro が動くみたい(さすがはビジネス向けっ!!)みたいですが、 FreeBSD はそもそも vPro が動作しないようです。