build_cube.sh 26 KB

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