WriteFreely

Reader

Read the latest posts from WriteFreely.

from HDValentin

Bildschirmfoto des ChatGPT-Verlaufs

ChatGPT ist der neue heiße Scheiß, was programmierte Intelligenz angeht. Du stellst dem System über einen Textschlitz eine Aufgabe oder eine Frage und das Programm antwortet oder generiert einen Text zu Deiner Aufgabe.

Du kannst mit dem Programm in Chatmanier diskutieren oder Dir einfach einen Textvorschlag zu Deinem Thema erstellen lassen. Der Datenbestand mit dem der Chatbot agiert, basiert aktuell auf dem Jahr 2021.

In den Medien und sozialen Medien wird eifrig diskutiert, warum das Ding böse ist und warum, wie man verhindern kann, dass informierte Studentinnen und Studenten den Chat zum Schreiben von Hausarbeiten verwenden.

Was mir zu wenig diskutiert wird, sind die Chancen und Möglichkeiten, die sich uns im Alltag dadurch bieten. Denn gerade für Schreibende, für Menschen mit geringen Deutschkenntnissen oder im Bildungsbereich lässt sich damit kreativ arbeiten.

Bewerbungen formulieren

Nehmen wir einmal an, Du kommst aus Nepal, hast in Deutschland Dein Pflegeexamen, nach einer dreijährigen Ausbildung abgeschlossen und möchtest Dich nun bewerben.

Folgende Aufgabe habe ich ChatGPT gegeben und ein passendes Ergebnis bekommen. Über die Texte müsste die Person und ein Korrektor noch einmal darüber gehen. Aber es ist ein Anfang und deutlich mehr, als ein weißes Blatt:

Aufgabe

"Schreibe ein Stellengesuch für eine Pflegefachkraft, Staatsangehörigkeit nepaleisch, Sprachniveau Deutsch B2, Ausbildung und Examen in Deutschland"

Ergebnis

"Sehr geehrte Damen und Herren, Ich bin auf der Suche nach einer Stelle als Pflegefachkraft und bin nepalesischer Staatsangehöriger. Ich habe meine Ausbildung und mein Examen als Pflegefachkraft in Deutschland absolviert und verfüge über ein B2-Niveau in Deutsch. Ich habe bereits Erfahrungen in der Pflege von Patienten mit unterschiedlichen Diagn und Pflegebedürfnissen gesammelt und bin motiviert, meine Kenntnisse und Fähigkeiten in der deutschen Pflegebranche einzubringen. Ich bin ein engagierter und verantwortungsbewusster Mitarbeiter und habe ein hohes Verständnis für die Bedürfnisse von Patienten. Ich arbeite gerne im Team und bin davon überzeugt, dass ich einen wertvollen Beitrag zur Verbesserung der Pflegequalität leisten kann. Ich bin flexibel und habe eine ausgeprägte Lernbereitschaft. Ich bin darauf vorbereitet, an Fortbildungen und Schulungen teilzunehmen, um meine Kenntnisse zu erweitern und mich an die Anforderungen der deutschen Pflegebranche anzupassen. Ich würde mich freuen, wenn Sie mir die Möglichkeit geben, mich Ihnen als Pflegefachkraft vorzustellen und meine Fähigkeiten unter Beweis zu stellen. Ich stehe Ihnen gerne für ein persönliches Gespräch zur Verfügung. Mit freundlichen Grüßen, [Name]"

Bewerbung in anderen Sprachen

Eine Bewerbung in einer eher seltenen Sprache wie nepalesisch verfassen zu lassen, funktioniert auch. Es ist schön anzusehen, wie der Chatbot das Schreiben generiert.

Inhaltlich ist das Ergebnis allerdings eher Nonsens und nicht für eine Bewerbung zu verwenden:

Aufgabe

"Schreibe eine Bewerbung als Pflegefachkraft, auf nepalesich"

Ergebnis

" प्रिय स्वास्थ्य सेवा प्रबंधक, मैले आफ्नो स्वास्थ्य सेवा संस्थामा परिचालन गर्न आवेदन गर्दैनुहुन्छ। मैले पिछलै तीन वर्षमा स्वास्थ्य सेवा संस्थामा काम गर्दा स्वास्थ्य सेवा को कुरा समझदार र स्वास्थ्य सेवा को कुरा समझदार हुनुहुन्छ। मैले स्वास्थ्य सेवा को कुरा समझदार र स्वास्थ्य सेवा को कुरा समझदार हुनुहुन्छ। मैले स्वास्थ्य सेवा संस्थामा काम गर्न प्रसन्न र ताकिएको हुनुहुन्छ। मैले स्वास्थ्य सेवा संस्थामा काम गर्न सक्छु र स्वास्थ्य सेवा को कुरा समझदार हुनुहुन्छ। कृपया मलाई स्वास्थ "
 
Read more...

from Gedankenwuschel

Die Abteilungsleitung bearbeitete mich auch noch einmal zum Thema Termine und übte gehörigen Druck auf mich aus. Es war ihr schwer zu vermitteln, dass es Termine gibt, über die sie nicht Bescheid wissen muss – die persönlich sind.

