私たちはlinux3.12を使用していますが、それは将来のバージョンのLinuxで修正されたLEDドライバにバグがありました。 Linux 3.15 でドライバの変更が確認されました。Linuxの相互参照
今私の質問は、これらの変更につながったパッチを見つける方法です。
別の質問は、kernel-3.14.18ツリーなどの開発カーネルソースツリーにアクセスする方法です。
答え1
この変更を引き起こしたパッチをどのように見つけることができますか?
cgitを使って移動ここそしてクリック木。探しているファイルを見つけてクリックします。丸太。これにより、ファイルの変更を確認できます。
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/drivers/leds/led-core.c
Linuxカーネルのソースコードをダウンロードするには、kernel.orgにアクセスしてバージョンを選択してください。
不安定な開発ツリーは次のとおりです。 https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/
答え2
カーネルソースコードの取得
安定したカーネルツリーを複製します。
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
次のように変更してください。
cd linux-stable
エラーが修正されたタグを確認してください。
git checkout v3.15
探しているファイルが何であるかdrivers/leds/led-core.c
、バグが修正された場所(3.15)、破損した場所(3.12)を知っているので、ここで続ける方法はいくつかあります。
責める
を使用できますが、git blame drivers/leds/led-core.c
このビューは混乱しています。
私はtig
gitのCursesベースのインターフェースを好むので、次のようにします。
tig blame drivers/leds/led-core.c
ファイル内の各行とそのコミットを対話形式で表示できます。矢印キーを使用して上下に移動した後、次を使用できます。入力する。やめるキュー。
行42-46でLXRにリンクされているパッチを表示できます。
2014-02-04 00:11 Stefan Sørensen 8d82fef /* never on - just set to off */
2014-02-04 00:11 Stefan Sørensen 8d82fef if (!delay_on) {
2014-02-04 00:11 Stefan Sørensen 8d82fef __led_set_brightness(led_cdev, LED_OFF);
2012-03-23 15:02 Bryan Wu a403d93 return;
2014-02-04 00:11 Stefan Sørensen 8d82fef }
だからあなたはメディアを探しています8d82fef
。入力するこれらの線の1つを渡すと、パッチを開くことができます。
これは、最新のパッチが多数含まれている大容量ファイルに役立ちます。
丸太
git log
日付範囲が必要なので、「良い」と「悪い」のラベルを見ると、3.15と3.12の組み合わせは次のようになります。
commit 1860e379875dfe7271c649058aeddffe5afd9d0d
Author: Linus Torvalds <[email protected]>
Date: Sun Jun 8 11:19:54 2014 -0700
Linux 3.15
そして
commit 5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52
Author: Linus Torvalds <[email protected]>
Date: Sun Nov 3 15:41:51 2013 -0800
Linux 3.12
したがって、2013年11月2日から2014年6月8日までのすべてがパッチです。
問題のファイルのログを確認してください。
git log drivers/leds/led-core.c
この日付範囲に一致する唯一のパッチは最新のパッチです。
commit 8d82fef8bbee588d071372eb02439d2053b4bfe4
Author: Stefan Sørensen <[email protected]>
Date: Tue Feb 4 00:11:42 2014 -0800
leds: Turn off led if blinking is disabled
斑点
これで、問題を解決したコミットを見つけ、親コミットと比較してそのコミットのパッチを取得するために、次の2つの方法のいずれかを使用しました。
git diff 8d82fef8^ 8d82fef8 drivers/leds/led-core.c
必要に応じてファイルに転送できます。
git diff 8d82fef8^ 8d82fef8 drivers/leds/led-core.c > led-blinking-fix.patch
これで、内部カーネルツリーに適用するパッチが作成されました。