Linux エミュレータから使うブラウザ。

実は、 FreeBSD の Firefox を利用して Y!mobile のホームページを見ると『推奨のブラウザをご利用ください』と出てそれ以上先に進めなくなってしまう。

google Chrome ならええんかい? とか思っても FreeBSD の Chrome は Chromium で、かつ、今の世の中になっても qt5 を利用しているので、インストールしたくない。仮に ports からイントールして常用したとしても新しいバージョンが出ると毎回 3,4 時間くらいコンパイルに時間がかかって辛いし・・。なにか良いものはないものか・・。

僕的には qt6 対応の標準的なブラウザが欲しいのであります。今 qt6 を利用するブラウザとなると qt6-webengine を利用しているので konqueror や Falkon 辺りかな。まぁ、これらは KDE6+Plasma6 インストールすると入るのだけど(最近、Falkon はメインストリームから外されたかな)。

しかし、なんか、もっとメジャーなブラウザがほしいと思い、探し回っていてふと思った。
Linux 版の Chrome だけど、これは ports にもなっている。 /usr/ports/www/ 辺りを見ると linux-chrome とか linux-brave とかいうブラウザが存在しています。これ使ってみようかなぁっ!!

 
と、言うことで、前フリはここまで。今回は FreeBSD に Linux 環境を整えてみます。とはいいつつ、もう随分と前から FreeBSD で Linux のアプリが動作します。僕も随分前に色々試したこともありました。が、このブログのエントリを検索してみても、ネタとして書いたことないかもですね・・。

 
では、早速環境を整えましょう。

# cd /usr/ports/www/linux-brave/
# make install
# cd ../linux-chrome/
# make install

 
こんな感じでしょうか。 Linux エミュレータ環境をドドドと、インストールしてくれます。今回は FreeBSD/amd64 15.0-RELEASE なのですが、 linux-rl9 (Rocky Linux 9.7 の環境)がインストールされるようです。RPM 的には合計 88 個。すごい量ですねぇ。
/usr/ports/distfiles/rocky/ の中は全部で 516MB になります。それなりに Disk の肥やしですねf(^^;;。

 
それでは、環境が整ったようなので、実際に起動してみましょう。
あ。 /etc/rc.conf で linux_enable=”YES” を記述しましょう。カーネルモジュールについては kld_list=”amdgpu.ko” とか書いていると思うので、既に linux.ko や linux64.ko が kldload されていると思うので、特に問題はないでしょう。

と、いうことで気を取り直して起動してみます。

$ file /usr/local/share/chrome/chrome
/usr/local/share/chrome/chrome: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=c02ff1455d57b0a4d8f61bea1cf75241e6f6f051, stripped
$ /usr/local/bin/google-chrome
[1225/142428.343466:WARNING:chrome/app/chrome_main_linux.cc:82] Read channel stable from /usr/local/share/chrome/CHROME_VERSION_EXTRA
[4507:4507:1225/142428.447050:ERROR:base/memory/platform_shared_memory_region_posix.cc:214] Creating shared memory in /dev/shm/.com.google.Chrome.vT6kQZ failed: サポートされていない操作です (95)
[4507:4507:1225/142428.447278:ERROR:base/memory/platform_shared_memory_region_posix.cc:217] Unable to access(W_OK|X_OK) /dev/shm: 許可がありません (13)
[4507:4507:1225/142428.447287:FATAL:base/memory/platform_shared_memory_region_posix.cc:219] This is frequently caused by incorrect permissions on /dev/shm.  Try 'sudo chmod 1777 /dev/shm' to fix.
[1225/142428.456415:ERROR:third_party/crashpad/crashpad/util/linux/ptracer.cc:44] ptrace: Invalid argument (22)
[1225/142428.456766:WARNING:third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc:400] Couldn't initialize main thread.
[1225/142428.456785:ERROR:third_party/crashpad/crashpad/util/linux/proc_task_reader.cc:47] format error
[1225/142428.456792:WARNING:third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc:391] thread ID 4507 not found in process
[1225/142428.456816:ERROR:third_party/crashpad/crashpad/snapshot/linux/process_snapshot_linux.cc:129] thread not found 4507
[1225/142428.456915:ERROR:third_party/crashpad/crashpad/util/linux/proc_task_reader.cc:47] format error
トレース・ブレークポイントトラップ(coreを出力しました)
$

 
あら・・。orz

起動せずに core dump してしまいました。出力されたメッセージをよぉーく見てみると『Creating shared memory in /dev/shm/.com.google.Chrome.vT6kQZ failed: サポートされていない操作です (95)』と、表示されています。この辺りをヒントに調査してみると、以下のようになっていました。

$ ls -lad /compat/linux/dev/shm
dr-xr-xr-x  2 root wheel 512 Dec 26 07:44 /compat/linux/dev/shm/

 
Linux 上で動作するアプリケーションはシェーアドメモリを利用するのですが、その場合 /compat/linux/dev/shm/ を利用しますが、一般ユーザで起動しても書き込み権限がないので起動せず終了してしまうようです。

では、 /etc/fstab はどうなっているの? と、いうことですが、以下のようになっています。

linproc         /compat/linux/proc      linprocfs       rw      0       0
linsysfs        /compat/linux/sys       linsysfs        rw      0       0
tmpfs           /compat/linux/dev/shm   tmpfs           rw,size=1g,mode=1777    0       0

 
tmpfs を 1GB 確保し mode 1777 でマウントするように記載しているのですが、実際には 555 でマウントしてしまっているようです。どうしてだろ?僕の設定が何か足りないのか?
なので、しょーがないので、一旦 umount /compat/linux/dev/shm してから mount -a してあげると、今度は 777 でマウントできました。何かがおかしい・・。orz

再度 /usr/local/bin/google-chrome や /usr/local/bin/brave-browser を起動すると無事に起動するのでありましたっ!!

なんかすごいっ!!

せっかくなのでブラウザを並べてみました。一番下が FreeBSD 版 Firefox。真ん中が Linux 版 brave-browser。一番上が Linux 版 google-chrome になります。良い感じですね;-)。
『これより三役』って、雰囲気です。 vivaldi があるともっと嬉しかったですが。