Besonders schwer war es für mich, ihr das klarzumachen, ohne ihr zu sagen, auf welchem Termin ich war.

Ich hörte bei ihr eine gewisse Angst heraus, dass Sachlagen und Tatsachen über die Abteilung in der Personalabteilung bekannt werden könnten. Eine weitere Unsicherheit besteht darin, dass ich mich um einen Wechsel bemühen könnte.

Positiv fand ich, dass wir über meine Stelle und meine Belastung gesprochen haben. Das gibt mir die Hoffnung, dass sie sich mit mir beschäftigt und sich meine Arbeitssituation verbessern könnte.

Ich konnte auch mit dem erkrankten Kollegen sprechen. Wir sprachen über die Situation und das Gespräch mit der Abteilungsleitung. Er bestätige mir, dass die Vorgesetzten gerne Druck ausüben, um Dinge herauszubekommen, die sie nicht wissen, oder eine gewisse Unsicherheit verursachen.

#chefin #vertrauen #selbstschutz

 
Weiterlesen...

from Gedankenwuschel

Es gab einen beruflichen Termin der Personalabteilung. Ich informierte meine Vorgesetzte mit einer Reihe von anderen Terminen. Sie wünscht sich das so. Sonst vergisst sie der Termine, hat keine Übersicht und wirft mir vor, ich hätte sie nicht ausreichend informiert.

Bei der Durchsicht der Terminliste fragte sie explizit nach diesem Termin. Ich hatte hier nur das Gebäude auf dem Firmengelände angegeben. Sie wollte wissen, was das für ein Termin sei. Ich sagte es ihr nicht.

Sie bäffte: „Willst Du es nicht sagen?“. Ich antwortete: „Nein, es ist nicht erforderlich, dass Du alles weißt“. Sie fragte explizit, ob ich mich woanders beworben habe. Ich konnte ihr wahrheitsgemäß antworten, dass ich aktuell keine Bewerbung laufen habe.

Der Termin fand statt.

Am Tag danach kam sie zu mir an den Tisch. Sie wusste, auf welchem Termin ich gewesen bin und fragte, warum ich ihr nicht gesagt habe, um was es bei dem Termin geht. Ich schaute nach unten und wusste nicht, was ich ihr in diesem Moment antworten soll, außer ein „hmmpf“.

Beim Weggehen fragte sie, warum ich nicht genügend Vertrauen in sie hätte, um ihr so etwas zu sagen. Es sei ja ein erfreulicher Termin gewesen.

Ich frage mich: „Warum sollte ich Vertrauen in sie haben?“. Bisher habe ich von ihr keinerlei vertrauensbildendes Verhalten erlebt. Und auch, wenn ich mit ihr inzwischen anders umgehe, ist unser Verhältnis noch lange nicht geheilt oder gut.

Informationen, die ich ihr gegeben habe, hat sie in der Vergangenheit hauptsächlich gegen mich und für ihren eigenen Vorteil verwendet.

Daher gibt es nun keine Informationen über sensible Themen mehr. Was sensibel ist, bestimme ich.

#chefin #vertrauen #selbstschutz

 
Weiterlesen...

from Pelzvieh

GPIO, aber wie?

Wenn es darum geht, auf den Einplatinencomputern elektronische Komponenten anzusteuern bzw. auszulesen, wird man sowohl beim #RaspberryPi als auch beim #BananaPi auf Libraries und Dämonen im Userland gestoßen: #pigpiod, #WiringPi und ähnliche. Schaut man sich mal oberflächlich an, wie diese gebaut sind, kriegt man es mit der Angst: Direkte Registerzugriffe per /dev/mem werden munter gemischt mit Kernelfunktionen verwendet, eine Prüfung ob ein Pin bereits von einem Kernelmodul bedient wird, findet nicht statt. Z. B. stellte ich erst im Zuge meiner BananaPi-Rechere fest, dass ich auf einem RaspberrPi einen Temperatursensor per gigpiod zugreife, während gleichzeitig das OneWire-Kernelmodul darauf lauscht. Im Kernel und im klassischen Linux-Userland gibt es dagegen auch fertige Lösungen (irgendwie weniger präsent in meiner favorierten Suchmaschine): das neue GPIO-Kernel-Interface unter /sys/bus/gpio/devices/gpiochip0 kann

  • zum einen bastlerisch-explorativ mit den Tools aus dem Paket gpiod genutzt werden (also Achtung: gpiod ist etwas völlig anderes als pigpiod, die bauen nicht aufeinander auf, sondern beharken sich),
  • zum anderen gibt es fertige Kernelmodule für bestimmte Hardware, die man an diese GPIO-Pins hängt (genau für sowas wurde das IIO-Framework im Kernel bereit gestellt).

Das Beispiel”projekt”

Ich nehme hier mal als Beispiel einen Temperatur- und Feuchtigkeitssensor #DHT22. Dieser wird an einen PIN angeschlossen und es gibt einen IIO-basierten Kernel-Treiber dht11.ko (DHT11 und DHT22 sind offensichtlich sehr nahe verwandt und dht11.ko kann auch DHT22). Spoiler: das Beispiel ist fies gewählt, denn der dht11.ko funktioniert am BananaPi am Ende des Tages nicht. Ich hoffe, dass einer von euch weiß, was das Problem verursacht und wie man es abgestellt bekommt :-D

