build_cube.sh 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970
  1. #!/bin/bash
  2. set -e
  3. Version=17.0
  4. Cuda=YES
  5. kernel_custom=YES
  6. Webmin="webmin-2.102"
  7. kernel_dkms="5.15.0-71-generic"
  8. if (( $EUID != 0 )); then
  9. echo -e "$(tput setaf 11)This must be run as root. Try 'sudo $0'.$(tput sgr0)"
  10. exit 1
  11. fi
  12. clear
  13. function ubuntu_version_check {
  14. if [[ $(lsb_release -rs) == "20.04" ]]
  15. then
  16. Ubuntu_version="20.04.5"
  17. else
  18. echo "Non-compatible version"
  19. exit 0
  20. fi
  21. }
  22. function print_centered {
  23. [[ $# == 0 ]] && return 1
  24. declare -i TERM_COLS="$(tput cols)"
  25. declare -i str_len="${#1}"
  26. [[ $str_len -ge $TERM_COLS ]] && {
  27. echo "$1";
  28. return 0;
  29. }
  30. declare -i filler_len="$(( (TERM_COLS - str_len) / 2 ))"
  31. [[ $# -ge 2 ]] && ch="${2:0:1}" || ch=" "
  32. filler=""
  33. for (( i = 0; i < filler_len; i++ )); do
  34. filler="${filler}${ch}"
  35. done
  36. printf "%s%s%s" "$filler" "$1" "$filler"
  37. [[ $(( (TERM_COLS - str_len) % 2 )) -ne 0 ]] && printf "%s" "${ch}"
  38. printf "\n"
  39. return 0
  40. }
  41. function decompte_ {
  42. echo -e "$(tput setaf 10)\nReboot in 10 seconds (CRTL+C to abord):$(tput sgr0)"
  43. for i in {9..0}
  44. do
  45. echo -e -n "$i "
  46. sleep 1
  47. done
  48. echo ""
  49. sudo reboot
  50. }
  51. function intro_ {
  52. print_centered "$(tput setaf 5)"
  53. print_centered " ██████╗██╗ ██╗██████╗ ███████╗"
  54. print_centered "██╔════╝██║ ██║██╔══██╗██╔════╝"
  55. print_centered "██║ ██║ ██║██████╔╝█████╗ "
  56. print_centered "██║ ██║ ██║██╔══██╗██╔══╝ "
  57. print_centered "╚██████╗╚██████╔╝██████╔╝███████╗"
  58. print_centered " ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝"
  59. echo -n "$(tput sgr0)"
  60. print_centered "Cube Server installation script v$Version"
  61. print_centered "Ubuntu version 20.04"
  62. print_centered "GA990xa-ud3 $Drivers"
  63. if [ $Cuda = "YES" ]
  64. then
  65. print_centered "CUDA version"
  66. fi
  67. sleep 3
  68. }
  69. function update_ {
  70. if [ -f /home/wareck/.pass2 ] && [ ! -f /home/wareck/.pass3 ] && [ ! -f /home/wareck/.pass4 ]
  71. then
  72. echo -e "$(tput setaf 10)\nUpdate and install packages:$(tput sgr0)"
  73. sudo apt-get update
  74. echo -e ""
  75. sudo apt-get install lxde lxde-icon-theme -y
  76. echo -e ""
  77. sudo apt-get install samba cifs-utils mdadm git build-essential libtool pkg-config automake autoconf ethtool net-tools openvpn filezilla \
  78. tasksel lzma-dev lzma cmake libuv1-dev libssl-dev msr-tools tightvncserver lm-sensors openssh-server xfsprogs -y
  79. echo -e ""
  80. sudo apt-get install pixz pbzip2 pigz btrfs-progs gparted gpart gnome-remote-desktop libcanberra-gtk-module \
  81. ctorrent libcurl4-openssl-dev bison byacc screen libudev-dev libjansson-dev libncurses5-dev libmicrohttpd-dev curl nvme-cli -y
  82. echo -e ""
  83. sudo apt-get install libglib2.0-dev libgtk2.0-dev libsensors4-dev htop vlc locate -y
  84. echo -e ""
  85. if [ $Cuda = "YES" ]
  86. then
  87. echo -e "$(tput setaf 10)\nInstall Cuda packages:$(tput sgr0)"
  88. sudo apt-get install libgmp-dev libnuma-dev cmake libuv1-dev nvidia-cuda-dev libmicrohttpd-dev gcc-8 g++-8 nvidia-cuda-toolkit -y
  89. fi
  90. echo -e "Done."
  91. fi
  92. }
  93. function kernel_check_ {
  94. unamestr=$(uname -r)
  95. case $kernel_custom in
  96. NO)
  97. if [[ "$unamestr" == '5.15.0-69-generic' ]]
  98. then
  99. echo -e "\n$(tput setaf 10)DKMS Kernel install :$(tput sgr0)"
  100. sudo rm /boot/config-5.15*
  101. sudo rm /boot/initrd.img-5.15*
  102. sudo rm /boot/System.map-5.15*
  103. sudo rm /boot/vmlinuz-5.15*
  104. sudo apt-get install linux-image-5.4.0-54-generic linux-headers-5.4.0-54-generic linux-modules-extra-5.4.0-54-generic htop -y
  105. sudo update-grub2
  106. sudo apt-mark hold linux-image-5.4.0-54-generic linux-headers-5.4.0-54-generic linux-modules-extra-5.4.0-54-generic
  107. autoroot_
  108. decompte_
  109. fi
  110. if [[ "$unamestr" == '5.4.0-139-generic' ]]
  111. then
  112. sudo rm /boot/config-5.4.0-139-generic | true
  113. sudo rm /boot/System.map-5.4.0-139-generic | true
  114. sudo rm /boot/initrd.img-5.4.0-139-generic | true
  115. sudo rm /boot/vmlinuz-5.4.0-139-generic | true
  116. sudo update-grub2
  117. sudo apt-mark hold linux-image-$kernel_dkms linux-headers-$kernel_dkms linux-modules-extra-$kernel_dkms
  118. autoroot_
  119. decompte_
  120. fi
  121. ;;
  122. YES)
  123. if [ -f /tmp/ksource.txt ]; then rm /tmp/ksource.txt;fi
  124. wget -c -q http://192.168.1.8:3000/wareck/custom_kernel/raw/master/ksource.txt -O /tmp/ksource.txt
  125. source /tmp/ksource.txt
  126. if ! [[ "$unamestr" == $KLversion ]]
  127. then
  128. echo -e "\n$(tput setaf 10)Custom kernel install $(tput setaf 9)$KLversion$(tput setaf 10) (fix DKMS/WOL) :$(tput sgr0)"
  129. cd /tmp/
  130. wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/custom_kernel/$kernel_version
  131. chmod +x $kernel_version
  132. sudo ./$kernel_version
  133. nvidia_driver_
  134. autoroot_
  135. decompte_
  136. fi
  137. ;;
  138. esac
  139. }
  140. function nvidia_driver_ {
  141. if ! [ -f /home/wareck/.pass1 ]
  142. then
  143. if ! [ -f /etc/modprobe.d/blacklist-nvidia-nouveau.conf ]
  144. then
  145. echo "Blacklist nvidia-nouveau driver..."
  146. echo "System will reboot"
  147. sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
  148. sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
  149. fi
  150. case $Cuda in
  151. NO)
  152. sudo apt-get install build-essential libglvnd-dev -y
  153. ;;
  154. YES)
  155. sudo apt-get install build-essential libglvnd-dev cmake libhugetlbfs-dev libc-dev libc6-dev g++ -y
  156. ;;
  157. *)
  158. ;;
  159. esac
  160. #sudo update-initramfs -u
  161. touch /home/wareck/.pass1
  162. decompte_
  163. fi
  164. if ! [ -f /home/wareck/.pass2 ]
  165. then
  166. sleep 1
  167. case $Cuda in
  168. NO)
  169. echo -e "$(tput setaf 10)\nInstall NVIDIA GTX1080 Drivers :$(tput sgr0)"
  170. sleep 3
  171. sudo apt-get install nvidia-driver-525 -y
  172. touch /home/wareck/.pass2
  173. decompte_
  174. ;;
  175. YES)
  176. echo -e "$(tput setaf 10)\nInstall CUDA Drivers :$(tput sgr0)"
  177. cd /home/wareck/
  178. echo -e "Download MegaDownload:"
  179. git clone https://github.com/wareck/megadown.git
  180. sudo cp /home/wareck/megadown/megadown /usr/local/bin/megadown
  181. sudo rm -r /home/wareck/megadown
  182. #megadown https://mega.nz/file/r0wwnZCJ#27WWRMwSsGYXiMUHf2OgcGYp2O2itChsBxcK9znmr5E
  183. #chmod +x cuda_11.8.0_520.61.05_linux.run
  184. #sudo ./cuda_11.8.0_520.61.05_linux.run
  185. #sudo rm cuda_11.8.0_520.61.05_linux.run
  186. wget -c https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run
  187. chmod +x cuda_12.2.2_535.104.05_linux.run
  188. sudo ./cuda_12.2.2_535.104.05_linux.run
  189. sudo rm cuda_12.2.2_535.104.05_linux.run
  190. touch /home/wareck/.pass2
  191. decompte_
  192. ;;
  193. esac
  194. fi
  195. }
  196. function download_packs_ {
  197. if [ ! -f /home/wareck/.pass3 ]
  198. then
  199. echo -e "$(tput setaf 10)\nDownload complement packs:$(tput sgr0)"
  200. wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/cgminer.conf -O /home/wareck/Build_Cube/pack/cgminer.conf
  201. 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
  202. wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/gerbera.tar.xz -O /home/wareck/Build_Cube/pack/gerbera.tar.xz
  203. 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
  204. wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/$Webmin.tar.xz -O /home/wareck/Build_Cube/pack/$Webmin.tar.xz
  205. wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/xmrig.tar.xz -O /home/wareck/Build_Cube/pack/xmrig.tar.xz
  206. 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
  207. 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
  208. cp /home/wareck/Build_Cube/pack/gpu-miners.tar.xz /home/wareck
  209. cp /home/wareck/Build_Cube/pack/pack1.tar.xz /home/wareck
  210. cp /home/wareck/Build_Cube/pack/pack2.tar.xz /home/wareck
  211. cp /home/wareck/Build_Cube/pack/pack3.tar.xz /home/wareck
  212. cp /home/wareck/Build_Cube/pack/xmrig.tar.xz /home/wareck
  213. cp /home/wareck/Build_Cube/pack/start_cgminer.tar.xz /home/wareck
  214. echo "Done."
  215. if [ ! -d /home/wareck/$Webmin ]
  216. then
  217. cp /home/wareck/Build_Cube/pack/$Webmin.tar.xz /home/wareck/
  218. cd /home/wareck/
  219. echo -e "$(tput setaf 10)\nWebmin uncompress:$(tput sgr0)"
  220. tar xfJ $Webmin.tar.xz
  221. rm $Webmin.tar.xz
  222. echo -e "Done"
  223. fi
  224. echo -e "$(tput setaf 10)\nDownloading miners:$(tput sgr0)"
  225. cd /home/wareck
  226. if ! [ -d miners ]; then mkdir -p miners;fi
  227. cd /home/wareck/miners
  228. if ! [ -d xmrig ]
  229. then
  230. git clone https://github.com/xmrig/xmrig.git
  231. echo -e ""
  232. fi
  233. if ! [ -d xmr-stak ]
  234. then
  235. git clone https://github.com/fireice-uk/xmr-stak.git
  236. echo -e ""
  237. fi
  238. if ! [ -d xmr-stak-rx ]
  239. then
  240. git clone https://github.com/fireice-uk/xmr-stak.git -b xmr-stak-rx xmr-stak-rx
  241. echo -e ""
  242. fi
  243. if ! [ -d cgminer-gekko ]
  244. then
  245. git clone https://github.com/wareck/cgminer-gekko.git
  246. echo -e ""
  247. fi
  248. if ! [ -d cgminer-lketc ]
  249. then
  250. git clone https://github.com/wareck/cgminer-lketc.git
  251. fi
  252. fi
  253. echo "Done."
  254. }
  255. function build_miners_ {
  256. if [ ! -f /home/wareck/.pass3 ]
  257. then
  258. cmake_ #check cmake version
  259. cd /home/wareck
  260. tar xfJ gpu-miners.tar.xz
  261. cd /home/wareck/miners
  262. echo -e "$(tput setaf 10)\nBuild Cgminer-gekko:$(tput sgr0)"
  263. cd cgminer-gekko
  264. sudo usermod -a -G dialout,plugdev wareck
  265. sudo cp 01-cgminer.rules /etc/udev/rules.d/
  266. CFLAGS="-O2 -march=native" ./autogen.sh
  267. ./configure --enable-gekko
  268. make -j$((`nproc`+1))
  269. tar xfJ /home/wareck/start_cgminer.tar.xz
  270. rm /home/wareck/start_cgminer.tar.xz
  271. cd ..
  272. cat <<'EOF'>> /tmp/cgminer
  273. #!/bin/sh -e
  274. ### BEGIN INIT INFO
  275. # Provides: cgminer
  276. # Required-Start: networking
  277. # Default-Start: 3 4 5
  278. # Default-Stop: 0 6
  279. ### END INIT INFO
  280. case "$1" in
  281. start)
  282. cd /home/wareck/miners/cgminer-gekko/
  283. su wareck -c "screen -dmS cgminer /home/wareck/miners/cgminer-gekko/cgminer"
  284. ;;
  285. stop)
  286. sudo killall -9 cgminer | true
  287. ;;
  288. *)
  289. echo "Usage: /etc/init.d/cgminer {start|stop}"
  290. exit 1
  291. ;;
  292. esac
  293. exit 0
  294. EOF
  295. chmod +x /tmp/cgminer
  296. sudo cp /tmp/cgminer /etc/init.d/cgminer
  297. sudo update-rc.d cgminer defaults
  298. if ! [ -d /home/wareck/.cgminer ]
  299. then
  300. mkdir /home/wareck/.cgminer
  301. fi
  302. cat <<'EOF'>> /tmp/cgminer.conf
  303. {
  304. "pools" : [
  305. {
  306. "url" : "stratum+tcp://stratum.braiins.com:3333",
  307. "user" : "wareck.gekko",
  308. "pass" : "x"
  309. }
  310. ]
  311. ,
  312. "api-description" : "cgminer 4.12.0-wrk",
  313. "api-mcast-addr" : "224.0.0.75",
  314. "api-mcast-code" : "FTW",
  315. "api-mcast-des" : "",
  316. "api-mcast-port" : "4028",
  317. "api-port" : "4028",
  318. "api-host" : "0.0.0.0",
  319. "gekko-lowboost" : true,
  320. "gekko-2pac-freq" : "155.0",
  321. "gekko-compac-freq" : "150.0",
  322. "gekko-tune-down" : "95.0",
  323. "gekko-tune-up" : "97.0",
  324. "gekko-wait-factor" : "0.5",
  325. "gekko-bauddiv" : "0",
  326. "gekko-newpac-freq" : "100",
  327. "gekko-start-freq" : "100",
  328. "gekko-step-freq" : "6.2",
  329. "gekko-step-delay" : "15",
  330. "gekko-tune2" : "0",
  331. "fallback-time" : "120",
  332. "hotplug" : "5",
  333. "log" : "5",
  334. "shares" : "0",
  335. "suggest-diff" : "0"
  336. }
  337. EOF
  338. cp /tmp/cgminer.conf /home/wareck/.cgminer/
  339. echo "Done."
  340. cd /home/wareck/miners
  341. echo -e "$(tput setaf 10)\nBuild Cgminer-lketc:$(tput sgr0)"
  342. cd cgminer-lketc
  343. CFLAGS="-O2 -march=native" ./autogen.sh
  344. ./configure
  345. make -j$((`nproc`+1))
  346. cd ..
  347. echo "Done."
  348. echo -e "$(tput setaf 10)\nUncompress xmr files:$(tput sgr0)"
  349. tar xfJ /home/wareck/xmrig.tar.xz --checkpoint=.100
  350. echo "Done."
  351. echo -n -e "\n"
  352. echo -e "$(tput setaf 10)\nBuild xmrig:$(tput sgr0)"
  353. cd xmrig
  354. git config --global --add safe.directory /home/wareck/miners/xmrig
  355. git pull
  356. sed -i "s/kDefaultDonateLevel = 5;/kDefaultDonateLevel = 0;/g" src/donate.h
  357. sed -i "s/kMinimumDonateLevel = 1;/kMinimumDonateLevel = 0;/g" src/donate.h
  358. wget -c https://download.open-mpi.org/release/hwloc/v2.7/hwloc-2.7.1.tar.bz2
  359. tar xfj hwloc-2.7.1.tar.bz2 --checkpoint=.100
  360. cd hwloc-2.7.1
  361. ./configure
  362. make -j$((`nproc`+1))
  363. sudo make install
  364. cd ..
  365. sudo ldconfig
  366. cd build
  367. cmake ..
  368. make -j$((`nproc`+1))
  369. cd ..
  370. cd ..
  371. echo "Done."
  372. #echo -e "$(tput setaf 10)\nBuild xmrig-upx:$(tput sgr0)"
  373. #cd xmrig-upx
  374. #git config --global --add safe.directory /home/wareck/miners/xmrig-upx
  375. #git pull
  376. #sed -i "s/kDefaultDonateLevel = 5;/kDefaultDonateLevel = 0;/g" src/donate.h
  377. #sed -i "s/kMinimumDonateLevel = 1;/kMinimumDonateLevel = 0;/g" src/donate.h
  378. #cd build
  379. #cmake .. -DWITH_HTTPD=OFF
  380. #make -j$((`nproc`+1))
  381. #cd ..
  382. #cd ..
  383. #echo "Done."
  384. rm -r -f xmrig-upx
  385. echo -e "$(tput setaf 10)\nBuild xmr-stak-rx:$(tput sgr0)"
  386. cd xmr-stak-rx
  387. git config --global --add safe.directory /home/wareck/miners/xmr-stak-rx
  388. git pull
  389. cd build
  390. cmake ..
  391. make -j$((`nproc`+1))
  392. cd ..
  393. cd ..
  394. echo "Done."
  395. echo -e "$(tput setaf 10)\nBuild xmr-stak:$(tput sgr0)"
  396. cd xmr-stak
  397. if ! [ -d build ];then mkdir build ;fi
  398. git config --global --add safe.directory /home/wareck/miners/xmr-stak
  399. git pull
  400. cd build
  401. cmake .. -DOpenCL_ENABLE=OFF -DCUDA_ENABLE=OFF
  402. make -j$((`nproc`+1))
  403. cd ..
  404. cd ..
  405. echo "Done."
  406. if [ $Cuda = "YES" ]
  407. then
  408. echo -e "$(tput setaf 10)\nBuild xmrig-cuda:$(tput sgr0)"
  409. git clone https://github.com/xmrig/xmrig-nvidia.git
  410. cd xmrig-nvidia
  411. mkdir build
  412. cd build
  413. cmake .. -DCMAKE_C_COMPILER=$(which gcc-8) -DCMAKE_CXX_COMPILER=$(which g++-8)
  414. make -j$((`nproc`+1))
  415. fi
  416. echo "Done"
  417. touch /home/wareck/.pass3
  418. fi
  419. sudo chmod -R 775 /home/wareck/miners
  420. }
  421. function configure_ {
  422. if [ ! -f /home/wareck/.pass4 ]
  423. then
  424. echo -e "$(tput setaf 10)\nlxPanel sensors:$(tput sgr0)"
  425. cd /home/wareck
  426. if ! [ -d sensors-lxpanel-plugin ]
  427. then
  428. git clone https://github.com/danamlund/sensors-lxpanel-plugin.git
  429. fi
  430. cd /home/wareck
  431. cd sensors-lxpanel-plugin
  432. make
  433. sudo make install
  434. sudo rm -r /home/wareck/sensors-lxpanel-plugin
  435. echo "Done."
  436. echo -e "$(tput setaf 10)\nConfig files:$(tput sgr0)"
  437. cd /home/wareck/
  438. zip="['firefox.desktop', 'thunderbird.desktop', 'org.remmina.Remmina.desktop', 'filezilla.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Terminal.desktop']"
  439. cat <<'EOF'>> zap
  440. #!/bin/bash
  441. gsettings set org.gnome.shell.extensions.dash-to-dock dash-max-icon-size 32
  442. gsettings set org.gnome.desktop.background picture-uri /home/wareck/Images/mr-robot-wallpapers.jpg
  443. gsettings set org.gnome.shell favorite-apps "XXX"
  444. #su wareck -c 'gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false'
  445. dconf load /org/gnome/terminal/ < /usr/local/bin/zap2
  446. EOF
  447. sed -i "s/XXX/$zip/g" zap
  448. UUID=$(gsettings get org.gnome.Terminal.ProfilesList default | tr -d \')
  449. cat <<'EOF'>> zap2
  450. [legacy/profiles:/:XXX]
  451. default-size-columns=110
  452. font='Monospace 9'
  453. use-system-font=false
  454. use-theme-colors=false
  455. EOF
  456. sed -i "s/XXX/$UUID/g" zap2
  457. chmod +x zap
  458. sudo cp zap /usr/local/bin
  459. sudo cp zap2 /usr/local/bin
  460. sudo rm zap
  461. sudo rm zap2
  462. sleep 1
  463. sudo rm -r -f /etc/update-motd.d/*
  464. tar xfJ pack1.tar.xz --checkpoint=.10
  465. echo -n -e "\n"
  466. sudo cp /home/wareck/pack2.tar.xz /
  467. sudo cp /home/wareck/pack3.tar.xz /
  468. cd /
  469. sudo tar xfJ pack2.tar.xz --checkpoint=.10
  470. sudo tar xfJ pack3.tar.xz --checkpoint=.10
  471. echo -n -e "\n"
  472. cd /home/wareck
  473. #clear
  474. dynmotd
  475. sudo sed -i -e "s/# set constantshow/set constantshow/g" /etc/nanorc
  476. if ! grep "wareck" /etc/sudoers >/dev/null
  477. then
  478. sudo sh -c "echo \"wareck ALL=(ALL) NOPASSWD: ALL\" >> /etc/sudoers"
  479. fi
  480. echo -e "$(tput setaf 10)\nBuild folder and mount drives:$(tput sgr0)"
  481. #if ! [ -r /media/Exos ];then sudo mkdir /media/Exos && cd / & sudo ln -s /media/Exos /Exos ;fi
  482. if ! [ -r /media/Cloud ];then sudo mkdir /media/Cloud && cd / & sudo ln -s /media/Cloud /Cloud ;fi
  483. if ! [ -r /media/Store ];then sudo mkdir /media/Store && cd / & sudo ln -s /media/Store /Store;fi
  484. if ! [ -r /media/Partage ];then sudo mkdir /media/Partage && cd / & sudo ln -s /media/Partage /Partage;fi
  485. if ! [ -r /media/Nas ];then sudo mkdir /media/Nas && cd / & sudo ln -s /media/Nas /Nas;fi
  486. if ! [ -r /media/nvme0 ];then sudo mkdir /media/nvme0 && cd / & sudo ln -s /media/nvme0 /nvme0 ;fi
  487. if ! [ -r /media/nvme1 ];then sudo mkdir /media/nvme1 && cd / & sudo ln -s /media/nvme1 /nvme1 ;fi
  488. if ! [ -r /farm ];then sudo mkdir /farm;fi
  489. if ! [ -r /farm/farm0 ];then sudo mkdir /farm/farm0;fi
  490. if ! [ -r /farm/farm1 ];then sudo mkdir /farm/farm1;fi
  491. if ! [ -r /farm/farm2 ];then sudo mkdir /farm/farm2;fi
  492. if ! [ -r /farm/farm3 ];then sudo mkdir /farm/farm3;fi
  493. if ! [ -r /farm/farm4 ];then sudo mkdir /farm/farm4;fi
  494. if ! grep "UUID=1df72b63-fca0-45c6-992c-3e2532d5591a /media/Store ext4" /etc/fstab >/dev/null
  495. then
  496. cp /etc/fstab /tmp/fstab
  497. cat <<"EOF">> /tmp/fstab
  498. #ext4
  499. UUID=6fc06d70-1a38-4706-ae83-0a329181b9f7 /media/Cloud ext4 auto,nofail,noatime,rw,user 0 0
  500. UUID=a111c12b-d1b4-441a-9352-b6bbc558184e /media/Partage ext4 auto,nofail,noatime,rw,user 0 0
  501. UUID=1df72b63-fca0-45c6-992c-3e2532d5591a /media/Store ext4 auto,nofail,noatime,rw,user 0 0
  502. #btrfs temporary drives
  503. #UUID=98f4077f-36da-42de-b322-8c58aec550a7 /nvme0 btrfs ssd,nodatasum,nobarrier,nodatacow,discard=async,noatime
  504. #UUID=1181ac83-b8c5-404a-97fa-b23ceb1addc5 /nvme1 btrfs ssd,nodatasum,nobarrier,nodatacow,discard=async,noatime
  505. /dev/md0 /nvme0 ext4 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0
  506. #/dev/plant/fast /nvme0 btrfs ssd,nodatasum,nobarrier,nodatacow,discard=async,noatime
  507. #Chia drive
  508. UUID=77a593df-1bdb-4012-8c9e-ce50864b464d /farm/farm0 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0
  509. UUID=0d145a5a-50b0-456c-8998-549def2f9fc9 /farm/farm1 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0
  510. UUID=b99c7fa3-827c-4c09-a625-a72aec6c9395 /farm/farm2 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0
  511. UUID=e583a1e4-f8c8-4c2b-a427-cee854e0b56d /farm/farm3 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0
  512. UUID=d24c7616-91c2-434c-b21e-8dd70d794e25 /farm/farm4 ext4 auto,nofail,noatime,nodiratime,rw,user 0 0
  513. EOF
  514. sudo cp /tmp/fstab /etc/fstab
  515. fi
  516. sudo rm /etc/hosts
  517. sudo cat <<'EOF'>> /etc/hosts
  518. 127.0.0.1 localhost
  519. 127.0.1.1 cube
  520. 192.168.1.8 miniserver miniserver gogserver.dnsalias.com
  521. 192.168.1.10 nzxt
  522. 192.168.1.11 garage
  523. 192.168.1.12 blade
  524. 192.168.1.254 mafreebox.freebox.fr
  525. 192.168.1.200 node
  526. # The following lines are desirable for IPv6 capable hosts
  527. ::1 ip6-localhost ip6-loopback
  528. fe00::0 ip6-localnet
  529. ff00::0 ip6-mcastprefix
  530. ff02::1 ip6-allnodes
  531. ff02::2 ip6-allrouters
  532. EOF
  533. echo "Done."
  534. echo -e "$(tput setaf 10)\nSensors drivers:$(tput sgr0)"
  535. if ! grep "it87" /etc/modules >/dev/null
  536. then
  537. cp /etc/modules /tmp/modules
  538. cat <<"EOF">> /tmp/modules
  539. # Chip drivers
  540. it87
  541. EOF
  542. sudo cp /tmp/modules /etc/modules
  543. fi
  544. if [ -f /tmp/sensors3.conf ]
  545. then
  546. chmod 777 /tmp/sensors3.conf
  547. rm /tmp/sensors3.conf
  548. fi
  549. cat <<'EOF'>> /tmp/sensors3.conf
  550. chip "it8728-isa-0228"
  551. label in0 "Vcore"
  552. label in1 "Vdram" # "DDR3" in BIOS
  553. label in2 "+3.3V"
  554. label in3 "+5V" # Not in BIOS
  555. label in4 "+12V"
  556. ignore in5 # -12V unused
  557. ignore in6
  558. label in7 "5VSB" # Not in BIOS
  559. label in8 "Vbat" # Not in BIOS
  560. compute in3 @ * (6.8/10+1), @ / (6.8/10+1)
  561. compute in4 @ * 3.963, @ / 3.963
  562. compute in7 @ * (6.8/10+1), @ / (6.8/10+1)
  563. set in0_min 0.825 * 0.95
  564. set in0_max 1.425 * 1.05
  565. set in1_min 1.5 * 0.95
  566. set in1_max 1.5 * 1.05
  567. set in2_min 3.3 * 0.95
  568. set in2_max 3.3 * 1.05
  569. set in3_min 5 * 0.95
  570. set in3_max 5 * 1.05
  571. set in4_min 12 * 0.95
  572. set in4_max 12 * 1.05
  573. set in7_min 5 * 0.95
  574. set in7_max 5 * 1.05
  575. ignore cpu0_vid
  576. set fan4_min 100
  577. set fan1_min 100
  578. ignore fan2
  579. ignore fan3
  580. ignore fan5
  581. ignore in8
  582. ignore intrusion0
  583. label fan1 "fan1"
  584. label fan4 "fan2"
  585. label temp1 "MB"
  586. label temp2 "CPU"
  587. set temp2_min 0
  588. set temp2_max 75
  589. set temp1_min 0
  590. set temp1_max 90
  591. set temp1_beep 0.0
  592. label temp1 "VRM Temp"
  593. set temp1_min 0
  594. set temp1_max 65
  595. label temp2 "SB Temp"
  596. label temp3 "CPU Temp"
  597. set temp3_min 0
  598. set temp3_max 65
  599. chip "nvme-pci-0400"
  600. set temp2_max 75
  601. set temp2_min 20
  602. set temp3_max 75
  603. set temp3_min 20
  604. EOF
  605. chmod 644 /tmp/sensors3.conf
  606. sudo cp /tmp/sensors3.conf /etc/
  607. sudo sensors -s
  608. sensors
  609. sudo apt install ethtool -y
  610. iface=$(ip link | awk -F: '$0 !~ "lo|vir|^[^0-9]"{print $2a;getline}')
  611. sudo ethtool --change $iface wol g
  612. cat <<'EOF'>> /tmp/wakemeup.sh
  613. #!/bin/bash
  614. set -e
  615. if ! [ -x "$(command -v etherwake)" ];then sudo apt-get install etherwake -y;fi
  616. clear
  617. echo -e "$(tput setaf 10)Wake On Lan v1.0:$(tput sgr0)"
  618. PS3="Select : "
  619. items=("Nzxt" "Garage" "Blade")
  620. select item in "${items[@]}" Quit
  621. do
  622. case $REPLY in
  623. 1) sudo etherwake -i enp5s0 E0:D5:5E:2D:9E:CB ; break;;
  624. 2) sudo etherwake -i enp5s0 58:11:22:CD:FC:7A ; break;;
  625. 3) sudo etherwake -i enp5s0 78:AC:44:57:3C:50 ; break;;
  626. $((${#items[@]}+1))) echo "We're done!"; break 2;;
  627. *) echo "Ooops - unknown choice $REPLY"; break;
  628. esac
  629. done
  630. echo -e ""
  631. EOF
  632. sudo chmod +x /tmp/wakemeup.sh
  633. sudo cp /tmp/wakemeup.sh /usr/local/bin
  634. echo "Done."
  635. echo -e "$(tput setaf 10)\nVnc init:$(tput sgr0)"
  636. sudo update-rc.d vncserver defaults
  637. echo "Done."
  638. echo -e "$(tput setaf 10)\nOpening ports:$(tput sgr0)"
  639. sudo ufw allow 8333 >/dev/null
  640. sudo ufw allow 22 >/dev/null
  641. sudo ufw allow 5900 >/dev/null
  642. sudo ufw allow 10000 >/dev/null
  643. sudo ufw allow 139 >/dev/null
  644. sudo ufw allow 5901 >/dev/null
  645. sudo ufw allow 5902 >/dev/null
  646. sudo ufw allow 445 >/dev/null
  647. echo "Done."
  648. echo -e "$(tput setaf 10)\nBashrc mod:$(tput sgr0)"
  649. if [ $Cuda = "YES" ]
  650. then
  651. if ! grep "#mod for cuda" /home/wareck/.bashrc >/dev/null
  652. then
  653. echo '#mod for cuda' >>/home/wareck/.bashrc
  654. echo 'export PATH=/usr/local/cuda-12.2/bin/:$PATH'>>/home/wareck/.bashrc
  655. echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH'>>/home/wareck/.bashrc
  656. echo '' >>/home/wareck/.bashrc
  657. fi
  658. fi
  659. if ! grep "#mod for tightvncserver" /home/wareck/.bashrc >/dev/null
  660. then
  661. echo '#mod for tightvncserver' >>/home/wareck/.bashrc
  662. echo 'cd ~' >>/home/wareck/.bashrc
  663. fi
  664. echo "Done."
  665. echo -e "$(tput setaf 10)\nDisable IPv6:$(tput sgr0)"
  666. if ! grep "ipv6.disable=1" /etc/default/grub >/dev/null
  667. then
  668. sed -i -e "s/quiet splash/quiet splash ipv6.disable=1/g" /etc/default/grub
  669. sed -i -e "s/GRUB_CMDLINE_LINUX=\"/GRUB_CMDLINE_LINUX=\"ipv6.disable=1 acpi_enforce_resources=lax/g" /etc/default/grub
  670. sudo update-grub2
  671. fi
  672. sudo chown -R wareck:wareck /home/wareck/miners/xmr*
  673. sudo chown -R wareck:wareck /home/wareck/miners/cgminer*
  674. sudo apt-get remove light-locker* -y
  675. if [ ! -d /home/wareck/.config/lxpanel/LXDE/panels ]
  676. then
  677. mkdir /home/wareck/.config/lxpanel
  678. mkdir /home/wareck/.config/lxpanel/LXDE
  679. mkdir /home/wareck/.config/lxpanel/LXDE/panels
  680. fi
  681. sudo cp /home/wareck/Build_Cube/pack/panel /home/wareck/.config/lxpanel/LXDE/panels/panel
  682. sudo chmod 777 /home/wareck/.config/lxpanel/LXDE/panels/panel
  683. if [ ! -d /home/wareck/.config/lxterminal ]
  684. then
  685. mkdir /home/wareck/.config/lxterminal
  686. fi
  687. sudo cp /home/wareck/Build_Cube/pack/lxterminal.conf /home/wareck/.config/lxterminal/
  688. sudo chmod 777 /home/wareck/.config/lxterminal/lxterminal.conf
  689. echo "Done."
  690. touch /home/wareck/.pass4
  691. decompte_
  692. fi
  693. }
  694. function printer_ {
  695. if [ ! -f /home/wareck/.pass3 ]
  696. then
  697. if [ ! -d /usr/local/share/foomatic/ ]
  698. then
  699. if [ ! -d /tmp/foomatic-db/ ]
  700. then
  701. cd /tmp/
  702. echo -e "$(tput setaf 10)\nInstall printers generic drivers:$(tput sgr0)"
  703. git clone https://github.com/OpenPrinting/foomatic-db.git
  704. fi
  705. cd /tmp/foomatic-db
  706. if [ ! -d /usr/local/share/foomatic/ ]
  707. then
  708. ./make_configure
  709. ./configure
  710. sudo make install
  711. echo "Done."
  712. fi
  713. fi
  714. fi
  715. }
  716. function mounting_drives_ {
  717. if [ ! -f /home/wareck/.pass4 ]
  718. then
  719. echo -e "$(tput setaf 10)\nMounting Drives$(tput sgr0)"
  720. if ! findmnt /media/Partage >/dev/null ; then sudo mount /media/Partage ;fi
  721. if ! findmnt /media/Store >/dev/null ; then sudo mount /media/Store ;fi
  722. if ! findmnt /media/Cloud >/dev/null ; then sudo mount /media/Cloud ;fi
  723. sudo chmod 777 /media/Store
  724. sudo chmod 777 /media/Cloud
  725. sudo chmod 777 /media/Partage
  726. sudo chmod 777 /media/nvme0
  727. sudo chmod 777 /media/nvme1
  728. sudo chmod 777 /media/Nas
  729. echo "Done."
  730. fi
  731. }
  732. function cleaning_ {
  733. if [ -f /home/wareck/.pass4 ]
  734. then
  735. echo -e "$(tput setaf 10)\nCleaning install files:$(tput sgr0)"
  736. if [ -f /pack2.tar.xz ]; then sudo rm /pack2.tar.xz ;fi
  737. if [ -f /pack3.tar.xz ]; then sudo rm /pack3.tar.xz ;fi
  738. if [ -f /home/wareck/pack1.tar.xz ]; then rm /home/wareck/pack1.tar.xz ;fi
  739. if [ -f /home/wareck/pack2.tar.xz ]; then rm /home/wareck/pack2.tar.xz ;fi
  740. if [ -f /home/wareck/pack3.tar.xz ]; then rm /home/wareck/pack3.tar.xz ;fi
  741. if [ -f /home/wareck/xmrig.tar.xz ]; then rm /home/wareck/xmrig.tar.xz ;fi
  742. if [ -f /home/wareck/gpu-miners.tar.xz ]; then rm /home/wareck/gpu-miners.tar.xz;fi
  743. if [ -r /home/wareck/Music ]; then sudo rm -r -f /home/wareck/Music ;fi
  744. if [ -r /home/wareck/Public ]; then sudo rm -r -f /home/wareck/Public ;fi
  745. if [ -r /home/wareck/Templates ]; then sudo rm -r -f /home/wareck/Templates ;fi
  746. if [ -r /home/wareck/Vidéos ]; then sudo rm -r -f /home/wareck/Vidéos ;fi
  747. if [ -f /home/wareck/NVIDIA-Linux-x86_64-470.74.run ]; then rm /home/wareck/NVIDIA-Linux-x86_64-470.74.run ;fi
  748. 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
  749. if [ -f /home/wareck/.pass1 ]; then rm /home/wareck/.pass1 ;fi
  750. if [ -f /home/wareck/.pass2 ]; then rm /home/wareck/.pass2 ;fi
  751. if [ -f /home/wareck/.pass3 ]; then rm /home/wareck/.pass3 ;fi
  752. if [ -f /home/wareck/.pass4 ]; then rm /home/wareck/.pass4 ;fi
  753. if [ -f /usr/local/bin/zap ]; then sudo rm /usr/local/bin/zap* ;fi
  754. if [ -f /home/wareck/.config/autostart/install_os.desktop ];then sudo rm /home/wareck/.config/autostart/install_os.desktop;fi
  755. if [ -f /home/wareck/.config/autostart/zappy.desktop ];then sudo rm /home/wareck/.config/autostart/zappy.desktop;fi
  756. if [ -r /lib/modules/5.15.0-60-generic ]; then sudo rm -r /lib/modules/5.15.0-60-generic ;fi
  757. if [ -r /lib/modules/5.15.0-46-generic ]; then sudo rm -r /lib/modules/5.15.0-46-generic ;fi
  758. if [ -r /lib/modules/5.15.0-70-generic ]; then sudo rm -r /lib/modules/5.15.0-70-generic ;fi
  759. cd /home/wareck/Build_Cube/pack
  760. sudo chown -R wareck:wareck /home/wareck/miners
  761. sudo chmod -R 775 /home/wareck/miners
  762. ./clean.sh
  763. echo -e "Done. \n"
  764. echo `date` "install/update" >/home/wareck/.buildcube
  765. fi
  766. sudo apt-get autoremove -y
  767. sleep 1
  768. }
  769. function autoroot_ {
  770. if [ ! -d /home/wareck/.config/autostart ]
  771. then
  772. echo -e "$(tput setaf 10)\nInit install & autostart:$(tput sgr0)"
  773. mkdir /home/wareck/.config/autostart
  774. echo -e "Done."
  775. sleep 1
  776. fi
  777. if [ ! -f /home/wareck/.config/autostart/install_os.desktop ]
  778. then
  779. cat <<'EOF'>> /home/wareck/.config/autostart/install_os.desktop
  780. [Desktop Entry]
  781. # VERSION=3.36.2
  782. Name=Terminal
  783. Comment=Use the command line
  784. Keywords=shell;prompt;command;commandline;cmd;
  785. TryExec=gnome-terminal
  786. Exec=gnome-terminal -- bash -c "sudo /home/wareck/Build_Cube/build_cube.sh; exec bash"
  787. Icon=org.gnome.Terminal
  788. Type=Application
  789. Categories=GNOME;GTK;System;TerminalEmulator;
  790. StartupNotify=true
  791. X-GNOME-SingleWindow=false
  792. OnlyShowIn=GNOME;Unity;
  793. Actions=new-window;preferences;
  794. X-Ubuntu-Gettext-Domain=gnome-terminal
  795. [Desktop Action new-window]
  796. Name=New Window
  797. Exec=gnome-terminal --window
  798. [Desktop Action preferences]
  799. Name=Preferences
  800. Exec=gnome-terminal --preferences
  801. EOF
  802. chmod +x /home/wareck/.config/autostart/install_os.desktop
  803. fi
  804. if [ ! -f /home/wareck/.config/autostart/zappy.desktop ]
  805. then
  806. cat <<'EOF'>> /home/wareck/.config/autostart/zappy.desktop
  807. [Desktop Entry]
  808. # VERSION=3.36.2
  809. Name=Terminal
  810. Comment=Use the command line
  811. Keywords=shell;prompt;command;commandline;cmd;
  812. TryExec=gnome-terminal
  813. Exec=gnome-terminal -- bash -c "/usr/local/bin/zap"
  814. Icon=org.gnome.Terminal
  815. Type=Application
  816. Categories=GNOME;GTK;System;TerminalEmulator;
  817. StartupNotify=true
  818. X-GNOME-SingleWindow=false
  819. OnlyShowIn=GNOME;Unity;
  820. Actions=new-window;preferences;
  821. X-Ubuntu-Gettext-Domain=gnome-terminal
  822. [Desktop Action new-window]
  823. Name=New Window
  824. Exec=gnome-terminal --window
  825. [Desktop Action preferences]
  826. Name=Preferences
  827. Exec=gnome-terminal --preferences
  828. EOF
  829. chmod +x /home/wareck/.config/autostart/zappy.desktop
  830. fi
  831. if ! grep "wareck" /etc/sudoers >/dev/null
  832. then
  833. sudo sh -c "echo \"wareck ALL=(ALL) NOPASSWD: ALL\" >> /etc/sudoers"
  834. fi
  835. echo -e "$(tput setaf 10)\nUpdate and install packages:$(tput sgr0)"
  836. sudo apt-get update
  837. sudo apt-get install lxde lxde-icon-theme -y
  838. sleep 1
  839. }
  840. function remove_screensaver {
  841. #remove screensaver
  842. cat <<EOF>> autostart
  843. @lxpanel --profile LXDE
  844. @pcmanfm --desktop --profile LXDE
  845. EOF
  846. sudo chmod 744 autostart
  847. sudo cp autostart /etc/xdg/lxsession/LXDE/
  848. sudo cp autostart /home/wareck/.config/lxsession/LXDE/
  849. sudo rm autostart
  850. sudo apt-get remove xscreensaver xscreensaver-data -y
  851. }
  852. function cmake_ {
  853. pids=""
  854. /home/wareck/Build_Cube/options/tools/_cmake.sh rollback & pids="$pids $!"
  855. wait $pids
  856. sudo ldconfig
  857. }
  858. function watchdog_ {
  859. pids=""
  860. /home/wareck/Build_Cube/options/watchdog.sh ext & pids="$pids $!"
  861. wait $pids
  862. }
  863. function wol_ {
  864. iface=$(ip link | awk -F: '$0 !~ "lo|vir|^[^0-9]"{print $2a;getline}')
  865. ether=$(which ethtool)
  866. echo "[Unit]" >>/tmp/wol.service
  867. echo "Description=Enable Wake On Lan" >>/tmp/wol.service
  868. echo "" >>/tmp/wol.service
  869. echo "[Service]" >>/tmp/wol.service
  870. echo "Type=oneshot" >>/tmp/wol.service
  871. echo "ExecStart = $ether --change$iface wol g" >>/tmp/wol.service
  872. echo "" >>/tmp/wol.service
  873. echo "[Install]" >>/tmp/wol.service
  874. echo "WantedBy=basic.target" >>/tmp/wol.service
  875. sudo cp /tmp/wol.service /etc/systemd/system/wol.service
  876. sudo systemctl daemon-reload
  877. sudo systemctl enable wol.service
  878. sudo systemctl start wol.service
  879. }
  880. intro_
  881. watchdog_
  882. autoroot_
  883. ubuntu_version_check
  884. update_
  885. kernel_check_
  886. autoroot_
  887. nvidia_driver_
  888. update_
  889. download_packs_
  890. printer_
  891. build_miners_
  892. configure_
  893. mounting_drives_
  894. cleaning_
  895. remove_screensaver
  896. clear
  897. wol_
  898. dynmotd
  899. echo -e "$(tput setaf 10)\nEnd of script:$(tput sgr0) \n"
  900. echo -e "$(tput setaf 7)Need to install webmin manually (reboot required)$(tput sgr0)"
  901. echo -e "$(tput setaf 7)after install webmin, reboot is required $(tput sgr0)"
  902. echo -e ""