linux-chrome なり linux-brave のどちらか一方をインストールすると Linux 環境が整うため、あとは比較的容易にインストールできます。そらそーだ。ただ単に dnf install で RPM をインストールするだけだし。自力で /usr/ports/www/chromium/ をソースからコンパイルするより簡単です;-)。

 
が、使い込んでいくと何個か目につくようになりました。

一個目。日本語入力できないですね。これはまだ、格闘し足りないのかもしれません。もしかしたら FreeBSD 側の fcitx5+mozc で Linux のアプリに対して文字入力できるようになるのかもしれませんが、僕はまだそこまでたどり着いていません。
引き続き調査したいと思います。

二個目。上に書いた通り FreeBSD 側の機能を受け付けてくれないのに、KDE6+Plasma6 の場合では kdewallet を利用します。また、ブラウザで Proxy サーバを設定する場合、 systemsettings の「プロクシ」設定を利用したりと、結構 FreeBSD 側のモノを利用したりしています。

 
とまぁ、こんな感じで使い込み始めたのですが、ここで一番上に戻って、Linux 版の Chrome で Y!mobile のサイトにアクセスしてみるとどうなる? と思い確認してみたところ・・。果たして、やはり「推奨のブラウザをご利用ください」と、表示されてしまうのでありました・・。
もう OS レベルのお話なのでしょうな。素直に Windows か macOS 、はたまた、スマートフォンで見るのが良いのでしょう・・。

 
しかしっ!! FreeBSD 上で動作するブラウザが増えたこと良いことです。また、せっかく Linux 環境が構築できたので、他にも有用な Linux 専用アプリがあったらインストールして試してみたいと思いました。

Rakuten WiFi Pocket Platinum が届いたので色々試した。

楽天モバイルは年内に 1,000 万回線突破を目指しているので、色々なところで配っているらしい。
例えばこんな記事。

