IT security, FreeBSD, Linux, mail server hardening, post-quantum crypto, DNS, retro computing & hands-on hardware hacks. Privater Tech-Blog seit 2003.

Schlagwort: USB (Seite 2 von 3)

Mechanische Tastaturen: Von der IBM Model M zum Das Keyboard

Es soll Menschen geben, denen nur das Wort „bekloppt“ einfällt, wenn es im Zusammenhang mit mir um Tastaturen geht. Zugegeben, da könnte ein Funken Wahrheit dran sein.

IBM Model M

Angefangen hat es, wie bei vielen, mit der IBM Model M. Eine wunderbare Tastatur. Es schreibt sich klasse auf dem Ding, sie hat einen ganz eigenen Sound und man fühlt das Tippen einfach. Leider wurde zuletzt nur noch ein PS/2-Modell entwickelt. Es gibt zwar USB-Adapter, aber da die Tastatur mehr Strom verbraucht als normale PS/2-Tastaturen, sterben diese Adapter gerne mal. Zum Beispiel wenn man die NUM-Taste aktiviert. Lösung wäre, die LEDs aus der Tastatur zu nehmen oder einen USB-PS/2-Adapter mit externer Stromversorgung zu nutzen. Beides nicht ideal. Und die Windows/Linux-Taste fehlt ihr auch.

Die Suche nach Ersatz

Gezwungenermaßen musste ich also eine neue Tastatur nutzen. Ich erinnere mich, dass ich schon beim Kauf dem Verkäufer ziemlich auf die Nerven gegangen bin, weil ich mich durch alle Tastaturen probieren wollte. Zu dem Zeitpunkt war eine Tastatur bereits ein Wegwerfartikel. Selbst eine „gute“ lag bei 60 Euro und war aus seiner Sicht völlig ausreichend. Aus meiner Sicht waren alle überladen mit Sondertasten: Taschenrechner öffnen, Suche öffnen, Play. Ich will tippen.

Es wurde eine Logitech. Sie war OK, wobei OK hier der Bruder von Scheiße ist. Dann eine Cherry, besser, aber nicht richtig gut.

Das Keyboard

Irgendwo hörte ich von einer Tastatur namens „Das Keyboard“. Der Preis war mit knapp 160 Euro heftig, besonders da ich keine Möglichkeit hatte, sie vorher zu testen. Glücklicherweise kann man Online-Bestellungen innerhalb von zwei Wochen zurückschicken. Es wurde also Das Keyboard in Version 1.

Perfekt. Schöne Tastatur, tippt sich wunderbar, klingt auch wieder schön. Zwei kleine Probleme: Erstens die Größe, ähnlich wie die IBM, aber nicht mehr ganz zeitgemäß. Zweitens habe ich ein Glas Dr Pepper über die Tastatur gekippt. Nach zwei Jahren war sie tot.

Dieses Mal keine Experimente beim Neukauf. Es wurde das „Das Keyboard Model S Professional Clicky“ mit Cherry MX Blue Switches. Nicht so groß, feiner Sound, tippt sich wunderbar. Mein Workspace zuhause war gerettet.

Im Büro

Blieb noch das Problem auf der Arbeit. Dort hatte ich eine Logitech, bei der die F-Tasten standardmäßig Play, Stop und ähnlich Wichtiges auslösten. Die echten F-Tasten erreichte man nur mit der Fn-Taste. Als schnellen Ersatz gab es dann eine Logitech MK120. Auf dieser konnte ich nicht schreiben. Tut mir leid, geht nicht. Vier Tage versucht. Also die alte Cherry mitgenommen. Das ging immerhin.

Fragen? Einfach melden.

Samsung Galaxy S2: Überhitzung durch defekten BCM4330 und Mainboard-Tausch

Das ärgert mich jetzt. Es hat tatsächlich einige Zeit gedauert, bis ich mich überhaupt zu einem Smartphone habe hinreißen lassen. Damals fiel die Wahl auf das Samsung Galaxy S II. Es lief ein paar Jahre tadellos, vor allem mit CyanogenMod 11.

