Changes

Jump to: navigation, search

Building Linux kernel (XUELK)

2,031 bytes added, 15:48, 16 August 2019
History
!Notes
|-
|{{oldid|5335|1.0.0}}|August 20152016
|[[AXEL_ULite_and_SBC_Lynx_Embedded_Linux_Kit_(XUELK)#XUELK_1.0.0|XUELK 1.0.0]]
|
|-
|{{oldid|6637|1.1.3}}
|March 2017
|[[AXEL_ULite_and_SBC_Lynx_Embedded_Linux_Kit_(XUELK)#XUELK_1.1.3|XUELK 1.1.3]]
|
|-
|1.2.0
|May 2017
|[[AXEL_ULite_and_SBC_Lynx_Embedded_Linux_Kit_(XUELK)#XUELK_1.2.0|XUELK 1.2.0]]
|Update for new XUELK release
|-
|2.0.1
|Sep 2017
|[[AXEL_ULite_and_SBC_Lynx_Embedded_Linux_Kit_(XUELK)#XUELK_2.0.1.2F2.0.2.2F2.0.3|XUELK 2.0.1]]
|Update for new XUELK release
|-
|2.0.2
|Feb 2018
|[[AXEL_ULite_and_SBC_Lynx_Embedded_Linux_Kit_(XUELK)#XUELK_2.0.1.2F2.0.2.2F2.0.3|XUELK 2.0.2]]
|Add kernel modules documentation
|-
|2.0.3
|Jan 2019
|[[AXEL_ULite_and_SBC_Lynx_Embedded_Linux_Kit_(XUELK)#XUELK_2.0.1.2F2.0.2.2F2.0.3|XUELK 2.0.3]]
|Add support for NOR ISSY
|}
|-
! stable tag
| xuelk-12.0.03
|}
|-
! defconfig
| colspan=4 5 | imx_v7_lynx_defconfig
|-
! Kernel binary
| colspan=4 5 | UIMAGE_LOADADDR=0x80008000 uImage
|-
! rowspan=4 5 | Device trees
! Platform
! SOM ConfigID
| SBC Lynx
| 0x00000008
| N/A0x0000000E
| imx6ul-lynx.dtb
|-
| N/A
| imx6ul-lynx-som000c.dtb
|-
| SBC Lynx
| 0x00000013
| 0x0000002D<br>0x0000002E<br>0x0000002F<br>0x00000030
| imx6ul-lynx-som0013-cb002d.dtb<br>imx6ul-lynx-som0013-cb002e.dtb<br>imx6ul-lynx-som0013-cb002f.dtb<br>imx6ul-lynx-som0013-cb0030.dtb
|-
| Axel ULite
| 0x0000000B<br>0x00000014
| 0x00000010
| imx6ul-axelulite-cb0010.dtb
|}
 
== Detailed Instructions ==
* in case of needs you can update your local repository with the following git command
<preclass="workstation-terminal">
git pull
</pre>
 
* configure the build environment
 
<pre class="workstation-terminal">
source ~/env.sh
</pre>
*enter to build the source tree directory and binaries run the following commands:
<preclass="workstation-terminal">
make imx_v7_lynx_defconfig
make IMAGE_LOADADDRUIMAGE_LOADADDR=0x80008000 uImage mx6ulimx6ul-lynx-som000c.dtb imx6ul-lynx-som000csom0013-cb002f.dtb imx6ul-axelulite-cb0010.dtbmake modules
</pre>
:The former first command selects the default XUELK configuration, while the latter second builds the kernel binary image with the required u-boot header and the kernel device tree, while the last command build kernel modules (if present in kernel configuration).
Default Linux kernel configuration can be changed by using the standard <code>menuconfig</code>, <code>xconfig</code>, or <code>gconfig</code> make target. Subsequent builds just require <code>uImage</code> make target to update the binary image. Once the build process is complete, the kernel binary image is stored into the <code>arch/arm/boot/uImage</code> file. Both this file and the kernel device tree can be copied to the tftp root directory <code>/tftpboot/lynx/</code> with the following commands:
<preclass="workstation-terminal">
cp arch/arm/boot/uImage /tftpboot/lynx/
cp arch/arm/boot/dts/*.dtb /tftpboot/lynx/
</pre>
 
Usually, kernel modules are installed with <code>make modules_install</code> command, but this method installs the modules into the <code>/lib/modules</code> directory of you MVM, which is not what you want. A better way to deploy kernel modules while cross-compiling is
* generate a <code>.tar.gz</code> archive
* install this archive into the target root file system
 
User can create such an archive, for example, using the following commands:
 
<pre class="workstation-terminal">
mkdir modules-install
make INSTALL_MOD_PATH=modules-install modules_install
 
cd modules-install && tar cvzf ../modules.tar.gz . && cd ..
</pre>
 
Now copy <code>modules.tar.gz</code> into the target root file system and install them as root with the following command
 
<pre class="workstation-terminal">
tar xvzf modules.tar.gz -C /
</pre>
8,154
edits

Navigation menu