Anschluss des Sensors

Mein DHT22 kommt auf einer kleinen Platine konfektioniert mit 3 beschrifteten Anschlüssen nebst passendem 3-poligen Kabel. Der BananaPI hat im Auslieferungszustand ein 40-poliges Lochraster, in das ich eine Sockelstiftleiste eingelötet habe (vermutlich gibt es auch Sockelstiftleisten mit Klemmkontakten). Das Anschlussschema findet man im BananaPi-Wiki. Der (+)-Anschluss muss mit einem 3,3V-Pin verbunden werden, Pin Nr. 1 bietet sich an. Der (–)-Anschluss mit einem Gnd-Pin, z. B. Pin Nr. 6. Der GPIO-Pin kann grundsätzlich aus einer reichlichen Auswahl gewählt werden, wir nehmen Pin Nr. 7, gemäß Schema Anschluss PA6. Also nicht verwechseln: wir stöpseln die Hardware an Pin 7, in der Software heißt das Ding aber PA6 (A=Bank 0, 6=Nr. 6 auf dieser Bank).

Konfiguration von dht11.ko – das Devicetree Overlay

Versucht man sich diesem dht11.ko naiv zu nähern – ich hätte erwartet, dass das Kernelmodul irgendwelche Parameter bietet, über das man ihm mitteilt, an welchem Pin das Gerät sitzt – aber weit gefehlt, so tickt diese IIO-Welt nicht: sie möchte, dass wir über den #Devicetree kundgeben, welche Geräte wo an welchen Bussen hausen. Der eigentliche Devicetree des BananaPi findet sich bereits in den Sourcen des Linux-Kernel. Er beschreibt sozusagen, welche Geräte auf der kleinen Platine wie zusammengestöpselt sind (sogar die auf dem SOC integrierten Geräte). Wir gedenken aber nun, ein weiteres Gerät hinzuzufügen, indem wir es an einen GPIO-Pin anschließen. Diese Information müssen wir also in den Devicetree einbauen. Da wäre es natürlich praktisch, wir könnten genau die Aussage, “wir haben ein DHT11 an PA06 gesteckt” hinterlegen, ohne uns mit dem ganzen Devicetree auseinandersetzen zu müssen? Genau dafür gibt es Devicetree Overlays. Damit das schick funktioniert, habe ich in der Anleitung zur Erstellung des Boot-Images beim Kompilieren des Devicetree die Option DTC_FLAGS=-@ hineingeschmuggelt. So enhält der kompilierte Devicetree die logischen Symbole und wir können im Devicetree Overlay darauf referenzieren. So sieht das dann aus (du findest die Datei auch auf Github):

// Definitions for dht11 module
/*
Adapted from dht11.dts for Raspberrypi, by Keith Hall
Adapted by pelzi.
*/
/dts-v1/;
/plugin/;

/ {
        fragment@0 {
                target-path = "/";
                __overlay__ {
                        temperature_humidity: dht11@6 {
                                compatible = "dht22", "dht11";
                                pinctrl-names = "default";
                                pinctrl-0 = <&dht11_pins>;
                                gpios = <&pio 0 6 0>; /* PA6 (PIN 7), active high */
                                status = "okay";
                        };
                };
        };

        fragment@1 {
                target = <&pio>;
                __overlay__ {
                        dht11_pins: dht11_pins {
                                pins = "PA6";
                                function = "gpio_in";
                                bias-pull-up;
                        };
                };
        };

        __overrides__ {
                gpiopin =       <&dht11_pins>,"pins:0",
                                <&temperature_humidity>,"gpios:8";
        };
};

Das “Fragment 0” erzeugt einen neuen Knoten “dht11@6” und dem Symbol “temperature_humidity” direkt an der Baumwurzel. Es referenziert auf dht11_pins als pinctrl-0. Diese erzeugt das “Fragment 1”, und zwar dort wo das Gerät auch hängt, nämlich am PIO-Controller, also unterhalb des Knotens mit dem Symbol pio. Es gibt an, an welchen Pins es hängt (pins, nur einer, mit dem Symbol PA6). Schließlich definieren wir noch eine Parametrierung gpiopin, um einen anderen Pin angeben zu können. Aus dieser Definition kompilieren wir ein binäres Devicetree-Overlay:

dtc dht11-banana.dts -@ -o dht11-banana.dtbo

Erzeugen und Einspielen des zusammengesetzten Devicetree

Während das Bootsystem des RaspberryPi bereits eine Nachlade- und Parametrierungslogik implementiert (/boot/config.txt), haben wir solche Bequemlichkeit auf dem BananaPi (noch?) nicht. Man kann durchaus dem U-Boot-Loader sowohl Devicetree, als auch separate Overlays zum Laden und zusammenmischen antragen. Da dies aber ohnehin hart codiert auf dem Image ist, bevorzuge ich aktuell, den Devicetree im Vorfeld fertig zu erzeugen und aufzuspielen, da ich Fehler nicht erst im Rahmen des Bootvorganges auf einer seriellen Console zu Gesicht bekomme, sondern als gewöhnliche Meldung eines gewöhnlichen Kommandozeilentools. Auftritt fdtoverlay!

