build_cube.sh 28 KB

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