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

From DAVE Developer's Wiki
Jump to: navigation, search
(Quick reference)
 
(14 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
! 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" |1.0.0
+
|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|16137|2022/02/17}}
| 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" |Feb 2022
+
|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-MX8M-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" |First DESK-MX8M 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" |{{oldid|17542|2023/02/24}}
 +
| 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-MX8M-L-2.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" |{{oldid|18041|2023/08/22}}
 +
| 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-MX8M-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:#ededed; padding:5px; color:#000000" |2024/04/10
 +
! 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-MX8M-L-4.1.0 release
 
|-
 
|-
 
|}
 
|}
Line 26: Line 33:
 
|-
 
|-
 
! stable branch
 
! stable branch
| desk-mx8m-l-rel-2.0.0
+
| desk-mx8m-l-4.x.x
 
|-
 
|-
 
! stable tag
 
! stable tag
| desk-mx8m-l-2.0.0-rc2
+
| desk-mx8m-l-4.1.0
 
|}
 
|}
  
Line 48: Line 55:
 
|-
 
|-
 
| [[SBC Axel SBC | SBC AXEL]]
 
| [[SBC Axel SBC | SBC AXEL]]
|  imx8mm-mito8mmini.dtsb
+
|  imx8mm-mito8mmini-cb100a.dts
 
|-
 
|-
 
| [[ORCA SBC| SBC ORCA]]
 
| [[ORCA SBC| SBC ORCA]]
| imx8mp-mito8mplus-cb1001.dts
+
| imx8mp-mito8mplus-cb1008.dts
 
|-
 
|-
 
|}
 
|}
Line 61: Line 68:
 
