Skip to content

Commit

Permalink
fix amd64 images
Browse files Browse the repository at this point in the history
  • Loading branch information
thir820 committed Aug 9, 2024
1 parent 409411c commit 8c8c5c9
Show file tree
Hide file tree
Showing 11 changed files with 124 additions and 68 deletions.
8 changes: 0 additions & 8 deletions images/amd64/qemu/ebcl/systemd/berrymill/root.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
# Config to use as a base
base: ../root.yaml
# APT repo for kiwi build
apt_repos:
- apt_repo: http://archive.ubuntu.com/ubuntu
distro: jammy
components:
- main
- universe
gpg: /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg
# Add the EB corbos Linux apt repo to provide the boostrap package
use_ebcl_apt: true
# Overwrite the image builder type - ensure kiwi is used
Expand Down
16 changes: 0 additions & 16 deletions images/amd64/qemu/ebcl/systemd/elbe/image.yaml

This file was deleted.

5 changes: 3 additions & 2 deletions images/amd64/qemu/ebcl/systemd/root.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ name: ebcl
arch: amd64
# Packages to install in the root tarball
packages:
- crinit
- crinit-ctl
- systemd
- udev
- util-linux
# Scripts to configure the root tarball
scripts:
- name: config_root.sh # Name of the script, relative path to this file
env: chfake # Type of execution environment - chfake means fakechroot
base_dir: ..
74 changes: 42 additions & 32 deletions images/amd64/qemu/jammy/kernel_src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,25 +30,6 @@ config_root = ../config_root.sh
# QEMU kernel commandline
kernel_cmdline_append = "rw"

# for building
include ../../../../qemu.mk

# for running QEMU
include ../../../../qemu_x86_64.mk

#--------------------
# Generated artefacts
#--------------------

# Kernel image
kernel = build/vmlinux
# Kernel modules
modules = build/lib
# Kernel config
kconfig = build/config
# Kernel source
source = kernel

#--------------------
# Generated artefacts
#--------------------
Expand All @@ -57,7 +38,7 @@ source = kernel
disc_image = $(result_folder)/image.raw

# Base root tarball
base_tarball = $(result_folder)/ubuntu.tar.xz
base_tarball = $(result_folder)/ubuntu.tar

# Configured root tarball
root_tarball = $(result_folder)/ubuntu.config.tar
Expand All @@ -66,11 +47,32 @@ root_tarball = $(result_folder)/ubuntu.config.tar
initrd_img = $(result_folder)/initrd.img

# Kernel image
kernel = $(result_folder)/vmlinuz
kernel = $(result_folder)/vmlinux

# Sysroot tarball
sysroot_tarball = $(result_folder)/ubuntu_sysroot.tar

# Kernel modules
modules = $(result_folder)/lib

# Kernel config
kconfig = $(result_folder)/config

# Kernel source
source = kernel

# Path of the kernel sources
kernel_dir = $(source)/linux-5.15.0

#-----------------------
# Include base makefiles
#-----------------------

# for building
include ../../../../qemu.mk

# for running QEMU
include ../../../../qemu_x86_64.mk

#--------------------
# Helper make targets
Expand All @@ -79,19 +81,19 @@ sysroot_tarball = $(result_folder)/ubuntu_sysroot.tar
# Rebuild the kernel binary
.PHONY: rebuild_kernel
rebuild_kernel:
mkdir -p build
mkdir -p $(result_folder)
cd kernel/linux-5.15.0 && $(MAKE) -j 16
rm -f build/vmlinux
cp kernel/linux-5.15.0/vmlinux build/vmlinux

# Rebuild the kernel modules
.PHONY: rebuild_modules
rebuild_modules: kernel
mkdir -p build
mkdir -p $(result_folder)
cd kernel/linux-5.15.0 && $(MAKE) modules -j 16
cd kernel/linux-5.15.0 && chmod +x debian/scripts/sign-module
rm -rf build/lib
cd kernel/linux-5.15.0 && INSTALL_MOD_PATH=../../build $(MAKE) modules_install
cd kernel/linux-5.15.0 && INSTALL_MOD_PATH=../.$(result_folder) $(MAKE) modules_install