https://k-tai.watch.impress.co.jp/docs/column/minna/2066548.html

 
僕の場合は、書いて良い(公にして良い)のかよく分からなくて、止められてはいないので書いてしまうが、某社にて、先着 1,000 名にプレゼント。ギガ使い放題・永年無料(会社を辞めるまで)というキャンペーンがあったので、それで申し込んだら見事にゲットできた。と、いう状態です。

ただし、条件があって、SIM カードは他のスマートフォンに入れてはダメ、海外での利用はダメとかありました。

 
と、いうことでせっかくゲットできた Rakuten WiFi Pocket Platinum ですが、色々試したのでちょっと掲載してみます。

 
1.スペック
まぁ、もう既に色々なところで書かれているのでサラリと。アップリンク側は楽天モバイルの 4G にしか接続しません。
Wi-Fi AP 側は 802.11g or n (?)での接続となります。

こらぁー確かに『ギガ使い放題』とはいえ、速度は出ないですな・・。orz

ちなみに楽天モバイルが提供するちょっと速い 4G だと google のスピードテストで大体 92Mbps 出ました。このアンテナが楽天のものなのか au のものなのかはわかりませんが・・f(^^;;。

まぁ、楽天モバイルの 4G アンテナと Wi-Fi の 802.11g で 20Mbps 程度出れば良いのではないかと思われます。

 
2.AP として Wi-Fi で利用
Wi-Fi AP に接続すると DHCP で 192.168.0.0/24 が割り当てられます。SIM カード側は 10.61.0.0/?? 台のアドレスが割り当てられます。管理画面で確認するとレンジが書いてないので、どれくらいの CIDR なのかわかりません。しかし、 SIM 側の IP アドレスがプライベート IP ということは、つまりは多段 NAT と、いうことですね。

Wi-Fi AP に接続した場合は IPv6 も降ってきます。 IPv6 での通信はフツーに利用できます。ただ、楽天モバイルの DNS に問い合わせしたときの解答が IPv4 しかない FQDN だと「権限のない回答」とか言われてなかなか面白い IPv6 アドレスが返ってくるので、 IPv4 サイトにアクセスするときは Windows などでは IPv6 をオフにする必要があるかもです。もしくは参照先 DNS を変えるかですかね。

PS C:\Users\takachan> nslookup -type=aaaa ascii.jp
サーバー:  UnKnown
Address:  240b:c000::cafe:1

権限のない回答:
名前:    ascii.jp
Addresses:  64:ff9b::3a4:7930
64:ff9b::3a4:7962
64:ff9b::3a4:7920
64:ff9b::3a4:7948

 
2025/12/18 加筆
失礼しました。楽天モバイル内のネットワークは NAT64/DNS64 対応で構築されていて、実際には IPv4 が利用されていないのですね。
上記の IPv6 アドレスは変換アドレス用の Well-known prefix である 64:ff9b::/96 を返している。と、いうことですね。
と、いうことは『IPv6 をオフ』にするのではなく、実際には『IPv4 をオフ』にしたほうが良いですね。
FreeBSD から Wi-Fi AP に接続し IPv6 オンリーの設定を入れてしばらく過ごしましたが、確かに十分に暮らせるようです。

ただ Windows 用の FortiClient などは IPv4 がないと正常動作しないので Forti の機器が IPv4 でのみで接続する場合は IPv6 をオフにする必要があるようです。
加筆ここまで

 
速度は 802.11g の速度です。まぁ、覚悟しましょうf(^^;;。

 
Wi-Fi AP に対して接続した場合は IPv6 アドレスが割り当てられるのですが、外部から、割り当てられた IPv6 に対してアクセスしようとしても到達性がありませんでした。IPv4 のほうは多段 NAT なので当然無理。

 
3.USB 接続で NIC としての利用
Rakuten WiFi Pocket Platinum は USB-C のポートがあります。充電用ですね。ただし、これを Windows PC などに接続して『Windows の USB ポートで充電しよう。』などと思うと、いつの間にか NIC の足が生えて勝手に DHCP で Rakuten WiFi Pocket Platinum から IPv4/IPv6 アドレスが払い出されてとんでもないネットワーク構成になってしまう。なんてことがあるので注意が必要です。

データ通信対応ではない、充電専用の USB-C のケーブルが必要になります。

 
USB 接続で Rakuten WiFi Pocket Platinum を利用した場合、 802.11g の速度に引っ張られることがありません。つまりはアップリンク側の 4G 回線の速度に委ねられる。と、いうことです。
で、上で書いた google のスピードテストで 92Mbps 出た。というのは USB 接続して叩き出した速度。と、いうことになります。

NIC として利用したほうが良さそうですね。

あと USB 接続した PC で利用している状態でも Wi-Fi AP としては利用可能です。 PC で充電しつつ、USB NIC として利用しつつ Wi-Fi AP としても利用できる。そんな使い方もできます。

 
ちなみにですが、僕の持っている iPhone15 に USB-C で接続すると Ethernet というメニューが出てきてイーサーケーブルでの通信として利用することができます。

どのようなシチュエーションで利用するのだ?と、言えば、ahamo が遅くてクソの役にも立たないとき『楽天モバイル使える?』みたいな状態がないこともない。みたいな雰囲気でしょうか;-P。

デバイスは MDM9207 として認識されます。これ何?とか思い調べてみると Qualcomm 製の LTE チップのようですね。まぁ、これがすごいことになるのですが。続きは次の章で。

 
4.FreeBSD での利用
では、この Rakuten WiFi Pocket Platinum を FreeBSD に USB-C 経由で接続したらどうなるの?
と、いうことで、 FreeBSD に接続してみました。

$ usbconfig
ugen2.4: <MDM9207 Qualcomm, Inc.> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)

 
となっています。なるほど Qualcomm MDM9207 だ。dmesg だと、

ugen2.4: <QCOM MDM9207> at usbus2
urndis0 on uhub1
urndis0: <QCOM MDM9207, class 0/0, rev 2.00/4.14, addr 3> on usbus2
ue0: <USB Ethernet> on urndis0
ue0: Ethernet address: 6e:c1:91:aa:bb:cc

 
と、いうことで ue0 で認識できました。

雰囲気的には以下のような感じでしょうか?

4G MDM9207 UFI ドングル ワイヤレス アクセス ポイント と USB ドングル U811 MDM9207 4G モデム

 
ここにバッテリー積んで液晶ディスプレー付けて USB-C にして製品化したものが今回のモノと似ている気がします。

 
話がちょっと逸れましたが ue0 で認識したので dhclient ue0 で IPv4 が降ってきます。 IPv6 も指定できますが通信ができませんでした。
wlan0 経由で Wi-Fi AP に接続すると無事に IPv6 でも通信できるし ping ff02::1%wlan0 すると default gateway が応答してくれるので設定できるのですが、 USB-C で接続したときは ping ff02::1%ue0 しても応答がないし Rakuten WiFi Pocket Platinum の管理画面で確認できる IPv6 アドレスを default gateway に設定しても ping が当たりませんでした。残念・・。

Windows11 の場合は IPv4/IPv6 共に利用できるので、どうして FreeBSD だけ IPv6 が利用できないのか不思議です・・。

 
FreeBSD の wlan0 は、一個前のエントリに書いた通り、様々なデバイスで最高 802.11a 止まりなので、速度的に 20Mbps 程度が限界。今回の Rakuten WiFi Pocket Platinum を USB-C 経由で接続してスピードテストしたら 30Mbps を超えていました。と、いうことは wlan0 の壁をやぶっている。と、いうことになります。通信速度は楽天モバイルの 4G の速度での通信が行えていることになります。

FreeBSD で利用する分には Wi-Fi 経由より USB-C 接続で利用したほうが幸せになれそうです。

 
と、いうことで突如手元に来た Rakuten WiFi Pocket Platinum で遊んでみました。僕の場合は費用は全く発生しないのですが、今だと 1yen でキャンペーンしているのかな?

一家に一台。とは言いませんが、正直 FreeBSD でサクっと動作したのには驚いた;-)。