It is assumed that the development environment has been set up properly as described [[DESK-MX8M-L#Quick_start_guide|here]].
 
It is assumed that the development environment has been set up properly as described [[DESK-MX8M-L#Quick_start_guide|here]].
 
* start the Linux development VM and login into the system
 
* start the Linux development VM and login into the system
* open a terminal window and ''cd'' into Linux kernel source code
+
* open a terminal window and ''cd'' into <code>linux</code> directory
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
cd desk-mx-l/linux
+
dvdk@vagrant:~$ cd ~/desk-mx-l/linux
 +
dvdk@vagrant:~/desk-mx-l/linux$
 
</pre>
 
</pre>
  
Line 70: Line 78:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
git pull
+
dvdk@vagrant:~/desk-mx-l/linux$ git pull
</pre>
 
 
 
* checkout the right branch
 
 
 
<pre class="workstation-terminal">
 
git checkout desk-mx8m-l-rel-2.0.0
 
 
</pre>
 
</pre>
  
Line 82: Line 84:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
source /home/dvdk/desk-mx-l/desk-mx8m-l-2.0.0-rc2_env.sh
+
dvdk@vagrant:~/desk-mx-l/linux$ source ~/desk-mx-l/desk-mx8m-l-4.0.0_env.sh  
 
</pre>
 
</pre>
  
Line 88: Line 90:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
make imx_v8_defconfig
+
dvdk@vagrant:~/desk-mx-l/linux$ make imx_v8_defconfig
make Image freescale/imx8mm-mito8mmini.dtb freescale/imx8mp-mito8mplus-cb1001.dtb
+
dvdk@vagrant:~/desk-mx-l/linux$ make -j$(nproc) Image modules freescale/imx8mm-mito8mmini-cb100a.dtb freescale/imx8mp-mito8mplus-cb1008.dtb
 
</pre>
 
</pre>
  
 
'''NOTE''': this is the default configuration suitable for the latest target.
 
'''NOTE''': this is the default configuration suitable for the latest target.
  
:The former command selects the default DESK-MX8M-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-MX8M-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/Image</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>Image</code> make target to update the binary image. Once the build process is complete, the kernel binary image is stored into the <code>arch/arm64/boot/Image</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/Image /tftpboot/desk-mx-l/
+
dvdk@vagrant:~/desk-mx-l/linux$ cp arch/arm64/boot/Image /tftpboot/desk-mx8m-l/
cp arch/arm/boot/dts/*.dtb /tftpboot/desk-mx-l/
+
dvdk@vagrant:~/desk-mx-l/linux$ cp arch/arm64/boot/dts/freescale/*.dtb /tftpboot/desk-mx8m-l/
 
</pre>
 
</pre>
  
Line 112: Line 114:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
mkdir modules-install
+
dvdk@vagrant:~/desk-mx-l/linux$ mkdir modules-install
make INSTALL_MOD_PATH=modules-install modules_install
+
dvdk@vagrant:~/desk-mx-l/linux$ make INSTALL_MOD_PATH=modules-install modules_install
 
+
dvdk@vagrant:~/desk-mx-l/linux$ cd modules-install
cd modules-install && tar cvzf ../modules.tar.gz . && cd ..
+
dvdk@vagrant:~/desk-mx-l/linux/modules-install$ tar cvzf ../modules.tar.gz . && cd ..
 +
dvdk@vagrant:~/desk-mx-l/linux$
 
</pre>
 
</pre>
  
Line 121: Line 124:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
tar xvzf modules.tar.gz -C /
+
root@desk-mx8mp:~# tar xvzf modules.tar.gz -C /
 
</pre>
 
</pre>
  
 
----
 
----
  
[[Category:MITO 8M]]
 
[[Category:MITO 8M Mini]]
 
 
[[Category:ORCA]]
 
[[Category:ORCA]]
 +
[[Category:MITO 8M Mini]]

Latest revision as of 07:57, 12 April 2024

History
Issue Date Notes

2022/02/17

First DESK-MX8M-L release

2023/02/24

DESK-MX8M-L-2.0.0 release

2023/08/22

DESK-MX8M-L-4.0.0 release
2024/04/10 DESK-MX8M-L-4.1.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-mx8m-l-4.x.x
stable tag desk-mx8m-l-4.1.0

Build Information
defconfig imx_v8_defconfig
Kernel binary Image
Device trees Platform DTB
SBC AXEL imx8mm-mito8mmini-cb100a.dts
SBC ORCA imx8mp-mito8mplus-cb1008.dts

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 directory
dvdk@vagrant:~$ cd ~/desk-mx-l/linux
dvdk@vagrant:~/desk-mx-l/linux$
  • in case of needs you can update your local repository with the following git command
dvdk@vagrant:~/desk-mx-l/linux$ git pull
  • configure the build environment
dvdk@vagrant:~/desk-mx-l/linux$ source ~/desk-mx-l/desk-mx8m-l-4.0.0_env.sh 
  • enter the source tree directory and run the following commands:
dvdk@vagrant:~/desk-mx-l/linux$ make imx_v8_defconfig
dvdk@vagrant:~/desk-mx-l/linux$ make -j$(nproc) Image modules freescale/imx8mm-mito8mmini-cb100a.dtb freescale/imx8mp-mito8mplus-cb1008.dtb

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

The former command selects the default DESK-MX8M-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 Image make target to update the binary image. Once the build process is complete, the kernel binary image is stored into the arch/arm64/boot/Image 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:

dvdk@vagrant:~/desk-mx-l/linux$ cp arch/arm64/boot/Image /tftpboot/desk-mx8m-l/
dvdk@vagrant:~/desk-mx-l/linux$ cp arch/arm64/boot/dts/freescale/*.dtb /tftpboot/desk-mx8m-l/

Usually, kernel modules are installed with make modules_install command, but this method installs the modules into the /lib/modules directory of your 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:

dvdk@vagrant:~/desk-mx-l/linux$ mkdir modules-install
dvdk@vagrant:~/desk-mx-l/linux$ make INSTALL_MOD_PATH=modules-install modules_install
dvdk@vagrant:~/desk-mx-l/linux$ cd modules-install
dvdk@vagrant:~/desk-mx-l/linux/modules-install$ tar cvzf ../modules.tar.gz . && cd ..
dvdk@vagrant:~/desk-mx-l/linux$ 

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

root@desk-mx8mp:~# tar xvzf modules.tar.gz -C /