buster

Raspbian Buster Static IP

Written by  on Januar 31, 2021

Statische IP Adresse auf dem WLAN Interface konfigurieren ist seltsam.
Und irgendwie ändert sich das zumindest gefühlt mit jeder Version.

Hier eine hübsche Variante ohne den dhcpcd zu deaktivieren, wie früher von mir vorgeschlagen.

vim.tiny /etc/dhcpcd.conf

interface wlan0
static ip_address=192.168.XXX.XXX/24
static routers=192.168.XXX.XXX
static domain_name_servers=192.168.XXX.XXX

Quelle: Raspberry: Raspbian Buster static IP | feste IP Vergeben – dhcpcd.conf

Raspberry Pi 4 als USB Stick

Written by  on Juni 10, 2020

Ich suche mindestens seit 2016, Solarfocus Bedienteil, nach einem Gerät, dass sich auf der einen Seite wie ein USB Stick verhält und auf der anderen Seite Daten ins Netzwerk schicken kann. Idealerweise über WLAN.
c’t 2020, Heft 10, S.136ff, Voll aufgebohrt, USB-C-Anschluss des Raspberry Pi 4 ausnutzen, präsentiert die Lösung für das Problem.
Man braucht zuerst einen Raspberry Pi 4 mit Raspbian buster.

# /boot/config.txt
# Device Tree Overlay laden
# im Abschnitt [pi4]
dtoverlay=dwc2
# /etc/modules
# Eröffnet die Konfiguration via SysFS
# Am Ende anhängen
libcomposite

Pi neu starten.
Es wird ein Image von einem USB Stick mit vFAT Dateisystem benötigt. Am einfachsten in Windows formatieren und ein Image mit Win32DiskImager erstellen. 2 GB sollten reichen. Ablegen am Pi unter /media/usbdisk.img.
Die Details kommen aus dem Script initgadget der c’t (Download Link oben!).
Ich habe es soweit gekürzt, dass nur der USB Stick emuliert wird. Zu Beginn wird noch das Image vom USB Stick zum Mounten auf der Pi-Seite vorbereitet. Der Teil muss passieren, bevor ein Lock durch die Gegenstelle passiert.

# /usr/local/sbin/initgadget
losetup -o 32256 /dev/loop0 /media/usbdisk.img
cd /sys/kernel/config/usb_gadget/
mkdir -p pi4
cd pi4
echo 0x1d6b > idVendor
echo 0x0104 > idProduct
echo 0x0100 > bcdDevice
echo 0x0200 > bcdUSB
echo 0xEF > bDeviceClass
echo 0x02 > bDeviceSubClass
echo 0x01 > bDeviceProtocol
mkdir -p strings/0x409
cat /sys/firmware/devicetree/base/serial-number > strings/0x409/serialnumber
echo "Raspberry Pi Foundation" > strings/0x409/manufacturer
echo "Raspberry Pi 4" > strings/0x409/product
mkdir -p configs/c.1/strings/0x409
echo 250 > configs/c.1/MaxPower
echo "Config 1: USB Gadget" > configs/c.1/strings/0x409/configuration
mkdir -p functions/mass_storage.usb0
echo 1 > functions/mass_storage.usb0/stall
echo 0 > functions/mass_storage.usb0/lun.0/removable
echo 0 > functions/mass_storage.usb0/lun.0/cdrom
echo 0 > functions/mass_storage.usb0/lun.0/ro
echo 0 > functions/mass_storage.usb0/lun.0/nofua
echo /media/usbdisk.img > functions/mass_storage.usb0/lun.0/file
ln -s functions/mass_storage.usb0 configs/c.1/
udevadm settle -t 5 || :
ls /sys/class/udc > UDC
# Die Initialisierung als Service aktivieren
/etc/systemd/system/initgadget.service
[Unit]
Description=Raspi 4 USB Gadget
DefaultDependencies=yes

[Service]
Type=simple
ExecStart=/usr/local/sbin/initgadget

[Install]
WantedBy=local-fs.target
#----
cp initgadget.service /etc/systemd/system/
systemctl enable initgadget.service
systemctl start initgadget.service

Jetzt kann man das ausprobieren, indem man den Pi an einen Windows Rechner hängt.

Der „USB Stick“ taucht im Device Manager auf. Man kann ein Test File anlegen.

Dann am Pi mounten

/bin/mount -o ro /dev/loop0  /mnt

Und die Daten auslesen

Es sei darauf hingewiesen, dass man am Pi jetzt besser nichts zurückschreibt ins Image. FAT ist kein Dateisystem dass für gleichzeitige Zugriffe von verschiedenen Rechnern ausgelegt ist. Daher würde ich am Pi nur Read-only mounten. Und immer wenn man die aktuellen Daten verwenden will, neu mounten.

Upgrade to Raspbian Buster

Written by  on Januar 5, 2020

Falls noch jemand das Upgrade von Raspbian Lite auf Buster nicht durchgeführt hat:
pimylifeup.com/upgrade-raspbian-stretch-to-raspbian-buster

PI Setup Buster

Written by  on Juli 15, 2019

Das ist eine Forsetzung zu PI Setup, aber aktualisiert auf Raspbian Buster.

Win32 Imager
Download Link für Image (Version & Kernel)

Einstellungen am PI:

  1. Deutsche Tastatur
  2. Statische IP
    static ip config am eth0
    /etc/network/interfaces.d/eth0

    auto eth0
    allow-hotplug eth0
    iface eth0 inet static
    address 10.0.XXX.XXX
    netmask 255.255.255.0
    gateway 10.0.XXX.XXX
    dns-nameservers 127.0.0.1
    
  3. SSH aktivieren
    service ssh start
    systemctl enable ssh
    
  4. DHCP Client deaktivieren
    service dhcpcd stop
    systemctl disable dhcpcd
    
  5. # Buster ist noch so neu, man muss bestätigen, dass es OK ist, dass sich das Repository von Testing auf Stable geändert hat
    apt-get update --allow-releaseinfo-change
    apt-get update
    apt-get upgrade
    # nicht einmal das DIG Command ist im Image dabei
    apt-get install dnsutils
    
  6. Pihole setup
  7. Pi-hole mit rekursivem Nameserver
  8. interne DNS Zone aufbauen