Das Problem

Irgendwann hielt der Akku nicht mehr den ganzen Tag. Es ging so schleichend, dass ich es zunächst nicht bemerkt habe. Als es dann massiv wurde, dachte ich natürlich zuerst an den Akku selbst, der hatte ja bereits zwei Jahre auf dem Rücken. Beim Laden wurde das Handy besonders warm, um nicht zu sagen heiß.

Also einen originalen Samsung-Akku über eBay besorgt. Leider änderte sich damit nichts. Dann habe ich gelesen, dass Dreck an der USB-Buchse zu Kriechströmen führen kann. Buchse gereinigt, nichts. Netzteil getauscht, nichts.

Die Fehlersuche

Also aufgeschraubt. Inzwischen verbrannte das Gerät selbst im abgeschalteten Zustand so viel Strom in Wärme, dass es trotz angeschlossenem Ladegerät nicht mehr reichte, den Akku zu laden. Ich wollte herausfinden, welches Bauteil die Hitze erzeugt.

Unter einer Schirmung mit der Aufschrift GT-I9100 #4 vermutete ich die Quelle zuerst. Es stellte sich aber heraus, dass es der IC auf der anderen Seite des Mainboards war: SWB-B42. Das ist der Broadcom BCM4330, zuständig für WLAN, Bluetooth und FM-Radio. Meine Hoffnung, dass nur die nahe am Mainboard verlötete CMOS-Batterie ein Problem hatte, war damit dahin.

Reparatur-Optionen

Den BCM4330 bekommt man für etwa 15 Dollar plus Porto. Mit drei Wochen Wartezeit und 30 Euro Einsatz wäre das machbar gewesen. Den alten IC mit Heißluft lösen, neuen auflöten. Viel Arbeit, und gemacht haben sollte man es auch schon mal.

Ich habe mich stattdessen für ein neues Mainboard entschieden. Neu lag ich bei 150 bis 200 Euro. Zu teuer. Aber auf eBay fand ich ein Galaxy S2 mit defektem Display, irgendjemand war wohl draufgetreten. 50 Euro. Gekauft, Mainboard getauscht.

Ergebnis

Es funktioniert. So blieb mir das Galaxy S II doch noch eine Weile erhalten.

Fragen? Einfach melden.

Linux LUKS: Falsche Tastatur bei der Passphrase-Abfrage

Festplattenverschlüsselung mit LUKS ist eine feine Sache. Bis man beim Booten sein Passphrase eingibt, es dreimal falsch ist und sich fragt ob man den Verstand verloren hat. Man hat sein Passphrase mit deutscher Tastatur eingerichtet, aber beim Booten lädt Linux die Keymap erst nach der LUKS-Abfrage. Also tippt man auf einer englischen Tastatur und wundert sich, warum Y und Z vertauscht sind und die Umlaute fehlen.

Ich hab mich davon auch schon verarschen lassen. Nicht nur einmal. Die Lösung ist je nach Distribution unterschiedlich, aber das Grundprinzip ist immer dasselbe: Man muss dem initramfs beibringen, die richtige Keymap zu laden bevor die Passphrase-Abfrage kommt.

Lösung: vconsole.conf + initramfs

Auf systemd-basierten Distributionen (Debian, Ubuntu, Fedora, Arch) setzt man die Keymap in /etc/vconsole.conf:

# /etc/vconsole.conf
KEYMAP=de-latin1

Danach das initramfs neu bauen, damit die Keymap beim Booten verfügbar ist:

# Debian/Ubuntu
update-initramfs -u

# Fedora/RHEL
dracut --force

# Arch
mkinitcpio -P

Nach dem nächsten Reboot wird die deutsche Keymap vor der LUKS-Abfrage geladen.

Alternative: GRUB Kernel-Parameter

Auf Gentoo-basierten Distributionen (Gentoo, Funtoo, das inzwischen eingestellte Sabayon) kann man die Keymap über Kernel-Parameter in GRUB setzen:

