How I Got Hive Fully Functional on a ASUS TUF DASH F15 Laptop

Hello All,
I am posting here to help folks who may want to run Hive.OS on their laptop. I am a huge fan of Hive.os. I have just a tiny personal mining farm, but one of my rigs is a ASUS Laptop with a 3070 that was unstable in Windows making it a pain in the butt to mine on. Here is how I got it running on Hive.os and up to par with what I had in Windows 10, but more stable and easier to manage on Hive.

1.) Getting X Server To Start
I initially ran into issues with XServer not starting. I managed to pretty easily resolve this when I checked my xorg.conf file in /etc/X11/xorg.conf file and saw the PCI bus of my GPU was incorrect. The PCI bus in lspci showed 0000:00:02.0 (integrated) and 0000:01:00.0 for my 3070 Max Q, however the xorg.conf file showed 00:00:02 and 00:01:0 incorrectly. I hard coded the correct PCI bus addresses in /hive/bin/xorg-conf

2.) Getting Nvidia-OC working
Pretty much caused by the same issue as the incorrect PCI address above. I updated /hive/sbin/gpu-detect and added the following sed one liner where it was calling lspci:
list=lspci | grep -E "$GPU_DETECT_STRING"

list=lspci | grep -E "$GPU_DETECT_STRING" | sed s/0000://

I also added the same sed statement to the lspci line right above this one. This may make the first fix I did above not necessary but I didn’t confirm.

Updated line 258 in nvidia-oc: removed -q parameter for the fan information because of an error querying for the fan speed which is not available in the laptop.

3.) Changed Lid Close Behavior:
Followed the guide here to allow me to run the laptop with the lid closed and additional fan I have blowing down on it:

4.) Downclock the CPU: Since I dual mine ETH and XMR I needed to downclock the CPU. I Followed the guide here to downclock the CPU. Initially the CPU was using the default ‘ondemand’ scaling_governor, however, this was causing the CPU to turbo boost to 3600 MHz and 95 centigrade. I updated the scaling_max_frequency to 3000000 (make sure to choose a valid value of the available frequencies) to downlock the CPU to 3000 MHz and am running at 72C now.
https://wiki.archlinux.org/title/CPU_frequency_scaling#Tuning_the_ondemand_governor

Windows utilities allows you to scale the wattage the Turbo boost is allowed to use (I found about 22Watts in windows 10 was best), but I am not sure how to get that working and it appears to require MSR updates in Linux.

2 Likes

Thank you for the info.
I have the same laptop. I will try yo follow your instructions.
Did you overclock it? What was your settings?
How did you control the interior fan?
Lot of questions :slight_smile:
I will try this settings soon. I hope it is easy to do.
Best regards

On the GPU I have core clock speed fixed at 540MHz (+340) and Memory 6699 MHz(+1399). 50.87 MH/s for ETH. It’s much more stable than windows which would not keep the core clock fixed at this downclock speed using 95W and would require me to manually turn off/on the OC every day.

It seems on Linux controlling the GPU fan speed is not possible yet unfortunately, so it runs by default in Silent mode it seems. On Windows you can not control it either but only set the fan mode to turbo using Armory Crate. At first I was running the laptop upside down on a wooden desk, with a USB Desk Fan blowing on the air intakes and getting about 66 Celsius. However I have now removed the plastic casing from the bottom of the laptop and have the fan blowing directly on the GPU, getting 65C on the GPU and 72C on the CPU mining XMR (Monero) @ 2.86Kh/s.

It does seem the CPU Fan speed may be controllable though I have not done that yet. Here is the article that shows how to do it:
https://wiki.archlinux.org/title/fan_speed_control

I created the following shell script to downclock my CPU to keep the temps cool.
#!/bin/bash
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 3000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo 3000000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo 3000000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
echo 3000000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
echo performance > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
echo 3000000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
echo performance > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor
echo 3000000 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
echo performance > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
echo 3000000 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
echo performance > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor
echo 3000000 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq

cat /proc/cpuinfo | grep MHz