私は現在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/src
BB-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
。