summaryrefslogtreecommitdiffstats
path: root/remote/modules/nvidia_kernel/module.build
blob: a1275c70a1b3a28f1650bc687b9fd35eaa0bdb99 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
fetch_source() {
	mkdir -p src 2>/dev/null
	cd src || perror "Could not change into src directory."
	download "$REQUIRED_URL"
}

build() {
	local ROOTUPPERDIR="$MODULE_DIR/rootupper"

	local NVIDIA="$MODULE_DIR/src/$REQUIRED_NVIDIA"
	local NVIDIAEXTRACTDIR="$ROOTUPPERDIR/NVIDIA"

	[ -d "$NVIDIAEXTRACTDIR" ] && rm -rf "$NVIDIAEXTRACTDIR"
	pinfo "Unpacking NVidia archive ($NVIDIA) ..."
	sh "$NVIDIA" --extract-only --target "$NVIDIAEXTRACTDIR" ||	perror "Could not extract $NVIDIA to $NVIDIAEXTRACTDIR."

	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 kernel module compilation was unsuccessful!    -"
	pdebug "-                                                                              -"
	pdebug "--------------------------------------------------------------------------------"

	
	chroot_run "$ROOTUPPERDIR" <<-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 --kernel-source-path /"$KERNEL_HEADERS_PATH"	# Do the work!
	# fake success since the installer will exit with an error due to the module not loading properly.
	exit 0
	EOF
	pinfo "chroot terminated."

	pinfo "Stripping kernel modules..."
	strip -g "$ROOTUPPERDIR/NVIDIA/kernel/nvidia.ko"		|| \
		pwarning "Could not strip kernel module $ROOTUPPERDIR/NVIDIA/kernel/nvidia.ko."
	strip -g "$ROOTUPPERDIR/NVIDIA/kernel/uvm/nvidia-uvm.ko"	|| \
		pwarning "Could not strip kernel module $ROOTUPPERDIR/NVIDIA/kernel/uvm/nvidia-uvm.ko."

	pinfo "Copying kernel modules..."
	local NVIDIA_MODULES="$MODULE_BUILD_DIR/lib/modules/nvidia/"
	mkdir -p "$NVIDIA_MODULES"
	cp "$ROOTUPPERDIR/NVIDIA/kernel/nvidia.ko" "$NVIDIA_MODULES"		|| perror "Could not copy nvidia.ko!"
	cp "$ROOTUPPERDIR/NVIDIA/kernel/uvm/nvidia-uvm.ko" "$NVIDIA_MODULES"	|| perror "Could not copy nvidia-uvm.ko!"

	rm -rf "$MODULE_BUILD_DIR/NVIDIA"
}

post_copy() {
	:
}