初代NanoteにDebian 11をインストール

ドンキの激安UMPC、初代Nanote(UMPC-01-SR)にXubuntu 20.04をインストールして使っていたんだが、Xubuntu 22.04にアップデートしたらいろいろ気に入らない点が多数あったんで、使い慣れたDebian 11に乗り換えた時の備忘録。

発売当時にstableだったbusterでは光学ポインターが未対応で動かず、testingだったbullseyeではPMICの対応が不完全でバッテリー残量が読めない不具合があったので、仕方がなくXubuntuを使ってたけど、現在のDebian 11.3 (stable/bullseye)では十分使えてます。ただしいくつかの不具合回避のための対応が必要。しかしNanoteなんて世界的に見たら超マイナー機種でも、GPDとかChuwiとかの設計をパクりまくっているおかげで、使える情報を見つけやすいですね…

Debian 11での注意点

インストール

特に問題なし。ただしDebianのインストーラにはポリシー的にnon-freeなドライバーは含まれないため、内蔵Wi-Fiはデフォルトでは使えない。事前にfirmware-realtekのdebパッケージをUSBメモリに入れて用意しておくか、もしくは素直にfreeなドライバーで動くUSB Wi-Fiを使ってインストールする。

内蔵Wi-Fi/BTが使えない / 内蔵スピーカーを認識しない

内蔵Wi-Fi/Bluetoothと内蔵スピーカーを使うには、non-freeなバイナリー・ファームウェアが必要だが、前述の通り、OSインストーラには含まれていないので、インストール後に、/etc/apt/sources.listに"non-free"を追加してから、

"内蔵Wi-Fi/Bluetooth"
apt install firmware-realtek

"内蔵スピーカー"
apt install firmware-intel-sound


バックライトの輝度調整ができない

【2022/11/11 追記】
いつからかはわからないですが、少なくとも現在の "linux-image-5.10.0-19-amd64" では、この不具合は直っています。

  • /sys/class/backlight/の下にintel_backlightが存在しない

  • 起動時のログに"[drm:pwm_setup_backlight [i915]] ERROR Failed to own the pwm chip"っていうエラーがでている

が該当するなら、↓のフォーラムによると、「バックライト用PWMチップ検出より前に、i915ドライバーが読み込まれると、チップ検出に失敗する」というBayTrail/CherryTrailだけで発生する不具合みたい。回避策も書かれてるいる。ちなみにどのkernelバージョンが該当するのかは不明。少なくともDebian 11の5.10とbullseye-backportな5.15ではダメ。

要はinitramfsに含まれるi915ドライバーを削除して、ブートの最初のタイミングではドライバー読み込みをさせないことにより、読み込みタイミングをズラしてあげればよい、ってことみたい。ということで、aptでdracutをインストール。既存のinitramfsからi915ドライバーを削除するには、

dracut -f --omit-drivers="i915"

今後、kernelアップデート等でinitramfsが作り直されるたびに、これをやるのは面倒なので、/etc/dracut.confに

omit_drivers+=" i915 "

を追記しておけば、今後、自動でi915ドライバーが含まれないinitramfsを作成してくれる(i915の前後にスペースが必要なので注意!)。

ちなみにこの対応をしても、Fnキー+F6/F7キーでの輝度調整はできない。でも/sys/class/backlight/intel_backlight/brightnessに1〜100の値を直接書き込めば調整できるので、とりあえず個人的にはこれで十分なんで、これ以上は調べていない… あと本当はbrightness=0も設定できるけど、この場合、xrandrコマンドで画面回転/スケール変更をすると、勝手にbrightnessが100になっちゃう謎現象が発生するので、避けた方がよいです。
→特殊キーでの輝度変更できました。単に「設定」→「電源管理」→「一般」→「ディスプレイの輝度キーを扱う」がオフになってただけでした…

タッチパネルが動かない

どうやらkernel 5.7以降では、goodixのタッチパネルは動かない(機種が多い)らしい。ちなみにDebian 11だけでなく、Xubuntu 22.04でもダメでした。

でも、何も考えずに古いkernelソースからgoodix.cだけ抜き出してきて、コンパイル、差し替えるだけで、ちゃんと動いた。試してみた限りでは、5.4.190、5.6.19はOKで、たしかに5.7.19では動かなかった。差し替える手順は、

  1. kernel.orgから5.7より前のバージョンをとってきて、そこからdrivers/input/touchscreen/goodix.cを適当な場所にコピーしておく。

  2. ↓からMakefileだけ拝借して(そのままで動きます)、goodix.cと同じ場所に置いて、

make modules
make install
depmod -a


NanoteでLinuxを使う上での注意点

ついでに以前からある以下の問題点は、相変わらず対応が必要。

時々、タッチパネルが動かない

DSDTの初期化ルーチンが不完全なため、Linuxでは起動時/サスペンド復帰時に、i2c通信がコケて、タッチパネルが動かない不具合。

aptでacpi-call-dkmsをインストールしておいて、

#!/bin/sh

modprobe acpi_call
modprobe -r goodix
sleep 1s
echo '\_SB.PCI0.I2C6.TCS1.INTO 0' > /proc/acpi/call
sleep 1s
modprobe goodix
modprobe -r acpi_call

exit 0

こんな感じのスクリプトを作成しておいて、起動時とサスペンド復帰時に呼び出して実行させれば、とりあえず問題はなくなる。

スピーカー出力がモノラル(しかも左右で逆位相)

es8316ドライバーの初期値は、なぜかモノラル・スピーカー接続の設定になっていて、しかもモノラル・スピーカー設定がモノラルのソースを左右のスピーカーで逆相に駆動する謎設定になっているので、これを変更。/etc/modprobe.d/に"<適当な名前>.conf"を作成し、以下の一文と追記。

options snd_soc_sst_byt_cht_es8316 quirk=0x0

これでes8316に接続されているスピーカーをちゃんとステレオと認識してくれる。またステレオ・スピーカー設定は素直に左右をそのまま駆動する設定になっているので、プリインストールのWindows10みたいに逆相ではなく、左右の音の位相は正しく再生されます。

この記事が気に入ったらサポートをしてみませんか?