fdtoverlay -v -i sun8i-h2-plus-bananapi-m2-zero.dtb -o banana-with-dht.dtb dht11-banana.dtbo

Dieser Aufruf erzeugt aus dem gewöhnlichen Devicetree des BananaPi M2 Zero, sun8i-h2-plus-bananapi-m2-zero.dtb und dem gerade erstellten Overlay dht11-banana.dtbo einen vollständigen Devicetree mit DHT-Knoten namens banana-with-dht.dtb. Dies kopiere ich einfach auf das Image über den bisher genutzten Devicetree:

cp banana-with-dht.dtb /mnt/debinst/boot/dtbs/sun8i-h2-plus-bananapi-m2-zero.dtb

Diese Übungen kann man selbstmurmelnd auch auf dem laufenden Device selbst durchführen und das Ergebnis dann nach /boot/dtbs/sun8i-h2-plus-bananapi-m2-zero.dtb kopieren – aktiv wird es aber erst nach einem Reboot. Ich habe leider kein Userspace-Kommando à la dtoverlay auf dem RaspberryPi finden können, um den Devicetree auf dem laufenden Gerät zu modifizieren. Das ist erstaunlich, weil es dafür eigentlich eine Kernel-API gibt, aber dtoverlay funktioniert tatsächlich nur auf einem RaspberryPi. Wer möchte ein solches Tool implementieren?

Neustart und Nutzung

Bootet man nun den BananaPi mit diesem ergänzten Devicetree, bemerkt man sofort ein geladenes Kernelmodul

$ lsmod|grep dht
dht11                  20480  0
industrialio           65536  1 dht11

Und es ist fein säuberlich hinterlegt, dass und wofür wir unseren Pin PA6 verwenden:

$ sudo gpioinfo
gpiochip0 - 224 lines:
[...]
	line   6:      unnamed    "dht11@6"   input  active-high [used]
[...]

Der DHT-Treiber stellt uns fertige Geräte zum Auslesen zur Verfügung:

$ ls -l /sys/bus/iio/devices/iio\:device0/
insgesamt 0
-r--r--r-- 1 root root 4096 15. Jan 13:16 dev
-rw-r--r-- 1 root root 4096 15. Jan 13:16 in_humidityrelative_input
-rw-r--r-- 1 root root 4096 15. Jan 13:16 in_temp_input
-r--r--r-- 1 root root 4096 15. Jan 13:16 name
lrwxrwxrwx 1 root root    0 15. Jan 13:16 of_node -> ../../../../firmware/devicetree/base/dht11@6
drwxr-xr-x 2 root root    0 15. Jan 11:30 power
lrwxrwxrwx 1 root root    0 15. Jan 13:16 subsystem -> ../../../../bus/iio
-rw-r--r-- 1 root root 4096 14. Jan 23:08 uevent

Wir können die aktuellen Messwerte einfach durch Lesen an den device files in_humidityrelative_input und in_temp_input ermitteln.

Das Problem mit dht11

Wie oben schon angekündigt, gibt es hier aber leider ein verdrießliches Problem – das Auslesen funktioniert nicht:

$ cat /sys/bus/iio/devices/iio\:device0/in_humidityrelative_input 
cat: '/sys/bus/iio/devices/iio:device0/in_humidityrelative_input': Die Wartezeit für die Verbindung ist abgelaufen

Parallel dazu nennt uns dmesg:

[52801.685052] dht11 dht11@6: Only 18 signal edges detected

Wie ich nach etwas Analyse definitiv bestätigen kann: der Treiber weckt den DHT11-Sensor auf und dieser fängt an, seine Messwerte zu schicken. Das Dumme ist, dass der BananaPi nur ein Bruchteil der tatsächlich entstandenen Flanken am Signalpin via Interrupt einfängt. Wir wissen von den eingefangenen Flanken zwar hinreichend genau die Zeitstempel, aber es fehlen halt ungefähr 70 Flanken! Warum es so lange Totzeiten zwischen den Interrupts gibt, ist mir noch nicht klar. Für Hinweise wäre ich extrem dankbar!

Was funktioniert denn nun?

Wenn du z. B. nur ein paar Ein-Aus-Sensoren (auch Bewegungsmelder...) und LEDs verbinden möchtest, funktioniert das auf analoge Weise durchaus. Du kannst analog des fragment@1 oben Pins für Input oder Output konfigurieren, inkl. Pull-Up/Down-Widerständen (Input) oder Drive-Konfiguration (Output). Und es gibt eine riesige Menge an IIO-Device-Treibern fertig in den Linux-Quellen, die eigentlich nur darauf warten in eigenen Projekten genutzt zu werden. Wie du den Treiber eines GPIO-basierten Gerätes am BananaPi in Betrieb bekommst, sollte dieser Artikel dir jetzt verraten haben. Ich wäre dir dankbar, wenn du erfolgreiche Anbindungen von anderen Sensoren auch veröffnetlichen würdest!

Vertiefende Dokumentation

  1. Device Tree Usage
  2. Device Tree Overlay Notes
  3. Bindings der IIO-Treiber
 
