Ethereum Mining with NVIDIA Graphics Cards and Ubuntu
USB flash drive ISO image for Ethereum mining with NVIDIA graphics cards and Ubuntu GNU/Linux (64-bit Intel/AMD (x86_64)). Other cryptocurrencies, such as Monero or Zcash, can also be mined.
- This ISO image is based on
🐧Ubuntu 16.04.3 LTS (Server).
- KISS, keep it simple, stupid. Only the most necessary included. No
- NVIDIA drivers version 390.25 installed.
- CUDA 8 (
/usr/local/cuda-8.0) and CUDA 9.1 (
/usr/local/cuda-9.1) ready to be used.
- ethminer with the optimized code by David Li (from NVIDIA) already compiled and ready for use.
- The code is optimized for NVIDIA GTX 1060, can improve NVIDIA GTX 1060 with 2 GPC performance by 15%, and NVIDIA GTX 1060 with 1 GPC performance by more than 30%. Meanwhile, it also increases performance on NVIDIA GTX 1070.
- Claymore's dual miner version 10.6, XMR-Stak Monero miner and EWBF's Zcash miner are also included.
- Already configured to participate in the ethermine ethereum mining pool.
- The installation is optimized for operation without monitor (headless).
- No hard disk drive (HDD/SSD) required. Installation on USB flash drive.
- Created and tested with NVIDIA GeForce GTX 1060, NVIDIA GeForce GTX 1070 and NVIDIA GTX 1080.
- Leave a Tip
- Other things you should do
- Wi-Fi WLAN
- Known Issues
Leave a Tip
With this ISO image, you can immediately mine Ethereum (ETH). Do not spend long time searching and researching.
I would be happy about a small donation. Thank you very much.
If you do not trust me and do not want to use the image, you will find all configuration files and scripts in the files folder. You only have to install an Ubuntu Linux with all the drivers and tools yourself.
If you want to get started quickly, simply use the pre-configured ISO image (contains the shell scripts, tools, and all necessary drivers).
Download the ISO image via BitTorrent (
ethereum-ubuntu-nvidia-miner_v3.img.7z.torrent). Compressed 1.8GB, unzipped 7.5GB.
It is recommended to test that the image is correct and safe to use. The MD5 calculation gives a checksum, which must equal the MD5 value of a correct ISO image.
More help is available here: https://en.wikipedia.org/wiki/Md5sum
- Unzip the 7zip file
- Copy the image
ethereum-ubuntu-nvidia-miner_v3.imgto a at least 8GB USB flash drive.
Larger USB flash drive should also work. I use the "Sandisk 32GB Ultra Fit USB 3.0 Flash Drive".
The copy can be done with
How this works exactly is explained to you here: https://wiki.archlinux.org/index.php/USB_flash_installation_media#Using_dd
Use the free and open source software Rufus. Simply select the ISO
ethereum-ubuntu-nvidia-miner_v3.img, the USB drive you want to create the bootable Linux onto and click start.
Be sure to select DD mode or the image will be transferred incorrectly.
Identify the disk (not partition) of your USB flash drive e.g. disk3:
[email protected] ~ $ diskutil list
Unmount your USB flash drive:
[email protected] ~ $ diskutil unmountDisk /dev/disk3
Copy the image to your USB flash drive:
[email protected] ~ $ sudo dd bs=1m if=Downloads/ethereum-ubuntu-nvidia-miner_v3.img of=/dev/rdisk3
rdisk3 (with r) not
disk3 is not a write error.
Set the primary graphics output to one of your NVIDIA cards. Disable Secure Boot (UEFI) and boot from the USB flash drive.
The network configuration is done by DHCP. Look in your router which IP your miner has.
Connect via SSH with your miner.
[email protected] ~ $ ssh [email protected]
Credentials. Password should be changed (
There is an extra program which helps you with the initial setup. Type
setup to start it.
[email protected] ~ $ setup
Go through each step. If you have everything set you should do a
After a minute uptime, a script (
screen) starts automatically in the background, which starts the mining.
[email protected] ~ $ crontab -l # run screen after reboot @reboot sleep 60 && /usr/bin/screen -d -m
mine to get it in the foreground:
[email protected] ~ $ mine
Use key combination Ctrl + a, and subsequently pressing a key to execute one of the commands given below:
- n : switches to the next available console
- p : switches back to the previous console
- c : creates a new virtual Bash console
- d : detaches the current screen sessions and brings you back to the normal terminal
More help is available here: https://help.ubuntu.com/community/Screen
miner.sh script starts automatically (
mine console). If you want to make settings that go beyond the
setup program, you need to adjust it. If you want to mine other cryptocurrencies, like Monero or Zcash, you also need to adjust this file.
[email protected] ~ $ nano -w miner.sh
To pull the last MH/s out of your cards, you should overclock.
With nvidia-overclock.sh (nvidia-settings)
nvidia-overclock.sh to adjust the memory and graphics clock. The settings are lost after a restart. You have to repeat it.
[email protected] ~ $ nvidia-overclock
For safety I did not add it in the autostart. Sometimes you exaggerate when overclocking, and you'll be glad if a simple reboot helps.
If you are sure that everything works, you can add it to the autostart. For security, it will start after 10 minutes.
[email protected] ~ $ crontab -e # After 10 minutes uptime, 'nvidia-overclock.sh' starts automatically # Only remove the comment if you are sure that everything works!!! #@reboot sleep 600 && bash ~/nvidia-overclock.sh >/dev/null 2>&1
You should experiment with the values and adjust the values in the script. I wish you success
Why not use nvidia-smi?
nvidia-smi does not work with my cards (NVIDIA GeForce GTX 1060 and 1070).
[email protected] ~ $ nvidia-smi -i 0 -ac 4004,1987 Setting applications clocks is not supported for GPU 0000:01:00.0. Treating as warning and moving on. All done.
No idea if this is a
nvidia-settings I have no problems.
You can try it with your cards. It should work with Ti models. Here the text from the help:
Specifies maximum <memory,graphics> clocks as a pair (e.g. 2000,800) that defines GPU's speed while running applications on a GPU.
Other things you should do
Update ethminer Ethereum Miner
Update and recompile ethminer:
[email protected] ~ $ cd ~/ethereum-mining/ethminer [email protected] ethminer $ git pull [email protected] ethminer $ cd build/ [email protected] build $ cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.1 .. [email protected] build $ cmake --build . --config release
Update Claymore's Dual Ethereum Miner
Download the latest version Claymore's Dual Ethereum miner for Linux and copy it to your USB flash driver. The copy can be done via SCP.
[email protected] ~ $ scp "Claymore's Dual GPU Miner - LINUX.tar.gz" [email protected]:/home/prospector/
Unpack the tar.gz file into the
[email protected] ~ $ tar xvfz "Claymore's Dual GPU Miner - LINUX.tar.gz" -C ~/claymore-dual-miner --strip-components=1
Update XMR-Stak Monero Miner
Update and recompile XMR-Stak:
[email protected]:~ $ cd ~/monero-mining/xmr-stak/ [email protected]:~/monero-mining/xmr-stak $ git pull [email protected]:~/monero-mining/xmr-stak $ nano -w xmrstak/donate-level.hpp # Edit donation fee [email protected]:~/monero-mining/xmr-stak $ cd build/ [email protected]:~/monero-mining/xmr-stak/build $ cmake -DXMR-STAK_COMPILE=generic -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.1 -DOpenCL_ENABLE=OFF .. [email protected]:~/monero-mining/xmr-stak/build $ make install
Select the CPU compute architecture:
-DXMR-STAK_COMPILE=generic= the miner can be used on all CPU's with sse2
-DXMR-STAK_COMPILE=native= the miner can be used only on the system where it is compiled but will archive the highest hash rate
Update EWBF's CUDA Zcash Miner
Download the latest version EWBF's CUDA Zcash miner for Linux and copy it to your USB flash driver. The copy can be done via SCP.
[email protected] ~ $ scp "Zec Miner Linux Bin.tar.gz" [email protected]:/home/prospector/
Unpack the tar.gz file into the
[email protected] ~ $ tar xvfz "Zec Miner Linux Bin.tar.gz" -C ~/zcash-mining/ewbf/ --strip-components=1
Install ccminer CUDA Miner
[email protected]:~ $ sudo apt-get install libcurl4-openssl-dev libssl-dev libjansson-dev automake autotools-dev build-essential [email protected]:~ $ sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda [email protected]:~ $ git clone https://github.com/tpruvot/ccminer.git [email protected]:~ $ cd ccminer [email protected]:~/ccminer $ git checkout linux [email protected]:~/ccminer $ ./build.sh [email protected]:~/ccminer $ ./ccminer --version
wpa_supplicant package, which includes the main program
wpa_supplicant and the passphrase tool
wpa_passphrase are already installed.
This method allows quickly connecting to a wireless network whose SSID is already known, making use of
wpa_passphrase, a command line tool which generates the minimal configuration needed:
[email protected] ~ $ sudo wpa_passphrase "SSID" "WPA2-KEY" > /etc/wpa_supplicant/wpa_supplicant.conf
[email protected] ~ $ sudo wpa_supplicant -i wlan0 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf -d
To enable Wi-Fi on the next reboot, remove the comments in the file
[email protected] ~ $ sudo nano -w /etc/network/interfaces [email protected] ~ $ reboot
More help is available here: https://wiki.archlinux.org/index.php/WPA_supplicant
Of course, with SSH.
munin and the
lighttpd web server are also installed. You can use it to access statistics pages.
Here you can find diagrams of the sensors, etc.
Fail2ban is installed. The program monitors logins via SSH. Too many false logins from an IP and the IP is blocked. At each start (reboot) and block you will receive an e-mail. You should check your e-mails from time to time.
[email protected] ~ $ mutt
More help is available here: https://help.ubuntu.com/community/Fail2ban
[email protected] ~ $ x11vnc
Enter the IP address and display in VNC Viewer to establish a direct connection. For example:
If you have found a bug (English is not my mother tongue) or have any improvements, send me a pull request.
Commits, Comments & Pull requests
I like to have elementary commits as it is much easier to manage for reviewing and debugging. So please don't be afraid to make as many commits as needed. Merging many commits is as easy as merging one, if not easier. Pull requests can regroup many commits at once. Just try to explain in the pull comment the ''why'' I should merge it (if it's not obvious). Please do not try to summarize several big changes (new features) in one pull.
And a few more things:
- Variables must be uppercase and must begin with
- Functions must be lower case and must begin with
- Check your shell scripts with ShellCheck before submitting.
- Please use four spaces to indent.
NVIDIA tools (especially
nvidia-smi) seems to be lagging on 7 GPU rigs, crashing the system and/or causing some system instabilities. Issue reproduced on two different 7 GPUs rigs (different motherboard & GPU brands). Six graphics cards work without problems.
NVIDIA GeForce GTX 1050 Ti does not have Performance Level 3 (only Level 2) thus
nvidia-overclock.sh has to be changed (change  with ).