FreeBSD 15.0-RELEASE で色々試す Wi-Fi。

FreeBSD の 15.0-RELEASE がリリースされました。ここのところ新しいバージョンがリリースされるごとに試すのが ThinxPad X13 に搭載されている Intel AX200 で 802.11ac に接続できるか試験。

このブログでも過去に何回か書いています。直近ですと 13.0-STABLE で if_iwlwifi を試していますね。が、その後も 802.11ac はダメで、結局 14.3-RELEASE になっても 802.11a 止まり、かつ suspend/resume に対応していなくて全然実用に耐えられないので、bhyve で ubuntu に PCI パススルーして ubuntsu 側で 802.11ac を利用などしていたのですけども。

では、今回新しく出た 15.0-RELEASE はどうか?

15.0-RELEASE の リリースノートを見ると・・。

https://www.freebsd.org/releases/15.0R/relnotes/#wireless-networking

 
ワイアレスネットワークでは LinuxKPI 由来の if_iwlwifi.ko と、新しく OpenBSD から持ってきた if_iwx.ko の二つが利用利用可能になったようですっ!! どちらも 802.11ac に対応したようです。

また RealTeK の RTL8821CE も利用可能になったようです。こちらは既に 14.3-RELEASE から 802.11n であれば if_rtw88.ko でフツーに使えるようになっていたのでまぁ、大丈夫でしょう。今回は if_rtw88.ko の話は無しです。

 
さてと。最初から結論を書いてしまいましょう。僕の持っている ThinkPad X13 (多分) Gen1 の Intel Wi-Fi 6 AX200 は iwlwifi0 でも iwx0 でも 802.11ac では動作しませんでした・・。orz。

