CF-RZ5でArch LinuxとWindows10
ArchのLiveDVDではSecureBootがだめらしいので予め切っておくこと
手元のCF-RZ5はCF-RZ5PFRVSですが、手元に44010なSIMが無いこともありWWANは未確認です
また、この端末にはデジタイザがなく、タブレットモード時のHOLD、自動回転に興味沸かなかったため未確認です。
実際の時系列的にはArch→Windows(上書き)→空いてる領域にArch書き戻し&ESP拡張→ブートローダー直し
ですが、普通ならESPを500MB~1GBぐらいで作る→Windows→Archですんなりいくと思います(順序はこっちに合わせてます)
正直このCPUでWindowsなんか動かしたくないのですが、ミーもWindowsを消してArch Linuxをインストールするニャン(どっかで見たシリーズ)をしたらユーティリティ類とかFWアップデートでえらい目に合ったので諦めてデュアルブートすることにしました。
BIOSアプデぐらいならPEでなんとかなりそうな気もしますが、バッテリー80%上限にしたいとか、ファン制御とかスピーカー回りの挙動を考えるとWindowsを入れておいた方が良きかなと……
この辺にマルチブート時の事が書いてあるので先に読んだ方が良いです
Windows と Arch のデュアルブート – ArchWiki
Windows編
インストール時なんですけど最初に書いたとおりなんでもいいので事前にEFIパーティションを500MB以上(今思えば1GBで切っても良いと思う)で切っておきましょう(Windowsで勝手に作られる100MBだと全く足りません 1敗)
ドライバをデバイスマネージャーで!が消えるところまで入れてPC設定ユーティリティが動くところまでみたいな感じです。後はFWアプデ。
Let’s note CF-LX5、MX5、RZ5、SZ5シリーズ 導入済みドライバー | パナソニック パソコンサポート
基本的にはパナの順序通りといいたいところですがちらほらアップデートが出ているので差分アップデータでなければそれ先に当ててもいいです。
タッチパッド/VGAドライバ/ME/WLANあたりがその辺に該当した気がします。
Bluetoothはアップデータ適用前提の差分しかないので諦めてどっちも入れるとして、
そもそも、CPUパワーが貧弱なので別PCでまとめて展開して持ってくると良いかもしれません(あのアーカイブって自己解凍式なので)
デバイスマネージャーで最後まで残ったのが
当てたつもりで当たってなかった物で
\VEN_8086&DEV_9D35&SUBSYS_833810F7&REV_21\3&11583659&0&98
Intel Integrated Sensor Solution 3.0入れたらOK
各種アップデート
BIOSアップデート
V3.00L10→V3.00L25
ダウンロード No.005105 CF-RZ5シリーズ BIOS アップデートプログラム| パナソニック パソコンサポート
割と最近(2022年末)まで来てるので最近拾ってきただとまず当たってないと思うし、デカ目の脆弱性があったら上がるかもしれず?
少なくともガチ初期L10だとMicrocodeのアップデートのWarningが出ていたので当てた方が良きかもです
電源コントローラーアップデート
V1.00L17→V1.00L19
ダウンロード No.004994 CF-RZ5A、RZ5B、RZ5P、RZ5Qシリーズ 電源コントローラーアップデートプログラム(V1.00L19)| パナソニック パソコンサポート
Intel MEとかいう脆弱性のアップデート
11.0.1.1001→11.8.82.3838
ダウンロード No.005084 CF-RZ8、SV7、LV7、XZ6、SZ6、RZ6、LX6、SZ5、RZ5、MX5、LX5シリーズ CF-33A、20A、20E、20Gシリーズ、FZ-G1W、G1R、M1J、M1Fシリーズ Intel® MEファームウェア、Intel® MEドライバー アップデートプログラム| パナソニック パソコンサポート
TPMアップデート
4.40→4.43
ダウンロード No.004581 CF-SZ5、RZ5、MX5、LX5、RZ4、MX4、LX4、SX4、NX4、MX3、LX3、AX3、SX3、NX3シリーズ CF-20、31、C2、D1シリーズ、FZ-G1、M1、Y1シリーズ [TPM搭載モデル] Windows 7、Windows 8.1、Windows 10用 TPM 1.2ファームウェア更新ツール| パナソニック パソコンサポート
時刻ずれ防止設定ユーティリティ
実施済みだったのて触らず
ダウンロード No.004286 2014年秋冬モデル~2016年夏モデル対象 時刻ずれ防止設定ユーティリティ| パナソニック パソコンサポート
HDMIファームウェア
手元の個体ではHDMI接続しても進まなかったので放置
ダウンロード No.004471 CF-SZ5、RZ5、MX5、LX5シリーズ HDMIファームウェア アップデートプログラム(1.58)| パナソニック パソコンサポート
タッチパッドFW
ダウンロード No.004269 CF-RZ5、RZ4シリーズ タッチパッドドライバー、タッチパッドファームウェア アップデートプログラム| パナソニック パソコンサポート
対象機だとこれが出てアップデート出来る
確かに挙動はマシになった気はするけどOSのドライバが違うからなのかがまだ分からず
EM7330のGPSロールオーバー更新
ダウンロード No.004947 Sierra社製ワイヤレスWANモジュール(EM73xx / MC73xx)搭載機種対象 GPS Week Rollover 対策ツール| パナソニック パソコンサポート
FDT version: 1.0.1806.0
Awaiting suitable port or adapter ...
Switching to boot & hold mode ...
Disabling selective suspend ...
Awaiting download port ...
Switching to streaming mode ...
Downloading images ...
Writing image /
Flashing image -
Awaiting adapter ...
Checking update status ...
Enabling selective suspend ...
Firmware image download succeeded.
Final Firmware update succeeded.
Preexisting images information:
Current:
Firmware:
ImageId:
BuildId:
Configuration:
ImageId:
BuildId:
Final images information:
Current:
Firmware:
ImageId:
BuildId:
Configuration:
ImageId:
BuildId:
OEM PRI: ******* **.**
IMEI: ***************
Total time elapsed: 43609 ms.
Time to switch to boot mode: 9578 ms.
Images downloaded:
Image ID: 001.099_000
Build ID: 00.00.00.00_GPS2019
write time: 16 ms
additional flash time: 15 ms
Time to reset to application mode: 33297 ms.
Press Enter to continue ...
時系列的にはArchインストーラ→Windowsインストール→戻し作業だったりするのですが順序的には正攻法で……
Arch入れる編
パテは適当に切り、ブートローダーはEFIのboot entryに直書きするEFI Stub試してみました
EFISTUB – ArchWiki
Efibootmgr – Gentoo Wiki
(記述は後述)
再起動したら
ネットワーク
systemd-networkd systemd-resolvedをenable –nowしてnetworkd側の設定かいてDHCPを有効にする
wlanはiwdで(セットアップ時にやったようにやり直せばOK)
なんとなくGNOMEは別環境で触ってたので気分転換にKDE
kde-desktopで最低限にしかいれなかったら(これのせいでいろいろ足りないのは後述)ターミナル入れ忘れて、どうするんだって思ったらCtrl+Alt+F*でtty*に飛べることを教えてもらい、そっちのシェルで入れて解決
Archだと普通にWezterm入るんですねいい話。最高
fcitx5はGUIの設定ツールもimもfcitx5自体も忘れ、fcitx5-mozcだけ入れてました。入れたら解決。
visudoしようとして気づくUSキー配列(:wq!が叩けなくて気づいた人)
関係ないけどパスワード設定せずにログインできないのなら2回やりました(反省)
EFIパーティションのやらかしを横着する編
最初に書いてあるとおりやらかしたのでESPを拡張します。
後で知ったけど別に頭にある必要は無いらしいが、それはそれとして頭100Mのパテがそこにあるのは精神衛生上アレなので諦めて改築
全部ddで書き出し&パーティションサイズを控えてから今度こそ大きめにESPを確保して窓側が作ったなにかしらをいちおー書き戻す
後はパーティションタイプが一致してなかったので直した(窓側から見てパーティションが不明にはならなくなる。)とか作業しててESPの空きを0に追いやった物を消したりしてこの辺ガチャガチャしたら準備OK
窓のインストーラからこの辺を試す。
UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法 – ぼくんちのTV 別館
日本語文献で一番まともだと思われます(後は怪しいパーティションツールの宣伝サイトばっかり)
結論だけいうと直ったらしい。BootEntryにWindows Boot Managerが出てこないレベルでもこれで直ります(パーティションが適切に用意できていれば)。そのうちまた壊すのが目に見えてるので壊れるかもしれない運用ぐらいの気持ち。Windowsが検出されなかった場合はなんかわちゃわちゃすると戻ってきた気がしますがよく覚えていません。が、ESPにドライブレター付けた上(Diskpartでassign letter=b: とか)でEFI/Microsoft/bootとかでbootrecとかを叩くのがミソだったような気がします。
そういえば、パーティションタイプにEFI指定するの忘れて素でmkfs.vfat -F 32だけしかしてなかった気がするんですがなんとかなってました(本当?)ダメだったら普通に指定してあげてください
横着したのでArch側ブートローダーをもう1回なんとかする
とりあえずBootEntryを破壊して以来のWindows起動が出来るようになったと思います。(本当はこんなことせずにWindows入れる前にESPを500MB~1GBぐらいで作ればそんなめんどくさいことはしなくて済むはずですが壊したときはまあこんな感じで……)
initramfsとかはWindows入れるときにすっ飛ばしたので /bootをマウントしてからpacman -S linuxすれば戻ってきます。
[SOLVED] Howto generate kernel image (vmlinuz)? / Installation / Arch Linux Forums
後はEFI stubでいつも通りやればOKでした。後はパーティション構成が変わっているのでfstabの作り直しも忘れずに(削除してインストール手順をやり直せばいいです)
efibootmgr --disk /dev/sda --part 1 --label “Arch Linux” --loader /vmlinuz-linux --unicode 'root=PARTUUID={PARTUUID} rw initrd=\initramfs-linux.img acpi_backlight=video acpi_osi=!!`
うまく行くとどっちも選んだ上で起動するようになる(時計は直すように)
acpi~のやつのおかげかちゃんとF1とF2で輝度が変わるようになってましためでたしめでたし。
ハードウェアだったりデスクトップ環境依存な所
知りません適当になんとかしてください。一番なんとかしたかったバッテリー80%上限とかファン制御をなんとかする余地が残せたので後はFnキー回り(特にボリューム)とハイバネーション動けば文句ないです。
ボリュームキーはF5とF6(サイドに付いてるキーも同じF5とF6押した扱い)ですが、KDEだとplasma-paとkmixが入ってない(Audio Volume hotkeys stopped working • KDE Community Forums)&ショートカットキーにすればいいだけだったらしい(plasma-paは入れてからsession変えないとダメらしい)多分普通に最小で入れるみたいなことをしなければよさそう
2023/02/10追記
ハイバネは以下の通りに追記したら無事動きました(systemctl hibernate)
動かないと思ってハマりましたがresume_offset={swap_offset}の=の後にスペースが混ざっていたからでした
具体的な症状は
echo disk >/sys/power/state
では write error: No such deviceと出て
systemctl hibernateでは
no enought disk spaceみたいなことが出てくる(詳細はメモ忘れ)
オフセットが未指定で0扱いにでもなっていればそらそうなるわなという。
ちなみに動く状態だとHibernateの表記もKDEに出てきますやったー!
後suspendをhybrid-sleepになるように
電源管理 – ArchWikiのハイブリッドスリープを参考に
SuspendMode=suspend
SuspendState=disk
を記述したらOKでした。これもうまくいかないと思ったらStateがSateになってました……Typoが多い……
efibootmgrに書く物としては最終的にはこんな感じ。swapでパーティション作ってるならresume_offsetは不要らしいです。
efibootmgr --create --disk /dev/sda --part 1 --label “Arch Linux(with Hibernate)” --loader /vmlinuz-linux --unicode 'root=PARTUUID={PARTUUID} resume=PARTUUID={PARTUUID} resume_offset={swap-offsetの値} rw initrd=\initramfs-linux.img acpi_backlight=video acpi_osi=!!'
輝度調整はacpi_backlight=video acpi_osi=!!追記で出来るようになりました
どうせIntelのビデオドライバーに依存しているのでacpi_backlightはvideo,osiはとりあえず適当に突っ込んだあらこれで動いてるのでこれで……
MBRでのマルチブートが面倒だったので敬遠してた部分があったのですが、正直このぐらいの手間ならやっても良いかなって思いました。他のPCでもやるかは別の問題
SecureBoot化も気が向いたらやるかもしれませんがやらないかもしれません、一体どっちなんだ?
やるとしてもこの辺を見ながらやるつもりだったのでやりたい人はこれをみれば良いと思います
セキュアブート – ArchWiki
2023/02/10追記
電源ボタンとかFn+F7,Fn+F10の話
Fn+F7は無事サスペンドしたので大丈夫っぽい、Fn+F10もおそらく大丈夫?
問題は電源ボタンを一回やったらシャットダウンした……
のでこれも電源管理 – ArchWikiを参考に
HandlePowerKey=suspend
HandlePowerKeyLongPress=ignore
で解決。他はよしなにすれば良いと思います。
個人的小ネタ(おまけ)
RJ45のリンクアップ速度をぱっと見たいとき
NICのリンク速度を調べる – Qiita
ps -a(だったけ)からのkill -9
Man page of KILL
ddしたときは
status=progressで進捗出し
mount順は階層が浅いディレクトリから(逆からだと上書きされる)
窓側の時計が9時間ずれるのをなんとかする
Linux環境設定/デュアルブートのWindows時刻をUTCにする – Linuxと過ごす
mikutterが起動出来なかった件
1つ目はOpenSSL絡み
手元の環境ではOpenSSLが3系のみで動作しており、3系で非推奨になったパラメータを使用するために設定を変える必要があった
バグ #1585: OpenSSL 3.x 環境 (ubuntu 22.04 等) で mikutter が起動しない – mikutter – やること
2つ目はhttpclientで刺さる現象
Errno::EPIPE Broken pipe - SSL_connect
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient/ssl_socket.rb:103:in `connect'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient/ssl_socket.rb:103:in `ssl_connect'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient/ssl_socket.rb:41:in `initialize'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient/ssl_socket.rb:26:in `new'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient/ssl_socket.rb:26:in `create_socket'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:752:in `block in connect'
/home/tana3n/.rbenv/versions/3.1.3/lib/ruby/3.1.0/timeout.rb:107:in `block in timeout'
/home/tana3n/.rbenv/versions/3.1.3/lib/ruby/3.1.0/timeout.rb:117:in `timeout'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:748:in `connect'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:511:in `query'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:177:in `query'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient.rb:1242:in `do_get_block'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient.rb:1019:in `block in do_request'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient.rb:1133:in `protect_keep_alive_disconnected'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient.rb:1014:in `do_request'
{MIKUTTER_DIR}/vendor/bundle/ruby/3.1.0/gems/httpclient-2.8.3/lib/httpclient.rb:856:in `request'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/raw_server_sent_events_stream.rb:32:in `block in to_enum'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/connection_keeping_stream.rb:22:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/connection_keeping_stream.rb:22:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/connection_keeping_stream.rb:22:in `connect'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/connection_keeping_stream.rb:15:in `block (2 levels) in to_enum'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/connection_keeping_stream.rb:14:in `loop'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/connection_keeping_stream.rb:14:in `block in to_enum'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/chunk_to_line.rb:34:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/chunk_to_line.rb:34:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/chunk_to_line.rb:34:in `block in to_enum'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/server_sent_events_json_parser.rb:52:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/server_sent_events_json_parser.rb:52:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/server_sent_events_json_parser.rb:52:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/server_sent_events_json_parser.rb:52:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/server_sent_events_json_parser.rb:52:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/middleware/server_sent_events_json_parser.rb:52:in `block in to_enum'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/splitter.rb:37:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/splitter.rb:37:in `each'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/splitter.rb:37:in `run'
{MIKUTTER_DIR}/plugin/mastodon_sse_streaming/connection.rb:70:in `block in run'
手元で対処するならnetworkdでDHCPをv4のみにする。
根本的になんとかするならばWANに出られないIPv6を振ってこないようにする。
UNIVERGEならそもそも明示的に設定してなければ問題ないので余計なconfigを書いてたせいでしたね反省
最近だとcairoが1.17.8-2だと壊れてて1.17.7-1に戻す必要がありました(まあこれは結構報告されてたのでそのうちなんとかなるでしょう……)
FS#77371 : python-cairo-1.23.0-2 is broken using testing/cairo 1.17.8-1
KDEでWayland
paru sddm-git
で、適当に立ち上げ直してください
SDカードがマウントできない!
CF-RZ5でもまんまこれが起きました。
O2 MicroのSDカードリーダーをLinuxで使う – それすらもコアの果て
Kernelオプションにdebug_quirks=0x04を追記した上で再起動したら直った。けど、0x10000の方がいいとか書いてある上にCF-RZ5でFedoraの人曰く0x10000でいけてるって言ってる、えぇ……
秘伝のタレの如く増えていくパラメーター……
efibootmgr --create --disk /dev/sda --part 1 --label "Arch Linux(with Hibernate)" --loader /vmlinuz-linux --unicode `root=PARTUUID={PARTUUID} resume=PARTUUID={PARTUUID} resume_offset={swap-offsetの値} rw initrd=\initramfs-linux.img acpi_backlight=video acpi_osi=!! debug_quirks2=0x4`