Weiterlesen...

from Pelzvieh

Warum die Übung?

Die etablierten Informationsquellen zum BananaPi (z. B. das Wiki) verlinken einmalig fertig gebaute Images und bieten Anleitung, den Rechner auf dieser Basis in Betrieb zu nehmen.

Warum ist das ein Problem?

  1. Vulnerabilities: die Images wurden von irgendeinem vergangenen, Jahre alten, Releasestand von Linux-Kernel und Distributionen gebaut. Inzwischen dürften hunderte von Schwachstellen dieses Standes bekannt geworden sein, deren Korrekturen aber nicht in den Images enthalten sind.
  2. Unklare Herkunft: es ist nicht transparent, wer diese Images gebaut hat, welche Review-Prozesse stattgefunden haben und welche Änderungen an den Upstream-Quellen durchgeführt wurden und zu welchem Zweck.
  3. Mangelnde Professionalität: unter den veröffentlichten Images befinden sich solche, die nicht durch einen Buildprozess erzeugt wurden, sondern einen Snapshot eines manuell aufgesetzten und genutzten Systems darstellen. Es finden sich insbesondere lange Shell-Histories, konfigurierte Zugänge zu WLANs taiwanesicher(?) Shared Office-Standorte.
  4. Fehlende Versionskontrolle: es werden auf unterschiedlichen Seiten unterschiedliche Stände auf unterschiedlichen Filesharing-Plattformen referenziert, von denen einige nicht mehr richtig funktionieren. All dies zusammen genommen macht diese Quellen zu einem El Dorado für persistente Angriffe (APTs). Sowas kommt mir nicht ins Haus und euch hoffentlich nicht ins Unternehmen. Da sind wir uns doch einig..?!? Dann kann's ja losgehen!

Ziele

  1. Ein Image zum Aufspielen auf Micro-SD-Karte wird erstellt
  2. Ein #BananaPi M2 Zero kann von einer mit diesem Image bespielten SD-Karte booten
  3. Der Bootvorgang verläuft unfallfrei in ein nutzbares System
  4. Funktionsfähig sind zumindest: Mini-HDMI (Bildschirmausgabe), Micro-USB-Port, GPIO (PINs), WLAN
  5. Das Gerät bucht sich automatisch in das konfigurierte WLAN ein und ist remote über ssh erreichbar (denn das Gerät hat keine fertig konfektionierte Ethernet-Schnittstelle und ich bin zu faul um die dafür nötigen PINs einzulöten und an per Kabeln an eine Ethernet-Buchse zu fummeln).

Anlegen des Images

Wir legen das spätere Image als lokale Datei auf einem Debian-Linux-Rechner (gerne virtuell...) an, machen diese via Loop-Device als Blockgerät verfübar und richten dieses richtig ein. Dieses Vorgehen hilft gegen die Versuchung, die SD-Karte zur Unzeit schonmal ins Zielgerät einzulegen und darauf manuell weiter zu fummeln, bis etwas funktioniert. Das Vorgehen hier folgt eigentlich nur Schritt für Schritt der entsprechenden Anleitung von Debian! Wenn dieser Artikel schon einige Jahre alt ist wenn du das liest, solltest du dort nach einer aktuellen Anleitung suchen. (todo: Hier fehlt eine Aufstellung der auf dem Linux-Rechner benötigten Pakete und sonstigen Voraussetzungen; beispielsweise fehlt die Warnung, dass das alles nicht auf arm64-Umgebungen funktioniert, weil ...)

dd if=/dev/zero of=bananapi_debian.img bs=1G count=3
sudo losetup -f bananapi_debian.img 
sudo fdisk /dev/loop0 
sudo mkfs.ext4 -O ^metadata_csum,^64bit /dev/loop0p1
sudo losetup -d /dev/loop0 
sudo losetup -P -f bananapi_debian.img 
sudo mkfs.ext4 -O ^metadata_csum,^64bit /dev/loop0p1 
sudo mkdir /mnt/debinst
sudo mount /dev/loop0p1 /mnt/debinst/
sudo debootstrap --arch=armhf --foreign --include=binfmt-support,wpasupplicant,dhcpcd5 bullseye /mnt/debinst
sudo cp /usr/bin/qemu-arm-static /mnt/debinst/usr/bin/
sudo LANG=C.UTF-8 chroot /mnt/debinst qemu-arm-static /bin/bash

An dieser Stelle haben wir die benötigten Softwarepakete schon in unserem Image liegen, wir können Programme auf der Zielplattform ausführen und sind gerade in die Systemumgebung unseres aufzusetzenden Rechners geschlüpft. Weiter geht's, nun im chroot:

/debootstrap/debootstrap --second-stage
editor /etc/adjtime

Das ist jetzt ein bisschen doof, weil du nicht siehst, was man da reinschreiben kann. Aber du kannst die Man-Page bzw. die Debian-Anleitung zu Rate ziehen :–)

dpkg-reconfigure tzdata
editor /etc/systemd/network/eth0.network
editor /etc/systemd/network/wlan0.network
editor etc/wpa_supplicant/wpa_supplicant.conf

Dokumentation nebst Beispielen findest du in der man-Page wpa-supplicant.conf

