Schlagwort-Archive: Linux

BitBastelei #485 – Grocy: Übersicht im Kühlschrank

BitBastelei #485 - Grocy: Übersicht im Kühlschrank

(301 MB) 00:45:21

2022-04-17 10:00 🛈

Den Überblick über sein Lager zu haben ist immer ein aufwändiges, aber notwendiges unterfangen. Was für Elektrobauteile gilt, kann auch für Mehltüten & Co nicht verkehrt sein. Wie viel noch herumliegt hilft dabei Einkäufe besser zu planen und eine Liste was wann abläuft hilft dabei die heimische Schimmelzucht zu verhindern. In diese Lücke schlägt die Software “Grocy” und verspricht dies und noch viel mehr zu lösen.

Inhalt

  • 00:00 Meine Anforderungen
  • 01:38 Früher: Artikelverwaltung/Produktenkontrolle
  • 02:55 Technischer Aufbau
  • 04:55 Funktionen
  • 06:26 Installationsarten
  • 08:37 Manuelle Installation
    • 12:23 Config Anlegen und anpassen
    • 13:33 Dateirechte und Webserver-Einrichtung
  • 17:04 Erster Login
  • 18:00 Standorte, Geschäfte, Einheiten & Co
  • 21:01 Produktinformationen pflegen
  • 28:21 Einkaufen
  • 31:35 Bestandsliste
  • 34:28 Einkaufszettel
  • 35:10 Verbrauchen
  • 36:39 Inventur
  • 36:55 Rezeptverwaltung und Essensplanung
  • 40:45 Tipp: Selbst online testen
  • 42:13 Tipp: Apps und Barcodefunktion
  • 43:34 Fazit

Fehler und Ergänzungen

  • Benötigte PHP-Module: fileinfo, pdo_sqlite, gd, ctype, json, intl, zlib, mbstring, filter, iconv, tokenizer
  • 22:43 Achtung: Nach dem ersten Kauf kann man die Mengeneinheit z.Zt. nicht mehr ändern!

Links zum Thema

Absichtliche Latenz für Pulseaudio

Wieder einmal stoße ich an eigentlich einfache Dinge, die dank Closed-Source aber etwas komplizierter sind: Ich möchte Youtube-Videos von meinem Laptop auf dem Fernseher schauen. Hierzu nutze ich üblicherweise einen Chromecast, welcher sich per Chrom[e|ium] oder Smartphone bedienen lässt. Nun hatte ich jedoch den Wunsch nur Bild zu übertragen, den Ton aber am lokal angebundenen Bluetooth-Kopfhöhrer zu behalten. Das ist so leider nicht vorgesehen, also bleibt nur Improvisation.

Für das Bild ist das schnell erledigt: Ein ungenutzter HDMI-Port wird kurzerhand eingeschaltet und per Chrome geteilt, so wird verhindert, dass der Chromecast auf die interne App zurückfällt. Der Ton bleibt so ebenfalls lokal verfügbar, aber nicht Synchron. Durch die Übertragung ist das bild knapp eine Sekunde hinterher.

Also muss das Audiosignal des Browsers absichtlich verzögert werden. Pavucontrol bietet hierzu eine Latenzeinstellung, dessen Funktion ist jedoch von der verwendeten Soundhardware abhängig. In meinem Fall konnte ich unabhängig der Einstellung keine Latenz feststellen.

Abhilfe schafft die Konsole und ein Tipp von Thomas auf Stackexchange. Es wird ein Dummy-Gerät registriert, welches vom Browser als Ziel genutzt werden kann. Dieses wiederum wird als loopback wieder an das korrekte Ausgabegerät angehangen. Den passenden Namen der Ausgabe findet man mit pactl list cards. Da hier alles in Software emuliert wird, sind nun die Latenzangaben funktionsfähig.

pactl load-module module-null-sink sink_name=delay
pactl load-module module-loopback latency_msec=2000 source=delay.monitor sink=alsa_card.pci-0000_00_1f.3.analog-stereo

