mirror of
https://github.com/vyos/vyos-build.git
synced 2025-10-01 20:28:40 +02:00
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.
84 lines
3.1 KiB
Groovy
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/**")
|