見出し画像

One-Netbook壹号本OneMix2SをLinux debianに乗り換えて画面回転を有効にする方法(debiann12"Bookworm"Gnome43対応)

Ubuntu20やdebian10,11になってから画面回転機能がデフォルトで付属しているため、UMPCネットブックユーザーは使いたくて仕方ないのではないでしょうか?しかしながら、いざインストールしてみると、BIOSレベルで画面回転が時計回り(Right)設定(90°回転)となっているため上手くいかずに断念しているかたも多いため、休み中に徹夜で調べて成功した方法について備忘録を残しておきます。


UMPCの画面回転を直す方法


UMPCの画面回転を直す方法

7インチネットブック(UMPC)へLinuxをインストール直後はiio-sensor-proxyが実行された状態なので、平置きで画面が縦表示になり、縦にすれば横表示になり気持ち悪いですが、、hwdbを調整することによって正常に動作するように改善されました。

画面の90°回転をxrandrというコマンドで直そうとする記事が多かったですが、画面の自動回転に対応していなかったり、画面とタッチパネルのマウス動作がついてこなかったりめんどくさいので、もっと簡単で確実な方法を調べました。

Kernel5系Gnomeでの設定方法

Ubuntuやdebian系ではセンサーの設定ファイルをいじったほうが簡単ですが、systemd/hwdb.d/60-sensor.hwdbの大元のファイルを直接弄るわけにはいかないので、以下のように作成して書き込みます。

sudo gedit /etc/udev/hwdb.d/61-sensor-local.hwdb

上記で作成したテキストファイルに以下の設定をコピペします。

sensor:modalias:acpi:BOSC0200*:dmi:*:svnDefaultstring:pnDefaultstring:*
 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

#(↑先頭に半角スペースが要るようです)

上記はOneMix2S用の設定になりますので、ネットブックの機種別の設定は以下から参照できます。
https://github.com/systemd/systemd/blob/main/hwdb.d/60-sensor.hwdb

次に、さきほど作成したhwdbを書き込む作業へと移ります。

sudo systemd-hwdb update
sudo udevadm trigger

#(Ubuntu↑または↓debian)

sudo udevadm trigger
sudo systemd-hwdb update

#(そして以下で↓サービスを再起動させる)

sudo service iio-sensor-proxy restart
# system.dが有効でなければ動きません

そのあと確認作業↓

udevadm info -n "/dev/iio:device0"

#(↑または↓で値が反映されているかを確認)

udevadm info --export-db | grep ACCEL_MOUNT_MATRIX

上記の結果を確認し、ACCEL_MOUNT_MATRIXの値が変更された結果が返ってくれば書き換え完了。あとは再起動後にログインして正常に動作すれば成功です。再起動直後は90°の状態ですが、パソコン本体を傾ければ自動で正常な位置になってくれるはずです。
(何度か再インストールして確認済)


Kernel6系Gonmeでの設定方法

ちょっと更新が遅れてしましいましたが、debian12の公式リリース以降はKernel6系になってからディレクトリ構造やhwub・ACCEL_MOUNT_MATRIX自体の仕様が諸々変わってしまいましたので、Kernel5系の方法では変更できなくなりました。というのも、ACCEL_MOUNT_MATRIXの値自体があてにならなくなってしまったからです。

すでにディレクトリ自体が変わったことにお気づきの方も多いかと思いますが、「/etc/udev/hwdb.d/」ではなくなり、Kernel6系からは「/lib/udev/hwdb.d/」となっています。

そのため、定義ファイルの場所も以下のようになっています。

sudo gedit /lib/udev/hwdb.d/60-sensor.hwdb

↑機種名などが定義されていますが、今回いろいろいじった結果ミスっても、さほど重大な問題にはならないとわかったので定義ファイルを以下のように編集します。

#########################################
# One-netbook
#########################################
# One-netbook OneMix 2s
# OneMix 2s has no product name filled, matching entire dmi-alias
# '*' in ":*svn" is there because kernels >= 5.8 have inserted a br field there
#sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.12:bd10/26/2018:*svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnDefaultstring:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
# ACCEL_MOUNT_MATRIX= 1, 0, 0; 0, 1, 0; 0, 0, 1

# 定義ファイルの元の状態をコメントアウト↑
# ここから下に書き加えていきます↓

sensor:modalias:acpi:BOSC0200*:dmi:*:svnDefaultstring:pnDefaultstring:*
  ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

#(↑先頭に半角スペースが要るようです)

(記事を書いたからには成し遂げなければペテン師になってしまうので、じつのところ休日徹夜でいろいろ試してなんとか成功しました😅)

sudo systemd-hwdb update
sudo udevadm trigger

#(Ubuntu↑または↓debian)

sudo udevadm trigger
sudo systemd-hwdb update

#(そして以下で↓サービスを再起動させる)

sudo service iio-sensor-proxy restart
# system.dが有効でなければ動きません

そのあと確認作業↓

udevadm info -n "/dev/iio:device0"

#(↑または↓で値が反映されているかを確認)

udevadm info --export-db | grep ACCEL_MOUNT_MATRIX

大成功ヽ(*´ー`*)ノ

さとみんのノートは無事に動作しました。


画面回転を実装するには

続いて、iio-sensor-proxyがインストールされていないLinux環境で画面回転を有効にしたい場合には、以下の方法でインストールする必要があります。

sudo apt install iio-sensor-proxy

(↑もしくは↓)

sudo pacman -Syu iio-sensor-proxy

2023年6月に公式のstableでリリースされたdebiann12"Bookworm"からは、レポジリでGnome3x系が➔Gnome4x系へとアップデートされたため、加速度センサーによる画面回転はGnomeアドオンから手動での導入が必要となりました。
画面が動かない場合には以下からダウンロードすれば、ディスプレイの設定でセンサーの機能が優先されるようになります。

Gnome43(debian12)で画面回転に対応させるには上記をインストールした後、shyzusさんの「screen-autorotate」アドオンをダウンロード
https://github.com/shyzus/gnome-shell-extension-screen-autorotate

git clone https://github.com/shyzus/gnome-shell-extension-screen-autorotate.git
cd gnome-shell-extension-screen-autorotate
cp -r screen-rotate@shyzus.github.io ~/.local/share/gnome-shell/extensions

ほとんどのUMPCネットブックは設計上90°回転をWindowsなどOSのドライバーで補正しているので買ったばかりだと正常に動作しているように見えますが、Linuxに乗り換えたときiio-sensor-proxyをアンインストールしたり断念した方のお役に立てれば幸いです。

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