Deutlich komplexer als ein HDMI-Kabel, aber was tut man nicht Alles um nicht das passende Kabel suchen gehen zu müssen…

BitBastelei #349 – VPN mit Wireguard

BitBastelei #349 - VPN mit Wireguard

(186 MB) 00:37:55

2019-09-08 10:00 🛈

In perfekten Netzen könnte jeder mit jedem kommunizieren, in der Praxis sieht es oft anders aus. Mittels VPN kann man ein “virtuelles Netzwerkkabel” zwischen zwei PCs oder Routern aufbauen. Eine solche VPN-Software ist Wireguard, welches für alle gängigen Betriebssysteme verfügbar und vergleichsweise einfach einzurichten ist.

Inhalt

  • 00:10 Was ist ein VPN
  • 05:42 Klassische VPN-Lösungen
  • 08:26 Wireguard
  • 10:04 Installation & Konfiguration unter Debian Linux (CLI)
  • 18:00 Installation & Konfiguration unter Arch Linux (CLI)
  • 24:45 Zugriff auf’s Internet: Forwarding & NAT
  • 27:51 Installation & Konfiguration unter Arch Linux (NetworkManager)
  • 29:59 Installation & Konfiguration unter Windows
  • 32:30 Installation & Konfiguration unter Android

Links

BitNotice #145 – Inkscape-Standardeinstellungen ändern

BitNotice #145 - Inkscape-Standardeinstellungen ändern

(9 MB) 00:01:48

2019-03-27 17:30 🛈

Inkscape präsentiert bei jedem Öffnen erst mal ein DIN A4-Blatt – nicht gerade hilfreich, wenn man eher mit anderen Formaten wie z.B. dem bei Videos verbreiteten 16:9 arbeitet. Einen offensichtlichen Weg um die Vorgaben zu ändern scheint es nicht zu geben, mit etwas Wissen zur korrekten Schraube lässt sich das Ziel dennoch erreichen.

  • *nix: ~/.config/­inkscape/
  • Windows: %userprofile%\­Application Data\­Inkscape\

BitBastelei #277 – PXE: PCs ohne HDD über Netzwerk starten (Arch, ISOs, etc)

BitBastelei #277 - PXE: PCs ohne HDD über Netzwerk starten (Arch, ISOs, etc)

(311 MB) 00:41:34

2018-03-25 10:00 🛈
Wenn man einen PC startet lädt dieser das Betriebssystem von der internen Festplatte oder SSD – oder bei Installationen von einer CD bzw. einem USB-Stick. Fast alle modernen PCs beherrschen aber noch eine Methode: PXE. Hiermit lassen sich Rechner ganz ohne lokale Medien von einem zentralen Server starten. Dies kann z.B . eine NAS oder ein OpenWRT-Router sein. Mit passenden Menüs hat man so alle gängigen Rettungssysteme und Installationsmedien immer zur Hand und muss nicht die passenden Sticks suchen.

Weiterführende Links:

BitBasics – ESP8266 – 1b: Arduino Installation und Einrichtung unter Linux

BitBasics - ESP8266 - 1b: Arduino Installation und Einrichtung unter Linux

(34 MB) 00:09:03

2018-02-25 11:30 🛈
Um mit dem ESP8266 zu starten benötigen wir eine Programmierumgebung. In meiner Serie werde ich auf Arduino aufbauen, eine der verbreitetsten Systeme für den ESP und viele andere Mikrocontroller. In diesem Video zeige ich die Installation der Arduino-Umgebung und der nötigen Zusätze für den ESP8266 unter Ubuntu Linux. Weiterhin gebe ich einige Tipps, wie die Einrichtung auch unter anderen Linux-Distributionen funktionieren sollte.

Links:

Linux: Optisches Laufwerk RAW über Netzwerk einbinden

(Hinweis: Der Artikel lag schon etwas rum – möglicherweise sind die verwendeten Tools nicht mehr aktuell)

