mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-07-18 16:37:08 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d4c09cf00 | |||
| 5425d269c1 | |||
| 97284c1c3e | |||
| 9c548d16e0 | |||
| e56a0cd6fe | |||
| 61bfbf1601 | |||
| 32c4bca3ae | |||
| 6d58916259 | |||
| dfc0187c36 | |||
| 0ef5fd9682 |
+1
-1
@@ -17,7 +17,7 @@ repos:
|
||||
meta-arm-toolchain:
|
||||
|
||||
poky:
|
||||
url: https://git.yoctoproject.org/git/poky
|
||||
url: https://git.yoctoproject.org/poky
|
||||
layers:
|
||||
meta:
|
||||
meta-poky:
|
||||
|
||||
+2
-2
@@ -20,9 +20,9 @@ def repo_shortname(url):
|
||||
.replace('*', '.'))
|
||||
|
||||
repositories = (
|
||||
"https://git.yoctoproject.org/git/poky",
|
||||
"https://git.yoctoproject.org/poky",
|
||||
"https://git.openembedded.org/meta-openembedded",
|
||||
"https://git.yoctoproject.org/git/meta-virtualization",
|
||||
"https://git.yoctoproject.org/meta-virtualization",
|
||||
"https://github.com/kraj/meta-clang",
|
||||
)
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ header:
|
||||
version: 13
|
||||
includes:
|
||||
- kas/arm-systemready-firmware.yml
|
||||
- kas/arm-systemready-linux-distros-unattended-installation.yml
|
||||
|
||||
target:
|
||||
- arm-systemready-linux-distros-debian
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
from oeqa.runtime.case import OERuntimeTestCase
|
||||
|
||||
|
||||
class SystemReadyDebianUnattendedTest(OERuntimeTestCase):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.console = self.target.DEFAULT_CONSOLE
|
||||
|
||||
def test_debian_unattended(self):
|
||||
# Turn on the FVP.
|
||||
self.target.transition('on')
|
||||
|
||||
# Timeout value = elapsed time * 2; where elapsed time was collected
|
||||
# from the elapsed time in the log.do_testimage for each function after
|
||||
# the build is finished on the development machine.
|
||||
self.target.expect(self.console,
|
||||
r'.*Scanning installation',
|
||||
timeout=(20 * 60))
|
||||
bb.plain('Installation status: Scanning installation media...')
|
||||
|
||||
self.target.expect(self.console,
|
||||
r'.*Detecting network hardware',
|
||||
timeout=(35 * 60))
|
||||
bb.plain('Installation status: Detecting network hardware...')
|
||||
|
||||
self.target.expect(self.console,
|
||||
r'.*Installing the base system',
|
||||
timeout=(35 * 60))
|
||||
bb.plain('Installation status: Installing the base system...')
|
||||
|
||||
self.target.expect(self.console,
|
||||
r'.*Installing GRUB',
|
||||
timeout=(7 * 60 * 60))
|
||||
bb.plain('Installation status: Installing GRUB...')
|
||||
|
||||
# Waiting to respond to the boot loader prompt error message.
|
||||
self.target.expect(self.console,
|
||||
r'.*Press enter to continue',
|
||||
timeout=(15 * 60))
|
||||
self.target.sendline(self.console, '')
|
||||
|
||||
self.target.expect(self.console,
|
||||
r'.*Press enter to continue',
|
||||
timeout=(60))
|
||||
self.target.sendline(self.console, '')
|
||||
|
||||
# Waiting to respond continue without bootloader to install
|
||||
# bootloader with the late script in preseed.cfg at the end.
|
||||
self.target.expect(self.console,
|
||||
r'.*Continue without boot loader',
|
||||
timeout=(2 * 60))
|
||||
self.target.sendline(self.console, '14')
|
||||
|
||||
self.target.expect(self.console,
|
||||
r'.*Press enter to continue',
|
||||
timeout=(60))
|
||||
self.target.sendline(self.console, '')
|
||||
|
||||
self.target.expect(self.console,
|
||||
r'.*Finishing the installation',
|
||||
timeout=(2 * 60))
|
||||
bb.plain('Installation status: Finishing the installation...')
|
||||
|
||||
# Waiting till the installation is finished.
|
||||
self.target.expect(self.console, r'.*login:', timeout=(40 * 60))
|
||||
bb.plain('Installation status: Debian installation finished successfully.')
|
||||
@@ -49,9 +49,9 @@ PV = "2.0.0"
|
||||
PV_DATE = "23.03"
|
||||
FULL_PV = "v${PV_DATE}_${PV}"
|
||||
ARM_SYSTEMREADY_IR_ACS_BRANCH ?= "main"
|
||||
IMAGE_FILENAME = "ir-acs-live-image-generic-arm64.wic"
|
||||
IMAGE_FILENAME = "ir-acs-live-image-generic-arm64-${PV}.wic"
|
||||
SRC_URI = " \
|
||||
https://github.com/ARM-software/arm-systemready/raw/${ARM_SYSTEMREADY_IR_ACS_BRANCH}/IR/prebuilt_images/${FULL_PV}/${IMAGE_FILENAME}.xz;name=acs-img \
|
||||
https://github.com/ARM-software/arm-systemready/raw/${ARM_SYSTEMREADY_IR_ACS_BRANCH}/IR/prebuilt_images/${FULL_PV}/ir-acs-live-image-generic-arm64.wic.xz;name=acs-img;downloadfilename=${IMAGE_FILENAME}.xz \
|
||||
git://git.gitlab.arm.com/systemready/systemready-ir-template.git;protocol=https;nobranch=1;destsuffix=systemready-ir-template;name=sr-ir-template \
|
||||
"
|
||||
SRC_URI[acs-img.sha256sum] = "ea52f84dab44bde97de3e2d2224d883acaae35724dd8e2bdfb125de49040f9b3"
|
||||
|
||||
+32
-5
@@ -98,8 +98,35 @@ file://${COMMON_LICENSE_DIR}/OPL-1.0;md5=acdf1e4398bd93dc137e271c50316324 \
|
||||
file://${COMMON_LICENSE_DIR}/PD;md5=b3597d12946881e13cb3b548d1173851 \
|
||||
"
|
||||
|
||||
PV = "12.4.0"
|
||||
# netinst, DVD-1
|
||||
ISO_TYPE = "netinst"
|
||||
SRC_URI = "https://cdimage.debian.org/mirror/cdimage/archive/${PV}/arm64/iso-cd/debian-${PV}-arm64-${ISO_TYPE}.iso;unpack=0;downloadfilename=${ISO_IMAGE_NAME}.iso"
|
||||
SRC_URI[sha256sum] = "d32d2c63350a932dc0d9d45665985b41413f9e01efc0eacbea981d435f553d3d"
|
||||
PV = "12.8.0"
|
||||
SRC_URI = "\
|
||||
https://cdimage.debian.org/mirror/cdimage/archive/12.8.0/arm64/iso-dvd/debian-12.8.0-arm64-DVD-1.iso;unpack=0;downloadfilename=${ISO_IMAGE_NAME}.iso;name=debian_iso_image \
|
||||
file://unattended-boot-conf/Debian/preseed.cfg \
|
||||
"
|
||||
SRC_URI[debian_iso_image.sha256sum] = "8891fe48bb5a58ae54176eaa6440059bf852044d6b9ae77219e78f9ef8d65149"
|
||||
|
||||
TEST_SUITES = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "arm_systemready_debian_unattended", "", d)}"
|
||||
|
||||
ISO_LABEL = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "debian-12.8.0-arm64-1", "", d)}"
|
||||
BOOT_CATALOG = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "boot.catalog", "", d)}"
|
||||
BOOT_IMAGE = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "EFI/boot/bootaa64.efi", "", d)}"
|
||||
EFI_IMAGE = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "boot/grub/efi.img", "", d)}"
|
||||
|
||||
modifyiso() {
|
||||
UNATTENDED_CONF_DIR="${UNPACKDIR}/unattended-boot-conf/Debian"
|
||||
|
||||
# Append the preseed.cfg file to the initrd
|
||||
gunzip ${EXTRACTED_ISO_TEMP_DIR}/install.a64/initrd.gz
|
||||
(cd ${UNATTENDED_CONF_DIR} && echo preseed.cfg | cpio -H newc -o -A -F ${EXTRACTED_ISO_TEMP_DIR}/install.a64/initrd)
|
||||
gzip ${EXTRACTED_ISO_TEMP_DIR}/install.a64/initrd
|
||||
|
||||
#GRUB
|
||||
# Disable timeout
|
||||
sed -i '/^insmod gzio/ a set timeout=0' ${EXTRACTED_ISO_TEMP_DIR}/boot/grub/grub.cfg
|
||||
|
||||
# Update default menu entry to select automated install
|
||||
sed -i '/^set timeout/ a set default="2>5"' ${EXTRACTED_ISO_TEMP_DIR}/boot/grub/grub.cfg
|
||||
|
||||
# Update kernel boot parameters to enable more text based console output
|
||||
sed -i 's|linux /install.a64/vmlinuz auto=true priority=critical --- quiet|linux /install.a64/vmlinuz auto=true priority=critical DEBIAN_FRONTEND=text --- nomodeset|g' ${EXTRACTED_ISO_TEMP_DIR}/boot/grub/grub.cfg
|
||||
}
|
||||
|
||||
+6
-3
@@ -106,11 +106,14 @@ BOOT_IMAGE = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "EFI/BOOT/BOOT
|
||||
EFI_IMAGE = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "images/efiboot.img", "", d)}"
|
||||
|
||||
PV = "39.1.5"
|
||||
SRC_URI = "https://download.fedoraproject.org/pub/fedora/linux/releases/39/Server/aarch64/iso/Fedora-Server-dvd-aarch64-39-1.5.iso;unpack=0;downloadfilename=${ISO_IMAGE_NAME}.iso"
|
||||
SRC_URI[sha256sum] = "d19dc2a39758155fa53e6fd555d0d173ccc8175b55dea48002d499f39cb30ce0"
|
||||
SRC_URI = "\
|
||||
https://download.fedoraproject.org/pub/fedora/linux/releases/39/Server/aarch64/iso/Fedora-Server-dvd-aarch64-39-1.5.iso;unpack=0;downloadfilename=${ISO_IMAGE_NAME}.iso;name=fedora_iso_image \
|
||||
file://unattended-boot-conf/Fedora/ks.cfg\
|
||||
"
|
||||
SRC_URI[fedora_iso_image.sha256sum] = "d19dc2a39758155fa53e6fd555d0d173ccc8175b55dea48002d499f39cb30ce0"
|
||||
|
||||
modifyiso() {
|
||||
UNATTENDED_CONF_DIR="${THISDIR}/unattended-boot-conf/Fedora"
|
||||
UNATTENDED_CONF_DIR="${UNPACKDIR}/unattended-boot-conf/Fedora"
|
||||
|
||||
cp "${UNATTENDED_CONF_DIR}/ks.cfg" ${EXTRACTED_ISO_TEMP_DIR}
|
||||
sed -i 's/set default="1"/set default="0"/g' "${EXTRACTED_ISO_TEMP_DIR}/EFI/BOOT/grub.cfg"
|
||||
|
||||
+6
-3
@@ -70,8 +70,11 @@ PV = "15.5"
|
||||
# possible value of ISO_TYPE: NET, DVD
|
||||
ISO_TYPE = "DVD"
|
||||
BUILD_NO = "491.1"
|
||||
SRC_URI = "https://download.opensuse.org/distribution/leap/${PV}/iso/openSUSE-Leap-${PV}-${ISO_TYPE}-aarch64-Build${BUILD_NO}-Media.iso;unpack=0;downloadfilename=${ISO_IMAGE_NAME}.iso"
|
||||
SRC_URI[sha256sum] = "456cc4f99b044429d8a89bd302c06e9e382d6ac4dc590139a7096ebb54f5357b"
|
||||
SRC_URI = "\
|
||||
https://download.opensuse.org/distribution/leap/${PV}/iso/openSUSE-Leap-${PV}-${ISO_TYPE}-aarch64-Build${BUILD_NO}-Media.iso;unpack=0;downloadfilename=${ISO_IMAGE_NAME}.iso;name=opensuse_iso_image \
|
||||
file://unattended-boot-conf/openSUSE/autoinst.xml \
|
||||
"
|
||||
SRC_URI[opensuse_iso_image.sha256sum] = "456cc4f99b044429d8a89bd302c06e9e382d6ac4dc590139a7096ebb54f5357b"
|
||||
|
||||
TEST_SUITES = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "arm_systemready_opensuse_unattended", "", d)}"
|
||||
|
||||
@@ -81,7 +84,7 @@ BOOT_IMAGE = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "EFI/BOOT/boot
|
||||
EFI_IMAGE = "${@oe.utils.vartrue("DISTRO_UNATTENDED_INST_TESTS", "boot/aarch64/efi", "", d)}"
|
||||
|
||||
modifyiso() {
|
||||
UNATTENDED_CONF_DIR="${THISDIR}/unattended-boot-conf/openSUSE"
|
||||
UNATTENDED_CONF_DIR="${UNPACKDIR}/unattended-boot-conf/openSUSE"
|
||||
|
||||
#create installation configuration files, remove grub timeout, setup network
|
||||
cp "${UNATTENDED_CONF_DIR}/autoinst.xml" ${EXTRACTED_ISO_TEMP_DIR}
|
||||
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
# Preconfiguration file for Debian unattended installation
|
||||
|
||||
# Enable auto mode
|
||||
d-i auto-install/enable boolean true
|
||||
d-i debconf/priority select critical
|
||||
|
||||
# Set language, country and locale
|
||||
d-i debian-installer/language string en
|
||||
d-i debian-installer/country string GB
|
||||
d-i debian-installer/locale string en_GB.UTF-8
|
||||
d-i keyboard-configuration/xkb-keymap select us
|
||||
|
||||
# Set clock and timezone
|
||||
d-i clock-setup/utc boolean true
|
||||
d-i time/zone select Europe/London
|
||||
|
||||
# Skip installing recommended packages
|
||||
d-i base-installer/install-recommends boolean false
|
||||
|
||||
# Set user and password
|
||||
d-i passwd/root-login boolean false
|
||||
d-i passwd/user-fullname string user
|
||||
d-i passwd/username string user
|
||||
d-i passwd/user-password password unsafe
|
||||
d-i passwd/user-password-again password unsafe
|
||||
|
||||
# Disable CD-ROM and set mirror
|
||||
d-i apt-setup/cdrom/set-first boolean false
|
||||
d-i mirror/country string manual NO
|
||||
d-i mirror/http/proxy string
|
||||
|
||||
# Disable mirror selection
|
||||
d-i apt-setup/no_mirror boolean true
|
||||
d-i popularity-contest/participate boolean false
|
||||
|
||||
# Skip package selection and upgrades
|
||||
d-i pkgsel/run_tasksel boolean false
|
||||
d-i pkgsel/upgrade select none
|
||||
|
||||
# Ensure the 'dbus' package is installed
|
||||
d-i pkgsel/include string dbus
|
||||
|
||||
# Set host and domain names
|
||||
d-i netcfg/get_hostname string debtest
|
||||
d-i netcfg/get_domain string unassigned-domain
|
||||
|
||||
# Partitioning
|
||||
d-i partman-auto/disk string /dev/vda
|
||||
d-i partman-auto/init_automatically_partition select Guided - use entire disk
|
||||
d-i partman-auto/choose_recipe select All files in one partition (recommended for new users)
|
||||
d-i partman-auto/method string regular
|
||||
d-i partman/confirm_write_new_label boolean true
|
||||
d-i partman/choose_partition select finish
|
||||
d-i partman/confirm boolean true
|
||||
d-i partman/confirm_nooverwrite boolean true
|
||||
|
||||
# Install GRUB bootloader
|
||||
d-i grub-installer/only_debian boolean true
|
||||
d-i grub-installer/bootdev string /dev/vda
|
||||
d-i grub-installer/bootloader-id string debian
|
||||
d-i grub-installer/efi-directory string /boot/efi
|
||||
|
||||
# Handle errors automatically
|
||||
d-i debian-installer/exit-on-error boolean true
|
||||
|
||||
# Late command to install GRUB and finalize boot setup
|
||||
d-i preseed/late_command string \
|
||||
mount /dev/vda1 /target/boot/efi || true; \
|
||||
in-target mkdir -p /boot/efi/EFI/boot || true; \
|
||||
in-target grub-install --target=arm64-efi --efi-directory=/boot/efi --bootloader-id=debian --removable || true; \
|
||||
in-target update-grub || true; \
|
||||
umount /target/boot/efi || true
|
||||
|
||||
# Reboot after installation
|
||||
d-i finish-install/reboot_in_progress note
|
||||
@@ -57,7 +57,7 @@ class ConsolePortParser:
|
||||
while True:
|
||||
try:
|
||||
line = next(self._lines).strip().decode(errors='ignore')
|
||||
m = re.match(r"^(\S+): Listening for serial connection on port (\d+)$", line)
|
||||
m = re.search(r"(\S+): Listening for serial connection on port (\d+)$", line)
|
||||
if m:
|
||||
matched_console = m.group(1)
|
||||
matched_port = int(m.group(2))
|
||||
|
||||
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba
|
||||
file://license_terms/third_party_licenses/arm_license_management_utilities/third_party_licenses.txt;md5=abcaafefc7b7a0cdf6664c51f9075c5b"
|
||||
|
||||
|
||||
SRC_URI = "https://developer.arm.com/-/cdn-downloads/permalink/Fixed-Virtual-Platforms/${PV_URL_SHORT}/${MODEL_CODE}_${PV_URL}_${FVP_ARCH}.tgz;subdir=${BP};name=fvp-${HOST_ARCH}"
|
||||
SRC_URI = "https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Architecture/${PV_URL_SHORT}/${MODEL_CODE}_${PV_URL}_${FVP_ARCH}.tgz;subdir=${BP};name=fvp-${HOST_ARCH}"
|
||||
SRC_URI[fvp-aarch64.sha256sum] = "0a262327073d410146a6689c068162f60e72f45845734650b08a1d45483853ca"
|
||||
SRC_URI[fvp-x86_64.sha256sum] = "a314f0f8c55492b70ab469fbbe2bb71ab8bb7c7ae4608ed1c432d8de8f4edb27"
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ OECMAKE_SOURCEPATH="${S}/deployments/fwu/config/${TS_SP_FWU_CONFIG}-${TS_ENV}"
|
||||
|
||||
# The GPT parser component is needed from TF-A
|
||||
SRC_URI += "git://git.trustedfirmware.org/TF-A/trusted-firmware-a.git;name=tfa;protocol=https;branch=master;destsuffix=git/tf-a"
|
||||
SRCREV_tfa = "v2.7.0"
|
||||
SRCREV_tfa = "35f4c7295bafeb32c8bcbdfb6a3f2e74a57e732b"
|
||||
LIC_FILES_CHKSUM = "file://../tf-a/docs/license.rst;md5=b2c740efedc159745b9b31f88ff03dde"
|
||||
do_apply_local_src_patches:append() {
|
||||
apply_local_src_patches ${S}/external/tf_a ${WORKDIR}/git/tf-a
|
||||
|
||||
Reference in New Issue
Block a user