Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
182
sources/poky/meta-yocto-bsp/README.hardware.md
Normal file
182
sources/poky/meta-yocto-bsp/README.hardware.md
Normal file
@@ -0,0 +1,182 @@
|
||||
Yocto Project Hardware Reference BSPs README
|
||||
============================================
|
||||
|
||||
This file gives details about using the Yocto Project hardware reference BSPs.
|
||||
The machines supported can be seen in the conf/machine/ directory and are listed
|
||||
below. There is one per supported hardware architecture and these are primarily
|
||||
used to validate that the Yocto Project works on the hardware arctectures of
|
||||
those machines.
|
||||
|
||||
If you are in doubt about using Poky/OpenEmbedded/Yocto Project with your hardware,
|
||||
consult the documentation for your board/device.
|
||||
|
||||
Support for additional devices is normally added by adding BSP layers to your
|
||||
configuration. For more information please see the Yocto Board Support Package
|
||||
(BSP) Developer's Guide - documentation source is in documentation/bspguide or
|
||||
download the PDF from https://docs.yoctoproject.org/
|
||||
|
||||
Note that these reference BSPs use the linux-yocto kernel and in general don't
|
||||
pull in binary module support for the platforms. This means some device functionality
|
||||
may be limited compared to a 'full' BSP which may be available.
|
||||
|
||||
|
||||
Hardware Reference Boards
|
||||
=========================
|
||||
|
||||
The following boards are supported by the meta-yocto-bsp layer:
|
||||
|
||||
* Texas Instruments Beaglebone (`beaglebone-yocto`)
|
||||
* General 64-bit Arm SystemReady platforms (`genericarm64`)
|
||||
* General IA platforms (`genericx86` and `genericx86-64`)
|
||||
|
||||
For more information see the board's section below. The appropriate MACHINE
|
||||
variable value corresponding to the board is given in brackets.
|
||||
|
||||
Reference Board Maintenance and Contributions
|
||||
=============================================
|
||||
|
||||
Please refer to our contributor guide here: https://docs.yoctoproject.org/dev/contributor-guide/
|
||||
for full details on how to submit changes.
|
||||
|
||||
As a quick guide, patches should be sent to <poky@lists.yoctoproject.org>
|
||||
The git command to do that would be:
|
||||
|
||||
git send-email -M -1 --to poky@lists.yoctoproject.org
|
||||
|
||||
Send pull requests, patches, comments or questions about meta-yocto-bsp to
|
||||
<poky@lists.yoctoproject.org>.
|
||||
|
||||
Maintainers:
|
||||
* Kevin Hao <kexin.hao@windriver.com>
|
||||
* Bruce Ashfield <bruce.ashfield@gmail.com>
|
||||
|
||||
Consumer Devices
|
||||
================
|
||||
|
||||
The following consumer devices are supported by the meta-yocto-bsp layer:
|
||||
|
||||
* Arm-based SystemReady devices (`genericarm64`)
|
||||
* Intel x86 based PCs and devices (`genericx86` and `genericx86-64`)
|
||||
|
||||
For more information see the device's section below. The appropriate MACHINE
|
||||
variable value corresponding to the device is given in brackets.
|
||||
|
||||
|
||||
Specific Hardware Documentation
|
||||
===============================
|
||||
|
||||
|
||||
Intel x86 based PCs and devices (genericx86*)
|
||||
---------------------------------------------
|
||||
|
||||
The genericx86 and genericx86-64 MACHINE are tested on the following platforms:
|
||||
|
||||
Intel Xeon/Core i-Series:
|
||||
+ Intel NUC5 Series - ix-52xx Series SOC (Broadwell)
|
||||
+ Intel NUC6 Series - ix-62xx Series SOC (Skylake)
|
||||
+ Intel Shumway Xeon Server
|
||||
|
||||
Intel Atom platforms:
|
||||
+ MinnowBoard MAX - E3825 SOC (Bay Trail)
|
||||
+ MinnowBoard MAX - Turbot (ADI Engineering) - E3826 SOC (Bay Trail)
|
||||
- These boards can be either 32bot or 64bit modes depending on firmware
|
||||
- See minnowboard.org for details
|
||||
+ Intel Braswell SOC
|
||||
|
||||
and is likely to work on many unlisted Atom/Core/Xeon based devices. The MACHINE
|
||||
type supports ethernet, wifi, sound, and Intel/vesa graphics by default in
|
||||
addition to common PC input devices, busses, and so on.
|
||||
|
||||
Depending on the device, it can boot from a traditional hard-disk, a USB device,
|
||||
or over the network. Writing generated images to physical media is
|
||||
straightforward with a caveat for USB devices. The following examples assume the
|
||||
target boot device is /dev/sdb, be sure to verify this and use the correct
|
||||
device as the following commands are run as root and are not reversable.
|
||||
|
||||
USB Device:
|
||||
|
||||
1. Build a live image. This image type consists of a simple filesystem
|
||||
without a partition table, which is suitable for USB keys, and with the
|
||||
default setup for the genericx86 machine, this image type is built
|
||||
automatically for any image you build. For example:
|
||||
|
||||
$ bitbake core-image-minimal
|
||||
|
||||
2. Use the `dd` utility to write the image to the raw block device. For
|
||||
example:
|
||||
|
||||
# dd if=core-image-minimal-genericx86.hddimg of=/dev/sdb
|
||||
|
||||
If the device fails to boot with "Boot error" displayed, or apparently
|
||||
stops just after the SYSLINUX version banner, it is likely the BIOS cannot
|
||||
understand the physical layout of the disk (or rather it expects a
|
||||
particular layout and cannot handle anything else). There are two possible
|
||||
solutions to this problem:
|
||||
|
||||
1. Change the BIOS USB Device setting to HDD mode. The label will vary by
|
||||
device, but the idea is to force BIOS to read the Cylinder/Head/Sector
|
||||
geometry from the device.
|
||||
|
||||
2. Use a ".wic" image with an EFI partition
|
||||
|
||||
1. With a default grub-efi bootloader:
|
||||
|
||||
# dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb
|
||||
|
||||
2. Use systemd-boot instead. Build an image with `EFI_PROVIDER="systemd-boot"` then use the above
|
||||
`dd` command to write the image to a USB stick.
|
||||
|
||||
|
||||
SystemReady Arm Platforms (genericarm64)
|
||||
----------------------------------------
|
||||
|
||||
The genericarm64 MACHINE is designed to work on standard SystemReady IR
|
||||
compliant boards with preinstalled firmware.
|
||||
|
||||
The genericarm64 MACHINE is currently tested on the following platforms:
|
||||
|
||||
* Texas Instruments BeaglePlay
|
||||
|
||||
The images built are EFI bootable disk images and can be written directly to a
|
||||
SD card for booting, for example.
|
||||
|
||||
There is also limited support for booting a genericarm64 image inside QEMU. When
|
||||
building the image also build the `u-boot` recipe to build the required
|
||||
firmware (note that this firmware will _not_ boot on real hardware), then use
|
||||
`runqemu` as usual.
|
||||
|
||||
|
||||
Texas Instruments Beaglebone (beaglebone-yocto)
|
||||
-----------------------------------------------
|
||||
|
||||
The Beaglebone is an ARM Cortex-A8 development board with USB, Ethernet, 2D/3D
|
||||
accelerated graphics, audio, serial, JTAG, and SD/MMC. The Black adds a faster
|
||||
CPU, more RAM, eMMC flash and a micro HDMI port. The beaglebone MACHINE is
|
||||
tested on the following platforms:
|
||||
|
||||
* Beaglebone Black A6
|
||||
* Beaglebone A6 (the original "White" model)
|
||||
|
||||
The Beaglebone Black has eMMC, while the White does not. Pressing the USER/BOOT
|
||||
button when powering on will temporarily change the boot order. But for the sake
|
||||
of simplicity, these instructions assume you have erased the eMMC on the Black,
|
||||
so its boot behavior matches that of the White and boots off of SD card. To do
|
||||
this, issue the following commands from the u-boot prompt:
|
||||
|
||||
# mmc dev 1
|
||||
# mmc erase 0 512
|
||||
|
||||
To further tailor these instructions for your board, please refer to the
|
||||
documentation at http://www.beagleboard.org/bone and http://www.beagleboard.org/black
|
||||
|
||||
From a Linux system with access to the image files perform the following steps:
|
||||
|
||||
1. Build an image. For example:
|
||||
|
||||
$ bitbake core-image-minimal
|
||||
|
||||
2. Use the "dd" utility to write the image to the SD card. For example:
|
||||
|
||||
# dd if=core-image-minimal-beaglebone-yocto.wic of=/dev/sdb
|
||||
|
||||
3. Insert the SD card into the Beaglebone and boot the board.
|
||||
12
sources/poky/meta-yocto-bsp/conf/layer.conf
Normal file
12
sources/poky/meta-yocto-bsp/conf/layer.conf
Normal file
@@ -0,0 +1,12 @@
|
||||
# We have a conf and classes directory, add to BBPATH
|
||||
BBPATH .= ":${LAYERDIR}"
|
||||
|
||||
# We have recipes-* directories, add to BBFILES
|
||||
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
|
||||
${LAYERDIR}/recipes-*/*/*.bbappend"
|
||||
|
||||
BBFILE_COLLECTIONS += "yoctobsp"
|
||||
BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_yoctobsp = "5"
|
||||
LAYERVERSION_yoctobsp = "4"
|
||||
LAYERSERIES_COMPAT_yoctobsp = "scarthgap"
|
||||
@@ -0,0 +1,54 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Beaglebone-yocto machine
|
||||
#@DESCRIPTION: Reference machine configuration for http://beagleboard.org/bone and http://beagleboard.org/black boards
|
||||
|
||||
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
|
||||
|
||||
EXTRA_IMAGEDEPENDS += "virtual/bootloader"
|
||||
|
||||
DEFAULTTUNE ?= "cortexa8hf-neon"
|
||||
include conf/machine/include/arm/armv7a/tune-cortexa8.inc
|
||||
|
||||
IMAGE_FSTYPES += "tar.bz2 jffs2 wic wic.bmap"
|
||||
EXTRA_IMAGECMD:jffs2 = "-lnp "
|
||||
WKS_FILE ?= "beaglebone-yocto.wks"
|
||||
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-image kernel-devicetree"
|
||||
do_image_wic[depends] += "mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot virtual/bootloader:do_deploy"
|
||||
|
||||
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0 115200;ttyAMA0"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
|
||||
PREFERRED_VERSION_linux-yocto ?= "6.6%"
|
||||
|
||||
KERNEL_IMAGETYPE = "zImage"
|
||||
DTB_FILES = "am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb"
|
||||
KERNEL_DEVICETREE = '${@' '.join('ti/omap/%s' % d for d in '${DTB_FILES}'.split())}'
|
||||
|
||||
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"
|
||||
|
||||
SPL_BINARY = "MLO"
|
||||
UBOOT_SUFFIX = "img"
|
||||
UBOOT_MACHINE = "am335x_evm_defconfig"
|
||||
|
||||
MACHINE_FEATURES = "usbgadget usbhost vfat alsa"
|
||||
|
||||
IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} ${SPL_BINARY} ${KERNEL_IMAGETYPE} ${DTB_FILES}"
|
||||
|
||||
# support runqemu
|
||||
EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native"
|
||||
IMAGE_CLASSES += "qemuboot"
|
||||
QB_DEFAULT_FSTYPE = "wic"
|
||||
QB_FSINFO = "wic:no-kernel-in-fs"
|
||||
QB_KERNEL_ROOT = "/dev/vda2"
|
||||
QB_SYSTEM_NAME = "qemu-system-arm"
|
||||
QB_MACHINE = "-machine virt"
|
||||
QB_CPU = "-cpu cortex-a15"
|
||||
QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0 systemd.mask=systemd-networkd"
|
||||
QB_OPT_APPEND = "-device virtio-rng-device"
|
||||
QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
|
||||
QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
|
||||
QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
|
||||
QB_SERIAL_OPT = ""
|
||||
QB_TCPSERIAL_OPT = "-device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
|
||||
60
sources/poky/meta-yocto-bsp/conf/machine/genericarm64.conf
Normal file
60
sources/poky/meta-yocto-bsp/conf/machine/genericarm64.conf
Normal file
@@ -0,0 +1,60 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: genericarm64
|
||||
#@DESCRIPTION: Generic Arm64 machine for typical SystemReady IR/ES platforms, which
|
||||
#have working firmware and boot via EFI.
|
||||
|
||||
require conf/machine/include/arm/arch-armv8a.inc
|
||||
|
||||
# Arm Base System Architecture says v8.0+ is allowed, but FEAT_CRC32 is required
|
||||
DEFAULTTUNE = "armv8a-crc"
|
||||
|
||||
MACHINE_FEATURES = "acpi alsa bluetooth efi keyboard pci qemu-usermode rtc screen usbhost vfat wifi"
|
||||
|
||||
KERNEL_IMAGETYPE = "Image"
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
|
||||
|
||||
# Install all the kernel modules into the rootfs
|
||||
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
|
||||
# Install selected pieces of firmware
|
||||
MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-wl12xx linux-firmware-wl18xx linux-firmware-rtl-nic"
|
||||
|
||||
# Use an initramfs and populate it with the kernel modules and key firmware
|
||||
INITRAMFS_IMAGE ?= "core-image-initramfs-boot"
|
||||
PACKAGE_INSTALL:append:pn-core-image-initramfs-boot = " ${MACHINE_EXTRA_RRECOMMENDS}"
|
||||
|
||||
IMAGE_FSTYPES ?= "wic"
|
||||
WKS_FILE ?= "genericarm64.wks.in"
|
||||
|
||||
EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
|
||||
|
||||
# Try to bring up one physical serial console, or a virtualized serial console
|
||||
SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
|
||||
|
||||
# Allow u-boot to be built for use with qemu-system-aarch64.
|
||||
# This u-boot is _not_ suitable for use with real hardware, and the expectation
|
||||
# of this machine is that real hardware comes with the firmware pre-loaded.
|
||||
UBOOT_MACHINE = "qemu_arm64_defconfig"
|
||||
|
||||
# runqemu configuration to run a genericarm64 image inside a qemu-system-aarch64. You will need
|
||||
# to build u-boot explicitly.
|
||||
IMAGE_CLASSES += "qemuboot"
|
||||
QB_SYSTEM_NAME = "qemu-system-aarch64"
|
||||
# Boot the virtual machine with either an emulated Cortex-A76, or the host if using KVM
|
||||
QB_MACHINE = "-machine virt"
|
||||
QB_CPU = "-cpu cortex-a76"
|
||||
QB_CPU_KVM = "-cpu host -machine gic-version=3"
|
||||
QB_SMP = "-smp 4"
|
||||
# Boot into U-Boot and let that scan the disk for the next step, don't pass any kernel or filesystem hints
|
||||
QB_DEFAULT_BIOS = "u-boot.bin"
|
||||
QB_DEFAULT_KERNEL = "none"
|
||||
QB_DEFAULT_FSTYPE = "wic"
|
||||
QB_FSINFO = "wic:no-kernel-in-fs"
|
||||
# Mount the wic rootfs as a virtio block device
|
||||
QB_ROOTFS_OPT = "-drive id=root,file=@ROOTFS@,if=none,format=raw -device virtio-blk-pci,drive=root"
|
||||
# Virtio graphics
|
||||
QB_GRAPHICS = "-device virtio-gpu-pci"
|
||||
# Virtio serial consoles
|
||||
QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
|
||||
QB_TCPSERIAL_OPT = "-device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon"
|
||||
# Virtio networking
|
||||
QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
|
||||
10
sources/poky/meta-yocto-bsp/conf/machine/genericx86-64.conf
Normal file
10
sources/poky/meta-yocto-bsp/conf/machine/genericx86-64.conf
Normal file
@@ -0,0 +1,10 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Generic x86_64
|
||||
#@DESCRIPTION: Machine configuration for generic x86_64 (64-bit) PCs and servers. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
|
||||
|
||||
DEFAULTTUNE ?= "core2-64"
|
||||
require conf/machine/include/x86/tune-core2.inc
|
||||
require conf/machine/include/genericx86-common.inc
|
||||
|
||||
#For runqemu
|
||||
QB_SYSTEM_NAME = "qemu-system-x86_64"
|
||||
10
sources/poky/meta-yocto-bsp/conf/machine/genericx86.conf
Normal file
10
sources/poky/meta-yocto-bsp/conf/machine/genericx86.conf
Normal file
@@ -0,0 +1,10 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Generic x86
|
||||
#@DESCRIPTION: Machine configuration for generic x86 (32-bit) PCs. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
|
||||
|
||||
DEFAULTTUNE ?= "core2-32"
|
||||
require conf/machine/include/x86/tune-core2.inc
|
||||
require conf/machine/include/genericx86-common.inc
|
||||
|
||||
#For runqemu
|
||||
QB_SYSTEM_NAME = "qemu-system-i386"
|
||||
@@ -0,0 +1,23 @@
|
||||
include conf/machine/include/x86/x86-base.inc
|
||||
require conf/machine/include/x86/qemuboot-x86.inc
|
||||
MACHINE_FEATURES += "wifi efi pcbios"
|
||||
|
||||
PREFERRED_VERSION_linux-yocto ?= "6.6%"
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
|
||||
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
|
||||
XSERVER ?= "${XSERVER_X86_BASE} \
|
||||
${XSERVER_X86_EXT} \
|
||||
${XSERVER_X86_I915} \
|
||||
${XSERVER_X86_I965} \
|
||||
${XSERVER_X86_FBDEV} \
|
||||
${XSERVER_X86_VESA} \
|
||||
${XSERVER_X86_MODESETTING} \
|
||||
"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules linux-firmware"
|
||||
|
||||
IMAGE_FSTYPES += "wic wic.bmap"
|
||||
WKS_FILE ?= "genericx86.wks.in"
|
||||
EFI_PROVIDER ??= "grub-efi"
|
||||
do_image_wic[depends] += "gptfdisk-native:do_populate_sysroot"
|
||||
do_image_wic[recrdeptask] += "do_bootimg"
|
||||
@@ -0,0 +1,97 @@
|
||||
# Copyright (C) 2014 Intel Corporation
|
||||
#
|
||||
# Released under the MIT license (see COPYING.MIT)
|
||||
|
||||
# This module adds support to testimage.bbclass to deploy images and run
|
||||
# tests on a BeagleBone (original "white" or Black models). The device must
|
||||
# be set up as per README.hardware and the master image should be deployed
|
||||
# onto the card so that it boots into it by default. For booting into the
|
||||
# image under test we interact with u-boot over serial, so for the
|
||||
# BeagleBone Black you will need an additional TTL serial cable since a
|
||||
# serial interface isn't automatically provided over the USB connection as
|
||||
# it is on the original BeagleBone ("white") version. The separate ext3
|
||||
# partition that will contain the image to be tested must be labelled
|
||||
# "testrootfs" so that the deployment code below can find it.
|
||||
#
|
||||
# NOTE: for the BeagleBone "white" (original version) you may need to use
|
||||
# a script which handles the serial device disappearing on power down, such
|
||||
# as scripts/contrib/serdevtry in OE-Core.
|
||||
|
||||
import os
|
||||
import bb
|
||||
import time
|
||||
import subprocess
|
||||
import sys
|
||||
import pexpect
|
||||
|
||||
from oeqa.controllers.controllerimage import ControllerImageHardwareTarget
|
||||
|
||||
|
||||
class BeagleBoneTarget(ControllerImageHardwareTarget):
|
||||
|
||||
dtbs = {'uImage-am335x-bone.dtb': 'am335x-bone.dtb', 'uImage-am335x-boneblack.dtb': 'am335x-boneblack.dtb'}
|
||||
|
||||
@classmethod
|
||||
def get_extra_files(self):
|
||||
return list(self.dtbs.keys())
|
||||
|
||||
def __init__(self, d):
|
||||
super(BeagleBoneTarget, self).__init__(d)
|
||||
|
||||
self.image_fstype = self.get_image_fstype(d)
|
||||
self.deploy_cmds = [
|
||||
'mkdir -p /mnt/testrootfs',
|
||||
'mount -L testrootfs /mnt/testrootfs',
|
||||
'rm -rf /mnt/testrootfs/*',
|
||||
'tar xvf ~/test-rootfs.%s -C /mnt/testrootfs' % self.image_fstype,
|
||||
'[ -e /mnt/testrootfs/boot/uImage ] || [ -L /mnt/testrootfs/boot/uImage ] || cp ~/test-kernel /mnt/testrootfs/boot/uImage',
|
||||
]
|
||||
|
||||
for _, dtbfn in self.dtbs.iteritems():
|
||||
# Kernel and dtb files may not be in the image, so copy them if not
|
||||
self.deploy_cmds.append('[ -e /mnt/testrootfs/boot/{0} ] || cp ~/{0} /mnt/testrootfs/boot/'.format(dtbfn))
|
||||
|
||||
if not self.serialcontrol_cmd:
|
||||
bb.fatal("This TEST_TARGET needs a TEST_SERIALCONTROL_CMD defined in local.conf.")
|
||||
|
||||
|
||||
def _deploy(self):
|
||||
self.controller.run("umount /boot; umount /mnt/testrootfs;")
|
||||
self.controller.ignore_status = False
|
||||
# Kernel and dtb files may not be in the image, so copy them just in case
|
||||
self.controller.copy_to(self.kernel, "~/test-kernel")
|
||||
kernelpath = os.path.dirname(self.kernel)
|
||||
for dtborig, dtbfn in self.dtbs.iteritems():
|
||||
dtbfile = os.path.join(kernelpath, dtborig)
|
||||
if os.path.exists(dtbfile):
|
||||
self.controller.copy_to(dtbfile, "~/%s" % dtbfn)
|
||||
self.controller.copy_to(self.rootfs, "~/test-rootfs.%s" % self.image_fstype)
|
||||
for cmd in self.deploy_cmds:
|
||||
self.controller.run(cmd)
|
||||
|
||||
def _start(self, params=None):
|
||||
self.power_cycle(self.controller)
|
||||
try:
|
||||
serialconn = pexpect.spawn(self.serialcontrol_cmd, env=self.origenv, logfile=sys.stdout)
|
||||
# We'd wait for "U-Boot" here but sometimes we connect too late on BeagleBone white to see it
|
||||
serialconn.expect("NAND:")
|
||||
serialconn.expect("MMC:")
|
||||
serialconn.sendline("a")
|
||||
serialconn.expect("U-Boot#")
|
||||
serialconn.sendline("setenv bootpart 0:3")
|
||||
serialconn.expect("U-Boot#")
|
||||
serialconn.sendline("setenv mmcroot /dev/mmcblk0p3 ro")
|
||||
serialconn.expect("U-Boot#")
|
||||
serialconn.sendline("boot")
|
||||
serialconn.expect("login:", timeout=120)
|
||||
serialconn.close()
|
||||
except pexpect.ExceptionPexpect as e:
|
||||
bb.fatal('Serial interaction failed: %s' % str(e))
|
||||
|
||||
def _wait_until_booted(self):
|
||||
try:
|
||||
serialconn = pexpect.spawn(self.serialcontrol_cmd, env=self.origenv, logfile=sys.stdout)
|
||||
serialconn.expect("login:", timeout=120)
|
||||
serialconn.close()
|
||||
except pexpect.ExceptionPexpect as e:
|
||||
bb.fatal('Serial interaction failed: %s' % str(e))
|
||||
@@ -0,0 +1,70 @@
|
||||
# Copyright (C) 2014 Intel Corporation
|
||||
#
|
||||
# Released under the MIT license (see COPYING.MIT)
|
||||
|
||||
# This module adds support to testimage.bbclass to deploy images and run
|
||||
# tests on a Generic PC that boots using grub bootloader. The device must
|
||||
# be set up as per README.hardware and the master image should be deployed
|
||||
# onto the harddisk so that it boots into it by default.For booting into the
|
||||
# image under test we interact with grub over serial, so for the
|
||||
# Generic PC you will need an additional serial cable and device under test
|
||||
# needs to have a serial interface. The separate ext3
|
||||
# partition that will contain the image to be tested must be labelled
|
||||
# "testrootfs" so that the deployment code below can find it.
|
||||
|
||||
import os
|
||||
import bb
|
||||
import time
|
||||
import subprocess
|
||||
import sys
|
||||
import pexpect
|
||||
|
||||
from oeqa.controllers.controllerimage import ControllerImageHardwareTarget
|
||||
|
||||
class GrubTarget(ControllerImageHardwareTarget):
|
||||
|
||||
def __init__(self, d):
|
||||
super(GrubTarget, self).__init__(d)
|
||||
self.deploy_cmds = [
|
||||
'mount -L boot /boot',
|
||||
'mkdir -p /mnt/testrootfs',
|
||||
'mount -L testrootfs /mnt/testrootfs',
|
||||
'cp ~/test-kernel /boot',
|
||||
'rm -rf /mnt/testrootfs/*',
|
||||
'tar xvf ~/test-rootfs.%s -C /mnt/testrootfs' % self.image_fstype,
|
||||
]
|
||||
|
||||
if not self.serialcontrol_cmd:
|
||||
bb.fatal("This TEST_TARGET needs a TEST_SERIALCONTROL_CMD defined in local.conf.")
|
||||
|
||||
|
||||
def _deploy(self):
|
||||
# make sure these aren't mounted
|
||||
self.controller.run("umount /boot; umount /mnt/testrootfs;")
|
||||
self.controller.ignore_status = False
|
||||
# Kernel files may not be in the image, so copy them just in case
|
||||
self.controller.copy_to(self.rootfs, "~/test-rootfs." + self.image_fstype)
|
||||
self.controller.copy_to(self.kernel, "~/test-kernel")
|
||||
for cmd in self.deploy_cmds:
|
||||
self.controller.run(cmd)
|
||||
|
||||
def _start(self, params=None):
|
||||
self.power_cycle(self.controller)
|
||||
try:
|
||||
serialconn = pexpect.spawn(self.serialcontrol_cmd, env=self.origenv, logfile=sys.stdout)
|
||||
serialconn.expect("GNU GRUB version 2.00")
|
||||
serialconn.expect("Linux")
|
||||
serialconn.sendline("x")
|
||||
serialconn.expect("login:", timeout=120)
|
||||
serialconn.close()
|
||||
except pexpect.ExceptionPexpect as e:
|
||||
bb.fatal('Serial interaction failed: %s' % str(e))
|
||||
|
||||
def _wait_until_booted(self):
|
||||
try:
|
||||
serialconn = pexpect.spawn(self.serialcontrol_cmd, env=self.origenv, logfile=sys.stdout)
|
||||
serialconn.expect("login:", timeout=120)
|
||||
serialconn.close()
|
||||
except pexpect.ExceptionPexpect as e:
|
||||
bb.fatal('Serial interaction failed: %s' % str(e))
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# These should be reviewed to see if they are still needed
|
||||
l4_wkup_cm
|
||||
Failed to make EGL context current
|
||||
glamor initialization failed
|
||||
@@ -0,0 +1,7 @@
|
||||
# These should be reviewed to see if they are still needed
|
||||
Direct firmware load for i915
|
||||
Failed to load firmware i915
|
||||
Failed to fetch GuC
|
||||
Failed to initialize GuC
|
||||
Failed to load DMC firmware
|
||||
The driver is built-in, so to load the firmware you need to
|
||||
@@ -0,0 +1,72 @@
|
||||
import os
|
||||
|
||||
from oeqa.selftest.case import OESelftestTestCase
|
||||
from oeqa.core.decorator.depends import OETestDepends
|
||||
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu
|
||||
|
||||
class Systemdboot(OESelftestTestCase):
|
||||
|
||||
def test_efi_systemdboot_images_can_be_built(self):
|
||||
"""
|
||||
Summary: Check if systemd-boot images can be built correctly
|
||||
Expected: 1. File systemd-boot.efi should be available in $poky/build/tmp/deploy/images/genericx86-64
|
||||
2. 'systemd-boot" can be built correctly
|
||||
Product: oe-core
|
||||
Author: Jose Perez Carranza <jose.perez.carranza@intel.com>
|
||||
AutomatedBy: Jose Perez Carranza <jose.perez.carranza@intel.com>
|
||||
"""
|
||||
|
||||
# Set EFI_PROVIDER = "systemdboot" and MACHINE = "genericx86-64" in conf/local.conf
|
||||
features = 'EFI_PROVIDER = "systemd-boot"\n'
|
||||
features += 'MACHINE = "genericx86-64"'
|
||||
self.append_config(features)
|
||||
|
||||
image = 'core-image-minimal'
|
||||
bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'IMAGE_LINK_NAME'], image)
|
||||
systemdbootfile = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], 'systemd-bootx64.efi')
|
||||
|
||||
# Ensure we're actually testing that this gets built and not that
|
||||
# it was around from an earlier build
|
||||
bitbake('-c clean systemd-boot')
|
||||
runCmd('rm -f %s' % systemdbootfile)
|
||||
|
||||
# Build a genericx86-64/efi systemdboot image
|
||||
bitbake('mtools-native core-image-minimal wic-tools')
|
||||
|
||||
found = os.path.isfile(systemdbootfile)
|
||||
self.assertTrue(found, 'Systemd-Boot file %s not found' % systemdbootfile)
|
||||
|
||||
"""
|
||||
Summary: Check if EFI bootloader for systemd is correctly build
|
||||
Dependencies: Image was built correctly on testcase 1445
|
||||
Steps: 1. Copy bootx64.efi file from the wic created
|
||||
under build/tmp/deploy/images/genericx86-64
|
||||
2. Check bootx64.efi was copied from wic
|
||||
3. Verify the checksums from the copied and previously
|
||||
created file are equal.
|
||||
Expected : Systemd-bootx64.efi and bootx64.efi should be the same
|
||||
hence checksums should be equal.
|
||||
Product: oe-core
|
||||
Author: Jose Perez Carranza <jose.perez.carranza at linux-intel.com>
|
||||
AutomatedBy: Jose Perez Carranza <jose.perez.carranza at linux-intel.com>
|
||||
"""
|
||||
|
||||
systemdbootimage = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], '%s.wic' % bb_vars['IMAGE_LINK_NAME'])
|
||||
imagebootfile = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], 'bootx64.efi')
|
||||
|
||||
# Clean environment before start the test
|
||||
if os.path.isfile(imagebootfile):
|
||||
runCmd('rm -f %s' % imagebootfile)
|
||||
|
||||
sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
|
||||
|
||||
runCmd('wic cp %s:1/EFI/BOOT/bootx64.efi %s -n %s' % (systemdbootimage,
|
||||
imagebootfile, sysroot))
|
||||
|
||||
found = os.path.isfile(imagebootfile)
|
||||
self.assertTrue(found, 'bootx64.efi file %s was not copied from image'
|
||||
% imagebootfile)
|
||||
|
||||
result = runCmd('md5sum %s %s' % (systemdbootfile, imagebootfile))
|
||||
self.assertEqual(result.output.split()[0], result.output.split()[2],
|
||||
'%s was not correclty generated' % imagebootfile)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Assume a USB mouse and keyboard are connected
|
||||
HAVE_TOUCHSCREEN=0
|
||||
HAVE_KEYBOARD=1
|
||||
@@ -0,0 +1,6 @@
|
||||
HAVE_TOUCHSCREEN=0
|
||||
HAVE_KEYBOARD=1
|
||||
|
||||
DISPLAY_CAN_ROTATE=0
|
||||
DISPLAY_ORIENTATION=0
|
||||
DISPLAY_DPI=133
|
||||
@@ -0,0 +1,6 @@
|
||||
HAVE_TOUCHSCREEN=0
|
||||
HAVE_KEYBOARD=1
|
||||
|
||||
DISPLAY_CAN_ROTATE=0
|
||||
DISPLAY_ORIENTATION=0
|
||||
DISPLAY_DPI=133
|
||||
@@ -0,0 +1 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
@@ -0,0 +1,21 @@
|
||||
Section "Monitor"
|
||||
Identifier "Builtin Default Monitor"
|
||||
EndSection
|
||||
|
||||
Section "Device"
|
||||
Identifier "Builtin Default fbdev Device 0"
|
||||
Driver "modesetting"
|
||||
Option "AccelMethod" "none"
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "Builtin Default fbdev Screen 0"
|
||||
DefaultDepth 16
|
||||
Device "Builtin Default fbdev Device 0"
|
||||
Monitor "Builtin Default Monitor"
|
||||
EndSection
|
||||
|
||||
Section "ServerLayout"
|
||||
Identifier "Builtin Default Layout"
|
||||
Screen "Builtin Default fbdev Screen 0"
|
||||
EndSection
|
||||
@@ -0,0 +1 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
@@ -0,0 +1,13 @@
|
||||
KBRANCH:genericx86 = "standard/base"
|
||||
KBRANCH:genericx86-64 = "standard/base"
|
||||
KBRANCH:beaglebone-yocto = "standard/beaglebone"
|
||||
|
||||
KMACHINE:genericarm64 ?= "genericarm64"
|
||||
KMACHINE:genericx86 ?= "common-pc"
|
||||
KMACHINE:genericx86-64 ?= "common-pc-64"
|
||||
KMACHINE:beaglebone-yocto ?= "beaglebone"
|
||||
|
||||
COMPATIBLE_MACHINE:genericarm64 = "genericarm64"
|
||||
COMPATIBLE_MACHINE:genericx86 = "genericx86"
|
||||
COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
|
||||
COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
|
||||
@@ -0,0 +1,21 @@
|
||||
COMPATIBLE_MACHINE:genericarm64 = "genericarm64"
|
||||
COMPATIBLE_MACHINE:genericx86 = "genericx86"
|
||||
COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
|
||||
COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
|
||||
|
||||
KBRANCH:genericx86 = "v6.6/standard/base"
|
||||
KBRANCH:genericx86-64 = "v6.6/standard/base"
|
||||
KBRANCH:beaglebone-yocto = "v6.6/standard/beaglebone"
|
||||
|
||||
KMACHINE:genericarm64 ?= "genericarm64"
|
||||
KMACHINE:genericx86 ?= "common-pc"
|
||||
KMACHINE:genericx86-64 ?= "common-pc-64"
|
||||
KMACHINE:beaglebone-yocto ?= "beaglebone"
|
||||
|
||||
SRCREV_machine:genericx86 ?= "06644f0d7193d7ec39d7fe41939a21953e7a0c65"
|
||||
SRCREV_machine:genericx86-64 ?= "06644f0d7193d7ec39d7fe41939a21953e7a0c65"
|
||||
SRCREV_machine:beaglebone-yocto ?= "06644f0d7193d7ec39d7fe41939a21953e7a0c65"
|
||||
|
||||
LINUX_VERSION:genericx86 = "6.6.21"
|
||||
LINUX_VERSION:genericx86-64 = "6.6.21"
|
||||
LINUX_VERSION:beaglebone-yocto = "6.6.21"
|
||||
7
sources/poky/meta-yocto-bsp/wic/beaglebone-yocto.wks
Normal file
7
sources/poky/meta-yocto-bsp/wic/beaglebone-yocto.wks
Normal file
@@ -0,0 +1,7 @@
|
||||
# short-description: Create SD card image for Beaglebone
|
||||
# long-description: Creates a partitioned SD card image for Beaglebone.
|
||||
# Boot files are located in the first vfat partition.
|
||||
|
||||
part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4 --fixed-size 32 --sourceparams="loader=u-boot" --use-uuid
|
||||
part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4 --use-uuid
|
||||
bootloader --append="console=ttyS0,115200"
|
||||
11
sources/poky/meta-yocto-bsp/wic/genericarm64.wks.in
Normal file
11
sources/poky/meta-yocto-bsp/wic/genericarm64.wks.in
Normal file
@@ -0,0 +1,11 @@
|
||||
# short-description: Create an EFI disk image
|
||||
# long-description: Creates a partitioned EFI disk image that the user
|
||||
# can directly dd to boot media.
|
||||
|
||||
part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --label boot --active --align 1024 --use-uuid
|
||||
|
||||
part swap --size 44 --label swap --fstype=swap --use-uuid
|
||||
|
||||
part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid
|
||||
|
||||
bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4"
|
||||
7
sources/poky/meta-yocto-bsp/wic/genericx86.wks.in
Normal file
7
sources/poky/meta-yocto-bsp/wic/genericx86.wks.in
Normal file
@@ -0,0 +1,7 @@
|
||||
# short-description: Create an EFI disk image for genericx86*
|
||||
# long-description: Creates a partitioned EFI disk image for genericx86* machines
|
||||
part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER}" --ondisk sda --label msdos --active --align 1024
|
||||
part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid
|
||||
part swap --ondisk sda --size 44 --label swap1 --fstype=swap
|
||||
|
||||
bootloader --ptable gpt --timeout=5 --append="rootfstype=ext4 console=ttyS0,115200 console=tty0"
|
||||
Reference in New Issue
Block a user