This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
making_kernel_with_dtb [2012/12/06 20:23] – 78.122.157.53 | making_kernel_with_dtb [2013/06/12 08:01] (current) – starox | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Introduction ====== | ====== Introduction ====== | ||
- | Since Linux x.y.z, the kernel support arm devices via a device tree. | + | Since Linux 3.y.z, the kernel support arm devices via a device tree. |
The idea behind is to make an unique kernel which supports every platforms. | The idea behind is to make an unique kernel which supports every platforms. | ||
This tree describe the devices of the platform in order to initialize them. | This tree describe the devices of the platform in order to initialize them. | ||
Line 13: | Line 13: | ||
^ Distribution name ^ toolchain provider ^ commands to get mkimage command ^ toolchain triplet ^ | ^ Distribution name ^ toolchain provider ^ commands to get mkimage command ^ toolchain triplet ^ | ||
- | | Ubuntu 12.10 | ubuntu |sudo apt-get install arm-linux-gnueabi-gcc | arm-linux-gnueabi- | | + | | Ubuntu |
| Debian squeeze | [[http:// | | Debian squeeze | [[http:// | ||
Line 19: | Line 19: | ||
====== Setting up kernel source ====== | ====== Setting up kernel source ====== | ||
- | Get the source from lacie-nas.org | + | There is 2 kind of LaCie devices : |
+ | * those supported by the mainstream linux kernel | ||
+ | * those supported by the lacie-nas.org | ||
+ | * those unsupported ;-) | ||
- | | + | Here is some commands to get kernel source from a git repository although there are other way to get the mainstream kernel.\\ |
+ | These repositories ensure that you have the latest updates. | ||
- | As DTB is not yet in mainstream for marvell platforms, you need to check out the DTB branch | + | ===== Mainstream ===== |
- | + | ||
- | cd linux-lacie | + | |
- | git checkout -b remotes/ | + | |
- | ====== Making | + | Get the source from the [[https:// |
- | Next build your kernel | + | git clone git:// |
+ | |||
+ | ===== Lacie-nas.org ===== | ||
+ | |||
+ | Get the source from the [[http:// | ||
+ | |||
+ | git clone git:// | ||
+ | |||
+ | If a work is on-going on a board, then a dedicated branch is created. This branch shoud be up-to-date (and maybe also unstable). For example, for a LaCie CloudBox, you may use the branch kirkwood/ | ||
+ | |||
+ | ====== Building kernel ====== | ||
+ | |||
+ | First, you have to get a kernel configuration for your kernel | ||
+ | |||
+ | For example, to configure a Linux 3.7.x kernel | ||
+ | |||
+ | cd lacie-linux.git | ||
+ | wget ftp:// | ||
+ | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- oldconfig | ||
+ | |||
+ | If you are not happy with our default configurations, | ||
+ | |||
+ | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- kirkwood_defconfig | ||
+ | |||
+ | Now, you can build your kernel: | ||
- | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- | ||
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- | ||
This will build kernel image, and dtb for all kirkwood platforms. | This will build kernel image, and dtb for all kirkwood platforms. | ||
- | ====== Preparing kernel for u-boot ====== | + | ====== Preparing kernel for U-Boot ====== |
Now you have to append the DTB to kernel. | Now you have to append the DTB to kernel. | ||
- | DTB are in the arch/ | + | DTB are in the arch/ |
- | cat arch/ | + | cat arch/ |
Now you need to add an header for u-boot loader. | Now you need to add an header for u-boot loader. |