build_cube.sh 29 KB

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