Difference between revisions of "DESK-MX6UL-L/Development/Building Linux kernel"

From DAVE Developer's Wiki
Jump to: navigation, search
(Created page with "{{subst:Building-Linux kernel | nome-som=AXEL ULite | kit-code=MX6UL | kit = mx6ul | kit-repo = desk-mx-l}}")
 
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<section begin=History/>
+
<section begin="History" />
 
{| style="border-collapse:collapse; "
 
{| style="border-collapse:collapse; "
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
+
! colspan="4" style="width:100%; text-align:left" ; border-bottom:solid 2px #ededed" |History
 
|-  
 
|-  
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Version
+
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Issue Date
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
+
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Notes
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
 
|-
 
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|X.Y.Z
+
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|14310|2021/07/21}}
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year
+
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |First DESK-MX6UL-L release
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD
 
 
|-
 
|-
 +
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|16329|2022/03/16}}
 +
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |DESK-MX6UL-L 3.0.0 release
 
|-
 
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|[TBD_link X.Y.Z]
+
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |2023/05/05
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year
+
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |DESK-MX6UL-L 4.0.0 release
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD
 
 
|-
 
|-
 
|}
 
|}
<section end=History/>
+
<section end="History" />
 
__FORCETOC__
 
__FORCETOC__
<section begin=Body/>
+
<section begin="Body" />
  
 
==Building Linux==
 
==Building Linux==
Line 28: Line 27:
 
|-
 
|-
 
! URL
 
! URL
| git@git.dave.eu:desk-mx-l/linux-'''TBD'''.git
+
| git@git.dave.eu:desk-mx-l/linux-imx.git
 
|-
 
|-
 
! stable branch
 
! stable branch
| desk-mx-l
+
|desk-mx6ul-l-4.x.x
 
|-
 
|-
 
! stable tag
 
! stable tag
| desk-mx-l-1.x.x
+
| desk-mx6ul-l-4.0.0
 
|}
 
|}
  
Line 43: Line 42:
 
|-
 
|-
 
! defconfig
 
! defconfig
| colspan="2" | ''<defconfig>''
+
| colspan="2" | imx_v7_desk_defconfig
 
|-
 
|-
 
! Kernel binary
 
! Kernel binary
| colspan="2" | UIMAGE_LOADADDR=''<loadaddr>'' uImage
+
| colspan="2" | UIMAGE_LOADADDR=0x80008000 uImage
 
|-
 
|-
 
! rowspan="4" | Device trees
 
! rowspan="4" | Device trees
Line 52: Line 51:
 
! DTB
 
! DTB
 
|-
 
|-
| ''SBC''
+
| SBC Lynx
| ''<carrier>''.dtb
+
| imx6ul-lynx-som0013-cb002f.dtb
 
|-
 
|-
| EVB
+
| SDV04
| ''<carrier>''.dtb
+
| imx6ul-axelulite-cb003a.dtb<br>imx6ul-axelulite-cb006c.dtb
 
|-
 
|-
 
|}
 
|}
Line 69: Line 68:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
cd {{{kit-repo}}}/linux
+
cd ~/desk-mx-l/linux
 
</pre>
 
</pre>
  
Line 81: Line 80:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
source ~/env.sh
+
source ~/desk-mx-l/desk-mx6ul-l-4.0.1_env.sh
 
</pre>
 
</pre>
  
Line 87: Line 86:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
make imx_v7_{{{kit-repo}}}_defconfig
+
make imx_v7_desk_defconfig
make UIMAGE_LOADADDR=''<loadaddr>'' uImage ''<carrier>''.dtb
+
make UIMAGE_LOADADDR=0x80008000 uImage imx6ul-lynx-som0013-cb002f.dtb imx6ul-axelulite-cb003a.dtb imx6ul-axelulite-cb006c.dtb
 
</pre>
 
</pre>
  
 
'''NOTE''': this is the default configuration suitable for latest target.
 
'''NOTE''': this is the default configuration suitable for latest target.
  
