Gitlab to Gitea Migration

This commit is contained in:
Pakobbix 2022-07-02 13:02:22 +02:00
parent f171b847d1
commit bee53efa7c
11 changed files with 529 additions and 2 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 Nikolai Nekrutenko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

111
ProxMox GPU Passthrough Normal file
View File

@ -0,0 +1,111 @@
1 Enter BIOS/UEFI menu
2. Enable the VT-d/AMD-d CPU flags
Because some menus are different look for something like Enable Virtualization Technology
3. Set boot priority for your UEFI-based Proxmox drive
You may see Proxmox and (UEFI) Proxmox boot options or something similar
You may need to disable CSM to ensure the system boots using UEFI
Proxmox SSH/Shell
4. SSH or Shell into Proxmox then:
GRUB
Edit /etc/default/grub and modify the appropriate line:
Intel: GRUB_CMDLINE_LINUX_DEFAULT=quiet intel_iommu=on iommu=pt vga=off
AMD: GRUB_CMDLINE_LINUX_DEFAULT=quiet amd_iommu=on iommu=pt vga=off
Save and close file then run update-grub2 to apply the changes
ZFS
Edit /etc/kernel/cmdline and modify the appropriate line:
Intel: root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet intel_iommu=on iommu=pt
AMD: root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet amd_iommu=on iommu=pt
Save and close file then run pve-efiboot-tool refresh to apply the changes
You may need to put quiet ... iommu=pt on its own line
Thanks to u/edfreitag for supplying the sourcing!
5. Still in Proxmox SSH/Shell, edit Kernel Modules /etc/modules and add the following lines:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
6. Save and close modules file then run update-initramfs to add the kernel modules
7. Reboot host machine
Proxmox WebUI
8. Create a new VM with OVMF BIOS and as a q35 machine. DO NOT SKIP setting processor type!
# Use whatever other settings you want, but the following are required
SYSTEM
BIOS: OVMF(UEFI)
Machine: q35
PROCESSOR
TYPE: IvyBridge # Your CPU may not be an IvyBridge
https://preview.redd.it/w9ir4kyafif61.png?width=722&format=png&auto=webp&s=202019ae95d2ad10fb081d2a0dc099f69b32dc9a
9. Add your graphics card as a new PCI device
10. Set device to use All functions and PCI Express. DO NOT set as primary GPU!
11. Start VM and install OS
Virtual Machine
12. Boot OS and install graphics card driver
13. Open Device Manager and confirm you see both the GPU name and an error 43 on your display driver
14. Enable RDP (optional as this guide allows you to use both Console and RDP)
15. Safely reboot then power down VM
Proxmox VM Settings
16. In Proxmox VM settings:
Set Display to VirtIO-GPU (virtio)
Set PCI Device as Primary GPU
Endgame
17. Start VM and confirm error 43 is gone
18. Start gaming!
Cheers!

View File