Hmmm – ungünstig. Das einzige optische Laufwerk steckt in einem Linux-Server, ich möchte die Discs jedoch auf einem anderen Gerät verwenden. Üblicherweise reicht hier ein File-Share wie Samba, NFS o.Ä. aus, wenn man jedoch beispielsweise kopiergeschützte DVDs abspielen möchte ist eine solche Freigabe nicht ausreichend. Glücklicherweise können wir hier einen alten Bekannten bemühen: iSCSI. Dies hatten wie bereits für Festplatten besprochen, kann aber auch für optische Laufwerke genutzt werden.

Server / Target

Nach dem Aufruf von targetcli sollten wir die altbekannte Textkonsole erhalten, welche auf der Root (/) der Konfiguration startet. Im ersten Schritt registrieren wir das physikalische Laufwerk /dev/sr0 als Backstore und aktivieren es für iSCSI. Sofern nicht bereits vorhanden wird automatisch eine TPG erzeugt.

/> cd backstores/pscsi
/backstores/pscsi> create name=cdrom_backend dev=/dev/sr0
Note: block backstore recommended for SCSI block devices
Created pscsi storage object cdrom_backend using /dev/sr0
/backstores/pscsi> cd cdrom_backend
/backstores/p...cdrom_backend> /iscsi create
Created target iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

Nun müssen wir noch eine LUN erstellen um Clients den Zugriff zum Gerät zu ermöglichen. Diese Konfiguration findet im Kontext der TPG statt, die nötige ID wurde ja weiter oben angezeigt. Da nur ein Backstore verfügbar ist wird dieser automatisch ausgewählt. Da es sich um ein Testnetz handelt verzichte ich auf eine Absicherung und alle alle Clients zu – bei CD-Laufwerken ein überschaubares Risiko.

/backstores/p...cdrom_backend> cd /iscsi/iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b/tpg1/
/iscsi/iqn.20...e8a7999b/tpg1> cd luns
/iscsi/iqn.20...99b/tpg1/luns> create /backstores/pscsi/cdrom_backend
Created LUN 0.
/iscsi/iqn.20...99b/tpg1/luns> cd ..
/iscsi/iqn.20...e8a7999b/tpg1> set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1 cache_dynamic_acls=1
Parameter cache_dynamic_acls is now '1'.
Parameter authentication is now '0'.
Parameter generate_node_acls is now '1'.
Parameter demo_mode_write_protect is now '0'.
/iscsi/iqn.20...e8a7999b/tpg1>

Zuletzt wird die Konfiguration gespeichert, so ist sie z.B. auch nach einem Neustart noch vorhanden

/iscsi/iqn.20...e8a7999b/tpg1> cd /
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

Client / Initiator

Auf der Clientseite benötigen wir ebenfalls eine Userspace-Software. Ich nutze zur Konfiguration iscsiadm aus dem Paket open-iscsi. Hier wird erst über Discover geprüft welche LUNs auf der TPG/Ziel-IP verfügbar sind. Über Login werden diese dann verbunden.

# iscsiadm --mode discoverydb --type sendtargets --portal 10.11.12.13 --discover
10.11.12.13:3260,1 iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b
# iscsiadm --mode node --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b, portal: 10.11.12.13,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b, portal: 10.11.12.13,3260] successful.

Das Ergebnis ist ein zusätzliches Blockdevice, welches wie ein Lokales angesteuert werden kann.

# dmesg | tail
[269195.457603] Loading iSCSI transport class v2.0-870.
[269196.464444] iscsi: registered transport (tcp)
[269243.373172] scsi host5: iSCSI Initiator over TCP/IP
[269243.636444] scsi 5:0:0:0: CD-ROM TSSTcorp DVD+-RW TS-H653B D300 PQ: 0 ANSI: 5
[269243.668795] sr 5:0:0:0: [sr1] scsi-1 drive
[269243.669219] sr 5:0:0:0: Attached scsi CD-ROM sr1

 

BTRFS: Dateisystem mit mehreren Festplatten vergrößern

Das ist jetzt doof – Platte voll. Und das auf einem Multi-Device/RAID BTRFS-System. Die unterliegenden LUNs zu vergrößern ist kein wirkliches Problem, aber btrfs zeigte sich etwas widerspenstig: Die meisten Anleitungen empfehlen folgendes:
btrfs filesystem resize max /mnt/data

