Archiv der Kategorie: PC-Kram

Meine Lieblingsbeschäftigung :)

BitNotice #101 – TAN-Generator: Hotbar-Reparatur & USB-Mod

BitNotice #101 - TAN-Generator: Hotbar-Reparatur & USB-Mod

(28.5 MB) 00:01:27

2016-07-08 21:15 🛈

TAN-Generator kaputt? Na so einfach lass ich den nicht in Richtung Elektroschrott entfleuchen – dafür hatte ich damit schon zu viel Spaß. Mit etwas heißer Luft wird das vermeintlich kaputte Display wieder funktionsfähig. Und da wir schon drin sind: Ein USB-Kabel erspart zukünftig den nervigen Batteriewechsel.

Gentoo: Pakete von Distcc/pump ausnehmen

Verteiltes Kompilieren mit distcc und pump macht vor allem auf langsamen Systemen eine Menge Sinn. Leider vertragen nicht alle Pakete diese Lastverteilung, so z.B. mysql/mariadb. Um einzelne Pakete von distcc oder pump auszunehmen geht man wie folgt vor:

Folgende Dateien erstellen:

FEATURES="${FEATURES} -distcc -distcc-pump"
FEATURES="${FEATURES} -distcc-pump"

Nun ggf. den Ordner /etc/portage/package.env anlegen und dort – analog zu package.use/package.keywords/… – dateien für die Pakete anlegen, z.B.

dev-db/mariadb no-distcc-pump.conf

So wird z.B. für MariaDB der Pump-Modus abgeschaltet, distcc bleibt jedoch aktiv. Alternativ kann die ebenfalls erstellte no-distcc.conf verwendet werden um das verteilte Kompilieren komplett zu unterbinden.

BitBasics – PPTC, die selbstrückstellende Sicherung

BitBasics - PPTC, die selbstrückstellende Sicherung

(201.9 MB) 00:15:55

2016-07-03 10:00 🛈

PPTCs (polymeric positive temperature coefficient) sind kleine Bauelemente, welche ähnlich einer Sicherung funktionieren: Wird der Strom zu hoch wird die Verbindung (nahezu) unterbrochen. Der Clou: Wird die Ursache der Überlast entfernt schaltet sie sich selbst wieder ein. Wermutstropfen: Sie sind nur für kleinere Spannungen erhältlich, der abschaltbare Strom ist limitiert und die Auslösung sehr träge. Bauteile mit diesem Prinzip werden auch unter den Namen PFRA, Polyswitch, Multifuse, Polyfuse oder Everfuse vertrieben.

BitNotice #100 – Mailbag: Keramiksicherungen

BitNotice #100 - Mailbag: Keramiksicherungen

(22.4 MB) 00:02:13

2016-07-01 20:04 🛈

Keramiksicherungen, 5x20mm, 100er-Pack (10A/500mA)
Quelle: „POWER MA’s store„, je ~6,50€

BitNotice #99 – Mailbag: Spatel

BitNotice #99 - Mailbag: Spatel

(51.7 MB) 00:03:23

2016-06-30 20:46 🛈

Aufhebeln muss man immer mal was – und ich möchte nicht ständig passendes Werkzeug ausleihen müssen. Der Asiate liefert wie üblich: Für 4,20€ und 10 Teilen hatte „BASEUS Flagship Shop“ bei der Bestellung den besten Preis.

Gentoo: OpenSSL ohne ECDHE

Unter Gentoo unterstützt OpenSSL standardmäßig kein ECDHE, welches für aktuelle Crypto kaum wegzudenken ist. Ursache sind die Lizenzbestimmungen bzw. Patente: Teile der Quellen dürfen ausschließlich als Sourcecoude verteilt werden und müssen daher aus vorkompilierten Teilen wie z.B. der Stage3 entfernt werden. Dieses entfernen wird über die USE-Flag „bindist“ (Binary distribution) gesteuert, welche standardmäßig eingeschaltet ist. Um OpenSSL mit EC-Cryoto zu bauen muss bindist entfernt werden – z.B. durch ein „-bindist“ in der globalen make.conf. Nach rebuild von OpenSSL und OpenSSH (sowie ggf anderer Abhängigkeiten und darauf aufbauende Software wie der Webserver) per