# /etc/default/grub
GRUB_CMDLINE_LINUX="... dokeymap keymap=de"

Nach grub-mkconfig -o /boot/grub/grub.cfg greift das beim nächsten Boot. dokeymap weist das initramfs an, die Keymap sofort zu wechseln.

Wenn es zu spät ist

Wer sein Passphrase bereits mit der falschen Keymap eingegeben hat und nicht mehr reinkommt: Das Passphrase auf einer US-Tastatur tippen. Also mental die deutschen Sonderzeichen auf ihre US-Positionen mappen. Z und Y sind vertauscht, ö ist ; und ä ist ‚, Bindestrich liegt woanders. Oder man schließt eine externe USB-Tastatur an und stellt sie auf US. Sobald man drin ist, die Keymap wie oben beschrieben fixen.

Fragen? Einfach melden.

TRIM für SSDs und Flash-Speicher unter Linux aktivieren

Was macht TRIM?

Wenn eine Datei gelöscht wird, entfernt das Dateisystem nur den Eintrag aus seinem Inhaltsverzeichnis. Die Speicherblöcke werden als überschreibbar markiert — aber der Datenträger selbst erfährt davon nichts. Bei klassischen Festplatten ist das egal. Bei Flash-Speicher (SSDs, USB-Sticks, Speicherkarten) wird es zum Problem.

Flash-Speicher verteilt Schreibvorgänge gleichmäßig über alle Zellen — das nennt sich Wear Leveling und verlängert die Lebensdauer. Dafür muss der Controller aber wissen, welche Blöcke frei sind. Ohne diese Information kann er irgendwann nur noch den kleinen Reservebereich nutzen und wird spürbar langsam. Genau hier kommt TRIM ins Spiel: Es teilt dem Datenträger mit, welche Blöcke nicht mehr gebraucht werden.

Methode 1: fstrim (manuell oder per Cronjob)

  • Informiert den Datenträger nur zum Zeitpunkt der Ausführung
  • Funktioniert ab Kernel 2.6.33
  • Lässt sich einfach per Cronjob automatisieren

Einmalig ausführen:

fstrim -v /

Täglich per Cronjob — ein Script unter /etc/cron.daily/hdd-trim anlegen:

#!/bin/bash
echo "Gestartet am: $(date)" >> /var/log/hdd-trim.log
fstrim -v / >> /var/log/hdd-trim.log
chmod +x /etc/cron.daily/hdd-trim

Die meisten Linux-Distributionen bringen mittlerweile einen systemd-Timer fstrim.timer mit, der wöchentlich TRIM ausführt. Ob er aktiv ist: systemctl status fstrim.timer

Methode 2: discard (Echtzeit-TRIM per fstab)

  • Informiert den Datenträger in Echtzeit bei jedem Löschvorgang
  • Erzeugt minimal mehr I/O als periodisches fstrim
  • Bei modernen SSDs und Kerneln problemlos nutzbar

In der /etc/fstab die Option discard zu den Mount-Optionen hinzufügen:

/dev/sda1  /  ext4  noatime,errors=remount-ro,discard  0  1

Device, Mountpunkt und Dateisystem natürlich an das eigene Setup anpassen.

Welche Methode?

Für die meisten Setups reicht der wöchentliche fstrim.timer — das ist heute die empfohlene Methode. discard in der fstab ist sinnvoll, wenn der Datenträger permanent voll ist und sofort von freigegebenen Blöcken profitieren soll. Für ZFS gibt es eine eigene TRIM-Konfiguration — siehe TRIM im ZFS-Pool aktivieren.

Achtung: TRIM sagt dem Datenträger, dass er Blöcke überschreiben darf. Wenn hier etwas schiefgeht, sind Daten weg. Vorher prüfen, ob Kernel, Dateisystem und SSD-Firmware TRIM korrekt unterstützen — und ein Backup haben.

Siehe auch: TRIM für SSDs im ZFS-Pool

Fragen? Einfach melden.

Solaris 11: USB-Kamera und Scanner mit XSane einrichten

