BitNotice #82 – Mailbag – AMS1117 3.3V Linearspannungsregler

BitNotice #82 - Mailbag - AMS1117 3.3V Linearspannungsregler

(9.7 MB) 00:01:38

2015-01-18 00:48 🛈

http://www.banggood.com/5V-To-3_3V-DC-DC-Step-Down-Power-Supply-Buck-Module-AMS1117-800MA-p-933674.html

Erstes Repair-Café in Andernach

Im Rahmen der rheinland-pfälzischen Ehrenamtsinitiative „Ich bin dabei“ startete heute das erste Andernacher Repair-Café. In den Räumlichkeiten des „Haus der Familie“ im Obergeschoss der Stadthausgallerie konnten Bürger ihre Kleingeräte mit Hilfe der Mitglieder wieder in Funktion bringen. Egal ob Lichterkette, Kaffeemaschine oder Bügelbrett – mehr als 25 Reparaturen konnten beim ersten Treffen, unter den Augen von Politik und Medien, durchgeführt werden.

Das nächste Repair-Café findet am Freitag, 30.01. ab 14:30 statt.

BitNotice #81 – MPEG-Decoding mit dem Raspberry Pi (Lizenzinstallation)

BitNotice #81 - MPEG-Decoding mit dem Raspberry Pi (Lizenzinstallation)

(3.3 MB) 00:05:00

2015-01-13 20:51 🛈

Während der Raspberry Pi für aktuelle Formate gut gerüstet ist muss er sich bei älteren oft geschlagen geben. Beispielsweise DVDs oder TV-Streams nach dem DVB-Standard nutzen das Format MPEG2, welches durch diverse Patente geschützt ist. Um die Kosten der Hardware gering zu halten haben sich die Hersteller des Raspberry Pi dazu entschieden die vorhandene MPEG-Funktion abzuschalten und so die Patentgebühren zu umgehen. Auf Grund der hohen Nachfrage ist es jedoch möglich eine entsprechende Lizenz separat zu erwerben und so den eigenen Raspberry Pi auch für dieses Format tauglich zu machen. Selbiges gilt auch für VC-1, welches vor allem im Windows Media Format zum Einsatz kommt. Wie man eine solche Lizenz beantragt uns installiert erfahrt ihr hier.

http://www.raspberrypi.com/mpeg-2-license-key/

BitBastelei #131 – Erster Blick auf’s Uni-T UT139A

BitBastelei #131 - Erster Blick auf's Uni-T UT139A

(168 MB) 00:16:29

2015-01-11 11:00 🛈

Das Uni-T UT139A ist ein Einsteigermultimeter, welches mit einigen interessanten Funktionen aufwartet: Auto-Ranging, True-RMS-Messung und hohe Aktualisierungsrate treffen auf Batterietest (mit Dummy-Last) und kontaktlose Leitungssuche. Fragt sich nur, ob es auch in der Praxis die Versprechen halten kann.

http://www.reichelt.de/?ARTICLE=135961

BitNotice #80 – Mailbag: USB-Kabel, UT139A & Kleinkram

BitNotice #80 - Mailbag: USB-Kabel, UT139A & Kleinkram

(35.7 MB) 00:05:00

2015-01-11 07:00 🛈

USB-Kabel: Amazon (inzwischen nicht mehr gelisted)
Rest: Reichelt-Elektronik

BitNotice #79 – Repair Cafés

BitNotice #79 - Repair Cafés

(5.3 MB) 00:02:19

2015-01-10 15:12 🛈

In Repair-Cafés wird euch bei der Reparatur eurer Geräte geholfen – einfach vorbei schauen.

Koblenz: http://repaircafekoblenz.blogspot.de/
Andernach: http://www.andernach.de/de/leben_in_andernach/ehrenamt_aktuelles.html
Weitere: http://repaircafe.org/location/

BitNotice #78 – Nexus 7 Schutzhülle

BitNotice #78 - Nexus 7 Schutzhülle

(58.1 MB) 00:05:19

2015-01-08 21:18 🛈

Aus dem „müsste man mal schneiden“-Archiv: Nexus 7 (2012) Schutzhülle aus TPU-Plastik.

Link (Gleicher Typ, ohne Schutzfolie): http://www.amazon.de/dp/B009KJOQHU/

Unreal Tournament (1999) unter Arch Linux