emerge -vuaDN openssl openssh

sollte die Crypto auch unter Gentoo verfügbar sein.

Synergy 1.7.6 (Pro) unter Gentoo nutzen

Synerwas?

Synergy ist eine Software um eine Tastatus/Maus-Kombination mit mehreren Rechnern nutzen zu können. Bewegt man z.B. die Maus am Haput-PC an den rechten Bildschirmrand steuert man fortan den danebenstehenden Laptop. Sehr praktisch, wenn man viele Systeme nebeneinander stehen hat. Alles konfigurierbar, versteht sich.

Leider hat die Software einen faden Beigeschmack: Zwar ist der Kern Open Source (GPL), wird vom Hersteller aber nur noch gegen Geld zum Download angeboten. Neue Funktionen sind ebenfalls nur noch mit DRM-online-Aktivierung verfügbar und während die Anpassung an neue Betriebssysteme soweit zügig von statten geht ist die Stabilität in meinen Augen eher auf dem absteigenden Ast.

Wie auch immer: Ich komme nicht drumrum. An einem Arbeitsplatz stehen 4 Rechner nebeneinander und ich habe keinen Nerv ständig die Tastaturen zu wechseln. Da ich dank einer Spende aus Full-Open-Source-Zeiten einen Zugang zu den Downloads habe und meine bisherige Version mit Windows 10 und Server 2016 einige Probleme hat heißt es Aktualisieren.

TLS? Proxy? WTF?

Also rauf auf die Webseite, Login-Formular ausgefüllt und … man landet auf einer HTTP-Seite. Auf der das Login-Cookie unverschlüsselt durch die Gegend geht. Great.

Weiter mit dem Windows-Setup. Installieren, aktivieren. Immerhin: Bei der Aktivierung wird offenbar die OS-API verwendet und der Request augenscheinlich per TLS mit OCSP-Abfrage über den Systemproxy übermittelt. Beim anschließenden Download der Plugins ist dann jedoch Schluss: Direktes CONNECT ohne Möglichkeit einen Proxy einzustellen. Ohne direkten Internetzugriff am Rechner also nicht viel Möglichkeiten.

Konfigurationsterror

Die Konfiguration gestaltet sich mühselig, da Dienst und GUI ständig abstürzten. Letztendlich griff ich auf den Texteditor für die Konfigurationsdatei zurück. Das ging in der Vorversion rigendwie besser. Immerhin: Im Betrieb scheint es bisher stabil zu funktionieren.

Linux? Eat my binary!

Etwas mehr Probleme hatte ich jedoch mit Linux: Im Konstrukt ist ein Gentoo-Rechner, welcher ebenfalls gesteuert werden soll. Die aktuelle Version ist dank GPL über Portage verfügbar und schnell kompiliert und installiert. Nach Eingabe meiner Zugangsdaten verwandelt sie sich nach kurzem Plugin-Download zur Pro-Version. Immerhin. Nur Verbinden geht nicht.

Auslöser ist die Pro-Version: Diese kann – im Gegensatz zum OSS-Kern – eine Verschlüsselte Verbindung zwischen den beteiligten Rechnern nutzen, sodass nicht jeder Netznutzer alle Tastenanschläge mitlesen kann. Dieses Pro-Feature ist jedoch nicht in den Quellcodes vorhanden sondern wird als „Plugin“ bei der Installation heruntergeladen und in ~/.synergy/plugins/ deponiert. Plugin heißt hierbei .so-Library. In Binär. Natürlich gelinkt gegen Bibliotheken bzw. Dateinamen, die ich nicht habe.

