ノートPCのふたを閉じてもサスペンドしないための設定
/etc/systemd/logind.conf で
HandleLidSwitch=ignoreが有効な行として存在すること。
この記事を参考にした。
Ubuntuでノートパソコンの蓋を閉じてもサスペンドしないようにする
設定後には、systemd-logind の restart が必要。
« 2021年12月 | トップページ | 2022年2月 »
/etc/systemd/logind.conf で
HandleLidSwitch=ignoreが有効な行として存在すること。
この記事を参考にした。
Ubuntuでノートパソコンの蓋を閉じてもサスペンドしないようにする
設定後には、systemd-logind の restart が必要。
先の投稿までで、vanilla-5.14.9 ブランチを追加できた。いよいよ、本命の tuxonice-5.14.9 をpush する段階に。
手元のリポジトリで、まずブランチを作り、そちらに移る。
git branch tuxonice-5.14.9
git checkout tuxonice-5.14.9(多分、git checkout -b tuxonice-5.14.9 で一度にできること)
以降、こつこつとエラーを潰してきたパッチを当てる。
patch -p1 < ../../tuxonice-for-5.14.9.patch4
ずらずらと変更の当たったファイルが表示される。
git status
とすると、変更されたファイル、追加されたファイルが表示される。
余計なものはディレクトリの外に移して片付けた。
git add -A
コマンドで、変更されたファイル、追加されたファイルをコミット対象として追加する。
git commit -m 'initial commit for tuxonice-5.14.9'
として、コミットする。この段階では、まだローカルリポジトリの tuxonice-5.14.9ブランチにコミットされただけ。
git push gitlabhmatrjp tuxonice-5.14.9:tuxonice-5.14.9
として、gitlab.com にあるリモートリポジトリにも反映した。gitlabhmatrjp は 先の投稿 で作成したリモートリポジトリの呼び名。 リモートにも新しく tuxonice-5.14.9 ブランチを作るため、先の投稿と同様ブランチ名を2回指定している。
gitlab.com へは、もともと github とのアカウント連携でサインインしていたので、コマンドラインから push する時に authentication しやすいよう、アカウントにパスワードを追加した。
ローカルリポジトリのディレクトリにいることを確認して、
git remote add gitlabhmatrjp https://gitlab.com/hmatrjp/tuxonice-kernel.git
でリモートリポジトリを追加する。 gitlabhmatrjp は、リモートリポジトリを今後コマンドラインで指定するために付けた名前。
git remote -v
で、リモートリポジトリに追加されたことが確認できる。
git branch
コマンドで vanilla-5.14.9 ブランチにいることを確認して、
git push gitlabhmatrjp vanilla-5.14.9:vanilla-5.14.9
とした。 vanilla-5.14.9:vanilla-5.14.9 と 2回ブランチ名を指定しているのは、前者がローカルでのブランチ名、後者がリモートリポジトリでのブランチ名。
今後ブランチ名を変えなければ、一度で良いはずなのだが、初回でリモートにそもそもこのブランチ名が存在しないので、念の為指定した。
ユーザー名とパスワードを訊かれ、認証に成功したら転送が始まる。一番上で設定したパスワードは、ここで使う。
転送が終わり、gitlab.com のウェブ・サイト上からも、vanilla-5.14.9が追加されたことが確認できた。
vanilla-5.14 は 一度checkout してあるものとして、この先の変更を取り込み、5.14.9 相当にしたい。
他のブランチで作業していた場合、
git checkout vanilla-5.14
で vanilla-5.14 に戻ってくる。そして、
git branch vanilla-5.14.9
として、新しいブランチを作る。
git.kernel.org から stable のリポジトリを upstream に設定するため、
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git linux-5.14.y
として、変更を持ってくる。あとはマージできればOK。
git merge FETCH_HEAD
とすることで、fetchしてきた内容が、マージされる。今の時点では、5.14.21まで進んだ。
5.14.9 まで戻すには、git log でログを表示し、5.14.9 になったときのコミットIDを探す。
commit 70248e7b378b96f208d5544ee25b808a8ef2ddc2
らしいので、
git reset --hard 70248e7b378b96f208d5544ee25b808a8ef2ddc2
とする。 再び git log で表示してみると、今度は Linux 5.14.9 となったコミットが先頭になっている。
あとは、
この記事の続き。
なんとか、パッチは当たるようになった。
しかし、パッチが当たったからと言って、必ずしもコンパイルが通るわけではない。
make bindeb-pkg
を実行すると、エラーが出る。
すでになくなったカーネル内関数を復活させたり、使わないアーキテクチャのコードは無視したりと、手当をする必要があった。
過去形で書いたが、まだ途半ばで、 kernel/power/tuxonice_builtin.c の中で使われている struct zone の構成が変わったことによるエラーに対処する必要がある。
そんな中途半端な状態ではあるが、ここまでの作業でできたパッチを、添付しておく。
ダウンロード - tuxonicefor5.14.9.patch
(コマンドラインは、記憶で書いている部分もあるので、間違いが含まている可能性あり。)
Debian のカーネルは、stable が 5.10, Backports が 5.14。
Nigelのリポジトリには、tuxonice-5.14 というブランチがあるが、tuxonice-5.10 はない。
というわけで、まず目標とするカーネルバージョンは 5.14。
手元のリポジトリに、 tuxonice-5.14 と upstream-head の各ブランチを持ってくる。
git clone -b tuxonice-5.14 https://gitlab.com/nigelcunningham/tuxonice-kernel.git
git checkout -b upstream-head origin/upstream-head
ブランチ upstream-head と、ブランチ tuxonice-5.14 の、それぞれの HEAD を git diff すると、それらしいパッチが取れた。
git diff d5eeab8d7e269e8cfc53b915bccd7bd30485bcbf HEAD > tuxonice-5.14.diff
(1番めのコミットIDは、
git checkout upstream-head ; git log
で表示される最上行のコミットID。)
しかし、このパッチを、Debian の linux-source-5.14 パッケージから取り出したカーネルソースツリーに当てようとしても、
FAILEDが出たり、パッチ先のファイルがないと言われたり(arch/unicore32/kernel/hibernate.c)でうまくいかない。
Debian Backports の 5.14 は、現時点で 5.14.9 を基準にしている。
上のトライで、ないと言われた unicore32 というアーキテクチャは、Linux 5.9 でドロップされたらしい。
つまりは、ブランチ tuxonice-5.14 は、Linux 5.9 の内容にも追いついていない古いものだと言える。
ここまでは、現状の理解として、さて、どう対処すれば良いのか。
理論的には、これで Linux 5.14.9用 の tuxoniceパッチが取れるはず。
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
最近のコメント