6月 192021
 

最近はコロナの影響で非常事態宣言が発令されている状況において、皆様、いかがお過ごしでしょうか。
僕は飲み屋さんに行くことができないので、その分飲み代が現金として溜まってきている。みたいな感じかなぁ。

と、いうことで Let’s Note CF-SZ5 の中古を購入してしまいました。型番的には CF-SZ5PDY6S です。
中古ですが、状態が良く A ランクで、届いたのを見たら確かにきれいです。傷らしいのはロック穴の周りに 2,3 個ある程度で他の部分は非常にきれいでした。液晶も無事です。
型番的に CF-SZ5PDY6S という Let’s Note CF-SZ5 ですが、当然、企業向けモデルで、定価だと 30 万 yen くらいらしいですが、これを税込み 41,000yen で購入しました。 最近、アキバでも中古 PC がたくさん出回っているようですが、それに比べるとちょっと高いかな? まぁ、その分程度が良いのでちょっと多めに出した。と、いう雰囲気で;-)。

スペック的にはこんな感じ。

  • OS: Windows10 Pro
  • CPU: Intel Core i5-6300U (2Core/4Thread)
  • Mem: 8GB 増減不可
  • SSD: M2 2280 SATA 256GB
  • 光学ドライブ: 無し
  • SD カードスロット: 有り (SDHC)
  • NIC: if_em and if_iwm

 
約一年くらい前に ThinkPad X13 AMD が届いて、苦労して FreeBSD をインストールしつつもなんとか使っている状態ですが、ちょっと古い PC で動かすと、もっと楽できるんじゃね? みたいな・・。

例えば ThinkPad X13 AMD は default で NIC が付いてないので USB NIC を接続したり suspend/resume できなかったり、AC アダプタ引っこ抜くとリブートしてしまったり・・。やっぱりまだまだ FreeBSD を動かすにはちょっと早い。でもって、 AC アダプタ引っこ抜くと再起動してしまうので、外に持ち出すことができない・・。はぁ・・。

 
と、いうことで、今回購入した Let’s Note CF-SZ5 は FreeBSD 専用機です。

まず、届いた直後にインストールされている Windows10 Pro のライセンスキーをひっこ抜きます。その後、リカバリーイメージを作成して Windows10 の基本的なバックアップは終了。

 
次に FreeBSD/amd64 13.0-RELEASE をインストールです。 SSD が 256GB しかないのでマルチブートはしません。 FreeBSD 専用機です。
FreeBSD インストール時には何も意識することなく、Windows パーティションもサクっと、消してインストールします。

1. UEFI (BIOS) の画面でセキュアプートをオフ
2. 13.0-Rの ISO イメージを UEFI モードで USB メモリに書き込みインストール
3. Windows のパーティションは全て削除
4. FreeBSD のインストールだよん

 
で、無事にFreeBSD/amd64 13.0-RELEASE のインストールが完了。 ports から KDE5 をインストールして環境を整えて無事にシューリョー。マルチブートとか気にしなくて良いのでインストールは非常に楽です。

 
Let’s Note CF-SZ5 は 2016 年の NotePC なので、ちょうど BIOS から UEFI へと切り替わる過渡期で、BIOS 設定でも UEFI と BIOS の両方有効にできます。 ThinkPad X13 AMD には既に BIOS の機能が無いことを考えると中途半端な感じですね。

 
インストール後の機能については以下な感じ。

  • SSD は M2 でありながら SATA 接続なので /dev/ada0 で認識します
  • SD カードスロット は sdhci で認識して SD カードは mmc0 もしくは mmcsd0 で認識します
  • NIC は em0 と iwm0 として認識し WiFi チップは Wireless 8260 として認識します
  • i915kms.ko を利用しているので xrandr で確認するとディスプレーは eDP-1 で認識されるので brightness が利用できます
  • 音はスピーカ・ヘッドホン共に出ます。Fn キーでボリュームも調整できます

 
さすがに古い PC はと、いうか Intel 系 CPU 搭載の NotePC はデバイスが色々動いて良いですねぇ;-)。

今回は graphics/intel-backlight はインストールしていません。 xrandr(1) とか backlight(8) で画面の明るさを変更することができます。

ここまで動作すると、ほぼ ThinkPad X13 AMD と機能的には同等ですね。 AMD 最新 CPU に対してよくやっているなぁ。と、いう感じかな;-)。

 
と、いうことで肝心の xorg について、インストールしたドライバは以下の通り。

xf86-input-evdev-2.10.6_6 X.Org event device input driver
xf86-input-keyboard-1.9.0_4 X.Org keyboard input driver
xf86-input-libinput-0.30.0_1 X.Org libinput input driver
xf86-input-mouse-1.9.3_3 X.Org mouse input driver
xf86-input-synaptics-1.9.1_8 X.Org synaptics input driver
xf86-video-scfb-0.0.5_2 X.Org syscons display driver
xf86-video-vesa-2.5.0 X.Org vesa display driver

 
xf86-video-intel はインストールしません。グラフィックスドライバは以下を利用します。

