Skip to content

Instantly share code, notes, and snippets.

@gabrielsond
Last active April 21, 2022 13:53
Show Gist options
  • Save gabrielsond/288900701f28d2857f6b6c60a1c9b704 to your computer and use it in GitHub Desktop.
Save gabrielsond/288900701f28d2857f6b6c60a1c9b704 to your computer and use it in GitHub Desktop.
Script to prepare two 3060 LHR GPUs for mining on unraid (with trex Docker container). Apply this script on first array start using User Scripts Community Application.
# Tested on 2 x https://www.techpowerup.com/gpu-specs/msi-rtx-3060-ventus-2x-oc-lhr.b9132
# Unraid NVIDIA Driver community app installed and running v495.46
#
# nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version --format=csv
# name, pci.bus_id, vbios_version
# GeForce RTX 3060, 00000000:01:00.0, 94.06.25.00.87
# GeForce RTX 3060, 00000000:02:00.0, 94.06.25.00.87
#
# ----------------------20220421 04:10:09 ----------------------
# Mining at us2.ethermine.org:5555 [172.65.230.90], diff: 4.29 G
# GPU #0: RTX 3060 - 38.71 MH/s, [LHR 79.2<>] [T:50C, P:110W, F:50%, E:355kH/W], 483/483 R:0%
# GPU #1: RTX 3060 - 38.88 MH/s, [LHR 79.5<>] [T:53C, P:110W, F:50%, E:357kH/W], 495/495 R:0%
# Hashrate: 77.60 MH/s, Shares/min: 0.956 (Avg. 1.057), Avg.P: 218W, Avg.E: 356kH/W
# Uptime: 10 hours 8 mins 1 sec | Algo: ethash | T-Rex v0.25.12
# Download 43 packages to run nvidia-settings... ugh. It's only 41.8MB.
# Download them all simultaneously in about 2 seconds on a gigabit FTTC connection
echo "https://slackware.uk/slackware/slackware64-14.2/slackware64/x/xorg-server-1.18.3-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/xinit-1.3.4-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libxcb-1.11.1-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXau-1.0.8-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXdmcp-1.1.2-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/n/nettle-3.2-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libdrm-2.4.68-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXfont-1.5.1-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/l/harfbuzz-1.2.7-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/l/freetype-2.6.3-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libfontenc-1.1.3-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libxshmfence-1.2-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/xkeyboard-config-2.17-noarch-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/xkbcomp-1.3.0-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libxkbfile-1.0.9-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/xterm-325-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXft-2.3.2-x86_64-3.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/fontconfig-2.11.1-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXaw-1.0.13-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXmu-1.1.2-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXt-1.1.5-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXinerama-1.1.3-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXpm-3.5.11-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libICE-1.0.9-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXrender-0.9.9-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXext-1.3.3-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libSM-1.2.2-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/l/gtk+2-2.24.30-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/l/atk-2.18.0-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/l/gdk-pixbuf2-2.32.3-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/l/pango-1.38.1-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXi-1.7.6-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXrandr-1.5.0-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXcursor-1.1.14-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXcomposite-0.4.4-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/l/cairo-1.14.6-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/mesa-11.2.2-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXdamage-1.1.4-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXv-1.0.10-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXfixes-5.0.2-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/x/libXxf86vm-1.1.4-x86_64-2.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/d/gdb-7.11.1-x86_64-1.txz
https://slackware.uk/slackware/slackware64-14.2/slackware64/d/python-2.7.11-x86_64-2.txz
" | xargs -n 1 -P 43 wget
# order important? have not dependency tested yet... next reboot.
upgradepkg --install-new xorg-server-1.18.3-x86_64-2.txz
upgradepkg --install-new xinit-1.3.4-x86_64-2.txz
upgradepkg --install-new libxcb-1.11.1-x86_64-1.txz
upgradepkg --install-new libXau-1.0.8-x86_64-2.txz
upgradepkg --install-new libXdmcp-1.1.2-x86_64-2.txz
upgradepkg --install-new nettle-3.2-x86_64-1.txz
upgradepkg --install-new libdrm-2.4.68-x86_64-1.txz
upgradepkg --install-new libXfont-1.5.1-x86_64-2.txz
upgradepkg --install-new harfbuzz-1.2.7-x86_64-1.txz
upgradepkg --install-new freetype-2.6.3-x86_64-1.txz
upgradepkg --install-new libfontenc-1.1.3-x86_64-1.txz
upgradepkg --install-new libxshmfence-1.2-x86_64-2.txz
upgradepkg --install-new xkeyboard-config-2.17-noarch-1.txz
upgradepkg --install-new xkbcomp-1.3.0-x86_64-2.txz
upgradepkg --install-new libxkbfile-1.0.9-x86_64-1.txz
upgradepkg --install-new xterm-325-x86_64-1.txz
upgradepkg --install-new libXft-2.3.2-x86_64-3.txz
upgradepkg --install-new fontconfig-2.11.1-x86_64-2.txz
upgradepkg --install-new libXaw-1.0.13-x86_64-1.txz
upgradepkg --install-new libXmu-1.1.2-x86_64-2.txz
upgradepkg --install-new libXt-1.1.5-x86_64-1.txz
upgradepkg --install-new libXinerama-1.1.3-x86_64-2.txz
upgradepkg --install-new libXpm-3.5.11-x86_64-2.txz
upgradepkg --install-new libICE-1.0.9-x86_64-2.txz
upgradepkg --install-new libXrender-0.9.9-x86_64-1.txz
upgradepkg --install-new libXext-1.3.3-x86_64-2.txz
upgradepkg --install-new libSM-1.2.2-x86_64-2.txz
upgradepkg --install-new gtk+2-2.24.30-x86_64-1.txz
upgradepkg --install-new atk-2.18.0-x86_64-1.txz
upgradepkg --install-new gdk-pixbuf2-2.32.3-x86_64-1.txz
upgradepkg --install-new pango-1.38.1-x86_64-1.txz
upgradepkg --install-new libXi-1.7.6-x86_64-1.txz
upgradepkg --install-new libXrandr-1.5.0-x86_64-1.txz
upgradepkg --install-new libXcursor-1.1.14-x86_64-2.txz
upgradepkg --install-new libXcomposite-0.4.4-x86_64-2.txz
upgradepkg --install-new cairo-1.14.6-x86_64-2.txz
upgradepkg --install-new mesa-11.2.2-x86_64-1.txz
upgradepkg --install-new libXdamage-1.1.4-x86_64-2.txz
upgradepkg --install-new libXv-1.0.10-x86_64-2.txz
upgradepkg --install-new libXfixes-5.0.2-x86_64-1.txz
upgradepkg --install-new libXxf86vm-1.1.4-x86_64-2.txz
upgradepkg --install-new gdb-7.11.1-x86_64-1.txz
upgradepkg --install-new python-2.7.11-x86_64-2.txz
# Reset cards just in case
nvidia-smi -r
# Enable persistence
nvidia-smi -pm 1
# Set power limit to 110W
nvidia-smi -pl 110
# Generate /etc/X11/xorg.conf using virtual displays (THIS IS NOT AN OPTIMAL CONFIGURATION... will work on this)
nvidia-xconfig --cool-bits=31 --allow-empty-initial-configuration --use-display-device=None --virtual=304x200 --enable-all-gpus --separate-x-screens
# "Ensure the DISPLAY environment variable is set correctly." (to virtual display?)
export DISPLAY=:0.0
# Start Xorg display server in background
xinit &
# The remainder of this script can be put into an .xinitrc file so that xinit can be started, run the script, and exit
# Set GPU 0 to P2 Power Mode
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=2 --use-gtk2
# Set GPU 1 to P2 Power Mode
nvidia-settings -a [gpu:1]/GPUPowerMizerMode=2 --use-gtk2
# Increase GPU 0 memory clock speed by 2400MHz (to 8500MHz)
nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffsetAllPerformanceLevels=2400 --use-gtk2
# Increase GPU 1 memory clock speed by 2400MHz (to 8500MHz)
nvidia-settings -a [gpu:1]/GPUMemoryTransferRateOffsetAllPerformanceLevels=2400 --use-gtk2
# Decrease GPU 0 core clock speed by 200Mhz (variable between 1300 to 1500Mhz roughly)
nvidia-settings -a [gpu:0]/GPUGraphicsClockOffsetAllPerformanceLevels=-200 --use-gtk2
# Decrease GPU 1 core clock speed by 200Mhz (variable between 1300 to 1500Mhz roughly)
nvidia-settings -a [gpu:1]/GPUGraphicsClockOffsetAllPerformanceLevels=-200 --use-gtk2
# Enable fan control
nvidia-settings -a [gpu:0]/GPUFanControlState=1 --use-gtk2
nvidia-settings -a [gpu:1]/GPUFanControlState=1 --use-gtk2
# Set fans to 50% (two fans per GPU)
nvidia-settings -a [fan:0]/GPUTargetFanSpeed=50 --use-gtk2
nvidia-settings -a [fan:1]/GPUTargetFanSpeed=50 --use-gtk2
nvidia-settings -a [fan:2]/GPUTargetFanSpeed=50 --use-gtk2
nvidia-settings -a [fan:3]/GPUTargetFanSpeed=50 --use-gtk2
# Display NVIDIA System Management Interface
nvidia-smi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment