Project

General

Profile

Actions

Feature #4301

closed

set up raspi4 build slave for jenkins

Added by laforge over 4 years ago. Updated about 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
12/03/2019
Due date:
% Done:

100%

Spec Reference:

Description

given the long standing OS#3061 and lack of progress in upstream, we decided to avoid cross-compilation and add a raspi4 based build slave to jenkins.

I ordered a raspi4 with 4GB and 64GB high-performance uSD card as well as a power supply and a large heatsink with fan.

Please assemble the unit and install raspbian 10 on it. I would argue it could go in our enclosd 19" rack next to the firewall, in the "osmocom jenkins reachable" vlan.

Once there is my ssh key on it, I'm happy to try running our normal build-slave ansible playbook against it and check if any x86/arm specifics need t obe ironed out there.


Checklist

  • physical assembly of unit
  • installation of raspbian 10
  • connection to osmocom-jenkins-vlan (record IP address here)
  • installation of build dependencies (try ansible)
  • integration as slave with jenkins

Related issues

Related to OsmoTRX - Bug #3061: OsmoTRX ARM chroot build jobs failing due to proot bugNewpespin03/13/2018

Actions
Actions #1

Updated by laforge over 4 years ago

  • Related to Bug #3061: OsmoTRX ARM chroot build jobs failing due to proot bug added
Actions #2

Updated by laforge over 4 years ago

  • Checklist item physical assembly of unit set to Done
  • Checklist item installation of raspbian 10 set to Done
  • Status changed from New to In Progress
  • % Done changed from 0 to 50

unit has been assembled; raspi 10 image with default password is installed. Please take it from there, it's on your desk.

Actions #3

Updated by roh over 4 years ago

  • % Done changed from 50 to 60

installed in the back room as 10.9.25.50/24

Actions #4

Updated by roh over 4 years ago

  • Checklist item connection to osmocom-jenkins-vlan (record IP address here) set to Done
Actions #5

Updated by roh over 4 years ago

  • Assignee changed from roh to laforge
Actions #6

Updated by laforge about 4 years ago

I've added a debian9 lxc container (deb9build-ansible) just like on the other (x86) slaves, it is reachable at 10.9.25.51.

The playbook is currently being installed. let's see how it goes. If I can make it complete, we can add it as a new build slave to jenkins. However, we must be careful to ensure not every random build job ends up on this slave. We will have docker etc. available, but I'm sure we don't want to start building everything on that poor little machine.

pespin, it will be up to you to make use of this new slave, IIRC this was about building osmo-trx or osmo-bts-trx?

I'll update this ticket once my ansible-playbook-deployment looks complete.

Actions #7

Updated by laforge about 4 years ago

  • Checklist item installation of build dependencies (try ansible) set to Done
  • Checklist item integration as slave with jenkins set to Done
  • Assignee changed from laforge to pespin

The slave is now reachable from jenkins, see https://jenkins.osmocom.org/jenkins/computer/rpi4-deb9build-ansible/ - handing over to pespin

Actions #8

Updated by pespin about 4 years ago

  • % Done changed from 60 to 80

I did set up the missing parts to have osmo-trx being checked in
osmo-trx on armv7l required a few fixes related to compiler warnings/errors:
remote: https://gerrit.osmocom.org/c/libusrp/+/17224 m4/ax_boost_base.m4: Update to newest version from autoconf-archive
remote: https://gerrit.osmocom.org/c/libusrp/+/17225 m4/ax_boost_base.m4: Fix debian multiarch_libsubdir path for arch armv7l

I also needed to fix libusrp to build on armv7l:
https://gerrit.osmocom.org/c/libusrp/+/17225

I was side-tracked for a while due to PATH not containing $HOME/bin in RPI4, since it needed ajekins node UI option adding the the PATH=$HOME/bin. I tried moving that to ansible with .ssh/environment or ~/.pam_environment without success.

ansible job changes:
remote: https://gerrit.osmocom.org/c/osmo-ci/+/17228 job: Update master and gerrit osmo-trx jobs to also build on ARM platform
remote: https://gerrit.osmocom.org/c/osmo-ci/+/17229 hosts: Add rpi4-deb9build-ansible

I have master-osmo-trx job pulling from a branch of mine with those fixes applied until they are merged to avoid it failing all the time.
once merged, I'll also update gerrit-osmo-trx job with the jenkins-job-builder changes

TODO:
  • Build osmo-bts-trx on ARM.
  • Change master-osmo-trx job to pull from master
  • Deploy changes to gerrit-osmo-trx.
Actions #9

Updated by pespin about 4 years ago

gerrit-osmo-trx is building now on raspi4 too.
master-osmo-bts and gerrit-osmo-bts too.

TODO:
  • master-osmo-pcu and gerrit-osmo-pcu (currently master fails due to "docker login" not done yet in raspi4).
Actions #10

Updated by pespin about 4 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 80 to 100

Done since the osmo-pcu failing test has been fixed as part of #4420.

osmo-trx, osmo-bts and osmo-pcu master and gerrit builds are being run in RPI4 slave too now. jenkins jobs have been updated with jenkins-job-builder.

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)