pciconf -lv の結果は以下です。AX200 は 802.11ac で利用可能だと書いてあっただけど、型番とか違うのかな?

iwx0@pci0:3: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

 
残念なのですが、一応利用するための手順を書いておきます。

 

1.if_iwlwifi.ko を利用する
/etc/rc.conf に利用するカーネルモジュールを記載します。そして、ifconfig でデバイスを指定する。

kld_list="amdgpu.ko if_iwlwifi.ko"

wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA DHCP ssid WiFi-AP"

 
pciconf -lv にもデバイスが iwlwifi0@pci0:3:0:0 になります。

if_iwlwifi.ko をロードすると起動時に以下のように認識するようになります。

wanchan kernel: iwlwifi0:  mem 0xfd600000-0xfd603fff at device 0.0 on pci3
wanchan kernel: iwlwifi0: Detected crf-id 0x3617, cnv-id 0x100530 wfpm id 0x80000000
wanchan kernel: iwlwifi0: PCI dev 2723/0080, rev=0x340, rfid=0x10a100
wanchan kernel: iwlwifi0: Detected Intel(R) Wi-Fi 6 AX200 160MHz
wanchan kernel: iwlwifi0: successfully loaded firmware image 'iwlwifi-cc-a0-77.ucode'
wanchan kernel: iwlwifi0: loaded firmware version 77.0b4c06ad.0 cc-a0-77.ucode op_mode iwlmvm
wanchan kernel: iwlwifi0: Detected RF HR B3, rfid=0x10a100
wanchan kernel: iwlwifi0: base HW address: a8:7e:ea:aa:bb:cc

 
あとは /etc/rc.conf 内の設定や /etc/wpa_supplicant.conf の設定をしていれば利用可能になります。
ifconfig wlan0 scan とかコマンド打って AP を探して表示できれば使えています。

そもそも自分が使っている Wi-Fi 機器が 802.11ac や ax に対応しているか、確認するには以下のコマンドを打てば良いです。

