Ubuntuホストでカーネルをクロスコンパイルするにはどうすればよいですか?


16

カーネルがどのように機能するかについてもっと理解したいと思います。これの一部は、自分でコンパイルすることです。Ubuntuホストでカーネルをクロスコンパイルするにはどうすればよいですか?

回答:


24

準備

まず、必要な前提条件をインストールする必要があります。sudoアクセスできると思います。

sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
  • git Linuxカーネルチームが使用するバージョン管理システムです。
  • ncursesコンソールメニューをビルドするためのライブラリです。に必要ですmenuconfig
  • make コンパイルを実行します。
  • gcc-arm-linux-gnueabi クロスコンパイラです。

次に、ソースを取得する必要があります:

git clone https://github.com/raspberrypi/linux raspberrypi-linux
cd raspberrypi-linux

これにより、ソースコードが呼び出されたディレクトリに複製されraspberrypi-linux、変更されます。

編集

まず、実行して構成ファイルを移動する必要があります

cp arch/arm/configs/bcmrpi_cutdown_defconfig .config

次に、カーネルビルドを構成します

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig

オプション: menuconfigを使用してビルドをカスタマイズします

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig

次に、コンパイルを実行します

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
参照資料

1
crosstool-ngを使用する代わりを提供していただき、ありがとうございます。
earthmeLon

フォローは(最後にgccをせずに)十分でなければなりませんので、私の場合はCROSS_COMPILEは、単に接頭語である: make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
danger89

4

Alexは正しいと思いますが、gcc-arm-linux-gnueabiはハードウェア浮動小数点ユニットなしでarm cpus用にコンパイルされています。https://github.com/raspberrypi/toolsでarmhfをサポートするクロスコンパイラを見つけることができます。 ここから始めるのに良いチュートリアルがあります:http ://hertaville.com/2012/09/28/development-environment- raspberry-pi-cross-compiler /


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.