Veraltet: OpenIndiana und Solaris werden kaum noch als Desktop eingesetzt. USB-Kameras und Scanner funktionieren unter Linux mit SANE/XSane problemlos.

Man man man… Jetzt habe ich mich doch tatsächlich 1 Stunde lang in etwas sehr sinnlosem verrannt. *kopfschüttel*

Da will ich mal eben ein Bild mittels xsane von einem USB-Scanner einlesen. Da findet xsane auf dem Solaris 11 System den Scanner nicht. Genau so verhält es sich mit einer USB Digitalkamera…..  Ich habe ja überall nachgeschaut, nur wohl ohne Verstand!

Die Lösung war natürlich recht simpel. Einfach mal das Paket: libusbugen installieren. *Narf*

Fragen? Einfach melden.

ZFS NFS-Freigaben unter Solaris/OpenIndiana mit sharenfs einrichten

ZFS bringt NFS-Freigaben als eingebaute Funktion mit — kein separater NFS-Server nötig, ein einziges Property reicht. Das funktioniert unter Solaris, OpenIndiana und teilweise auch unter FreeBSD.

NFS-Freigabe erstellen

Dataset anlegen und per NFS freigeben:

zfs create rpool/daten

zfs set sharenfs=on rpool/daten

zfs get sharenfs rpool/daten
NAME        PROPERTY  VALUE  SOURCE
rpool/daten sharenfs  on     local

Das war es. Das Dataset ist jetzt per NFS im Netzwerk verfügbar — für alle Clients, ohne Einschränkung.

NFS-Optionen

Statt on lassen sich die üblichen NFS-Optionen direkt im Property angeben — zum Beispiel Zugriff nur für ein bestimmtes Subnetz:

# Nur Lesen/Schreiben für ein Subnetz
zfs set sharenfs="rw=@192.168.1.0/24" rpool/daten

# Nur Lesen für alle, Schreiben für ein Subnetz
zfs set sharenfs="ro,rw=@10.0.0.0/8" rpool/daten

# Freigabe prüfen
share -F nfs

Auf dem Client mounten:

mount -t nfs server:/rpool/daten /mnt/daten

Portabilität

Ein netter Nebeneffekt: ZFS-Properties wandern mit dem Pool. Exportiert man den Pool und importiert ihn auf einem anderen System, ist die NFS-Freigabe sofort wieder aktiv:

# Pool exportieren (z.B. vor dem Umstecken einer USB-Platte)
zpool export nfs-share

# Auf einem anderen System importieren — Share ist sofort da
zpool import nfs-share

Alle ZFS-Einstellungen — Compression, Quotas, Snapshots, Freigaben — bleiben erhalten. Für SMB-Freigaben statt NFS siehe ZFS SMB-Freigaben mit sharesmb. Mehr zu ZFS: ZFS Compression und Deduplication. Fragen? Einfach melden.

ZFS Pool und Datasets erstellen: Die Grundlagen

Für die Administration von ZFS muss man sich zwei Befehle merken: zpool wenn es um den Pool geht (Platten, Redundanz, Status) und zfs wenn es um Datasets geht (Dateisysteme, Properties, Snapshots).

Pool erstellen

Ein Pool auf einer einzelnen Platte:

zpool create backup da0

zpool list backup
NAME     SIZE  ALLOC   FREE  CAP  HEALTH
backup  74,5G   132K  74,5G   0%  ONLINE

ZFS erkennt automatisch, dass da0 eine Platte ist, legt ein gleichnamiges Root-Dataset an und mountet es unter /backup. Man kann sofort Daten speichern. Für Redundanz siehe ZFS RAID: Mirror und RAID-Z.

Datasets anlegen

Innerhalb eines Pools legt man Datasets an — vergleichbar mit Partitionen, aber flexibler. Jedes Dataset kann eigene Properties haben (Compression, Quota, Mountpoint):

# Dataset anlegen
zfs create backup/daten

# Quota setzen — maximal 50 GB
zfs set quota=50G backup/daten

# Reservation — mindestens 10 GB garantiert
zfs set reservation=10G backup/daten

