build_cube.sh 28 KB

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