build_cube.sh 29 KB

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