drm-fbsd13-kmod-5.4.92.g20210419 DRM modules for the linuxkpi-based KMS components
gpu-firmware-kmod-g20210330 Firmware modules for the linuxkpi-based KMS components

 
なので xorg.conf の Section “Device” で Driver “intel” な設定は無いですね。自動的に設定される modesetting になります。
/etc/rc.conf に以下の設定を書くだけです。

kld_list="i915kms.ko"

 
そして、/boot/loader.conf は以下のような感じ。ちょっと長いかな。

#
##
#
kern.vty=vt
hw.vga.textmode=1

#
## ipfw
#
net.inet.ip.fw.default_to_accept="1"

#
## ACPI
#
#acpi_video_load="YES"
acpi_panasonic_load="YES"

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

hint.psm.0.flags="0x6000"

#
## Realtek and Intel wifi license
#
legal.realtek.license_ack="1"
legal.intel_iwm.license_ack="1"

#
##
#
cpu_microcode_load="YES"
cpu_microcode_name="/boot/firmware/intel-ucode.bin"

coretemp_load="YES"

ichwd_load="YES"
smb_load="YES"

linux_load="YES"
linux64_load="YES"
linux_common="YES"
linprocfs_load="YES"

nfsclient_load="YES"
nfslockd_load="YES"
krpc_load="YES"

mem_load="YES"
io_load="YES"
aio_load="YES"

wlan_load="YES"
wlan_xauth_load="YES"
wlan_wep_load="YES"
wlan_tkip_load="YES"
wlan_ccmp_load="YES"
wlan_amrr_load="YES"

firmware_load="YES"
pchtherm_load="YES"

if_iwm_load="YES"
iwm8000Cfw_load="YES"

sound_load="YES"
snd_hda_load="YES"

#ipl_load="YES"
#ipfw_load="YES"

accf_http_load="YES"
sem_load="YES"

evdev_load="YES"
uinput_load="YES"
cuse_load="YES"

 
さてと。これだけ設定して必用な機能がほぼ動作しています。

AC アダプタ抜いてもリブートすることはないです。と、いうことは ThinkPad X13 AMD での問題点は個別にインストールした amdgpu.ko と、いうことになります。確かに /etc/rc.conf に kld_list=”amdgpu.ko” と書かない場合 (それはつまりは scfb で Xorg を動かす場合と、いうことになります) には AC アダプタを抜き差ししてもカーネルパニックになることはありません。

 
さてと。今回の Let’s Note CF-SZ5 ですが、一応、強引に suspend/resume まで動くようにしました。

FreeBSD 13.0-RELEASE は基本的に suspend はするが resume しなかったり resume したとしても画面がブラックアウトしてしまい、リモートから ssh して再起動することにより復活する。と、いう感じです。
基本的に acpi_video.ko は 13.0-RELEASE ではもう利用することはできません。 hw.acpi.reset_video=”1″ ももう使えません。

 
ただ、前のエントリでデスクトップ機が suspned/resume するっ!! と書いています。実際に結構良いあんばいで利用しているんですけども。Xorg は死んじゃうんだけど、 service sddm restart すると復活する。

では i915kms.ko 使っている場合も強引にやったらどうなるんだろう? と・・。

と、いうことで試した結果、 suspend/resume がまんまとできるようになりました;-)。以下の文字列を /etc/rc.resume の最後の exit 0 の上に書いてください。

#
service sddm stop
sleep 2
kldunload i915kms.ko
sleep 2
kldload i915kms.ko
sleep 2
service sddm restart

 
僕は KDE5 を利用しているので、ログインマネージャには sddm を利用しています。resume 後にそれを stop します。次に i915kms.ko をロードし直します。これがキモですっ!! これで X というか、画面 (tty というか vt のコンソール) が戻ってきます。そして再度 sddm を起動します。

suspend 前の画面の情報を引き継ぐことはできませんが、 suspend したあと OS 自体を再起動することなく利用を再開できるので、まぁ、なんとかなりそうです。(妥協的な部分ではありますが・・)。

あと resume したあとタッチパッドが利用できなくなるので /etc/loader.conf に hint.psm.0.flags=”0x6000″ の設定が必要です。

 
と、まぁ、ここまでで、ほぼ完璧に FreeBSD/amd64 13.0-RELEASE が動作しました。ただ、僕的一点困ってることがあります。調べても解決策が見つかりませんでした。

Let’s Note と言えば、タッチパッドをクルクル回すことによりスクロールすることが名物でありますが、その設定がどうにもわかりません。どなたか、現在タッチパッドをクルクル回してスクロールできている方がいましたら、その設定方法を教えて頂けませんでしょうか。

suspend/resume できるワザ書いたので、情報交換。と、いうことで;-)。よろしくおねがいしますぅ。

 
さてと。これで、持ち出せる FreeBSD が手元に準備できた。

この間、仕事でデータセンタに行ってパケットキャプチャする必要に迫られていんですよぉ・・。

Let’s note CF-SZ5 は軽いし NIC 付いているし移動には非常に良い感じ。 ThinkPad X13 AMD は 8Core 16Thread なので、ports のコンパイルにはモッテコイな状態です。今後は二台を上手に使い分けて FreeBSD を楽しみたいところです;-)。