BeagleBoneBlack_kernel

RevA, RevB検証済み、RevC未検証

ソース入手

参考

$ mkdir ~/bbb
$ cd ~/bbb
$ git config --global user.name "あなたの名前"
$ git config --global user.email "あなたの名前@あなたのドメイン"

$ git clone https://github.com/beagleboard/kernel.git 
$ cd kernel/
$ git checkout 3.8
(または $ git checkout origin/3.12 -b 3.12)
$ ./patch.sh 

$ cd ~/bbb
$ git clone git://arago-project.org/git/projects/am33x-cm3.git
$ cp am33x-cm3/bin/am335x-pm-firmware.bin kernel/kernel/firmware/
$ cd kernel/kernel/
$ cp ../configs/beaglebone arch/arm/configs/beaglebone_defconfig

CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm を毎回指定するのは面倒だし忘れるので Makefileを修正して書きこんでしまう。

$ vi Makefile
ARCH            ?= arm
CROSS_COMPILE   ?= arm-linux-gnueabihf-

config

$ make beaglebone_defconfig
$ make menuconfig

ビルド

$ make uImage

とすると

 Kernel: arch/arm/boot/Image is ready
 Kernel: arch/arm/boot/zImage is ready
multiple (or no) load addresses:
This is incompatible with uImages
Specify LOADADDR on the commandline to build an uImage
make[1]: *** [arch/arm/boot/uImage] Error 1
make: *** [uImage] Error 2

エラーになる。LOADADDR=0x80008000 を付けてビルドする

$ make LOADADDR=0x80008000 uImage dtbs modules -j12
$ make modules -j12

インストール

arch/arm/boot/uImage
arch/arm/boot/dts/am335x-boneblack.dtb

を /boot へコピーする

u-boot

RevA, RevB, RevC 検証済み

参考

ソース入手

$ cd ~/bbb
$ git clone git://git.denx.de/u-boot.git
$ cd u-boot/
$ git checkout v2014.07 -b tmp
$ wget -c https://raw.githubusercontent.com/eewiki/u-boot-patches/master/v2014.07/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
$ patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch

ここからFTPで落とせるものは上記gitと同じ。

この辺も参考

BeagleBoneBlackBoxWDT対応するときはソースを変更すること。

config & build

$ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- distclean
$ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- am335x_evm_config
$ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-
$ ls -l MLO
-rw-r--r-- 1 ebihara ebihara 83892 Sep 10 18:35 MLO
$ ls -l u-boot.img
-rw-r--r-- 1 ebihara ebihara 450324 Sep 10 18:35 u-boot.img

RevA~RevC 共通に使える。ただしインストール方法は Angstrom と debian で異なる。

device_tree

dtc compiler

$ mkdir ~/work
$ cd ~/work
$ wget -c https://raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh
$ chmod +x dtc.sh
$ ./dtc.sh

関連

内部リンク

自動リンク

外部リンク

こちらにも kernel リポジトリがある?

Last-modified: 2019-07-22 (月) 17:56:00 (1733d)