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/script)。最近、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

私はビーグルボードユーザーではないので、最初にすべきことは、適切なカーネルソースコードがあることを確認することです。ソースソースは「OMAP3 BeagleBoard」を含むさまざまなCortex-A8(ARMv7)チップをサポートしていますが、追加のパッチなしでこれが十分であるかどうかはわかりません。

3.x カーネルは 2.6 を対象とするユーザー領域と逆互換する必要があるため、Angstrom が独自のパッチで実装された機能に重要な方法で依存しない限り(この場合はそのパッチを適用する必要がある)問題はあってはなりません。これは主流のディストリビューションでは問題になりません。一般ツリーではカスタムカーネルパッチを実行し、そのパッチソースを使用することをお勧めしますが、一般ツリーでは問題は発生しませんでした。しかし、Angstromは少し専門化されていると思います。 Angstromにすでに3.0.7ソースコードがある場合は、すべての準備が完了しました。そうでなければ、バニラのkernel.orgソースを試してみることも悪くはありません(ブートが大丈夫なら、そこから始めても大丈夫でしょう)。

BeagleBoard用のクロスコンパイラツールチェーンがすでにあるとします。それ以外の場合は、BeagleBoardで直接実行するのに数時間かかり(もちろんRaspberry Piでは5時間以上)、試行錯誤がある可能性があるため、1つが必要です(これにはいくつかのヒントもあります)。 。ただし、最新のマルチコアマルチ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

関連情報