diff options
Diffstat (limited to 'remote/modules/nvidia_libs')
| -rw-r--r-- | remote/modules/nvidia_libs/module.build | 56 | ||||
| -rw-r--r-- | remote/modules/nvidia_libs/module.conf (renamed from remote/modules/nvidia_libs/nvidia_libs.conf) | 0 | ||||
| -rw-r--r-- | remote/modules/nvidia_libs/module.conf.ubuntu (renamed from remote/modules/nvidia_libs/nvidia_libs.conf.ubuntu) | 0 | ||||
| -rw-r--r-- | remote/modules/nvidia_libs/nvidia_libs.build | 121 |
4 files changed, 56 insertions, 121 deletions
diff --git a/remote/modules/nvidia_libs/module.build b/remote/modules/nvidia_libs/module.build new file mode 100644 index 00000000..38f60d09 --- /dev/null +++ b/remote/modules/nvidia_libs/module.build @@ -0,0 +1,56 @@ +fetch_source() { + mkdir -p src + cd src || perror "Could not change into src directory." + download "$REQUIRED_URL" +} + +build() { + local KERNELSRCDIR="$MODULE_DIR/../kernel/ksrc" # kernel sources + local NVIDIA="$MODULE_DIR/src/$REQUIRED_NVIDIA" + local NVIDIAEXTRACTDIR="$MODULE_BUILD_DIR/NVIDIA" + + pdebug "Unpacking NVidia-Installer ..." + [ -d "$NVIDIAEXTRACTDIR" ] && rm -rf "$NVIDIAEXTRACTDIR" + sh "$NVIDIA" --extract-only --target "$NVIDIAEXTRACTDIR" || perror "Could not extract $NVIDIA to $NVIDIAEXTRACTDIR." + + pinfo "Ready to chroot - may take some time." + pdebug "--- chroot ---------------------------------------------------------------------" + pdebug "- -" + pdebug "- Notice: This may take a while! -" + pdebug "- -" + pdebug "- Please keep note the Nvidia installer _will_ complain about -" + pdebug "- several warnings and errors. It will do this in any case. -" + pdebug "- -" + pdebug "- This does _not_ mean the library module compilation was unsuccessful! -" + pdebug "- -" + pdebug "--------------------------------------------------------------------------------" + + chroot_run "${MODULE_BUILD_DIR}" <<-EOF + /NVIDIA/nvidia-installer --no-nouveau-check --no-network --no-backup --no-rpms --no-runlevel-check --no-distro-scripts --no-cc-version-check --no-x-check --no-precompiled-interface --silent --no-kernel-module + EOF + pinfo "chroot terminated, cleaning up" + + # move whiteout list to its /opt/openslx/etc/nvidia.whiteout + if [ -e "${MODULE_BUILD_DIR}/overlay.whiteout.list" ]; then + mkdir -p "${MODULE_BUILD_DIR}/opt/openslx/etc" + mv "${MODULE_BUILD_DIR}/overlay.whiteout.list" "${MODULE_BUILD_DIR}/opt/openslx/etc/nvidia.whiteout" + fi + + #pdebug "Handling whiteouts ..." + #local WHITEOUT_LIST="${MODULE_BUILD_DIR}/opt/openslx/etc/nvidia.whiteout" + #rm -f -- "$WHOUTEOUT_LIST" + #mkdir -p "$(dirname "$WHITEOUT_LIST")" || perror "Could not create $(dirname "$WHITEOUT_LIST")" + #pdebug "Searching for overlayfs-whiteouts ..." + #for WHITEOUT in $(find "$MODULE_BUILD_DIR" -lname "(overlay-whiteout)"); do +# pdebug "Whiteout found: $WHITEOUT" +# echo "/./${WHITEOUT#$MODULE_BUILD_DIR}" >> "$WHITEOUT_LIST" +# rm -f -- "$WHITEOUT" || perror "Could not delete whiteout $WHITEOUT!" +# done + + rm -rf "$MODULE_BUILD_DIR/NVIDIA" +} + +post_copy() { + : +} + diff --git a/remote/modules/nvidia_libs/nvidia_libs.conf b/remote/modules/nvidia_libs/module.conf index 12748274..12748274 100644 --- a/remote/modules/nvidia_libs/nvidia_libs.conf +++ b/remote/modules/nvidia_libs/module.conf diff --git a/remote/modules/nvidia_libs/nvidia_libs.conf.ubuntu b/remote/modules/nvidia_libs/module.conf.ubuntu index a3a80bee..a3a80bee 100644 --- a/remote/modules/nvidia_libs/nvidia_libs.conf.ubuntu +++ b/remote/modules/nvidia_libs/module.conf.ubuntu diff --git a/remote/modules/nvidia_libs/nvidia_libs.build b/remote/modules/nvidia_libs/nvidia_libs.build deleted file mode 100644 index 49f78d5b..00000000 --- a/remote/modules/nvidia_libs/nvidia_libs.build +++ /dev/null @@ -1,121 +0,0 @@ -fetch_source() { - mkdir -p src - cd src || perror "Could not change into src directory." - download "$REQUIRED_URL" -} - -build() { - local KERNELSRCDIR="$MODULE_DIR/../kernel/ksrc" # kernel sources - local TEMPDIR="$MODULE_DIR/temp" - local ROOTLOWERDIR="/" - local ROOTUPPERDIR="$MODULE_BUILD_DIR" - local ROOTBINDDIR="$TEMPDIR/rootbind" - local ROOTMOUNTDIR="$TEMPDIR/rootmount" - local BINDMOUNTS="/dev /proc /run /sys" - local NVIDIA="$MODULE_DIR/src/$REQUIRED_NVIDIA" - local NVIDIAEXTRACTDIR="$ROOTMOUNTDIR/NVIDIA" - local NVEXTRACTDIR="/NVIDIA" # This is relative to the chroot. - - make_dirs () { - [ -d "$TEMPDIR" ] && rm -rf "$TEMPDIR" - mkdir -p "$TEMPDIR" || perror "Could not create base directory for mount directories $TEMPDIR." - for DIR in "$ROOTBINDDIR" "$ROOTMOUNTDIR"; do - mkdir -p "$DIR" || perror "Could not create directory for mount directory $DIR." - done - } - - mount_dirs () { - mount -o bind "$ROOTLOWERDIR" "$ROOTBINDDIR" || perror "Could not mount (bind) $ROOTLOWERDIR to $ROOTBINDDIR." - mount -o remount,ro "$ROOTBINDDIR" || perror "Could not remount $ROOTBINDDIR ro read-only." - mount -t overlayfs overlayfs -o lowerdir="$ROOTBINDDIR",upperdir="$ROOTUPPERDIR" "$ROOTMOUNTDIR" \ - || perror "Could not mount (overlayfs) $ROOTLOWERDIR, $ROOTUPPERDIR to $BINDDIR." - for MOUNT in $BINDMOUNTS; do - mount -o bind "$MOUNT" "$ROOTMOUNTDIR/$MOUNT" || perror "Could not mount (bind) $MOUNTS into chroot root dir." - done - } - - # We inject a bashrc to be executed later within the chroot. - gen_bashrc () { - local COMMON_OPTIONS=' --no-nouveau-check --no-network --no-backup --no-rpms --no-runlevel-check --no-distro-scripts --no-cc-version-check --no-x-check --no-precompiled-interface --silent ' - - cat >"$ROOTMOUNTDIR/$HOME/.bashrc"<<-EOF - echo "chroot successful." - alias ll='ls -alF' # A little convenience for debugging purposes. - PS1='\[\e[1;33m\]chroot@\h:\w\$ \[\e[1;32m\]' # To recognize the chroot instantly when debugging (yellow on black). - cd "$NVEXTRACTDIR" - ./nvidia-installer $COMMON_OPTIONS --no-kernel-module # Do the work! - exit # Out-comment this for debugging: Then script stays in chroot. - EOF - } - - unpack_nvidia () { - [ -d "$NVIDIAEXTRACTDIR" ] && rm -rf "$NVIDIAEXTRACTDIR" - sh "$NVIDIA" --extract-only --target "$NVIDIAEXTRACTDIR" || perror "Could not extract $NVIDIA to $NVIDIAEXTRACTDIR." - } - - umount_dirs () { - # Let's tidy the place, or at least the mounts: Otherwise these would stack up, and we do not like that, don't we. - for MOUNT in $BINDMOUNTS; do - umount "$ROOTMOUNTDIR/$MOUNT" || pwarning "Could not unmount $ROOTMOUNTDIR/$MOUNT!" - done - umount "$ROOTMOUNTDIR" || pwarning "Could not unmount $ROOTMOUNTDIR!" - umount "$ROOTBINDDIR" || pwarning "Could not unmount $ROOTBINDDIR!" - } - - handle_whiteouts () { - local WHITEOUT_LIST="${MODULE_BUILD_DIR}/opt/openslx/etc/nvidia.whiteout" - rm -f -- "$WHOUTEOUT_LIST" - mkdir -p "$(dirname "$WHITEOUT_LIST")" || perror "Could not create $(dirname "$WHITEOUT_LIST")" - pdebug "Searching for overlayfs-whiteouts ..." - for WHITEOUT in $(find "$MODULE_BUILD_DIR" -lname "(overlay-whiteout)"); do - pdebug "Whiteout found: $WHITEOUT" - echo "/./${WHITEOUT#$MODULE_BUILD_DIR}" >> "$WHITEOUT_LIST" - rm -f -- "$WHITEOUT" || perror "Could not delete whiteout $WHITEOUT!" - done - } - - clean_temp () { - rm -rf "$TEMPDIR" || perror "Could not clean/delete temp directory $TEMPDIR." - rm -rf "$ROOTUPPERDIR/NVIDIA" - } - - # Main stuff - pdebug "Generating temporary directories ..." - make_dirs - pdebug "Mounting directories ..." - mount_dirs - - pdebug "Injecting .bashrc into later chroot ..." - gen_bashrc - - pdebug "Unpacking NVidia-Installer ..." - unpack_nvidia - - pinfo "Ready to chroot - compiling may take some time." - pdebug "--- chroot ---------------------------------------------------------------------" - pdebug "- -" - pdebug "- Notice: This may take a while! -" - pdebug "- -" - pdebug "- Please keep note the Nvidia installer _will_ complain about -" - pdebug "- several warnings and errors. It will do this in any case. -" - pdebug "- -" - pdebug "- This does _not_ mean the library module compilation was unsuccessful! -" - pdebug "- -" - pdebug "--------------------------------------------------------------------------------" - chroot "$ROOTMOUNTDIR" - pinfo "chroot terminated, cleaning up" - - pdebug "Unmount directories ..." - umount_dirs - - pdebug "Handling whiteouts ..." - handle_whiteouts - - pdebug "Cleaning / deleting temp directories." - clean_temp -} - -post_copy() { - : -} - |
