Linux カーネルを 2.6.32 から 3.0.7 にアップグレードできますか?

Linux カーネルを 2.6.32 から 3.0.7 にアップグレードできますか?

現在、BeagleBoard-xM (ARM アーキテクチャ) で Angstrom Linux 2.6.32 を実行しています。Linux カーネルを 2.6.32 から 3.0.7 にアップグレードできますか。また、アップグレードが可能な場合の難易度はどの程度ですか。

編集#1:

BB-xMが実行するイメージは、水仙ブートローダーファイル付き(x-load/u-boot/スクリプト)私は最近kernel.orgからカーネルソース2.6.32.61をダウンロードし、/usr/srcBB-xMにコピーしました。設定(make menuconfig)を行った後、カーネルをビルド( )し、直接BB-xMにmakeインストール( )しました。make install(ネイティブ ツールチェーン)

編集#2:

新しいカーネルを起動するために手動で設定する必要がある場合、ブートローダにも注意を払う必要があることはわかっています。初期の Angstrom イメージでは、bootディレクトリには次のものが含まれていました。

  • u-boot-scripts
  • MLO-beagleboard-1.5.0+r24+gitr04b1732220078d47c18a84cbafc52e45db71f13d-r24
  • u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75
  • uImage-2.6.32

カーネル 2.6.32.61 を設定してインストールすると、bootディレクトリには次の内容が含まれます。

root@beagleboard:/boot# ls
MLO
MLO-beagleboard-1.5.0+r24+gitr04b1732220078d47c18a84cbafc52e45db71f13d-r24
Module.symvers-2.6.32
System.map-2.6.32
System.map-2.6.32.61
System.map-2.6.32.61.old
config-2.6.32
u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75.bin
u-boot-scripts
u-boot.bin
uImage
uImage-2.6.32
vmlinux-2.6.32.61
vmlinux-2.6.32.61.old

ブートローダを設定していないため、BB-xM は新しく設定されたカーネルを起動します。

答え1

私は Beagle ボードのユーザーではないので、まず最初に適切なカーネル ソースがあるかどうかを確認してください。バニラ ソースは「OMAP3 BeagleBoard」を含むさまざまな Cortex-A8 (ARMv7) チップをサポートしていますが、さらにパッチを適用しないと十分かどうかはわかりません。

3.x カーネルは 2.6 指向のユーザーランドと下位互換性があるはずなので、Angstrom が独自のパッチで実装された機能に大きく依存しない限り (その場合は、そのパッチを適用する必要があります)、問題は発生しないはずです。これは主流のディストリビューションでは問題になりません (ただし、カーネルにカスタム パッチを適用し、パッチを適用したソースの使用を推奨しています。バニラ ツリーを使用しても、私は問題に遭遇したことがありません)。ただし、Angstrom は多少特殊化されていると思います。Angstrom にすでに 3.0.7 ソースがある場合は、すべて準備完了です。ない場合は、バニラ kernel.org ソースで試してみても問題ないでしょう (正常に起動する場合は、そこからおそらく問題ないでしょう)。

BeagleBoard で動作するクロスコンパイラ ツールチェーンが既にあると仮定します。そうでない場合は、BeagleBoard で直接実行するには数時間かかり (どうやら Raspberry Pi では 5 時間以上かかるようです)、試行錯誤が必要になるため、クロスコンパイラ ツールチェーンが必要になります (これについてもヒントをいくつか提供できます)。ただし、最新のマルチコア マルチ Ghz マシンでは 10 分以上かかることはないため、毎回構成についてストレスを感じる必要はありません。カーネルのクロスコンパイルは、ツールチェーンに含まれていないビルド依存関係がないため、比較的簡単です。

カーネルの設定とコンパイルの詳細については、こちらをご覧ください手順 5 の「使用しない」というヒントに従ってくださいmake install(つまり、カーネルを BeagleBoard に適切にインストールします。通常のブートローダを使用するかどうかはわかりません)。INSTALL_MOD_PATH実行する前に、クロス ツールチェーンの sysroot に設定しますmake modules_install。例:

export INSTALL_MOD_PATH=/x-tool/sysroot
make modules_install

これにより、適切なモジュール ディレクトリが残り、/x-tool/sysroot/lib/modulesそれを BeagleBoard の/lib/modulesディレクトリに直接コピーできるようになります。

関連情報