build-linux-top

Last modified by Microchip on 2025/03/03 06:58

Required packages

You must install essential host packages on your build host. These requirements are listed in the Linux kernel documentation with the chapter Install build requirementshttps://www.linux4sam.org/pub/TWiki/TWikiDocGraphics/external-link.gif. You must follow this process which includes, but not limited to, the following packages:

  • build-essential
  • flex
  • bison
  • git
  • perl-base
  • libssl-dev
  • libncurses5-dev
  • libncursesw5-dev
  • ncurses-dev

Getting Kernel sources

To get the source code, you have to clone the repository:

$ git clone https://github.com/linux4microchip/linux.git
Cloning into 'linux'...
remote: Enumerating objects: 8587836, done.
remote: Total 8587836 (delta 0), reused 0 (delta 0), pack-reused 8587836
Receiving objects: 100% (8587836/8587836), 3.49 GiB | 13.44 MiB/s, done.
Resolving deltas: 100% (7117887/7117887), done.
Updating files: 100% (70687/70687), done.
$ cd linux

The source code has been taken from the master branch which is pointing on the latest branch we use.

Pointing hand Note that you can also add this Linux4SAM repository as a remote GIT repositoryhttps://www.linux4sam.org/pub/TWiki/TWikiDocGraphics/external-link.gif to your usual Linux git tree. It will save you a lot of bandwidth and download time:

$ git remote add linux4microchip https://github.com/linux4microchip/linux.git
$ git remote update linux4microchip
Fetching linux4microchip
From https://github.com/linux4microchip/linux
 * [new branch]                linux-6.1-mchp -> linux4microchip/linux-6.1-mchp
 * [new branch]                linux-6.6-mchp -> linux4microchip/linux-6.6-mchp
 * [new branch]                master     -> linux4microchip/master

If you want to use another branch, you can list them and use one of them by doing this:

$ git branch -r
  linux4microchip/linux-5.10-mchp
  linux4microchip/linux-5.15-mchp
  linux4microchip/linux-5.15-mchp+fpga
  linux4microchip/linux-6.1-mchp
  linux4microchip/linux-6.1-mchp+fpga
  linux4microchip/linux-6.6-mchp
  linux4microchip/linux-6.6-mchp+fpga
  linux4microchip/master
$ git checkout -b linux-6.6-mchp --track remotes/linux4microchip/linux-6.6-mchp
Branch linux-6.6-mchp set up to track remote branch linux-6.6-mchp from linux4microchip.
Switched to a new branch 'linux-6.6-mchp'

Setup ARM Cross Compiler

Failed to execute the [display] macro. Cause: [Current user [null] doesn't have view rights on document [xwiki:Development.applications.linux4sam.subsections.cross-compiler.13-2-rel1.WebHome]]. Click on this message for details.

Configure and Build the Linux kernel

Now you have to configure the Linux kernel according to your hardware. We have two default configuration at91 SoC in arch/arm/configs

arch/arm/configs/at91_dt_defconfig
arch/arm/configs/sama5_defconfig
arch/arm/configs/sama7_defconfig
  • at91_dt_defconfig: for SAM9 (ARM926) series chips
  • sama5_defconfig: for SAMA5 series chips
  • sama7_defconfig: for SAMA7 series chips