build_cube.sh 29 KB

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