| # Debian arm64 NFS, initramfs, modules and dtbs |
| |
| - job: |
| name: lava-debian-buster-arm64 |
| project-type: freestyle |
| defaults: global |
| logrotate: |
| daysToKeep: 14 |
| numToKeep: 5 |
| properties: |
| - authorization: |
| anonymous: |
| - job-read |
| - job-extended-read |
| platform-leads: |
| - job-build |
| - job-cancel |
| disabled: true |
| node: docker-stretch-amd64 |
| display-name: 'LAVA - Build ARM64 Debian Buster files' |
| wrappers: |
| - timestamps |
| builders: |
| - linaro-publish-token |
| - shell: | |
| #!/bin/bash |
| |
| mkdir out |
| cd out/ |
| echo "deb http://mirror.bytemark.co.uk/debian stretch-backports main" > stretch-backports.list |
| sudo mv stretch-backports.list /etc/apt/sources.list.d/ |
| sudo apt-get update |
| sudo DEBIAN_FRONTEND=noninteractive apt -q -y install qemu-user-static debootstrap python-guestfs |
| wget https://git.linaro.org/lava-team/refactoring.git/blob_plain/HEAD:/scripts/build-foreign-nfs.sh |
| wget https://git.linaro.org/lava-team/refactoring.git/blob_plain/HEAD:/scripts/build-foreign-image.sh |
| chmod 755 ./build-foreign-nfs.sh |
| chmod 755 ./build-foreign-image.sh |
| sudo ./build-foreign-nfs.sh -a arm64 -b /usr/bin/qemu-aarch64-static -d buster |
| sudo ./build-foreign-image.sh -a arm64 -b /usr/bin/qemu-aarch64-static -d buster |
| cd .. |
| cat > ${WORKSPACE}/out/debian-buster-arm64-readme.html <<EOF |
| <html><body><pre> |
| lava-debian-buster-arm64 build instructions |
| ======================================== |
| |
| This initramfs is built using update-initramfs inside a minimal |
| Debian Buster debootstrap chroot. The contents of the chroot is |
| then packaged up as an NFS with an empty root password. |
| |
| apt is included in the NFS, as are bash, grep, iproute2, mawk and |
| sed. The NFS uses the default init in buster: systemd. |
| |
| The Debian ARM64 kernel is a modular build and the modules |
| need to be available in the initramfs for the kernel to be |
| able to mount the NFS. The initramfs does not have DNS |
| support. |
| |
| A similar chroot is created with systemd-sysv added. The chroot is |
| unpacked into an empty ext2 primary partition of an image: |
| buster-arm64.img The UUID of the partition is available as |
| buster-arm64.img.uuid.txt and should be appended to the kernel command |
| line using the root= argument when testing the image using QEMU in |
| LAVA to ensure that the correct drive is booted. The image has |
| systemd-networkd and systemd-resolved enabled to use DHCP on the |
| primary network interface. |
| |
| When using the image and the UUID, ensure that you also use the |
| checksums to ensure that the UUID matches the files being |
| downloaded. |
| |
| https://ci.linaro.org/view/lava-ci/job/lava-debian-buster-arm64/ |
| |
| The scripts used by jenkins are available here: |
| https://git.linaro.org/lava-team/refactoring.git/tree/HEAD:/scripts |
| |
| https://git.linaro.org/ci/job/configs.git/blob/HEAD:/lava-debian-buster-arm64.yaml |
| The base system is a Debian Buster VM. |
| |
| The NFS rootfs and the image both use a prompt of "root@buster:" and |
| the same auto login details: |
| auto_login: |
| login_prompt: 'login:' |
| username: root |
| |
| </pre></body></html> |
| EOF |
| |
| # echo final location |
| echo Publishing to: http://snapshots.linaro.org/components/lava/standard/debian/buster/arm64/${BUILD_NUMBER} |
| |
| # Publish |
| test -d ${HOME}/bin || mkdir ${HOME}/bin |
| wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py |
| time python3 ${HOME}/bin/linaro-cp.py --api_version 3 out components/lava/standard/debian/buster/arm64/${BUILD_NUMBER} |
| publishers: |
| # - archive: |
| # artifacts: 'out/*' |
| - email: |
| recipients: 'neil.williams@linaro.org fathi.boudra@linaro.org' |