« 2021年12月 | トップページ | 2022年2月 »

2022年1月

2022年1月30日 (日)

ノートPCのふたを閉じてもサスペンドしないための設定

/etc/systemd/logind.conf で


HandleLidSwitch=ignore

が有効な行として存在すること。


この記事を参考にした。 
Ubuntuでノートパソコンの蓋を閉じてもサスペンドしないようにする

設定後には、systemd-logind の restart が必要。


2022年1月15日 (土)

gitlab の自分のリモートリポジトリに tuxonice-5.14.9 ブランチを追加する

先の投稿までで、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 にある自分の tuxonice-kernel リポジトリに vanilla-5.14.9 ブランチを追加する

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が追加されたことが確認できた。

 

2022年1月12日 (水)

vanilla-5.14 ブランチを 5.14.9 まで持ってくるには (tuxonice のバージョンアップのため)

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 となったコミットが先頭になっている。

あとは、

  • ここから tuxonice-5.14.9 ブランチを分岐して、これまでの作業でできた tuxonice 用 diff を patch して、カーネルのビルドを繰り返しながらエラーを潰していけばいいのではないか。
  • どこかの段階で、 gitlab にリポジトリを作り、公開する必要があるだろう。

 

2022年1月 6日 (木)

tuxonice を Linux kernel 5.14 に合わせようとする試み

この記事の続き。

なんとか、パッチは当たるようになった。

しかし、パッチが当たったからと言って、必ずしもコンパイルが通るわけではない。

make bindeb-pkg

を実行すると、エラーが出る。

すでになくなったカーネル内関数を復活させたり、使わないアーキテクチャのコードは無視したりと、手当をする必要があった。

過去形で書いたが、まだ途半ばで、 kernel/power/tuxonice_builtin.c の中で使われている struct zone の構成が変わったことによるエラーに対処する必要がある。

そんな中途半端な状態ではあるが、ここまでの作業でできたパッチを、添付しておく。

ダウンロード - tuxonicefor5.14.9.patch

 

2022年1月 5日 (水)

tuxonice を kernel 4.19 より上のバージョンに対応させるための手順を考える

(コマンドラインは、記憶で書いている部分もあるので、間違いが含まている可能性あり。)

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 の内容にも追いついていない古いものだと言える。

ここまでは、現状の理解として、さて、どう対処すれば良いのか。

  1. とりあえず、エディタで tuxonice-5.14.diff を開いて unicore32/ 以下に変更を加えている部分を削除する。 (結果を書くと、この1ファイル以外はパッチ先がないというエラーはなかった)
  2. FAILED で失敗している箇所は、 rej 拡張子を持つファイルにまとめられているので、地道に内容を確認し、修正していく。
  3. すべての rej の処理が済んだら、別ディレクトリに linux-source-5.14 を展開し直し、作業ツリーとの差分を取る。

理論的には、これで Linux 5.14.9用 の tuxoniceパッチが取れるはず。

 

« 2021年12月 | トップページ | 2022年2月 »

2026年6月
  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        
無料ブログはココログ