Changes between Version 35 and Version 36 of buildroot


Ignore:
Timestamp:
12/10/2020 11:51:21 PM (3 years ago)
Author:
Tim Harvey
Comment:

add venice section

Legend:

Unmodified
Added
Removed
Modified
  • buildroot

    v35 v36  
    202202
    203203
     204[=#venice]
     205== Venice (IMX8MM)
     206The following details pertain to buildroot 2018.10 although newer versions will likely be similar if not the same.
     207
     208The Venice product family is based on the i.MX8MM SoC which has 4x Cortex-A53 CPU cores. Therefore the 'BR2_aarch64' is really the only important configuration which produces binaries executable on arm64 CPU's.
     209
     210To build a root filesystem only:
     211{{{#!bash
     212cat << EOF > configs/venice_minimal_defconfig
     213# arm64 arch
     214BR2_aarch64=y
     215# filesystem options
     216BR2_TARGET_ROOTFS_TAR_XZ=y
     217EOF
     218make venice_minimal_defconfig
     219make
     220}}}
     221
     222This builds output/images/root.tar.xz consisting of a ~1.7MiB root filesystem (when uncompressed) in 5 to 10 minutes of building on a typical Linux desktop.
     223
     224If you also want buildroot to build a Gateworks v5.4.45 kernel with the minimal root filesystem attached as an initrd you would add the following the your defconfig:
     225{{{#!bash
     226cat << EOF > configs/venice_kernel_defconfig
     227# arm64 arch
     228BR2_aarch64=y
     229# toolchain
     230BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
     231# kernel
     232BR2_LINUX_KERNEL=y
     233BR2_LINUX_KERNEL_CUSTOM_GIT=y
     234BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/Gateworks/linux-venice.git"
     235BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v5.4.45-venice"
     236BR2_LINUX_KERNEL_DEFCONFIG="imx8mm_venice"
     237# filesystem options
     238BR2_TARGET_ROOTFS_TAR_XZ=y
     239EOF
     240make venice_kernel_defconfig
     241make
     242}}}
     243
     244This produces a ~23MB output/images/Image in 5 to 10 minutes of building on a typical Linux desktop. This is a kernel Image containing the root filesystem in a ramdisk. This is a really easy way to get a read-only minimal Linux image that boots fast and does not access flash storage.
     245
     246To boot this kernel image on a Venice board via the bootloader with a tftpserver:
     247{{{#!bash
     248tftpboot $kernel_addr_r Image && booti $kernel_addr_r - $fdtcontroladdr
     249}}}
     250
     251Now you have a minimal Linux OS that booted in about 6 seconds.
     252
     253A prebuilt image can be found [http://dev.gateworks.com/buildroot/venice/minimal here] which contains:
     254 * Gateworks Linux 5.4.45 kernel
     255 * resize2fs (BR2_PACKAGE_E2FSPROGS_RESIZE2FS)
     256 * uclibc
     257 * screen (BR2_PACKAGE_SCREEN)
     258 * pciutils (BR2_PACKAGE_PCIUTILS)
     259 * libusb (BR2_PACKAGE_LIBUSB)
     260 * eudev (BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV) (required for usbutils)
     261 * usbutils (BR2_PACKAGE_USBUTILS)
     262 * gdisk/sgdisk disk partitioning tools:
     263  - gdisk/sgdisk (BR2_PACKAGE_GPTFDISK/BR2_PACKAGE_GPTFDISK_SGDISK)
     264 * stress (BR2_PACKAGE_STRESS)
     265 * evtest (BR2_PACKAGE_EVTEST)
     266
     267You can boot a Kernel+ramdisk via U-Boot like this:
     268 * load from network tftpserver
     269{{{#!bash
     270tftpboot $kernel_addr_r Image && booti $kernel_addr_r - $fdtcontroladdr
     271}}}
     272 * load from microSD with ext/fat filesystem
     273{{{#!bash
     274load mmc 1:1 $kernel_addr_r Image && booti $kernel_addr_r - $fdtcontroladdr
     275}}}
     276 * load from USB with ext/fat filesystem
     277{{{#!bash
     278usb start; load usb 0:1 $kernel_addr_r Image && booti $kernel_addr_r - $fdtcontroladdr
     279}}}
     280
    204281[=#newport]
    205282== Newport (CN80XX)
     
    224301
    225302This builds a ~500KiB output/images/root.tar.xz in less than 5 minutes on a typical Linux desktop.
    226  
    227303
    228304If you also want buildroot to build a kernel provided from buildroot using the buildroot rootfs embedded as an initramfs then enable the following to create a kernel suitable for aarch64 and booting via U-Boot {{{booti}}}: