I had some free time this weekend so I finally downloaded and checked out this OS. Coming from a sysadmin background, using cron and screen to run the miner makes me cringe especially when all major distributions have adopted systemd for service/log management. On the plus side, the OS is not running any scripts on startup by default so I can run my own
ansible-playbook for configuration management.
I didn't feel there was a need for functionality beyond the CRON and even that is something people do not get on startup. It's something you add after you have your system stable and all GPU's responding and operating. I have a hard time with cheap riser cards so I appreciate being able to reboot many times while fiddling with the riser cards and GPU's in my system. Once it's all stable I then uncomment the lines in Crontab to enable auto mining.
A big problem I'm having is that I use a VM (VirtualBox) to build the Master Image and can't get the video drivers to be installed reliably. If I add them to the image then people have failed startups and lockups with the image once they boot up the first time. I can't seem to get past this main issue otherwise I would have CUDA and Nvidia drivers built right into the base image.
It's where I'm trying to go but causing me a lot of frustration. Any help in this area or advice is appreciated! I do have several people using and loving the build. I am currently working on getting ETN (Electroneum into the v0.80) release. But the darn driver issue is killing me.
I wrote an ansible role for automatically configuring PPA, driver, kernel module, xorg.conf, lightdm so I prefer the current state without Nvidia driver preinstalled. For running the miner, I use an
ansible systemd service file template like
[Unit]
Description=Zcash Service
Wants=lightdm.service network-online.target
After=lightdm.service network-online.target
Conflicts=ccminer.service
[Service]
Environment=DISPLAY=:0
ExecReload=/bin/kill -HUP $MAINPID
ExecStartPre=/usr/bin/nvidia-smi -pl {{ gpu_watt }}
ExecStartPre=/usr/bin/nvidia-settings \
-a "GPUFanControlState=1" \
-a "GPUPowerMizerMode=1" \
-a "GPUTargetFanSpeed={{ gpu_fan }}" \
-a "GPUGraphicsClockOffset[3]={{ gpu_core }}" \
-a "GPUMemoryTransferRateOffset[3]={{ gpu_mem }}"
ExecStart=/opt/dstm/zm \
--telemetry=0.0.0.0:12345 \
--server {{ pool_url }} \
--port {{ pool_port }} \
--user {{ pool_user }} \
--pass {{ pool_password }}
ExecStopPost=/usr/bin/nvidia-settings \
-a "GPUGraphicsClockOffset[3]=0" \
-a "GPUMemoryTransferRateOffset[3]=0"
User=1000
KillMode=mixed
Restart=always
RestartSec=10s
TimeoutStopSec=10
Nice=-20
ProtectSystem=full
ProtectHome=yes
[Install]
WantedBy=graphical.target