# clean - delete the generated artefacts
.PHONY: clean
Expand All @@ -114,8 +116,8 @@ $(modules): $(kernel)
@echo "Get virtio driver..."
cd kernel/linux-5.15.0 && $(MAKE) modules -j 16
cd kernel/linux-5.15.0 && chmod +x debian/scripts/sign-module
mkdir -p build
cd kernel/linux-5.15.0 && INSTALL_MOD_PATH=../../build $(MAKE) modules_install
mkdir -p $(result_folder)
cd kernel/linux-5.15.0 && INSTALL_MOD_PATH=../.$(result_folder) $(MAKE) modules_install

$(source):
@echo "Get kernel sources..."
Expand All @@ -125,12 +127,20 @@ $(source):
cd kernel/linux-5.15.0 && chmod +x scripts/*.sh

$(kconfig): $(boot_spec) $(source)
@echo "Get kernel config..."
mkdir -p build
set -o pipefail && boot_generator ../boot.yaml ./build 2>&1 | tee build/$(kconfig).log
mv ./build/config-* ./build/config
@echo "Get kernel config as $(kconfig)..."
mkdir -p $(result_folder)
set -o pipefail && boot_generator ../boot.yaml $(result_folder) 2>&1 | tee $(kconfig).log
@echo "Renaming $(result_folder)/config-* as $(kconfig)..."
ls -lah $(result_folder)/config-*
mv $(result_folder)/config-* $(kconfig)
@echo "Copying $(kconfig) to $(kernel_dir)..."
cp $(kconfig) $(kernel_dir)/.config
@echo "Set all not defined values of the kernel config to defaults..."
cd $(kernel_dir) && $(MAKE) $(kernel_make_args) olddefconfig
@echo "Copying modified config as olddefconfig..."
cp $(kernel_dir)/.config $(result_folder)/olddefconfig

$(initrd_img): $(initrd_spec) $(modules)
@echo "Build initrd.img..."
mkdir -p build
set -o pipefail && initrd_generator $(initrd_spec) ./build 2>&1 | tee build/$(initrd_img).log
mkdir -p $(result_folder)
set -o pipefail && initrd_generator $(initrd_spec) $(result_folder) 2>&1 | tee $(initrd_img).log
2 changes: 1 addition & 1 deletion images/arm64/qemu/ebcl/systemd/berrymill/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ sysroot_tarball = $(result_folder)/ebcl_sysroot.tar
#-------------------

# QEMU kernel commandline
kernel_cmdline_append = "rw"
kernel_cmdline_append = rw

# for building
include ../../../../../qemu.mk
Expand Down
22 changes: 19 additions & 3 deletions images/arm64/qemu/ebcl/systemd/elbe/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,30 @@ config_root = ../config_root.sh
# Generated artefacts
#--------------------

# Disc image
disc_image = $(result_folder)/image.raw

# Base root tarball
base_tarball = build/ebcl.tar
base_tarball = $(result_folder)/ebcl.tar

# Configured root tarball
root_tarball = build/ebcl.config.tar
root_tarball = $(result_folder)/ebcl.config.tar

# Generated initrd.img
initrd_img = $(result_folder)/initrd.img

# Kernel image
kernel = $(result_folder)/vmlinuz

# Sysroot tarball
sysroot_tarball = build/ebcl_sysroot.tar
sysroot_tarball = $(result_folder)/ebcl_sysroot.tar

#-------------------
# Run the QEMU image
#-------------------

# QEMU kernel commandline
kernel_cmdline_append = rw

# for building
include ../../../../../qemu.mk
Expand Down
1 change: 1 addition & 0 deletions images/arm64/qemu/ebcl/systemd/root.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ packages:
scripts:
- name: config_root.sh # Name of the script, relative path to this file
env: fake # Type of execution environment - chfake means fakechroot
base_dir: ..
2 changes: 1 addition & 1 deletion images/arm64/qemu/jammy/berrymill/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ sysroot_tarball = $(result_folder)/ubuntu_sysroot.tar
#-------------------

# QEMU kernel commandline
kernel_cmdline_append = "rw"
kernel_cmdline_append = rw

# for building
include ../../../../qemu.mk
Expand Down
29 changes: 29 additions & 0 deletions images/arm64/qemu/jammy/elbe/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,35 @@ boot_spec = ../boot.yaml
# Config script for root filesystem
config_root = ../config_root.sh

#--------------------
# Generated artefacts
#--------------------

# Disc image
disc_image = $(result_folder)/image.raw

# Base root tarball
base_tarball = $(result_folder)/ubuntu.tar

# Configured root tarball
root_tarball = $(result_folder)/ubuntu.config.tar

# Generated initrd.img
initrd_img = $(result_folder)/initrd.img

# Kernel image
kernel = $(result_folder)/vmlinuz

# Sysroot tarball
sysroot_tarball = $(result_folder)/ubuntu_sysroot.tar

#-------------------
# Run the QEMU image
#-------------------

# QEMU kernel commandline
kernel_cmdline_append = rw

# for building
include ../../../../qemu.mk

Expand Down
1 change: 1 addition & 0 deletions images/arm64/qemu/jammy/root.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ packages:
scripts:
- name: config_root.sh # Name of the script, relative path to this file
env: fake # Type of execution environment - chfake means fakechroot
base_dir: ..
32 changes: 27 additions & 5 deletions robot_tests/images.robot
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
*** Settings ***
Library lib/Fakeroot.py
Library lib/CommManager.py mode=Process
Test Timeout 1800s
Test Timeout 45m

*** Test Cases ***

Expand All @@ -22,6 +22,7 @@ Build Image amd64/qemu/jammy/elbe

Build Image amd64/qemu/jammy/kernel_src
[Tags] amd64 qemu elbe jammy
[Timeout] 90m
Test Systemd Image amd64/qemu/jammy/kernel_src

Build Image amd64/qemu/jammy/kiwi
Expand Down Expand Up @@ -66,16 +67,32 @@ Build Image arm64/qemu/ebcl/systemd/elbe
#==================================
Build Image example-old-images/qemu/berrymill
[Tags] amd64 qemu berrymill kiwi ebcl old
[Timeout] 1h
Test Systemd Image example-old-images/qemu/berrymill root.qcow2

Build Image example-old-images/qemu/elbe/amd64
[Tags] amd64 qemu elbe jammy old
[Timeout] 1h
Test Systemd Image example-old-images/qemu/elbe/amd64 root.img

Build Image example-old-images/qemu/elbe/arm64
[Tags] arm64 qemu elbe jammy old
[Timeout] 1h
Test Systemd Image example-old-images/qemu/elbe/arm64 root.img

#======================
# Tests for RDB2 images
#======================
Build Image arm64/nxp/rdb2/systemd
[Tags] arm64 rdb2 hardware elbe ebcl
Test Hardware Image arm64/nxp/rdb2/systemd

Build Image arm64/nxp/rdb2/kernel_src
[Tags] arm64 rdb2 hardware elbe ebcl
Test Hardware Image arm64/nxp/rdb2/kernel_src



*** Keywords ***
Build Image
[Arguments] ${path} ${image}=image.raw
Expand All @@ -90,23 +107,28 @@ Build Image

Run Image
[Arguments] ${path} ${image}=image.raw
[Timeout] 120s
[Timeout] 2m
${full_path}= Evaluate '/workspace/images/' + $path
Send Message cd ${full_path}
Send Message make qemu
${success}= Login To Vm
Should Be True ${success}

Shutdown Systemd Image
[Timeout] 30s
[Timeout] 1m
Send Message \nsystemctl poweroff
Wait For Line Containing System Power Off
Sleep 1s

Test Systemd Image
[Arguments] ${path} ${image}=image.raw
Connect
Build Image ${path}
Run Image ${path}
Build Image ${path} ${image}
Run Image ${path} ${image}
Shutdown Systemd Image
Disconnect

Test Hardware Image
[Arguments] ${path} ${image}=image.raw
Connect
Build Image ${path} ${image}

0 comments on commit 8c8c5c9

Please sign in to comment.