Zugegeben, mit über 15 Jahren ist das originale UT etwas betagt, aber wenn man die Installationsmedien findet weckt das doch das Bastlerego – ob es auf einem aktuellen Linux läuft? Sollte eigentlich – das Spiel selbst kann bereits seit längerem über den Loki Installer auf Linux lauffähig zu bekommen. Eher Bedenken hatte ich da bei den Libraries: Sound in Kombination mit Pulseaudio hat mir schon bei RTCW:ET eine Menge Bastelzeit gekostet. Auch der Installer setzt GTK1.2 voraus – findet man heute eher nicht mehr. Glücklicherweise bin ich bei Arch da gleich doppelt im Vorteil: Während man bei Ubuntu & Co. das alte GTK manuell installieren muss kann ich auf ein passendes AUR-Paket zurückgreifen. Oder es sein lassen, denn ein Paket namens „UT1999“ erlaubt die Installation ohne den GUI-Installer. Leider ist auch das Paket nur ein Ansatz, aber keine Lösung. Nachdem die Installations-CDs vom Paket erfolgreich in /opt/ut platziert wurde folgte schnell Ernüchterung. Der Befehl wird ohne Meldung beendet, als Exitcode erscheint ein Fehler.

adlerweb@zeus /opt/ut/System $ ./ut-bin
adlerweb@zeus /opt/ut/System $ echo $?
1

Könnte natürlich eine Library sein, da UT99 eine 32-Bit Binary ist und ich auf einem 64-Bit System arbeite. Kurzer Blick: libgl, SDL, openal – alles genannte ist auch in 32-Bit bereits vorhanden. Nach etwas Suchen half dann der Parameter „-log“ den Fehler genauer zu identifizieren:

adlerweb@zeus /opt/ut/System $ ./ut-bin -log
Unreal engine initialized
Bound to SDLDrv.so
Joystick [0] : Unknown Joystick
SDLClient initialized.
Bound to Render.so
Lighting subsystem initialized
Rendering initialized
LoadMap: Entry
Failed to load 'Entry': Can't find file 'Entry'
Failed to load 'Level None.MyLevel': Can't find file 'Entry'
appError called:
Failed to enter Entry: Can't find file 'Entry'
Executing UObject::StaticShutdownAfterError
Executing USDLClient::ShutdownAfterError
UGameEngine::Init
InitEngine
Preparing to exit.
Purging garbage
Unbound to Engine.so
Unbound to Core.so
-0.0ms Unloading: Package Engine
-0.0ms Unloading: Package Core
Game engine shut down
Unbound to SDLDrv.so
SDL client shut down.
Unbound to Render.so
-0.0ms Unloading: Package Render
Lighting subsystem shut down
Rendering shut down
Garbage: objects: 231->0; refs: 0
Object subsystem successfully closed.
Exiting.
Name subsystem shut down

Hintergrund: Das Paket kopiert die Daten an die falsche Stelle. Doll. (Der offizielle Installer veranstaltet angeblich das selbe). Also räumen wir mal auf:

cd /opt/ut/System/
cp -Rv Entry.unr Entry
cp -Rv AS-* CTF-* DM-* DOM-* EOL_* ../Maps

Und siehe da – kurz darauf sieht man das gute, alte

In 2291, in an attempt to control violence among deep space miners, the New Earth Government legalized no-holds-barred fighting.

Ja, sieht. Denn Ton ist wie erwartet ein Problem. Dankenswerterweise muss man sich hier nicht mit PunkBuster o.Ä. herumärgern und darf direkt herumdoktern. Zuerst wird das Audiosystem auf OSS erzwungen, so ist das Basteln einfacher. Hierzu unter /home/[user]/.loki/System/UnrealTournament.ini die Zeile

AudioDevice=ALAudio.ALAudioSubsystem

durch

AudioDevice=Audio.GenericAudioSubsystem

ersetzen. Danach würde ich eigentlich mit padsp starten, aber dieser lädt lediglich die 64Bit-Version, welche der UT-Binary nichts anhaben kann. Dann machen wir es halt manuell:

LD_PRELOAD="/usr/lib32/pulseaudio/libpulsedsp.so"

Viola:

Liandri Mining Corporation, working with the NEG, established a series of leagues and bloody public exhibitions.

– diesmal aus den Boxen. Auch eine kleine Testrunde lief selbst auf 1920×1080 in bester Qualität (für ’99). Da steht einem Onlinespiel auf einem der über 600 aktiven Gameservern ja nichts im Wege…

BitNotice #77 – Arduino Pro Mini Klon

BitNotice #77 - Arduino Pro Mini Klon

(51.3 MB) 00:08:32

2015-01-06 21:56 🛈

