This shows you the differences between two versions of the page.
|
tutorials:dvk521:documentations:kernel_porting_and_configuration [2013/11/21 11:54] waveshare created |
tutorials:dvk521:documentations:kernel_porting_and_configuration [2013/12/23 14:50] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Kernel Porting And Configuration ====== | + | ====== Kernel Porting and Configuration ====== |
| - | <WRAP noprint><WRAP left box 60%> | + | ==== Kernel Porting ==== |
| - | //__About this Article__// | + | Get the linux kernel source code [[http://dl.cubieboard.org/parteners/waveshare/Source_Code/linux-sunxi-sunxi-3.4.61.tar.gz|linux-sunxi-sunxi-3.4.61]], |
| - | * **Author**: waveshare --- waveshare@waveshare.net --- 2013/11/21 11:54 | + | Or can be obtained from the internet: |
| - | * **Copyrights**: [[http://creativecommons.org/licenses/by-sa/3.0/|CC Attribution-Share Alike 3.0 Unported]] | + | https://github.com/linux-sunxi/linux-sunxi/releases , |
| - | * **Contributors**: [[http://cubieboard.org/|Cubieboard Community]] : ... | + | To avoid unexpected error while porting, please download the 3.4.61 version kernel. |
| - | </WRAP></WRAP> | + | |
| - | ===== Abstract ===== | + | === Extract the kernel source code === |
| + | Assume that the source code was placed under /home/waveshare/cubieboard/kernel directory, use the following command to extract it: | ||
| + | #cd /home/waveshare/cubieboard/kernel | ||
| + | #tar -xzvf linux-sunxi-sunxi-3.4.61.tar.gz | ||
| + | Now we get the linux-sunxi-sunxi-3.4.61 original source code, as shown in the picture below: | ||
| + | {{.:document-5_1.jpg}} | ||
| - | ===== Headline ===== | + | === Assign the cross compiler === |
| + | The purpose of kernel porting is to run the linux-sunxi-sunxi-3.4.61 on Cubieboard. | ||
| + | Modify the Makefile under root directory: | ||
| + | #cd linux-sunxi-sunxi-3.4.61 | ||
| + | #vi Makefile | ||
| + | Edit the following lines: | ||
| + | export KBUILD_BUILDHOST := $(SUBARCH) | ||
| + | ARCH ?= $(SUBARCH) | ||
| + | CROSS_COMPILE ?= | ||
| + | As: | ||
| + | export KBUILD_BUILDHOST := $(SUBARCH) | ||
| + | ARCH ?= arm | ||
| + | CROSS_COMPILE ?= arm-linux-gnueabihf- | ||
| + | ARCH specifies the target platform as arm, CROSS_COMPILE assigns the cross compile tool chain. As shown in the picture below: | ||
| - | ==== Headline ==== | + | {{.:document-5_1.jpg}} |
| + | Note: the vim editor is recommended. | ||
| - | ===== Headline ===== | + | === Clear the temp files === |
| + | Under the root directory, enter: | ||
| + | #make clean | ||
| - | === See Also === | + | === Copy the default config file === |
| + | Under the root directory, enter: | ||
| + | #make sun4i_defconfig | ||
| + | A hidden .config file will be generated under the root directory. | ||
| + | |||
| + | === Config the kernel === | ||
| + | Under the root directory, enter: | ||
| + | #make menuconfig | ||
| + | Config the kernel on the popup window, as shown in the picture below: | ||
| + | {{.:document-5_3.jpg}} | ||
| + | |||
| + | === Compile the kernel === | ||
| + | Under the root directory, enter: | ||
| + | #make uImage | ||
| + | It will take much time to complete the compiling. | ||
| + | When completed, the compressed kernel image will be generated under linux-sunxi-sunxi-3.4.61/arch/arm/boot directory. | ||
| <WRAP noprint> | <WRAP noprint> | ||
| {{tag>Cubieboard Cubietruck}} | {{tag>Cubieboard Cubietruck}} | ||
| </WRAP> | </WRAP> | ||