Orz部屋 - Sasami5 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
!五代目モバイルノート
* 2024/05/09 購入
* 2024/05/31 納入
* 2024/06/01 セットアップ開始…
* 2024/06/09 FreeBSD環境運用開始
!!システム構成
||ベース||Panasonic Letsnote FV5 CF-FV5URCCP||
||メモリ||SK Hynix LPDDR5 32GB||
||nvme0||Samsung PM9A1a NVMe SSD 1TB||
||nvme1||Samsung PM9A1a NVMe SSD 1TB||
* dmesgから、nvme0/1の搭載NVMe SSDは Samsung PCIe Gen4 x4のモジュールで同一型番
** カタログでは、Gen4接続・Gen3接続が各一台が仕様
** 後述の通り'''nvme1'''側がシステムディスクの模様なので、そちらがGen4接続と思われる
** Windows環境起動前に、FreeBSD installerのshell環境から'''dd(1)'''で舐めた限りでは、sequential read rateに大きな差はなかった
*** nvme1側が1割程度早かったが、3.7~3.9GB/sec程度のレート(ddのステータスによる)で、NVMe SSDのカタログ値には届いていない (並列度が足りない?)
** '''CrystalDiskMark 8.0.5''' on Windows11 pro
*** nda1(Gen4x4接続/C:) - 6927/4918MB/s (Read/Write @ 8-Queue) 4354/4196MB/s (Read/Write @ 1-Queue)
*** nda0(Gen3x4接続/D:) - 3514/MB/3327s (Read/Write @ 8-Queue) 2616/2965MB/s (Read/Write @ 1-Queue)
** '''recoverdisk''' on FreeBSD 14.1-STABLE (after installation)
*** nda0 - 2920MB/s @ 512KByte/io (systat -vmstatによる読み)
**** CrystalDiskMarkの'''1-Queue'''ベンチマーク結果に近い
*** nda1 - 3000~4800MB/s @ 512KByte/io (systat -vmstatによる読み)
**** かなり大きなレート変動有り (CPU負荷・NVMe温度・NVMe書き込み状態の影響か?)
**** Gen3x4帯域を越えてくるのは確か
**** 平均レートは、CrystalDiskMarkの'''1-Queue'''ベンチマーク結果に近い
!!!初期Partition
''/dev/nda1''側がシステムディスクになっている模様
* /dev/nda0 (nda0p1 - Windows D:)
=> 34 2000409197 nda0 GPT (954G)
34 2014 - free - (1.0M)
2048 2000406528 1 ms-basic-data (954G)
2000408576 655 - free - (328K)
* /dev/nda1 (nda1p3 - Windows C:)
=> 34 2000409197 nda1 GPT (954G)
34 2014 - free - (1.0M)
2048 532480 1 efi (260M)
534528 32768 2 ms-reserved (16M)
567296 1966356480 3 ms-basic-data (938G)
1966923776 2027520 4 ms-recovery (990M)
1968951296 31457280 5 !de94bba4-06d1-4d40-a161-bfd50179d6ac (15G)
2000408576 655 - free - (328K)
!!!PCI device
hostb0@pci0:0:0:0: class=0x060000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x7d01 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = HOST-PCI
vgapci0@pci0:0:2:0: class=0x030000 rev=0x08 hdr=0x00 vendor=0x8086 device=0x7d55 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P [Intel Arc Graphics]'
class = display
subclass = VGA
none0@pci0:0:4:0: class=0x118000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x7d03 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = dasp
pcib1@pci0:0:6:0: class=0x060400 rev=0x10 hdr=0x01 vendor=0x8086 device=0x7eca subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = PCI-PCI
pcib2@pci0:0:7:0: class=0x060400 rev=0x02 hdr=0x01 vendor=0x8086 device=0x7ec4 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Thunderbolt 4 PCI Express Root Port'
class = bridge
subclass = PCI-PCI
pcib3@pci0:0:7:1: class=0x060400 rev=0x02 hdr=0x01 vendor=0x8086 device=0x7ec5 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Thunderbolt 4 PCI Express Root Port'
class = bridge
subclass = PCI-PCI
none1@pci0:0:8:0: class=0x088000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e4c subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = base peripheral
none2@pci0:0:10:0: class=0x118000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x7d0d subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = dasp
none3@pci0:0:11:0: class=0x120000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x7d1d subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake NPU'
class = processing accelerators
subclass = processing accelerators
xhci0@pci0:0:13:0: class=0x0c0330 rev=0x02 hdr=0x00 vendor=0x8086 device=0x7ec0 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Thunderbolt 4 USB Controller'
class = serial bus
subclass = USB
none4@pci0:0:13:2: class=0x0c0340 rev=0x02 hdr=0x00 vendor=0x8086 device=0x7ec2 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Thunderbolt 4 NHI'
class = serial bus
subclass = USB
none5@pci0:0:18:0: class=0x070000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e45 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = simple comms
subclass = UART
xhci1@pci0:0:20:0: class=0x0c0330 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e7d subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P USB 3.2 Gen 2x1 xHCI Host Controller'
class = serial bus
subclass = USB
none6@pci0:0:20:2: class=0x050000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e7f subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = memory
subclass = RAM
iwlwifi0@pci0:0:20:3: class=0x028000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e40 subvendor=0x8086 subdevice=0x0090
vendor = 'Intel Corporation'
device = 'Meteor Lake PCH CNVi WiFi'
class = network
none7@pci0:0:21:0: class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e78 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Serial IO I2C Controller'
class = serial bus
none8@pci0:0:22:0: class=0x078000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e70 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = simple comms
none9@pci0:0:22:3: class=0x070002 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e73 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = simple comms
subclass = UART
pcib4@pci0:0:28:0: class=0x060400 rev=0x20 hdr=0x01 vendor=0x8086 device=0x7e38 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = PCI-PCI
pcib5@pci0:0:28:5: class=0x060400 rev=0x20 hdr=0x01 vendor=0x8086 device=0x7e3d subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = PCI-PCI
isab0@pci0:0:31:0: class=0x060100 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e02 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = PCI-ISA
hdac0@pci0:0:31:3: class=0x040100 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e28 subvendor=0x10f7 subdevice=0x8385
vendor = 'Intel Corporation'
device = 'Meteor Lake-P HD Audio Controller'
class = multimedia
subclass = audio
none10@pci0:0:31:4: class=0x0c0500 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e22 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P SMBus Controller'
class = serial bus
subclass = SMBus
none11@pci0:0:31:5: class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e23 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P SPI Controller'
class = serial bus
em0@pci0:0:31:6: class=0x020000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x550a subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = network
subclass = ethernet
nvme0@pci0:1:0:0: class=0x010802 rev=0x00 hdr=0x00 vendor=0x144d device=0xa80a subvendor=0x144d subdevice=0xa801
vendor = 'Samsung Electronics Co Ltd'
device = 'NVMe SSD Controller PM9A1/PM9A3/980PRO'
class = mass storage
subclass = NVM
nvme1@pci0:132:0:0: class=0x010802 rev=0x00 hdr=0x00 vendor=0x144d device=0xa80a subvendor=0x144d subdevice=0xa801
vendor = 'Samsung Electronics Co Ltd'
device = 'NVMe SSD Controller PM9A1/PM9A3/980PRO'
class = mass storage
subclass = NVM
sdhci_pci0@pci0:133:0:0: class=0x080501 rev=0x01 hdr=0x00 vendor=0x1217 device=0x8520 subvendor=0x1217 subdevice=0x0002
vendor = 'O2 Micro, Inc.'
device = 'SD/MMC Card Reader Controller'
class = base peripheral
subclass = SD host controller
!!!USB device
ugen0.1: <Intel XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.1: <Intel XHCI root HUB> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.2: <Bison USB FHD Camera> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen1.3: <vendor 0x06cb product 0x00c6> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen1.4: <AX211 Bluetooth Intel Corp.> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
* ugen1.2の内蔵カメラ (multimedia/webcamdで使えるようになる)
* ugen1.3のSynapticsの指紋センサーは、[[旧ノート CF-LV8W|Sasami4]]と同じ '''idProduct'''
* ugen1.4は、Bluetooth firmwareはcomms/iwmbt-firmwareか?
!!環境構築コンセプト
* Win11 ProとFreeBSDのDual Boot運用
* 追加のNVMe Gen3側にFreeBSD 14.1-STABLE環境を構築する
** graphics/drm-kmodが未サポートなので、当面は scfb driverでの運用を想定
!!!前準備
# 初期充電・Memtest86による動作試験
# FreeBSD Installerの動作確認
# Windows11 Pro初期設定
** WLAN MACアドレス確認
** WLAN接続設定
** Bluetooth mouseペアリング
** Firmwareアップデート
** Windows Update適用
** Recovery USB Media作成
** アカウント再生成 (Microsoftアカウントで初期化すると、Home Directory名があかん奴に…Orz)
** Windows環境の初期設定 [[Tips/Windows10]]
# 2nd SSD上のデータパーテション(D:)削除し、FreeBSDへ明け渡す
# [[旧ノート|Sasami4]]にて、''/etc'', ''/var'', ''/usr/local/etc'', ''/usr/src'', ''/usr/ports'', ''/root'', ''/home''のアーカイブを作成し、母艦に吸い上げる
# 空いた'''nda0'''へUEFI+GPT ZFSBOOT構成でFreeBSD 14.1-STABLEをインストール
** ''/etc'', ''/root''のアーカイブをInstall Media経由で導入
** ''/root''と''/etc/ssh/sshd_config'', ''/etc/ssh/ssh_host_*''を展開して、公開鍵認証で'''root''' login可能な状態にする
** ''/etc/master.passwd'', ''/etc/group''を展開し、アカウントを認証情報を同期する
** zfs調整
# zfs set mountpoiny=none zsasami5
# rmdir /zsasami5
# mkdir -p /home/amorita/.ssh
# chmod 700 /home/amorita/.ssh
# chown -R amorita:user /home/amorita
# mkdir -p /usr/local/share/man/ja
# ln -s /usr/local/share/man/ja /usr/local/share/man/ja.eucJP
# ln -s /usr/local/share/man/ja /usr/local/share/man/ja.UTF-8
# zfs create -o mountpoint=/SAD zsasami5/SAD
# chown amorita /SAD
# zfs create -o canmount=off zsasami5/var/db
# zfs create -o canmount=off zsasami5/usr/local
# zfs create zsasami5/usr/local/ptex
# zfs create zsasami5/usr/local/texlive
# chown amorita /usr/local/ptex /usr/local/texlive
# zfs destroy zsasami5/usr/src
# zfs destroy zsasami5/usr/ports
# zfs create -o setuid=off zsasami5/usr/obj
# zfs create -o setuid=off zsasami5/usr/doc
# zfs create -o setuid=off zsasami5/usr/src
# zfs create -o setuid=off zsasami5/usr/ports
# zfs create -o compression=off zsasami5/usr/ports/distfiles
# zfs create -o compression=off zsasami5/usr/ports/packages
# mkdir /usr/ports/packages/All
# chflags sunlink /usr/ports/packages/All
# chown -R amorita /usr/doc /usr/src /usr/ports
# chmod 2775 /usr/ports/distfiles
!!!環境構築
# base system upgrade
** ''/usr/src''アーカイブを転送して、所定の位置に展開
** ''/etc''アーカイブから、''/etc/src.conf''及び''/etc/make.conf''を展開
** ''/usr/src''にて、buildworld/buildkernel → installkernel/installworldする
# ports install
** ''/usr/ports''アーカイブを転送して、所定の位置に展開
** ''/var''アーカイブを転送して、''/var/db/ports''を展開
** ''ports-mgmt/portmaster''をインストール
** portmasterを使って、必要なportsをすべてインストール
# 手動インストール
** VT console用日本語フォント一式
** TrueTypeフォント一式
** 電子辞書(EPWING)
** emacs lisp packages - bbdb yatex
** admin/tools - block-cmp ssd-sync djbdns-tools ssh-cleanup-sockets cups-filter clockdiff vpn-wrapper
** EPICS, SAD
# 各種設定
** ''/etc'', ''/usr/local/etc''の設定を仕上げる
# home転送
** zfs send/recv or rsyncでホームディレクトリを複製・同期する
!!備考
* ==LAN '''em0'''(I219-LM MTP(18))の速度が出ていない==[[環境要因と判明|http://jyurai.ddo.jp/~amorita/diary/?date=20240613#p01]]
** ==Tx側は 108MBytes/secでるが、Rx側は 60MBytes/sec程度しか出ない==
*** ==[[旧ノート|Sasami4]]の'''em0'''(I219-LM CNP(6))では、Tx/Rxともに 111MByte/sec出てる==同時計測時はスイッチへの接続形態が異なった
* Bluetooth '''ubt0'''を認識しない → [[D44861|https://reviews.freebsd.org/D44861]]を[[ハックして|http://jyurai.ddo.jp/~amorita/diary/?date=20240605#p1]]解決
** [[D44861|https://reviews.freebsd.org/D44861]]をベースにした修正
*** [[ベースパッチ|https://reviews.freebsd.org/D44861?download=true]]とAX211対応の[[個別パッチ|https://reviews.freebsd.org/D44861#1024632]]を適用
*** ''usr.sbin/bluetooth/iwmbtfw/main.c''に'''hw_variant'''を追加 (CPU or Chipset世代毎で違う模様)
*** ''sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c''を修正する (2024/06/05時点のパッチはバグ有りの模様)
**** ''usr.sbin/bluetooth/iwmbtfw/main.c''上の同一ベンダコマンドの応答解析コードとの読み比べによる推論
**** ''ng_ubt_intel.c''にパッチしないと、''/usr/sbin/iwmbtfw''がファームウェアのダウンロードに成功しても'''ubt_intel_probe'''で失敗する
** comms/iwmbt-firmwareに同梱されていないfirmware '''ibt-0180-0041.sfi'''と'''ibt-0180-0041.ddc'''を ''/usr/local/share/iwmbt-firmware/''に配置
*** https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/intel から拾ってくる
*** [[regression on linux-firmware for intel AX211 bluetooth|https://bbs.archlinux.org/viewtopic.php?id=290710]]という話もある
**** 手元の環境では、2024/01/05付けのRevision '''23.20.0.3'''と2024/05/10付けのRevision '''23.50.0.2'''は動作した
--- usr.sbin/bluetooth/iwmbtfw.old/main.c 2024-06-08 01:50:41.000000000 +0900
+++ usr.sbin/bluetooth/iwmbtfw/main.c 2024-06-06 05:35:31.324438000 +0900
@@ -346,7 +346,7 @@
parsed->parse_state = 0;
if (iwmbt_tlv_foreach(tlv, iwmbt_parse_one_tlv, parsed))
return -1;
- if (parsed->parse_state != 31)
+ if (parsed->parse_state != 31 && parsed->parse_state != 15)
return -1;
return 0;
}
@@ -718,8 +718,8 @@
switch (ver.hw_variant) {
case 0x17:
- break;
case 0x18:
+ case 0x1b:
break;
default:
iwmbt_err("unknown hw_variant 0x%02x", (int) ver.hw_variant);
--- sys/netgraph/bluetooth/drivers/ubt.olf/ng_ubt_intel.c 2024-06-08 01:49:37.000000000 +0900
+++ sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c 2024-06-08 01:54:36.479559000 +0900
@@ -162,10 +162,18 @@
if (evt->header.event != NG_HCI_EVENT_COMMAND_COMPL)
return false;
- pos = offsetof(struct ubt_hci_event_command_compl, data);
+ pos = 0;
while ((pos + 2) < evt->header.length) {
f = (struct ubt_intel_tlv_field *) &evt->data[pos];
+ if(bootverbose) {
+ if(f->len > 0)
+ printf("ubt_intel_tlv: pos=%lu/%d type=0x%02x len=2+%d val[0]=0x%02x\n",
+ pos, evt->header.length, f->type, f->len, f->val[0]);
+ else
+ printf("ubt_intel_tlv: pos=%lu/%d type=0x%02x len=2+%d\n",
+ pos, evt->header.length, f->type, f->len);
+ }
if (pos + f->len >= evt->header.length)
break;
Command: iwmbtfw -D -I -d ugen1.4 -f /usr/local/share/iwmbt-firmware
main: opening dev 1.4
iwmbt_is_tlv: found TLV
iwmbt_dump_one_tlv: TLV: 0x10 = 0x00000800
iwmbt_dump_one_tlv: TLV: 0x11 = 0x00000410
iwmbt_dump_one_tlv: TLV: 0x12 = 0x00003700
iwmbt_dump_one_tlv: TLV: 0x15 = 0x0613
iwmbt_dump_one_tlv: TLV: 0x16 = 0x0000
iwmbt_dump_one_tlv: TLV: 0x17 = 0x8087
iwmbt_dump_one_tlv: TLV: 0x18 = 0x0033
iwmbt_dump_one_tlv: TLV: 0x1c = 0x01
iwmbt_dump_one_tlv: TLV: 0x1d = 0x1612
iwmbt_dump_one_tlv: TLV: 0x1e = 0x01
iwmbt_dump_one_tlv: TLV: 0x1f = 0x0000c072
iwmbt_dump_one_tlv: TLV: 0x27 = 0x00
iwmbt_dump_one_tlv: TLV: 0x28 = 0x01
iwmbt_dump_one_tlv: TLV: 0x29 = 0x00
iwmbt_dump_one_tlv: TLV: 0x2a = 0x01
iwmbt_dump_one_tlv: TLV: 0x2b = 0x01
iwmbt_dump_one_tlv: TLV: 0x2c = 0x00
iwmbt_dump_one_tlv: TLV: 0x2d has unhandled length of 3
iwmbt_dump_one_tlv: TLV: 0x2e = 0x00
iwmbt_dump_one_tlv: TLV: 0x2f = 0x01
iwmbt_dump_one_tlv: TLV: 0x30 has unhandled length of 6
iwmbt_dump_one_tlv: TLV: 0x31 = 0x00
iwmbt_dump_version: status 0x00
iwmbt_dump_version: hw_platform 0x37
iwmbt_dump_version: hw_variant 0x1b
iwmbt_dump_version: hw_revision 0x00
iwmbt_dump_version: fw_variant 0x00
iwmbt_dump_version: fw_revision 0x00
iwmbt_dump_version: fw_build_num 0x00
iwmbt_dump_version: fw_build_ww 0x00
iwmbt_dump_version: fw_build_yy 0x00
iwmbt_dump_version: fw_patch_num 0x00
main: fw_variant=0x00
main: firmware_path = /usr/local/share/iwmbt-firmware/ibt-0180-0041.sfi
iwmbt_init_firmware: loading /usr/local/share/iwmbt-firmware/ibt-0180-0041.sfi
iwmbt_load_fwfile: file=/usr/local/share/iwmbt-firmware/ibt-0180-0041.sfi, size=824316
iwmbt_load_fwfile: transferring 128 bytes, offset 644
...
iwmbt_load_fwfile: transferring 208 bytes, offset 824076
iwmbt_load_fwfile: transferring 4 bytes, offset 824284
iwmbt_load_fwfile: boot_param=0x00100800
iwmbt_load_fwfile: transferring 28 bytes, offset 824288
main: Firmware download complete
main: Firmware operational
iwmbt_dump_version: status 0x00
iwmbt_dump_version: hw_platform 0x37
iwmbt_dump_version: hw_variant 0x1b
iwmbt_dump_version: hw_revision 0xa0
iwmbt_dump_version: fw_variant 0x63
iwmbt_dump_version: fw_revision 0x0c
iwmbt_dump_version: fw_build_num 0x00
iwmbt_dump_version: fw_build_ww 0x00
iwmbt_dump_version: fw_build_yy 0x0e
iwmbt_dump_version: fw_patch_num 0x18
main: ddc_path = /usr/local/share/iwmbt-firmware/ibt-0180-0041.ddc
iwmbt_init_ddc: loading /usr/local/share/iwmbt-firmware/ibt-0180-0041.ddc
iwmbt_load_ddc: file=/usr/local/share/iwmbt-firmware/ibt-0180-0041.ddc, size=9
iwmbt_load_ddc: transferring 4 bytes, offset 0
iwmbt_load_ddc: transferring 5 bytes, offset 4
main: DDC download complete
main: Intel Event Mask is set
main: Firmware download is successful!
Command exit status: 0
Autoloading module: ng_ubt
ubt_intel_tlv: pos=0/110 type=0x00 len=2+16 val[0]=0x04
ubt_intel_tlv: pos=18/110 type=0x00 len=2+19 val[0]=0x04
ubt_intel_tlv: pos=39/110 type=0x33 len=2+0
ubt_intel_tlv: pos=41/110 type=0x1c len=2+1 val[0]=0x03
ubt_intel_tlv: pos=0/110 type=0x00 len=2+16 val[0]=0x04
ubt_intel_tlv: pos=18/110 type=0x00 len=2+19 val[0]=0x04
ubt_intel_tlv: pos=39/110 type=0x33 len=2+0
ubt_intel_tlv: pos=41/110 type=0x1c len=2+1 val[0]=0x03
ubt0 on uhub1
ubt0: <vendor 0x8087 product 0x0033, class 224/1, rev 2.01/0.00, addr 3> on usbus1
* WLAN '''iwlwifi0'''が動かない →firmware module導入し、通信性能を確認 (Tx性能が微妙)'''パッチした'''firmware package導入で動作可能
** ドライバはロードされているが、ファームが見つからない (iwlwifi-ma-b0-gf-a0-59 ~ iwlwifi-ma-b0-gf-a0-83)
*** ports的には'''net/wifi-firmware-iwlwifi-kmod@ax210'''だが、'''iwlwifi-ma-b0-gf-a0-89'''を含むが'''iwlwifi-ma-b0-gf-a0-83'''を含まない
**** 2024/11/10時点でも含まれないので、パッチしてみた (kernel moduleを作るより作業量が小さい/install向けには installer USBにpkgを詰め込む)
diff --git a/net/wifi-firmware-iwlwifi-kmod/Makefile b/net/wifi-firmware-iwlwifi-kmod/Makefile
index d198b1216268..d25f747ad2af 100644
--- a/net/wifi-firmware-iwlwifi-kmod/Makefile
+++ b/net/wifi-firmware-iwlwifi-kmod/Makefile
@@ -75,6 +75,7 @@ DISTFILES_${FWDRV}_lic=
### <<<
DISTFILES_ax210+= \
+ iwlwifi-ma-b0-gf-a0-83.ucode${DISTURL_SUFFIX} \
iwlwifi-ma-b0-hr-b0-83.ucode${DISTURL_SUFFIX}
DISTFILES_bz+= \
iwlwifi-gl-c0-fm-c0-83.ucode${DISTURL_SUFFIX}
diff --git a/net/wifi-firmware-iwlwifi-kmod/distinfo b/net/wifi-firmware-iwlwifi-kmod/distinfo
index 5037426284b0..ebce7ccd432c 100644
--- a/net/wifi-firmware-iwlwifi-kmod/distinfo
+++ b/net/wifi-firmware-iwlwifi-kmod/distinfo
@@ -49,6 +49,8 @@ SHA256 (linux-firmware/iwlwififw/iwlwifi-so-a0-hr-b0-89.ucode?h=20241017) = ac87
SIZE (linux-firmware/iwlwififw/iwlwifi-so-a0-hr-b0-89.ucode?h=20241017) = 1530736
SHA256 (linux-firmware/iwlwififw/iwlwifi-so-a0-jf-b0-72.ucode?h=20241017) = bc3a70588ae1563411556e43d23a65ea16f26f5a7fd551169c6c8a2eebf0f832
SIZE (linux-firmware/iwlwififw/iwlwifi-so-a0-jf-b0-72.ucode?h=20241017) = 1406312
+SHA256 (linux-firmware/iwlwififw/iwlwifi-ma-b0-gf-a0-83.ucode?h=20241017) = 9386a8294457f527c6e0fa1eac440c50cbee801707fdb480a10889770c0d297b
+SIZE (linux-firmware/iwlwififw/iwlwifi-ma-b0-gf-a0-83.ucode?h=20241017) = 1753308
SHA256 (linux-firmware/iwlwififw/iwlwifi-ma-b0-hr-b0-83.ucode?h=20241017) = 03b67d28b4916634c544e057abdc46b15b636a85064df993ca431fd92fe4a835
SIZE (linux-firmware/iwlwififw/iwlwifi-ma-b0-hr-b0-83.ucode?h=20241017) = 1572104
SHA256 (linux-firmware/iwlwififw/iwlwifi-gl-c0-fm-c0.pnvm?h=20241017) = faee96e453d18d9e0433c5490afc8218d22cf02a745f2041c5fa00b35b686a9c
** '''11a'''(OFDM/54Mbps)にて基地局との接続に成功
*** '''benchmarks/netio'''によるTCPv4ベンチマークでは、Tx 579KByte/s・Rx 3024KByte/s
*** 54Mbpsの理論帯域に対し、Txが悪すぎる (まだまだ問題が多い様だが、Rx帯域は出てるのでWeb閲覧的には充分)
*** iwlwifi attach時に、'''iwl-debug-yoyo.bin: could not load firmware image, error 2'''が出る
iwlwifi0: <iwlwifi> mem 0x40982d4000-0x40982d7fff at device 20.3 on pci0
iwlwifi0: attempting to allocate 16 MSI-X vectors (16 supported)
iwlwifi0: using IRQs 181-196 for MSI-X
iwlwifi0: Detected crf-id 0x400410, cnv-id 0x1080800 wfpm id 0x80000020
iwlwifi0: PCI dev 7e40/0090, rev=0x441, rfid=0x2010d000
firmware: 'iwlwifi-ma-b0-gf-a0-83.ucode' version 83: 1753308 bytes loaded at 0xffffffff82e96000
iwlwifi0: successfully loaded firmware image 'iwlwifi-ma-b0-gf-a0-83.ucode'
iwlwifi0: api flags index 2 larger than supported by driver
iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.88.3.1
iwl-debug-yoyo.bin: could not load firmware image, error 2
iwl-debug-yoyo.bin: could not load firmware image, error 2
iwl-debug-yoyo_bin: could not load firmware image, error 2
iwl_debug_yoyo_bin: could not load firmware image, error 2
iwlwifi0: loaded firmware version 83.d24e06ed.0 ma-b0-gf-a0-83.ucode op_mode iwlmvm
iwlwifi0: Detected Intel(R) Wi-Fi 6E AX211 160MHz, REV=0x441
iwlwifi0: WRT: Invalid buffer destination: 0
iwlwifi0: Not valid error log pointer 0x002798A8 for RT uCode
iwlwifi0: WFPM_UMAC_PD_NOTIFICATION: 0x1f
iwlwifi0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
iwlwifi0: WFPM_AUTH_KEY_0: 0x80
iwlwifi0: CNVI_SCU_SEQ_DATA_DW9: 0x0
iwlwifi0: RFIm is deactivated, reason = 4
firmware: 'iwlwifi-ma-b0-gf-a0.pnvm' version 83: 55096 bytes loaded at 0xffffffff82e96000
iwlwifi0: successfully loaded firmware image 'iwlwifi-ma-b0-gf-a0.pnvm'
iwlwifi0: loaded PNVM version ce1a5094
iwlwifi0: Detected RF GF, rfid=0x2010d000
iwlwifi0: base HW address: **:**:**:**:**:**
iwlwifi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
iwlwifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
iwlwifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
* ポインタデバイス'''iichid0'''が見えない → パッチして、TouchPadデバイスの動作を確認
** 上流の'''Meteor Lake-P Serial IO I2C Controller'''を'''ig4iic'''ドライバが認識していない
*** ==''sys/dev/ichiic/ig4_pci.c''のPCI Device IDに入っていない==stable/14では、2024-10-17の[[Add smbus and i2c device IDs for Meteor Lake|https://cgit.freebsd.org/src/commit?h=stable/14&id=14c22e28e4ee62f4d3f2d6004881d874fafa7d11]]にて対応済み
*** =='''Meteor Lake-P SMBus Controller'''を認識しない理由も同様と思われる (''sys/dev/ichsmb/ichsmb_pci.c'')==(同上)
** 手持ちのデバイス分のPCI Device IDを追加したところ、'''iichid0'''->'''hmt0'''/'''hms0'''を認識した
*** '''hms0'''は、[[旧ノート|Sasami4]]でも認識されていたHIDマウス
*** X.orgでの動作については後述
ig4iic0: <Intel Meteor Lake-P I2C Controller-X> at device 21.0 on pci0
pcib0: allocated type 3 (0x84521000-0x84521fff) for rid 10 of ig4iic0
ig4iic0: Lazy allocation of 0x1000 bytes rid 0x10 type 3 at 0x84521000
ig4iic0: Using MSI
pcib0: matched entry for 0.21.INTA
pcib0: slot 21 INTA hardwired to IRQ 32
ig4iic0: Controller parameters:
Speed: Fast
Regs: HCNT :LCNT :SDAHLD
Std: 0x0228:0x028c:0x0006
Fast: 0x0064:0x00c8:0x0006
FIFO: RX:0x0040: TX:0x0040
ioapic0: routing intpin 32 (PCI IRQ 32) to lapic 48 vector 53
iicbus0: <Philips I2C bus (ACPI-hinted)> on ig4iic0
iicbus0: found ACPI child
SlaveAddress: 0x002c
ConnectionSpeed: 400000Hz
SlaveMode: ControllerInitiated
AddressingMode: 7Bit
ConnectionSharing: Exclusive
GPIO IRQ pin: 131
iicbus0: <unknown card> at addr 0x2c
iichid0: <SYNA0103:00 06CB:CFB1 I2C HID device> at addr 0x2c on iicbus0
iichid0: Interrupt setup failed. Fallback to sampling
hidbus0: <HID bus> on iichid0
hmt0: <SYNA0103:00 06CB:CFB1 TouchPad> on hidbus0
hconf0: <SYNA0103:00 06CB:CFB1 Configuration> on hidbus0
hmt0: Multitouch touchpad with 2 external buttons
hmt0: 5 contacts with [C] properties. Report range [0:0] - [771:771]
hms0: <SYNA0103:00 06CB:CFB1 Mouse> on hidbus0
hms0: 2 buttons and [XY] coordinates ID=2
* X.org
** drm-kmod無しでも、'''scfb''' driver(ports/x11-drivers/xf86-video-scfb)で本体液晶のみは動く
*** acpi_video・acpi_panasonicをロードしても輝度調整がまともに機能しない
*** UEFI frame buffer上で動いているVT consoleとの運用互換性は担保される
** [[drm-kmod|https://github.com/freebsd/drm-kmod]]のmasterは、2024年9月に6.6がマージ済みでMeteor Lakeが辛うじて動く (portsはまだ無い)
*** stable/14側のlinuxkpiにパッチを当る必要があるが、KMS driverは動く模様 ([[2024/08/05確認時点|http://jyurai.ddo.jp/~amorita/diary/?date=20240805#p01]])
*** gpu-firmware-intel-kmod(ports/graphics/gpu-firmware-intel-kmod)にMeteorLake向けのfirmwareが同梱されないので、別途、自力で用意する必要がある
**** https://github.com/freebsd/drm-kmod-firmware には、2024-11-02のcommitで収録された
*** UEFI frame bufferの描画が崩れる (VT console・Xorg + scfb driver)
*** Xorg + '''intel''' driver(ports/x11-drivers/xf86-video-intel)は動かない (PCI Device IDリストに入っていない)
*** Xorg + '''modesetting''' driverでXorgが動く
*** backlight(8)コマンドからbacklight(9)経由で輝度制御が機能する
*** USB-C Alt Modeの外部ディスプレイを認識できる・xrandrで設定/使用可能 (VT console崩れるけど、scfb driverに無い明確なメリット)
* X.org向けTouchPad設定(libinput)
** 素のlibinputでは、mouse動作になる模様 (default動作)
** タッピング・エッジスクロール有効化での動作を確認
*** タップ・マルチフィンガータップで1~3ボタンイベントを確認
*** 右端・下端でのエッジスクロールを確認 (Let'snote標準の'''ぐるぐるスクロール'''ではない・丸いパッドだといまいち)
**** 入力受付域の関係で、'''edge'''よりも'''twofinger'''の方が実用的かも…
** '''hms0'''側(SYNA0103:00 06CB:CFB1 Mouse)は誤作動防止のためxinputから外しておく
Section "InputClass"
Identifier "CF-FV5 Touchpad"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "Tapping" "True"
Option "TappingDrag" "True"
Option "DisableWhileTyping" "True"
Option "ScrollMethod" "edge"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "CF-FV5 Mouse"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
MatchProduct "SYNA0103:00 06CB:CFB1 Mouse"
Option "Ignore" "True"
EndSection
* X.org向けTouchPad設定(synaptics)
** '''synaptics'''ドライバでも動いた
** '''CircularScrolling'''(ぐるぐるスクロール)を使うには、'''*Edge'''パラメータを要調整
*** デフォルトのままだと、スクロールを受け付ける領域が狭すぎる
*** スクロール開始位置で、垂直スクロール・水平スクロールに振り分けることは出来ないぽぃ
** 水平スクロース操作向けに、'''HorizTwoFingerScroll'''は有効にしたほうが便利
** 他のパラメータは結構適当なのであくまでも参考程度に
Section "InputClass"
Identifier "CF-FV5 Touchpad"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "MinSpeed" "0.5"
Option "MaxSpeed" "1.0"
Option "LeftEdge" "100"
Option "RightEdge" "700"
Option "TopEdge" "70"
Option "BottomEdge" "700"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "2"
Option "CircularPad" "on"
Option "CircularScrolling" "on"
Option "CircScrollDelta" "0.25"
Option "VertTwoFingerScroll" "on"
Option "HorizTwoFingerScroll" "on"
Option "VertScrollDelta" "7"
Option "HorizScrollDelta" "7"
Option "ScrollButtonRepeat" "100"
Option "UpDownScrolling" "on"
Option "UpDownRepeat" "on"
Option "LeftRightScrolling" "on"
Option "LeftRightRepeat" "on"
Driver "synaptics"
EndSection
Section "InputClass"
Identifier "CF-FV5 Mouse"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
MatchProduct "SYNA0103:00 06CB:CFB1 Mouse"
Option "Ignore" "True"
EndSection
* Audio出力
** 標準状態で、内蔵スピーカーが'''pcm0'''、左側ヘッドフォン端子が'''pcm1'''に割り当てられる
** 設定で、左ヘッドフォン端子(nid=33)と内蔵スピーカーを連動させ、端子挿入時に自動的に内蔵スピーカーをミュート出来る
hint.hdac.0.cad0.nid33.config="as=1 seq=15"
* 内蔵マイク
** Intel Smart Sound TechnologyによるArrayマイクなので、DSP側にファームをロードしないと使えない
*** [[Sound Open Firmware|http://www.sofproject.org]]でLinux向けのOSS Firmwareが開発されている
*** Firmware downloader及びDriverを誰か移植するまでお預け
* 内蔵カメラ
** '''multimedia/webcamd'''をインストールすれば問題なく使える
** 内蔵マイクが使えないので、単体でのリモート会議は別途デバイスが必要に…
* acpi_videoで液晶ディスプレイが見つからない
** '''_BCL'''メソッドを持つデバイスノードは見つかるが、'''_DOD'''メソッドが返すリストと照合しない(詳しくは[[日記|http://jyurai.ddo.jp/~amorita/diary/?date=20240608#p01]]を参照)
** 現時点では、'''graphics/drm-kmod'''も動かないので、液晶輝度の制御を行う術が無い(電力制御的にかなりのマイナス)
*** [[acpi_callで輝度を落とせた|http://azaka.jyurai/~amorita/diary/?date=20240618#p01]]が、ほとんど真っ暗に近い状態になるだけなので、待機電力節約にはなるがその状態では端末として実用にならない Orz
* ACPIでS3スリープしない
** ACPI S3ステートのサポートが無い模様
*** Windows11マシンなのでモダンスタンバイ('''S0i3'''スリープ)前提のハードウェア?
*** [[ThinkPad X1 Carbon(Gen6)|https://running-dog.net/2020/07/post_2333.html]]では、BIOSでs0i3/S3間で実装モードが切替えられるらしいが、当機のUEFI BIOSに該当する設定項目は無い模様
*** スリープの類を使うには、ACPI DSDTテーブルにパッチする・S0i3(モダンスタンバイ)もしくはS4(ハイバネーション)を自力で実装する必要がある
**** LinuxではS0ixサポートが実装されている模様
**** FreeBSDだと[[D17675|https://reviews.freebsd.org/D17675]]辺りか?(まだ統合されていない?)
***** [[2024/01/15|https://lists.freebsd.org/archives/freebsd-current/2024-January/005388.html]]にfreebsd-currentで話題になっているが、進展はなかった模様 Orz
** [[旧ノート CF-LV8W|Sasami4]]は、S3サポートがある(まあ、寝起きで問題起こすので、実用には微妙だったのですが…)
CF-FV5U% sysctl hw.acpi.s4bios hw.acpi.supported_sleep_state
hw.acpi.s4bios: 0
hw.acpi.supported_sleep_state: S4 S5
CF-LV8W% sysctl hw.acpi.s4bios hw.acpi.supported_sleep_state
hw.acpi.s4bios: 0
hw.acpi.supported_sleep_state: S3 S4 S5
* Thunderbolt
** '''Meteor Lake-P Thunderbolt 4 USB Controller'''は'''xhci'''として認識しているので、USBとしては使えるはず
** '''Meteor Lake-P Thunderbolt 4 NHI'''はドライバが無いので、Thunderbolt固有の機能は使えない
*** 開発している人はいる模様([[USB4/Thunderbolt3|https://github.com/hselasky/usb4]])
* Intel Thread Director
** サポートコードのプロポーザルが出ている([[PR277837|https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277837]])
** 素の14.1-STABLEの認識するスケジューリングトポロジー
*** 0-7,18-21が、4C/8T + 2C/4TなPコア
*** 8,9が、2CなLP-Eコア
*** 10-13,14-17が、4Cx2なEコア
# sysctl -n kern.sched.topology_spec
<groups>
<group level="1" cache-level="0">
<cpu count="22" mask="3fffff,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21</cpu>
<children>
<group level="2" cache-level="3">
<cpu count="2" mask="3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">0, 1</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="c,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">2, 3</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">4, 5</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="c0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">6, 7</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">8, 9</cpu>
</group>
<group level="2" cache-level="3">
<cpu count="4" mask="3c00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">10, 11, 12, 13</cpu>
</group>
<group level="2" cache-level="3">
<cpu count="4" mask="3c000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">14, 15, 16, 17</cpu>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="c0000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">18, 19</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="300000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">20, 21</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
</children>
</group>
</groups>
* math/openblasのビルドに失敗する → WORKAROUND('''TARGET_CPU_ARCH=HASWELL''')発見
** 他の環境で問題が出ていないので、CPUアーキテクチャ検出回りがMeteor Lake-P未対応の模様
*** うちのMeteor Lake P - Extended Family: 0 Extended Model: 10 Family: 6 Model: 170 Stepping: 4
*** github上の'''cpuid_x86.c'''もまだ未対応? (Meteor Lake対応commitはあるが、model numberが異なる。Desktop版か?)
** '''TARGET_CPU_ARCH'''を設定すると解決する (Makefile.localにでも放り込んでおく)
*** AVX512未対応かつ、AVX2・F16C対応なので '''HASWELL''' が適正?
!! バッテリ容量と実用待機時間
CF-LV系からカタログの稼働時間は延長されているが、'''バッテリ定格容量自体はCF-LV用のバッテリパックよりも小さい'''
おそらく、キーボード下をメインボードと後方の冷却アッセンブリに割り当て、タッチパッド下にバッテリを配置するレイアウトで、すっきりとした薄板デザインでは、バッテリを厚くする余地が無いためと思われる (CF-LV並にすればもう少し容量を稼いで、冷却も楽になったと思うのだが…流行りからは外れるよね)
* バッテリ(L)パック仕様
||バッテリ||定格電圧||定格容量||重量||
||LV用(L)||10.80V||6300mAh(68.0Ah)||355g||
||FV用(L)||11.55V||4786mAh(55.3Wh)||300g||
* バッテリパック(L)装着時の駆動時間 ('''カタログ値''')
||モデル||JEITA2.0||JEITA3.0(動画)||JEITA3.0(アイドル)||
||LV8||18.5h|| n/a || n/a ||
||FV5||20.0h|| 9.0h||18.1h||
いやマジで、ソフトウェア制御でどんだけ電力絞ってるんだ?
FreeBSD環境で'''acpiconf -i0'''が報告する消費電力を無線LAN接続・hwpstate_intelはeconomy運用の条件で測ると以下の傾向が見えてくる
* 標準輝度VT-consoleだとLV8に比べてFV5が若干電力が小さい(最頻値でFV5 8.7W vs LV8 9.6~9.7W)が、バッテリパックの容量差を覆せる程ではない
* VT-consoleに比べで、X.org稼働時の方が若干電力が大きい(LV8 +0.2W vs FV5 +0.5W)
* LV8に比べて、FV5の方が電力のばらつきが大きい(LV8 0.2W p-p vs FV5 2.0W p-p)
* UEFI framebuffer使用時よりkms driverロード時の方が電力が小さくなる(0.2W程度のゲイン)
* 液晶輝度制御が効くLV8だと液晶バックライト輝度制御で2W程度の電力軽減が出来ている (kms/intel driver + 輝度制御で~7.5W)
現状の実用設定でのX.org稼働でのアイドリング電力は、LV8 7.5W vs FV5 9.2W 程度
バッテリ容量で19%減、アイドリング電力で23%増で、推定待機時間は33%減少
やはり、液晶輝度制御が効いてないのが苦しい模様
* 2024/05/09 購入
* 2024/05/31 納入
* 2024/06/01 セットアップ開始…
* 2024/06/09 FreeBSD環境運用開始
!!システム構成
||ベース||Panasonic Letsnote FV5 CF-FV5URCCP||
||メモリ||SK Hynix LPDDR5 32GB||
||nvme0||Samsung PM9A1a NVMe SSD 1TB||
||nvme1||Samsung PM9A1a NVMe SSD 1TB||
* dmesgから、nvme0/1の搭載NVMe SSDは Samsung PCIe Gen4 x4のモジュールで同一型番
** カタログでは、Gen4接続・Gen3接続が各一台が仕様
** 後述の通り'''nvme1'''側がシステムディスクの模様なので、そちらがGen4接続と思われる
** Windows環境起動前に、FreeBSD installerのshell環境から'''dd(1)'''で舐めた限りでは、sequential read rateに大きな差はなかった
*** nvme1側が1割程度早かったが、3.7~3.9GB/sec程度のレート(ddのステータスによる)で、NVMe SSDのカタログ値には届いていない (並列度が足りない?)
** '''CrystalDiskMark 8.0.5''' on Windows11 pro
*** nda1(Gen4x4接続/C:) - 6927/4918MB/s (Read/Write @ 8-Queue) 4354/4196MB/s (Read/Write @ 1-Queue)
*** nda0(Gen3x4接続/D:) - 3514/MB/3327s (Read/Write @ 8-Queue) 2616/2965MB/s (Read/Write @ 1-Queue)
** '''recoverdisk''' on FreeBSD 14.1-STABLE (after installation)
*** nda0 - 2920MB/s @ 512KByte/io (systat -vmstatによる読み)
**** CrystalDiskMarkの'''1-Queue'''ベンチマーク結果に近い
*** nda1 - 3000~4800MB/s @ 512KByte/io (systat -vmstatによる読み)
**** かなり大きなレート変動有り (CPU負荷・NVMe温度・NVMe書き込み状態の影響か?)
**** Gen3x4帯域を越えてくるのは確か
**** 平均レートは、CrystalDiskMarkの'''1-Queue'''ベンチマーク結果に近い
!!!初期Partition
''/dev/nda1''側がシステムディスクになっている模様
* /dev/nda0 (nda0p1 - Windows D:)
=> 34 2000409197 nda0 GPT (954G)
34 2014 - free - (1.0M)
2048 2000406528 1 ms-basic-data (954G)
2000408576 655 - free - (328K)
* /dev/nda1 (nda1p3 - Windows C:)
=> 34 2000409197 nda1 GPT (954G)
34 2014 - free - (1.0M)
2048 532480 1 efi (260M)
534528 32768 2 ms-reserved (16M)
567296 1966356480 3 ms-basic-data (938G)
1966923776 2027520 4 ms-recovery (990M)
1968951296 31457280 5 !de94bba4-06d1-4d40-a161-bfd50179d6ac (15G)
2000408576 655 - free - (328K)
!!!PCI device
hostb0@pci0:0:0:0: class=0x060000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x7d01 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = HOST-PCI
vgapci0@pci0:0:2:0: class=0x030000 rev=0x08 hdr=0x00 vendor=0x8086 device=0x7d55 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P [Intel Arc Graphics]'
class = display
subclass = VGA
none0@pci0:0:4:0: class=0x118000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x7d03 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = dasp
pcib1@pci0:0:6:0: class=0x060400 rev=0x10 hdr=0x01 vendor=0x8086 device=0x7eca subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = PCI-PCI
pcib2@pci0:0:7:0: class=0x060400 rev=0x02 hdr=0x01 vendor=0x8086 device=0x7ec4 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Thunderbolt 4 PCI Express Root Port'
class = bridge
subclass = PCI-PCI
pcib3@pci0:0:7:1: class=0x060400 rev=0x02 hdr=0x01 vendor=0x8086 device=0x7ec5 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Thunderbolt 4 PCI Express Root Port'
class = bridge
subclass = PCI-PCI
none1@pci0:0:8:0: class=0x088000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e4c subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = base peripheral
none2@pci0:0:10:0: class=0x118000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x7d0d subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = dasp
none3@pci0:0:11:0: class=0x120000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x7d1d subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake NPU'
class = processing accelerators
subclass = processing accelerators
xhci0@pci0:0:13:0: class=0x0c0330 rev=0x02 hdr=0x00 vendor=0x8086 device=0x7ec0 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Thunderbolt 4 USB Controller'
class = serial bus
subclass = USB
none4@pci0:0:13:2: class=0x0c0340 rev=0x02 hdr=0x00 vendor=0x8086 device=0x7ec2 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Thunderbolt 4 NHI'
class = serial bus
subclass = USB
none5@pci0:0:18:0: class=0x070000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e45 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = simple comms
subclass = UART
xhci1@pci0:0:20:0: class=0x0c0330 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e7d subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P USB 3.2 Gen 2x1 xHCI Host Controller'
class = serial bus
subclass = USB
none6@pci0:0:20:2: class=0x050000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e7f subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = memory
subclass = RAM
iwlwifi0@pci0:0:20:3: class=0x028000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e40 subvendor=0x8086 subdevice=0x0090
vendor = 'Intel Corporation'
device = 'Meteor Lake PCH CNVi WiFi'
class = network
none7@pci0:0:21:0: class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e78 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P Serial IO I2C Controller'
class = serial bus
none8@pci0:0:22:0: class=0x078000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e70 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = simple comms
none9@pci0:0:22:3: class=0x070002 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e73 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = simple comms
subclass = UART
pcib4@pci0:0:28:0: class=0x060400 rev=0x20 hdr=0x01 vendor=0x8086 device=0x7e38 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = PCI-PCI
pcib5@pci0:0:28:5: class=0x060400 rev=0x20 hdr=0x01 vendor=0x8086 device=0x7e3d subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = PCI-PCI
isab0@pci0:0:31:0: class=0x060100 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e02 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = bridge
subclass = PCI-ISA
hdac0@pci0:0:31:3: class=0x040100 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e28 subvendor=0x10f7 subdevice=0x8385
vendor = 'Intel Corporation'
device = 'Meteor Lake-P HD Audio Controller'
class = multimedia
subclass = audio
none10@pci0:0:31:4: class=0x0c0500 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e22 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P SMBus Controller'
class = serial bus
subclass = SMBus
none11@pci0:0:31:5: class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e23 subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
device = 'Meteor Lake-P SPI Controller'
class = serial bus
em0@pci0:0:31:6: class=0x020000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x550a subvendor=0x10f7 subdevice=0x8338
vendor = 'Intel Corporation'
class = network
subclass = ethernet
nvme0@pci0:1:0:0: class=0x010802 rev=0x00 hdr=0x00 vendor=0x144d device=0xa80a subvendor=0x144d subdevice=0xa801
vendor = 'Samsung Electronics Co Ltd'
device = 'NVMe SSD Controller PM9A1/PM9A3/980PRO'
class = mass storage
subclass = NVM
nvme1@pci0:132:0:0: class=0x010802 rev=0x00 hdr=0x00 vendor=0x144d device=0xa80a subvendor=0x144d subdevice=0xa801
vendor = 'Samsung Electronics Co Ltd'
device = 'NVMe SSD Controller PM9A1/PM9A3/980PRO'
class = mass storage
subclass = NVM
sdhci_pci0@pci0:133:0:0: class=0x080501 rev=0x01 hdr=0x00 vendor=0x1217 device=0x8520 subvendor=0x1217 subdevice=0x0002
vendor = 'O2 Micro, Inc.'
device = 'SD/MMC Card Reader Controller'
class = base peripheral
subclass = SD host controller
!!!USB device
ugen0.1: <Intel XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.1: <Intel XHCI root HUB> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.2: <Bison USB FHD Camera> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen1.3: <vendor 0x06cb product 0x00c6> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen1.4: <AX211 Bluetooth Intel Corp.> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
* ugen1.2の内蔵カメラ (multimedia/webcamdで使えるようになる)
* ugen1.3のSynapticsの指紋センサーは、[[旧ノート CF-LV8W|Sasami4]]と同じ '''idProduct'''
* ugen1.4は、Bluetooth firmwareはcomms/iwmbt-firmwareか?
!!環境構築コンセプト
* Win11 ProとFreeBSDのDual Boot運用
* 追加のNVMe Gen3側にFreeBSD 14.1-STABLE環境を構築する
** graphics/drm-kmodが未サポートなので、当面は scfb driverでの運用を想定
!!!前準備
# 初期充電・Memtest86による動作試験
# FreeBSD Installerの動作確認
# Windows11 Pro初期設定
** WLAN MACアドレス確認
** WLAN接続設定
** Bluetooth mouseペアリング
** Firmwareアップデート
** Windows Update適用
** Recovery USB Media作成
** アカウント再生成 (Microsoftアカウントで初期化すると、Home Directory名があかん奴に…Orz)
** Windows環境の初期設定 [[Tips/Windows10]]
# 2nd SSD上のデータパーテション(D:)削除し、FreeBSDへ明け渡す
# [[旧ノート|Sasami4]]にて、''/etc'', ''/var'', ''/usr/local/etc'', ''/usr/src'', ''/usr/ports'', ''/root'', ''/home''のアーカイブを作成し、母艦に吸い上げる
# 空いた'''nda0'''へUEFI+GPT ZFSBOOT構成でFreeBSD 14.1-STABLEをインストール
** ''/etc'', ''/root''のアーカイブをInstall Media経由で導入
** ''/root''と''/etc/ssh/sshd_config'', ''/etc/ssh/ssh_host_*''を展開して、公開鍵認証で'''root''' login可能な状態にする
** ''/etc/master.passwd'', ''/etc/group''を展開し、アカウントを認証情報を同期する
** zfs調整
# zfs set mountpoiny=none zsasami5
# rmdir /zsasami5
# mkdir -p /home/amorita/.ssh
# chmod 700 /home/amorita/.ssh
# chown -R amorita:user /home/amorita
# mkdir -p /usr/local/share/man/ja
# ln -s /usr/local/share/man/ja /usr/local/share/man/ja.eucJP
# ln -s /usr/local/share/man/ja /usr/local/share/man/ja.UTF-8
# zfs create -o mountpoint=/SAD zsasami5/SAD
# chown amorita /SAD
# zfs create -o canmount=off zsasami5/var/db
# zfs create -o canmount=off zsasami5/usr/local
# zfs create zsasami5/usr/local/ptex
# zfs create zsasami5/usr/local/texlive
# chown amorita /usr/local/ptex /usr/local/texlive
# zfs destroy zsasami5/usr/src
# zfs destroy zsasami5/usr/ports
# zfs create -o setuid=off zsasami5/usr/obj
# zfs create -o setuid=off zsasami5/usr/doc
# zfs create -o setuid=off zsasami5/usr/src
# zfs create -o setuid=off zsasami5/usr/ports
# zfs create -o compression=off zsasami5/usr/ports/distfiles
# zfs create -o compression=off zsasami5/usr/ports/packages
# mkdir /usr/ports/packages/All
# chflags sunlink /usr/ports/packages/All
# chown -R amorita /usr/doc /usr/src /usr/ports
# chmod 2775 /usr/ports/distfiles
!!!環境構築
# base system upgrade
** ''/usr/src''アーカイブを転送して、所定の位置に展開
** ''/etc''アーカイブから、''/etc/src.conf''及び''/etc/make.conf''を展開
** ''/usr/src''にて、buildworld/buildkernel → installkernel/installworldする
# ports install
** ''/usr/ports''アーカイブを転送して、所定の位置に展開
** ''/var''アーカイブを転送して、''/var/db/ports''を展開
** ''ports-mgmt/portmaster''をインストール
** portmasterを使って、必要なportsをすべてインストール
# 手動インストール
** VT console用日本語フォント一式
** TrueTypeフォント一式
** 電子辞書(EPWING)
** emacs lisp packages - bbdb yatex
** admin/tools - block-cmp ssd-sync djbdns-tools ssh-cleanup-sockets cups-filter clockdiff vpn-wrapper
** EPICS, SAD
# 各種設定
** ''/etc'', ''/usr/local/etc''の設定を仕上げる
# home転送
** zfs send/recv or rsyncでホームディレクトリを複製・同期する
!!備考
* ==LAN '''em0'''(I219-LM MTP(18))の速度が出ていない==[[環境要因と判明|http://jyurai.ddo.jp/~amorita/diary/?date=20240613#p01]]
** ==Tx側は 108MBytes/secでるが、Rx側は 60MBytes/sec程度しか出ない==
*** ==[[旧ノート|Sasami4]]の'''em0'''(I219-LM CNP(6))では、Tx/Rxともに 111MByte/sec出てる==同時計測時はスイッチへの接続形態が異なった
* Bluetooth '''ubt0'''を認識しない → [[D44861|https://reviews.freebsd.org/D44861]]を[[ハックして|http://jyurai.ddo.jp/~amorita/diary/?date=20240605#p1]]解決
** [[D44861|https://reviews.freebsd.org/D44861]]をベースにした修正
*** [[ベースパッチ|https://reviews.freebsd.org/D44861?download=true]]とAX211対応の[[個別パッチ|https://reviews.freebsd.org/D44861#1024632]]を適用
*** ''usr.sbin/bluetooth/iwmbtfw/main.c''に'''hw_variant'''を追加 (CPU or Chipset世代毎で違う模様)
*** ''sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c''を修正する (2024/06/05時点のパッチはバグ有りの模様)
**** ''usr.sbin/bluetooth/iwmbtfw/main.c''上の同一ベンダコマンドの応答解析コードとの読み比べによる推論
**** ''ng_ubt_intel.c''にパッチしないと、''/usr/sbin/iwmbtfw''がファームウェアのダウンロードに成功しても'''ubt_intel_probe'''で失敗する
** comms/iwmbt-firmwareに同梱されていないfirmware '''ibt-0180-0041.sfi'''と'''ibt-0180-0041.ddc'''を ''/usr/local/share/iwmbt-firmware/''に配置
*** https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/intel から拾ってくる
*** [[regression on linux-firmware for intel AX211 bluetooth|https://bbs.archlinux.org/viewtopic.php?id=290710]]という話もある
**** 手元の環境では、2024/01/05付けのRevision '''23.20.0.3'''と2024/05/10付けのRevision '''23.50.0.2'''は動作した
--- usr.sbin/bluetooth/iwmbtfw.old/main.c 2024-06-08 01:50:41.000000000 +0900
+++ usr.sbin/bluetooth/iwmbtfw/main.c 2024-06-06 05:35:31.324438000 +0900
@@ -346,7 +346,7 @@
parsed->parse_state = 0;
if (iwmbt_tlv_foreach(tlv, iwmbt_parse_one_tlv, parsed))
return -1;
- if (parsed->parse_state != 31)
+ if (parsed->parse_state != 31 && parsed->parse_state != 15)
return -1;
return 0;
}
@@ -718,8 +718,8 @@
switch (ver.hw_variant) {
case 0x17:
- break;
case 0x18:
+ case 0x1b:
break;
default:
iwmbt_err("unknown hw_variant 0x%02x", (int) ver.hw_variant);
--- sys/netgraph/bluetooth/drivers/ubt.olf/ng_ubt_intel.c 2024-06-08 01:49:37.000000000 +0900
+++ sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c 2024-06-08 01:54:36.479559000 +0900
@@ -162,10 +162,18 @@
if (evt->header.event != NG_HCI_EVENT_COMMAND_COMPL)
return false;
- pos = offsetof(struct ubt_hci_event_command_compl, data);
+ pos = 0;
while ((pos + 2) < evt->header.length) {
f = (struct ubt_intel_tlv_field *) &evt->data[pos];
+ if(bootverbose) {
+ if(f->len > 0)
+ printf("ubt_intel_tlv: pos=%lu/%d type=0x%02x len=2+%d val[0]=0x%02x\n",
+ pos, evt->header.length, f->type, f->len, f->val[0]);
+ else
+ printf("ubt_intel_tlv: pos=%lu/%d type=0x%02x len=2+%d\n",
+ pos, evt->header.length, f->type, f->len);
+ }
if (pos + f->len >= evt->header.length)
break;
Command: iwmbtfw -D -I -d ugen1.4 -f /usr/local/share/iwmbt-firmware
main: opening dev 1.4
iwmbt_is_tlv: found TLV
iwmbt_dump_one_tlv: TLV: 0x10 = 0x00000800
iwmbt_dump_one_tlv: TLV: 0x11 = 0x00000410
iwmbt_dump_one_tlv: TLV: 0x12 = 0x00003700
iwmbt_dump_one_tlv: TLV: 0x15 = 0x0613
iwmbt_dump_one_tlv: TLV: 0x16 = 0x0000
iwmbt_dump_one_tlv: TLV: 0x17 = 0x8087
iwmbt_dump_one_tlv: TLV: 0x18 = 0x0033
iwmbt_dump_one_tlv: TLV: 0x1c = 0x01
iwmbt_dump_one_tlv: TLV: 0x1d = 0x1612
iwmbt_dump_one_tlv: TLV: 0x1e = 0x01
iwmbt_dump_one_tlv: TLV: 0x1f = 0x0000c072
iwmbt_dump_one_tlv: TLV: 0x27 = 0x00
iwmbt_dump_one_tlv: TLV: 0x28 = 0x01
iwmbt_dump_one_tlv: TLV: 0x29 = 0x00
iwmbt_dump_one_tlv: TLV: 0x2a = 0x01
iwmbt_dump_one_tlv: TLV: 0x2b = 0x01
iwmbt_dump_one_tlv: TLV: 0x2c = 0x00
iwmbt_dump_one_tlv: TLV: 0x2d has unhandled length of 3
iwmbt_dump_one_tlv: TLV: 0x2e = 0x00
iwmbt_dump_one_tlv: TLV: 0x2f = 0x01
iwmbt_dump_one_tlv: TLV: 0x30 has unhandled length of 6
iwmbt_dump_one_tlv: TLV: 0x31 = 0x00
iwmbt_dump_version: status 0x00
iwmbt_dump_version: hw_platform 0x37
iwmbt_dump_version: hw_variant 0x1b
iwmbt_dump_version: hw_revision 0x00
iwmbt_dump_version: fw_variant 0x00
iwmbt_dump_version: fw_revision 0x00
iwmbt_dump_version: fw_build_num 0x00
iwmbt_dump_version: fw_build_ww 0x00
iwmbt_dump_version: fw_build_yy 0x00
iwmbt_dump_version: fw_patch_num 0x00
main: fw_variant=0x00
main: firmware_path = /usr/local/share/iwmbt-firmware/ibt-0180-0041.sfi
iwmbt_init_firmware: loading /usr/local/share/iwmbt-firmware/ibt-0180-0041.sfi
iwmbt_load_fwfile: file=/usr/local/share/iwmbt-firmware/ibt-0180-0041.sfi, size=824316
iwmbt_load_fwfile: transferring 128 bytes, offset 644
...
iwmbt_load_fwfile: transferring 208 bytes, offset 824076
iwmbt_load_fwfile: transferring 4 bytes, offset 824284
iwmbt_load_fwfile: boot_param=0x00100800
iwmbt_load_fwfile: transferring 28 bytes, offset 824288
main: Firmware download complete
main: Firmware operational
iwmbt_dump_version: status 0x00
iwmbt_dump_version: hw_platform 0x37
iwmbt_dump_version: hw_variant 0x1b
iwmbt_dump_version: hw_revision 0xa0
iwmbt_dump_version: fw_variant 0x63
iwmbt_dump_version: fw_revision 0x0c
iwmbt_dump_version: fw_build_num 0x00
iwmbt_dump_version: fw_build_ww 0x00
iwmbt_dump_version: fw_build_yy 0x0e
iwmbt_dump_version: fw_patch_num 0x18
main: ddc_path = /usr/local/share/iwmbt-firmware/ibt-0180-0041.ddc
iwmbt_init_ddc: loading /usr/local/share/iwmbt-firmware/ibt-0180-0041.ddc
iwmbt_load_ddc: file=/usr/local/share/iwmbt-firmware/ibt-0180-0041.ddc, size=9
iwmbt_load_ddc: transferring 4 bytes, offset 0
iwmbt_load_ddc: transferring 5 bytes, offset 4
main: DDC download complete
main: Intel Event Mask is set
main: Firmware download is successful!
Command exit status: 0
Autoloading module: ng_ubt
ubt_intel_tlv: pos=0/110 type=0x00 len=2+16 val[0]=0x04
ubt_intel_tlv: pos=18/110 type=0x00 len=2+19 val[0]=0x04
ubt_intel_tlv: pos=39/110 type=0x33 len=2+0
ubt_intel_tlv: pos=41/110 type=0x1c len=2+1 val[0]=0x03
ubt_intel_tlv: pos=0/110 type=0x00 len=2+16 val[0]=0x04
ubt_intel_tlv: pos=18/110 type=0x00 len=2+19 val[0]=0x04
ubt_intel_tlv: pos=39/110 type=0x33 len=2+0
ubt_intel_tlv: pos=41/110 type=0x1c len=2+1 val[0]=0x03
ubt0 on uhub1
ubt0: <vendor 0x8087 product 0x0033, class 224/1, rev 2.01/0.00, addr 3> on usbus1
* WLAN '''iwlwifi0'''が動かない →
** ドライバはロードされているが、ファームが見つからない (iwlwifi-ma-b0-gf-a0-59 ~ iwlwifi-ma-b0-gf-a0-83)
*** ports的には'''net/wifi-firmware-iwlwifi-kmod@ax210'''だが、'''iwlwifi-ma-b0-gf-a0-89'''を含むが'''iwlwifi-ma-b0-gf-a0-83'''を含まない
**** 2024/11/10時点でも含まれないので、パッチしてみた (kernel moduleを作るより作業量が小さい/install向けには installer USBにpkgを詰め込む)
diff --git a/net/wifi-firmware-iwlwifi-kmod/Makefile b/net/wifi-firmware-iwlwifi-kmod/Makefile
index d198b1216268..d25f747ad2af 100644
--- a/net/wifi-firmware-iwlwifi-kmod/Makefile
+++ b/net/wifi-firmware-iwlwifi-kmod/Makefile
@@ -75,6 +75,7 @@ DISTFILES_${FWDRV}_lic=
### <<<
DISTFILES_ax210+= \
+ iwlwifi-ma-b0-gf-a0-83.ucode${DISTURL_SUFFIX} \
iwlwifi-ma-b0-hr-b0-83.ucode${DISTURL_SUFFIX}
DISTFILES_bz+= \
iwlwifi-gl-c0-fm-c0-83.ucode${DISTURL_SUFFIX}
diff --git a/net/wifi-firmware-iwlwifi-kmod/distinfo b/net/wifi-firmware-iwlwifi-kmod/distinfo
index 5037426284b0..ebce7ccd432c 100644
--- a/net/wifi-firmware-iwlwifi-kmod/distinfo
+++ b/net/wifi-firmware-iwlwifi-kmod/distinfo
@@ -49,6 +49,8 @@ SHA256 (linux-firmware/iwlwififw/iwlwifi-so-a0-hr-b0-89.ucode?h=20241017) = ac87
SIZE (linux-firmware/iwlwififw/iwlwifi-so-a0-hr-b0-89.ucode?h=20241017) = 1530736
SHA256 (linux-firmware/iwlwififw/iwlwifi-so-a0-jf-b0-72.ucode?h=20241017) = bc3a70588ae1563411556e43d23a65ea16f26f5a7fd551169c6c8a2eebf0f832
SIZE (linux-firmware/iwlwififw/iwlwifi-so-a0-jf-b0-72.ucode?h=20241017) = 1406312
+SHA256 (linux-firmware/iwlwififw/iwlwifi-ma-b0-gf-a0-83.ucode?h=20241017) = 9386a8294457f527c6e0fa1eac440c50cbee801707fdb480a10889770c0d297b
+SIZE (linux-firmware/iwlwififw/iwlwifi-ma-b0-gf-a0-83.ucode?h=20241017) = 1753308
SHA256 (linux-firmware/iwlwififw/iwlwifi-ma-b0-hr-b0-83.ucode?h=20241017) = 03b67d28b4916634c544e057abdc46b15b636a85064df993ca431fd92fe4a835
SIZE (linux-firmware/iwlwififw/iwlwifi-ma-b0-hr-b0-83.ucode?h=20241017) = 1572104
SHA256 (linux-firmware/iwlwififw/iwlwifi-gl-c0-fm-c0.pnvm?h=20241017) = faee96e453d18d9e0433c5490afc8218d22cf02a745f2041c5fa00b35b686a9c
** '''11a'''(OFDM/54Mbps)にて基地局との接続に成功
*** '''benchmarks/netio'''によるTCPv4ベンチマークでは、Tx 579KByte/s・Rx 3024KByte/s
*** 54Mbpsの理論帯域に対し、Txが悪すぎる (まだまだ問題が多い様だが、Rx帯域は出てるのでWeb閲覧的には充分)
*** iwlwifi attach時に、'''iwl-debug-yoyo.bin: could not load firmware image, error 2'''が出る
iwlwifi0: <iwlwifi> mem 0x40982d4000-0x40982d7fff at device 20.3 on pci0
iwlwifi0: attempting to allocate 16 MSI-X vectors (16 supported)
iwlwifi0: using IRQs 181-196 for MSI-X
iwlwifi0: Detected crf-id 0x400410, cnv-id 0x1080800 wfpm id 0x80000020
iwlwifi0: PCI dev 7e40/0090, rev=0x441, rfid=0x2010d000
firmware: 'iwlwifi-ma-b0-gf-a0-83.ucode' version 83: 1753308 bytes loaded at 0xffffffff82e96000
iwlwifi0: successfully loaded firmware image 'iwlwifi-ma-b0-gf-a0-83.ucode'
iwlwifi0: api flags index 2 larger than supported by driver
iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.88.3.1
iwl-debug-yoyo.bin: could not load firmware image, error 2
iwl-debug-yoyo.bin: could not load firmware image, error 2
iwl-debug-yoyo_bin: could not load firmware image, error 2
iwl_debug_yoyo_bin: could not load firmware image, error 2
iwlwifi0: loaded firmware version 83.d24e06ed.0 ma-b0-gf-a0-83.ucode op_mode iwlmvm
iwlwifi0: Detected Intel(R) Wi-Fi 6E AX211 160MHz, REV=0x441
iwlwifi0: WRT: Invalid buffer destination: 0
iwlwifi0: Not valid error log pointer 0x002798A8 for RT uCode
iwlwifi0: WFPM_UMAC_PD_NOTIFICATION: 0x1f
iwlwifi0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
iwlwifi0: WFPM_AUTH_KEY_0: 0x80
iwlwifi0: CNVI_SCU_SEQ_DATA_DW9: 0x0
iwlwifi0: RFIm is deactivated, reason = 4
firmware: 'iwlwifi-ma-b0-gf-a0.pnvm' version 83: 55096 bytes loaded at 0xffffffff82e96000
iwlwifi0: successfully loaded firmware image 'iwlwifi-ma-b0-gf-a0.pnvm'
iwlwifi0: loaded PNVM version ce1a5094
iwlwifi0: Detected RF GF, rfid=0x2010d000
iwlwifi0: base HW address: **:**:**:**:**:**
iwlwifi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
iwlwifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
iwlwifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
* ポインタデバイス'''iichid0'''が見えない → パッチして、TouchPadデバイスの動作を確認
** 上流の'''Meteor Lake-P Serial IO I2C Controller'''を'''ig4iic'''ドライバが認識していない
*** ==''sys/dev/ichiic/ig4_pci.c''のPCI Device IDに入っていない==stable/14では、2024-10-17の[[Add smbus and i2c device IDs for Meteor Lake|https://cgit.freebsd.org/src/commit?h=stable/14&id=14c22e28e4ee62f4d3f2d6004881d874fafa7d11]]にて対応済み
*** =='''Meteor Lake-P SMBus Controller'''を認識しない理由も同様と思われる (''sys/dev/ichsmb/ichsmb_pci.c'')==(同上)
** 手持ちのデバイス分のPCI Device IDを追加したところ、'''iichid0'''->'''hmt0'''/'''hms0'''を認識した
*** '''hms0'''は、[[旧ノート|Sasami4]]でも認識されていたHIDマウス
*** X.orgでの動作については後述
ig4iic0: <Intel Meteor Lake-P I2C Controller-X> at device 21.0 on pci0
pcib0: allocated type 3 (0x84521000-0x84521fff) for rid 10 of ig4iic0
ig4iic0: Lazy allocation of 0x1000 bytes rid 0x10 type 3 at 0x84521000
ig4iic0: Using MSI
pcib0: matched entry for 0.21.INTA
pcib0: slot 21 INTA hardwired to IRQ 32
ig4iic0: Controller parameters:
Speed: Fast
Regs: HCNT :LCNT :SDAHLD
Std: 0x0228:0x028c:0x0006
Fast: 0x0064:0x00c8:0x0006
FIFO: RX:0x0040: TX:0x0040
ioapic0: routing intpin 32 (PCI IRQ 32) to lapic 48 vector 53
iicbus0: <Philips I2C bus (ACPI-hinted)> on ig4iic0
iicbus0: found ACPI child
SlaveAddress: 0x002c
ConnectionSpeed: 400000Hz
SlaveMode: ControllerInitiated
AddressingMode: 7Bit
ConnectionSharing: Exclusive
GPIO IRQ pin: 131
iicbus0: <unknown card> at addr 0x2c
iichid0: <SYNA0103:00 06CB:CFB1 I2C HID device> at addr 0x2c on iicbus0
iichid0: Interrupt setup failed. Fallback to sampling
hidbus0: <HID bus> on iichid0
hmt0: <SYNA0103:00 06CB:CFB1 TouchPad> on hidbus0
hconf0: <SYNA0103:00 06CB:CFB1 Configuration> on hidbus0
hmt0: Multitouch touchpad with 2 external buttons
hmt0: 5 contacts with [C] properties. Report range [0:0] - [771:771]
hms0: <SYNA0103:00 06CB:CFB1 Mouse> on hidbus0
hms0: 2 buttons and [XY] coordinates ID=2
* X.org
** drm-kmod無しでも、'''scfb''' driver(ports/x11-drivers/xf86-video-scfb)で本体液晶のみは動く
*** acpi_video・acpi_panasonicをロードしても輝度調整がまともに機能しない
*** UEFI frame buffer上で動いているVT consoleとの運用互換性は担保される
** [[drm-kmod|https://github.com/freebsd/drm-kmod]]のmasterは、2024年9月に6.6がマージ済みでMeteor Lakeが辛うじて動く (portsはまだ無い)
*** stable/14側のlinuxkpiにパッチを当る必要があるが、KMS driverは動く模様 ([[2024/08/05確認時点|http://jyurai.ddo.jp/~amorita/diary/?date=20240805#p01]])
*** gpu-firmware-intel-kmod(ports/graphics/gpu-firmware-intel-kmod)にMeteorLake向けのfirmwareが同梱されないので、別途、自力で用意する必要がある
**** https://github.com/freebsd/drm-kmod-firmware には、2024-11-02のcommitで収録された
*** UEFI frame bufferの描画が崩れる (VT console・Xorg + scfb driver)
*** Xorg + '''intel''' driver(ports/x11-drivers/xf86-video-intel)は動かない (PCI Device IDリストに入っていない)
*** Xorg + '''modesetting''' driverでXorgが動く
*** backlight(8)コマンドからbacklight(9)経由で輝度制御が機能する
*** USB-C Alt Modeの外部ディスプレイを認識できる・xrandrで設定/使用可能 (VT console崩れるけど、scfb driverに無い明確なメリット)
* X.org向けTouchPad設定(libinput)
** 素のlibinputでは、mouse動作になる模様 (default動作)
** タッピング・エッジスクロール有効化での動作を確認
*** タップ・マルチフィンガータップで1~3ボタンイベントを確認
*** 右端・下端でのエッジスクロールを確認 (Let'snote標準の'''ぐるぐるスクロール'''ではない・丸いパッドだといまいち)
**** 入力受付域の関係で、'''edge'''よりも'''twofinger'''の方が実用的かも…
** '''hms0'''側(SYNA0103:00 06CB:CFB1 Mouse)は誤作動防止のためxinputから外しておく
Section "InputClass"
Identifier "CF-FV5 Touchpad"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "Tapping" "True"
Option "TappingDrag" "True"
Option "DisableWhileTyping" "True"
Option "ScrollMethod" "edge"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "CF-FV5 Mouse"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
MatchProduct "SYNA0103:00 06CB:CFB1 Mouse"
Option "Ignore" "True"
EndSection
* X.org向けTouchPad設定(synaptics)
** '''synaptics'''ドライバでも動いた
** '''CircularScrolling'''(ぐるぐるスクロール)を使うには、'''*Edge'''パラメータを要調整
*** デフォルトのままだと、スクロールを受け付ける領域が狭すぎる
*** スクロール開始位置で、垂直スクロール・水平スクロールに振り分けることは出来ないぽぃ
** 水平スクロース操作向けに、'''HorizTwoFingerScroll'''は有効にしたほうが便利
** 他のパラメータは結構適当なのであくまでも参考程度に
Section "InputClass"
Identifier "CF-FV5 Touchpad"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "MinSpeed" "0.5"
Option "MaxSpeed" "1.0"
Option "LeftEdge" "100"
Option "RightEdge" "700"
Option "TopEdge" "70"
Option "BottomEdge" "700"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "2"
Option "CircularPad" "on"
Option "CircularScrolling" "on"
Option "CircScrollDelta" "0.25"
Option "VertTwoFingerScroll" "on"
Option "HorizTwoFingerScroll" "on"
Option "VertScrollDelta" "7"
Option "HorizScrollDelta" "7"
Option "ScrollButtonRepeat" "100"
Option "UpDownScrolling" "on"
Option "UpDownRepeat" "on"
Option "LeftRightScrolling" "on"
Option "LeftRightRepeat" "on"
Driver "synaptics"
EndSection
Section "InputClass"
Identifier "CF-FV5 Mouse"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
MatchProduct "SYNA0103:00 06CB:CFB1 Mouse"
Option "Ignore" "True"
EndSection
* Audio出力
** 標準状態で、内蔵スピーカーが'''pcm0'''、左側ヘッドフォン端子が'''pcm1'''に割り当てられる
** 設定で、左ヘッドフォン端子(nid=33)と内蔵スピーカーを連動させ、端子挿入時に自動的に内蔵スピーカーをミュート出来る
hint.hdac.0.cad0.nid33.config="as=1 seq=15"
* 内蔵マイク
** Intel Smart Sound TechnologyによるArrayマイクなので、DSP側にファームをロードしないと使えない
*** [[Sound Open Firmware|http://www.sofproject.org]]でLinux向けのOSS Firmwareが開発されている
*** Firmware downloader及びDriverを誰か移植するまでお預け
* 内蔵カメラ
** '''multimedia/webcamd'''をインストールすれば問題なく使える
** 内蔵マイクが使えないので、単体でのリモート会議は別途デバイスが必要に…
* acpi_videoで液晶ディスプレイが見つからない
** '''_BCL'''メソッドを持つデバイスノードは見つかるが、'''_DOD'''メソッドが返すリストと照合しない(詳しくは[[日記|http://jyurai.ddo.jp/~amorita/diary/?date=20240608#p01]]を参照)
** 現時点では、'''graphics/drm-kmod'''も動かないので、液晶輝度の制御を行う術が無い(電力制御的にかなりのマイナス)
*** [[acpi_callで輝度を落とせた|http://azaka.jyurai/~amorita/diary/?date=20240618#p01]]が、ほとんど真っ暗に近い状態になるだけなので、待機電力節約にはなるがその状態では端末として実用にならない Orz
* ACPIでS3スリープしない
** ACPI S3ステートのサポートが無い模様
*** Windows11マシンなのでモダンスタンバイ('''S0i3'''スリープ)前提のハードウェア?
*** [[ThinkPad X1 Carbon(Gen6)|https://running-dog.net/2020/07/post_2333.html]]では、BIOSでs0i3/S3間で実装モードが切替えられるらしいが、当機のUEFI BIOSに該当する設定項目は無い模様
*** スリープの類を使うには、ACPI DSDTテーブルにパッチする・S0i3(モダンスタンバイ)もしくはS4(ハイバネーション)を自力で実装する必要がある
**** LinuxではS0ixサポートが実装されている模様
**** FreeBSDだと[[D17675|https://reviews.freebsd.org/D17675]]辺りか?(まだ統合されていない?)
***** [[2024/01/15|https://lists.freebsd.org/archives/freebsd-current/2024-January/005388.html]]にfreebsd-currentで話題になっているが、進展はなかった模様 Orz
** [[旧ノート CF-LV8W|Sasami4]]は、S3サポートがある(まあ、寝起きで問題起こすので、実用には微妙だったのですが…)
CF-FV5U% sysctl hw.acpi.s4bios hw.acpi.supported_sleep_state
hw.acpi.s4bios: 0
hw.acpi.supported_sleep_state: S4 S5
CF-LV8W% sysctl hw.acpi.s4bios hw.acpi.supported_sleep_state
hw.acpi.s4bios: 0
hw.acpi.supported_sleep_state: S3 S4 S5
* Thunderbolt
** '''Meteor Lake-P Thunderbolt 4 USB Controller'''は'''xhci'''として認識しているので、USBとしては使えるはず
** '''Meteor Lake-P Thunderbolt 4 NHI'''はドライバが無いので、Thunderbolt固有の機能は使えない
*** 開発している人はいる模様([[USB4/Thunderbolt3|https://github.com/hselasky/usb4]])
* Intel Thread Director
** サポートコードのプロポーザルが出ている([[PR277837|https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277837]])
** 素の14.1-STABLEの認識するスケジューリングトポロジー
*** 0-7,18-21が、4C/8T + 2C/4TなPコア
*** 8,9が、2CなLP-Eコア
*** 10-13,14-17が、4Cx2なEコア
# sysctl -n kern.sched.topology_spec
<groups>
<group level="1" cache-level="0">
<cpu count="22" mask="3fffff,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21</cpu>
<children>
<group level="2" cache-level="3">
<cpu count="2" mask="3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">0, 1</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="c,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">2, 3</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">4, 5</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="c0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">6, 7</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">8, 9</cpu>
</group>
<group level="2" cache-level="3">
<cpu count="4" mask="3c00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">10, 11, 12, 13</cpu>
</group>
<group level="2" cache-level="3">
<cpu count="4" mask="3c000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">14, 15, 16, 17</cpu>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="c0000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">18, 19</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
<group level="2" cache-level="3">
<cpu count="2" mask="300000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0">20, 21</cpu>
<flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
</group>
</children>
</group>
</groups>
* math/openblasのビルドに失敗する → WORKAROUND('''TARGET_CPU_ARCH=HASWELL''')発見
** 他の環境で問題が出ていないので、CPUアーキテクチャ検出回りがMeteor Lake-P未対応の模様
*** うちのMeteor Lake P - Extended Family: 0 Extended Model: 10 Family: 6 Model: 170 Stepping: 4
*** github上の'''cpuid_x86.c'''もまだ未対応? (Meteor Lake対応commitはあるが、model numberが異なる。Desktop版か?)
** '''TARGET_CPU_ARCH'''を設定すると解決する (Makefile.localにでも放り込んでおく)
*** AVX512未対応かつ、AVX2・F16C対応なので '''HASWELL''' が適正?
!! バッテリ容量と実用待機時間
CF-LV系からカタログの稼働時間は延長されているが、'''バッテリ定格容量自体はCF-LV用のバッテリパックよりも小さい'''
おそらく、キーボード下をメインボードと後方の冷却アッセンブリに割り当て、タッチパッド下にバッテリを配置するレイアウトで、すっきりとした薄板デザインでは、バッテリを厚くする余地が無いためと思われる (CF-LV並にすればもう少し容量を稼いで、冷却も楽になったと思うのだが…流行りからは外れるよね)
* バッテリ(L)パック仕様
||バッテリ||定格電圧||定格容量||重量||
||LV用(L)||10.80V||6300mAh(68.0Ah)||355g||
||FV用(L)||11.55V||4786mAh(55.3Wh)||300g||
* バッテリパック(L)装着時の駆動時間 ('''カタログ値''')
||モデル||JEITA2.0||JEITA3.0(動画)||JEITA3.0(アイドル)||
||LV8||18.5h|| n/a || n/a ||
||FV5||20.0h|| 9.0h||18.1h||
いやマジで、ソフトウェア制御でどんだけ電力絞ってるんだ?
FreeBSD環境で'''acpiconf -i0'''が報告する消費電力を無線LAN接続・hwpstate_intelはeconomy運用の条件で測ると以下の傾向が見えてくる
* 標準輝度VT-consoleだとLV8に比べてFV5が若干電力が小さい(最頻値でFV5 8.7W vs LV8 9.6~9.7W)が、バッテリパックの容量差を覆せる程ではない
* VT-consoleに比べで、X.org稼働時の方が若干電力が大きい(LV8 +0.2W vs FV5 +0.5W)
* LV8に比べて、FV5の方が電力のばらつきが大きい(LV8 0.2W p-p vs FV5 2.0W p-p)
* UEFI framebuffer使用時よりkms driverロード時の方が電力が小さくなる(0.2W程度のゲイン)
* 液晶輝度制御が効くLV8だと液晶バックライト輝度制御で2W程度の電力軽減が出来ている (kms/intel driver + 輝度制御で~7.5W)
現状の実用設定でのX.org稼働でのアイドリング電力は、LV8 7.5W vs FV5 9.2W 程度
バッテリ容量で19%減、アイドリング電力で23%増で、推定待機時間は33%減少
やはり、液晶輝度制御が効いてないのが苦しい模様