From 6bebb8bb8ed77d25c0c5a22d09e0071f9c4fa99b Mon Sep 17 00:00:00 2001 From: bluecell296 <43343391+openoms@users.noreply.github.com> Date: Mon, 18 Mar 2019 10:20:33 +0000 Subject: [PATCH 01/24] Fix pi autostart in Dietpi --- build_sdcard.sh | 100 ++++++++++++++++-------------------------------- 1 file changed, 33 insertions(+), 67 deletions(-) diff --git a/build_sdcard.sh b/build_sdcard.sh index f1a00af..fe03afc 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -119,7 +119,6 @@ if [ "${baseImage}" = "dietpi" ]; then # install OpenSSH client + server sudo apt install -y openssh-client sudo apt install -y openssh-sftp-server - fi # special prepare when Raspbian @@ -148,48 +147,24 @@ echo "*** CONFIG ***" echo "root:raspiblitz" | sudo chpasswd echo "pi:raspiblitz" | sudo chpasswd -# set Raspi to boot up automatically with user pi (for the LCD) -# https://www.raspberrypi.org/forums/viewtopic.php?t=21632 -sudo raspi-config nonint do_boot_behaviour B2 -sudo bash -c "echo '[Service]' >> /etc/systemd/system/getty@tty1.service.d/autologin.conf" -sudo bash -c "echo 'ExecStart=' >> /etc/systemd/system/getty@tty1.service.d/autologin.conf" -sudo bash -c "echo 'ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux' >> /etc/systemd/system/getty@tty1.service.d/autologin.conf" +if [ "${baseImage}" = "raspbian" ]; then + # set Raspi to boot up automatically with user pi (for the LCD) + # https://www.raspberrypi.org/forums/viewtopic.php?t=21632 + sudo raspi-config nonint do_boot_behaviour B2 + sudo bash -c "echo '[Service]' >> /etc/systemd/system/getty@tty1.service.d/autologin.conf" + sudo bash -c "echo 'ExecStart=' >> /etc/systemd/system/getty@tty1.service.d/autologin.conf" + sudo bash -c "echo 'ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux' >> /etc/systemd/system/getty@tty1.service.d/autologin.conf" +fi + +if [ "${baseImage}" = "dietpi" ]; then + sudo bash -c "echo '[Service]' >> /etc/systemd/system/getty@tty1.service.d/dietpi-autologin.conf" + sudo bash -c "echo 'ExecStart=' >> /etc/systemd/system/getty@tty1.service.d/dietpi-autologin.conf" + sudo bash -c "echo 'ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux' >> /etc/systemd/system/getty@tty1.service.d/dietpi-autologin.conf" +fi # change log rotates # see https://github.com/rootzoll/raspiblitz/issues/394#issuecomment-471535483 -echo "/var/log/syslog" >> ./rsyslog -echo "{" >> ./rsyslog -echo " rotate 7" >> ./rsyslog -echo " daily" >> ./rsyslog -echo " missingok" >> ./rsyslog -echo " notifempty" >> ./rsyslog -echo " delaycompress" >> ./rsyslog -echo " compress" >> ./rsyslog -echo " postrotate" >> ./rsyslog -echo " invoke-rc.d rsyslog rotate > /dev/null" >> ./rsyslog -echo " endscript" >> ./rsyslog -echo "}" >> ./rsyslog -echo "" >> ./rsyslog -echo "/var/log/mail.info" >> ./rsyslog -echo "/var/log/mail.warn" >> ./rsyslog -echo "/var/log/mail.err" >> ./rsyslog -echo "/var/log/mail.log" >> ./rsyslog -echo "/var/log/daemon.log" >> ./rsyslog -echo "{" >> ./rsyslog -echo " rotate 4" >> ./rsyslog -echo " size=100M" >> ./rsyslog -echo " missingok" >> ./rsyslog -echo " notifempty" >> ./rsyslog -echo " compress" >> ./rsyslog -echo " delaycompress" >> ./rsyslog -echo " sharedscripts" >> ./rsyslog -echo " postrotate" >> ./rsyslog -echo " invoke-rc.d rsyslog rotate > /dev/null" >> ./rsyslog -echo " endscript" >> ./rsyslog -echo "}" >> ./rsyslog -echo "" >> ./rsyslog -echo "/var/log/kern.log" >> ./rsyslog -echo "/var/log/auth.log" >> ./rsyslog +sudo head -n 18 /etc/logrotate.d/rsyslog > ./rsyslog echo "{" >> ./rsyslog echo " rotate 4" >> ./rsyslog echo " size=100M" >> ./rsyslog @@ -203,23 +178,7 @@ echo " invoke-rc.d rsyslog rotate > /dev/null" >> ./rsyslog echo " endscript" >> ./rsyslog echo "}" >> ./rsyslog echo "" >> ./rsyslog -echo "/var/log/user.log" >> ./rsyslog -echo "/var/log/lpr.log" >> ./rsyslog -echo "/var/log/cron.log" >> ./rsyslog -echo "/var/log/debug" >> ./rsyslog -echo "/var/log/messages" >> ./rsyslog -echo "{" >> ./rsyslog -echo " rotate 4" >> ./rsyslog -echo " weekly" >> ./rsyslog -echo " missingok" >> ./rsyslog -echo " notifempty" >> ./rsyslog -echo " compress" >> ./rsyslog -echo " delaycompress" >> ./rsyslog -echo " sharedscripts" >> ./rsyslog -echo " postrotate" >> ./rsyslog -echo " invoke-rc.d rsyslog rotate > /dev/null" >> ./rsyslog -echo " endscript" >> ./rsyslog -echo "}" >> ./rsyslog +sudo tail -n +19 /etc/logrotate.d/rsyslog >> ./rsyslog sudo mv ./rsyslog /etc/logrotate.d/rsyslog sudo chown root:root /etc/logrotate.d/rsyslog sudo service rsyslog restart @@ -234,9 +193,6 @@ sudo apt-get install -y htop git curl bash-completion jq dphys-swapfile # installs bandwidth monitoring for future statistics sudo apt-get install -y vnstat -# prepare for BTRFS data drive raid -sudo apt-get install -y btrfs-tools - # prepare for display graphics mode # see https://github.com/rootzoll/raspiblitz/pull/334 sudo apt-get install -y fbi @@ -566,13 +522,23 @@ sudo bash -c "echo 'source /home/admin/_commands.sh' >> /home/admin/.bashrc" sudo bash -c "echo '# automatically start main menu for admin' >> /home/admin/.bashrc" sudo bash -c "echo './00mainMenu.sh' >> /home/admin/.bashrc" -# bash autostart for pi -# run as exec to dont allow easy physical access by keyboard -# see https://github.com/rootzoll/raspiblitz/issues/54 -sudo bash -c 'echo "# automatic start the LCD info loop" >> /home/pi/.bashrc' -sudo bash -c 'echo "SCRIPT=/home/admin/00infoLCD.sh" >> /home/pi/.bashrc' -sudo bash -c 'echo "# replace shell with script => logout when exiting script" >> /home/pi/.bashrc' -sudo bash -c 'echo "exec \$SCRIPT" >> /home/pi/.bashrc' +if [ "${baseImage}" = "raspbian" ]; then + # bash autostart for pi + # run as exec to dont allow easy physical access by keyboard + # see https://github.com/rootzoll/raspiblitz/issues/54 + sudo bash -c 'echo "# automatic start the LCD info loop" >> /home/pi/.bashrc' + sudo bash -c 'echo "SCRIPT=/home/admin/00infoLCD.sh" >> /home/pi/.bashrc' + sudo bash -c 'echo "# replace shell with script => logout when exiting script" >> /home/pi/.bashrc' + sudo bash -c 'echo "exec \$SCRIPT" >> /home/pi/.bashrc' +fi + +if [ "${baseImage}" = "dietpi" ]; then + # bash autostart for dietpi + sudo bash -c 'echo "# automatic start the LCD info loop" >> /home/dietpi/.bashrc' + sudo bash -c 'echo "SCRIPT=/home/admin/00infoLCD.sh" >> /home/dietpi/.bashrc' + sudo bash -c 'echo "# replace shell with script => logout when exiting script" >> /home/dietpi/.bashrc' + sudo bash -c 'echo "exec \$SCRIPT" >> /home/dietpi/.bashrc' +fi # create /home/admin/setup.sh - which will get executed after reboot by autologin pi user cat > /home/admin/setup.sh < Date: Mon, 18 Mar 2019 16:21:22 +0000 Subject: [PATCH 02/24] update links and DietPi readme --- dietpi/Odroid_HC1_HC2.md | 4 +- dietpi/README.md | 47 +++++++++++-------- dietpi/boot/Automation_Custom_Script.sh | 2 +- dietpi/boot/dietpi.txt | 17 +++---- dietpi/hw_comparison.md | 61 +++++++++++++------------ 5 files changed, 70 insertions(+), 61 deletions(-) diff --git a/dietpi/Odroid_HC1_HC2.md b/dietpi/Odroid_HC1_HC2.md index 00617c6..897b7d2 100644 --- a/dietpi/Odroid_HC1_HC2.md +++ b/dietpi/Odroid_HC1_HC2.md @@ -10,7 +10,7 @@ * Build your own SDcard from the image downloaded from [Dietpi.com](dietpi.com#download) --- ### Download the fully prebuilt RaspiBlitz-on-DietPi SDcard image -* [torrent](https://github.com/openoms/raspiblitz/blob/raspiblitz-dev/dietpi/RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent) +* [torrent](https://github.com/openoms/raspiblitz/raw/raspiblitz-dev/dietpi/RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent) * [mega.nz link](https://mega.nz/#F!EVNAAQiB!ZyLHP2dJMRSVjZOTCQMIYA) sha256sum RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.img: 96ee8700f52a12fb5b13fab3fffcdcf5d364c6dd16c580d969e421cef2cd7cc2 @@ -110,7 +110,7 @@ Changing the SSH server will change the SSH keys again. To clear: If you are working from a forked repo be aware of that the fork needs to be called `raspiblitz` for the git downloads to work. * Run the forked version of @openoms: -`wget https://raw.githubusercontent.com/openoms/raspiblitz/raspiblitz-dev/build_sdcard.sh && sudo bash build_sdcard.sh raspiblitz-dev openoms` +`wget https://raw.githubusercontent.com/openoms/raspiblitz/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms` This will take a couple minutes depending on your internet ceonnection and the processing power of the SBC. * Restart when done and log back in now as `admin`: diff --git a/dietpi/README.md b/dietpi/README.md index c495462..4f22ea0 100644 --- a/dietpi/README.md +++ b/dietpi/README.md @@ -5,12 +5,14 @@ This guide was tested on: * Odroid HC1 -* Odroid HC2 (the same board except it accommodates a 3.5" 12V HDD) -* Raspberry Pi 3 B Plus - no LCD support so far -* hoping to extend this list with more compatible boards especially the ROCK64 +* Odroid HC2 (the same board with a 3.5" 12V HDD) +* Odroid XU4 (with HDMI screen) +* Raspberry Pi 3 B + (no support for the default GPIO LCDso far, but the HDMI works) See the [hardware comparison](hw_comparison.md). +The screen tested: https://www.aliexpress.com/item/3-5-inch-LCD-HDMI-USB-Touch-Screen-Real-HD-1920x1080-LCD-Display-Py-for-Raspberri/32818537950.html + --- @@ -26,7 +28,7 @@ Getting started with DietPi: https://dietpi.com/phpbb/viewtopic.php?f=8&t=9#p9 At least 1GB RAM is recommended. Look for the SD card image for the specific SBC in the [download section](https://dietpi.com/#download). -* Burn the image to the SDCard with [Etcher](https://www.balena.io/etcher/) and extend the rootfs partition to the size of your card with a partition manager. +* Burn the image to the SDCard with [Etcher](https://www.balena.io/etcher/). * Insert the SDcard into your SBC. @@ -38,7 +40,6 @@ If you are connecting the HDD to a USB 3.0 port and have an at least 2A power su `ssh root@[IP-OF-DIETPI]` password: `dietpi` - * You might be asked about updating DietPi. This is not a straightforward process if starting from a version <6.20. Try to update, it is best to build on the latest version. * In the DietPi software menu install `fail2ban` and make `OpenSSH server` the default SSH server. @@ -60,7 +61,7 @@ password: `dietpi` If you are working from a forked repo be aware of that the fork needs to be called `raspiblitz` for the git downloads to work. * Run the forked version of @openoms: -`wget https://raw.githubusercontent.com/openoms/raspiblitz/raspiblitz-dev/build_sdcard.sh && sudo bash build_sdcard.sh raspiblitz-dev openoms` +`wget https://raw.githubusercontent.com/openoms/raspiblitz/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms` This will take a couple minutes depending on your internet connection and the processing power of the SBC. * Restart when done and log back in now as `admin`: @@ -87,22 +88,22 @@ To test a new configuration run XXcleanHDD.sh and strictly restart --- - -## Excerpts from the default [dietpi.txt](https://github.com/Fourdee/DietPi/blob/master/dietpi.txt) +## Excerpts from the [customized dietpi.txt](/dietpi/boot/dietpi.txt) to be used for a fully automatic SDcard building process. ### Automate installation with the dietpi.txt Need to copy to SDcard /boot/dietpi.txt after burning the image with Etcher. IMPORTANT: -- Modifications to /boot/dietpi.txt will not be preserved on reboot. -- Please ensure you edit from the DietPi-RAMdisk location: /DietPi/dietpi.txt -NB: This is intended for advanced users, unless you know what you are doing, do not edit this file. ease use the DietPi programs instead. +- Modifications to /boot/dietpi.txt will not be preserved on reboot . +- Please ensure you edit from the DietPi-RAMdisk location: /DietPi/dietpi.txt + +NB: This is intended for advanced users, unless you know what you are doing, do not edit this file. ease use the DietPi programs instead. NB: Do not remove uncommented lines, as the items are scraped by DietPi programs, on demand. -DietPi-Automation settings, applied on the 1st boot of DietPi, ONCE -Sample: +DietPi-Automation settings, applied on the 1st boot of DietPi, ONCE +Sample: https://github.com/Fourdee/DietPi/blob/master/dietpi.txt -### DietPi-Software to automatically install. +#### DietPi-Software to be installed automatically Requires `AUTO_SETUP_AUTOMATED=1 ` For a list of software index's (ID's), run '/DietPi/dietpi/dietpi-software list' No limit on number entries, add as many as you need and uncomment the line. @@ -110,17 +111,23 @@ DietPi will automatically install all pre-reqs (eg: ALSA/XSERVER for desktops et >install fail2ban AUTO_SETUP_INSTALL_SOFTWARE_ID=73 install OpenSSH Client -AUTO_SETUP_INSTALL_SOFTWARE_ID=0 -install OpenSSH Server -AUTO_SETUP_INSTALL_SOFTWARE_ID=105 +#### SSH Server Selection: +>0=none +-1=dropbear +-2=opensshserver +AUTO_SETUP_SSH_SERVER_INDEX=-2 -### Custom Script (post-networking and post-DietPi install) -Runs after DietPi installation is completed +--- +## Custom Script (post-networking and post-DietPi install) +Runs after DietPi installation is completed. Allows you to automatically execute a custom script at the end of DietPi installation. Option 1 = Copy your script to /boot/Automation_Custom_Script.sh and it will be executed automatically. Option 2 = Host your script online, then use AUTO_SETUP_CUSTOM_SCRIPT_EXEC=http://myweb.com/myscript.sh, it will be downloaded and executed automatically. | 0=disabled NB: Executed script log /var/tmp/dietpi/logs/dietpi-automation_custom_script.log -### Guide to clone your SD-cards in Windows, MacOS and Linux and shrink the image in Linux: +Find the Automation_Custom_Script.sh loaded with the build_sdcard.sh [here](/dietpi/boot/Automation_Custom_Script.sh) + +--- +## Guide to clone your SD-cards in Windows, MacOS and Linux and shrink the image in Linux: https://beebom.com/how-clone-raspberry-pi-sd-card-windows-linux-macos/ \ No newline at end of file diff --git a/dietpi/boot/Automation_Custom_Script.sh b/dietpi/boot/Automation_Custom_Script.sh index 412dc43..1360093 100644 --- a/dietpi/boot/Automation_Custom_Script.sh +++ b/dietpi/boot/Automation_Custom_Script.sh @@ -1 +1 @@ -wget https://raw.githubusercontent.com/openoms/raspiblitz/raspiblitz-dev/build.sdcard/raspbianStretchDesktop.sh && sudo bash raspbianStretchDesktop.sh raspiblitz-dev openoms \ No newline at end of file +wget https://github.com/openoms/raspiblitz/raw/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms \ No newline at end of file diff --git a/dietpi/boot/dietpi.txt b/dietpi/boot/dietpi.txt index 36c1102..0572089 100644 --- a/dietpi/boot/dietpi.txt +++ b/dietpi/boot/dietpi.txt @@ -27,7 +27,7 @@ AUTO_SETUP_NET_STATIC_GATEWAY=192.168.0.1 AUTO_SETUP_NET_STATIC_DNS=8.8.8.8 # Hostname -AUTO_SETUP_NET_HOSTNAME=DietPi +AUTO_SETUP_NET_HOSTNAME=DietBlitz # Force ethernet speeds # NB: This is mainly aimed at Pine A64's which may have an HW issue that causes unstable 1Gbit link. @@ -68,21 +68,18 @@ AUTO_SETUP_GLOBAL_PASSWORD=dietpi #AUTO_SETUP_INSTALL_SOFTWARE_ID=23 #will install Desktop LXDE #AUTO_SETUP_INSTALL_SOFTWARE_ID=74 #will install LAMP webserver stack #AUTO_SETUP_INSTALL_SOFTWARE_ID=44 #will install Bittorrent transmission -# install fail2ban -AUTO_SETUP_INSTALL_SOFTWARE_ID=73 -# install OpenSSH Client -# AUTO_SETUP_INSTALL_SOFTWARE_ID=0 -# install OpenSSH Server -# AUTO_SETUP_INSTALL_SOFTWARE_ID=105 +AUTO_SETUP_INSTALL_SOFTWARE_ID=73 # install fail2ban +# AUTO_SETUP_INSTALL_SOFTWARE_ID=0 # install OpenSSH Client +# AUTO_SETUP_INSTALL_SOFTWARE_ID=105 # install OpenSSH Server # DietPi-Software Choice System # SSH Server Selection: # 0=none # -1=dropbear # -2=opensshserver -AUTO_SETUP_SSH_SERVER_INDEX=-1 +AUTO_SETUP_SSH_SERVER_INDEX=-2 # File Server Selection: # 0=none/manual @@ -129,7 +126,7 @@ AUTO_SETUP_KEYBOARD_LAYOUT=gb # Option 1 = Copy your script to /boot/Automation_Custom_Script.sh and it will be executed automatically. # Option 2 = Host your script online, then use AUTO_SETUP_CUSTOM_SCRIPT_EXEC=http://myweb.com/myscript.sh , it will be downloaded and executed automatically. | 0=disabled # NB: Executed script log /var/tmp/dietpi/logs/dietpi-automation_custom_script.log -AUTO_SETUP_CUSTOM_SCRIPT_EXEC=0 +AUTO_SETUP_CUSTOM_SCRIPT_EXEC=1 #Disable HDMI (and GPU/VPU where supported) output for supported devices: # RPi | Odroid C1 | Odroid C2 @@ -261,4 +258,4 @@ DEV_GITOWNER=Fourdee #------------------------------------------------------------------------------------------------------ # D I E T - P I # Settings, automatically added by dietpi-update -#------------------------------------------------------------------------------------------------------ +#------------------------------------------------------------------------------------------------------ \ No newline at end of file diff --git a/dietpi/hw_comparison.md b/dietpi/hw_comparison.md index 53cdc82..0cbf8dc 100644 --- a/dietpi/hw_comparison.md +++ b/dietpi/hw_comparison.md @@ -1,31 +1,3 @@ -### ODROID-HC1 - -Key features -* Samsung Exynos5422 Cortex-A15 2Ghz and Cortex-A7 Octa core CPUs -* 2Gbyte LPDDR3 RAM PoP stacked -* SATA-3 port for 2.5inch HDD/SSD storage up to 15mm thickness -* Gigabit Ethernet port -* USB 2.0 Host -* UHS-1 capable micro-SD card slot for boot media -* Size : 147 x 85 x 29 mm approx.(including Aluminium cooling frame) -* Linux server OS images based on modern Kernel 4.14 LTS - -### ROCK64 4K60P HDR Single Board Computer - -ROCK64 is a credit card size 4K60P HDR Single Board Computer powered by -* Rockchip RK3328 Quad-Core ARM Cortex A53 64-Bit Processor and support up to -* 4GB 1600MHz LPDDR3 memory. It provides -* eMMC module socket, -* MicroSD Card slot, -* Pi-2 Bus, -* Pi-P5+ Bus, U -* SB 3.0 and many others peripheral devices interface for makers to integrate with sensors and devices. Various Operating System (OS) are made available by open source community such -* Android 7.1, -* Debian, -* BSD and many more to come. - -The ROCK64 4GB board designated as LTS (long Term Supply) model, PINE64 committed to supply at least for 5 years until year 2022 and beyond. - ### Raspberry Pi 3 Model B+ * Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz @@ -41,3 +13,36 @@ The ROCK64 4GB board designated as LTS (long Term Supply) model, PINE64 committe * Micro SD port for loading your operating system and storing data * 5V/2.5A DC power input * Power-over-Ethernet (PoE) support (requires separate PoE HAT) + +### Odroid HC1 + +* Samsung Exynos5422 Octa core CPU 4x Cortex-A15 2Ghz and 4x Cortex-A7 1.5GHz +* 2 Gbyte LPDDR3 RAM +* SATA-3 port for 2.5inch HDD/SSD storage up to 15mm thickness +* Gigabit Ethernet port +* USB 2.0 Host +* UHS-1 capable micro-SD card slot for boot media +* Size : 147 x 85 x 29 mm approx.(including Aluminium cooling frame) +* Linux server OS images based on modern Kernel 4.14 LTS + +### Odroid XU4 + +* Samsung Exynos5422 Octa core CPU 4x Cortex-A15 2Ghz and 4x Cortex-A7 1.5GHz +* 2 Gbyte LPDDR3 RAM +* Graphics: Samsung S2MPS11 +* Storage: eMMC5.0 HS400 Flash Storage or SD Card +* I/O Connectors: HDMI-A x 1, USB 3.0 Host x 2, USB 2.0 Host x 1, PWM for * Cooler Fan, UART for serial console 30Pin : GPIO/IRQ/SPI/ADC, 12Pin : GPIO/I2S/I2C +* Network Ethernet RJ-45 +* Input Power 5V + +### Rock64 + +ROCK64 is a credit card size 4K60P HDR Single Board Computer powered by + +* Rockchip RK3328 Quad-Core ARM Cortex A53 64-Bit CPU +* 1 - 4GB 1600MHz LPDDR3 RAM +* eMMC module socket +* MicroSD Card slot +* Pi-2 Bus +* Pi-P5+ Bus + From cd045bf0c737fc83c14811ce57db3c948b06a0d2 Mon Sep 17 00:00:00 2001 From: openoms Date: Tue, 19 Mar 2019 17:59:38 +0000 Subject: [PATCH 03/24] dietpi readme updates --- dietpi/README.md | 3 +-- dietpi/boot/Automation_Custom_Script.sh | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/dietpi/README.md b/dietpi/README.md index 4f22ea0..945fb04 100644 --- a/dietpi/README.md +++ b/dietpi/README.md @@ -7,7 +7,7 @@ This guide was tested on: * Odroid HC1 * Odroid HC2 (the same board with a 3.5" 12V HDD) * Odroid XU4 (with HDMI screen) -* Raspberry Pi 3 B + (no support for the default GPIO LCDso far, but the HDMI works) +* Raspberry Pi 3 B + (no support for the default GPIO LCD so far, but the HDMI works) See the [hardware comparison](hw_comparison.md). @@ -15,7 +15,6 @@ The screen tested: https://www.aliexpress.com/item/3-5-inch-LCD-HDMI-USB-Touch-S --- - ### Downloads and walkthrough for the [Odroid HC1 / HC2 / XU3 / XU4](Odroid_HC1_HC2.md) --- ## General guide for the RaspiBlitz-on-DietPi diff --git a/dietpi/boot/Automation_Custom_Script.sh b/dietpi/boot/Automation_Custom_Script.sh index 1360093..5dd0fcf 100644 --- a/dietpi/boot/Automation_Custom_Script.sh +++ b/dietpi/boot/Automation_Custom_Script.sh @@ -1 +1,14 @@ -wget https://github.com/openoms/raspiblitz/raw/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms \ No newline at end of file +# Use this format to build the SDcard with the Raspiblitz script: +# wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build_sdcard.sh && sudo bash build_sdcard.sh [BRANCH] [GITHUB-USERNAME]` +# If you are working from a forked repo be aware of that the fork needs to be called `raspiblitz` for the git downloads to work. + +# Uncomment the line with the branch you want to build the SDcard from: + +# @rootzoll master branch: +# wget https://raw.githubusercontent.com/rootzoll/raspiblitz/master/build_sdcard.sh && sudo bash build_sdcard.sh + +# @rootzoll dev branch: +# wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev + +# @openoms DietPi branch: +# wget https://github.com/openoms/raspiblitz/raw/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms \ No newline at end of file From 6cdb7801cb85b60bd93e46797283e2e58de7fb40 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 20 Mar 2019 10:13:43 +0000 Subject: [PATCH 04/24] amke display install a 3 choice menu --- dietpi/dietpi.display.sh | 191 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 dietpi/dietpi.display.sh diff --git a/dietpi/dietpi.display.sh b/dietpi/dietpi.display.sh new file mode 100644 index 0000000..339d35c --- /dev/null +++ b/dietpi/dietpi.display.sh @@ -0,0 +1,191 @@ + +# keep in mind that DietPi for Raspberry is also a stripped down Raspbian +echo "Detect Base Image ..." +baseImage="?" +isDietPi=$(uname -n | grep -c 'DietPi') +isRaspbian=$(cat /etc/os-release 2>/dev/null | grep -c 'Raspbian') +if [ ${isRaspbian} -gt 0 ]; then + baseImage="raspbian" +fi +if [ ${isDietPi} -gt 0 ]; then + baseImage="dietpi" +fi +if [ "${baseImage}" = "?" ]; then + cat /etc/os-release 2>/dev/null + echo "!!! FAIL !!!" + echo "Base Image cannot be detected or is not supported." + exit 1 +else + echo "OK running ${baseImage}" +fi + + +if [ "${baseImage}" = "raspbian" ]; then + echo "Press ENTER to install LCD and reboot ..." + read key + + # give Raspi a default hostname (optional) + sudo raspi-config nonint do_hostname "RaspiBlitz" + + # *** Display selection *** + dialog --title "Display" --yesno "Are you using the default display available from Amazon?\nSelect 'No' if you are using the Swiss version from play-zone.ch!" 6 80 + defaultDisplay=$? + + if [ "${defaultDisplay}" = "0" ]; then + + # *** RASPIBLITZ / LCD (at last - because makes a reboot) *** + # based on https://www.elegoo.com/tutorial/Elegoo%203.5%20inch%20Touch%20Screen%20User%20Manual%20V1.00.2017.10.09.zip + + echo "--> LCD DEFAULT" + cd /home/admin/ + sudo apt-mark hold raspberrypi-bootloader + git clone https://github.com/goodtft/LCD-show.git + sudo chmod -R 755 LCD-show + sudo chown -R admin:admin LCD-show + cd LCD-show/ + sudo ./LCD35-show + + else + + # Download and install the driver + # based on http://www.raspberrypiwiki.com/index.php/3.5_inch_TFT_800x480@60fps + + echo "--> LCD ALTERNATIVE" + cd /boot + sudo wget http://www.raspberrypiwiki.com/download/RPI-HD-35-INCH-TFT/dt-blob-For-3B-plus.bin + sudo mv dt-blob-For-3B-plus.bin dt-blob.bin + cat <> config.txt + + dtparam=spi=off + dtparam=i2c_arm=off + + # Set screen size and any overscan required + overscan_left=0 + overscan_right=0 + overscan_top=0 + overscan_bottom=0 + framebuffer_width=800 + framebuffer_height=480 + + + enable_dpi_lcd=1 + display_default_lcd=1 + dpi_group=2 + dpi_mode=87 + dpi_output_format=0x6f015 + + # set up the size to 800x480 + hdmi_timings=480 0 16 16 24 800 0 4 2 2 0 0 0 60 0 32000000 6 + + #rotate screen + display_rotate=3 + + dtoverlay=i2c-gpio,i2c_gpio_scl=24,i2c_gpio_sda=23 + fi +EOF + init 6 + fi +fi + + +if [ "${baseImage}" = "dietpi" ]; then + + OPTIONS=(GPIO "Install the default display available from Amazon" \ + HDMI "Install the 3.5\" HDMI display from Aliexpress" \ + SWISS "Install the Swiss version from play-zone.ch" + ) + + CHOICE=$(dialog --backtitle "RaspiBlitz - Display Install" --clear --title "Display Install" --menu "Choose a your diplay:" 10 70 6 "${OPTIONS[@]}" 2>&1 >/dev/tty) + + if [ "${CHOICE}" = "GPIO" ]; then + echo "Installing the default display available from Amazon" + + # based on https://www.elegoo.com/tutorial/Elegoo%203.5%20inch%20Touch%20Screen%20User%20Manual%20V1.00.2017.10.09.zip + cd /home/admin/ + #sudo apt-mark hold raspberrypi-bootloader + git clone https://github.com/goodtft/LCD-show.git + sudo chmod -R 755 LCD-show + sudo chown -R admin:admin LCD-show + cd LCD-show/ + # sudo ./LCD35-show + sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf + sudo mkdir /etc/X11/xorg.conf.d + sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/ + sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/tft35a.dtbo + sudo cp -rf ./usr/99-calibration.conf-35 /etc/X11/xorg.conf.d/99-calibration.conf + sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/ + sudo cp ./usr/cmdline.txt /DietPI/ + sudo cp ./usr/inittab /etc/ + sudo cp ./boot/config-35.txt /DietPi/config.tx + echo "***" + echo "reboot with \`sudo reboot\` to have the LCD working" + echo "***" + + exit + + elif [ "${CHOICE}" = "HDMI" ]; then + echo "Installing the 3.5\" HDMI display from Aliexpress" + + # based on http://www.lcdwiki.com/3.5inch_HDMI_Display-B + git clone https://github.com/goodtft/LCD-show.git + chmod -R 755 LCD-show + cd LCD-show/ + #sudo ./MPI3508-show + sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf + sudo cp -rf ./boot/config-35-480X320.txt /DietPi/config.txt + sudo cp ./usr/cmdline.txt /DietPi/ + sudo cp ./usr/inittab /etc/ + sudo cp -rf ./usr/99-fbturbo.conf-HDMI /usr/share/X11/xorg.conf.d/99-fbturbo.conf + sudo mkdir -p /etc/X11/xorg.conf.d + sudo cp -rf ./usr/99-calibration.conf-3508 /etc/X11/xorg.conf.d/99-calibration.con + echo "***" + echo "reboot with \`sudo reboot\` to have the LCD working" + echo "***" + + exit + + elif [ "${CHOICE}" = "SWISS" ]; then + + # Download and install the driver + # based on http://www.raspberrypiwiki.com/index.php/3.5_inch_TFT_800x480@60fps + + echo "--> LCD ALTERNATIVE" + cd /DietPi + sudo wget http://www.raspberrypiwiki.com/download/RPI-HD-35-INCH-TFT/dt-blob-For-3B-plus.bin + sudo mv dt-blob-For-3B-plus.bin dt-blob.bin + cat <> config.txt + + dtparam=spi=off + dtparam=i2c_arm=off + + # Set screen size and any overscan required + overscan_left=0 + overscan_right=0 + overscan_top=0 + overscan_bottom=0 + framebuffer_width=800 + framebuffer_height=480 + + + enable_dpi_lcd=1 + display_default_lcd=1 + dpi_group=2 + dpi_mode=87 + dpi_output_format=0x6f015 + + # set up the size to 800x480 + hdmi_timings=480 0 16 16 24 800 0 4 2 2 0 0 0 60 0 32000000 6 + + #rotate screen + display_rotate=3 + + dtoverlay=i2c-gpio,i2c_gpio_scl=24,i2c_gpio_sda=23 + fi +EOF + init 6 + fi + +else + echo "CANCEL" + exit +fi \ No newline at end of file From 7313437e83d5da20a42ea92486e73cfbb9330b99 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 20 Mar 2019 12:22:32 +0000 Subject: [PATCH 05/24] auto install default display on DietPI --- build_sdcard.sh | 26 ++++++++++++++++++++++++-- dietpi/dietpi.display.sh | 8 ++++---- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/build_sdcard.sh b/build_sdcard.sh index fe03afc..f41760e 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -596,9 +596,31 @@ echo "" echo "IMPORTANT IF WANT TO MAKE A RELEASE IMAGE FROM THIS BUILD:" echo "login once after reboot without HDD and run 'XXprepareRelease.sh'" echo "" -echo "to continue reboot with sudo shutdown -r now and login with admin" -# install LCD only on an rPI running Raspbian +# install default LCD on DietPi without reboot to allow automatic build +if [ "${baseImage}" = "dietpi" ]; then + echo "Installing the default display available from Amazon" + # based on https://www.elegoo.com/tutorial/Elegoo%203.5%20inch%20Touch%20Screen%20User%20Manual%20V1.00.2017.10.09.zip + cd /home/admin/ + # sudo apt-mark hold raspberrypi-bootloader + git clone https://github.com/goodtft/LCD-show.git + sudo chmod -R 755 LCD-show + sudo chown -R admin:admin LCD-show + cd LCD-show/ + # sudo ./LCD35-show + sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf + sudo mkdir /etc/X11/xorg.conf.d + sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/ + sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/tft35a.dtbo + sudo cp -rf ./usr/99-calibration.conf-35 /etc/X11/xorg.conf.d/99-calibration.conf + sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/ + sudo cp ./usr/cmdline.txt /DietPI/ + sudo cp ./usr/inittab /etc/ + sudo cp ./boot/config-35.txt /DietPi/config.txt + echo "to continue reboot with \`sudo shutdown -r now \` and login with admin" +fi + +# ask about LCD only on Raspbian if [ "${baseImage}" = "raspbian" ]; then echo "Press ENTER to install LCD and reboot ..." read key diff --git a/dietpi/dietpi.display.sh b/dietpi/dietpi.display.sh index 339d35c..57e950c 100644 --- a/dietpi/dietpi.display.sh +++ b/dietpi/dietpi.display.sh @@ -101,7 +101,7 @@ if [ "${baseImage}" = "dietpi" ]; then echo "Installing the default display available from Amazon" # based on https://www.elegoo.com/tutorial/Elegoo%203.5%20inch%20Touch%20Screen%20User%20Manual%20V1.00.2017.10.09.zip - cd /home/admin/ + cd /home/admin/ #sudo apt-mark hold raspberrypi-bootloader git clone https://github.com/goodtft/LCD-show.git sudo chmod -R 755 LCD-show @@ -116,7 +116,7 @@ if [ "${baseImage}" = "dietpi" ]; then sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/ sudo cp ./usr/cmdline.txt /DietPI/ sudo cp ./usr/inittab /etc/ - sudo cp ./boot/config-35.txt /DietPi/config.tx + sudo cp ./boot/config-35.txt /DietPi/config.txt echo "***" echo "reboot with \`sudo reboot\` to have the LCD working" echo "***" @@ -127,7 +127,7 @@ if [ "${baseImage}" = "dietpi" ]; then echo "Installing the 3.5\" HDMI display from Aliexpress" # based on http://www.lcdwiki.com/3.5inch_HDMI_Display-B - git clone https://github.com/goodtft/LCD-show.git + git clone https://github.com/goodtft/LCD-show.git chmod -R 755 LCD-show cd LCD-show/ #sudo ./MPI3508-show @@ -137,7 +137,7 @@ if [ "${baseImage}" = "dietpi" ]; then sudo cp ./usr/inittab /etc/ sudo cp -rf ./usr/99-fbturbo.conf-HDMI /usr/share/X11/xorg.conf.d/99-fbturbo.conf sudo mkdir -p /etc/X11/xorg.conf.d - sudo cp -rf ./usr/99-calibration.conf-3508 /etc/X11/xorg.conf.d/99-calibration.con + sudo cp -rf ./usr/99-calibration.conf-3508 /etc/X11/xorg.conf.d/99-calibration.conf echo "***" echo "reboot with \`sudo reboot\` to have the LCD working" echo "***" From 26a5921901481d133e0425cf448d6deecd591d91 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 20 Mar 2019 13:01:38 +0000 Subject: [PATCH 06/24] Raspberry Pi on Diet Pi instaructions change all DietPi build links to point to the rootzoll dev branch --- dietpi/Odroid_HC1_HC2.md | 1 + dietpi/README.md | 22 ++++++++++-------- dietpi/RaspberryPi.md | 31 +++++++++++++++++++++++++ dietpi/boot/Automation_Custom_Script.sh | 4 ++-- 4 files changed, 46 insertions(+), 12 deletions(-) create mode 100644 dietpi/RaspberryPi.md diff --git a/dietpi/Odroid_HC1_HC2.md b/dietpi/Odroid_HC1_HC2.md index 897b7d2..68c51f2 100644 --- a/dietpi/Odroid_HC1_HC2.md +++ b/dietpi/Odroid_HC1_HC2.md @@ -52,6 +52,7 @@ Updating from a v6.14 DietPi image is causing a bootloop under some circumstance https://dietpi.com/downloads/images/DietPi_OdroidXU4-ARMv7-Stretch.7z * Burn it to the SD with [Etcher](https://www.balena.io/etcher/) +* Insert the SD card, connect the HDD, the network cable and power supply to boot up the Odroid: * In the desktop terminal on Linux / MacOS or Putty on Windows: `ssh root@[IP-OF-DIETPI]` diff --git a/dietpi/README.md b/dietpi/README.md index 945fb04..4d9ab41 100644 --- a/dietpi/README.md +++ b/dietpi/README.md @@ -7,16 +7,20 @@ This guide was tested on: * Odroid HC1 * Odroid HC2 (the same board with a 3.5" 12V HDD) * Odroid XU4 (with HDMI screen) -* Raspberry Pi 3 B + (no support for the default GPIO LCD so far, but the HDMI works) +* Raspberry Pi 3 B+ (with the default GPIO or HDMI display support) See the [hardware comparison](hw_comparison.md). -The screen tested: https://www.aliexpress.com/item/3-5-inch-LCD-HDMI-USB-Touch-Screen-Real-HD-1920x1080-LCD-Display-Py-for-Raspberri/32818537950.html +The HDMI screen tested: https://www.aliexpress.com/item/3-5-inch-LCD-HDMI-USB-Touch-Screen-Real-HD-1920x1080-LCD-Display-Py-for-Raspberri/32818537950.html --- ### Downloads and walkthrough for the [Odroid HC1 / HC2 / XU3 / XU4](Odroid_HC1_HC2.md) + +### Instructions for the [Raspberry Pi](RaspberryPi.md) + --- + ## General guide for the RaspiBlitz-on-DietPi ### Setting up the DietPi OS @@ -31,8 +35,8 @@ Look for the SD card image for the specific SBC in the [download section](https: * Insert the SDcard into your SBC. -* Connect the HDD with a powered suitably powered adapter. -A USB 2.0 port will not be able to power an HDD so you will need extra cable +* Connect the HDD with a suitably powered adapter. +A USB 2.0 port will not be able to power an HDD so you will need extra cable. If you are connecting the HDD to a USB 3.0 port and have an at least 2A power supply, you might be able to run without an extra cable. * Power up and log in with the desktop terminal on Linux / MacOS or Putty on Windows: @@ -59,18 +63,16 @@ password: `dietpi` `wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build_sdcard.sh && sudo bash build_sdcard.sh [BRANCH] [GITHUB-USERNAME]` If you are working from a forked repo be aware of that the fork needs to be called `raspiblitz` for the git downloads to work. -* Run the forked version of @openoms: -`wget https://raw.githubusercontent.com/openoms/raspiblitz/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms` +* Run the dev branch of @rootzoll: +`wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev rootzoll` This will take a couple minutes depending on your internet connection and the processing power of the SBC. -* Restart when done and log back in now as `admin`: -`ssh admin@[IP-OF-DROIDBLITZ]` +* After the automatic restart log back in now as `admin`: +`ssh admin@[IP-OF-RASPIBLITZ]` password: `raspiblitz` * From here he setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/master/README.md#setup-process-detailed-documentation) - - --- ### Useful commands for debugging: To test a new configuration run XXcleanHDD.sh and strictly restart diff --git a/dietpi/RaspberryPi.md b/dietpi/RaspberryPi.md new file mode 100644 index 0000000..a23fa17 --- /dev/null +++ b/dietpi/RaspberryPi.md @@ -0,0 +1,31 @@ +# ⚡️ RaspiBlitz-on-DietPi ⚡️ +## Tested on the Raspberry Pi 3 B + + +### Automated the SDcard building process: + +* Download the DietPi image for the Raspberry Pi: +https://dietpi.com/downloads/images/DietPi_RPi-ARMv6-Stretch.7z +* Burn it to the SD card with [Etcher](https://www.balena.io/etcher/) + +* Right click and download the following two files: [DietPi.txt](/dietpi/boot/dietpi.txt), [Automation_Custom_Script.sh](/dietpi/boot/Automation_Custom_Script.sh) +* Copy them to the /boot directory of the DietPi SDcard: + + [DietPi.txt](/dietpi/boot/dietpi.txt): Overwrites the default dietpi.txt. Modified the settings to automate the DietPi setup. (see the details [here](https://github.com/rootzoll/raspiblitz/tree/master/dietpi#excerpts-from-the-default-dietpitxt)) + + [Automation_Custom_Script.sh](/dietpi/boot/Automation_Custom_Script.sh): Runs after DietPi installation is completed. Contains the link to download and run the build_sdcard.sh from the dev branch of @rootzoll. + (Optionally open the file with a text editor and uncomment (remove the `#` from the front of) the line with the branch you want to build the SDcard from.) + +* Insert the SDcard into your Raspberry Pi. + +* Connect the HDD, network cable and power supply to boot. (The optional default LCD will be setup automtically) + +* The automated setup will run and the Raspberry Pi will restart at least twice during the process. This will take up to an hour. Log in with `root` if you want to follow along. The build_sdcard.sh script output can be seen with: `tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` + +* When the setup is finished log in as `admin`: +`ssh admin@[IP-OF-RASPIBLITZ]` +password: `raspiblitz` + +* From here he setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/master/README.md#setup-process-detailed-documentation) + +## To build manually +* Follow the generic DietPi install process to [build your own SDCard](https://github.com/rootzoll/raspiblitz/tree/master/dietpi#general-guide-for-the-raspiblitz-on-dietpi) diff --git a/dietpi/boot/Automation_Custom_Script.sh b/dietpi/boot/Automation_Custom_Script.sh index 5dd0fcf..887daa0 100644 --- a/dietpi/boot/Automation_Custom_Script.sh +++ b/dietpi/boot/Automation_Custom_Script.sh @@ -8,7 +8,7 @@ # wget https://raw.githubusercontent.com/rootzoll/raspiblitz/master/build_sdcard.sh && sudo bash build_sdcard.sh # @rootzoll dev branch: -# wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev +wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev # @openoms DietPi branch: -# wget https://github.com/openoms/raspiblitz/raw/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms \ No newline at end of file +# https://raw.githubusercontent.com/openoms/raspiblitz/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms \ No newline at end of file From 2076128f359630a722d60df44e77aa98e4110537 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 20 Mar 2019 15:07:05 +0000 Subject: [PATCH 07/24] fix links to rootzoll dev --- dietpi/RaspberryPi.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dietpi/RaspberryPi.md b/dietpi/RaspberryPi.md index a23fa17..f09c5ba 100644 --- a/dietpi/RaspberryPi.md +++ b/dietpi/RaspberryPi.md @@ -7,12 +7,12 @@ https://dietpi.com/downloads/images/DietPi_RPi-ARMv6-Stretch.7z * Burn it to the SD card with [Etcher](https://www.balena.io/etcher/) -* Right click and download the following two files: [DietPi.txt](/dietpi/boot/dietpi.txt), [Automation_Custom_Script.sh](/dietpi/boot/Automation_Custom_Script.sh) +* Right click and download the following two files: [DietPi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/dietpi.txt), [Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/Automation_Custom_Script.sh) * Copy them to the /boot directory of the DietPi SDcard: - [DietPi.txt](/dietpi/boot/dietpi.txt): Overwrites the default dietpi.txt. Modified the settings to automate the DietPi setup. (see the details [here](https://github.com/rootzoll/raspiblitz/tree/master/dietpi#excerpts-from-the-default-dietpitxt)) + [DietPi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/dietpi.txt): Overwrites the default dietpi.txt. Modified the settings to automate the DietPi setup. (see the details [here](https://github.com/rootzoll/raspiblitz/tree/dev/dietpi#excerpts-from-the-customized-dietpitxt)) - [Automation_Custom_Script.sh](/dietpi/boot/Automation_Custom_Script.sh): Runs after DietPi installation is completed. Contains the link to download and run the build_sdcard.sh from the dev branch of @rootzoll. + [Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/Automation_Custom_Script.sh): Runs after DietPi installation is completed. Contains the link to download and run the build_sdcard.sh from the dev branch of @rootzoll. (Optionally open the file with a text editor and uncomment (remove the `#` from the front of) the line with the branch you want to build the SDcard from.) * Insert the SDcard into your Raspberry Pi. @@ -28,4 +28,4 @@ password: `raspiblitz` * From here he setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/master/README.md#setup-process-detailed-documentation) ## To build manually -* Follow the generic DietPi install process to [build your own SDCard](https://github.com/rootzoll/raspiblitz/tree/master/dietpi#general-guide-for-the-raspiblitz-on-dietpi) +* Follow the generic DietPi install process to [build your own SDCard](https://github.com/rootzoll/raspiblitz/tree/dev/dietpi#general-guide-for-the-raspiblitz-on-dietpi) From edccf92f8523345a3ab5c839c2ad0ee2a6ace7c3 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 20 Mar 2019 15:32:59 +0000 Subject: [PATCH 08/24] correct automation command --- dietpi/boot/Automation_Custom_Script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/boot/Automation_Custom_Script.sh b/dietpi/boot/Automation_Custom_Script.sh index 887daa0..5a207ab 100644 --- a/dietpi/boot/Automation_Custom_Script.sh +++ b/dietpi/boot/Automation_Custom_Script.sh @@ -11,4 +11,4 @@ wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev # @openoms DietPi branch: -# https://raw.githubusercontent.com/openoms/raspiblitz/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms \ No newline at end of file +# wget https://raw.githubusercontent.com/openoms/raspiblitz/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms \ No newline at end of file From ba23a39b0b85339c1af35a89259a809c71bc931a Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 20 Mar 2019 16:23:34 +0000 Subject: [PATCH 09/24] do not change DietPi name before setup --- dietpi/RaspberryPi.md | 17 +++++++++++++++-- dietpi/boot/dietpi.txt | 6 +++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/dietpi/RaspberryPi.md b/dietpi/RaspberryPi.md index f09c5ba..1b71ce8 100644 --- a/dietpi/RaspberryPi.md +++ b/dietpi/RaspberryPi.md @@ -17,9 +17,22 @@ https://dietpi.com/downloads/images/DietPi_RPi-ARMv6-Stretch.7z * Insert the SDcard into your Raspberry Pi. -* Connect the HDD, network cable and power supply to boot. (The optional default LCD will be setup automtically) +* Connect the HDD, network cable and power supply to boot. (The optional default LCD will be setup automatically.) -* The automated setup will run and the Raspberry Pi will restart at least twice during the process. This will take up to an hour. Log in with `root` if you want to follow along. The build_sdcard.sh script output can be seen with: `tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` +* Login from a terminal (Putty from Windows) with +`ssh root@[IP-OF-RASPIBLITZ]` +password: `dietpi` + + The ssh keys might change during the process: + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + To solve run (can be copied from the terminal output): + `ssh-keygen -f "/home/[your-linux-username]/.ssh/known_hosts" -R "dietpi.IP"` + + + +* The automated setup will continue and the Raspberry Pi will restart at least twice during the process. This will take up to an hour. Log in with `root` if you want to follow along. The build_sdcard.sh script output can be seen with: `tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` * When the setup is finished log in as `admin`: `ssh admin@[IP-OF-RASPIBLITZ]` diff --git a/dietpi/boot/dietpi.txt b/dietpi/boot/dietpi.txt index 0572089..471d87c 100644 --- a/dietpi/boot/dietpi.txt +++ b/dietpi/boot/dietpi.txt @@ -27,7 +27,7 @@ AUTO_SETUP_NET_STATIC_GATEWAY=192.168.0.1 AUTO_SETUP_NET_STATIC_DNS=8.8.8.8 # Hostname -AUTO_SETUP_NET_HOSTNAME=DietBlitz +AUTO_SETUP_NET_HOSTNAME=DietPi # Force ethernet speeds # NB: This is mainly aimed at Pine A64's which may have an HW issue that causes unstable 1Gbit link. @@ -69,8 +69,8 @@ AUTO_SETUP_GLOBAL_PASSWORD=dietpi #AUTO_SETUP_INSTALL_SOFTWARE_ID=74 #will install LAMP webserver stack #AUTO_SETUP_INSTALL_SOFTWARE_ID=44 #will install Bittorrent transmission -AUTO_SETUP_INSTALL_SOFTWARE_ID=73 # install fail2ban - +# install fail2ban +AUTO_SETUP_INSTALL_SOFTWARE_ID=73 # AUTO_SETUP_INSTALL_SOFTWARE_ID=0 # install OpenSSH Client # AUTO_SETUP_INSTALL_SOFTWARE_ID=105 # install OpenSSH Server From 671716df0a590d98909db452162c35288b808c87 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 20 Mar 2019 20:36:03 +0000 Subject: [PATCH 10/24] switch CONFIG_AUTO_DIETPI_UPDATES=1 for sdcard build --- dietpi/boot/dietpi.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/boot/dietpi.txt b/dietpi/boot/dietpi.txt index 471d87c..55ae60c 100644 --- a/dietpi/boot/dietpi.txt +++ b/dietpi/boot/dietpi.txt @@ -172,7 +172,7 @@ CONFIG_BOOT_WAIT_FOR_NETWORK=2 #DietPi checks for updates (allows dietpi to check for updates on a daily basis and boot using a <1kb file download.) CONFIG_CHECK_DIETPI_UPDATES=1 # Optional: Automatically update DietPi when updates are available. | requires CONFIG_CHECK_DIETPI_UPDATES=1 -CONFIG_AUTO_DIETPI_UPDATES=0 +CONFIG_AUTO_DIETPI_UPDATES=1 #NTPD Update Mode: 0=disabled | 1=boot only | 2=boot + daily | 3=boot + hourly | 4=Daemon + Drift CONFIG_NTP_MODE=2 From ebab384362b72044da9ce81cc328415b6427fa0f Mon Sep 17 00:00:00 2001 From: openoms Date: Thu, 21 Mar 2019 13:30:05 +0000 Subject: [PATCH 11/24] update Readme, fix typos --- dietpi/README.md | 5 +++-- dietpi/RaspberryPi.md | 41 ++++++++++++++++++---------------------- dietpi/boot/dietpi.txt | 10 +++------- dietpi/dietpi.display.sh | 2 +- 4 files changed, 25 insertions(+), 33 deletions(-) diff --git a/dietpi/README.md b/dietpi/README.md index 4d9ab41..354f078 100644 --- a/dietpi/README.md +++ b/dietpi/README.md @@ -14,10 +14,11 @@ See the [hardware comparison](hw_comparison.md). The HDMI screen tested: https://www.aliexpress.com/item/3-5-inch-LCD-HDMI-USB-Touch-Screen-Real-HD-1920x1080-LCD-Display-Py-for-Raspberri/32818537950.html --- +## Specific instructions and downloads: -### Downloads and walkthrough for the [Odroid HC1 / HC2 / XU3 / XU4](Odroid_HC1_HC2.md) +[Odroid HC1 / HC2 / XU3 / XU4](Odroid_HC1_HC2.md) -### Instructions for the [Raspberry Pi](RaspberryPi.md) +[Raspberry Pi](RaspberryPi.md) --- diff --git a/dietpi/RaspberryPi.md b/dietpi/RaspberryPi.md index 1b71ce8..acb7132 100644 --- a/dietpi/RaspberryPi.md +++ b/dietpi/RaspberryPi.md @@ -1,44 +1,39 @@ # ⚡️ RaspiBlitz-on-DietPi ⚡️ ## Tested on the Raspberry Pi 3 B + -### Automated the SDcard building process: +### The automated building process: -* Download the DietPi image for the Raspberry Pi: +1) Download the DietPi image for the Raspberry Pi: https://dietpi.com/downloads/images/DietPi_RPi-ARMv6-Stretch.7z -* Burn it to the SD card with [Etcher](https://www.balena.io/etcher/) -* Right click and download the following two files: [DietPi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/dietpi.txt), [Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/Automation_Custom_Script.sh) -* Copy them to the /boot directory of the DietPi SDcard: +2) Burn it to the SD card with [Etcher](https://www.balena.io/etcher/) + +3) Right click and download the following two files: [DietPi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/dietpi.txt), [Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/Automation_Custom_Script.sh) + +4) Copy them to the /boot directory of the DietPi SDcard [DietPi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/dietpi.txt): Overwrites the default dietpi.txt. Modified the settings to automate the DietPi setup. (see the details [here](https://github.com/rootzoll/raspiblitz/tree/dev/dietpi#excerpts-from-the-customized-dietpitxt)) [Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/Automation_Custom_Script.sh): Runs after DietPi installation is completed. Contains the link to download and run the build_sdcard.sh from the dev branch of @rootzoll. (Optionally open the file with a text editor and uncomment (remove the `#` from the front of) the line with the branch you want to build the SDcard from.) -* Insert the SDcard into your Raspberry Pi. - -* Connect the HDD, network cable and power supply to boot. (The optional default LCD will be setup automatically.) - -* Login from a terminal (Putty from Windows) with -`ssh root@[IP-OF-RASPIBLITZ]` -password: `dietpi` +5) Assemble and boot the Raspberry Pi - The ssh keys might change during the process: - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - To solve run (can be copied from the terminal output): - `ssh-keygen -f "/home/[your-linux-username]/.ssh/known_hosts" -R "dietpi.IP"` + Insert the SDcard, connect the HDD, network cable and power supply to boot. + (The default LCD will be set up automatically) + The automated setup will continue and the Raspberry Pi will restart at least twice during the process. This will take up to an hour. + To follow along: login with `root`. The output of the build_sdcard.sh script can be seen with: + `tail -n1000 -f /var/tmp/dietpi/logs/ dietpi-automation_custom_script.log` -* The automated setup will continue and the Raspberry Pi will restart at least twice during the process. This will take up to an hour. Log in with `root` if you want to follow along. The build_sdcard.sh script output can be seen with: `tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` -* When the setup is finished log in as `admin`: +6) When the setup is finished log in as `admin`: `ssh admin@[IP-OF-RASPIBLITZ]` password: `raspiblitz` -* From here he setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/master/README.md#setup-process-detailed-documentation) + The setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/master/README.md#setup-process-detailed-documentation) -## To build manually -* Follow the generic DietPi install process to [build your own SDCard](https://github.com/rootzoll/raspiblitz/tree/dev/dietpi#general-guide-for-the-raspiblitz-on-dietpi) +--- +### To build manually: +[Follow the generic DietPi install process.](https://github.com/rootzoll/raspiblitz/tree/dev/dietpi#general-guide-for-the-raspiblitz-on-dietpi) diff --git a/dietpi/boot/dietpi.txt b/dietpi/boot/dietpi.txt index 55ae60c..7809172 100644 --- a/dietpi/boot/dietpi.txt +++ b/dietpi/boot/dietpi.txt @@ -68,11 +68,7 @@ AUTO_SETUP_GLOBAL_PASSWORD=dietpi #AUTO_SETUP_INSTALL_SOFTWARE_ID=23 #will install Desktop LXDE #AUTO_SETUP_INSTALL_SOFTWARE_ID=74 #will install LAMP webserver stack #AUTO_SETUP_INSTALL_SOFTWARE_ID=44 #will install Bittorrent transmission - -# install fail2ban -AUTO_SETUP_INSTALL_SOFTWARE_ID=73 -# AUTO_SETUP_INSTALL_SOFTWARE_ID=0 # install OpenSSH Client -# AUTO_SETUP_INSTALL_SOFTWARE_ID=105 # install OpenSSH Server +AUTO_SETUP_INSTALL_SOFTWARE_ID=73 # install fail2ban # DietPi-Software Choice System # SSH Server Selection: @@ -126,7 +122,7 @@ AUTO_SETUP_KEYBOARD_LAYOUT=gb # Option 1 = Copy your script to /boot/Automation_Custom_Script.sh and it will be executed automatically. # Option 2 = Host your script online, then use AUTO_SETUP_CUSTOM_SCRIPT_EXEC=http://myweb.com/myscript.sh , it will be downloaded and executed automatically. | 0=disabled # NB: Executed script log /var/tmp/dietpi/logs/dietpi-automation_custom_script.log -AUTO_SETUP_CUSTOM_SCRIPT_EXEC=1 +AUTO_SETUP_CUSTOM_SCRIPT_EXEC=0 #Disable HDMI (and GPU/VPU where supported) output for supported devices: # RPi | Odroid C1 | Odroid C2 @@ -172,7 +168,7 @@ CONFIG_BOOT_WAIT_FOR_NETWORK=2 #DietPi checks for updates (allows dietpi to check for updates on a daily basis and boot using a <1kb file download.) CONFIG_CHECK_DIETPI_UPDATES=1 # Optional: Automatically update DietPi when updates are available. | requires CONFIG_CHECK_DIETPI_UPDATES=1 -CONFIG_AUTO_DIETPI_UPDATES=1 +CONFIG_AUTO_DIETPI_UPDATES=0 #NTPD Update Mode: 0=disabled | 1=boot only | 2=boot + daily | 3=boot + hourly | 4=Daemon + Drift CONFIG_NTP_MODE=2 diff --git a/dietpi/dietpi.display.sh b/dietpi/dietpi.display.sh index 57e950c..5fa10dc 100644 --- a/dietpi/dietpi.display.sh +++ b/dietpi/dietpi.display.sh @@ -114,7 +114,7 @@ if [ "${baseImage}" = "dietpi" ]; then sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/tft35a.dtbo sudo cp -rf ./usr/99-calibration.conf-35 /etc/X11/xorg.conf.d/99-calibration.conf sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/ - sudo cp ./usr/cmdline.txt /DietPI/ + sudo cp ./usr/cmdline.txt /DietPi/ sudo cp ./usr/inittab /etc/ sudo cp ./boot/config-35.txt /DietPi/config.txt echo "***" From 28df2100c3b9e6617b4c214f2e25f6ef87c826bc Mon Sep 17 00:00:00 2001 From: openoms Date: Thu, 21 Mar 2019 13:36:10 +0000 Subject: [PATCH 12/24] fix typo --- build_sdcard.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_sdcard.sh b/build_sdcard.sh index f41760e..5f143bf 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -614,7 +614,7 @@ if [ "${baseImage}" = "dietpi" ]; then sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/tft35a.dtbo sudo cp -rf ./usr/99-calibration.conf-35 /etc/X11/xorg.conf.d/99-calibration.conf sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/ - sudo cp ./usr/cmdline.txt /DietPI/ + sudo cp ./usr/cmdline.txt /DietPi/ sudo cp ./usr/inittab /etc/ sudo cp ./boot/config-35.txt /DietPi/config.txt echo "to continue reboot with \`sudo shutdown -r now \` and login with admin" From 2dc746410a2d0d5548d8665be86508a9c5c995b3 Mon Sep 17 00:00:00 2001 From: openoms Date: Sun, 24 Mar 2019 22:07:32 +0000 Subject: [PATCH 13/24] autostart fix for display --- build_sdcard.sh | 7 ++++--- dietpi/boot/dietpi.txt | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/build_sdcard.sh b/build_sdcard.sh index 5f143bf..59906c8 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -157,9 +157,10 @@ if [ "${baseImage}" = "raspbian" ]; then fi if [ "${baseImage}" = "dietpi" ]; then - sudo bash -c "echo '[Service]' >> /etc/systemd/system/getty@tty1.service.d/dietpi-autologin.conf" - sudo bash -c "echo 'ExecStart=' >> /etc/systemd/system/getty@tty1.service.d/dietpi-autologin.conf" - sudo bash -c "echo 'ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux' >> /etc/systemd/system/getty@tty1.service.d/dietpi-autologin.conf" + # set DietPi to boot up automatically with user pi (for the LCD) + # requires AUTO_SETUP_AUTOSTART_TARGET_INDEX=7 in the dietpi.txt + # /DietPi/dietpi/dietpi-autostart overwrites /etc/systemd/system/getty@tty1.service.d/dietpi-autologin.conf on reboot + sudo sed -i 's/agetty --autologin root %I $TERM/agetty --autologin pi --noclear %I 38400 linux/' /DietPi/dietpi/dietpi-autostart fi # change log rotates diff --git a/dietpi/boot/dietpi.txt b/dietpi/boot/dietpi.txt index 7809172..fd6136c 100644 --- a/dietpi/boot/dietpi.txt +++ b/dietpi/boot/dietpi.txt @@ -102,7 +102,7 @@ AUTO_SETUP_WEB_SERVER_INDEX=-2 # DietPi-Autostart | Requires AUTO_SETUP_AUTOMATED=1 # After installation is completed, which program should the system boot to? # 0=Console 7=Console+auto root login | 1=Kodi 2=Desktops (LXDE/MATE etc) 5=DietPi-Cloudshell 6=Uae4ARM (Fastboot) 8=Uae4ARM (standard boot) 9=dxx-rebirth -AUTO_SETUP_AUTOSTART_TARGET_INDEX=0 +AUTO_SETUP_AUTOSTART_TARGET_INDEX=7 # 7=Console+auto root login is changed to pi in build_sdcard.sh # Language/Regional settings | Requires AUTO_SETUP_AUTOMATED=1 # Timezone eg: Europe/London America/New_York | Full list (TZ*): https://en.wikipedia.org/wiki/List_of_tz_database_time_zones From 5871a095cdf99c67e43b73a01b76f1e3d7b4fb17 Mon Sep 17 00:00:00 2001 From: openoms Date: Mon, 25 Mar 2019 08:52:59 +0000 Subject: [PATCH 14/24] clean download dir during before start --- build_sdcard.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build_sdcard.sh b/build_sdcard.sh index 59906c8..8924c95 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -261,6 +261,7 @@ bitcoinSHA256="1b9cdf29a9eada239e26bf4471c432389c2f2784362fc8ef0267ba7f48602292" laanwjPGP="01EA5486DE18A882D4C2684590C8019E36C2E964" # prepare directories +sudo rm -r /home/admin/download sudo -u admin mkdir /home/admin/download cd /home/admin/download From 6473457b2b1e0ab2231d44de5b3ffcbabce16d4c Mon Sep 17 00:00:00 2001 From: openoms Date: Mon, 25 Mar 2019 21:43:35 +0000 Subject: [PATCH 15/24] add logs and clarify --- dietpi/README.md | 39 ++++++++++++++++++++------------------- dietpi/RaspberryPi.md | 5 +++-- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/dietpi/README.md b/dietpi/README.md index 354f078..e9828ba 100644 --- a/dietpi/README.md +++ b/dietpi/README.md @@ -7,7 +7,7 @@ This guide was tested on: * Odroid HC1 * Odroid HC2 (the same board with a 3.5" 12V HDD) * Odroid XU4 (with HDMI screen) -* Raspberry Pi 3 B+ (with the default GPIO or HDMI display support) +* Raspberry Pi 3 B+ (with the default GPIO or HDMI display) See the [hardware comparison](hw_comparison.md). @@ -36,19 +36,19 @@ Look for the SD card image for the specific SBC in the [download section](https: * Insert the SDcard into your SBC. -* Connect the HDD with a suitably powered adapter. -A USB 2.0 port will not be able to power an HDD so you will need extra cable. -If you are connecting the HDD to a USB 3.0 port and have an at least 2A power supply, you might be able to run without an extra cable. - +* Connect the HDD with a suitably powered adapter. + Aim to use 2 USB ports or a separate power supply to power the HDD for a more reliable setup. * Power up and log in with the desktop terminal on Linux / MacOS or Putty on Windows: `ssh root@[IP-OF-DIETPI]` password: `dietpi` -* You might be asked about updating DietPi. This is not a straightforward process if starting from a version <6.20. Try to update, it is best to build on the latest version. +* If you are asked about updating DietPi, go ahead with it. This is not always a straightforward process, but it is best to build on the latest version. * In the DietPi software menu install `fail2ban` and make `OpenSSH server` the default SSH server. -Changing the SSH server will change the SSH keys again. To clear: -`ssh-keygen -f "/home/[your-linux-username]/.ssh/known_hosts" -R "dietpi.IP"` + If there is a screen installed: within the Dietpi-Config menu set the Autostart to `7: Automatic login. ` + + Changing the SSH server will change the SSH keys again. To clear: + `ssh-keygen -f "/home/[your-linux-username]/.ssh/known_hosts" -R "dietpi.IP"` * After every reboot log back in: `ssh root@[IP-OF-DIETPI]` @@ -64,9 +64,9 @@ password: `dietpi` `wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build_sdcard.sh && sudo bash build_sdcard.sh [BRANCH] [GITHUB-USERNAME]` If you are working from a forked repo be aware of that the fork needs to be called `raspiblitz` for the git downloads to work. -* Run the dev branch of @rootzoll: -`wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev rootzoll` -This will take a couple minutes depending on your internet connection and the processing power of the SBC. + Example to run the dev branch of @rootzoll: + `wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev rootzoll` + This will take a couple minutes depending on your internet connection and the processing power of the SBC. * After the automatic restart log back in now as `admin`: `ssh admin@[IP-OF-RASPIBLITZ]` @@ -76,17 +76,18 @@ password: `raspiblitz` --- ### Useful commands for debugging: -To test a new configuration run XXcleanHDD.sh and strictly restart -(this makes _bootstrap.sh and 00mainMenu.sh run in the right order) +During the Automated setup: +`tail -n1000 -f /tmp/DietPi-Update/dietpi-update.log` - follow the dietpi-update process +`tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` follow the output of the build_sdcard.sh -`tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` follow startup setup script log -`lsblk` see the partitions +During the RaspiBlitz setup process: +`lsblk` check the disk partitions `tail -n1000 -f raspiblitz.log` - debug logs of bootstrap.sh -`sudo tail -f /mnt/hdd/bitcoin/debug.log` - continuous monitoring +`sudo tail -f /mnt/hdd/bitcoin/debug.log` - continuous monitoring of bitcoind `sudo tail -n100 /mnt/hdd/bitcoin/debug.log` - shows the last 100 lines -`sudo systemctl status lnd` -`sudo journalctl -f -u lnd` -`./home/admin/XXdebugLogs.sh` - debug log collection on the RaspiBlitz +`sudo systemctl status lnd` - status of the lnd service +`sudo journalctl -f -u lnd` +`./home/admin/XXdebugLogs.sh` - debug log collection on the RaspiBlitz --- diff --git a/dietpi/RaspberryPi.md b/dietpi/RaspberryPi.md index acb7132..aa52f83 100644 --- a/dietpi/RaspberryPi.md +++ b/dietpi/RaspberryPi.md @@ -24,8 +24,9 @@ https://dietpi.com/downloads/images/DietPi_RPi-ARMv6-Stretch.7z The automated setup will continue and the Raspberry Pi will restart at least twice during the process. This will take up to an hour. - To follow along: login with `root`. The output of the build_sdcard.sh script can be seen with: - `tail -n1000 -f /var/tmp/dietpi/logs/ dietpi-automation_custom_script.log` + To follow the logs during the automated building process login with `root` and press CTRL+C. + `tail -n1000 -f /tmp/DietPi-Update/dietpi-update.log` - follow the dietpi-update process + `tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` follow the output of the build_sdcard.sh 6) When the setup is finished log in as `admin`: From f03241017109394337d13c83fa68fafed997d05a Mon Sep 17 00:00:00 2001 From: openoms Date: Mon, 25 Mar 2019 21:56:03 +0000 Subject: [PATCH 16/24] link display.install.sh --- dietpi/README.md | 2 ++ dietpi/dietpi.display.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/dietpi/README.md b/dietpi/README.md index e9828ba..fe3e19e 100644 --- a/dietpi/README.md +++ b/dietpi/README.md @@ -20,6 +20,8 @@ The HDMI screen tested: https://www.aliexpress.com/item/3-5-inch-LCD-HDMI-USB-To [Raspberry Pi](RaspberryPi.md) +[Display install script](dietpi.display.sh) + --- ## General guide for the RaspiBlitz-on-DietPi diff --git a/dietpi/dietpi.display.sh b/dietpi/dietpi.display.sh index 5fa10dc..86548ae 100644 --- a/dietpi/dietpi.display.sh +++ b/dietpi/dietpi.display.sh @@ -1,3 +1,5 @@ +# To run this script on your RaspiBlitz, copy the following line to the ssh terminal (after the #): +# wget https://raw.githubusercontent.com/openoms/raspiblitz/DietPi/dietpi/dietpi.display.sh && sudo chmod +x dietpi.display.sh && ./dietpi.display.sh # keep in mind that DietPi for Raspberry is also a stripped down Raspbian echo "Detect Base Image ..." From bf08a94b14613e7fac5ba916071c0d0080f0e547 Mon Sep 17 00:00:00 2001 From: openoms Date: Mon, 25 Mar 2019 22:17:14 +0000 Subject: [PATCH 17/24] merge from @rootzoll dev --- build_sdcard.sh | 56 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/build_sdcard.sh b/build_sdcard.sh index 8924c95..2982405 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -165,7 +165,39 @@ fi # change log rotates # see https://github.com/rootzoll/raspiblitz/issues/394#issuecomment-471535483 -sudo head -n 18 /etc/logrotate.d/rsyslog > ./rsyslog +echo "/var/log/syslog" >> ./rsyslog +echo "{" >> ./rsyslog +echo " rotate 7" >> ./rsyslog +echo " daily" >> ./rsyslog +echo " missingok" >> ./rsyslog +echo " notifempty" >> ./rsyslog +echo " delaycompress" >> ./rsyslog +echo " compress" >> ./rsyslog +echo " postrotate" >> ./rsyslog +echo " invoke-rc.d rsyslog rotate > /dev/null" >> ./rsyslog +echo " endscript" >> ./rsyslog +echo "}" >> ./rsyslog +echo "" >> ./rsyslog +echo "/var/log/mail.info" >> ./rsyslog +echo "/var/log/mail.warn" >> ./rsyslog +echo "/var/log/mail.err" >> ./rsyslog +echo "/var/log/mail.log" >> ./rsyslog +echo "/var/log/daemon.log" >> ./rsyslog +echo "{" >> ./rsyslog +echo " rotate 4" >> ./rsyslog +echo " size=100M" >> ./rsyslog +echo " missingok" >> ./rsyslog +echo " notifempty" >> ./rsyslog +echo " compress" >> ./rsyslog +echo " delaycompress" >> ./rsyslog +echo " sharedscripts" >> ./rsyslog +echo " postrotate" >> ./rsyslog +echo " invoke-rc.d rsyslog rotate > /dev/null" >> ./rsyslog +echo " endscript" >> ./rsyslog +echo "}" >> ./rsyslog +echo "" >> ./rsyslog +echo "/var/log/kern.log" >> ./rsyslog +echo "/var/log/auth.log" >> ./rsyslog echo "{" >> ./rsyslog echo " rotate 4" >> ./rsyslog echo " size=100M" >> ./rsyslog @@ -179,7 +211,23 @@ echo " invoke-rc.d rsyslog rotate > /dev/null" >> ./rsyslog echo " endscript" >> ./rsyslog echo "}" >> ./rsyslog echo "" >> ./rsyslog -sudo tail -n +19 /etc/logrotate.d/rsyslog >> ./rsyslog +echo "/var/log/user.log" >> ./rsyslog +echo "/var/log/lpr.log" >> ./rsyslog +echo "/var/log/cron.log" >> ./rsyslog +echo "/var/log/debug" >> ./rsyslog +echo "/var/log/messages" >> ./rsyslog +echo "{" >> ./rsyslog +echo " rotate 4" >> ./rsyslog +echo " weekly" >> ./rsyslog +echo " missingok" >> ./rsyslog +echo " notifempty" >> ./rsyslog +echo " compress" >> ./rsyslog +echo " delaycompress" >> ./rsyslog +echo " sharedscripts" >> ./rsyslog +echo " postrotate" >> ./rsyslog +echo " invoke-rc.d rsyslog rotate > /dev/null" >> ./rsyslog +echo " endscript" >> ./rsyslog +echo "}" >> ./rsyslog sudo mv ./rsyslog /etc/logrotate.d/rsyslog sudo chown root:root /etc/logrotate.d/rsyslog sudo service rsyslog restart @@ -194,6 +242,10 @@ sudo apt-get install -y htop git curl bash-completion jq dphys-swapfile # installs bandwidth monitoring for future statistics sudo apt-get install -y vnstat +# prepare for BTRFS data drive raid +sudo apt-get install -y btrfs-tools + + # prepare for display graphics mode # see https://github.com/rootzoll/raspiblitz/pull/334 sudo apt-get install -y fbi From 48a589d025e9b266291724d9bd1677ff23a8e1b4 Mon Sep 17 00:00:00 2001 From: openoms Date: Mon, 25 Mar 2019 22:24:14 +0000 Subject: [PATCH 18/24] point links to @rootzoll dev branch --- dietpi/Odroid_HC1_HC2.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dietpi/Odroid_HC1_HC2.md b/dietpi/Odroid_HC1_HC2.md index 68c51f2..f9da3e2 100644 --- a/dietpi/Odroid_HC1_HC2.md +++ b/dietpi/Odroid_HC1_HC2.md @@ -10,7 +10,7 @@ * Build your own SDcard from the image downloaded from [Dietpi.com](dietpi.com#download) --- ### Download the fully prebuilt RaspiBlitz-on-DietPi SDcard image -* [torrent](https://github.com/openoms/raspiblitz/raw/raspiblitz-dev/dietpi/RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent) +* [torrent](https://github.com/rootzoll/raspiblitz/raw/dev/dietpi/RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent) * [mega.nz link](https://mega.nz/#F!EVNAAQiB!ZyLHP2dJMRSVjZOTCQMIYA) sha256sum RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.img: 96ee8700f52a12fb5b13fab3fffcdcf5d364c6dd16c580d969e421cef2cd7cc2 @@ -110,8 +110,8 @@ Changing the SSH server will change the SSH keys again. To clear: `wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build_sdcard.sh && sudo bash build_sdcard.sh [BRANCH] [GITHUB-USERNAME]` If you are working from a forked repo be aware of that the fork needs to be called `raspiblitz` for the git downloads to work. -* Run the forked version of @openoms: -`wget https://raw.githubusercontent.com/openoms/raspiblitz/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms` +* Example: run from the dev branch @rootzoll: +`wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev rootzoll` This will take a couple minutes depending on your internet ceonnection and the processing power of the SBC. * Restart when done and log back in now as `admin`: From f053fc4a641cac15d34318ff39aea9611d7c19f7 Mon Sep 17 00:00:00 2001 From: openoms Date: Tue, 26 Mar 2019 18:53:57 +0000 Subject: [PATCH 19/24] resize font to scale for HDMI screen --- dietpi/dietpi.display.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi.display.sh b/dietpi/dietpi.display.sh index 86548ae..081a85b 100644 --- a/dietpi/dietpi.display.sh +++ b/dietpi/dietpi.display.sh @@ -119,8 +119,14 @@ if [ "${baseImage}" = "dietpi" ]; then sudo cp ./usr/cmdline.txt /DietPi/ sudo cp ./usr/inittab /etc/ sudo cp ./boot/config-35.txt /DietPi/config.txt + + # revert font change + # based on https://www.raspberrypi-spy.co.uk/2014/04/how-to-change-the-command-line-font-size/ + sudo sed -i 's/FONTFACE="TerminusBold"/FONTFACE="Fixed"/' /etc/default/console-setup + sudo sed -i 's/FONTSIZE="12x24"/FONTSIZE="8x16"/' /etc/default/console-setup + echo "***" - echo "reboot with \`sudo reboot\` to have the LCD working" + echo "reboot with \`sudo reboot\` to make the LCD work" echo "***" exit @@ -140,8 +146,13 @@ if [ "${baseImage}" = "dietpi" ]; then sudo cp -rf ./usr/99-fbturbo.conf-HDMI /usr/share/X11/xorg.conf.d/99-fbturbo.conf sudo mkdir -p /etc/X11/xorg.conf.d sudo cp -rf ./usr/99-calibration.conf-3508 /etc/X11/xorg.conf.d/99-calibration.conf + + # based on https://www.raspberrypi-spy.co.uk/2014/04/how-to-change-the-command-line-font-size/ + sudo sed -i 's/FONTFACE="Fixed"/FONTFACE="TerminusBold"/' /etc/default/console-setup + sudo sed -i 's/FONTSIZE="8x16"/FONTSIZE="12x24"/' /etc/default/console-setup + echo "***" - echo "reboot with \`sudo reboot\` to have the LCD working" + echo "reboot with \`sudo reboot\` to make the LCD work" echo "***" exit @@ -152,6 +163,12 @@ if [ "${baseImage}" = "dietpi" ]; then # based on http://www.raspberrypiwiki.com/index.php/3.5_inch_TFT_800x480@60fps echo "--> LCD ALTERNATIVE" + + # revert font change + # based on https://www.raspberrypi-spy.co.uk/2014/04/how-to-change-the-command-line-font-size/ + sudo sed -i 's/FONTFACE="TerminusBold"/FONTFACE="Fixed"/' /etc/default/console-setup + sudo sed -i 's/FONTSIZE="12x24"/FONTSIZE="8x16"/' /etc/default/console-setup + cd /DietPi sudo wget http://www.raspberrypiwiki.com/download/RPI-HD-35-INCH-TFT/dt-blob-For-3B-plus.bin sudo mv dt-blob-For-3B-plus.bin dt-blob.bin From 9e45fddd3b4eb228a74d03d855bc51e1ad2a23a1 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 27 Mar 2019 07:54:10 +0000 Subject: [PATCH 20/24] add sudo to chmod --- dietpi/dietpi.display.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi.display.sh b/dietpi/dietpi.display.sh index 081a85b..37a9fdb 100644 --- a/dietpi/dietpi.display.sh +++ b/dietpi/dietpi.display.sh @@ -136,7 +136,7 @@ if [ "${baseImage}" = "dietpi" ]; then # based on http://www.lcdwiki.com/3.5inch_HDMI_Display-B git clone https://github.com/goodtft/LCD-show.git - chmod -R 755 LCD-show + sudo chmod -R 755 LCD-show cd LCD-show/ #sudo ./MPI3508-show sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf From 42c7c042a3076a498af0161bc5558a6d4f400267 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 27 Mar 2019 09:36:00 +0000 Subject: [PATCH 21/24] udd automated building process --- dietpi/Odroid_HC1_HC2.md | 47 +++++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/dietpi/Odroid_HC1_HC2.md b/dietpi/Odroid_HC1_HC2.md index f9da3e2..b44e65b 100644 --- a/dietpi/Odroid_HC1_HC2.md +++ b/dietpi/Odroid_HC1_HC2.md @@ -6,7 +6,7 @@ ## There are 3 options provided: * a trusted fully prebuilt SDcard image -* building your own SDcard from an updated DietPi image. +* Automated building process. * Build your own SDcard from the image downloaded from [Dietpi.com](dietpi.com#download) --- ### Download the fully prebuilt RaspiBlitz-on-DietPi SDcard image @@ -28,25 +28,52 @@ Using this image you can skip the rest of this guide as it is mostly about how t The setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/master/README.md#setup-process-detailed-documentation) --- -### Download the updated DietPi image +### The automated building process: -For the Odroid HC1 / HC2 / XU3 / XU4 a v6.20.6 DietPi image with fail2ban installed is uploaded [here]( -https://mega.nz/#!AcdVBAbR!O-W3jP5LUgw7lMY8S9XcBWcKX3IhRNAAFmaYzDXIUC0). -sha256sum DietPi_v6.20.6_OdroidXU4-ARMv7-Stretch.img: -1459b91f66b9db98f3437c31231e44497b7b7dcd9146d2cc41a3da653f9a9215 +1) Download the DietPi image for the Odroid HC1 / HC2 / XU3 / XU4: +https://dietpi.com/downloads/images/DietPi_OdroidXU4-ARMv7-Stretch.7z +2) Burn it to the SD card with [Etcher](https://www.balena.io/etcher/) -* Burn the image to the SDCard with [Etcher](https://www.balena.io/etcher/) and extend the rootfs partition to the size of your card with a partition manager (disks, Gparted, etc). +3) Right click and download the following two files: [DietPi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/dietpi.txt), [Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/Automation_Custom_Script.sh) -* Insert the SDcard into the Odroid. +4) Copy them to the /boot directory of the DietPi SDcard -* Power up and continue with [running the RaspiBlitz build_sdcard.sh script](#Run-the-RaspiBlitz-build_sdcard.sh-script) + [DietPi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/dietpi.txt): Overwrites the default dietpi.txt. Modified the settings to automate the DietPi setup. (see the details [here](https://github.com/rootzoll/raspiblitz/tree/dev/dietpi#excerpts-from-the-customized-dietpitxt)) + + [Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/dietpi/boot/Automation_Custom_Script.sh): Runs after DietPi installation is completed. Contains the link to download and run the build_sdcard.sh from the dev branch of @rootzoll. + (Optionally open the file with a text editor and uncomment (remove the `#` from the front of) the line with the branch you want to build the SDcard from.) + +5) Assemble and boot the Odroid + + Insert the SDcard, connect the HDD, network cable and power supply to boot. + + The automated setup will continue and the Odroid will restart at least twice during the process. + + To follow the logs during the automated building process login with `root` and press CTRL+C. + `tail -n1000 -f /tmp/DietPi-Update/dietpi-update.log` - follow the dietpi-update process + `tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` follow the output of the build_sdcard.sh + + Starting from from a v6.14 DietPi image is causing a bootloop after the first restart. See the issue: https://github.com/MichaIng/DietPi/issues/2495. This will be sorted out once a new image version is uploaded for the Odroids to dietpi.com. + To get past it: + * Log in with root after the first restart (when the loop is ongoing - without any output to the HDMI screen) + * CTRL+C, run `dietpi-update` and update + * `reboot` once finished + * from then the Automation_Custom_Script.sh is carrying on + + +6) When the setup is finished log in as `admin`: +`ssh admin@[IP-OF-RASPIBLITZ]` +password: `raspiblitz` + + The setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/master/README.md#setup-process-detailed-documentation) --- ### Build your own DietPi image: Watch out this is an ardous process. -Updating from a v6.14 DietPi image is causing a bootloop under some circumstances. Will be sorted once the current, >6.2 version is uploaded for the Odroids. +Updating from a v6.14 DietPi image is causing a bootloop after the first restart. See the issue: https://github.com/MichaIng/DietPi/issues/2495. +This will be sorted out once a new image version is uploaded for the Odroids to dietpi.com * For the Odroid HC1 / HC2 / XU3 / XU4 the start is this image: https://dietpi.com/downloads/images/DietPi_OdroidXU4-ARMv7-Stretch.7z From f2d02d864060e6b5b83770ba24618b37e42d26f6 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 27 Mar 2019 11:55:26 +0000 Subject: [PATCH 22/24] rename --- .../{Odroid_HC1_HC2.md => Odroid_HC1_XU4.md} | 6 +- ...spiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent | 262 ------------------ 2 files changed, 3 insertions(+), 265 deletions(-) rename dietpi/{Odroid_HC1_HC2.md => Odroid_HC1_XU4.md} (93%) delete mode 100644 dietpi/RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent diff --git a/dietpi/Odroid_HC1_HC2.md b/dietpi/Odroid_HC1_XU4.md similarity index 93% rename from dietpi/Odroid_HC1_HC2.md rename to dietpi/Odroid_HC1_XU4.md index b44e65b..3f5890b 100644 --- a/dietpi/Odroid_HC1_HC2.md +++ b/dietpi/Odroid_HC1_XU4.md @@ -10,7 +10,7 @@ * Build your own SDcard from the image downloaded from [Dietpi.com](dietpi.com#download) --- ### Download the fully prebuilt RaspiBlitz-on-DietPi SDcard image -* [torrent](https://github.com/rootzoll/raspiblitz/raw/dev/dietpi/RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent) + * [mega.nz link](https://mega.nz/#F!EVNAAQiB!ZyLHP2dJMRSVjZOTCQMIYA) sha256sum RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.img: 96ee8700f52a12fb5b13fab3fffcdcf5d364c6dd16c580d969e421cef2cd7cc2 @@ -23,7 +23,7 @@ Steps to run: - login with `ssh admin@at.your.raspiblitz.ip` password: `raspiblitz` -Using this image you can skip the rest of this guide as it is mostly about how this image was built. +Using this image you can skip the rest of this page. The setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/master/README.md#setup-process-detailed-documentation) @@ -53,7 +53,7 @@ https://dietpi.com/downloads/images/DietPi_OdroidXU4-ARMv7-Stretch.7z `tail -n1000 -f /tmp/DietPi-Update/dietpi-update.log` - follow the dietpi-update process `tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` follow the output of the build_sdcard.sh - Starting from from a v6.14 DietPi image is causing a bootloop after the first restart. See the issue: https://github.com/MichaIng/DietPi/issues/2495. This will be sorted out once a new image version is uploaded for the Odroids to dietpi.com. + Starting from a v6.14 DietPi image is causing a bootloop after the first restart. See the issue: https://github.com/MichaIng/DietPi/issues/2495. This will be sorted out once a new image version is uploaded for the Odroids to dietpi.com. To get past it: * Log in with root after the first restart (when the loop is ongoing - without any output to the HDMI screen) * CTRL+C, run `dietpi-update` and update diff --git a/dietpi/RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent b/dietpi/RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent deleted file mode 100644 index 51d925c..0000000 --- a/dietpi/RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.torrent +++ /dev/null @@ -1,262 +0,0 @@ -d8:announce46:udp://public.popcorn-tracker.org:6969/announce13:announce-listll46:udp://public.popcorn-tracker.org:6969/announceel36:http://182.176.139.129:6969/announce32:http://5.79.83.193:2710/announce0:34:http://91.218.230.81:6969/announce0:el0:31:http://secure.pow7.com/announce0:32:udp://62.138.0.158:6969/announce33:http://thetracker.org:80/announce35:udp://tracker.ilibr.org:80/announce0:0:0:40:http://tracker.kicks-ass.net:80/announce0:29:udp://eddie4.nl:6969/announce0:0:39:http://tracker2.itzmx.com:6961/announce0:34:http://mgtracker.org:6969/announce0:44:http://tracker1.wasabii.com.tw:6969/announce32:http://tracker.ex.ua:80/announce36:udp://tracker.mg64.net:2710/announce38:http://retracker.krs-ix.ru:80/announce0:34:http://mgtracker.org:2710/announce32:udp://explodie.org:6969/announce0:0:0:27:http://t1.pow7.com/announce0:35:http://p4p.arenabg.ch:1337/announce39:udp://shadowshq.eddie4.nl:6969/announce39:http://www.wareztorrent.com:80/announce46:http://tracker.edoardocolombo.eu:6969/announce31:http://atrack.pow7.com/announce33:http://open.touki.ru/announce.php44:udp://tracker2.indowebster.com:6969/announce32:udp://tracker.sktorrent.net:69690:0:0:27:http://pow7.com:80/announce35:http://torrentsmd.com:8080/announce0:0:0:43:http://tracker.dutchtracking.nl:80/announce0:40:udp://tracker4.piratux.com:6969/announce44:http://tracker.dutchtracking.com:80/announce0:0:27:http://t2.pow7.com/announce0:0:33:http://bt.henbt.com:2710/announce0:38:http://tracker.bittor.pw:1337/announce0:0:37:udp://tracker.eddie4.nl:6969/announce0:0:0:36:udp://shadowshq.yi.org:6969/announceel0:36:udp://tracker.mg64.net:6969/announce34:http://mgtracker.org:2710/announce33:http://bt.henbt.com:2710/announce0:35:http://p4p.arenabg.ch:1337/announce0:0:0:0:0:33:http://open.touki.ru/announce.php33:http://thetracker.org:80/announce0:38:http://retracker.krs-ix.ru:80/announce0:0:0:0:0:40:udp://tracker4.piratux.com:6969/announce29:udp://eddie4.nl:6969/announce27:http://t1.pow7.com/announce0:0:0:44:http://tracker.dutchtracking.com:80/announce27:http://t2.pow7.com/announce0:32:http://tracker.tfile.me/announce44:udp://tracker2.indowebster.com:6969/announce39:udp://shadowshq.eddie4.nl:6969/announce0:39:http://tracker2.itzmx.com:6961/announce0:0:0:36:udp://shadowshq.yi.org:6969/announce0:0:32:udp://tracker.sktorrent.net:69690:34:http://mgtracker.org:6969/announce40:http://tracker.kicks-ass.net:80/announce27:http://pow7.com:80/announce31:http://secure.pow7.com/announce36:udp://tracker.mg64.net:2710/announce37:http://tracker.mg64.net:6881/announce31:http://atrack.pow7.com/announce0:0:37:udp://tracker.eddie4.nl:6969/announce0:32:http://tracker.ex.ua:80/announce42:udp://tracker.opentrackr.org:1337/announce0:0:38:udp://bt.xxx-tracker.com:2710/announce0:43:http://tracker.dutchtracking.nl:80/announce0:41:http://tracker.dutchtracking.com/announce39:http://www.wareztorrent.com:80/announce46:http://tracker.edoardocolombo.eu:6969/announce0:0:44:http://tracker1.wasabii.com.tw:6969/announce35:http://torrentsmd.com:8080/announce0:44:http://tracker2.wasabii.com.tw:6969/announce0:0:38:http://tracker.bittor.pw:1337/announceel43:udp://tracker.coppersurfer.tk:6969/announceel43:http://tracker.opentrackr.org:1337/announceel30:udp://zer0day.ch:1337/announceel30:udp://zer0day.to:1337/announceel33:http://explodie.org:6969/announceel49:udp://tracker.leechers-paradise.org:6969/announceel31:udp://9.rarbg.com:2710/announceel30:udp://9.rarbg.me:2780/announceel30:udp://9.rarbg.to:2730/announceel35:udp://p4p.arenabg.com:1337/announceel41:udp://tracker.sktorrent.net:6969/announceel36:http://p4p.arenabg.com:1337/announceel42:udp://tracker.aletorrenty.pl:2710/announceel43:http://tracker.aletorrenty.pl:2710/announceel37:http://tracker.bittorrent.am/announceel39:udp://tracker.kicks-ass.net:80/announceel37:http://tracker.kicks-ass.net/announceel40:http://tracker.baravik.org:6970/announceel38:udp://torrent.gresille.org:80/announceel36:http://torrent.gresille.org/announceel38:http://tracker.skyts.net:6969/announceel49:http://tracker.internetwarriors.net:1337/announceel37:udp://tracker.skyts.net:6969/announceel40:http://tracker.dutchtracking.nl/announceel40:udp://tracker.yoshi210.com:6969/announceel40:udp://tracker.tiny-vps.com:6969/announceel48:udp://tracker.internetwarriors.net:1337/announceel33:udp://mgtracker.org:2710/announceel41:http://tracker.yoshi210.com:6969/announceel41:http://tracker.tiny-vps.com:6969/announceel42:udp://tracker.filetracker.pl:8089/announceel31:udp://tracker.ex.ua:80/announceel33:udp://91.218.230.81:6969/announceel37:https://www.wareztorrent.com/announceel36:http://www.wareztorrent.com/announceel43:http://tracker.filetracker.pl:8089/announceel29:http://tracker.ex.ua/announceel41:http://tracker.calculate.ru:6969/announceel39:udp://tracker.grepler.com:6969/announceel45:udp://tracker.flashtorrents.org:6969/announceel37:udp://tracker.bittor.pw:1337/announceel49:http://tracker.tvunderground.org.ru:3218/announceel40:http://tracker.grepler.com:6969/announceel46:http://tracker.flashtorrents.org:6969/announceel38:http://retracker.gorcomnet.ru/announceel34:http://bt.pusacg.org:8080/announceel35:http://87.248.186.252:8080/announceel36:udp://tracker.kuroy.me:5944/announceel35:udp://182.176.139.129:6969/announceel37:http://tracker.kuroy.me:5944/announceel35:http://retracker.krs-ix.ru/announceel40:http://open.acgtracker.com:1096/announceel33:udp://open.stealth.si:80/announceel33:udp://208.67.16.113:8000/announceel37:http://tracker.dler.org:6969/announceel40:http://bt2.careland.com.cn:6969/announceel36:http://open.lolicon.eu:7777/announceel43:http://tracker.opentrackr.org:1337/announceel33:http://explodie.org:6969/announceel36:http://p4p.arenabg.com:1337/announceel43:http://tracker.aletorrenty.pl:2710/announceel37:http://tracker.bittorrent.am/announceel37:http://tracker.kicks-ass.net/announceel40:http://tracker.baravik.org:6970/announceel36:http://torrent.gresille.org/announceel38:http://tracker.skyts.net:6969/announceel49:http://tracker.internetwarriors.net:1337/announceel40:http://tracker.dutchtracking.nl/announceel41:http://tracker.yoshi210.com:6969/announceel41:http://tracker.tiny-vps.com:6969/announceel36:http://www.wareztorrent.com/announceel43:http://tracker.filetracker.pl:8089/announceel29:http://tracker.ex.ua/announceel41:http://tracker.calculate.ru:6969/announceel49:http://tracker.tvunderground.org.ru:3218/announceel40:http://tracker.grepler.com:6969/announceel46:http://tracker.flashtorrents.org:6969/announceel38:http://retracker.gorcomnet.ru/announceel34:http://bt.pusacg.org:8080/announceel35:http://87.248.186.252:8080/announceel37:http://tracker.kuroy.me:5944/announceel35:http://retracker.krs-ix.ru/announceel40:http://open.acgtracker.com:1096/announceel40:http://bt2.careland.com.cn:6969/announceel36:http://open.lolicon.eu:7777/announceel37:https://www.wareztorrent.com/announceel33:udp://213.163.67.56:1337/announceel34:http://213.163.67.56:1337/announceel34:udp://185.86.149.205:1337/announceel33:http://74.82.52.209:6969/announceel32:udp://94.23.183.33:6969/announceel32:udp://74.82.52.209:6969/announceel34:udp://151.80.120.114:2710/announceel35:udp://109.121.134.121:1337/announceel33:udp://168.235.67.63:6969/announceel36:http://109.121.134.121:1337/announceel32:udp://178.33.73.26:2710/announceel33:http://178.33.73.26:2710/announceel28:http://85.17.19.180/announceel30:udp://85.17.19.180:80/announceel34:http://210.244.71.25:6969/announceel28:http://85.17.19.180/announceel36:http://213.159.215.198:6970/announceel35:udp://191.101.229.236:1337/announceel30:http://178.175.143.27/announceel32:udp://89.234.156.205:80/announceel29:http://91.216.110.47/announceel34:http://114.55.113.60:6969/announceel35:http://195.123.209.37:1337/announceel33:udp://114.55.113.60:6969/announceel34:http://210.244.71.26:6969/announceel34:udp://107.150.14.110:6969/announceel31:udp://5.79.249.77:6969/announceel34:udp://195.123.209.37:1337/announceel31:udp://37.19.5.155:2710/announceel35:http://107.150.14.110:6969/announceel32:http://5.79.249.77:6969/announceel32:udp://185.5.97.139:8089/announceel33:udp://194.106.216.222:80/announceel33:udp://91.218.230.81:6969/announceel29:https://104.28.17.69/announceel28:http://104.28.16.69/announceel33:http://185.5.97.139:8089/announceel31:http://194.106.216.222/announceel34:http://80.246.243.18:6969/announceel32:http://37.19.5.139:6969/announceel31:udp://5.79.83.193:6969/announceel32:udp://46.4.109.148:6969/announceel34:udp://51.254.244.161:6969/announceel35:udp://188.165.253.109:1337/announceel33:http://91.217.91.21:3218/announceel32:http://37.19.5.155:6881/announceel33:http://46.4.109.148:6969/announceel35:http://51.254.244.161:6969/announceel32:http://104.28.1.30:8080/announceel28:http://81.200.2.231/announceel33:http://157.7.202.64:8080/announceel35:http://87.248.186.252:8080/announceel33:udp://128.199.70.66:5944/announceel35:udp://182.176.139.129:6969/announceel34:http://128.199.70.66:5944/announceel36:http://188.165.253.109:1337/announceel26:http://93.92.64.5/announceel35:http://173.254.204.71:1096/announceel32:udp://195.123.209.40:80/announceel32:udp://62.212.85.66:2710/announceel33:udp://208.67.16.113:8000/announceel35:http://125.227.35.196:6969/announceel32:http://59.36.96.77:6969/announceel30:http://87.253.152.137/announceel35:http://158.69.146.212:7777/announceel43:udp://tracker.coppersurfer.tk:6969/announceel30:udp://zer0day.ch:1337/announceel49:udp://tracker.leechers-paradise.org:6969/announceel31:udp://9.rarbg.com:2710/announceel35:udp://p4p.arenabg.com:1337/announceel41:udp://tracker.sktorrent.net:6969/announceel42:udp://tracker.aletorrenty.pl:2710/announceel39:udp://tracker.kicks-ass.net:80/announceel38:udp://torrent.gresille.org:80/announceel37:udp://tracker.skyts.net:6969/announceel40:udp://tracker.yoshi210.com:6969/announceel40:udp://tracker.tiny-vps.com:6969/announceel48:udp://tracker.internetwarriors.net:1337/announceel33:udp://mgtracker.org:2710/announceel42:udp://tracker.filetracker.pl:8089/announceel31:udp://tracker.ex.ua:80/announceel33:udp://91.218.230.81:6969/announceel39:udp://tracker.grepler.com:6969/announceel45:udp://tracker.flashtorrents.org:6969/announceel37:udp://tracker.bittor.pw:1337/announceel36:udp://tracker.kuroy.me:5944/announceel35:udp://182.176.139.129:6969/announceel33:udp://open.stealth.si:80/announceel33:udp://208.67.16.113:8000/announceel43:udp://tracker.coppersurfer.tk:6969/announceel43:http://tracker.opentrackr.org:1337/announceel30:udp://zer0day.ch:1337/announceel33:http://explodie.org:6969/announceel49:udp://tracker.leechers-paradise.org:6969/announceel31:udp://9.rarbg.com:2710/announceel35:udp://p4p.arenabg.com:1337/announceel41:udp://tracker.sktorrent.net:6969/announceel36:http://p4p.arenabg.com:1337/announceel42:udp://tracker.aletorrenty.pl:2710/announceel43:http://tracker.aletorrenty.pl:2710/announceel37:http://tracker.bittorrent.am/announceel39:udp://tracker.kicks-ass.net:80/announceel37:http://tracker.kicks-ass.net/announceel40:http://tracker.baravik.org:6970/announceel44:udp://tracker.piratepublic.com:1337/announceel33:udp://213.163.67.56:1337/announceel34:http://213.163.67.56:1337/announceel34:udp://185.86.149.205:1337/announceel33:http://74.82.52.209:6969/announceel32:udp://94.23.183.33:6969/announceel32:udp://74.82.52.209:6969/announceel34:udp://151.80.120.114:2710/announceel35:udp://109.121.134.121:1337/announceel33:udp://168.235.67.63:6969/announceel36:http://109.121.134.121:1337/announceel32:udp://178.33.73.26:2710/announceel33:http://178.33.73.26:2710/announceel28:http://85.17.19.180/announceel30:udp://85.17.19.180:80/announceel34:http://210.244.71.25:6969/announceel28:http://85.17.19.180/announceee10:created by18:qBittorrent v4.1.513:creation datei1550360894e4:infod5:filesld6:lengthi3782809088e4:pathl40:RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.imgeed6:lengthi427e4:pathl10:README.txteee4:name36:RaspiBlitz1.0_OdroidHC1_DietPi6.21.112:piece lengthi1048576e6:pieces72160:dĜ[jEl=fS0:z+Q.ݝC1TPQn<O]! d[4?{JF)w@s-$AWz2494-@&E˛L;6~-8'c詝h8\ƕ\% _\w?!v1,3EZF,k#:󭝚mQȾlH1E? {ChqxԄJQגfE5k=i˛ IѬ/"HPJ=wQ#/;_^C,4EH=o_H:8H FFy*#?sQλ8pD2m \Rwxi[7I8r`j/WnG+vpq|ΟwF`miT]a6h>Pտ?M19hݛesxeyKl+Ok*ՒQ;2 ȭwy/vMRlqe ?,2ׯOT*lttB>*f;hEypNu/p"S#&_9҆FJw>qKr+N! "h;q?KͅݞN;q?KͅݞN;q?KͅݞN1]:t@2v'6%@^ߪ)l^fBvc9E{;͛oF<uÂB"Vqhv.OF -Z EhVyy4)P,OTH}%DUi 5" 5{") -gxdА%𦄰Ofdj@o6 T[b3߿g(RȰ{&J;K'JWhj;R%MZex'w8]h,D?'b@ۣtQ ԣ3[BP[A7-_ rØl~p]$6TC5v@3 -$[K'}ҩXc5(%EA)B*r".u:%,l1|I "TjzFiQ;uH٬QRd5:i[1$/v7֞qxjy G~ĐIH!!ur$x\=3i'·ar2VK{a]0A"HKy.$s=ţŗuG)sQQpΣ齰3abaE^3JSYvz"k`3\ jB'Rs Mٸ@$(^B -J|SB̔!Tӥȩ)׈f,qs uRש -x)8eG=*E/Z!(VFZ03q\ 7=TI :=,߁Z %F!u֏71Vfc]?%)hq.MӨ4x(yyVh^46ըs((3{PpΧiD}xvM&SBx'uoW λeQO#r[10'm ۸p) 2(jd4feߓ5v̵SXY"ɬtk\c@cxiO'B3Ϙ_{d -f;%#CcGc`w/6d %B?K>QzHj|dxXLؘd/'*mCkz vj8ױ(Yі_&[~\q6ВPQ>FL̍`R?I@V^RXNOhJKnܒk513$9~S8>.9y'<}^K OʨڳAF姮(@$V$ \I>PfSvS۴|]jN4RlwV&>!GlˎImp j4r(+Ce:ezX5> cR_Id,xy cGr6N+v[aqh#m9QKٸCk8q+ի0JL<>p?!_*wPE1䦒HdL0ܢiwr僎sXt:eukr}pjN'OX-k] -4LL|RgU,=D[ $"H72c+=ŷBý&#v;:B9x]ѰWYGoZ`rY?/Ϧ/]!{O{6Byz!XC##/&F6im@ Q_^R2NLX&! \~ll@u(1WÊ Oy^VΒtmb@7sl%Im[:,ʧw3 J[} g҇Z08WQ䈁D JG„ěΘ~}.8*s4)OھKa(kc0vP$>Mva"0E=D)2W`y=m;L; uyѹ/9ȓ?8DH۾Cmz{z_ƆiÜ7|tq_%Xّ~2zK ;n*BZMp/_A9ιb<^IПH,;C_HIljdJ-%zڛ_*Qub?eEz/'UQxE$NUls׾MN\c0feiɠhT>W_.'Hl( -ms8u @LaE8GƏ9k ώ7 -"&# iu_jꪆs5Y6=u`n$J)evq}&D,-7m|e5P J 0ͰW]rH9֤o]oxIZ=iDqx$ʥ羳:@ZuX0D=;&qh^MI@9\@K>=珼jYE=F y 5;yd&p)iPmvԸ- TJ@5fU-ȌVv(ɑˆ||=N23 -y`kg/&1V ?' 7J}cw+'('GW "NL&'l W)pyl0KC)-N\B-m/l1nk7&J&W?X?jF%cFbC?ɶhF@x42nY֬W YՏzW7|hqLY,BT@M[l[xF>jƉ j{޺l"q`ݤ"n ,jA9-ǂ{[9W7E p8-SYgGAkߛ =M:ʴ1(H_Dyo>#X8hRVAN ^_o|Q;Ool &@! -*G]~7S;L3+ -1pDS^Cʥt| ^t*ܑ1+-ZQ_vi g{n fbLp@1mV&U$vr?+ -o[O$)(e3{netgu=.Ϊrh ǩ r$_k܈ol-yh:70 -v=YObj^RUq(Iۀsvǀ '[BBN=Ap=WIѷi~]XL3'˓m&VWi 96KSʉ=֬QG 9g1vDþKJ-.G{FH|<.pR-e]l-J KvglS;Ȳ{lμoh)Y '{F'y -3}&*WRde-!zvX,!;3{ jZ`*P)+!_ъҥ'Cr}"06nQNB -|󠷴v}x@+(,h~ ͶQN6fs<&`[Y=EŶ7͈$Q2p-2t?lVLwJ!+wg - Z ԑʓQ}8֦%pY$؜@քմ} 1. `6첿;iN˯YNـOIަB W;?-SeV7.=~њق\lQ*3NBރ4Y]и ؁P&R͍GaT nvTu~QAkዢp?¦Sq\u.y4d޶l/1 b.xA| EL;.5.u1pJo &j^1.J'P:GzHˇ?Y{ީH8wY+:8QLů 456~`*;qH%P&S.61߭V8S=¾nqE6]c9/G س R5H6cҨ d˿1-;e4nx$?<;OiK4.!&@`5>5ӗ^`e 2w-ǒvUΫPSoj|#P-_[z&woH7fPAU':6m4Y K@e0] V/H0dr'wjU+bp\ۙgPu7GrHnz~Vtf;eY?nGlLQbAf yYaEb(3 VBc#?U<\ֳoܥ6)oC4:|J?(b4:7Iiq? ?3Ӵ!Λ[΃w+=g_Cs1@n&Y?!Ye;*TKF[92Gڥ1C_Bcѐ] 䗷 Cwy:x-O,O<+`$jcG $ u~D."ފ>d\l.|M|+f0mCZyeӭ -Z:|rvPn呃`8YE8Σ:Xi6ZO{)1Dnw)c"M3BS?v,?qs_W<ˈ>3Qæд<;ٵtV64bDh1~եhJzM}ey uF9A.8|"x߷q^-t g-`ja=s'(G9>q<@#l^Q+FbHX]^d砑?H=5-y]I)k+In^ ѵtiKB &`ޯYHI{ZmQX3e]X q\ɸ]Dj =4F)<{-)=[E}FNeMQE}+r p.ȀsvBJI{0ėp̯8{vz\")&VįAi n_ 'zIښh -?JBg)>+q&ԚR {l  װ IGxzܶU_n}Ҁ"4-AY׶bP" TmE؟AF1.uyO!b)תPGQ@3J{xEGK%:ۋt ^DaQXS4>Ħ -Λ9܅]?ɎFRұ4o!3drwsB fxC /r#!k{2rc_UA[r(TCVQ ^-gr:쯫0+ -Z6P^euq3SG#47e|dMpEGJ{=.BVe*ZիPU!iY}G/Y`$9 -ѷc\ݳ.[X{L-;n;q?KͅݞN;q?KͅݞNCUPғݥd BL߅onI,4v -@5+<Ҡ1h;;y}4S.}&NL??N."3azck+Ncd%ϧp K47լ֠ h`qCJf,;@JrһޛۛϾhfm :>4ư[yUjA )P^t)ȏ%&~ 5մ9ˬUgK!gT4vJRf)Xwot*$ ݰr:+Z%e79oT!r3_Ґ$;j]++70^ & stN _cdWQOsMU =sg pV%1Ɩ ꃠcM c>G)6h!366qjf,pm6ga68*(7zgLkPeJOQ  -ZIlgmK92@:sÒq܎U>mh?^7dgyIy~ -/}< J n Sbm/FZV*`2Y+)QԳj{&oDWo 7_9?]Up$l2;sҼfXGhxd66{Rx<]4-rfl;ɶ<C.;_QbBDSg^YͰҜ= Ht5X` -9һ8}1%xԎ'SU%(+4+m8+9aw &{ߍVl7[dDC4wJq{&hS=n,:ֻO]G`iP]g"04UF Lu(nC_AP56כ)G :Pgs<}n퍵R+IhH-` $zw?xz@Z}IlGU(ctS5UϦ%Zdjs? >\۠A1`7k)߮2l! Q'#LZVlM5y\S G+Ns1dg􊛛hr;5Y MxSiCLI+Ȳ["9R9 m-<8ys S}Gf - Jqo)4{8ϙjpwmlь~*W{ [7x##QI61Q?8eAi2#KjD٥/JM鄳k1j(_-2ijjMNs^z_$g33uHM;0c@#= e>q;̯"69yEbL m_j?Z^ݿ=oO o}-wMzM"fTڂfi:%T -/3OsxX>Zw2B#= -ƼvDa;s镔|2 #KNGbCm˺%SvyS߻~w'[ ̆|dZ]ߟD+ƥaCv@HX㳫СT|7q_a=08^Z;+zy&o]KH-#̶ ,t!CΏW -Loľ -͓:q)8ua @/wߓ~Z9 -҃X`E07,BQh{ݍ[;z{S!i )pj9hLd9F,D[;v -Gi|50F -4yeu-uC}W'۝2O VlګQ@m ?/UiOD@!Q(pKG4jAmE%,%XūA҃Ut8ER>Mf?V+,9Ƙ6ID[+)2UN+&pD -1x|rMQjx.euzR/Iz4ư[yUjA[rA6Ǩ0qg-3|?إB"g?D;q?KͅݞN;q?KͅݞN>ON΄ٝ!Mܑ=9g)V;-<ͺp$v'[sPj|KjA$5{#fM:kkk)})Pc*c/m!fW~4ثl8_d& -FMIMص}Op -4yeu-uC}W, 554/K*<pKG4jAmE%,%XūA҃Ut8ER>Mf?V+,9Ƙ6ID[+)2UN+&pD -1x|rMյhރعײįbSC͏d(@ 1xa>fV8D5{X؊cEy5(Wnj"Q:MiワmI}H9"sL9U0]m;$J57hL+eKV3Z7d|V٨rJt'\X]l,A}Sk=h^'TJ e&]>$n蔋O6Kw֛_N!y.co_;KqnsZ?54XpVdַ*m'ŋΟ!s˞\x =xzAC۴KV]u%ϙb<͋ KLW[1p.mbxEB Q/Uô,fYӶ9r\FĽa@i# vԙQKyMj*l4-ܴXfm~i@X_8iS?ВU9'j)u.> t)$fyAB W$(^<+oMLhON66 wGP:a%F4HM=?tQF,{gi4!@] z!M t]ai;.D{O|KmjQt -!Saqk5̜B/Z!(VFZ03zAm.nSͶXw?Pa9ݽ7%|{ŋ5gO}3*HoR9_tt!oK0ج.O&g$avjEUvY$5B߲i$YX -cg1nC ɴ!eSyKHl@?+Ӟk ל[f*VoW" GQ`U G\N*»aJ8t71XW eEU|AV'̅pa/8afDHίĉm!TH4QòD57v:N_@7ed`Jд}tW" Gڋ -3Z޼8m7p&&ob3*x^BQjԪabXeȥؕ;\|&<>Nd!- b}aXA5W GV 7A|{A>]<>mZY+:Z[syc- n{(vê!*l5*dCyC>gv,w`=gS>gC3X{FgjTMWf(F;Co6I;*ː(μj (Ø$t E]I`gcP~^]3Pip|A%,%f?>MUqYX0Y.IP1@oFmr0½b/d{?Yn<þYH, A¡,ĊVTe3 -7acFtkFHLFȲ>>54ZG/ ?8O` ;q?KͅݞN;q?KͅݞN;q?KͅݞNxH/JL{[_!0kI6~<'lJYA1ި\ɏNESJtGpoبyW;5Uդ*"o6).=P*fA g_̈́șBONOwM:@ȹ߷HޮC\Ш •KAԔs^d r\ȤRG ݆.߁| -mMHKXTESkg:HOϚE\S5J\% 5JҖ=k)qݘm hS='FymVMtGoMSmu8omS!'qsJO{A@1г!P@)u^m[a43z@D#^ynն~{pE0Q)`>A+F i $V$؟F6]?[LE\BARVЊ\E:rGC:oyj[OGW[egN}s4GQtħ\kPB:[+~+\937ѻc2">}CF(K@Ŷ/+~sz~Jz%h*?껛btaW *h='B٪3O6B WL-pڸ'^Ӥᗉ]"5V,gƐT\ȢKJ.%L!Ա s7eRYK=}~Am/AZ` "IKfufLc϶@zD4 >M"dc!l)W23zى5ϜuY2[ -N7ܵ --Xq?BCϣ%Ll8Va BM9EFhhQ9^Mܪ"Mj`s2 ߏf;6}4`UNG'V[4mq()$ስ -uYC'9RZCgLR2ɐHeXCž9C3mLz{| -Eo"/!Urs#s4.r6w2etK5T,CɉtЀ2yBC#dj4]hJ+$;zf`+Q14݆ :-uhhV3auStq"bnmD=0j?_[S⫓7!Ϗs^.?;Z@ m6۝H4/Q ÷3+fe| ]^mN|c#zʙڞ՟G`ʡ o`R#fL&lV$ÄI:T:ob~j.Rghͱt;q?KͅݞN;q?KͅݞN;q?KͅݞN~a^uCnE~*+גMݽ#b``$.|~^ i߲BL -VxyL`6QZ:eyzy_j` ? İWtʔ+5ƒy}z=W\XA[e$Q[~> #9&FDG|wߍl*hH$r'2Gy]%# -:'EqkkrF۔PTðd LeҶ %)%Vqə,:mW}c$x(펇[p4kIֲ& ͛5mf/%kFx%z; -iߊ$jϭ! &T-^2߼3v^?V~ŴyS̾t@ 3])Ҭ %Jaft -*E -SKM O!T4<ȼQDvog*Κj'oyRLZfZt4y: aT<"3G53o2:'=LRz-8&Yϕ;e&ět񈆑$D!i%2}SP>0T.;}C ZPg_ 6z8C{̓%$ R)bHᴀ?]d{c(PR3!x"y觽} -{=z4s"C#&X5&"8{# lF o42̜O'Sصd"Y%\5ٞ%*B99>*p|ѨuC_eEJi'bx$GhDJ#ds -'qɷFѕ2<>H`!!( ,Qorik-hqxtXW}[]H ^)׀P;g³Q테-Zw-!RR"1i'~yy8(9V`h@g+/s - Rb.SwbT~SU(NsIݧBqqtS\M|ȼE}orJ<_@F ӌ -7&р-J1- -K&.vs[~1#ԓ y5CND7]nJmdG[P;pdޜ3fi4M{<}5 Jn p+(dQZ4iPcƄ D>W" G+xޠC<, )f=́%fo_~z=WNs؀=ƓѼLc TlĎ%s&k)1 lҴlf"aLkIr.dKXjյ{Xu{C`rJ]A]Gj.pO th:"=1 ߘ/grģcR/+~ɎǁJ r7Ѝ,\\#:4{Gpce6IagFooA)CÖVk@=27 λH"Cܢ9akD]I?%ޱÕ*N_PCkqv8Osk"IrNA@ MR@Q3+`drьi31ZaG L:^Z)4SŝE@Q?մ[> 69xłGZӱS u! ӈQ 9'>j/MAZp>jm?G];q?KͅݞN;q?KͅݞN;q?KͅݞN,x{A(O"P#YoW B_s,-{ZzzkxsAD(]z|z67!RrȥTs8W1 -C|d|ge'(7@:$K C^~Nyq:3_T2 - Dv]}|q]{6am qt(} H0+H63(Z+h^5%dgRTkt@푊}hTh DQAΜOFp`TjR!򼆟#_θk۸XFԃ*5OR; }i ="e l=cG%<9LHI"kndxfPݨ TO"ƲJ -<޳hHD9$B}ojD)݊"n6L-3 iYsz-37âECS_T5>cR ycOa Ov\+gGȣaߨ`Zá?M:- Ge&+&3wML<7{FX[C>}INtBb5͎8Fޯ -̆HdR} `= z1/#:I^c+WK%b@-i$nޑ('{ ;Yz0gDy^Spp&^߆SdFKMman3p\{ E8!&@!0ߦ7F"A>ӷ(3@$2,Fct,,tDA_S'WMSf1N\ݞb6P%:͌ʛPHo}}Hlճj+n6PBL^fHӫJty-"OEu$ ol`@ iʃ@plӊ˱"VjDCBhuZ[*Hc$Ղ251X%y`ؒK*a. V2(` D*0<( ,mƝOl$Cisdh Q2r .PKt6G0e$m{~fK .pZ/Odat,r}-Ů$bV)ܵn{nų0+.>x8K7>%r@nQiIJk yg qT„Yr`Bmz0&N2,ʽc(R6SdZC\PU?: sq9߹ fQރ}9ȧwbDDRHZ*)e6VW&AF[Ԡ `gz'TEl<˟T&8pva|gYPMA lklq\R+u^)~~0c)zu"H c>P"k>7[F]Î$k|yV8EӀ;[ޘE| !zQTI gM 1M%}m: -Bw1j{VS0MO7na-ض9O" T"+s2;UuZ-C  -U4m98/ -͒/P/J+?Wo>мH`j { b,Q~ߏsLa1$̋IlLǿ3{$:`4䏔Bw4fT/esB;͠|{GZ7ƈ'NF{ -}pds'wTlݴWYM$zn^R%reUt{Pgə sV AX&3lb=|wك2C9PY9oWHߒzXY\S}"Iu8G~q2'xyy藸N[̕`~8HĨz!k3rnRŭ9Nb Hwv9Ś9_H Z^R[yX9ޗJHxatyZv)LGC%0BVz.]U -xUvMI;q?KͅݞN;q?KͅݞN;q?KͅݞN5`ϓ[:$oU:) _W$$T^HxNZp+o9mQBK\AbĨHڐk 0zaBkK⊲˖?A!:oaz#$rSya9*{hxArC'y^&^lY`kW`T=4*Yw\, ,^gًg T8dib -BiHF -'WJs_\[ W-n*IoPjn``\'u ߑEG&ٳbսVŸJπb@32ePМ@Σgut b LS>YwTW\%jDKPUiG=b׍;Ɛ.Yi5 iܴ:rt$Z {M_o:_m4G_סu#شf˲X3[j#ejISlVBdXK6?~6#zE[a q]*uF(9[t٘25΅OūB4ŁZvwtry~{Ő^=3ǰMCgg7ڙ+B4/@ vh~6R<%\԰.VJ  qN? ;Ac q^"Sյc60Jx)ǓwL \.Y y "#F$}00g@#LMcJR5sZyUG!LLsM(M"mx|o.;˩^u -fY\`"bZ$!P1!K9U33sEM&YV9ޔ  Տ4\V-gv4\KodRZol wxaT ݙƩĠ*h)8DY[zm SnnbHZ [a ->YJE߱lBTMd9NLѥG7T2oBd/5J;nJ0UCm|F=ο_[%u[k'p\ɺ515~O~"r G -[rFf$VBOiհ~?z R>]km0ѻG%W\F077mh\%^q.;'/GP\>L5$*6Bd $J Q=|εXW _J'VZ*V -f w " tah {TǮH.5v&77׈I6ׄ5ȁ0=13IVeIã8,N)0L-qsV U9끎kc *α-CRVb8TU狥Y0t~8/lh/К)eD_ji㧈0\M.#"P06n?ꦠoK\Ku೾hX;d'.؁WX=ؠ2beoQ`+-sQl-/C%Ζ llVde䩄=v'!p oW$<Ƥ\$DK='Nq]4-VfФ=syJ1A"G 52l*l_ʻs8jG {EYQ:*{UfVhw'n|]#$.ܡr\x0q8#W~7k*NDKUg pe?Tk7 9F.`d%d45Vv [^a|xE8NXh?k;ԥfDG`LzH*ztPmɽq/XJ i)vN9Y2Y<ФJ ;ܽswrܜ[wX&uqgB!Uon{vx`TOB-&z/nY+U#G2,n[p{Gic͟ N;]i!{/)*z{{zdN9$wˀ2XkY`$!Gl<{Hzcn~h.>Bp +% _Fof MvKjA!j;q?KͅݞN;q?KͅݞN;q?KͅݞN |hFֺIsږl{R( 㛶HQ:W1v~`(jBÞD楪!DߺW>~xۖR2d1Z$xog9ףExo+^2-0̥̅by -7d05G%jOOw_-8Gk"aql*zF+J2P- \ԩV j#x=9?;7/k*4't'烄D[aZMpm@^a3a፰)X[M8դjR{F8ņnsW72lQ 59OAg?bjW3˙[ڢ`1`d9`SxN=4Yb -q3^ 㝔';zW`~fhGȞnHKLQޕ[en/U|7 jܝ)X+6&OFAy>w썀@yqgCmq̀OX,`r\-朘)@qasU|Kk KMˡ !̼ -+d\]B'vϘ9nST,.2sAίܧdq:ɝՙTx,EJ,)[!ʩ8)n<,HRu :…ާ#J̕@׽9݅[l;79lFެqxI4'Y׬)@hLGc0sv\5 _9BQaU6v9<%Dc*G J9y6N{,# $ #p_,/,[zZ|܊ -Lӎ* -5d|R>eꊔV* LANKD:P'ꀶW.VV.2J -`݉!;7pVz _K -νᇷ}AUkQ>5f'5B,|yT_zؘ7&(:XvǷR4~bgf>ǼO bƟFț >^("xe+c1$$EI .R/~Kjf*t \D͙/&JrԨeqˡSd]=6,%wXj\EdjW9|"a0tUIqI1-mr -'AjK]'v9AI2M¤r齊`89Pf?ts%h\إmgp?`$[GDoVgN'G~o.jwH ;dC-a[eyR7@m'B0C9`곹r3'"S5ieֈ2,YϮ8.oiM"KZZ>ҁ0 #}ekL^;q?KͅݞN;q?KͅݞN;q?KͅݞNY9K 'z8+zXҳ̚WG+ލ -t'ƍpp:Z(8=8C.A$_]饒_D/%E=RT< BX"Y0|B@ᓳgMwBX ' ܬЉd/;0d\{Ta4 _0آqRyzɔzOӐCTzz}kH9XOR^bnR:F Y( 8 %+e:~?I~g2 c SC20֖ aOe%J8 V道&bG硤(zA_i" V[yHGr<@XL -$c Hf!PcIq&ƞ(᷼" wXn@ݮTOU~A468!4͍\rznoQsTJ;x'r_}"돬k.xn{Ս.Cu||u'j5)co֦LtP+-+ DrXg -``KXw+y^}/.DaS4+ -iprÑ v3Lz̽"g=Q7l9+gͩ(i Kg\teshnItX4Auk!%;36A).iޏ#/)^ၝd2zFZbOօ1@71:}cOvH4#9LnyVW,#pЏdO6ξ},jG8Bo;򷻚"ǧޫ`%r;kL\m`7P,y l@e ;Kfm6ŏxS델*Av!3+,)WWz{ѣf1 ܝbϓS&֓Mx]tx| ,t >\^9 't쀬&sz@CC!g )t}e|kSj7G^ogORٳ\kY׃ݶ -$,ݓgtP!Et%Zq/$? eR<Jm1㇪YxMH_p69ž{v@o [Y؏fF!g4%N >0a\ܢݑܛDK椣R5*Ex USJ\zFY}hyOG| ǟyi|xX܏sQ5 rcWONx9Sv,2XW\gѳW4j7Ω/OyVCͨ>g\\9ɳ?븓N -bBϑ&*#![홵mĠV5na[cPԚv -K'I, &gyO˳ruiCZ'Z4UOb*:Qȅbe,Z#M͘zjSla4jvnteU@S'X1jؙN҂l)Nڑ9ꢥ=ЮxAT7}uET_›&`;_ȭf WQ>%sɃ\ -J`bo#sT6W?f}|7KB5vfJ;q?KͅݞN;q?KͅݞN;q?KͅݞNu֨17%ljQP@IͯPsF( 5n>OzGa@qv -j/7+G=;8tD -7lX;Emq0yj7p0qH%)q/ߏ'P`h?AJ#Z'GLWtA&G(eWq-*6'oYIbp&_J/þG[,6 -N_{ .#\(Z97Я2(7fߢt"f0ӦwSaC)e&|2Sv#PmUrc^< |7 -4i{6J23P{yV_W43~Wy-@X(-7M7WaLuDeE*SQX7,аe>G!ws20&~6g^^@Ɯ֝a,N@0 8fjݥ`Լv[*Qi -6g j)Hŀ,?ƋѺ, Yeh5< -mM7ؖaҼd.$îB|GM)d$dIB?AbQe -_s{ #BaHEzƱme -MWY*  Η}G>d隬L]v#> yt7s}\ٛs[9S1 g\[4^ @%FR7t{%%Hzr7TH?" ܓ:,6] ` -c\"%TrQ%Sv!o:>%d^9D irg0f0ݶ8scɁC"WkP6nVjU1>@1y $yOY/Q2X2c2*nE?@^aR$@j1c<+~9'{I2UAqϸCI~XN>(Ax,^֦Ս_fA^ښRdm,~n+;mL[RX+s~hhx5>2X&>3YV&.-n {'$,^`E޹m(!Je~%˳>bd(o6t[DvKS\fj@39l -J"S.9?>ր_[qArMCx_Mk&Fvi}:vkw'Ǟ/1.Y6j6퇝G^Pb;m9Ȥ=lz/ZkswUV{78a8 8w̢re2)֭"@OVyX2PYNf]pc}w.-!kr" ae*@ ?P -۝2>~e#3៬%*/'T?7nWR=bi*lYli=\M/'kVQ;rK^_T<2Peӿ3@(VOl%?4\샊@R1E·BWQk @5BC G]Y-d<!=.T1Os -T]p2߆L(uu|pz;me\~-x7t+QgAH-ް&!zRޭ^NHD_  -aKdM R7{ښ7Ui ʢZŬchQd X <2e  I0co̺@u&zOgk+ .⏙C]P/ߋ4v*ސKV mۺ b5 }urM̾-G3mAEu^}P^חtyXI9]]nVx1A' ]6C0 ')sZgÃq$}Ӱ 5[-YUi-܏įmݜB&n2OpȂ}te5i"x.領Wcé8y0JwAķp3DDI_KC+tPC{J5L}jhQCvr.TOAheeaiGx2V}-_'K@;x|nG<&ejKNlXpm9с:C6Ln. A&\K$"RōρF6!=3a< hI{F@Z&5b]'Y)WCpTհ)JK**7b<0uHv0LTKç0 -΍.a\T(8o^uakthʪ6X!=⚱b$}E-]\5DriTʣ>@tyE/ - iy9_PlX2۸ "ԫ }THݦXe{!MAYibcY5&ˠ+}?ae$pU^aKT0Es~}! -ƌ߻00 Io#bVM{AӧBܳ`n9乙GiHKH*p-d{iN h?bu6BdgnOK9\yd5-zkز^/EB% C$pH\yͨ.E⡄w Єk@FڕfGxLUw۸25 ek382%5,: \@%AIWfzӁ0HwiQ=nj:wR d39ruRd~Md]_S^B{RF/"dMjZ ysnX"zkZs6cM7-UctZEC(IgWTd1^$"ɢ$},_Yhefny)pߣv51kEQawU fF[%)pd4p,;)K"&I!ں+e5BV>ulzsLQR/DYo.GL7tfH.DŽ4FtF>]jiBwJ]uYSujD T97f.o{ymAqSzLYO_'ңmd:h@}hY+FƄIN~6%ۥ 7.ῳi {: mn|SShJ;~&Q@˜[3g͟h4pn =cE.^o5@yd6jBXL[3Q\e5~ڭ"ZD#2'B_-x }Zu6(SDv G-41Σα )F*XO[ԯ -_{΀즉'ƙT{6mnѫpb0C Qܝ+%b -|`w#͠S]x'-wbs~t??=\ Lu e"鵁##OMp$!f֤;Z'?$]75FW/~:m;O=kg|y\ Cvr@N$k\yFߤ]fқYH祦68a@ .(B "`#ьeEs,[ce,l-:i7\ʹ7l1p%xٳ?n"D"9{ /ضLכOqBKjb;~q0;n]4;_mYn9nI}2'GRf)͊>:-{綽{mK -[QfDHH - +2MFXN 5͖+pq- 2]ßbΪO#I [۬ a-8BZ71xnT@#m(yh}w7vױUG}Fu&n.8%!M@n]xaF *oLxSQ/ZVaH5VCooOD`u>֐B]Bb5j=Bǵ ,03X;k@JHЖ:@ MkʳZjØm0\֬Zzxf1v`&Dsb0LYV'6]lQ3NJ& ;q?KͅݞN;q?KͅݞN;q?KͅݞNRdNs^n -Y|S,Ǫ V ]bWH1*\׻?ӆp7յ1 MFކ*(| I:7 2`5,w(kavaq3_vHnD-s`ػe,yi[ swDXX$' pEjKg0<`]B.!rTK,rQɆxolXoRtc7[W|lGxi̇ܪ:7HHBhtdOJhܝkRw yZЗn'(D?Ŵiw{y$h[5TH\i["VwYjrjj 7 {O(0m#+ էrRsϡZP1gq*YXĬa+Cq8_)]ɬIHn?)) -V*9_ M(ܿ1=,d-(b xzlm - ⨂}r˻O[ꡪQ9D$եH]zAC* iBs5xnܲgTGD9@~4}ڃTA M 7;0Glp" .2ܱa[|Yp=i{+ׇC6_KMRV^:eA a_Ƃ]|;?l+|=^Ws&C?(mb<&#ĵm! -ZySA} )˅ّb &c$u".rG:/,󛧡٠Dڏi/n?A@lebl?.Y` -"ڂFIHrWMֆ~C/aFkw` RfyO&djxԙ$#x )]7~1J4^ˠD -%rJ9S._Mfn/k7[^ޠЪIq)Xܦml|řЏNQѕ_歿$sV8 Q+~Ւw]6qN{[W蠠c G5~HhCRhX9wGDˆ| qiOL{a y2M֠'Q紇e%gE`Ad0q:fPS3إW$WV9)ԑTyOX8vh$O1|eE*l}$Ŵ~YFљaeOD[!PK<K#54 "d $8c4V=x~?ӠRL-_kyaoG #vΝH'޷g?  }` ޱGil`.<f$ALH8rHfd!!L*Ѧx6BH֏wD8% pۖ߸L -SE\V7LI -Ĥ'~&n!u&a ϚHz>PjELXi"SO/J+"{D Ɥ+pN(as,2=L - ,+}EïSPނM3?\ɣ5#>dtswԸ1图3tBfⳃGz9YXgygΨt-E̚ދ!^uH:~W~6A)ȱ-\dg1.eЅC3J>*U6=RΕYxSZMT qʐ?2*N;˳E&n^@aj̡jr_Vv׀;HT[z0E+/i{$3.)aDAdWr=9{`ʡ`<, Kug?c((hnL@5`zmvK?9*1:3q"?gG$7F jA!,P Uέ.0#n! Sao@pR$mJW$=#0l2y%#=+6Np>P;ո)`~TRD4 bҫ=r O-{{"v$8cy>ќoQɹGc-#2Vfͳ96h?p%5%]ߜ*gx2; oJZ;q?KͅݞN;q?KͅݞN;q?KͅݞN]& h&~cʂk$z_zgizD?Q.% .gj<:왋;,ip9:V%rZ!"jWUPҙsUh0Vp lZ#ZYO0vJO v![}z*6cc_M)mwZwɥrc[ =Uӽ[Wd{Hխc$ 'meAav!5:"xμi#33:"FoɾgԌw]}: Yn'uW[MƹadkzAIop뿺8J W]S -+` .br{E|![!ϋϔ 4Ä0卥a0o}&23#~61 "9 R-?Sa _^G0 |8-UMWT+ۚ*MiTZtp4$&v{8E$:=tȭ|s#ܣ[,Yr6ղYCoYzh`mm8wwi#W;C@t:#bUރoB^j9s02&t*DYD,vN yQAAHk[\Z&< N|IO"4RH2ņ*_%/ T p{)W-g0pHіy!A7_jIaYgX2Ƅ [<7=mW3_dY3$^scOBW1"x!ˢ)oݣ/a6Po`S|#a- -e&8FX,c:|A"~(.P7r [z@Raد lu8+7Hwt։`丽rqj}b4z1n>g2V6N"ɄM|Ul8Fo Tc,-cMxƕgricVs/nq?Rsd*.𝓧8Z\k'X@",SUMs.;>V$5jEiGuR;R8T48OږaR=/,{{zUSw6r3͵A N-MBP>[=µ'5K>cSt6c:2-=ĉtdQ#x-DF&z:ymްqA&I$T>uiP_߁Ga}aNTZtVVIJuv{"rrF$Pk} 6{A$"TTǨ>Dfͻ>^ ջlnʤ,?.l;ıș-ɬ_۩‚ %3(Y5}6& -$T/0U;~op($oĭ 5]r] ;7ݭ2)MQm;mOurBsx;q?pZј@bhwX_W,/$ZY:,5xyQMPƒI܎.;_烪A#Ű_TnN(-$-tFU퍊Sxsqqt4! j{l8\?Yt_/Qw"\7&M0;q?KͅݞNY#StUI/AlNrRZi+CC۱Gs1L|ۣӛ*lůH#fr,aUHpAG6[zw[S{b77i+x<5PNkTB=S (Iz2u-7-Y;PSS&MQbl,Mol9oR"` <\dSqjPiI=Y+ch|-]pո =""IE규6ĕZ=DF( lr [3b -p[*_Tli[^E |\Ldojol;q?KͅݞN;q?KͅݞN;q?KͅݞN^B&Nd6)e=ȯ1Xplp9P܁cLݠ"3{) _o?%;w(|csV;q?KͅݞNyҕlCF!t;q?KͅݞNm”;wQ0;q?KͅݞN}$]zwH@x;q?KͅݞNDM,z|7.Y=_Gˠo+8s?gɣnVUHlo1xM ^E0⟵rzkO":Mg9;V/}(vTʃ(ԊG.#IHN[40 2?h1/>vCZIa77w!ĥRǯYEH|ځ9v&䣧Φ׍F-9; 0o_+WVɑhR:zުzX+[$$~c`[$=.T=iyLJ@ 6&bnuю6cYZ8dkRW~RHU67qCW#]4xKEܶ"Q|gyMaPs1s-{ oH>\(zLw)%!e`XgٚINk(ܻ.jH<eH2rZ&KxA2you⽥-afaj ;FS=r^n~PBֻ>=€A_*T+ViNanb*BG@ڃI NO߰)k-¤4q :ZVU̖PM3b0-J=1 |Ƚ0滌dh,_/ecG̢=p͖sQ[O/'VgUPIk] ФIx鼐IVؼc?KHG_= !¥p ^˙(of -X Y'|jC/Q]q b`C-Mz ';q?KͅݞNh7a*)KÆ[;w?'R!6L#CQ@e+ XkWOk-adX -p*܃#q7~{b['e %2B 2 q -]Uphf?dAe79CAnG"-9bc@c ls`E޼;=bSi)XX#ćOU,fwQRU ڷ'+mrMo;[:\:+NHd5ky3zR_6B7뢆1Y -$Bt NHN)njU1Jbr]S8|h)'Cb jEsB?pM4,QC`m BY!Su^᫿gsfXo j{?պ,TNBsF>ɤ'+ ?=#VonV2BmPԗ7I24%:܂ |?WnrD:s:l/8TPYiR$ q5J-iS,5+@ɘowgk4[]}dg#OtɈo;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN|.D]A9m=pU03X+'f% ;)B@EgE*ÖBѿ0LSEv=k/9VP DB:4k0VV).xLe,VdVV;i4;q?KͅݞN;q?KͅݞN;q?KͅݞNۍB`'RSaĥdBB3 Kf:+I54A/f x{0ZD1J8:|xHqfG|V6 -Wܯ0؂rЫ248ӧ+"qY'dQ2M3Xr Vi,Io^9W'؞0 Nx~EH~3}%dۚ,{8NVFƆݒ lld2ysb388P# =ˉH7Yb!Vu@qXca:@k7QKǩ=6aE}Sn1BpJ?^ȣiWypPΐ'3ylڃn0v,Sc -iA@E"\#$ޓnRZY§U*)F 4@VqTzeq. 8)ߓ4@Z(x.АvPSX{uMZ"ͫ;0Xi[i;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞNGT@(t2]lYaQ)| EV/ -8/AgM7@FWL!uGDOl3a%:sW^R} 2(׻p-@}@Z-`[Q\+~; L92"Vj1s/ZX-M-4Oam+OU_uGǯwнLZ2/Ȩqv$I|")f-4@mEk -&ړcPcF0j4t/Ş(dkF܅;Y\\잣Dlйr?NuzLIih7s˴SV?fM2ׂш9\Q25x^a JOOpӭb_w'#5d)s_W8x&kYm/V0yv fIrԂFVa1|H|F\;q?KͅݞN;q?KͅݞN;q?KͅݞNʧh^)LDdc!֖<sobZ<éosXnڗ]L*,,b4ʚc*v譋V^ر~HG͸,VV}~\l ЕBR%05K ((\'KRnY`j!Gw%Ꮺu*a/zJ1[3;^I~ aC~Xxlcu,a}ԧwF70V֎ R;(Ū˞Ē|c@4k1 ዯTշWOC{GW~K?Rx#ǣޱ1Q˃YU,2_>&W gF -s;6*>.aK()KF 20Ljy2񶹓 - 4ݥ=##N |YW]QC) %3bo/PWM3hljH -3~L8zb~5Z,k.m1B]4NHLS[l_I[+|_ƩN7~=\lzb"v#ΨFY,? IFc0 %ʣL_PV]oY -?#Q*7ȧ8٦4Y%p0Mqv G"CqF%MLzLfܓ]z4xM49ёI-l> [k (wHTmuyZby2 -{XqFq h=#zN"̚QϽ+?Vo+E, Bk3&E3n'fK7wѢ^HKEc˳8G-KzȒtͫ}R_'5UtxOf .C ܀yͷBw{Y ,|㹕P: 0>]n`GKx]/Lu\SOVKoX:`|ח`"k -!oM`K+kxbZ"xV9 ->r >fzPo"DGS13mƭmV[ULr]=WK: 8uut_6nQi[6'4<c.a"pic;E3U//Gddt nUUp{ P5} Pg9A'i^WԐ'u9=< &L^LN뎠ڈPisf`ҒΙBm:0ZX:eiw v|V\3a okF2)pXnB: G?\ehXF4~G΀aNh(aƗE{w^V$B+dC  N:x~Otkd3RbJ4ib[+rdY&熆ϰqsw'::f^ -We󅆤O2>6ǐXRyTt)fP^KLgȱ%h2[VGn jws}1"K+/ 1"Ffg 1MI P =7$ {@ <% aEWVW -9f:Gߚ|G&|)Q( s|J#1byqة~p"f䴪ږ+CtHllDBDq-(}[8ڍSlqʦ@bEX ߼ -AVx3ϻ R~ߤȤ3ZCe+Kͼ(, |$#>|?{[t(o!e3V^&.L' 2B:M'`E5CeH7঵7^RUI[&)p\n|VEO]NeB(_Ak"enžaf7ŃL0}@f9QEVkvPW|!UelF@>TeS)t,7!q( C>/>hF<.^U?A䘘l;q?KͅݞN;q?KͅݞN;q?KͅݞNG'BrvNg|U/m(g] 1Qbňg8]*&)7$qx/jxhb:T0aF?QvQR? -m|#Sn*Ig͢$?罠͌!}wsR@{d!-ٖfj.)x5? zTnrW1 jܺ? fcpO7(m3 [@f?Laj)5EOr]?b8(אS_3!XeRj"H9Dpi-\O¶zgѝTCEąeP!𘝃36 mH%d(e'N¶ooZM)[C};ڃ;2ssqyAMG)ےF@9? %wDL`%R-f-4Xk%  ?-I%T̜Ni!D7F3Xq CzY$=k&Q0f3~zN39F7VME\Y1zFN1}{V`EHSLBt-v@_bޏr\,؟"t $/xdΤ3%LnI /+:܋Ѐ[*}+©3%U6Zy*$j\jS.ҿ=1p ,P511 uBrYɁ vrgJ(%I9b[fd!\FGW@F҇E R|nHX`Gl8jsAnﭾD\04:^E\Dezo_}eaqoEN#pEJjj3%*ܞG?S񟔉d,DI-(ٯSX6B! -U -}YNDArmY{&pC29Um8Ycw':MuKр`5Ti=p[I_3Wc_ m"gg6P$W\li<ڡQXgتAV -h$2tZkoYb"bRrw"VI2cXOUt̂MJ29l]=#NŖE/S@kɜ0j;OS8˜oŔఙc!-QLtqׇ{ߝa6ь+ן$xg]܏&Fb)bo8$ -QqMdz86'Y8Rƚ|'@Z)J8?- -IL)&B&(EZ ~P7sk(U8ɽ,tv ;- ۙD^"qRvomY{Bd B`Fgqت`9Y*#X_XS!HCg2|NY+d3e.’1␠D[LMT=2#'C=;q?KͅݞN;q?KͅݞN;q?KͅݞN~XVAףOO`wXPNYg(tdT verhS'%g_V;aJg[bLȘ| -ebkߢ!t®-%'R_ -lk3š$LHK>mߚ@-$-@-[x̱;q?KͅݞNNJ)xqOXA"?1sހ&D` j$:\x;6~ L3+ -\(1?=>J|q&b`D -Q=hv<%sI=.r /'h̬sLȽ!pIOʆ}sD:Q -́W/'7J3Aow=Nj9!IlFҘ!?VC[ bZShط@yOⴥr"nve/fqt*pgeJ}6gSl[ж=r^u S fK~; 3ښy ;`=0I:mae~h 0!_}YZ{$LWMlOgdP%3dLQ4Y:U֕1Dm͈rL=/HT}W۟8ȊKK%dpn<"ݞZ}ZP^f.ޅ?(+ku ?6deq!r5͌UvRR"P/5 xl䔩ݱFo68TF;!~ý¡_wM~\1ezOc53VFnw#ODLT5X9yX1~l'-IKND ", EgṬaj(נE>Mԣ\q9M}{K>LfD8<6S$X0.e̹cc_|K}Ԇw-ɟr[XIm&T^\&#ZbNG:/ -ᢥ>30^Om\:(diXa!LѦ,a -ez=woY28Stܭ=5Cn恅ǰa`r*B9=`ȔT* -J!iF|siL! 7H8L%;T?u%'r}ɖPGj* ư^g ۪4mݹ_T()/kMl.fJ&"E8GU-bxT3ԉX @Rsp-ފ!MSf ӧ,ed]6ͤ~#BklPT Up5h^ ,c! ̗wn|{ΰfyDFbG qb_7R[XMi̡G啎Zk+ڽ 3 / -|ikis K0? -G3wBE (זj`1Ag{"=}G8pD/_]|ɲDҫ@m $=X| ]w5Aqi'bMp&Pp+4Tdĸ%t0w %ȻO' -J/~G̋kOĢR]/F ˦.R',O16%5yI63nn#LBjW(R$va\lSRϾ)= ql)/U}*RLv"m%-w"{H`O?!oM"imj3XѰPB3C8bzJ:Ɛ%Jed\Vc2fًyI«(Ey˜ ]A' !k'lm[pVjk_ ߏL? *PG ++'WRdkM%,ɶiD/0;vw<Ͽfǭ=^ArS~@|! -d?WcqU]w yiQJ)\4'Ix(hVE]L fhbjY'ei7Ii00g?:git7i^=eQ}Jt 0j9op0`+d% gc -7Q[`*!qܚ -yab - /[}c7-biL"Y# R@tD^kq$Niٰ@Дфjïe\U`~zEo*Va ՏC"gB }zy{F(N[}3i49!cvT,|}eNvܠz wcpYˋ9Wޏ6#Ü.")!}ci{;%Au-<[z> - i/ mh=z(QxI۩{A0b}̲0@1PA~/Qpc^\(fo$M@P{|jkjv~?͖uP\7t!Y} U>lc~VDd";oyoZ-Q"Me%s --gs|3Xj0%Ie`^sQұ ;}!$ϵ~H-5گ(Wz^qM)Gc%B7B&-ux#JB+_3VTUת2c@r) -Y>4\>py$Hb#h5m{ ݌40^Y4q~El)y&Ν @ - n%h~W 7_sV :cuGH6')mV'\kZ9'դx3sB6|L j5jLC./ܥHBG{kT?!˿ tF~Eno -˖n:Rqz*l1 ' MoXQs"3Flv'(Aj`PKa)G ؁!q=AS!O\BAYY q_#;e Ѯ90H.[iB#" .}dJssb\R\w D eLֽSFbm- 'mI;q?KͅݞN;q?KͅݞN;q?KͅݞNjF^K}sM_SE"a :hdUEq*Wݴcʂ!Hܐwэb4N5uH 3R-]%y{M~%.Bou8i{ۭH xeKnK˒G1(5 CF*"Ic& ^eH@!~Q^s-)`b&8I|p*J1ݴ$f5#\+_| wN,ʈqPۿS=3;l cNz{ss̕c\7c6hEqCGSGXM4 ]g#$s O/`m1[eabJv~؀+Bd {o_>`!2ٌ"t1sFKZ@d P_!ΪmqL暃x=@OrO"Mb%HԐb L*&qsNDg|jzϹbjʲ9{ ښvo)Q3CR9ȅod?7L;s,Vcyl/Kq[,-!C _ޕEH1: ap ٰ#g3T$ |)^5ǻGdGDnwӈu;Ѫ<`)훹,!^-eXon` ө Ê11.@t/|(x;_wJ᫑|#zO) I#3ZΗ|>ɽ1Pd-q:dI{YH%J62mρF: Op"v d>~Úz.Eʤ_!3' qV'l=hq_EFt-*:a,uV;&k#n~pEC\t2v=6s62;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞNNV\Cgp). -D NEi!rAL(SgTt)V ;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞNK:lڵ&o89:x28#%?mOTMT0t^y+S8HI C0IE m Kr+ͥP*ø|[tL>⪝8udV}40^rgf3ͰgilvdI#?I~ò|'DEcF_xz7:Q>g=5f6܉ذnv -}k76&7\p9#r1=8:C [fzG$ϣ{I?aϡ7`1{ H_j=_w=mh{-RqG}׎$Q2A.t#%GgBDQnXy9jvnw`bڣaW929Y>"6e]"mMf6>$Zj<{ԆghzZ -\{j6ҟ ŜviU<'UT)?NЁJذ@)^,iHOO>ـsi37} I6i1%`~I yn8foA@.koλيyg*jεc]twL=W9mޖ7,r {52"ͫ#t3ij&K>\YWP>ĥe~[ m s.dp}~Qk*+DNS}hUcbh`CT>w;BJ gZ9«rMVJϑy"{1QSՄ=Y,0ry! -+ v74**$S J!7<<>)%2KCmkp1ԋ].t|o\EqCOѬ;Nf|% W{JVB$cqSp{mˁLL* {Nzom%.ٶjT~Րs Io4dO6 {q̽M, ~jrŽ0"SwuV#4򂌤Ѡi;q?KͅݞN;q?KͅݞN;q?KͅݞN/M)S@vMrnM1$Y@C,͌i֐4 d~Y$ֶ'Q&~#Hk!lrx?(: q6ҹj aFa_Y&_YNKy+W%$fҁy n㧒@^3gѶS T2^qԟ'ptiPՊ1ĘOo$jHЍwjߴϩ,DMH%!!`1#ѷ_|-/`40:7oW7s -gDLZ'J1Ur;q?KͅݞNdCRې>ӠzzJFK0ӆ cr'gK@H ߓ-vM`Q"-c0I-s-Ǚa$K$/>~\I TLlUQ4tT<=uVWX]LAIG -%x j7r]=e_ҙr/X__wx+`syh;OCH[H㐹cة gy8hSFP+3;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞNU-(Py%+l(/;q?KͅݞN;q?KͅݞN;q?KͅݞNק - i qݱ鮬{aT) eb~D,7-&3mH@rRİ/$݆o?kp3Qbv.P_aAlw;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN;q?KͅݞN z{{>ؓ/ri+#b?١wQȆhMF@OD`aM TW̯̿5QvL菪-Wy~nVaz =)8#}D?`jfgX%4n@Wh8D'pAgh7} -}ۓ`:,Fb_ Ŷo2'1uM$m e>ǾJ%uKs޻gRB: 1FР+Ojs_458&CE{-tI:"7flSkuo6 öK$F4AMsw4s/[N֥4jp ; Lq4avq3UQUAa8q.Df_452&QJQmJq ˽n~twRNNjaS#%U Qi-=Jɧ93Z y8콚tYUF9 `/\15WCd5 n&Oi 'Љ.n;q?KͅݞN;q?KͅݞN;q?KͅݞNNI{>_&Wy߿C)vFRm)t_XjW6b$Cp#Luf}9ctq(CU=.Kb&;lw۩3G8/%wqe/*yƙX<,XѪ=ẀYxO0\:9dpSt 6&bnuю6cYƜa &/p,nɼix|Ɩ-if.Cjʨ]<|o -BN7e~T]q}"܉dCvÄ,: -LilӦm -KLHguʸ:gcZaiBXuW+y"Dl46wH_bЃKB<&7a> maGSCNZR?#0E(9sVObgdBV::{ &p3%=UM'Ñx?#zŃ_׈pcSm8@JH+~[rHobZpmVī:kz. k -غYYd2MYM/&: ` ؅k<ɏ*36c8\ -攙k՚'vutWYQQ8;OXBeт}]vJ{-&Pw͞4eIЏ{KBx&F%Yn15Gq a{⑁-e%q9~K!T㣰vFwj`9FA^k mZNebqE&]Lw!g' {c^ -z-6 -1uCwYDs}C⢲M7yأd{dInfV'ͦy7lQ#G e^p!5H/1օ5y;ѠFSAm f[s!6 -|ޠ!a=MYZ#%)*넕R8Sm†SZQO-SćmN7-Q0AТGd*ߐb_X!Y|dVO3+huZ!:sw8:LӚb[|1LmD4xN[@IGXP;1;q?KͅݞN;q?KͅݞN;q?KͅݞN?P6wf1A#u00 zWjVoN HMd?PѠHf,w0Qjx&/Ĉ71cl1b|P}Q*  kANJ 8iXѳ2fT6{}h䷌BbƝ BxWY2]'sx"XOAs K=czB94XWcWv)υIkDW;WGԛ x"X@:"x䰀y9nq;hLw\DĖ2%R!-LU~oڽWmZйQ(&"/T$=w`qrA' BTH7 <&}?&nsrm Ÿ tC ~{ rٓ1NZmi.Sk!6XdaN׳DȺ"F-(CIh\V~qAt]"ʾ27N*βQtD+ìe -ÐFla`EK7 -kQx% T]%̭d pK8v4ByZsքsN? -W#P>qA8sTX;V 72lt'܂kQnLf0ĔJiϧ09iG!Ȯ?F6)^8&|  j -,&O^^ J!@Ɍ1֒xh2ryM5V<-)Hb$N'%[[|1LmD4x+PH WE9 "/Ĉ71cl1b|P}Q*  kANJ 8iXѳ2fT6{}h䷌BbƝ BxWY2]'sx"XOAs K=czB94XWcWv)υIkDW;WGԛ x"X@:"x䰀y9nq;hLw\DĖ2%R!-LU~oڽWmZйQ(&"/T$=w`qrA' BTH7 <&}?&nsrm Ÿ t%F{M=W>jpE;r(ǿQX/:kEqzӽm -NAд,G N$w@TX4~ E;r(n%hXJP!frٓ1NZmi.Sk!kV_DSP"=iu1bwO4OJ_<'>s|r 8@-(CIh\V~qAt]"ʾ27N*βQtD+ìe -ÐFla`EK7 -kQx% T]%̭d pK8v4ByZs_Oڛ٧QV\ڗQ ;G\L7| ڽעF`mr3**g$D2H츰 0y ~cAPTmKNB,y8u-0 P3{m1'\h/;X1/(XQ=_DHV_!}~q*O9䑫mjk4؞v<.FVXd3XSL=>_X{ &PJP}_(9Sͳ1!˭ :LfE:BA'Brhs ZPe[).!J-oK 1t쳣z*ĕ#frZF YS45*it8yR T^5,T5F>SW8ëqwہz30/u[8˔ׇ!3M3J -.%/3fMxh:z2~H{딢b@R홿w/qiI)lK`d2jâ;RbZ8bg[ߍQ"ƅɫC}]8^ -]U}*L(JP}_(9Sͳ1!˭ :LfE:BA'Brhs ZPe[).!J-oK 1t쳣:/1*k`>Jk]rC`PaT-(47)ay]RSW8ëqwہz30/u[8˔ׇ!3M3J -.%/3fMxh:z2~H{딢b@R홿w/qiI)lK`d2RD'XH-yMQ0}"Ʋ5@Go<ܙ xn7Qpo;q?KͅݞN;q?KͅݞN;q?KͅݞNҵ%7QI\^@ydB(tBB` KG} ,uAgD)1K -`L"p3Ldx`Ŏ;19,G;ex^~ڬ ھ;т57>vP"}&*g46X~ V_KhQl4"S<|UyἭA??eM\ܖE-{<s|jxWRֵr] 3)Ͻ> v1ĮLh2W鸮ZkyJ&c { -L&h_9 QR{dca[5Žƾ" KbBq| ïqťwdw6z4L'ْTeo^2=/ ^gpQͨLr0ؾ"Ga鞸~)LGaH*Q^27JmS$$ 3^~ih7@M >H7u5=nLB;[Tz_M{2WT1VHPK 3?* !Q3!J+0q|">FZJtۦ5wl1F)*FQ0V_f2Su HJ Bo A0o|AS'N{&\^{a s/ERdPj`vEe1h`HۼQ$­b0uoKhIlYVϱ#^ AJAd_N&\(m;FJ>Ѯ~8YbR=A3RÞW4mK9*SjNliX8Q=FmB ̓V-ʶsH*Q^27JmS$$ 3^~ih7@M >H7u5=nLB;[Tz_M{2WT1VHPK 3?* !Q3!J+0q|">FZJtۦ5wl1FeZ9dm`x,Cğ~#׈5򘍂aV!j<Ps/SpȾ1sY#Bpo{N>KM ڞ TVPANOtËn:OCZ_'S-YE-:sv`i+j]3|AS'N{&\^{a s/ERdPj`vEe1h`HۼQ$­b0uoKhIlYVϱ#^ AJAd_N&\(m;FJ>Ѯ~8YbR=A3RÞW4mK9*SjNliX8Q=FmB ̓V-ʶs`6=ku>kp0`4Fb-z7E]^"Eec*-4ǽ#V>,\$\O"9Ѧ}\ՖؘAWQO%cA!M]bc -5RpM4l&@#)ITډ3 Uy=DZ<=OnVrS. LOvIbpF^82܅}m!}^OƚzX_ެ γ(rmeux c*^,G-<#LP# mŻN}mE\} mev|creq [*i_卾8se®%/PgAVAߴ`e˻%'Cܥ;/MmS<aV!j<Ps/SpȾ1sY#Bpo{N>KM ڞ TVPANOtËn|2OJgE|-q$Ўnw*WM TGy -dӆ{J}(Sڎ08/Nǿ ӝnQ2/9de&@epӃII7S.>Q첓[L:8$O.NMe+O&A}<ճo.C"7}Mt,#hXU,D%8vpsu+-QRCinؕLG PR04#P^Gv~,3&g d2nW_U!*zuUxs7+O_=s~ժ:&]eKJ.ʂS:GOO'$d@?i uٮLoif&|Ɨ4@M{D8KZ߰=c݊u#~gwgqxᱏtM(/Ԟ͒:@?TDk]|/䭎%1lzi\G!#1Ϥ掂˵ BBx-_/ -P&@ibx9wؙ-+=CȢ*#я\bX'e _ E' Q  x-؝e :XKbΖ -L+ӇH\v+zT5 K )<^J&HxR"=E.} M@QxI=|w"D{z<+_lF0K,PBCT#3[cٔAEHC0Ǽ͋H0xlq4 r@O3)5n-ZNOuz%',kG$"G~/ -ԭ祉AY\m$kUI}CQ}ř0l \A9zGvyMx,t+JLՕDi{"Y:c=Gn;0Z4I.+?ʼ1.#t-TgZ"Nފ>qB fwn}AV,ު I\ _ѻ)+wNee \ No newline at end of file From ae4cbc5ae30a2149df872ab2a47fe86ebea3ac26 Mon Sep 17 00:00:00 2001 From: openoms Date: Wed, 27 Mar 2019 12:56:55 +0000 Subject: [PATCH 23/24] update font in console-setup --- dietpi/dietpi.display.sh | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/dietpi/dietpi.display.sh b/dietpi/dietpi.display.sh index 86548ae..37a9fdb 100644 --- a/dietpi/dietpi.display.sh +++ b/dietpi/dietpi.display.sh @@ -119,8 +119,14 @@ if [ "${baseImage}" = "dietpi" ]; then sudo cp ./usr/cmdline.txt /DietPi/ sudo cp ./usr/inittab /etc/ sudo cp ./boot/config-35.txt /DietPi/config.txt + + # revert font change + # based on https://www.raspberrypi-spy.co.uk/2014/04/how-to-change-the-command-line-font-size/ + sudo sed -i 's/FONTFACE="TerminusBold"/FONTFACE="Fixed"/' /etc/default/console-setup + sudo sed -i 's/FONTSIZE="12x24"/FONTSIZE="8x16"/' /etc/default/console-setup + echo "***" - echo "reboot with \`sudo reboot\` to have the LCD working" + echo "reboot with \`sudo reboot\` to make the LCD work" echo "***" exit @@ -130,7 +136,7 @@ if [ "${baseImage}" = "dietpi" ]; then # based on http://www.lcdwiki.com/3.5inch_HDMI_Display-B git clone https://github.com/goodtft/LCD-show.git - chmod -R 755 LCD-show + sudo chmod -R 755 LCD-show cd LCD-show/ #sudo ./MPI3508-show sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf @@ -140,8 +146,13 @@ if [ "${baseImage}" = "dietpi" ]; then sudo cp -rf ./usr/99-fbturbo.conf-HDMI /usr/share/X11/xorg.conf.d/99-fbturbo.conf sudo mkdir -p /etc/X11/xorg.conf.d sudo cp -rf ./usr/99-calibration.conf-3508 /etc/X11/xorg.conf.d/99-calibration.conf + + # based on https://www.raspberrypi-spy.co.uk/2014/04/how-to-change-the-command-line-font-size/ + sudo sed -i 's/FONTFACE="Fixed"/FONTFACE="TerminusBold"/' /etc/default/console-setup + sudo sed -i 's/FONTSIZE="8x16"/FONTSIZE="12x24"/' /etc/default/console-setup + echo "***" - echo "reboot with \`sudo reboot\` to have the LCD working" + echo "reboot with \`sudo reboot\` to make the LCD work" echo "***" exit @@ -152,6 +163,12 @@ if [ "${baseImage}" = "dietpi" ]; then # based on http://www.raspberrypiwiki.com/index.php/3.5_inch_TFT_800x480@60fps echo "--> LCD ALTERNATIVE" + + # revert font change + # based on https://www.raspberrypi-spy.co.uk/2014/04/how-to-change-the-command-line-font-size/ + sudo sed -i 's/FONTFACE="TerminusBold"/FONTFACE="Fixed"/' /etc/default/console-setup + sudo sed -i 's/FONTSIZE="12x24"/FONTSIZE="8x16"/' /etc/default/console-setup + cd /DietPi sudo wget http://www.raspberrypiwiki.com/download/RPI-HD-35-INCH-TFT/dt-blob-For-3B-plus.bin sudo mv dt-blob-For-3B-plus.bin dt-blob.bin From 78da20c46bf0ba7013dde05a0f75ddb3905fbbf5 Mon Sep 17 00:00:00 2001 From: openoms Date: Sun, 31 Mar 2019 12:58:10 +0100 Subject: [PATCH 24/24] make LCD screen rotation correct on DietPi --- build_sdcard.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/build_sdcard.sh b/build_sdcard.sh index 8924c95..001ef98 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -532,6 +532,15 @@ if [ "${baseImage}" = "raspbian" ]; then sudo bash -c 'echo "SCRIPT=/home/admin/00infoLCD.sh" >> /home/pi/.bashrc' sudo bash -c 'echo "# replace shell with script => logout when exiting script" >> /home/pi/.bashrc' sudo bash -c 'echo "exec \$SCRIPT" >> /home/pi/.bashrc' + + # create /home/admin/setup.sh - which will get executed after reboot by autologin pi user + cat > /home/admin/setup.sh <> /home/dietpi/.bashrc' fi -# create /home/admin/setup.sh - which will get executed after reboot by autologin pi user -cat > /home/admin/setup.sh <