From fcf3b4e4e2625327e27f679c144d315e31193e6e Mon Sep 17 00:00:00 2001 From: jacobsalmela Date: Sat, 23 Jan 2016 11:48:12 -0600 Subject: [PATCH 1/5] file to set lcd font size --- advanced/console-setup | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 advanced/console-setup diff --git a/advanced/console-setup b/advanced/console-setup new file mode 100644 index 00000000..f12be6eb --- /dev/null +++ b/advanced/console-setup @@ -0,0 +1,17 @@ +# CONFIGURATION FILE FOR SETUPCON + +# Consult the console-setup(5) manual page. + +ACTIVE_CONSOLES="/dev/tty[1-6]" + +CHARMAP="UTF-8" + +# For best results with the Adafruit 2.8 LCD and Pi-hole's chronometer +CODESET="guess" +FONTFACE="Terminus" +FONTSIZE="10x20" + +VIDEOMODE= + +# The following is an example how to use a braille font +# FONT='lat9w-08.psf.gz brl-8x8.psf' From 71fd32b1f4396b34230e975ff6792766ed2d166c Mon Sep 17 00:00:00 2001 From: jacobsalmela Date: Sat, 23 Jan 2016 12:56:27 -0600 Subject: [PATCH 2/5] script to set everything up --- advanced/Scripts/setupLCD.sh | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 advanced/Scripts/setupLCD.sh diff --git a/advanced/Scripts/setupLCD.sh b/advanced/Scripts/setupLCD.sh new file mode 100644 index 00000000..bfcd0fc5 --- /dev/null +++ b/advanced/Scripts/setupLCD.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +# Pi-hole: A black hole for Internet advertisements +# by Jacob Salmela +# Network-wide ad blocking via your Raspberry Pi +# +# (c) 2015 by Jacob Salmela +# This file is part of Pi-hole. +# +# Pi-hole is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# pi-hole.net/donate + +getInitSys() { + if command -v systemctl > /dev/null && systemctl | grep -q '\-\.mount'; then + SYSTEMD=1 + elif [ -f /etc/init.d/cron ] && [ ! -h /etc/init.d/cron ]; then + SYSTEMD=0 + else + echo "Unrecognised init system" + return 1 + fi +} + +autoLoginPiToConsole() { + if [ -e /etc/init.d/lightdm ]; then + if [ $SYSTEMD -eq 1 ]; then + $SUDO systemctl set-default multi-user.target + $SUDO ln -fs /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service + else + $SUDO update-rc.d lightdm disable 2 + $SUDO sed /etc/inittab -i -e "s/1:2345:respawn:\/sbin\/getty --noclear 38400 tty1/1:2345:respawn:\/bin\/login -f pi tty1 <\/dev\/tty1 >\/dev\/tty1 2>&1/" + fi + fi +} + + +getInitSys +# Set pi to log in automatically +autoLoginPiToConsole + +# Set chronomter to run automatically when pi logs in +$SUDO echo /usr/local/bin/chronometer.sh >> /home/pi/.bashrc + +# Back up the original file and download the new one +$SUDO mv /etc/default/console-setup /etc/default/console-setup.orig +$SUDO curl -o /etc/default/console-setup https://raw.githubusercontent.com/pi-hole/pi-hole/master/advanced/console-setup + +# Instantly apply the font change to the LCD screen +$SUDO setupcon + +$SUDO /usr/local/bin/chronometer.sh From 3142992c573e564e4fabeac8ea0c32c04bc14f95 Mon Sep 17 00:00:00 2001 From: jacobsalmela Date: Sun, 14 Feb 2016 10:53:13 -0600 Subject: [PATCH 3/5] update --- advanced/Scripts/setupLCD.sh | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/advanced/Scripts/setupLCD.sh b/advanced/Scripts/setupLCD.sh index bfcd0fc5..00e3a3f8 100644 --- a/advanced/Scripts/setupLCD.sh +++ b/advanced/Scripts/setupLCD.sh @@ -1,17 +1,21 @@ #!/usr/bin/env bash # Pi-hole: A black hole for Internet advertisements -# by Jacob Salmela -# Network-wide ad blocking via your Raspberry Pi -# # (c) 2015 by Jacob Salmela -# This file is part of Pi-hole. +# Network-wide ad blocking via your Raspberry Pi +# http://pi-hole.net +# Automatically configures the Pi to use the 2.8 LCD screen to display stats on it (also works over ssh) # # Pi-hole is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. -# pi-hole.net/donate +# Set up the LCD screen based on Adafruits instuctions +curl -SLs https://apt.adafruit.com/add-pin | sudo bash +sudo apt-get -y install raspberrypi-bootloader +sudo apt-get -y install adafruit-pitft-helper + +# Borrowed from somewhere. Will update when I find it. getInitSys() { if command -v systemctl > /dev/null && systemctl | grep -q '\-\.mount'; then SYSTEMD=1 @@ -23,6 +27,7 @@ getInitSys() { fi } +# Borrowed from somewhere. Will update when I find it. autoLoginPiToConsole() { if [ -e /etc/init.d/lightdm ]; then if [ $SYSTEMD -eq 1 ]; then @@ -37,6 +42,7 @@ autoLoginPiToConsole() { getInitSys + # Set pi to log in automatically autoLoginPiToConsole @@ -50,4 +56,5 @@ $SUDO curl -o /etc/default/console-setup https://raw.githubusercontent.com/pi-ho # Instantly apply the font change to the LCD screen $SUDO setupcon +# Start chronometer after the settings are applues $SUDO /usr/local/bin/chronometer.sh From 0116b6341c3c4955f2e9f5bb97445219a200112b Mon Sep 17 00:00:00 2001 From: jacobsalmela Date: Sat, 20 Feb 2016 01:14:48 -0600 Subject: [PATCH 4/5] updated script Added links to where code was borrowed from added reboot at the end also added a few things commented out that might be useful for some people to learn. --- advanced/Scripts/setupLCD.sh | 53 ++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/advanced/Scripts/setupLCD.sh b/advanced/Scripts/setupLCD.sh index 00e3a3f8..df2be704 100644 --- a/advanced/Scripts/setupLCD.sh +++ b/advanced/Scripts/setupLCD.sh @@ -10,12 +10,25 @@ # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. -# Set up the LCD screen based on Adafruits instuctions -curl -SLs https://apt.adafruit.com/add-pin | sudo bash -sudo apt-get -y install raspberrypi-bootloader -sudo apt-get -y install adafruit-pitft-helper +############ FUNCTIONS ########### +# Run this script as root or under sudo +echo ":::" +if [[ $EUID -eq 0 ]];then + echo "::: You are root." +else + echo "::: sudo will be used." + # Check if it is actually installed + # If it isn't, exit because the install cannot complete + if [[ $(dpkg-query -s sudo) ]];then + export SUDO="sudo" + else + echo "::: Please install sudo or run this script as root." + exit 1 + fi +fi -# Borrowed from somewhere. Will update when I find it. +# Borrowed from adafruit-pitft-helper < borrowed from raspi-config +# https://github.com/adafruit/Adafruit-PiTFT-Helper/blob/master/adafruit-pitft-helper#L324-L334 getInitSys() { if command -v systemctl > /dev/null && systemctl | grep -q '\-\.mount'; then SYSTEMD=1 @@ -27,7 +40,8 @@ getInitSys() { fi } -# Borrowed from somewhere. Will update when I find it. +# Borrowed from adafruit-pitft-helper: +# https://github.com/adafruit/Adafruit-PiTFT-Helper/blob/master/adafruit-pitft-helper#L274-L285 autoLoginPiToConsole() { if [ -e /etc/init.d/lightdm ]; then if [ $SYSTEMD -eq 1 ]; then @@ -40,14 +54,26 @@ autoLoginPiToConsole() { fi } - -getInitSys - +######### SCRIPT ########### # Set pi to log in automatically +getInitSys autoLoginPiToConsole # Set chronomter to run automatically when pi logs in -$SUDO echo /usr/local/bin/chronometer.sh >> /home/pi/.bashrc +echo /usr/local/bin/chronometer.sh >> /home/pi/.bashrc +# OR +#$SUDO echo /usr/local/bin/chronometer.sh >> /etc/profile + +# Set up the LCD screen based on Adafruits instuctions: +# https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/easy-install +curl -SLs https://apt.adafruit.com/add-pin | $SUDO bash +$SUDO apt-get -y install raspberrypi-bootloader +$SUDO apt-get -y install adafruit-pitft-helper +$SUDO adafruit-pitft-helper -t 28r + +# Download the cmdline.txt file that prevents the screen from going blank after a period of time +$SUDO mv /boot/cmdline.txt /boot/cmdline.orig +$SUDO curl -o /boot/cmdline.txt https://raw.githubusercontent.com/pi-hole/pi-hole/master/advanced/cmdline.txt # Back up the original file and download the new one $SUDO mv /etc/default/console-setup /etc/default/console-setup.orig @@ -56,5 +82,8 @@ $SUDO curl -o /etc/default/console-setup https://raw.githubusercontent.com/pi-ho # Instantly apply the font change to the LCD screen $SUDO setupcon -# Start chronometer after the settings are applues -$SUDO /usr/local/bin/chronometer.sh +$SUDO reboot + +# Start showing the stats on the screen by running the command on another tty: +# http://unix.stackexchange.com/questions/170063/start-a-process-on-a-different-tty +#setsid sh -c 'exec /usr/local/bin/chronometer.sh <> /dev/tty1 >&0 2>&1' From c5d45edf2d93fcd68a31c80fc44078958e754e76 Mon Sep 17 00:00:00 2001 From: jacobsalmela Date: Sat, 20 Feb 2016 01:15:14 -0600 Subject: [PATCH 5/5] consoleblank=0 This makes sure the LCD screen does not go blank after a set period of time. --- advanced/cmdline.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 advanced/cmdline.txt diff --git a/advanced/cmdline.txt b/advanced/cmdline.txt new file mode 100644 index 00000000..84d52b79 --- /dev/null +++ b/advanced/cmdline.txt @@ -0,0 +1 @@ +dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fbcon=map:10 fbcon=font:VGA8x8 consoleblank=0