#!/bin/bash set -e Version=18.4.1 Cuda=YES kernel_custom=YES Miners=Yes Webmin="webmin-2.105" kernel_dkms="5.15.0-71-generic" driver=NVIDIA if (( $EUID != 0 )); then echo -e "$(tput setaf 11)This must be run as root. Try 'sudo $0'.$(tput sgr0)" exit 1 fi clear if [ ! -f /home/wareck/.ipass ] then echo "passe=1" > /home/wareck/.ipass fi source /home/wareck/.ipass export TERM=xterm-256color Cuda=${Cuda^^} kernel_custom=${kernel_custom^^} driver=${driver^^} Miners=${Miners^^} cpass="" function ubuntu_version_check { if [[ $(lsb_release -rs) == "20.04" ]] then Ubuntu_version="20.04.6" else echo "Non-compatible version !" exit 0 fi } function print_centered { [[ $# == 0 ]] && return 1 declare -i TERM_COLS="$(tput cols)" declare -i str_len="${#1}" [[ $str_len -ge $TERM_COLS ]] && { echo "$1"; return 0; } declare -i filler_len="$(( (TERM_COLS - str_len) / 2 ))" [[ $# -ge 2 ]] && ch="${2:0:1}" || ch=" " filler="" for (( i = 0; i < filler_len; i++ )); do filler="${filler}${ch}" done printf "%s%s%s" "$filler" "$1" "$filler" [[ $(( (TERM_COLS - str_len) % 2 )) -ne 0 ]] && printf "%s" "${ch}" printf "\n" return 0 } function decompte_ { echo -e "$(tput setaf 10)\nReboot in 10 seconds (CRTL+C to abord):$(tput sgr0)" for i in {9..0} do echo -e -n "$i " sleep 1 done echo "" sudo reboot } function intro_ { print_centered "$(tput setaf 5)" print_centered " ██████╗██╗ ██╗██████╗ ███████╗" print_centered "██╔════╝██║ ██║██╔══██╗██╔════╝" print_centered "██║ ██║ ██║██████╔╝█████╗ " print_centered "██║ ██║ ██║██╔══██╗██╔══╝ " print_centered "╚██████╗╚██████╔╝██████╔╝███████╗" print_centered " ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝" echo -n "$(tput sgr0)" print_centered "Cube Server installation script v$Version" print_centered "Ubuntu version 20.04.6" if [ $Cuda = "YES" ] then print_centered "CUDA Compute Drivers" fi print_centered "Stage $passe/4" } function update_ { case $passe in 1) echo -e "$(tput setaf 10)\nUpdate and install packages (second pass):$(tput sgr0)" sudo apt-get update echo -e "" sudo apt-get install lxde lxde-icon-theme -y echo -e "" sudo apt-get install samba cifs-utils mdadm git build-essential libtool pkg-config automake autoconf ethtool net-tools openvpn filezilla \ tasksel lzma-dev lzma cmake libuv1-dev libssl-dev msr-tools tightvncserver lm-sensors openssh-server xfsprogs -y echo -e "" sudo apt-get install zstd pixz pbzip2 pigz btrfs-progs gparted gpart gnome-remote-desktop libcanberra-gtk-module \ ctorrent libcurl4-openssl-dev bison byacc screen libudev-dev libjansson-dev libncurses5-dev libmicrohttpd-dev curl nvme-cli -y echo -e "" sudo apt-get install libglib2.0-dev libgtk2.0-dev libsensors4-dev htop vlc locate cmake -y echo -e "Done." ;; 2) if [ $Cuda = "YES" ] then echo -e "$(tput setaf 10)\nInstall Cuda packages:$(tput sgr0)" sudo apt-get install libgmp-dev libnuma-dev cmake libuv1-dev nvidia-cuda-dev libmicrohttpd-dev gcc-8 g++-8 nvidia-cuda-toolkit -y fi echo -e "Done.\n" ;; esac } function kernel_check_ { unamestr=$(uname -r) if [ -f /tmp/ksource.txt ]; then rm /tmp/ksource.txt;fi wget -c -q http://192.168.1.8:3000/wareck/custom_kernel/raw/master/ksource.txt -O /tmp/ksource.txt source /tmp/ksource.txt if ! [[ "$unamestr" == $KLversion ]] then echo -e "\n$(tput setaf 10)Custom kernel install $(tput setaf 9)$KLversion$(tput setaf 10) (fix DKMS/WOL) :$(tput sgr0)" cd /tmp/ wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/custom_kernel/$kernel_version chmod +x $kernel_version sudo ./$kernel_version if ! [ -f /etc/modprobe.d/blacklist-nvidia-nouveau.conf ] then echo "Blacklist nvidia-nouveau driver..." echo "System will reboot" sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf" sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf" fi fi } function nvidia_driver_ { if [ $passe = "1" ] then if ! [ -f /etc/modprobe.d/blacklist-nvidia-nouveau.conf ] then echo "Blacklist nvidia-nouveau driver..." echo "System will reboot" sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf" sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf" fi if [ $Cuda = "NO" ] then sudo apt-get install build-essential libglvnd-dev cmake -y else sudo apt-get install build-essential libglvnd-dev cmake libhugetlbfs-dev libc-dev libc6-dev g++ -y fi echo "passe=2" > /home/wareck/.ipass decompte_ fi if [ $passe = "2" ] then case $Cuda in NO) echo -e "$(tput setaf 10)\nInstall NVIDIA GTX1080 Drivers :$(tput sgr0)" sleep 3 sudo apt-get install nvidia-driver-525 -y touch /home/wareck/.pass2 decompte_ ;; YES) echo -e "$(tput setaf 10)\nInstall CUDA Drivers :$(tput sgr0)" cd /home/wareck/ echo -e "Download MegaDownload:" git clone https://github.com/wareck/megadown.git sudo cp /home/wareck/megadown/megadown /usr/local/bin/megadown sudo rm -r /home/wareck/megadown #megadown https://mega.nz/file/r0wwnZCJ#27WWRMwSsGYXiMUHf2OgcGYp2O2itChsBxcK9znmr5E #chmod +x cuda_11.8.0_520.61.05_linux.run #sudo ./cuda_11.8.0_520.61.05_linux.run #sudo rm cuda_11.8.0_520.61.05_linux.run #wget -c https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run #megadown https://mega.nz/file/u9h1wbYL#QuHtEpCErWXDFjjMVFTK9QzcAI5SrsgTMbx6DfFJT2k #wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run wget https://developer.download.nvidia.com/compute/cuda/12.3.1/local_installers/cuda_12.3.1_545.23.08_linux.run chmod +x cuda_12.3.1_545.23.08_linux.run sudo ./cuda_12.3.1_545.23.08_linux.run --silent --driver --toolkit sudo rm cuda_12.3.1_545.23.08_linux.run echo "passe=3" > /home/wareck/.ipass decompte_ ;; esac fi } function download_packs_ { echo -e "$(tput setaf 10)\nDownload complement packs:$(tput sgr0)" wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/cgminer.conf -O /home/wareck/Build_Cube/pack/cgminer.conf wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/chia-miner.tar.xz -O /home/wareck/Build_Cube/pack/chia-miner.tar.xz wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/gerbera.tar.xz -O /home/wareck/Build_Cube/pack/gerbera.tar.xz wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/start_cgminer.tar.xz -O /home/wareck/Build_Cube/pack/start_cgminer.tar.xz wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/$Webmin.tar.xz -O /home/wareck/Build_Cube/pack/$Webmin.tar.xz wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/xmrig.tar.xz -O /home/wareck/Build_Cube/pack/xmrig.tar.xz wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/zfsmanager-0.0.4.wbm.gz -O /home/wareck/Build_Cube/pack/zfsmanager-0.0.4.wbm.gz wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/gpu-miners.tar.xz -O /home/wareck/Build_Cube/pack/gpu-miners.tar.xz cp /home/wareck/Build_Cube/pack/gpu-miners.tar.xz /home/wareck cp /home/wareck/Build_Cube/pack/pack1.tar.xz /home/wareck cp /home/wareck/Build_Cube/pack/pack2.tar.xz /home/wareck cp /home/wareck/Build_Cube/pack/pack3.tar.xz /home/wareck cp /home/wareck/Build_Cube/pack/xmrig.tar.xz /home/wareck cp /home/wareck/Build_Cube/pack/start_cgminer.tar.xz /home/wareck echo -e "Done." if [ ! -d /home/wareck/$Webmin ] then cp /home/wareck/Build_Cube/pack/$Webmin.tar.xz /home/wareck/ cd /home/wareck/ echo -e "$(tput setaf 10)\nWebmin uncompress:$(tput sgr0)" tar xfJ $Webmin.tar.xz rm $Webmin.tar.xz echo -e "Done" fi echo -e "$(tput setaf 10)\nDownloading miners:$(tput sgr0)" cd /home/wareck if ! [ -d miners ]; then mkdir -p miners;fi cd /home/wareck/miners if ! [ -d xmrig ] then git clone https://github.com/xmrig/xmrig.git echo -e "" fi #if ! [ -d xmr-stak ] #then #git clone https://github.com/fireice-uk/xmr-stak.git #echo -e "" #fi #if ! [ -d xmr-stak-rx ] #then #git clone https://github.com/fireice-uk/xmr-stak.git -b xmr-stak-rx xmr-stak-rx #echo -e "" #fi if ! [ -d cgminer-gekko ] then git clone https://github.com/wareck/cgminer-gekko.git echo -e "" fi if ! [ -d cgminer-lketc ] then git clone https://github.com/wareck/cgminer-lketc.git fi echo -e "Done.\n" } function build_miners_ { cmake_ #check cmake version cd /home/wareck tar xfJ gpu-miners.tar.xz cd /home/wareck/miners echo -e "$(tput setaf 10)\nBuild Cgminer-gekko:$(tput sgr0)" cd cgminer-gekko sudo usermod -a -G dialout,plugdev wareck sudo cp 01-cgminer.rules /etc/udev/rules.d/ CFLAGS="-O2 -march=native" ./autogen.sh ./configure --enable-gekko make -j$((`nproc`+1)) tar xfJ /home/wareck/start_cgminer.tar.xz rm /home/wareck/start_cgminer.tar.xz cd .. cat <<'EOF'>> /tmp/cgminer #!/bin/sh -e ### BEGIN INIT INFO # Provides: cgminer # Required-Start: networking # Default-Start: 3 4 5 # Default-Stop: 0 6 ### END INIT INFO case "$1" in start) cd /home/wareck/miners/cgminer-gekko/ su wareck -c "screen -dmS cgminer /home/wareck/miners/cgminer-gekko/cgminer" ;; stop) sudo killall -9 cgminer | true ;; *) echo "Usage: /etc/init.d/cgminer {start|stop}" exit 1 ;; esac exit 0 EOF chmod +x /tmp/cgminer sudo cp /tmp/cgminer /etc/init.d/cgminer sudo update-rc.d cgminer defaults if ! [ -d /home/wareck/.cgminer ] then mkdir /home/wareck/.cgminer fi cat <<'EOF'>> /tmp/cgminer.conf { "pools" : [ { "url" : "stratum+tcp://stratum.braiins.com:3333", "user" : "wareck.gekko", "pass" : "x" } ] , "api-description" : "cgminer 4.12.0-wrk", "api-mcast-addr" : "224.0.0.75", "api-mcast-code" : "FTW", "api-mcast-des" : "", "api-mcast-port" : "4028", "api-port" : "4028", "api-host" : "0.0.0.0", "gekko-lowboost" : true, "gekko-2pac-freq" : "155.0", "gekko-compac-freq" : "150.0", "gekko-tune-down" : "95.0", "gekko-tune-up" : "97.0", "gekko-wait-factor" : "0.5", "gekko-bauddiv" : "0", "gekko-newpac-freq" : "100", "gekko-start-freq" : "100", "gekko-step-freq" : "6.2", "gekko-step-delay" : "15", "gekko-tune2" : "0", "fallback-time" : "120", "hotplug" : "5", "log" : "5", "shares" : "0", "suggest-diff" : "0" } EOF cp /tmp/cgminer.conf /home/wareck/.cgminer/ echo "Done." cd /home/wareck/miners echo -e "$(tput setaf 10)\nBuild Cgminer-lketc:$(tput sgr0)" cd cgminer-lketc CFLAGS="-O2 -march=native" ./autogen.sh ./configure make -j$((`nproc`+1)) cd .. echo "Done." echo -e "$(tput setaf 10)\nUncompress xmr files:$(tput sgr0)" tar xfJ /home/wareck/xmrig.tar.xz --checkpoint=.100 echo "Done." echo -n -e "\n" echo -e "$(tput setaf 10)\nBuild xmrig:$(tput sgr0)" cd xmrig git config --global --add safe.directory /home/wareck/miners/xmrig git pull sed -i "s/kDefaultDonateLevel = 5;/kDefaultDonateLevel = 0;/g" src/donate.h sed -i "s/kMinimumDonateLevel = 1;/kMinimumDonateLevel = 0;/g" src/donate.h cd scripts ./build_deps.sh cd .. cd build cmake .. -DXMRIG_DEPS=scripts/deps make -j$((`nproc`)) cd .. echo "Done." #echo -e "$(tput setaf 10)\nBuild xmrig-upx:$(tput sgr0)" #cd xmrig-upx #git config --global --add safe.directory /home/wareck/miners/xmrig-upx #git pull #sed -i "s/kDefaultDonateLevel = 5;/kDefaultDonateLevel = 0;/g" src/donate.h #sed -i "s/kMinimumDonateLevel = 1;/kMinimumDonateLevel = 0;/g" src/donate.h #cd build #cmake .. -DWITH_HTTPD=OFF #make -j$((`nproc`+1)) #cd .. #cd .. #echo "Done." rm -r -f xmrig-upx #echo -e "$(tput setaf 10)\nBuild xmr-stak-rx:$(tput sgr0)" #cd xmr-stak-rx #git config --global --add safe.directory /home/wareck/miners/xmr-stak-rx #git pull #cd build #cmake .. #make -j$((`nproc`+1)) #cd .. #cd .. #echo "Done." #echo -e "$(tput setaf 10)\nBuild xmr-stak:$(tput sgr0)" #cd xmr-stak #if ! [ -d build ];then mkdir build ;fi #git config --global --add safe.directory /home/wareck/miners/xmr-stak #git pull #cd build #cmake .. -DOpenCL_ENABLE=OFF -DCUDA_ENABLE=OFF #make -j$((`nproc`+1)) #cd .. #cd .. #echo "Done." #if [ $Cuda = "YES" ] #then #echo -e "$(tput setaf 10)\nBuild xmrig-cuda:$(tput sgr0)" #git clone https://github.com/xmrig/xmrig-nvidia.git #cd xmrig-nvidia #mkdir build #cd build #cmake .. -DCMAKE_C_COMPILER=$(which gcc-8) -DCMAKE_CXX_COMPILER=$(which g++-8) #make -j$((`nproc`+1)) #fi #Reduce mode if [ -d /home/wareck/miners/xmrig-upx ];then rm -r /home/wareck/miners/xmrig-upx;fi if [ -d /home/wareck/miners/xmr-stak ];then rm -r /home/wareck/miners/xmr-stak;fi if [ -d /home/wareck/miners/xmr-stak-rx ];then rm -r /home/wareck/miners/xmr-stak-rx;fi sudo chmod -R 775 /home/wareck/miners } function configure_ { echo -e "$(tput setaf 10)\nlxPanel sensors:$(tput sgr0)" cd /home/wareck if ! [ -d sensors-lxpanel-plugin ] then git clone https://github.com/danamlund/sensors-lxpanel-plugin.git fi cd /home/wareck cd sensors-lxpanel-plugin make sudo make install sudo rm -r /home/wareck/sensors-lxpanel-plugin echo "Done." echo -e "$(tput setaf 10)\nConfig files:$(tput sgr0)" cd /home/wareck/ zip="['firefox.desktop', 'thunderbird.desktop', 'org.remmina.Remmina.desktop', 'filezilla.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Terminal.desktop']" cat <<'EOF'>> zap #!/bin/bash gsettings set org.gnome.shell.extensions.dash-to-dock dash-max-icon-size 32 gsettings set org.gnome.desktop.background picture-uri /home/wareck/Images/mr-robot-wallpapers.jpg gsettings set org.gnome.shell favorite-apps "XXX" #su wareck -c 'gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false' dconf load /org/gnome/terminal/ < /usr/local/bin/zap2 EOF sed -i "s/XXX/$zip/g" zap UUID=$(gsettings get org.gnome.Terminal.ProfilesList default | tr -d \') cat <<'EOF'>> zap2 [legacy/profiles:/:XXX] default-size-columns=110 font='Monospace 9' use-system-font=false use-theme-colors=false EOF sed -i "s/XXX/$UUID/g" zap2 chmod +x zap sudo cp zap /usr/local/bin sudo cp zap2 /usr/local/bin sudo rm zap sudo rm zap2 sleep 1 sudo rm -r -f /etc/update-motd.d/* tar xfJ pack1.tar.xz --checkpoint=.10 echo -n -e "\n" sudo cp /home/wareck/pack2.tar.xz / sudo cp /home/wareck/pack3.tar.xz / cd / sudo tar xfJ pack2.tar.xz --checkpoint=.10 sudo tar xfJ pack3.tar.xz --checkpoint=.10 echo -n -e "\n" cd /home/wareck sudo sed -i -e "s/# set constantshow/set constantshow/g" /etc/nanorc if ! grep "wareck" /etc/sudoers >/dev/null then sudo sh -c "echo \"wareck ALL=(ALL) NOPASSWD: ALL\" >> /etc/sudoers" fi echo -e "$(tput setaf 10)\nBuild folder and mount drives:$(tput sgr0)" if ! [ -r /media/Cloud ];then sudo mkdir /media/Cloud && cd / & sudo ln -s /media/Cloud /Cloud ;fi if ! [ -r /media/Store ];then sudo mkdir /media/Store && cd / & sudo ln -s /media/Store /Store;fi if ! [ -r /media/Partage ];then sudo mkdir /media/Partage && cd / & sudo ln -s /media/Partage /Partage;fi if ! [ -r /media/Nas ];then sudo mkdir /media/Nas && cd / & sudo ln -s /media/Nas /Nas;fi if ! [ -r /raid ];then sudo mkdir /raid;fi if ! [ -r /farm ];then sudo mkdir /farm;fi if ! [ -r /farm/farm0 ];then sudo mkdir /farm/farm0;fi if ! [ -r /farm/farm1 ];then sudo mkdir /farm/farm1;fi if ! [ -r /farm/farm2 ];then sudo mkdir /farm/farm2;fi if ! [ -r /farm/farm3 ];then sudo mkdir /farm/farm3;fi if ! [ -r /farm/farm4 ];then sudo mkdir /farm/farm4;fi if ! grep "UUID=1df72b63-fca0-45c6-992c-3e2532d5591a /media/Store ext4" /etc/fstab >/dev/null then cp /etc/fstab /tmp/fstab cat <<"EOF">> /tmp/fstab #ext4 UUID=6fc06d70-1a38-4706-ae83-0a329181b9f7 /media/Cloud ext4 auto,nofail,noatime,rw,user 0 0 UUID=a111c12b-d1b4-441a-9352-b6bbc558184e /media/Partage ext4 auto,nofail,noatime,rw,user 0 0 UUID=1df72b63-fca0-45c6-992c-3e2532d5591a /media/Store ext4 auto,nofail,noatime,rw,user 0 0 #btrfs temporary drives /dev/md0 /raid btrfs ssd,nodatasum,nobarrier,nodatacow,discard=async,noatime 0 0 #Chia drive UUID=77a593df-1bdb-4012-8c9e-ce50864b464d /farm/farm0 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0 UUID=0d145a5a-50b0-456c-8998-549def2f9fc9 /farm/farm1 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0 UUID=b99c7fa3-827c-4c09-a625-a72aec6c9395 /farm/farm2 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0 UUID=e583a1e4-f8c8-4c2b-a427-cee854e0b56d /farm/farm3 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0 UUID=d24c7616-91c2-434c-b21e-8dd70d794e25 /farm/farm4 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0 EOF sudo cp /tmp/fstab /etc/fstab fi sudo rm /etc/hosts sudo cat <<'EOF'>> /etc/hosts 127.0.0.1 localhost 127.0.1.1 cube 192.168.1.8 miniserver miniserver gogserver.dnsalias.com 192.168.1.10 nzxt 192.168.1.11 garage 192.168.1.12 blade 192.168.1.254 mafreebox.freebox.fr 192.168.1.200 node # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters EOF echo "Done." echo -e "$(tput setaf 10)\nSensors drivers:$(tput sgr0)" if ! grep "it87" /etc/modules >/dev/null then cp /etc/modules /tmp/modules cat <<"EOF">> /tmp/modules # Chip drivers it87 EOF sudo cp /tmp/modules /etc/modules fi if [ -f /tmp/sensors3.conf ] then chmod 777 /tmp/sensors3.conf rm /tmp/sensors3.conf fi cat <<'EOF'>> /tmp/sensors3.conf chip "it8728-isa-0228" label in0 "Vcore" label in1 "Vdram" # "DDR3" in BIOS label in2 "+3.3V" label in3 "+5V" # Not in BIOS label in4 "+12V" ignore in5 # -12V unused ignore in6 label in7 "5VSB" # Not in BIOS label in8 "Vbat" # Not in BIOS compute in3 @ * (6.8/10+1), @ / (6.8/10+1) compute in4 @ * 3.963, @ / 3.963 compute in7 @ * (6.8/10+1), @ / (6.8/10+1) set in0_min 0.825 * 0.95 set in0_max 1.425 * 1.05 set in1_min 1.5 * 0.95 set in1_max 1.5 * 1.05 set in2_min 3.3 * 0.95 set in2_max 3.3 * 1.05 set in3_min 5 * 0.95 set in3_max 5 * 1.05 set in4_min 12 * 0.95 set in4_max 12 * 1.05 set in7_min 5 * 0.95 set in7_max 5 * 1.05 ignore cpu0_vid set fan4_min 100 set fan1_min 100 ignore fan2 ignore fan3 ignore fan5 ignore in8 ignore intrusion0 label fan1 "fan1" label fan4 "fan2" label temp1 "MB" label temp2 "CPU" set temp2_min 0 set temp2_max 75 set temp1_min 0 set temp1_max 90 set temp1_beep 0.0 label temp1 "VRM Temp" set temp1_min 0 set temp1_max 65 label temp2 "SB Temp" label temp3 "CPU Temp" set temp3_min 0 set temp3_max 65 chip "nvme-pci-0400" set temp2_max 75 set temp2_min 20 set temp3_max 75 set temp3_min 20 EOF chmod 644 /tmp/sensors3.conf sudo cp /tmp/sensors3.conf /etc/ sudo sensors -s sensors sudo apt install ethtool -y iface=$(ip link | awk -F: '$0 !~ "lo|vir|^[^0-9]"{print $2a;getline}') sudo ethtool --change $iface wol g cat <<'EOF'>> /tmp/wakemeup.sh #!/bin/bash set -e if ! [ -x "$(command -v etherwake)" ];then sudo apt-get install etherwake -y;fi clear echo -e "$(tput setaf 10)Wake On Lan v1.0:$(tput sgr0)" PS3="Select : " items=("Nzxt" "Garage" "Blade") select item in "${items[@]}" Quit do case $REPLY in 1) sudo etherwake -i enp5s0 E0:D5:5E:2D:9E:CB ; break;; 2) sudo etherwake -i enp5s0 58:11:22:CD:FC:7A ; break;; 3) sudo etherwake -i enp5s0 78:AC:44:57:3C:50 ; break;; $((${#items[@]}+1))) echo "We're done!"; break 2;; *) echo "Ooops - unknown choice $REPLY"; break; esac done echo -e "" EOF sudo chmod +x /tmp/wakemeup.sh sudo cp /tmp/wakemeup.sh /usr/local/bin echo "Done." echo -e "$(tput setaf 10)\nVnc init:$(tput sgr0)" sudo update-rc.d vncserver defaults echo "Done." echo -e "$(tput setaf 10)\nOpening ports:$(tput sgr0)" sudo ufw allow 8333 >/dev/null sudo ufw allow 22 >/dev/null sudo ufw allow 5900 >/dev/null sudo ufw allow 10000 >/dev/null sudo ufw allow 139 >/dev/null sudo ufw allow 5901 >/dev/null sudo ufw allow 5902 >/dev/null sudo ufw allow 445 >/dev/null sudo ufw allow 1337 >/dev/null sudo ufw allow 1447 >/dev/null echo "Done." echo -e "$(tput setaf 10)\nBashrc mod:$(tput sgr0)" if [ $Cuda = "YES" ] then if ! grep "#mod for cuda" /home/wareck/.bashrc >/dev/null then echo '#mod for cuda' >>/home/wareck/.bashrc echo 'export PATH=/usr/local/cuda-12.3/bin/:$PATH'>>/home/wareck/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64:$LD_LIBRARY_PATH'>>/home/wareck/.bashrc echo '' >>/home/wareck/.bashrc fi fi if ! grep "#mod for tightvncserver" /home/wareck/.bashrc >/dev/null then echo '#mod for tightvncserver' >>/home/wareck/.bashrc echo 'cd ~' >>/home/wareck/.bashrc fi echo "Done." echo -e "$(tput setaf 10)\nDisable IPv6:$(tput sgr0)" if ! grep "ipv6.disable=1" /etc/default/grub >/dev/null then sed -i -e "s/quiet splash/quiet splash ipv6.disable=1/g" /etc/default/grub sed -i -e "s/GRUB_CMDLINE_LINUX=\"/GRUB_CMDLINE_LINUX=\"ipv6.disable=1 acpi_enforce_resources=lax/g" /etc/default/grub sudo update-grub2 fi sudo chown -R wareck:wareck /home/wareck/miners/xmr* sudo chown -R wareck:wareck /home/wareck/miners/cgminer* sudo apt-get remove light-locker* -y if [ ! -d /home/wareck/.config/lxpanel/LXDE/panels ] then mkdir /home/wareck/.config/lxpanel mkdir /home/wareck/.config/lxpanel/LXDE mkdir /home/wareck/.config/lxpanel/LXDE/panels fi sudo cp /home/wareck/Build_Cube/pack/panel /home/wareck/.config/lxpanel/LXDE/panels/panel sudo chmod 777 /home/wareck/.config/lxpanel/LXDE/panels/panel if [ ! -d /home/wareck/.config/lxterminal ] then mkdir /home/wareck/.config/lxterminal fi sudo cp /home/wareck/Build_Cube/pack/lxterminal.conf /home/wareck/.config/lxterminal/ sudo chmod 777 /home/wareck/.config/lxterminal/lxterminal.conf echo "Done." echo "passe=4" >/home/wareck/.ipass decompte_ } function printer_ { if [ ! -d /usr/local/share/foomatic/ ] then if [ ! -d /tmp/foomatic-db/ ] then cd /tmp/ echo -e "$(tput setaf 10)\nInstall printers generic drivers:$(tput sgr0)" git clone https://github.com/OpenPrinting/foomatic-db.git fi cd /tmp/foomatic-db if [ ! -d /usr/local/share/foomatic/ ] then ./make_configure ./configure sudo make install echo "Done." fi fi } function mounting_drives_ { echo -e "$(tput setaf 10)\nMounting Drives$(tput sgr0)" if ! findmnt /media/Partage >/dev/null ; then sudo mount /media/Partage ;fi if ! findmnt /media/Store >/dev/null ; then sudo mount /media/Store ;fi if ! findmnt /media/Cloud >/dev/null ; then sudo mount /media/Cloud ;fi sudo chmod 777 /media/Store sudo chmod 777 /media/Cloud sudo chmod 777 /media/Partage sudo chmod 777 /raid sudo chmod 777 /media/Nas echo "Done." } function cleaning_ { echo -e "$(tput setaf 10)\nCleaning install files:$(tput sgr0)" if [ -f /pack2.tar.xz ]; then sudo rm /pack2.tar.xz ;fi if [ -f /pack3.tar.xz ]; then sudo rm /pack3.tar.xz ;fi if [ -f /home/wareck/pack1.tar.xz ]; then rm /home/wareck/pack1.tar.xz ;fi if [ -f /home/wareck/pack2.tar.xz ]; then rm /home/wareck/pack2.tar.xz ;fi if [ -f /home/wareck/pack3.tar.xz ]; then rm /home/wareck/pack3.tar.xz ;fi if [ -f /home/wareck/xmrig.tar.xz ]; then rm /home/wareck/xmrig.tar.xz ;fi if [ -f /home/wareck/gpu-miners.tar.xz ]; then rm /home/wareck/gpu-miners.tar.xz;fi if [ -r /home/wareck/Music ]; then sudo rm -r -f /home/wareck/Music ;fi if [ -r /home/wareck/Public ]; then sudo rm -r -f /home/wareck/Public ;fi if [ -r /home/wareck/Templates ]; then sudo rm -r -f /home/wareck/Templates ;fi if [ -r /home/wareck/Vidéos ]; then sudo rm -r -f /home/wareck/Vidéos ;fi if [ -f /home/wareck/NVIDIA-Linux-x86_64-470.74.run ]; then rm /home/wareck/NVIDIA-Linux-x86_64-470.74.run ;fi if [ -f /home/wareck/NVIDIA-Linux-x86_64-470.82.00.run ]; then rm /home/wareck/NVIDIA-Linux-x86_64-470.82.00.run ;fi if [ -f /home/wareck/.ipass ]; then rm /home/wareck/.ipass ;fi if [ -f /usr/local/bin/zap ]; then sudo rm /usr/local/bin/zap* ;fi if [ -f /home/wareck/.config/autostart/install_os.desktop ];then sudo rm /home/wareck/.config/autostart/install_os.desktop;fi if [ -f /home/wareck/.config/autostart/zappy.desktop ];then sudo rm /home/wareck/.config/autostart/zappy.desktop;fi if [ -r /lib/modules/5.15.0-60-generic ]; then sudo rm -r /lib/modules/5.15.0-60-generic ;fi if [ -r /lib/modules/5.15.0-46-generic ]; then sudo rm -r /lib/modules/5.15.0-46-generic ;fi if [ -r /lib/modules/5.15.0-70-generic ]; then sudo rm -r /lib/modules/5.15.0-70-generic ;fi cd /home/wareck/Build_Cube/pack sudo chown -R wareck:wareck /home/wareck/miners sudo chmod -R 775 /home/wareck/miners ./clean.sh echo -e "Done. \n" echo `date` "install/update" >/home/wareck/.buildcube sudo apt-get autoremove -y sleep 1 } function autoroot_ { if ! grep "#color putty" ~/.bashrc >/dev/null then echo "#color putty" >> ~/.bashrc echo "export TERM=xterm-256color" >> ~/.bashrc fi if [ ! -d /home/wareck/.config/autostart ] then echo -e "$(tput setaf 10)\nInit install & autostart:$(tput sgr0)" mkdir /home/wareck/.config/autostart echo -e "Done." sleep 1 fi if [ ! -f /home/wareck/.config/autostart/install_os.desktop ] then cat <<'EOF'>> /home/wareck/.config/autostart/install_os.desktop [Desktop Entry] # VERSION=3.36.2 Name=Terminal Comment=Use the command line Keywords=shell;prompt;command;commandline;cmd; TryExec=gnome-terminal Exec=gnome-terminal -- bash -c "sudo /home/wareck/Build_Cube/build_cube.sh; exec bash" Icon=org.gnome.Terminal Type=Application Categories=GNOME;GTK;System;TerminalEmulator; StartupNotify=true X-GNOME-SingleWindow=false OnlyShowIn=GNOME;Unity; Actions=new-window;preferences; X-Ubuntu-Gettext-Domain=gnome-terminal [Desktop Action new-window] Name=New Window Exec=gnome-terminal --window [Desktop Action preferences] Name=Preferences Exec=gnome-terminal --preferences EOF chmod +x /home/wareck/.config/autostart/install_os.desktop fi if [ ! -f /home/wareck/.config/autostart/zappy.desktop ] then cat <<'EOF'>> /home/wareck/.config/autostart/zappy.desktop [Desktop Entry] # VERSION=3.36.2 Name=Terminal Comment=Use the command line Keywords=shell;prompt;command;commandline;cmd; TryExec=gnome-terminal Exec=gnome-terminal -- bash -c "/usr/local/bin/zap" Icon=org.gnome.Terminal Type=Application Categories=GNOME;GTK;System;TerminalEmulator; StartupNotify=true X-GNOME-SingleWindow=false OnlyShowIn=GNOME;Unity; Actions=new-window;preferences; X-Ubuntu-Gettext-Domain=gnome-terminal [Desktop Action new-window] Name=New Window Exec=gnome-terminal --window [Desktop Action preferences] Name=Preferences Exec=gnome-terminal --preferences EOF chmod +x /home/wareck/.config/autostart/zappy.desktop fi if ! grep "wareck" /etc/sudoers >/dev/null then sudo sh -c "echo \"wareck ALL=(ALL) NOPASSWD: ALL\" >> /etc/sudoers" fi if [ $passe="2" ] then echo -e "$(tput setaf 10)\nUpdate and install packages:$(tput sgr0)" sudo apt-get update sudo apt-get install lxde lxde-icon-theme -y sleep 1 fi } function remove_screensaver { #remove screensaver cat <> autostart @lxpanel --profile LXDE @pcmanfm --desktop --profile LXDE EOF sudo chmod 744 autostart sudo cp autostart /etc/xdg/lxsession/LXDE/ sudo cp autostart /home/wareck/.config/lxsession/LXDE/ sudo rm autostart sudo apt-get remove xscreensaver xscreensaver-data -y } function cmake_ { pids="" /home/wareck/Build_Cube/options/tools/_cmake.sh rollback & pids="$pids $!" wait $pids sudo ldconfig } function watchdog_ { pids="" /home/wareck/Build_Cube/options/watchdog.sh ext & pids="$pids $!" wait $pids } function wol_ { iface=$(ip link | awk -F: '$0 !~ "lo|vir|^[^0-9]"{print $2a;getline}') ether=$(which ethtool) echo "[Unit]" >>/tmp/wol.service echo "Description=Enable Wake On Lan" >>/tmp/wol.service echo "" >>/tmp/wol.service echo "[Service]" >>/tmp/wol.service echo "Type=oneshot" >>/tmp/wol.service echo "ExecStart = $ether --change$iface wol g" >>/tmp/wol.service echo "" >>/tmp/wol.service echo "[Install]" >>/tmp/wol.service echo "WantedBy=basic.target" >>/tmp/wol.service sudo cp /tmp/wol.service /etc/systemd/system/wol.service sudo systemctl daemon-reload >/dev/null sudo systemctl enable wol.service >/dev/null sudo systemctl start wol.service >/dev/null sleep 2 clear } intro_ case $passe in 1) watchdog_ autoroot_ ubuntu_version_check update_ kernel_check_ nvidia_driver_ ;; 2) nvidia_driver_ update_ ;; 3) download_packs_ printer_ build_miners_ configure_ ;; 4) mounting_drives_ cleaning_ remove_screensaver clear wol_ dynmotd ;; *) ;; esac echo -e "$(tput setaf 10)\nEnd of script:$(tput sgr0) \n" echo -e "$(tput setaf 7)Need to install webmin manually (reboot required)$(tput sgr0)" echo -e "$(tput setaf 7)after install webmin, reboot is required $(tput sgr0)" echo -e ""