Next revision | Previous revision |
devices:nvidia-open-gpu-kernel-modules [2022/10/13 07:08] – created Sean Rhone | devices:nvidia-open-gpu-kernel-modules [2022/10/14 05:15] (current) – Sean Rhone |
---|
* NVIDIA Linux Open GPU Kernel Module Source ((https://github.com/NVIDIA/open-gpu-kernel-modules)) | * NVIDIA Linux Open GPU Kernel Module Source ((https://github.com/NVIDIA/open-gpu-kernel-modules)) |
* main ((https://github.com/NVIDIA/open-gpu-kernel-modules/tree/main)) | * main ((https://github.com/NVIDIA/open-gpu-kernel-modules/tree/main)) |
* :!: TODO: This is being adapted from StepMania notes | |
| |
===== Resources ===== | |
| |
* http://jousway.co.uk/ | |
* http://www.flashflashrevolution.com/vbz/showthread.php?t=133223 | |
* https://search.stepmaniaonline.net/ | |
| |
===== Notes ===== | |
| |
* Store ''RandomMovies'' and ''Songs'' in ''~/.stepmania-5.1'' | |
* :!: As of 2020/09/05, using the ''ati'' Xorg DDX driver on openSUSE caused both exclusive and borderless fullscreen modes to crash the entire Xfce desktop; use ''modesetting'' since it works fine even with the 75Hz mod | |
| |
====== Dependencies ====== | ====== Dependencies ====== |
| |
===== Fedora Workstation ===== | |
| |
* [[distros:fedora_workstation_gnome|Fedora]] | * [[distros:fedora_workstation_gnome|Fedora]] |
* Last tested: 2021/12/29 | * Last tested: 2022/10/13 |
| |
sudo dnf install kernel-devel | sudo dnf install kernel-devel gcc-c++ |
| |
===== openSUSE Tumbleweed ===== | |
| |
* [[distros:opensuse_tumbleweed_gnome|openSUSE Tumbleweed]] | |
* Last tested: 2021/06/18 | |
| |
sudo zypper install git-core cmake-full gcc gcc-c++ libmad-devel libvorbis-devel libbz2-devel nasm gtk3-devel libjpeg8-devel alsa-devel libva-devel glew-devel libpulse-devel libudev-devel | |
| |
===== Ubuntu ===== | |
| |
* [[distros:ubuntu_desktop|Ubuntu]] | |
* Last tested: 2021/10/29 on Ubuntu 21.04 | |
| |
sudo apt install git g++ cmake libmad0-dev libvorbis-dev nasm libbz2-dev libpcre++-dev zlib1g-dev libjpeg-dev libxrandr-dev libxinerama-dev pkg-config libasound2-dev libpulse-dev libjack-jackd2-dev libva-dev libgl1-mesa-dev libglew-dev libgtk2.0-dev libxtst-dev libudev-dev | |
| |
====== Download/Update Source ====== | ====== Download/Update Source ====== |
cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/nvidia-open/src' && git clone --branch 'main' --depth '1' --recurse-submodules 'https://github.com/NVIDIA/open-gpu-kernel-modules.git' ~/'Projects/nvidia-open/src' && sync | cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/nvidia-open/src' && git clone --branch 'main' --depth '1' --recurse-submodules 'https://github.com/NVIDIA/open-gpu-kernel-modules.git' ~/'Projects/nvidia-open/src' && sync |
| |
====== Compile and Install ====== | ====== Compile ====== |
| |
* :!: If more or less than 4 CPU cores should be used when compiling FFMPEG, change ''DWITH_FFMPEG_JOBS'' | |
| |
cd ~ && rm -Rf ~/'Projects/stepmania/build' ~/'Projects/stepmania/run' && mkdir -p ~/'Projects/stepmania/build' ~/'Projects/stepmania/run' && cd ~/'Projects/stepmania/build' && cmake ~/'Projects/stepmania/src' -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE='Release' && cmake ~/'Projects/stepmania/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/stepmania/run' -DCMAKE_CXX_FLAGS='-Ofast -pipe -march=native' -DCMAKE_C_FLAGS='-Ofast -pipe -march=native' -DWITH_FFMPEG_JOBS='4' -DWITH_MINIMAID='0' && sync && make -j$(nproc) install && sync | |
| |
cd ~/'Projects/nvidia-open/src' && make modules -j$(nproc) | |
| |
===== System FFmpeg ===== | |
| |
* https://github.com/stepmania/stepmania/issues/2197 | |
* This was attempted instead of working around the authentication issue | |
* :!: As of 2022/03/17 on Fedora 35, this is untested with gameplay, but StepMania compiles fine | |
* :!: Apparently bundled FFmpeg was fixed and this isn't needed | |
| |
sudo dnf install 'ffmpeg-devel' | |
| |
cd ~ && rm -Rf ~/'Projects/stepmania/build' ~/'Projects/stepmania/run' && mkdir -p ~/'Projects/stepmania/build' ~/'Projects/stepmania/run' && cd ~/'Projects/stepmania/build' && cmake ~/'Projects/stepmania/src' -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE='Release' && cmake ~/'Projects/stepmania/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/stepmania/run' -DCMAKE_CXX_FLAGS='-Ofast -pipe -march=native' -DCMAKE_C_FLAGS='-Ofast -pipe -march=native' -DWITH_FFMPEG_JOBS='4' -DWITH_MINIMAID='0' -DWITH_SYSTEM_FFMPEG='1' && sync && make -j$(nproc) install && sync | |
| |
====== Simply Love ====== | |
| |
* [[https://github.com/dguzek/Simply-Love-SM5|GitHub]] | |
* Uses ''beta'' branch | |
| |
rm -Rf ~/'.stepmania-5.1/Themes/Simply Love' && mkdir -p ~/'.stepmania-5.1/Themes' && git clone --branch 'beta' --depth '1' --recurse-submodules 'https://github.com/dguzek/Simply-Love-SM5.git' ~/'.stepmania-5.1/Themes/Simply Love' | |
| |
====== Unlimited Stepman Works ====== | |
| |
* http://jousway.co.uk | |
| |
===== USWMetal3DSM5+ Noteskin ===== | |
| |
* Expects ''~/.stepmania-5.1'' as the StepMania home directory | |
* Requires ''7z'' | |
| |
rm -Rf ~/'.stepmania-5.1/NoteSkins/dance/USWMetal3DSM5+' '/tmp/USWMetal3DSM5+.7z' && mkdir -p ~/'.stepmania-5.1/NoteSkins/dance' && wget -O '/tmp/USWMetal3DSM5+.7z' 'http://jousway.co.uk/Unlimited_Stepman_Works/_Noteskin/SM5/Dance/USWMetal3DSM5+.7z' && cd ~ && 7z x -o'.stepmania-5.1/NoteSkins/dance' -y '/tmp/USWMetal3DSM5+.7z' && ls ~/'.stepmania-5.1/NoteSkins/dance/USWMetal3DSM5+/NoteSkin.lua' && rm -f '/tmp/USWMetal3DSM5+.7z' && sync | |
| |
====== Restore Content ====== | |
| |
mkdir -p ~/'.stepmania-5.1' ~/'.stepmania-5.1/NoteSkins/dance' | |
| |
gio open ~/'.stepmania-5.1' | |
| |
====== Settings ====== | |
| |
* :!: Requires StepMania to be started once | |
| |
gio open ~/'.stepmania-5.1/Save/Preferences.ini' | |
| |
===== Global Offset ===== | |
| |
* This magic number comes from the Linux version of OpenITG ((no idea why it works well, but it does)) | |
* This works best on a PSX-to-USB adapter | |
* :!: This does not work well at all when using an Arduino Leonardo R3 | |
| |
GlobalOffsetSeconds=-0.065612 | |
| |
====== Desktop Launcher ====== | |
| |
mkdir -p ~/'.local/share/applications/StepMania' && nano ~/'.local/share/applications/StepMania/StepMania.desktop' | |
| |
<code> | |
[Desktop Entry] | |
Name=StepMania | |
Categories=Game; | |
Exec='/home/CHANGEME/Projects/stepmania/run/stepmania-5.1/stepmania' | |
Type=Application | |
StartupNotify=true | |
Path=/home/CHANGEME/Projects/stepmania/run/stepmania-5.1 | |
Icon=stepmania-ssc</code> | |
| |
sed -i 's/CHANGEME/'$USER'/g' ~/'.local/share/applications/StepMania/StepMania.desktop' | |
| |
===== Icon ===== | |
| |
**** | **** |
| |
cp -Rf ~/'Projects/stepmania/src/icons' ~/'.local/share' | cd ~/'Projects/nvidia-open/src' && make modules -j$(nproc) && sync |
| |
===== Autostart ===== | ====== Install ====== |
| |
**** | **** |
| |
mkdir -p ~/'.config/autostart' && cp ~/'.local/share/applications/StepMania/StepMania.desktop' ~/'.config/autostart/StepMania.desktop' | cd ~/'Projects/nvidia-open/src' && sudo make modules_install -j$(nproc) && sync |
| |
====== Quick Commands ====== | ====== GSP and Components ====== |
| |
===== Execute ===== | * 520.56.06 |
| |
==== StepMania ==== | wget -O '/tmp/nv.run' 'https://us.download.nvidia.com/XFree86/Linux-x86_64/520.56.06/NVIDIA-Linux-x86_64-520.56.06.run' && chmod +x '/tmp/nv.run' && sudo '/tmp/nv.run' --no-kernel-modules |
| |
cd ~/'Projects/stepmania/run/stepmania-5.1' && ~/'Projects/stepmania/run/stepmania-5.1/stepmania' | ====== Kernel Options ====== |
| |
vblank_mode='0' | * See [[notes:kernel_parameters#open_module]] |
| * :!: nouveau blacklist, unsupported GPUs, and modeset are required |
| |
===== File Manager ===== | ====== Verify ====== |
| |
==== Source ==== | modinfo 'nvidia' | grep 'Dual MIT/GPL' |
| |
**** | cat '/proc/driver/nvidia/version' | grep 'Open Kernel Module' |
| |
gio open ~/'Projects/stepmania/src' | nvidia-smi -q | grep 'GSP Firmware Version' |
| |
==== Build ==== | ls '/lib/firmware/nvidia/'*'/gsp.bin' |
| |
**** | ====== Uninstall ====== |
| |
gio open ~/'Projects/stepmania/build' | * 520.56.06 |
| |
==== Run ==== | |
| |
gio open ~/'Projects/stepmania/run/.stepmania-5.1' | |
| |
==== Home ==== | |
| |
**** | |
| |
gio open ~/'.stepmania-5.1' | wget -O '/tmp/nv.run' 'https://us.download.nvidia.com/XFree86/Linux-x86_64/520.56.06/NVIDIA-Linux-x86_64-520.56.06.run' && chmod +x '/tmp/nv.run' && sudo '/tmp/nv.run' --uninstall |
| |