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> |