$ ifconfig -v wlan0
wlan0: flags=8843 metric 0 mtu 1500
        options=0
        ether a8:7e:ea:aa:bb:cc
        inet 192.168.1.38 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::aa7e:eaff:feaa:bbcc%wlan0 prefixlen 64 scopeid 0x3
        groups: wlan
        ssid WiFi-AP channel 48 (5240 MHz 11a) bssid 28:23:54:92:O3:a3
        regdomain JAPAN country JP anywhere -ecm authmode WPA2/802.11i -wps
        -tsn privacy ON deftxkey UNDEF
        AES-CCM 2:128-bit
        AES-CCM ucast:128-bit
        powersavemode OFF powersavesleep 100 txpower 23 txpowmax 50.0 -dotd
        rtsthreshold 2346 fragthreshold 2346 bmiss 7
        11a     ucast NONE    mgmt  6 Mb/s mcast  6 Mb/s maxretry 6
        11b     ucast NONE    mgmt  1 Mb/s mcast  1 Mb/s maxretry 6
        11g     ucast NONE    mgmt  1 Mb/s mcast  1 Mb/s maxretry 6
        11na    ucast NONE    mgmt  6 Mb/s mcast  6 Mb/s maxretry 6
        11ac    ucast NONE    mgmt  6 Mb/s mcast  6 Mb/s maxretry 6
        scanvalid 60 -bgscan bgscanintvl 300 bgscanidle 250
        roam:11a     rssi    7dBm rate 12 Mb/s
        roam:11b     rssi    7dBm rate  1 Mb/s
        roam:11g     rssi    7dBm rate  5 Mb/s
        roam:11na    rssi    7dBm  MCS  1    
        roam:11ac    rssi    7dBm  MCS  1    
        -pureg protmode CTS -ht -htcompat -ampdu ampdulimit 64k
        ampdudensity NA -amsdu -shortgi htprotmode RTSCTS -puren -smps -rifs
        -stbc -ldpc -uapsd vht vht40 vht80 vht160 -vht80p80 wme -burst -dwds
        roaming MANUAL bintval 100
        AC_BE cwmin  4 cwmax 10 aifs  3 txopLimit   0 -acm ack
              cwmin  4 cwmax 10 aifs  3 txopLimit   0 -acm
        AC_BK cwmin  4 cwmax 10 aifs  7 txopLimit   0 -acm ack
              cwmin  4 cwmax 10 aifs  7 txopLimit   0 -acm
        AC_VI cwmin  3 cwmax  4 aifs  2 txopLimit  94 -acm ack
              cwmin  3 cwmax  4 aifs  2 txopLimit  94 -acm
        AC_VO cwmin  2 cwmax  3 aifs  2 txopLimit  47 -acm ack
              cwmin  2 cwmax  3 aifs  2 txopLimit  47 -acm
        parent interface: iwlwifi0
        media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11a
        status: associated
        nd6 options=21
        drivername: wlan0

 
802.11ac に対応していそうな雰囲気ですが AP には 802.11a で接続していて、下のほうの media も OFDM/54Mbps mode 11a になっちゃっています・・。orz

parent interface: は 正しく iwlwifi0 になってます。

なんでなのだろう・・。残念。

しかし、802.11a でも AX200 は 20Mbps程度でるので、USB 接続の rtwn0 よりは 2,3Mbps 程度早い雰囲気でしょうか・・。

あ。追加で一点。iwlwifi0 は sysctl 設定があります。以下、ピックアップしましたが、 /boot/loader.conf に記載することができます。

compat.linuxkpi.80211.hw_crypto="1"
compat.linuxkpi.iwlwifi_11n_disable=1
compat.linuxkpi.iwlwifi_disable_11ac=0
compat.linuxkpi.iwlwifi_disable_11ax=0

 
ただし、この設定に準じて動作しているのかは良くわかりません・・。

 
2.if_iwx.ko を利用する
次に 15.0-RELEASE で、 OpenBSD から移植されたという if_iwx.ko を利用してみます。こちらも /etc/rc.conf に設定が必要です。

kld_list="amdgpu.ko if_iwx.ko"

devmatch_blocklist="if_iwlwifi.ko"
wlans_iwx0="wlan0"
ifconfig_wlan0="WPA DHCP ssid WiFi-AP"

 
まぁ、一番上の kld_list への if_iwx.ko の記載は不要です。
devmatch_blocklist=”if_iwlwifi.ko” は必要です。 この行を入れないと、たとえ kldload if_iwx.ko を指定していても if_iwlwifi.ko がデバイスを持っていってしまうのでブロックリストに記載します。これで pciconf -lv しても iwx0@pci0:3:0:0: となります。

