Initial install script
This commit is contained in:
commit
498cfd4c39
73
install_openonload.sh
Executable file
73
install_openonload.sh
Executable file
@ -0,0 +1,73 @@
|
||||
#!/bin/bash
|
||||
set -eu
|
||||
|
||||
debsrc_url="https://www.xilinx.com/content/dam/xilinx/publications/solarflare/onload/openonload/8-1-3-40/SF-122451-LS-14-OpenOnload-DEB-Release-Package.zip"
|
||||
debsrc_folder="onload-8.1.3.40"
|
||||
build_packages=(
|
||||
"debhelper"
|
||||
"devscripts"
|
||||
"gawk"
|
||||
"libcap-dev"
|
||||
"libpcap-dev"
|
||||
"python3-dev"
|
||||
)
|
||||
build_folder="$(mktemp -d)"
|
||||
build_log="$build_folder/log"
|
||||
|
||||
function log() {
|
||||
echo "-- $*"
|
||||
}
|
||||
|
||||
function cmd() {
|
||||
cmd_redirect="$* 1>> \"$build_log\" 2>&1"
|
||||
log "Running: $*"
|
||||
eval "$cmd_redirect"
|
||||
return $?
|
||||
}
|
||||
|
||||
log "Installing in $build_folder; logs available at $build_log"
|
||||
log
|
||||
|
||||
log "Installing build packages:"
|
||||
cmd sudo apt install -y "${build_packages[@]}"
|
||||
log
|
||||
|
||||
debsrc_filename="/tmp/$(basename $debsrc_url)"
|
||||
log "Retrieving OpenOnload sources:"
|
||||
cmd wget -NP /tmp "$debsrc_url"
|
||||
log
|
||||
|
||||
log "Unpacking OpenOnload sources:"
|
||||
cmd pushd "$build_folder" && \
|
||||
cmd busybox unzip "$debsrc_filename" && \
|
||||
cmd tar xf ./*.tgz && \
|
||||
cmd dpkg-source -x ./*.dsc
|
||||
log
|
||||
|
||||
log "Building OpenOnload:"
|
||||
cmd pushd "$build_folder/$debsrc_folder" && \
|
||||
cmd debuild -i -uc -us
|
||||
log
|
||||
|
||||
install_debs=("$build_folder"/*.deb)
|
||||
log "Installing OpenOnload packages:"
|
||||
cmd sudo apt install -y "${install_debs[@]}"
|
||||
log
|
||||
|
||||
log "Building OpenOnload kernel modules:"
|
||||
cmd sudo module-assistant --non-inter auto-install onload && \
|
||||
# Not mentioned in the documentation, but:
|
||||
# OpenOnload installs a module named sfc.ko, which clashes with
|
||||
# the sfc.ko provided by the OS installation.
|
||||
# To deal with this, a depmod file is also installed, which should
|
||||
# instruct the OS to load OpenOnload's version.
|
||||
# However, unless depmod is re-run after installation, OpenOnload will fail
|
||||
# to load, citing "symbol not found" errors.
|
||||
sudo depmod
|
||||
log
|
||||
|
||||
log "Loading OpenOnload kernel modules:"
|
||||
cmd sudo onload_tool reload
|
||||
log
|
||||
|
||||
log "Installation complete."
|
Loading…
Reference in New Issue
Block a user