:The former command selects the default DESK-MX6UL-L configuration, while the latter builds the kernel binary image with the required u-boot header and the kernel device tree.
+
:The former command selects the default [[DESK-MX6UL-L | DESK-MX6UL-L]] configuration, while the latter builds the kernel binary image with the required u-boot header and the kernel device tree.
  
 
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/desk-mx-l/</code> with the following commands:
 
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/desk-mx-l/</code> with the following commands:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
cp arch/arm/boot/uImage /tftpboot/{{{kit-repo}}}/
+
cp arch/arm/boot/uImage /tftpboot/desk-mx-l/
cp arch/arm/boot/dts/*.dtb /tftpboot/{{{kit-repo}}}/
+
cp arch/arm/boot/dts/*.dtb /tftpboot/desk-mx-l/
 
</pre>
 
</pre>
  
Line 111: Line 110:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
 +
make modules
 
mkdir modules-install
 
mkdir modules-install
 
make INSTALL_MOD_PATH=modules-install modules_install
 
make INSTALL_MOD_PATH=modules-install modules_install

Latest revision as of 17:51, 11 January 2024

History
Issue Date Notes

2021/07/21

First DESK-MX6UL-L release

2022/03/16

DESK-MX6UL-L 3.0.0 release
2023/05/05 DESK-MX6UL-L 4.0.0 release



Building Linux[edit | edit source]

Quick reference[edit | edit source]

Repository Information
URL git@git.dave.eu:desk-mx-l/linux-imx.git
stable branch desk-mx6ul-l-4.x.x
stable tag desk-mx6ul-l-4.0.0

Build Information
defconfig imx_v7_desk_defconfig
Kernel binary UIMAGE_LOADADDR=0x80008000 uImage
Device trees Platform DTB
SBC Lynx imx6ul-lynx-som0013-cb002f.dtb
SDV04 imx6ul-axelulite-cb003a.dtb
imx6ul-axelulite-cb006c.dtb

Instructions[edit | edit source]

It is assumed that the development environment has been set up properly as described here.

  • start the Linux development VM and login into the system
  • open a terminal window and cd into Linux kernel source code
cd ~/desk-mx-l/linux
  • in case of needs you can update your local repository with the following git command
git pull
  • configure the build environment
source ~/desk-mx-l/desk-mx6ul-l-4.0.1_env.sh
  • enter the source tree directory and run the following commands:
make imx_v7_desk_defconfig
make UIMAGE_LOADADDR=0x80008000 uImage imx6ul-lynx-som0013-cb002f.dtb imx6ul-axelulite-cb003a.dtb imx6ul-axelulite-cb006c.dtb

NOTE: this is the default configuration suitable for latest target.

The former command selects the default DESK-MX6UL-L configuration, while the latter builds the kernel binary image with the required u-boot header and the kernel device tree.

Default Linux kernel configuration can be changed by using the standard menuconfig, xconfig, or gconfig make target. Subsequent builds just require uImage make target to update the binary image. Once the build process is complete, the kernel binary image is stored into the arch/arm/boot/uImage file. Both this file and the kernel device tree can be copied to the tftp root directory /tftpboot/desk-mx-l/ with the following commands:

cp arch/arm/boot/uImage /tftpboot/desk-mx-l/
cp arch/arm/boot/dts/*.dtb /tftpboot/desk-mx-l/

Usually, kernel modules are installed with make modules_install command, but this method installs the modules into the /lib/modules directory of you MVM, which is not what you want.

A better way to deploy kernel modules while cross-compiling is

  • generate a .tar.gz archive
  • install this archive into the target root file system

User can create such an archive, for example, using the following commands:

make modules
mkdir modules-install
make INSTALL_MOD_PATH=modules-install modules_install

cd modules-install && tar cvzf ../modules.tar.gz . && cd ..

Now copy modules.tar.gz into the target root file system and install them as root with the following command

tar xvzf modules.tar.gz -C /