mkdir root/.ssh
editor root/.ssh/authorized_keys 

Hier kopierst du den public ssh-key rein, mit dem du dich am laufenden System anmelden willst. Achtung, es ist KEIN Passwort-Login für root möglich! Vielleicht möchtest du auch direkt an dieser Stelle einen User anlegen, für diesen einen ssh-Key hinterlegen, ihn für sudo berechtigen usw. Das halte ich für eine gute Idee, ist aber normales Linux-Alltagsgeschäft, da brauchst du ja keine Tipps von mir.

editor etc/resolv.conf
apt install openssh-server
editor etc/apt/sources.list.d/security.list # hier trägst du die apt source für Security-Updates deiner Distribution ein
editor etc/apt/sources.list.d/firmware.list # hier trägst du die apt source ein, aber die Sektion non-free
apt update
apt install locales && dpkg-reconfigure locales
apt install console-setup && dpkg-reconfigure keyboard-configuration
apt install linux-image-armmp-lpae
apt install firmware-linux bluez-firmware firmware-atheros firmware-bnx2 firmware-bnx2x firmware-brcm80211 firmware-cavium firmware-ipw2x00 firmware-iwlwifi firmware-libertas firmware-qcom-soc firmware-qlogic firmware-ti-connectivity firmware-zd1211 

Viel hilft viel! Naja, ehrlich gesagt müsste sich mal jemand die Mühe machen herauszusuchen, welche Firmware-Pakete der BananaPi wirklich braucht...

systemctl add-requires wpa_supplicant.service systemd-networkd-wait-online.service
systemctl add-wants network-online.target wpa_supplicant.service
editor /lib/systemd/system/wpa_supplicant.service

Im ausgelieferten Zustand würde wpa_supplicant nur über dbus lauschen, daher musst du -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf zu ExecStart hinzufügen. Kennst du eine saubere Lösung für das Problem?

echo "banana" > /etc/hostname
editor /etc/dhcpcd.conf # enable option "hostname"
exit

Nun sind wir wieder draußen aus dem Image. Die Userland ist jetzt fertig. Was fehlt, sind Bootloader und die Systemkonfiguration in /boot. Das U-Boot (den Bootloader) bauen wir wie folgt:

git clone git://git.denx.de/u-boot.git
cd u-boot
make bananapi_m2_zero_defconfig
make CROSS_COMPILE=arm-linux-gnueabihf-
cd ..

Eine Device-Tree-Definition für den BananaPi M2 Zero gibt es glücklicherweise fertig im Linux-Sourcetree. Wir können sie also ebenfalls bauen:

apt source linux-image-5.10.0-20-armmp-lpae
cd linux-5.10.*/
make CROSS_COMPILE=arm-linux-gnueabihf- defconfig
make CROSS_COMPILE=arm-linux-gnueabihf- DTC_FLAGS=-@ dtbs
cd ..

Eine Bootloader-Konfiguration leihen wir uns von TuryRx in github aus. Das U-Boot-Script wird allerdings fest codierte Namen für Kernel und InitRAMFS verwenden, während diese Dateien im Debian-Paket mit Versionsnummern verziert sind. Deshalb kopieren wir die gerade installierten einfach.

wget https://github.com/TuryRx/Banana-pi-m2-zero-Arch-Linux/raw/master/boot.cmd
mkdir /mnt/debinst/boot/dtbs
sudo cp u-boot/u-boot-sun8i-h2-plus-bananapi-m2-zero.dtb /mnt/debinst/boot/dtbs/sun8i-h2-plus-bananapi-m2-zero.dtb
sudo cp /mnt/debinst/boot/vmlinuz-5.10.0-20-armmp-lpae /mnt/debinst/boot/zImage
sudo cp /mnt/debinst/boot/initrd.img-5.10.0-20-armmp-lpae /mnt/debinst/boot/initramfs-linux.img
sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "BananaPI boot script" -d boot.cmd /mnt/debinst/boot/boot.scr
sudo umount /mnt/debinst 
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/loop0 bs=1024 seek=8 # ja, so habe ich auch gekuckt: so lädt die Firmware des BananaPi ihren Bootloader...
sudo losetup -d /dev/loop0

Fertig ist das Image! Du kannst es jetzt auf eine Micro-SD-Karte übertragen und einen BananaPi M2 Zero damit starten.

 
Weiterlesen...

from HDValentin

Ich kaufe meine Kameraausrüstung, hauptsächlich gebraucht. Das spart zum einen Geld, denn der Wertverlust beim Neukauf ist meist enorm. Außerdem spart es Ressourcen für die Herstellung und ist damit besser für unseren Planeten.

Neben den üblichen Kleinanzeigenwebsites gibt es einige Händler, die Gebrauchtware im Internet anbieten. Der Vorteil gegenüber dem Privatkauf, ist das 14-tägige Rückgaberecht, eine Rechnung, eine zwölfmonatige Gewährleistung und die Prüfung der Geräte vorab durch die Verkäuferin. Die letzten beiden Serviceleistungen bieten nicht alle Händlerinnen.

Folgend die unvollständige Liste der Händlerinnen, die Fotokameras und Objektive anbieten. Solltest Du Ergänzungen haben, freue ich mich sehr über Deine Nachricht.