@ -1,3 +1,86 @@
# minerwrangler
![logo](/resources/minerwrangler.png)
A bundle of bash scripts to make headless crypto mining on linux a simple reality. Unfortunately only NVIDIA support for now.
<p align="center">
<em>Get it? It's headless!</em>
</p>
<h2 align="center">
A headless driver installer & crypto miner configurator
</h2>
<h3 align="center">
<a href="https://cryptoclarified.netlify.app/minerwrangler/">Installation & Tutorial</a>
</h3>
<p align="center">
MinerWrangler is the ultimate bundle of bash scripts to ease your way into cryptocurrency mining that is open-source and gives you full control over your rigs—by default. No monitor, keyboard, or mouse required. Only NVIDIA support for now.
</p>
<p align="center">
<a href="https://github.com/NikolaiTeslovich/minerwrangler/blob/main/LICENSE">
<img alt="MIT license" src="https://img.shields.io/github/license/NikolaiTeslovich/minerwrangler">
</a>
<img alt="GPU Support" src="https://img.shields.io/badge/GPU-NVIDIA-green">
</p>
## The ultimate one-liner
```
git clone https://github.com/NikolaiTeslovich/minerwrangler.git && cd minerwrangler && chmod +x install1.sh && sudo ./install1.sh
```
## Features
- [x] Simple and intuitive to use
- [x] One line to install
- [x] Full control over your rig(s)
- [x] Truly headless
- [x] Integrated with 💊 [OhGodAnETHlargementPill](https://github.com/admin-ipfs/OhGodAnETHlargementPill) (GTX 1080, GTX 1080Ti & TITAN Xp—GDDR5X GPUs)
> "ED (Ethereum Dysfunction) affects 1 in 10 NVIDIA GPUs in North America"
- [x] Support for the latest & greatest version of Ubuntu Server LTS
- [x] Firewall is enabled by default
- [x] Command-line interface
## Tested on
* **GPUs**
* GTX 1080
* RTX 2080
* **Driver version**
* nvidia-driver-440
* nvidia-driver-460 (default)
## To do
* Run the installation in a screen session for more bullet-proofness
* Add option to automatically mine on boot
* Script to more easily configure overclocks and fan speeds
* RVN mining support
* Break down existing code in detail
* XMRig support
* AMD GPU support
* Support other miners and algorithms
## Preface
NVIDIA drivers on Linux are rather finicky and do not like being overclocked without a monitor connected to them, so I had to trick them using a combination of **lightdm** and some other commands.
After countless hours, probably even days of banging my head against the monitor in despair to have my rigs work headlessly, and be **actually be overclockable**, I wanted to find a way that was simple, yet have the code and process be open-source. In contrast to operating systems like HiveOS, or NHOS, using *MinerWrangler* in conjunction with Ubuntu Server, you can actually understand each step of the process and have full control over your rigs as providers of the blockchain.
## Credits
### Threads and forums that helped massively
* [OC Nvidia GTX1070s in Ubuntu 16.04LTS for Ethereum mining](https://gist.github.com/bsodmike/369f8a202c5a5c97cfbd481264d549e9) - tricking NVIDIA drivers into allowing headless overclocking
* [How to create a bootable USB stick to flash a BIOS](https://askubuntu.com/questions/46886/how-to-create-a-bootable-usb-stick-to-flash-a-bios) - updating BIOS on an old computer
### Logo
* [Western retro font](https://www.dafont.com/western-retro.font)
* [Cowboy hat](https://www.pngitem.com/middle/hTiibR_guitar-clipart-cowboy-hat-cartoon-transparent-cowboy-hat/)
* [Cactus](http://clipart-library.com/clipart/cactus-clipart-34.htm)
* [Headless person from Dumb Ways To Die](https://dumbways2die.fandom.com/wiki/Hapless)
* [Ethereum logo](https://en.wikipedia.org/wiki/Ethereum#/media/File:Ethereum-icon-purple.svg)

42
clockfan.sh Normal file
View File

@ -0,0 +1,42 @@
#!/bin/bash
# created by Nikolai
# Enable persistence mode on all GPUs
nvidia-smi -pm ENABLED
# Set power limits in Watts
# -------------------------
# GPU 0 - set the power limit to 155 Watts
nvidia-smi -i 0 -pl 155
# GPU 1 - set the power limit to 145 Watts
nvidia-smi -i 1 -pl 145
# Configure gpu fan speed by setting GPUFanControlState=1 and modifying the GPUTargetFanSpeed=fanspeed%
# -----------------------------------------------------------------------------------------------------
# GPU 0 - enable fan speed control and set the target fan speed to 55%
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 sudo nvidia-settings \
-a '[gpu:0]/GPUFanControlState=1' -a '[fan:0]/GPUTargetFanSpeed=55'
# GPU 1 - enable fan speed control and set the target fan speed to 75%
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 sudo nvidia-settings \
-a '[gpu:1]/GPUFanControlState=1' -a '[fan:1]/GPUTargetFanSpeed=75'
# Configure GPU memory speeds (VRAM) with GPUMemoryTransferRateOffset[performancestate]=Mhz_offset
# Notice how performancestates 2, 3 & 4 are used
# ----------------------------------------------
# GPU 0 - Increase the memory speed by 1000 Mhz (500Mhz)
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 sudo nvidia-settings \
-a '[gpu:0]/GPUMemoryTransferRateOffset[2]=1000' -a '[gpu:0]/GPUMemoryTransferRateOffset[3]=1000' -a '[gpu:0]/GPUMemoryTransferRateOffset[4]=1000'
# GPU 1 - Increase the memory speed by 1000 Mhz (500Mhz)
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 sudo nvidia-settings \
-a '[gpu:1]/GPUMemoryTransferRateOffset[2]=1000' -a '[gpu:1]/GPUMemoryTransferRateOffset[3]=1000' -a '[gpu:1]/GPUMemoryTransferRateOffset[4]=1000'
# Configure GPU core clock speed with GPUGraphicsClockOffset[performancestate]=Mhz_offset
# Once again, notice how performancestates 2, 3 & 4 are used
# ----------------------------------------------------------
# GPU 0 - Increase the memory speed by 150 Mhz
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 sudo nvidia-settings \
-a '[gpu:0]/GPUGraphicsClockOffset[2]=150' -a '[gpu:0]/GPUGraphicsClockOffset[3]=150' -a '[gpu:0]/GPUGraphicsClockOffset[4]=150'
# GPU 1 - Increase the memory speed by 150 Mhz
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 sudo nvidia-settings \
-a '[gpu:1]/GPUGraphicsClockOffset[2]=150' -a '[gpu:1]/GPUGraphicsClockOffset[3]=150' -a '[gpu:1]/GPUGraphicsClockOffset[4]=150'

72
config.sh Normal file
View File

@ -0,0 +1,72 @@
#!/bin/bash
# created by Nikolai
# Ubuntu server 20.04.2 LTS
#define colors for colored text
red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`
confirm_install() {
local REPLY
while true; do
read -r -n 1 -p "${1:-Continue?} [y/n]: " REPLY
case $REPLY in
[yY])
echo
((var*=2))
return 0 ;;
[nN])
echo
((var-=1))
return 1 ;;
*)
echo " ${red}invalid input${reset}"
esac
done
}
# SETTING UP THE PHOENIXMINER CONFIG
# Multiple-choice type of deal for finding the closest server
echo "Which region is closest to you"
select region in US_East US_West Asia Europe
do
case $region in
US_East|US_West|Asia|Europe)
break
;;
*)
echo "Invalid selection"
;;
esac
done
confirm_install "This region is closest to you? $region" || exit 0
# modify the eth.sh file for the server locations
if [[ $region =~ "US_West" ]]; then
sed -i "s/us1/us2/g" eth.sh
elif [[ $region =~ "Asia" ]]; then
sed -i "s/us1/asia1/g" eth.sh
elif [[ $region =~ "Europe" ]]; then
sed -i "s/us1/eu1/g" eth.sh
fi
# update the eth.sh file with your ETH address
read -p 'Enter ETH wallet address: ' wallet
confirm_install "Double-check that this is your address? $wallet" || exit 0
sed -i "s/ETHwalletaddr/$wallet/g" eth.sh
# update the eth.sh file with your rig name
read -p 'Fancy rig name (only standard characters): ' rig
confirm_install "Is this the name you wanted? $rig" || exit 0
sed -i "s/rigname/$rig/g" eth.sh
echo "miner config complete"
# STARTED WORKING ON OC SETTINGS AND SETUP
# variable that gets the number of graphics cards
# numgpus=$(nvidia-smi --query-gpu=name --format=csv,noheader | wc -l)

7
eth.sh Normal file
View File

@ -0,0 +1,7 @@
#!/bin/bash
# created by Nikolai
cd PhoenixMiner
./PhoenixMiner -pool stratum+tcp://us1.ethermine.org:4444 -pool2 stratum+tcp://us1.ethermine.org:14444 -wal ETHwalletaddr.rigname

149
install1.sh Normal file
View File

@ -0,0 +1,149 @@
#!/bin/bash
# created by Nikolai
# Ubuntu server 20.04.2 LTS
# DEFINING ALL THE VARIABLES
#define colors for colored text
red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`
#define the installation variable, and set it to one
var=1
# define variables for the manufacturer and model of the GPU(s), and hide the command line output
{
vendor=$(lshw -class display | grep 'vendor' | uniq)
model=$(lshw -class display | grep 'product')
} &> /dev/null
# DEFINING THE INSTALLATION FUNCTIONS
# define the confirm install function
confirm_install() {
local REPLY
while true; do
read -r -n 1 -p "${1:-Continue?} [y/n]: " REPLY
case $REPLY in
[yY])
echo
((var*=2))
return 0 ;;
[nN])
echo
((var-=1))
return 1 ;;
*)
echo " ${red}invalid input${reset}"
esac
done
}
# define Nvidia installation
nvidia_install() {
# add the nvidia drivers ppa
add-apt-repository ppa:graphics-drivers/ppa -y
apt upgrade -y
# install all the necessary libraries, will ask config during install
latestnv=$(apt search nvidia-driver-[0-999] | grep -v "Transitional\|Übergangspaket" | grep "nvidia-driver-[400-999]" | sort -nr | head -n 1 | sed 's/\/.*//g')
apt install $latestnv nvidia-cuda-toolkit -y
}
IFS=$'\n'
question="Choose your preferred miner Software: "
entrys=("T-Rex Miner" "Phoenix Miner" "Nanominer")
PS3="$question "
select entry in "${entrys[@]}" "Abort"; do
miner_install() {
if ((REPLY == 1 + ${#entrys[@]})); then
exit
break
elif ((REPLY > 0 && REPLY <= ${#entrys[@]})); then
if [ "$entry" == "T-Rex Miner" ]; then
latest=$(curl -s https://github.com/trexminer/T-Rex/releases/latest | sed 's/.*href="\|">.*//g')
filename=$(curl -s "$latest" | grep -i "linux" | grep -i "text" | sed 's/.*">\|<\/.*//g')
wget "$(echo "$latest" | sed 's/tag/download/g')/$filename"
mkdir T-Rex && tar -zxvf $filename -C T-Rex
elif [ "$entry" == "Phoenix Miner" ]; then
dllink=$(curl -s https://phoenixminer.org/download/latest/ | grep "Linux" | grep "cutt" | sed 's/.*href="\|"\ rel.*//g' | head -n 1)
wget -r -p -k "$dllink"
cd cutt.ly/
mv * phoenixminer.zip
unzip phoenixminer.zip
elif [ "$entry" == "Nanominer" ]; then
latest=$(curl -s https://github.com/nanopool/nanominer/releases/latest | sed 's/.*href="\|">.*//g')
filename=$(curl -s "$latest" | grep 'linux-[0-9].[0-9].[0-99]-cuda' | grep -i "text" | sed 's/.*">\|<\/.*//g')
wget "$(echo "$latest" | sed 's/tag/download/g')/$filename"
tar -xvf "$filename"
mv nanominer*/ nanominer
fi
fi
break
done
}
# ETHlargementPill installation for GTX 1080, 1080TI and Titan XP
pill_install() {
# Download
wget https://github.com/admin-ipfs/OhGodAnETHlargementPill/raw/master/OhGodAnETHlargementPill-r2
# Make the file executable, and rename it
chmod +x OhGodAnETHlargementPill-r2
mv OhGodAnETHlargementPill-r2 ETHPill
}
# THE CONDITIONAL INSTALLATON CODE
clear
if [[ $vendor =~ "NVIDIA" ]]; then
echo -e "${green}NVIDIA GPUs detected${reset}" "\U2714"
elif [[ $vendor =~ "AMD" ]]; then
echo "${red}AMD GPUs are not yet supported${reset}"
echo "exiting in 5 seconds"
sleep 5
exit 0
else
echo "${red}No GPUs detected${reset}"
echo "exiting in 5 seconds"
sleep 5
exit 0
fi
echo "$model"
# setup questions
confirm_install "Is this the correct hardware?" || exit 0
clear
printf "\U1F48A" && confirm_install "The pill? (GTX 1080, 1080Ti & Titan XP)"
clear
# update and upgrade packages to the latest version
apt update && apt upgrade -y
# just such a useful tool, should be installed regardless of option
apt install screen -y
# allow ssh through firewall, and enable firewall for security purposes
ufw allow ssh
yes | ufw enable
# installation
if [[ $vendor =~ "NVIDIA" ]]; then
nvidia_install
miner_install
if [[ $var = 4 ]]; then
pill_install
fi
else
exit 0
fi
# REBOOT SYSTEM AND GET READY TO MINE
# make the next install script executable, while removing permissions for the current one
chmod 0 install1.sh
chmod +x install2.sh
clear
# display a message, then reboot
echo "${red}Rebooting ...${reset}"
sleep 2
reboot

28
install2.sh Normal file
View File

@ -0,0 +1,28 @@
#!/bin/bash
# created by Nikolai
# Ubuntu server 20.04.2 LTS
#define colors for colored text
red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`
# install packages and run the nvidia-xconfig to make the system truly headless
apt upgrade -y
apt install --no-install-recommends xorg lightdm lightdm-gtk-greeter -y
nvidia-xconfig --enable-all-gpus --allow-empty-initial-configuration --cool-bits=28 --connected-monitor="DFP-0"
# setup the xorg config, notice how the "\ \ \ \" is used as indents
sed -i '/Option "ConnectedMonitor" "DFP-0"/a\ \ \ \ Option \ \ \ \ \ \ \ \ "Interactive" "False"' /etc/X11/xorg.conf
# make the other scripts executable, while removing permissions for the current one
chmod 0 install2.sh
chmod +x mine.sh eth.sh clockfan.sh config.sh
# display some beautiful messages
echo -e "\U26CF" "${green}Happy Mining${reset} & ${red}Heating${reset}" "\U26CF"
sleep 3
clear
echo "${red}Rebooting for the last time...${reset}"
sleep 2
reboot

14
mine.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/bash
# created by Nikolai
# check if the eth script exists, then start mining
test -f eth.sh && screen -S eth -d -m ./eth.sh || echo "no ETH script found"
# check if the pill exists, then start mining
test -f ETHPill && screen -S pill -d -m sudo ./ETHPill || echo -e "no" "\U1F48A" "found"
# list all the screens
screen -list
echo "mining started, feel free to exit ssh"

BIN
resources/minerwrangler.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB