build_cube.sh 29 KB

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