Fotoläden und Händler

Shops von Fotorückkäufern

Ebay Shops von Händlern

Kleinanzeigen und Sonstiges

 
Read more...

from Gedankenwuschel

Die Vorgesetzte bestimmt gerne, was ich zu tun und zu lassen habe. Ein Beispiel habe ich hier schon genannt.

Diese Vorschriften macht sie auch in der Art, wie ich mit anderen dienstlich kommuniziere. Sie schreibt mir vor, dass ich mit den Kundinnen und Kunden telefoniere. Die schriftliche Kommunikation soll ich sein lassen.

Die Chefin scheint nicht zu verstehen, dass Menschen unterschiedlich sind. Dass es Menschen gibt, die es wenig Kraft kostet zu telefonieren. Oder andere, für die dies aufreibend ist und die wesentlich besser und kraftsparender schriftlich kommunizieren können.

Außerdem bin ich ein Freund davon, Anfragen von Kundinnen und Kunden direkt so zu beantworten, wie sie an uns gestellt wurden und hier das Medium nicht zu ändern. Oft ist es nämlich so, dass die Menschen das Medium wählen, das ihnen eher liegt.

Auch hierfür habe ich noch keine gute Lösung gefunden, um für mich damit gut umzugehen.

#chefin #aggression #übergriff

 
Weiterlesen...

from Gedankenwuschel

Die Vorgesetzte schreibt mir gerne vor, wie ich Dinge tun soll. Nein, sie sagt mir freundlich und nett: „also ich würde … so und so machen“.

Übersetzt in meine Sprache soll das so viel heißen wie: „Mache dies und jenes, so wie ich dir das sage!“

Sehe ich das nur als Option oder Vorschlag und mache die Dinge, wie ich sie für richtig halte, bekomme ich von ihr einen Anschiss, warum ich die Dinge nicht so gemacht habe, wie sie es mir aufgetragen hat.

Hier habe ich noch keinen guten Modus gefunden, wie ich mich davor schützen kann.

Mache ich die Dinge so, wie sie es will, kostet es mich sehr viel Kraft und Energie, die Dinge auf ihre Weise zu machen. Außerdem kann es vorkommen, dass ich mich innerlich ärgere.

Widerspreche ich ihr, verursacht das meistens eine unnötige Diskussion und weiteren Ärger.

#chefin #sprache #aggression #übergriff

 
Weiterlesen...

from Gedankenwuschel

Der Mutter geht es nicht gut. Zumindest ist das mein Eindruck.

Alkoholismus

Es ist Alkohol im Spiel. Vermutlich Bier und zu viel davon. Ich bin nicht dabei, daher weiß ich nichts mit Sicherheit. Allerdings spricht vieles dafür, dass es so ist. Telefoniere ich abends mit ihr, ist ein deutliches Lallen zu vernehmen. Das kann auch schon um 16 Uhr vorkommen.

Spreche ich das Thema Alkohol an, wird es zwar nicht mehr geleugnet, aber sie lenkt ab und verweist auf alle anderen Leute, in der Familie, die auch Alkohol trinken. Dass zwei Bier jeden Abend schon zu viel für eine Frau sind, will sie nicht hören.

Das habe ich ihr vor etwa zehn Jahren schon gesagt, dass der Alkoholkonsum zu viel und zu regelmäßig ist. Auch damals wollte sie es schon nicht wahrhaben und ist böse geworden, weil ich sie nicht so sein und leben lasse, wie sie will.

Damals habe ich für mich erkannt: ihr Leben, ihr Problem. Was sie macht, ist ihre Sache. Sie kann machen und leben, wie sie möchte. Ich teile ihr nur mit, was mir auffällt und was mir als Sohn weh tut.

Der Bruder kommt mit der Tatsache des Alkoholismus nicht klar. Er forderte mehrmals von mir ein, dass ich etwas dagegen tun soll – auch unter Tränen. Auch ihm habe ich mitgeteilt, dass es nicht meine Aufgabe ist, ihr vorzuschreiben, was sie tun oder lassen soll. Er zog sich von ihr zurück und meidet den Kontakt.

Ein weiterer Effekt des Alkoholismus ist das Absagen von vereinbarten Terminen und Treffen. Es werden Termine ausgemacht, die sie dann kurzfristig wieder absagt. Auch hier bin ich nicht dabei und kann den Wahrheitswert der Absagen nicht kontrollieren. Allerdings geht man in der Familie inzwischen bei vereinbarten Treffen davon aus, dass sie ohnehin absagen wird.

Die Dinge der Vergangenheit

Manch einer wird vom Alkohol redselig. Bei der Mutter artet dies in Schreibtiraden über den Messenger aus. 70 bis 120 Nachrichten pro Abend sind hier keine Seltenheit. Hier hilft nur das stumm schalten oder ignorieren.

Sie schreibt meistens dann viel, wenn sie alkoholisiert ist. Die Themen, über die sie schreibt, sind solche, die sie ihn ihrer Vergangenheit stark oder extrem belastet haben.