これは Intel Wireless-AC 9260 を使っている場合にも効果的で devmatch_blocklist=”if_iwm.ko” などと書いておくと if_iwlwifi.ko を利用するようになります。ただ、どちらのカーネルモジュールを利用しても 802.11a での通信になりますが・・。

話をもとに戻してと。起動時はこんな感じで認識します。

wanchan kernel: iwx0:  mem 0xfd600000-0xfd603fff at device 0.0 on pci3
wanchan kernel: iwlwifi-cc-a0-77.ucode: could not load firmware image, error 8
wanchan kernel: uhub5: 4 ports with 4 removable, self powered
wanchan kernel: iwx0: hw rev 0x340, fw 77.0b4c06ad.0, address a8:7e:ea:be:3a:fc
wanchan kernel: iwx0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wanchan kernel: iwx0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wanchan kernel: iwx0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wanchan kernel: iwx0: 2T2R
wanchan kernel: iwx0: 11na MCS 20MHz
wanchan kernel: iwx0: MCS 0-7: 6.5Mbps - 65Mbps
wanchan kernel: iwx0: MCS 8-15: 13Mbps - 130Mbps
wanchan kernel: iwx0: 11na MCS 20MHz SGI
wanchan kernel: iwx0: MCS 0-7: 7Mbps - 72Mbps
wanchan kernel: iwx0: MCS 8-15: 14.5Mbps - 144.5Mbps
wanchan kernel: iwx0: 11na MCS 40MHz:
wanchan kernel: iwx0: MCS 0-7: 13.5Mbps - 135Mbps
wanchan kernel: iwx0: MCS 8-15: 27Mbps - 270Mbps
wanchan kernel: iwx0: 11na MCS 40MHz SGI:
wanchan kernel: iwx0: MCS 0-7: 15Mbps - 150Mbps
wanchan kernel: iwx0: MCS 8-15: 30Mbps - 300Mbps
wanchan kernel: iwx0: 11ng MCS 20MHz
wanchan kernel: iwx0: MCS 0-7: 6.5Mbps - 65Mbps
wanchan kernel: iwx0: MCS 8-15: 13Mbps - 130Mbps
wanchan kernel: iwx0: 11ng MCS 20MHz SGI
wanchan kernel: iwx0: MCS 0-7: 7Mbps - 72Mbps
wanchan kernel: iwx0: MCS 8-15: 14.5Mbps - 144.5Mbps
wanchan kernel: iwx0: 11ng MCS 40MHz:
wanchan kernel: iwx0: MCS 0-7: 13.5Mbps - 135Mbps
wanchan kernel: iwx0: MCS 8-15: 27Mbps - 270Mbps
wanchan kernel: iwx0: 11ng MCS 40MHz SGI:
wanchan kernel: iwx0: MCS 0-7: 15Mbps - 150Mbps
wanchan kernel: iwx0: MCS 8-15: 30Mbps - 300Mbps
wanchan kernel: iwx0: [VHT] Channel Widths: 20MHz, 40MHz, 80MHz
wanchan kernel: iwx0: [VHT] Features: 31800020
wanchan kernel: iwx0: [VHT] NSS 1: TX MCS 0..9, RX MCS 0..9
wanchan kernel: iwx0: [VHT] NSS 2: TX MCS 0..9, RX MCS 0..9

 
ちょっといっぱい出力されますね。それにしも、ファームウェアの iwlwifi-cc-a0-77.ucode のロードに失敗しているのが気になりますが・・。

こちらも ifconfig -v wlan0 の出力結果を掲載しておきます。