# Mountpoint ändern
zfs set mountpoint=/mnt/daten backup/daten

# Ergebnis prüfen
zfs list backup/daten
NAME           USED  AVAIL  REFER  MOUNTPOINT
backup/daten    31K   50,0G    31K  /mnt/daten

Datasets teilen sich den freien Platz im Pool — ohne Quota kann jedes Dataset den gesamten Pool füllen. Mit Quota begrenzt man den Verbrauch, mit Reservation garantiert man einen Mindestanteil. Properties wie Compression lassen sich pro Dataset setzen.

Pool export und import

Einen Pool kann man jederzeit exportieren und auf einem anderen System importieren — alle Datasets, Properties und Snapshots wandern mit:

# Pool exportieren (z.B. vor dem Abziehen einer USB-Platte)
zpool export backup

# Auf einem anderen System importieren
zpool import backup

# Verfügbare Pools anzeigen (ohne Import)
zpool import

Details zu allen Pool-Optionen in der OpenZFS-Dokumentation. Fragen? Einfach melden.

Solaris USB unmount

Veraltet: OpenIndiana und Solaris werden kaum noch eingesetzt. Unter Linux: umount /dev/sdX, unter FreeBSD: umount /dev/daX.

Der OpenSolaris fork Openindiana und das USB mount Problem

Inzwischen ist man selbst als Unix Mensch verwöhnt von seinem GUI. Daher nerven kleinere Problemchen welche einen zwingen doch wieder die Konsole zu öffnen sehr….Openindiana unmount umount USB Stick So ging es mir mit allem was man so mal eben in die Kiste stopfen kann. Ob es nun ein USB-Stick, eine CD/DVD oder eine Wechselplatte ist. Sie wird sauber erkannt und automatisch eingebunden. Es gibt ein schönes Symbol auf dem Gnome Desktop und in dessen Dateiverwaltung. Selbst der Zugriff auf alles klappt tadellos. Aber wehe man möchte das Teil wieder los werden. Sobald man auf „Aushängen“ klickt, springt einem das System mit der GUI-Meldung an: cannot unmount volume Sehr nervig…. Konsole aufmachen, su, unmount….. Dass dieses ein Problem mit irgendeiner Berechtigung sein muss ist schnell klar, aber welcher? Google konnte mir schnell helfen. Das Problem besteht seit 147 bzw. Solaris Express, soll aber inzwischen gefixt sein. Ist es auch, nur taucht es inzwischen durch eine andere Änderung wieder auf. Das ganze ist bekannt und soll gelöst werden. Bisher gibt es einen Workaround. Einfach nachstehende Zeile in die folgende Datei packen:
/etc/logindevperm
/dev/vt/console_user    0620    /dev/console            # workaround for defect.opensolaris.org 12133
Einen einfachen Reboot später klappt dann alles mit dem unmount per GUI.

Solaris Virtualbox

Veraltet: OpenIndiana und Solaris werden kaum noch eingesetzt. VirtualBox läuft unter FreeBSD und Linux problemlos.

Solaris Virtualbox

Der OpenSolaris fork Openindiana und VirtualBox

