build_cube.sh 27 KB

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