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/07 00:11] – 82.234.233.9 | 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 kernel | ||
+ | * 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. | ||
+ | |||
+ | ===== Mainstream ===== | ||
+ | |||
+ | Get the source from the [[https:// | ||
+ | |||
+ | git clone git:// | ||
+ | |||
+ | ===== Lacie-nas.org ===== | ||
+ | |||
+ | Get the source from the [[http:// | ||
git clone git:// | git clone git:// | ||
Line 25: | Line 41: | ||
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/ | 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/ | ||
- | ====== | + | ====== |
- | + | ||
- | Next build your kernel with your toolchain (Kirkwood in this example). | + | |
- | + | ||
- | ===== Configuration | + | |
First, you have to get a kernel configuration for your kernel version and your board. The default configurations for LaCie boards (Orion and Kirkwood) are available [[ftp:// | First, you have to get a kernel configuration for your kernel version and your board. The default configurations for LaCie boards (Orion and Kirkwood) are available [[ftp:// | ||
Line 49: | Line 61: | ||
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. |