Eigentlich war ich nie ein wirklicher Fan des Arduinos – natürlich ist er praktisch um eine Schaltung auszuprobieren oder rumzuspielen, für „richtige“ Einsätze ist er aber viel zu ineffizient und teuer. Zumindest bei Letzterem muss ich jetzt meine Aussage zurückziehen. Dieses kleine Board, welches meist unter dem Begriff „Arduino Pro Mini“ zu finden ist und einen ATMega 328P beheimatet, kostet grade einmal 1,50€ und ist somit günstiger als ich den Chip selbst bekommen kann. Praktischerweise befinden sich auch gleich noch ein 16MHz Quarz, Kleinkram, die obligatorische LED und ein 5V Linearregler an Board. Letzterer kann auch übersprungen und die 5V-Schine direkt von einem Netzteil oder Schaltregler gespeist werden. Auch ist bereits ein Arduino-Bootloader installiert – um diesen nutzen zu können ist eine RS232-Verbindung zum PC notwendig. Ich verwende hier einen einfachen USB-Adapter, dieser ist zwar nicht optimal aber läuft. Auf Grund der Größe, möglichkeit auch ohne Arduino-IDE eigene Programme nutzen zu können und nicht zuletzt des Preises dürfte sich diese Platform zukünftig an so einigen meienr Projekte wiederfinden.

[ZFS/Linux] Priorisierung und Systemlast durch Scrubbing kontrollieren

Das Scrubbing ist ein wichtiger Part der regelmäßigen Pflege eines ZFS-Systems. Hierbei liest das System alle belegten Dateisystemblöcke, vergleicht den Inhalt mit der hinterlegten Prüfsumme und korrigiert – wenn nötig – Fehler auf dem Speicher. Hierdurch ist sichergestellt, dass kippende Bits auf den Festplatten nicht den Inhalt der Datei beschädigen und Fehler frühzeitig erkannt werden. Ein Scrub wird hierbei über den Befehl „zpool scrub poolname“ gestartet.

Um Wöchentlich ein Scrubbing aller zpools durchzuführen nutze ich etwas Bash-Magie – das folgende Script erstellt eine Liste aller im System bekannten zpools und führt ein scrubbing dieser durch. Da ich zum Teil mehrere zpools auf Partitionen einer Platte habe wird immer nur ein Scrub simultan durchgeführt, so wird das Storage nicht zu stark belastet.

#!/bin/bash
date
for i in `zpool list | cut -d ' ' -f 1 | tail -n +2` ;do
    echo $i
    zpool scrub $i

    #Voodoo to prevent simultanous scrubs
    while (zpool status audio | grep scan: | grep scrub > /dev/null) ;do
        sleep 60
        #Scrub still running
    done
done
date

Aber auch ein einzelner Scrub stellt für das System eine nicht unerhebliche Last dar, welche sich negativ bemerkbar machen kann. In meinem Fall ist es eine Datenbank mit vielen kleinen Schreiboperationen, welche während des Scrubs nicht hinzunehmende Delays aufweist. Um hier Abhilfe zu schaffen kann ZFS eine Pause einlegen, sobald IO-Aktivität auf dem Pool entdeckt wird. Kontrolliert wird dieser Wert unter Linux mit dem Parameter /sys/module/zfs/parameters/zfs_scrub_delay – dieser ist per Default auf 4 eingestellt. Die Angabe bezieht sich hierbei laut Dokumentation auf Systemticks, bei den meisten Desktop-PCs ist Tickrate von 1000Hz, bei Server meist 100Hz, üblich. Um zu Prüfen wie das eigene System eingestellt ist kann meist folgender Einzeiler verwendet werden:

zcat /proc/config.gz | grep -E "^CONFIG_HZ_.*=y$"
CONFIG_HZ_250=y

Wie zu sehen ist läuft mein System auf 250Hz. Zusammen mit der Angabe oben würde ZFS bei IO also für 16ms (1s/250Hz*4) pausieren. Um mir etwas Zeit zu verschaffen möchte ich diesen Wert auf 250ms erhöhen:

1 Sekunde / 250Hz = 0,004 Sekunden/Tick = 4 Millisekunden/Tick
250 Millisekunden / 4 Millisekunden ~= 63 Ticks

Dieser Wert wird entsprechend dem Parameter zugewiesen.

echo 63 > /sys/module/zfs/parameters/zfs_scrub_delay

Wirklich messbar ist der Unterschied nur schwer, da er sich nur bei kleinen, zeitlich verteilten Operationen und nicht bei den benchmarküblichen und konstanten Sequential und Random-Operationen bemerkbar macht, gefühlt ist die Reaktion jedoch trotz scrub besser geworden.

Natürlich sollte man bedenken, dass der Scrub entsprechend länger dauert, die Werte sollten also nur temporär oder mit viel Vorsicht geändert werden.

Nerd Inside