Compare commits
11 Commits
c5f41a4e5e
...
6547b2b303
Author | SHA1 | Date |
---|---|---|
|
6547b2b303 | |
|
47ddc1e834 | |
|
ddbcf00ce5 | |
|
c6f49ef037 | |
|
f8d6666e2b | |
|
29ed6cc935 | |
|
00eea4da52 | |
|
39d22f0e0a | |
|
7c0a899500 | |
|
2fb6271d38 | |
|
c1398d86aa |
11
Config.in
11
Config.in
|
@ -10,6 +10,9 @@ config AIMEEOS
|
|||
select BR2_PACKAGE_COREUTILS
|
||||
select BR2_PACKAGE_TAR
|
||||
select BR2_PACKAGE_ZSTD
|
||||
select BR2_PACKAGE_HOST_DOSFSTOOLS
|
||||
select BR2_PACKAGE_HOST_GENIMAGE
|
||||
select BR2_PACKAGE_HOST_MTOOLS
|
||||
select BR2_TARGET_GRUB2
|
||||
select BR2_PACKAGE_HOST_ZSTD
|
||||
help
|
||||
|
@ -25,8 +28,10 @@ config AIMEEOS_RPI
|
|||
select BR2_TARGET_UBOOT_NEEDS_OPENSSL
|
||||
select BR2_TARGET_UBOOT_NEEDS_GNUTLS
|
||||
select BR2_TARGET_GRUB2_ARM_EFI
|
||||
select BR2_PACKAGE_HOST_DOSFSTOOLS
|
||||
select BR2_PACKAGE_HOST_GENIMAGE
|
||||
select BR2_PACKAGE_HOST_MTOOLS
|
||||
help
|
||||
Support running Aimee OS on Rasperry Pi devices
|
||||
|
||||
config AIMEEOS_DEFAULT_ROOTFLAGS
|
||||
string "Default kernel command line argumens"
|
||||
help
|
||||
Additional command line arguments to pass to the kernel by default.
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../raspberrypi3/genimage.cfg
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
BOARD_DIR=$(dirname "$0")
|
||||
|
||||
genimage_tmp=$(mktemp -d)
|
||||
trap 'rm -rf "${genimage_tmp}"' EXIT
|
||||
|
||||
mkdir -p "${genimage_tmp}"/rootfs "${genimage_tmp}"/tmp
|
||||
|
||||
cd "${BINARIES_DIR}"
|
||||
genimage \
|
||||
--rootpath "${genimage_tmp}/rootfs" \
|
||||
--tmppath "${genimage_tmp}/tmp" \
|
||||
--inputpath "${BINARIES_DIR}" \
|
||||
--outputpath "${BINARIES_DIR}" \
|
||||
--config "${BOARD_DIR}"/genimage.cfg
|
|
@ -3,10 +3,11 @@
|
|||
|
||||
vers=${BR2_EXTERNAL_AIMEEOS_VERSION}
|
||||
br2_vers=${BR2_VERSION_FULL}
|
||||
kernel_filename=$1
|
||||
|
||||
cat > "${TARGET_DIR}"/boot/grub.cfg <<EOF
|
||||
menuentry "Aimee OS ${vers} (Buildroot ${br2_vers}) on \$dev" --class gnu-linux --id "id-\$partuuid" "\$dev" "\$partuuid" {
|
||||
set root="\$2"
|
||||
linux "/boot/zImage" root=PARTUUID=\$3 ro
|
||||
linux "/boot/${kernel_filename}" root=PARTUUID=\$3 ro \$rootflags
|
||||
}
|
||||
EOF
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# vim: set ft=sh :
|
||||
# vim: set sw=4 ts=4 sts=4 et:
|
||||
|
||||
terminfo dumb
|
||||
|
||||
load_env
|
||||
regexp --set 1:disk '(.*),.*' $root
|
||||
for dev in ($disk,gpt*); do
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
pipeline {
|
||||
parameters {
|
||||
booleanParam 'CLEAN_BUILD'
|
||||
string 'CUSTOM_TARGET'
|
||||
}
|
||||
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
}
|
||||
|
||||
agent {
|
||||
kubernetes {
|
||||
yamlFile 'ci/podTemplate.yaml'
|
||||
yamlMergeStrategy merge()
|
||||
workspaceVolume persistentVolumeClaimWorkspaceVolume(
|
||||
claimName: 'buildroot-aimeeos'
|
||||
)
|
||||
defaultContainer 'build'
|
||||
}
|
||||
}
|
||||
|
||||
environment {
|
||||
BR2_CCACHE_DIR = "${env.JENKINS_AGENT_WORKDIR}/br2-ccache"
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Clean') {
|
||||
when {
|
||||
expression {
|
||||
return params.CLEAN_BUILD
|
||||
}
|
||||
}
|
||||
steps {
|
||||
sh 'git clean -fdx'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Prepare') {
|
||||
steps {
|
||||
container('jnlp') {
|
||||
sh 'if [ ! -d buildroot ]; then git clone https://gitlab.com/buildroot.org/buildroot.git -b 2025.05.x --depth 1; else git -C buildroot pull; fi'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh 'make -C buildroot O="${PWD}"/_build BR2_EXTERNAL="${PWD}" aimeeos_qemu_aarch64_defconfig'
|
||||
script {
|
||||
if (params.CUSTOM_TARGET) {
|
||||
sh "make -C _build '${CUSTOM_TARGET}'"
|
||||
}
|
||||
}
|
||||
sh 'make -C _build'
|
||||
}
|
||||
post {
|
||||
success {
|
||||
dir('_build') {
|
||||
archiveArtifacts('.config')
|
||||
}
|
||||
dir('_build/images') {
|
||||
sh 'zstd -f firmware.img'
|
||||
sh 'zstd -f sdcard.img'
|
||||
archiveArtifacts([
|
||||
'firmware.img.zst',
|
||||
'rootfs.squashfs',
|
||||
'sdcard.img.zst',
|
||||
].join(','))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
spec:
|
||||
containers:
|
||||
- name: build
|
||||
image: git.pyrocufflink.net/containerimages/buildroot
|
||||
resources:
|
||||
limits: &resources
|
||||
cpu: 6
|
||||
memory: 12Gi
|
||||
requests: *resources
|
||||
volumeMounts:
|
||||
- mountPath: /etc/ssh/ssh_known_hosts
|
||||
name: ssh-known-hosts
|
||||
subPath: ssh_known_hosts
|
||||
securityContext:
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
volumes:
|
||||
- name: ssh-known-hosts
|
||||
configMap:
|
||||
name: ssh-known-hosts
|
|
@ -0,0 +1,20 @@
|
|||
BR2_aarch64=y
|
||||
BR2_TOOLCHAIN_BUILDROOT_VENDOR="aimeeos"
|
||||
BR2_GLOBAL_PATCH_DIR="board/qemu/patches"
|
||||
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
|
||||
BR2_INIT_SYSTEMD=y
|
||||
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_AIMEEOS_PATH)/board/qemu/post-image.sh"
|
||||
# BR2_INIT_SYSTEMD_POPULATE_TMPFILES is not set
|
||||
# BR2_TARGET_ENABLE_ROOT_LOGIN is not set
|
||||
# BR2_TARGET_GENERIC_GETTY is not set
|
||||
# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_AIMEEOS_PATH)/kernel/config"
|
||||
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
|
||||
# BR2_PACKAGE_BUSYBOX is not set
|
||||
# BR2_TARGET_ROOTFS_TAR is not set
|
||||
AIMEEOS=y
|
||||
AIMEEOS_DEFAULT_ROOTFLAGS="systemd.mask=serial-getty@ttyAMA0 systemd.debug_shell systemd.default_debug_tty=ttyAMA0"
|
||||
BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot configfile echo efi_gop fat gzio linux loadenv minicmd normal part_gpt probe regexp squash4 terminfo test zstd"
|
|
@ -23,7 +23,7 @@ BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y
|
|||
BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE="$(BR2_EXTERNAL_AIMEEOS_PATH)/board/raspberrypi3/cmdline.txt"
|
||||
BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="$(BR2_EXTERNAL_AIMEEOS_PATH)/board/raspberrypi3/config.txt"
|
||||
# BR2_TARGET_ROOTFS_TAR is not set
|
||||
BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot configfile echo efi_gop fat gzio linux loadenv minicmd normal part_gpt probe regexp squash4 test zstd"
|
||||
BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot configfile echo efi_gop fat gzio linux loadenv minicmd normal part_gpt probe regexp squash4 terminfo test zstd"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b"
|
||||
BR2_PACKAGE_HOST_KMOD_XZ=y
|
||||
AIMEEOS=y
|
||||
|
|
18
external.mk
18
external.mk
|
@ -3,11 +3,27 @@ define AIMEEOS_GRUB2_INSTALL_IMAGES_CMDS
|
|||
$(foreach tuple, $(GRUB2_TUPLES-y), \
|
||||
$(INSTALL) -D -m 0644 $(BR2_EXTERNAL_AIMEEOS_PATH)/boot/grub2/grub.cfg $(GRUB2_CFG_$(tuple))
|
||||
)
|
||||
$(HOST_DIR)/bin/grub-editenv $(BINARIES_DIR)/efi-part/EFI/BOOT/grubenv set \
|
||||
default=0 \
|
||||
timeout=3 \
|
||||
rootflags=$(AIMEEOS_DEFAULT_ROOTFLAGS)
|
||||
endef
|
||||
GRUB2_INSTALL_IMAGES_CMDS += $(AIMEEOS_GRUB2_INSTALL_IMAGES_CMDS)
|
||||
|
||||
ifneq ($(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),)
|
||||
AIMEEOS_KERNEL_FILENAME = $(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM)
|
||||
else ifeq ($(BR2_LINUX_KERNEL_IMAGE),y)
|
||||
AIMEEOS_KERNEL_FILENAME = Image
|
||||
else ifeq ($(BR2_LINUX_KERNEL_IMAGEZ),y)
|
||||
AIMEEOS_KERNEL_FILENAME = zImage
|
||||
else ifeq ($(BR2_LINUX_KERNEL_VMLINUX),y)
|
||||
AIMEEOS_KERNEL_FILENAME = vmlinux
|
||||
else
|
||||
$(error "Must define a Linux kernel target")
|
||||
endif
|
||||
|
||||
# Generate the grub.cfg stub for the kernel embedded in rootfs.squashfs
|
||||
define AIMEEOS_GEN_GRUB_CFG
|
||||
$(BR2_EXTERNAL_AIMEEOS_PATH)/boot/grub2/gen-grub-cfg.sh
|
||||
$(BR2_EXTERNAL_AIMEEOS_PATH)/boot/grub2/gen-grub-cfg.sh $(AIMEEOS_KERNEL_FILENAME)
|
||||
endef
|
||||
LINUX_TARGET_FINALIZE_HOOKS += AIMEEOS_GEN_GRUB_CFG
|
||||
|
|
Loading…
Reference in New Issue