Apalis T30 linux mainline update using yocto

Hello,

I am trying to change the linux-kernel version of Apalis t30 to mainline linux(4.14) using Yocto project.

For that, what I did was at /layers/meta-toradex-tegra/conf/machine/apalis-t30.conf
I added,

PREFERRED_PROVIDER_virtual/kernel = "linux-toradex-mainline"

But, it seems not enough to make image with bitbaking. (Got error during compiling kernel)

Could anyone let me know how to do it with yocto?

Thanks in advance.

Would be interesting to know what exact versions of things you are tying this with. However, this not being a directly supported option you would definitely need adjusting more than just PREFERRED_PROVIDER_virtual/kernel. As an example you may look at our commit introducing mainline support for Apalis TK1:

http://git.toradex.com/cgit/meta-toradex-tegra.git/commit/?h=rocko&id=74a74be23feb5d44121f059e1ab96787be4b7532

You would definitely need adjusting KERNEL_DEFCONFIG using tegra_defconfig plus set KERNEL_DEVICETREE to tegra30-apalis-eval.dtb.

I have used following machine.conf, but at 99% of compiling, it has an error regarding backport(4.18-r0) as below.

/media/hk/cd82b465-a731-4064-95db-8f5f42262abc/tdx-lxde-t30/build/tmp-glibc/work-shared/apalis-t30-mainline/kernel-source/Makefile:1527: recipe for target '_module_/media/hk/cd82b465-a731-4064-95db-8f5f42262abc/tdx-lxde-t30/build/tmp-glibc/work/apalis_t30_mainline-angstrom-linux-gnueabi/backports/4.18-r0/git' failed
make[5]: *** [_module_/media/hk/cd82b465-a731-4064-95db-8f5f42262abc/tdx-lxde-t30/build/tmp-glibc/work/apalis_t30_mainline-angstrom-linux-gnueabi/backports/4.18-r0/git] Error 2
ERROR: oe_runmake failed
Makefile:146: recipe for target 'sub-make' failed
make[4]: *** [sub-make] Error 2
Makefile:24: recipe for target '__sub-make' failed
make[3]: *** [__sub-make] Error 2
Makefile.build:6: recipe for target 'modules' failed
make[2]: *** [modules] Error 2
Makefile.real:88: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
Makefile:40: recipe for target 'modules' failed
make: *** [modules] Error 2
WARNING: exit code 1 from a shell command.
ERROR: Function failed: do_compile (log file is located at /media/hk/cd82b465-a731-4064-95db-8f5f42262abc/tdx-lxde-t30/build/tmp-glibc/work/apalis_t30_mainline-angstrom-linux-gnueabi/backports/4.18-r0/temp/log.do_compile.11568)
ERROR: Task (/media/hk/cd82b465-a731-4064-95db-8f5f42262abc/tdx-lxde-t30/build/../layers/meta-toradex-bsp-common/recipes-kernel/backports/backports_4.18.bb:do_compile) failed with exit code '1'



#@TYPE: Machine
#@NAME: Toradex Apalis T30 Mainline
#@SOC: Tegra T30

require conf/machine/include/tegra-base.inc

SOC_FAMILY = "tegra:tegra3"

PREFERRED_PROVIDER_virtual/kernel = "linux-toradex-mainline"

KERNEL_IMAGETYPE = "zImage"
KERNEL_DEFCONFIG = "tegra_defconfig"
KERNEL_DEVICETREE += "tegra30-apalis-eval.dtb"

# wic support
IMAGE_BOOT_FILES ?= " \
    ${KERNEL_IMAGETYPE} \
    ${KERNEL_DEVICETREE} \
"
WKS_FILE_DEPENDS ?= " \
    virtual/bootloader \
    \
    e2fsprogs-native \
    bmap-tools-native \
"

#WKS_FILE = "sdimage-bootpart-tegra.wks"
#WIC_CREATE_EXTRA_ARGS_append = " --no-fstab-update"

# The kernel lives in a seperate FAT or UBI partition, don't deploy it in /boot
RDEPENDS_kernel-base = ""

PREFERRED_PROVIDER_u-boot = "u-boot-toradex"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-toradex"

UBOOT_MACHINE = "apalis_t30_defconfig"
UBOOT_ENTRYPOINT = "0x82008000"
UBOOT_LOADADDRESS = "${UBOOT_ENTRYPOINT}"

# The payload offsets are given in number of 512 byte blocks.
OFFSET_BOOTROM_PAYLOAD = "0"

TEZI_DISTRO_BOOT_SCRIPTS = "boot.scr"
TEZI_ROOT_FSTYPE = "ext3"
TEZI_UBOOT_BINARY_EMMC = "apalis_t30.img"

# require u-boot-dtb-tegra.bin to be used
UBOOT_IMAGE = "u-boot-dtb-tegra-${MACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}"
UBOOT_BINARY = "u-boot-dtb-tegra.${UBOOT_SUFFIX}"
UBOOT_SYMLINK = "u-boot-dtb-tegra-${MACHINE}.${UBOOT_SUFFIX}"

PREFERRED_PROVIDER_lxde-icon-theme_apalis-t30 = "lxde-icon-theme"
PREFERRED_PROVIDER_lxsession-lite_apalis-t30 = "lxsession"
PREFERRED_PROVIDER_virtual/psplash = "psplash-angstrom"
PREFERRED_PROVIDER_psplash-support = "psplash-angstrom"

PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
PREFERRED_PROVIDER_virtual/mesa ?= "mesa"
PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
PREFERRED_PROVIDER_virtual/egl = "tdx-nv-binaries"

GALLIUMDRIVERS_append_armv7a =",nouveau"
XSERVER ?= "xserver-xorg \
            xf86-input-evdev \
            xf86-input-keyboard \
            xf86-input-mouse \
            xf86-video-modesetting \
           "

MACHINE_FEATURES = "screen usbgadget usbhost vfat ext2 alsa touchscreen wifi bluetooth 3g pci "
EXTRA_IMAGEDEPENDS += "u-boot"

# used by sysvinit_2
SERIAL_CONSOLE = "115200 ttyS0"
IMAGE_CLASSES += "image_type_tezi"
IMAGE_FSTYPES += "teziimg"

TORADEX_PRODUCT_IDS = "0025 0026 0031"
TORADEX_FLASH_TYPE = "emmc"

DEFAULTTUNE = "armv7athf-neon"
require conf/machine/include/tune-cortexa9.inc

You probably want to disable backports just like done for the apalis-tk1-mainline machine.