Konkret geht es um folgende Liste:

  • linux-vdso.so.1
  • libpthread.so.0
  • libcurl.so.4
  • libSM.so.6
  • libICE.so.6
  • libXtst.so.6
  • libX11.so.6
  • libXext.so.6
  • libXinerama.so.1
  • libXrandr.so.2
  • libXi.so.6
  • libssl.so.10
  • libcrypto.so.10
  • libdl.so.2
  • libstdc++.so.6
  • libm.so.6
  • libgcc_s.so.1
  • libc.so.6
  • libidn.so.11
  • libldap-2.4.so.2
  • liblber-2.4.so.2
  • libresolv.so.2
  • libgnutls.so.28
  • libgcrypt.so.20
  • libz.so.1
  • libuuid.so.1
  • libxcb.so.1
  • libXrender.so.1
  • libtasn1.so.6
  • libnettle.so.6
  • libhogweed.so.4
  • libgmp.so.10
  • libgpg-error.so.0
  • libXau.so.6
  • libXdmcp.so.6

Die Libraries selbst sollten auf einem Desktop-System meist vorhanden sein, nachinstallieren musste ich jedenfalls bei mir nichts. Problematisch waren jedoch libssl.so.10 und libcrypto.so.10 – diese sind unter Gentoo nicht verfügbar und dürften sich auf OpenSSL mit einer Version >= 1.0 beziehen. Die Dateibenennung scheint dabei von Debian(?) zu stammen und wird bei Gentoo anders durchgeführt. Da hierdurch das Plugin nicht lädt wird es ignoriert und die Verbindung zu dem bereits eingerichteten Windows-Clients schlägt, wegen der fehlenden Cryptofunktion, fehl. Zwar erscheint dies auch im Synergy-Log, versteckt sich aber zwischen den ganzen Connect-Nachrichten und ist schnell zu übersehen:

ERROR: failed to load plugin 'libns.so', error: libcrypto.so.10: cannot open shared object file: No such file or directory

Als Quick’n’Dirty-Workarround habe ich bei mir die angemeckerten Dateinamen als Symlink auf die echten OpenSSL-Files angelegt.

cat /usr/lib64/
ln -s libssl.so.1.0.0 libssl.so.10
ln -s libcrypto.so.1.0.0 libcrypto.so.10

Zumindest für’s erste ist hiermit das Plugin funktionsfähig und die Software wieder nutzbar. Sonderlich schön ist es trotzdem nicht.

BitBastelei #202 – McPower LBN-3020 (30V,20A) Netzteil

BitBastelei #202 - McPower LBN-3020 (30V,20A) Netzteil

(237.3 MB) 00:14:41

2016-06-26 10:00 🛈

Netzteile stehen hier einige rum, aber ab und an bedarf es mal etwas mehr „Dampf“. Das LBN-3020 von McPower liefert bis zu 30V und 20A. Je nach Händler und Tagespreis sind hierfür zwischen 125 und 250€ fällig. Nicht viel für die gebotene Leistung, also schauen wir mal, ob das Gerät die Versprechungen erfüllen kann oder man an den falschen Stellen gespart hat.

Edit: 05:00 Bei der Oszilloskopmessungen habe ich offenbar ein Störsignal erwischt – auf dem Bild sind 50Hz zu sehen, nicht 2kHz. Der Fiepton liegt laut Audio bei ca. 6.4kHz, ein weiterer Peak ist bei ca. 13kHz. Da Audio aber ebensoviele Störsignale hat sind auch diese Werte mit Vorsicht zu genießen…

BitBastelei #201 – Rotating LED POV Kit

BitBastelei #201 - Rotating LED POV Kit

(547 MB) 00:48:27

