RageLtMan c0365df3ca T6231: Mellanox OFED Kernel and Userspace Packages
Build OFED drivers and userspace components against the kernel
source tree similar to Intel's NIC drivers.

OFED installers create Debian packages of their own tageting the
kernel version defined in the build invocation if DKMS is omitted.
Script builds with supporting components for VPP to permit handoff
of function to the underlying hardware as appropriate. Updating the
version is fairly trivial along with adding patching as needed to
handle kCFI and hardening measures as they are introduced.

Testing:
  Tested against GCC-built Linux Hardened kernel with the various
additions from PR 132 - sustained line-rate testing against 4x100g
links on a single machine at a hair below 200g for each LACP pair.
2024-06-21 22:45:12 -04:00

84 lines
3.1 KiB
Groovy

// Copyright (C) 2020-2024 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@current')_
def pkgList = [
// The Linux Kernel
['name': 'kernel',
'buildCmd': '''
# all scripts must be executed one level above ...
cd ..
# read the required Kernel version
KERNEL_VER=\$(cat ../../data/defaults.toml | tomlq -r .kernel_version)
gpg2 --locate-keys torvalds@kernel.org gregkh@kernel.org
curl -OL https://www.kernel.org/pub/linux/kernel/v6.x/linux-${KERNEL_VER}.tar.xz
curl -OL https://www.kernel.org/pub/linux/kernel/v6.x/linux-${KERNEL_VER}.tar.sign
xz -cd linux-${KERNEL_VER}.tar.xz | gpg2 --verify linux-${KERNEL_VER}.tar.sign -
if [ $? -ne 0 ]; then
exit 1
fi
# Unpack Kernel source
tar xf linux-${KERNEL_VER}.tar.xz
ln -s linux-${KERNEL_VER} linux
# ... Build Kernel
./build-kernel.sh
'''],
// Firmware
['name': 'linux-firmware', 'scmCommit': '20231211',
'scmUrl': 'https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git',
'buildCmd': 'cd ..; ./build-linux-firmware.sh'],
// Accel-PPP
['name': 'accel-ppp', 'scmCommit': '1.13.0',
'scmUrl': 'https://github.com/accel-ppp/accel-ppp.git',
'buildCmd': 'cd ..; pwd; ls -al; ./build-accel-ppp.sh'],
// Intel QAT
['name': 'qat', 'buildCmd': 'cd ..; ./build-intel-qat.sh'],
// Intel IXGBE
['name': 'ixgbe', 'buildCmd': 'cd ..; ./build-intel-ixgbe.sh'],
// Intel IXGBEVF
['name': 'ixgbevf', 'buildCmd': 'cd ..; ./build-intel-ixgbevf.sh'],
// Mellanox OFED
['name': 'ofed', 'buildCmd': 'cd ..; ./build-mellanox-ofed.sh'],
// Jool
['name': 'jool', 'buildCmd': 'cd ..; ./build-jool.py'],
// OpenVPN DCO
['name': 'ovpn-dco','scmCommit': 'v0.2.20231117',
'scmUrl': 'https://github.com/OpenVPN/ovpn-dco',
'buildCmd': 'cd ..; ./build-openvpn-dco.sh'],
// RTSP netfilter helper
['name': 'nat-rtsp', 'scmCommit': '475af0a',
'scmUrl': 'https://github.com/maru-sama/rtsp-linux.git',
'buildCmd': 'cd ..; ./build-nat-rtsp.sh'],
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('Kernel', pkgList, null, true, "**/packages/linux-kernel/**")