From 03141092035cb6ef68a50f1d19c87d40962c340e Mon Sep 17 00:00:00 2001 From: morrownr Date: Fri, 13 Jan 2023 21:59:06 -0600 Subject: [PATCH] fix low mem error --- dkms-make.sh | 25 +++++++++++++++++++++++++ dkms.conf | 2 +- install-driver.sh | 10 +++++----- remove-driver.sh | 2 +- 4 files changed, 32 insertions(+), 7 deletions(-) create mode 100755 dkms-make.sh diff --git a/dkms-make.sh b/dkms-make.sh new file mode 100755 index 0000000..c6072de --- /dev/null +++ b/dkms-make.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +# SMEM needs to be set here if dkms build is not initiated by install-driver.sh +if [[ ! -z ${SMEM} ]] +then + SMEM=$(LANG=C free | awk '/Mem:/ { print $2 }') +fi + +# SMEM needs to be set here if dkms build is not initiated by install-driver.sh +if [[ ! -z ${SPROC} ]] +then + SPROC=$(nproc) +fi + +# Avoid Out of Memory condition in low-RAM systems by limiting core usage. +if [ "$SPROC" -gt 1 ] +then + if [ "$SMEM" -lt 1400000 ] + then + SPROC=2 + fi +fi + +kernelver=${kernelver:-$(uname -r)} +make "-j$SPROC" "KVER=$kernelver" "KSRC=/lib/modules/$kernelver/build" diff --git a/dkms.conf b/dkms.conf index 3c8b2e0..3c2dd10 100644 --- a/dkms.conf +++ b/dkms.conf @@ -1,7 +1,7 @@ PACKAGE_NAME="rtl8821cu" PACKAGE_VERSION="5.12.0.4" BUILT_MODULE_NAME[0]="8821cu" -MAKE="'make' -j${SPROC}" +MAKE="./dkms-make.sh" CLEAN="'make' clean" DEST_MODULE_LOCATION[0]="/updates/dkms" AUTOINSTALL="YES" diff --git a/install-driver.sh b/install-driver.sh index 6499755..1bdcf6e 100755 --- a/install-driver.sh +++ b/install-driver.sh @@ -16,19 +16,20 @@ # GNU General Public License for more details. SCRIPT_NAME="install-driver.sh" -SCRIPT_VERSION="20230111" +SCRIPT_VERSION="20230114" MODULE_NAME="8821cu" DRV_VERSION="5.12.0.4" KVER="$(uname -r)" KARCH="$(uname -m)" -KSRC="/lib/modules/${KVER}/build" MODDESTDIR="/lib/modules/${KVER}/kernel/drivers/net/wireless/" DRV_NAME="rtl${MODULE_NAME}" DRV_DIR="$(pwd)" OPTIONS_FILE="${MODULE_NAME}.conf" -SMEM=$(LANG=C free | awk '/Mem:/ { print $2 }') + +export SMEM=$(LANG=C free | awk '/Mem:/ { print $2 }') +export SPROC=$(nproc) # check to ensure sudo was used if [[ $EUID -ne 0 ]] @@ -126,8 +127,7 @@ echo ": ${KARCH} (ARCH)" # display total system memory echo ": ${SMEM} (SMEM)" -export SPROC=$(nproc) -# Avoid OOM in low-RAM systems. +# Avoid Out of Memory condition in low-RAM systems by limiting core usage. if [ "$SPROC" -gt 1 ] then if [ "$SMEM" -lt 1400000 ] diff --git a/remove-driver.sh b/remove-driver.sh index 1826c60..f854a97 100755 --- a/remove-driver.sh +++ b/remove-driver.sh @@ -16,7 +16,7 @@ # GNU General Public License for more details. SCRIPT_NAME="remove-driver.sh" -SCRIPT_VERSION="20230109" +SCRIPT_VERSION="20230114" MODULE_NAME="8821cu" DRV_VERSION="5.12.0.4"