2016-06-19 10:00 🛈

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2016/06/cover-1-300×169.jpgPOV-Anzeigen sind immer ein Hingucker: Durch die Trägheit des Auges zaubern rotierende LEDs scheinbar magisch ein Bild in die Luft. Mit dem „Cross LED Dot Matrix Display Circuit Board Rotating Electronic Kit“ bietet Banggood ein solches Kit für aktuell weniger als 10€ an – ein Preis zu dem man kaum die Bauteile einzel kaufen kann. Mit einigen ungewöhnlichen Kniffen wie LEDs, welche auf der Kante der Platine montiert sind, oder einer drahtlosen Stromübertragung per Spulen zwischen Gehäuse und dem rotierenden Teil des Aufbaus fällt der Bausatz hierbei gleichzeitig in die Kategorie „mal was Neues“. Klingt zu schön um Wahr zu sein? Es gibt einen kleinen Haken: Das Kit ist nicht als klassischer Bausatz zu betrachten sondern erfordert vom Erbauer etwas Eigenleistung. Eine kleine Schaltung muss „fliegend“ anhand eines Schaltplans aufgebaut werden und der verwendete Mikroprozessor wird ohne Software ausgeliefert. Für letzteres finden sich im Netz inzwischen jedoch passende Vorlagen, sodass für die Inbetriebnahme ein USB-TTL-Adapter ausreicht.

Geliefert wird ein Gehäuse mit einer Platine und zwei SMD-Bauteilsätzen – der Eine ergibt zusammen mit dem PCB die rotierende Plattform. Die zugehörige CPU ist per Klebestreifen auf dem PCB befestigt, in meinem Fall jedoch gedreht – blindes Loslöten sollte man also vermeiden. Der Inhalt der zweiten Bauteiltüte muss anhand des Schaltplans zum Oszillator für die Spule im Fuß des Gerätes zusammengesetzt werden. Eine Schematische Zeichnung der fertigen Platine dient hierbei, zusammen mit einigen Fotos in der Artikelbeschreibung, als Aufbauanleitung. Als sehr hilfreich für den Aufbau erwies sich auch das Video vom Kollegen „VoltLog (EN)“, welcher sich vor knapp einem Jahr ebenfalls am Aufbau versuchte.

Das Löten der Platine selbst geht, dank guter Qualität der Lötstoppmaske, recht schnell von der Hand. Der untere Teil ist perforiert und wird am Ende herausgebrochen und zur „3D-Struktur“ zusammengesetzt. Das Löten der 32 LEDs auf die Platinenkante ist etwas trickreich, ging jedoch nach einigen Versuchen schneller als erwartet.

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2016/06/still-osc-300×169.pngDer Oszillator, welcher sich am Ende im unteren Gehäuse befindet, muss, wie erwähnt, selbst aus dem Schaltplan abgeleitet werden. Da die Anzahl der Bauteile überschaubar ist sollte dies auch per „Flugverdrahtung“ möglich sein. Ich habe mich für die Nutzung eines Reststücks Streifenrasterplatine entschieden. Da der Lasttransistor die Betriebsspannung sozusagen über die Spule kurzschließt sollte er gut gekühlt werden. Ich verwende eine kleine „Fahne“, für TO220-Gehäuse – diese ist jedoch etwas unterdimensioniert und wird bei längerem Betrieb unangenehm heiß. In meinem Fall war eine Spannung von mindestens 5.5V notwendig um eine ausreichende Übertragung zum Rotor zu schaffen.

Auf Prozessorseite wird die 8051-basierte CPU ohne jeglichen Inhalt ausgeliefert. Glücklicherweise hat das verwendete Modell einen seriellen Bootloader, sodass kein Spezieller programmer benötigt wird. Die Schnittstelle ist auf einen Pin-Header herausgeführt und arbeitet mit 5V TTL – die üblichen Wandler aus dem Arduino-Umfeld lassen sich also auch hier verwenden.  Bei der nicht vorhandenen Software hat Technik-Blogger „Ceptimus“ großartige Pionierarbeit geleistet. In mehreren Artikeln (1, 2, 3) beschreibt er den Aufbau und die Funktionsweise seiner Software inklusive der verwendeten Fonts, Timer und sonstigen Entscheidungen. Weiterhin stellt er im Ursprungspost gleich eine fertig kompilierte Hex-Datei zur Verfügung.  Sehr praktisch, denn der Code ist ohne Änderung nur mit kommerziellen Compilern nutzbar, sodass Anpassungen wie z.B. DCF77 oder NTP etwas mehr Arbeit erfordern würden.

