From fb315b843aba6421c72d0fad3d6c2bcb65aee967 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Sat, 31 May 2025 16:49:01 +0200 Subject: [PATCH] docs --- README.md | 34 ++++++++++++++++++++ legacy/config.txt | 69 +++++++++++++++++++++++++++++++++++++++++ legacy/counter | Bin 0 -> 21628 bytes legacy/counter.cfg | 9 ++++++ legacy/counter.service | 17 ++++++++++ 5 files changed, 129 insertions(+) create mode 100755 legacy/config.txt create mode 100755 legacy/counter create mode 100644 legacy/counter.cfg create mode 100644 legacy/counter.service diff --git a/README.md b/README.md index c5c0d76..efa611b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,36 @@ # counter +## Preparation + + +Update: + +``` +apt update +apt upgrade +apt autoremove +``` + + +Purge everything not required: + +``` +apt purge triggerhappy bluez wpasupplicant modemmanager avahi-daemon +apt autoremove +``` + +Disable Bluetooth and WiFi at boot, put these lines in `/boot/firmware/config.txt`: + +``` +dtoverlay=disable-wifi +dtoverlay=disable-bt +``` + +Install build chain and kernel headers: + +``` +apt install build-essential raspberrypi-kernel-headers git +``` + + + diff --git a/legacy/config.txt b/legacy/config.txt new file mode 100755 index 0000000..8c5e3e2 --- /dev/null +++ b/legacy/config.txt @@ -0,0 +1,69 @@ +# For more options and information see +# http://rpf.io/configtxt +# Some settings may impact device functionality. See link above for details + +# uncomment if you get no picture on HDMI for a default "safe" mode +#hdmi_safe=1 + +# uncomment this if your display has a black border of unused pixels visible +# and your display can output without overscan +#disable_overscan=1 + +# uncomment the following to adjust overscan. Use positive numbers if console +# goes off screen, and negative if there is too much border +#overscan_left=16 +#overscan_right=16 +#overscan_top=16 +#overscan_bottom=16 + +# uncomment to force a console size. By default it will be display's size minus +# overscan. +#framebuffer_width=1280 +#framebuffer_height=720 + +# uncomment if hdmi display is not detected and composite is being output +#hdmi_force_hotplug=1 + +# uncomment to force a specific HDMI mode (this will force VGA) +#hdmi_group=1 +#hdmi_mode=1 + +# uncomment to force a HDMI mode rather than DVI. This can make audio work in +# DMT (computer monitor) modes +#hdmi_drive=2 + +# uncomment to increase signal to HDMI, if you have interference, blanking, or +# no display +#config_hdmi_boost=4 + +# uncomment for composite PAL +#sdtv_mode=2 + +#uncomment to overclock the arm. 700 MHz is the default. +#arm_freq=800 + +# Uncomment some or all of these to enable the optional hardware interfaces +#dtparam=i2c_arm=on +#dtparam=i2s=on +dtparam=spi=on + +# Uncomment this to enable infrared communication. +#dtoverlay=gpio-ir,gpio_pin=17 +#dtoverlay=gpio-ir-tx,gpio_pin=18 + +# Additional overlays and parameters are documented /boot/overlays/README + +# Enable audio (loads snd_bcm2835) +dtparam=audio=on + +[pi4] +# Enable DRM VC4 V3D driver on top of the dispmanx display stack +dtoverlay=vc4-fkms-v3d +max_framebuffers=2 + +[all] +#dtoverlay=vc4-fkms-v3d + +dtoverlay=pi3-disable-wifi +dtoverlay=pi3-disable-bt + diff --git a/legacy/counter b/legacy/counter new file mode 100755 index 0000000000000000000000000000000000000000..cf94e4addbd99fc0c0a241f6a18227d33e4d2655 GIT binary patch literal 21628 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 literal 0 HcmV?d00001 diff --git a/legacy/counter.cfg b/legacy/counter.cfg new file mode 100644 index 0000000..0d13827 --- /dev/null +++ b/legacy/counter.cfg @@ -0,0 +1,9 @@ +led = "on" + +sinkServer = "sink.hottis.de" +sinkPort = 20169 + +deviceId = "MainsCnt03" +// sharedSecret has to have exactly 31 octets +sharedSecret = "Wmxp**QwHxz#!6RaSSZK#AU7mdie#v*" + diff --git a/legacy/counter.service b/legacy/counter.service new file mode 100644 index 0000000..3c3456f --- /dev/null +++ b/legacy/counter.service @@ -0,0 +1,17 @@ +[Unit] +Description=MainsFreqCounter +Wants=network-online.target +After=network-online.target + + +[Service] +Type=simple +ExecStart=/opt/sbin/counter +Restart=on-failure +WorkingDirectory=/tmp + +[Install] +Alias=Counter +WantedBy=multi-user.target + +