Nicht nur das die modernen Systeme inzwischen meist genug Leistung haben um zu einem Hostsystem noch ein weiteres oder mehrere zu „Emulieren“ nein, man kann es auch ganz gut gebrauchen. Bedingt durch meine Arbeit bin ich leider an vielen Stellen auf Produkte von Microsoft angewiesen. Zusätzlich ist es ganz praktisch für Schulungen oder Vorträge immer ein dazu passendes, sauberes und funktionsfähiges System aus dem Glas holen zu können. Natürlich ist es auch mehr als praktisch wenn man Experimente nicht immer in seinem echten System fahren muss. Ich setzte hier derzeit auf VirtualBox, da dieses die für mich wichtigsten Plattformen abdeckt und ich so die VMs einfach von hier nach da schieben und nutzen kann. Das darf natürlich auf meinem Solaris Desktop nicht fehlen! Bei Oracle gibt es fertige Pakete für Solaris. Ein solches ist schnell heruntergeladen und entpackt sich fast von alleine:
$ tar xvzf VirtualBox-4.1.2-73507-SunOS.tar.gz
Die Installation stellt einen auch nicht weiter vor große Probleme:
$ cd VirtualBox-4.1.2-73507-SunOS
$ pkgadd -d VirtualBox-4.1.2-SunOS-r73507.pkg
Damit ist Virtualbox schon nutzbar und fertig installiert. Man sollte nun aber nicht vergessen seinen User mit in die Gruppe vboxuser zu packen, sonst gibt es so lustige Fehlermeldungen beim Versuch an USB Geräte zu kommen:
Could not load the Host USB Proxy service (VERR_ACCESS_DENIED).
Details:
Result Code: NS_ERROR_FAILURE (0x00004005)
Component: Host
Interface: IHost {f460cbfc-2332-4fa6-899e-45ded6b3242342}
Callee: IMachine {99404fe0-2310-40d3-889b-dd2f79e7365e}
USB 2.0 und noch etwas mehr Lulu bekommt man über das Oracle VM VirtualBox Extension Pack. Hier sollte man sich aber (wie bei allen Dingen) die Lizenzbestimmungen durchlesen.

Solaris NFS

Veraltet: OpenIndiana und Solaris werden kaum noch eingesetzt. NFS funktioniert unter FreeBSD und Linux identisch und ist dort besser dokumentiert.

Der OpenSolaris fork Openindiana und NFS zu Linux

Es gibt leider ein kleines Problem zwischen den Lizenzen unter welchen Linux und Opensolaris herausgegeben werden. Diese sind nämlich inkompatibel. Das bedeutet man kann nicht einfach Code welcher unter der CDDL erstellt wurde in den GPL Linux Kernel packen und umgekehrt. Dieses merkt man, wie ich, sehr schnell beim einfachen Versuche seine lang genutzte externe ext4 formatierte USB Festplatte in mein Opensolaris zu mounten….. Es gibt zwar Mittel und Wege sein ext2 / ext3 read only zu mounten aber bei ext4 ist hängen im Schacht :-/ In Zeiten von GB-Netzwerken geht das ja bei kleineren Datenmengen dank NFS noch. Solaris Linux NFS mount Pahhh da boote ich ganz cool meine Linux-Schüssel, hänge die USB-Platte ein und passe meine exports für einen ganz einfachen und schnellen Share an:
$ cat /etc/exports
/festpladde (ro)
Dann noch schnell dem NFS Server auf der Linuxschüssel sagen das er die exports neu einliest:
$ exportfs -ra
Und noch mal gegenchecken ob der Export auch sauber in der Liste steht:
$ showmount -e
/festpladde *
Perfekt nun sollte jeder Rechner einfach die Daten mounten können, denke ich! Auf meinem Solaris gebe ich schnell in der Konsole den mount Befehl ein und:
$ mount 192.168.1.88:/festpladde /mnt
No such file or directory
No such file or directory????? Ich prüfe alle Einstellungen noch 3 mal nach…. Alles richtig! Alles richtig? Ja im groben schon. Solaris versucht die Linux Kiste per NFSv4 anzusprechen. Dieses unterstützen zwar beide Maschinen, es kann denn noch Probleme damit geben. Schaltet man aber bewusst auf NFSv3 zurück klappt es (darauf soll mal einer kommen.).
$ mount -o vers=3 192.168.1.88:/festpladde /mnt
Ganz blöde Falle, oder? Hat man häufiger Datenaustausch per NFS zu Linux Maschinen könnte man Solaris dazu bringen per default immer NFSv3 zu nutzen:
$ sharectl set -p client_versmax=3 nfs
Will man es später ändern reicht es natürlich die 3 gegen eine 4 zu ersetzten, schlau was?

Fragen? Einfach melden.

« Ältere Beiträge Neuere Beiträge »

© 2026 -=Kernel-Error=-RSS

Theme von Anders NorénHoch ↑