Ich selbst habe zur Anpassung des Textes direkt in seiner iHex-Datei die ASCII-Zeichen geändert. Der Block mit der unteren Textzeile ist durch die vielen Leerzeichen (0x20) am Beginn einfach zu finden. Zu beachten ist, dass das iHex-Format als letzten Hex-Wert jeder Zeile eine Prüfsumme speichert, bei Modifikationen muss also auch diese angepasst werden. Ich habe hierzu ein kurzes PHP-Script gebastelt, welches die Datei prüft und alle inkorrekten Prüfsummen neu erstellt. Benutzung natürlich auf eigene Gefahr.

<?php
	$file=file('in.hex');
	foreach($file as $line) {
		if(preg_match('/^:(([0-9A-F]{8})([0-9A-F]*))([0-9A-F]{2})$/', $line, $match)) {
			$check = 0x00;
			for($i=0; $i<strlen($match[1]); $i+=2) {
				$check += hexdec($match[1]{$i}.$match[1]{($i+1)});
			}

			$check ^= 0xFF;
			$check += 0x01;
			$check &= 0xFF;

			if($match[4] == str_pad(strtoupper(dechex($check)), 2, '0', STR_PAD_LEFT)) {
				$out[] = $line;
			}else{
				echo "CHECKSUM! O:".$match[4]." N:".str_pad(strtoupper(dechex($check)), 2, '0', STR_PAD_LEFT)." - ".$line."\n";
				$out[] = ':'.$match[1].str_pad(strtoupper(dechex($check)), 2, '0', STR_PAD_LEFT)."\n";
			}

		}else{
			echo 'SKIP: '.$line."\n";
			$out[]=$line;
		}
	}

	$fh = fopen('out.hex', 'w');
	foreach($out as $line) fwrite($fh, $line);
	fclose($fh);
?>

Für das Programmieren steht mit stc-isp eine Linux-Software bereit, Ceptimus hat zudem eine GUI-Variante für Windows entwickelt. Da der Chip nur wenige Sekunden nach dem Einschalten Programme entgegennimmt muss die Stromversorgung im passenden Moment eingeschaltet werden. Beide Programme bieten hierzu eine passende Anzeige. Im Post zur Windows-Variante gibt es zudem einen Sketch, mit dem ein Arduino diese Aufgabe automatisch erledigen kann. In meinem Fall war es nötig einen Pull-Up (~22k?) zwischen TxD und Vcc des POV-Boards zu schalten um eine Stabile Verbindung zu erzeugen.

Auf Schaltungsseite ist die Ansteuerung der LEDs schnell erklärt: Alle hängen mit der Kathode über einen Widerstand direkt an den IO-Pins des Prozessors. Jeder der vier Blöcke mit acht LEDs entspricht hierbei einem Port, welches die Ansteuerung sehr effizient gestalten lässt. Weiterhin wird Pin6, welcher dem externen Interrupt 2 entspricht und über einen Widerstand auf Vcc gehalten wird, über eine IR-Diode bei passieren der zugehörigen LED im Fuß auf GND gezogen. Hierüber kann die Software feststellen wann eine Drehung vollständig ist und so trotz variierender Motordrehzahl das Timing entsprechend angleichen. Die Stromversorgung erfolgt über die Spule, welche eine 1N4148 als Einweggleichrichter nutzt. Die hierdurch entstehenden Unterbrechungen fängt ein Elektrolytkondensator ab. Um die CPU vor Überspannung zu schützen ist zudem eine Zener-Diode mit 5.1V über die Versorgung geschaltet, sodass höhere Spannungen über diese abgeleitet werden können.

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2016/06/coilfreq-300×169.jpgIm Fuß sind IR-LED und Motor direkt mit der Stromversorgung verbunden. Eine weitere Logik auf Transistoren und Widerständen bilden einen Oszillator, welcher die Spule regelmäßig über die Versorgungsspannung „kurzschließt“ um das notwendige Magnetfeld zu erzeugen.