Der Fokus liegt auf den Erkrankungen ihrer Kinder und deren Behandlung. Sowie vermeintliche Fehler, die sie gemacht haben soll. Außerdem steht der Missbrauch durch ihren Mann im Raum und das Abtreiben des daraus entstanden Fötus.

Die Geschichten sind mir aus früheren Phasen dieser Art bekannt. Ich habe den Eindruck, dass sie versucht mich auf ihre Seite zu ziehen. Sie wirft mir vor, dass ich gegen sie sei und auf der Seite des Vaters stehe. Meistens schreibe ich gar nichts zu ihren Texten. Negativ äußere ich mich auch nicht ihr gegenüber.

Sie beschuldigt mich. Ich würde sie zusammen mit dem Bruder schlechtreden. Es ist interessant, dass sie das tut, denn ich äußere mich nur dann, wenn sie etwas grundlegend falsches erzählt.

Die Schwester erfährt eine ähnliche Nachrichtenflut und streitet mit ihr per Messenger. Die Themen scheinen für sie aufreibender zu sein, als für mich. Mich belasten sie, denn es sind keine schönen Themen und nach meinem Eindruck nach kreist sich die Mutter damit seelisch immer mehr in die Tiefe. Sie schreibt sehr selten über schöne und aufbauende Erlebnisse.

Zuletzt habe ich der Mutter geschrieben, dass ich mir wünsche, dass sie eine Therapie macht. So, dass sie auf einen schönen Lebensabend blicken kann. Wir Kinder sind weder Psychotherapeuten noch eine Beratungsstelle oder die Seelsorge. Diese Themen sind für uns belastend und unschön. Ich würde mich viel lieber über die schönen Themen mit ihr unterhalten. Das fällt jedoch schwer.

#mutter #vater #schwester #bruder #familie #abgrenzung #selbstschutz

 
Read more...

from Balkonwurm

Roter Kompostwurm

Deine Wurmkiste startest Du mit zerkleinerten Bioabfällen, Zeitungspapier und in kleine Schnipsel zerrissene Pappe.

Titelbild: Wikimedia Commons, Lizenz: CC BY-SA 3.0, Fotograf: Rob Hille

Die Wurmkiste kann auch Wurmcafé, Wurmkomposter oder Wurmbox heißen.

Karton und Papier

Bei der Pappe ist wichtig, dass diese unbehandelt ist. Also keine besondere Färbung, Bedruckung oder Aufkleber hat. Geeignet sind auch die Papierkartons, in denen Du Erdbeeren oder Himbeeren kaufen kannst oder Eierkartons.

Die Pappschnipsel und das Zeitungspapier bilden die Basis. Sie sind für die Würmer einen Schutzraum, saugen überschüssige Flüssigkeit auf und die Würmer können ihre Eier darin ablegen. Letztlich wird der Zellstoff in den Kompost eingearbeitet. Daher wirst Du von dem Karton und dem Papier am Ende nicht mehr viel sehen.

Papierschnipsel in einer Obstbox Bild vergrößern

Bioabfall

Darauf legst oder streust Du den Bioabfall. Alles, was scharf (Chili, Knoblauch, Zwiebel, Ingwer), exotisch (Zitrusfrüchte, Bananen), besonders hart (manche Wurzelteile, Zwiebelschalen), tierischen Ursprungs (Fleisch, Käse, Wurst) oder gegen Würmer ist (Lauch), lässt Du dabei draußen. Eine Ausnahme sind zerkleinerte oder gemahlene Eierschalen. Sie helfen den Würmern und dem Kompost.

Karotten und Salatgurkenschalen Bild vergrößern

klein geschnittene Karotten-, Gurkenschalen und Apfelbutzen Bild vergrößern

Mikroorganismen und Kompostwürmer

Je kleiner Dein Bioabfall geschnitten ist, desto einfacher können die Mikroorganismen und Pilze diesen bearbeiten und verrotten. Das liegt an der größeren Oberfläche, die dann zur Verfügung steht. Die Mikroorganismen, Pilze, Pflanzen- und Erdbestandteile bilden die Nahrung Deiner Kompostwürmer.

Wenn Du Deine Würmer online kaufst, ist in der Regel ein Substrat oder etwas Kompost dabei. In diesem sind genügend Mikroorganismen für den Start Deiner Box. Wenn Du die Würmer von einem Komposthaufen, einer anderen Wurmbox oder unter anderem einem Pferdemisthaufen bekommst, achte darauf immer auch einer Handvoll von diesem mitzunehmen. Gib die Würmer mit dem Substrat in die Wurmkiste.

Für den Start einer Zwei-Personenhaushalt-Wurmkiste reichen Würmer im Preisbereich von 15 bis 25 €. Das sind dann etwa 250 bis 500 Stück.

Nahaufnahme der Kompostwürmer Bild vergrößern

Wurmarten

Eine der folgenden Wurmarten eignen sich für die Wurmbox. Manchmal gibt es auch eine Mischung aus mehreren Sorten. Wichtig ist, dass es Kompostwürmer sind. In Deutschland soll es etwa 33 Arten geben. Verbreitet sind die folgenden:

Vergleich von Wurmpaketen

Gute Erfahrungen habe ich auch beim Kauf über Kleinanzeigenportale gemacht.

 
Weiterlesen...