Leider scheint es bei multi-device keine reaktion zu geben. Der Trick: Dieser Befehl lässt nur die erste Festplatte wachsen. Hat man mehrere muss man den Befehl für jede LUN separat ausführen, die Plattennummer wird dabei als ID mitgegeben:
btrfs filesystem resize 2:max /mnt/data

Die IDs aller beteiligten Platten kann man mit

btrfs filesystem show /mnt/data
anzeigen. Wurden alle Platten vergrößert kann man natürlich auch eine bash-Schleife bemühen um den Befehl für alle abzusetzen.
for i in {1..8} ;do btrfs filesystem resize $i:max /mnt/data/ ;done

Linux: Gerät wacht nach Suspend sofort wieder auf

Narf. Akku leer. Nur warum?
Tja, mein Laptop hatte sich entschieden nach meinem Klick auf “Suspend” sofort wieder aus dem Standby-Modus aufzuwachen. Reproduzierbar. Erste Vermutung: Die GUI ist Schuld. Wie immer. Aber auch ein systemctl suspend zeigt nicht wirklich eine Besserung. Auch die Logs zeigen nichts verwertbares. Na dann graben wir etwas tiefer:

Erst mal zur Klarstellung: Standby funktioniert – der Laptop schaltet die Geräte aus, die Power-LED blinkt wie erwartet, doch nach knapp einer Sekunde wacht wer direkt wieder auf. Entsprechend des Fehlers dürfte also die Aufwachquelle am ehesten Verantwortlich sein. Eine Liste aller Quellen findet sich in /proc/acpi/wakeup:

# cat /proc/acpi/wakeup
LID	  S4	*enabled  platform:PNP0C0D:00
SLPB	  S3	*enabled   platform:PNP0C0E:00
IGBE	  S4	*enabled   pci:0000:00:19.0
EXP2	  S4	*disabled  pci:0000:00:1c.1
XHCI	  S3	*enabled   pci:0000:00:14.0
EHC1	  S3	*enabled   pci:0000:00:1d.0

Die Liste sieht natürlich je nach Verbauter Hardware anders aus, hier die Zuordnung meines Gerätes:

LID -> Laptop-Deckel
SLPB/SBTN -> Standby-Button
IGBE -> Integrated Gigabit Ethernet
EXP2 -> ??
XHCI -> USB3
EHC1 -> USB(1/2)

Wie wir sehen können diverse Geräte ein Aufwachen verursachen, lediglich EXP2 ist nicht aktiv. Um das Ganze einzugrenzen heißt es also nun: Aufwachquelle abschalten, Suspend testen und hoffen, dass es was bringt. Über ein gezieltes echo kann der Zustand zwischen enabled und disabled gewechselt werden:

echo LID > /proc/acpi/wakeup

In meinem Fall stellte sich USB als Fehlerteufel heraus. Offenbar störte sich das System an einem USB-Stick – egal ob gemountet oder nicht. Wie auch immer, USB brauche ich ohnehin nicht zum aufwachen, Deckel und/oder Power-Button sollten ausreichen. Den “bösen” USB schalte ich beim Boot per Script nun ab.

[Gentoo] Apache 2.4.26 + WordPress: Invalid post type

Hmk? After the latest system updates on Gentoo I noticed WordPress was no longer able to open any kind of post list (“invalid post type”), edit posts (you do not have access to this kind of post) or create posts (form shown, but right sidebar missing). Not quite uncommon, but this time it was no broken plugin – I could reproduce the same behavior with several other WordPress instances with different versions – even a fresh install. That’s a new one.

After some probing around I’m fairly certain Apache 2.4.26 is the culprit, after downgrading to 2.4.25 the problem disappeared. All other downgrades like PHP 7.0.15 instead of PHP 7.0.19 didn’t show any effect. I yet have to confirm which combination ultimately triggers the error (FPM? Event-MPM?), but if you have similar errors: Here is your starting point…