$ ifconfig -v wlan0
wlan0: flags=8843 metric 0 mtu 1500
        options=0
        ether a8:7e:ea:aa:bb:cc
        inet 192.168.1.38 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::aa7e:eaff:feaa:bbcc%wlan0 prefixlen 64 scopeid 0x3
        groups: wlan
        ssid WiFi-AP channel 48 (5240 MHz 11a) bssid 28:23:54:92:O3:a3
        regdomain JAPAN country JP anywhere -ecm authmode WPA2/802.11i -wps
        -tsn privacy ON deftxkey UNDEF
        AES-CCM 2:128-bit
        AES-CCM ucast:128-bit
        powersavemode OFF powersavesleep 100 txpower 23 txpowmax 50.0 -dotd
        rtsthreshold 2346 fragthreshold 2346 bmiss 10
        11a     ucast NONE    mgmt  6 Mb/s mcast  6 Mb/s maxretry 6
        11b     ucast NONE    mgmt  1 Mb/s mcast  1 Mb/s maxretry 6
        11g     ucast NONE    mgmt  1 Mb/s mcast  1 Mb/s maxretry 6
        11na    ucast NONE    mgmt  6 Mb/s mcast  6 Mb/s maxretry 6
        11ng    ucast NONE    mgmt  1 Mb/s mcast  1 Mb/s maxretry 6
        11ac    ucast NONE    mgmt  6 Mb/s mcast  6 Mb/s maxretry 6
        scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250
        roam:11a     rssi    7dBm rate 12 Mb/s
        roam:11b     rssi    7dBm rate  1 Mb/s
        roam:11g     rssi    7dBm rate  5 Mb/s
        roam:11na    rssi    7dBm  MCS  1    
        roam:11ng    rssi    7dBm  MCS  1    
        roam:11ac    rssi    7dBm  MCS  1    
        -pureg protmode CTS ht htcompat ampdu ampdulimit 64k ampdudensity NA
        -amsdutx amsdurx shortgi htprotmode RTSCTS -puren -smps -rifs -stbc
        -ldpc -uapsd vht vht40 vht80 -vht160 -vht80p80 wme -burst -dwds
        roaming MANUAL bintval 100
        AC_BE cwmin  4 cwmax 10 aifs  3 txopLimit   0 -acm ack
              cwmin  4 cwmax 10 aifs  3 txopLimit   0 -acm
        AC_BK cwmin  4 cwmax 10 aifs  7 txopLimit   0 -acm ack
              cwmin  4 cwmax 10 aifs  7 txopLimit   0 -acm
        AC_VI cwmin  3 cwmax  4 aifs  2 txopLimit  94 -acm ack
              cwmin  3 cwmax  4 aifs  2 txopLimit  94 -acm
        AC_VO cwmin  2 cwmax  3 aifs  2 txopLimit  47 -acm ack
              cwmin  2 cwmax  3 aifs  2 txopLimit  47 -acm
        parent interface: iwx0
        media: IEEE 802.11 Wireless Ethernet autoselect mode 11na
        status: associated
        nd6 options=21
        drivername: wlan0

 
こちらも 802.11ac に対応していそうな気配はあるのですが、実際には 802.11a での接続でした。ファームウェアのロードに失敗しているのがちょっと気になりますが・・。

 
iwlwifi0 と iwx0 で 802.11a への接続時、どちらが速いか?と、言われれば iwlwifi0 のほうか、2,3Mbps くらい速いかなぁ。と、いう気はしますが、どちらも 802.11a での接続であることには変わりません。

あと、今回試してないのは AP がステスル機能を有効化している場合の接続状況についてです。 AP のステルス機能有効化については Apple も推奨してないので、僕の家のステルス機能は無効化しました。以前検証したときも iwlwifi0 はステルス有効時には接続できなかったので、今回は検証していません。

 
最後に suspend/retsume の対応について書いて終わりにします。iwlwifi0 と iwx0 の両方とも suspend/resume には対応していません。これは明示的に FreeBSD の forums にも記載がありました。ただ、 resume 後に service netif restart wlan0 を実行すると復活します。なので NotePC でも特に問題無く resume 後に利用できます。
rtwn0 などは suspend/resume に対応しているのですが、まぁ、使い方を解っていれば、こういう仕様でも良いのかな。と、思いました。

 
と、いうことで FreeBSD 15.0-RELEASE の個人的な目玉機能である Wi-Fi については以上になります。 AX201 とか持っている人は多分 802.11ac で通信できているのでしょうなぁ・・。
僕も AX201 とか、メルカリで探してみようかなぁ・・。