diff --git a/ubuntu16.04/nvidia-driver b/ubuntu16.04/nvidia-driver index 7786b22df..933d8c911 100755 --- a/ubuntu16.04/nvidia-driver +++ b/ubuntu16.04/nvidia-driver @@ -26,17 +26,26 @@ _cleanup_package_cache() { # Resolve the kernel version to the form major.minor.patch-revision-flavor where flavor defaults to generic. _resolve_kernel_version() { - local version=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null | \ - sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) - local kernel_flavor=$(echo ${KERNEL_VERSION} | sed 's/[^a-z]*//') - kernel_flavor="${kernel_flavor//virtual/generic}" - echo "Resolving Linux kernel version..." - if [ -z "${version}" ]; then + + local version_info=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null || true) + if [ -z "${version_info}" ]; then echo "Could not resolve Linux kernel version" >&2 return 1 fi + local version=$(printf "%s\n" "${version_info}" | \ + sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) + + if [ -z "${version}" ]; then + # Custom/non-standard kernel: keep KERNEL_VERSION unchanged. + echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" + return 0 + fi + + local kernel_flavor=$(echo "${KERNEL_VERSION}" | sed 's/[^a-z]*//') + kernel_flavor="${kernel_flavor//virtual/generic}" + KERNEL_VERSION="${version}-${kernel_flavor}" echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" return 0 diff --git a/ubuntu18.04/nvidia-driver b/ubuntu18.04/nvidia-driver index c61c8454c..9a250d2f8 100755 --- a/ubuntu18.04/nvidia-driver +++ b/ubuntu18.04/nvidia-driver @@ -29,17 +29,26 @@ _cleanup_package_cache() { # Resolve the kernel version to the form major.minor.patch-revision-flavor where flavor defaults to generic. _resolve_kernel_version() { - local version=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null | \ - sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) - local kernel_flavor=$(echo ${KERNEL_VERSION} | sed 's/[^a-z]*//') - kernel_flavor="${kernel_flavor//virtual/generic}" - echo "Resolving Linux kernel version..." - if [ -z "${version}" ]; then + + local version_info=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null || true) + if [ -z "${version_info}" ]; then echo "Could not resolve Linux kernel version" >&2 return 1 fi + local version=$(printf "%s\n" "${version_info}" | \ + sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) + + if [ -z "${version}" ]; then + # Custom/non-standard kernel: keep KERNEL_VERSION unchanged. + echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" + return 0 + fi + + local kernel_flavor=$(echo "${KERNEL_VERSION}" | sed 's/[^a-z]*//') + kernel_flavor="${kernel_flavor//virtual/generic}" + KERNEL_VERSION="${version}-${kernel_flavor}" echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" return 0 diff --git a/ubuntu20.04/nvidia-driver b/ubuntu20.04/nvidia-driver index 6222e3506..357296f32 100755 --- a/ubuntu20.04/nvidia-driver +++ b/ubuntu20.04/nvidia-driver @@ -46,17 +46,26 @@ _update_ca_certificates() { # Resolve the kernel version to the form major.minor.patch-revision-flavor where flavor defaults to generic. _resolve_kernel_version() { - local version=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null | \ - sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) - local kernel_flavor=$(echo ${KERNEL_VERSION} | sed 's/[^a-z]*//') - kernel_flavor="${kernel_flavor//virtual/generic}" - echo "Resolving Linux kernel version..." - if [ -z "${version}" ]; then + + local version_info=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null || true) + if [ -z "${version_info}" ]; then echo "Could not resolve Linux kernel version" >&2 return 1 fi + local version=$(printf "%s\n" "${version_info}" | \ + sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) + + if [ -z "${version}" ]; then + # Custom/non-standard kernel: keep KERNEL_VERSION unchanged. + echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" + return 0 + fi + + local kernel_flavor=$(echo "${KERNEL_VERSION}" | sed 's/[^a-z]*//') + kernel_flavor="${kernel_flavor//virtual/generic}" + KERNEL_VERSION="${version}-${kernel_flavor}" echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" return 0 diff --git a/ubuntu22.04/nvidia-driver b/ubuntu22.04/nvidia-driver index 0039a674d..094bc13d8 100755 --- a/ubuntu22.04/nvidia-driver +++ b/ubuntu22.04/nvidia-driver @@ -62,17 +62,26 @@ _update_ca_certificates() { # Resolve the kernel version to the form major.minor.patch-revision-flavor where flavor defaults to generic. _resolve_kernel_version() { - local version=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null | \ - sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) - local kernel_flavor=$(echo ${KERNEL_VERSION} | sed 's/[^a-z]*//') - kernel_flavor="${kernel_flavor//virtual/generic}" - echo "Resolving Linux kernel version..." - if [ -z "${version}" ]; then + + local version_info=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null || true) + if [ -z "${version_info}" ]; then echo "Could not resolve Linux kernel version" >&2 return 1 fi + local version=$(printf "%s\n" "${version_info}" | \ + sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) + + if [ -z "${version}" ]; then + # Custom/non-standard kernel: keep KERNEL_VERSION unchanged. + echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" + return 0 + fi + + local kernel_flavor=$(echo "${KERNEL_VERSION}" | sed 's/[^a-z]*//') + kernel_flavor="${kernel_flavor//virtual/generic}" + KERNEL_VERSION="${version}-${kernel_flavor}" echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" return 0 diff --git a/ubuntu24.04/nvidia-driver b/ubuntu24.04/nvidia-driver index b272fcd86..e24c6f7de 100755 --- a/ubuntu24.04/nvidia-driver +++ b/ubuntu24.04/nvidia-driver @@ -72,17 +72,26 @@ _update_ca_certificates() { # Resolve the kernel version to the form major.minor.patch-revision-flavor where flavor defaults to generic. _resolve_kernel_version() { - local version=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null | \ - sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) - local kernel_flavor=$(echo ${KERNEL_VERSION} | sed 's/[^a-z]*//') - kernel_flavor="${kernel_flavor//virtual/generic}" - echo "Resolving Linux kernel version..." - if [ -z "${version}" ]; then + + local version_info=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null || true) + if [ -z "${version_info}" ]; then echo "Could not resolve Linux kernel version" >&2 return 1 fi + local version=$(printf "%s\n" "${version_info}" | \ + sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) + + if [ -z "${version}" ]; then + # Custom/non-standard kernel: keep KERNEL_VERSION unchanged. + echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" + return 0 + fi + + local kernel_flavor=$(echo "${KERNEL_VERSION}" | sed 's/[^a-z]*//') + kernel_flavor="${kernel_flavor//virtual/generic}" + KERNEL_VERSION="${version}-${kernel_flavor}" echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" return 0 diff --git a/vgpu-manager/ubuntu20.04/nvidia-driver b/vgpu-manager/ubuntu20.04/nvidia-driver index bce3d1caa..74696be9f 100755 --- a/vgpu-manager/ubuntu20.04/nvidia-driver +++ b/vgpu-manager/ubuntu20.04/nvidia-driver @@ -27,17 +27,26 @@ _cleanup_package_cache() { # Resolve the kernel version to the form major.minor.patch-revision-flavor where flavor defaults to generic. _resolve_kernel_version() { - local version=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null | \ - sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) - local kernel_flavor=$(echo ${KERNEL_VERSION} | sed 's/[^a-z]*//') - kernel_flavor="${kernel_flavor//virtual/generic}" - echo "Resolving Linux kernel version..." - if [ -z "${version}" ]; then + + local version_info=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null || true) + if [ -z "${version_info}" ]; then echo "Could not resolve Linux kernel version" >&2 return 1 fi + local version=$(printf "%s\n" "${version_info}" | \ + sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) + + if [ -z "${version}" ]; then + # Custom/non-standard kernel: keep KERNEL_VERSION unchanged. + echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" + return 0 + fi + + local kernel_flavor=$(echo "${KERNEL_VERSION}" | sed 's/[^a-z]*//') + kernel_flavor="${kernel_flavor//virtual/generic}" + KERNEL_VERSION="${version}-${kernel_flavor}" echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" return 0 diff --git a/vgpu-manager/ubuntu22.04/nvidia-driver b/vgpu-manager/ubuntu22.04/nvidia-driver index 5a12f0a6f..1e2913e72 100755 --- a/vgpu-manager/ubuntu22.04/nvidia-driver +++ b/vgpu-manager/ubuntu22.04/nvidia-driver @@ -29,17 +29,26 @@ _cleanup_package_cache() { # Resolve the kernel version to the form major.minor.patch-revision-flavor where flavor defaults to generic. _resolve_kernel_version() { - local version=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null | \ - sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) - local kernel_flavor=$(echo ${KERNEL_VERSION} | sed 's/[^a-z]*//') - kernel_flavor="${kernel_flavor//virtual/generic}" - echo "Resolving Linux kernel version..." - if [ -z "${version}" ]; then + + local version_info=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null || true) + if [ -z "${version_info}" ]; then echo "Could not resolve Linux kernel version" >&2 return 1 fi + local version=$(printf "%s\n" "${version_info}" | \ + sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) + + if [ -z "${version}" ]; then + # Custom/non-standard kernel: keep KERNEL_VERSION unchanged. + echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" + return 0 + fi + + local kernel_flavor=$(echo "${KERNEL_VERSION}" | sed 's/[^a-z]*//') + kernel_flavor="${kernel_flavor//virtual/generic}" + KERNEL_VERSION="${version}-${kernel_flavor}" echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" return 0 diff --git a/vgpu-manager/ubuntu24.04/nvidia-driver b/vgpu-manager/ubuntu24.04/nvidia-driver index b16bc2ef2..36c3b2419 100644 --- a/vgpu-manager/ubuntu24.04/nvidia-driver +++ b/vgpu-manager/ubuntu24.04/nvidia-driver @@ -29,17 +29,26 @@ _cleanup_package_cache() { # Resolve the kernel version to the form major.minor.patch-revision-flavor where flavor defaults to generic. _resolve_kernel_version() { - local version=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null | \ - sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) - local kernel_flavor=$(echo ${KERNEL_VERSION} | sed 's/[^a-z]*//') - kernel_flavor="${kernel_flavor//virtual/generic}" - echo "Resolving Linux kernel version..." - if [ -z "${version}" ]; then + + local version_info=$(apt-cache show "linux-headers-${KERNEL_VERSION}" 2> /dev/null || true) + if [ -z "${version_info}" ]; then echo "Could not resolve Linux kernel version" >&2 return 1 fi + local version=$(printf "%s\n" "${version_info}" | \ + sed -nE 's/^Version:\s+(([0-9]+\.){2}[0-9]+)[-.]([0-9]+).*/\1-\3/p' | head -1) + + if [ -z "${version}" ]; then + # Custom/non-standard kernel: keep KERNEL_VERSION unchanged. + echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" + return 0 + fi + + local kernel_flavor=$(echo "${KERNEL_VERSION}" | sed 's/[^a-z]*//') + kernel_flavor="${kernel_flavor//virtual/generic}" + KERNEL_VERSION="${version}-${kernel_flavor}" echo "Proceeding with Linux kernel version ${KERNEL_VERSION}" return 0