Alles in Allem ein eher anspruchsvolles Kit, welches Dank der großartigen Vorarbeit von Ceptimus und VoltLog für geübte Bastler jedoch trotzdem an einem Wochenende fertigzustellen ist. Die geringen Vorgaben bringen hierbei enorme Freiheiten eigene Ideen zu Implementieren, jedoch auch die Pflicht einiges an Eigenleistung einzubringen. Einsteiger und Ungeduldige dürften mit anderen Kits, welche in einigen Wochen ebenfalls zu sehen sein werden, eher Glücklich werden – müssen dafür jedoch auch tiefer in die Tasche greifen. Wer die Herausforderung annimmt kann am Ende mit einem interessanten Blickfang seine Bastelkünste zur Schau stellen.

Inhalt:

  • 00:00 Was ist POV / Bauteile
  • 06:00 Aufbau des Bausatzes
  • 30:38 Software & Programmierung
  • 39:17 Funktionsweise der Schaltung

 

Veeam B&R: „Auf das verworfene Objekt kann nicht zugegriffen werden. Objektname: System.Net.Sockets.Socket“

Tolle Meldung, die das Backupsystem „Veeam Backup&Replication“ da abwirft:

Auf das verworfene Objekt kann nicht zugegriffen werden. Objektname: "System.Net.Sockets.Socket"

…heißt es lapidar in der GUI, die sonst nur darüber informiert, dass kein Backup mehr funktioniert. Zwar ist recht klar, dass es am Netzwerk hängen dürfte, da hier aber pro VM-Sicherung mindestens 5 Server involviert sind gestaltet sich das etwas aufwändiger.  Vor allem wenn alle relevanten Systeme fehlerfrei auf ICMP-Ping reagierten.

Tiefer im Log des Jobs fand sich eine Meldung, welche auf einen Fehler des Backupziels hindeutet. In meinem Fall handelt es sich hierbei um einen Linux-Server, welcher übers Netz beschickt wird.

<19> Info     [Ssh] Server (nas5.lan.adlerweb.info) version string: "SSH-2.0-OpenSSH_7.2"
<19> Info     Channel encryption check: *** to ***
<19> Info             [AP] Starting client agent on 'nas5.lan.adlerweb.info'
<19> Info             [AP] Linux kernel version [uname -r]:
<19> Error    Failed to check kernel version. Supported Linux kernel version is assumed.

Uhmk? Im Monitoring war nichts zu sehen, außerdem kommt ja der SSH-Header. Schnell mal per KVM auf die Kiste und geprüft:

# uname -a
Linux nas5 4.4.10-1-lts #1 SMP Wed May 11 21:03:02 CEST 2016 x86_64 GNU/Linux
#

Also uname sollte also funktionieren. Auch der SSH-Daemon läuft noch. Im Log sind jedoch einige Meldungen, die möglicherweise das Problem beschreiben:

nas5 dbus[**]: [system] Failed to activate service 'org.freedesktop.login1': timed out
nas5 sshd[**]: pam_systemd(sshd:session): Failed to create session: Failed to activate service 'org.freedesktop.login1': timed out
nas5 sshd[**]: pam_systemd(sshd:session): Failed to create session: Failed to activate service 'org.freedesktop.login1': timed out

freedesktop? Das ding ist Xless -.-. Übeltäter ist wieder einmal „Server sind ja nur Ausnahmeerscheinungen“ Systemd. Dessen Loginmanager bekommt Schluckauf wenn, z.B. im Rahmen von Updated, dbus neu gestartet wird. Als Ergebnis lässt sich PAM bei Logins durchaus mal 15 Sekunden Zeit um in den Timeout zu laufen. Je nach Client/Verbindungsart kann dies jedoch bereits zum Timeout der gesamten Verbindung führen – und nichts geht mehr. um den Fehler zu beheben reicht es aus den Logind neu zu starten:

systemctl restart systemd-logind

Warum ein System, was sonst ja auch alles „on demand“ startet/stoppt/überwacht, sowas seit offenbar langer Zeit nicht in den Griff bekommt bleibt offen. Ebenso wie die Frage, warum Veeam keine genaueren Fehlermeldungen liefert.