Kategorie-Archiv: Hardware

HowTo – Ext3 FS für den Einsatz mit einem USB Stick optimieren

Problem:
Ich möchte einen 2GB USB-Stick mit ext3 formatieren und dauerhaft mit einer Fritzbox nutzen. Gibt es mögliche Optimierungen für diesen UseCase?

Lösung:
Ja, bzw. sollte! =)
Die Partitionierung und Formatierung kann der Bequemlichkeit halber mit gparted durchgeführt werden. Soweit – sogut.
Im Anschluss sollte man die manpage des Tools „tune2fs“ studieren, um das jeweilige Filesystem (je Partition!) zu tunen.
Nach der Erstellung und Formatierung der Partition mittels gparted hat man folgenden Zustand:

user@hostname:~$ sudo tune2fs -l /dev/sde1
tune2fs 1.42.9 (4-Feb-2014)
Filesystem volume name: rootfs
Last mounted on:
Filesystem UUID: d34e5d7a-e3c6-4cbe-8ac4-39b979352331
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 128016
Block count: 512000
Reserved block count: 25600
Free blocks: 485301
Free inodes: 128005
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2032
Inode blocks per group: 254
Filesystem created: Sun Mar 23 14:17:53 2014
Last mount time: n/a
Last write time: Sun Mar 23 14:17:58 2014
Mount count: 0
Maximum mount count: -1
Last checked: Sun Mar 23 14:17:53 2014
Check interval: 0 ()
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: d0ba6c40-c20c-40b9-bd25-08a7a32940a4
Journal backup: inode blocks

Ich lege euch ans Herz, die nachfolgend verwendeten Optionen in Eurem Fall DOPPELT zu prüfen. Ich warne ausdrücklich und gebe keine Garantie auf Richtigkeit – das jedoch gilt ja eh für den ganzen Blog. tune2fs kann auch nachträglich verwendet werden. In einem solchen Fall sollte man sich immer vergewissern, dass ein aktuelles Backup vorliegt.
Das Device ist natürlich entsprechend den Gegebenheiten anzupassen.


sudo tune2fs -m 0 -o journal_data_writeback,^acl,^user_xattr -c 0 -i 52w /dev/sde1

Ausgabe:

tune2fs 1.42.9 (4-Feb-2014)
Die maximale Anzahl von Einhängungen wird auf -1 gesetzt
Das Intervall zwischen zwei Checks wird auf 31449600 Sekunden gesetzt
Der Prozentsatz reservierter Böcke wird auf 0% (0 Blöcke) gesetzt

Ich erläutere kurz, was ich mir hier gedacht habe:

# reservierter Speicher auf null setzen, sollte bei einem RootFS sinnvoll gesetzt werden
-m 0
# Entfernen von acl und xattr, und das FS Journal wird nicht so streng gehandhabt
# dadurch arbeitet der Stick etwas schneller im Vergleich zum Standard
# INFORMIERT EUCH ÜBER DIE AUSWIRKUNG DER OPTION!!
-o journal_data_writeback,^acl,^user_xattr
# automatischen fsck nach x Tagen deaktivieren
-c 0
# alle 52 Wochen wird aber ein fsck forciert, fürs Gewissen 😉
-i 52w

HowTo – STLinux Toolchain (sh4) selbst erstellen

Problem:
Ich möchte für meinen Receiver etwas kompilieren.
Folgende relevante Systeminfos habe ich vom Receiver:

hostname:~# uname -r
2.6.32.59_stm24_0211

Dazu benötige ich also die sh4 Toolchain von STLinux.

Lösung:
Ich lade die ISO mit der STLinux Toolchain runter, mounte das ISO File, generiere mittels alien aus allen im ISO befindlichen *.rpm Dateien entsprechende *.tgz Dateien. Im Anschluss entpacke ich alle *.tgzs und habe alle notwenigen Dateien um CrossCompiles durchzuführen.

Wichtig: Das mitgelieferte Install-Script bietet zwar einen Schalter für die Installation unter Debian, jedoch funktionierte dieses nicht unter Debian Sid und wirft entsprechend Fehler. Ich möchte behaupten, dass die hier eingesetzte Methode die Bessere ist. Schliesslich wird damit Paketsystem-Inkonsistenzen vorgebeugt und ist sehr einfach zu handeln.

UPDATE: STLinux-2.4-sh4-20140404.iso ist verfügbar! Bitte entsprechend anpassen! 😉


# installation von dependencies (evtl ist das mehr als zwingend nötig)
sudo apt-get install alien fakeroot
# ISO runterladen
wget ftp://ftp.stlinux.com/pub/stlinux/2.4/iso/STLinux-2.4-sh4-20121121.iso -O /tmp
# Mount Ziel erstellen
mkdir /tmp/loop
# mounten der ISO
sudo mount -o loop,ro /tmp/STLinux-2.4-sh4-20121121.iso /tmp/loop
# Arbeitsordner für alien erstellen und dahin wechseln
mkdir -p /tmp/alien/TGZ && cd /tmp/alien/TGZ
# alle in der ISO befindlichen RPMs zu TGZs wandeln - tip: get a beer!
find /tmp/loop/* -name *.rpm -exec fakeroot alien -t {} ;
# Verzeichniswechsel nach /tmp/alien
cd /tmp/alien
# entpacken aller generierten TGZs
find /tmp/alien/TGZ -name '*.tgz' -exec tar xvzf {} ;
# Toolchain ans gewünschte Ziel tranferieren, in meinem Fall /opt/toolchains
sudo mv /tmp/alien/opt/STM/STLinux-2.4 /opt/toolchains
# OPTIONAL: Packen der Toolchain um diesen Vorgang nicht nochmal wiederholen zu müssen 😉
sudo tar -cvzf Toolchain-STLinux-2.4-sh4-20121121.tgz -C /opt/toolchains STLinux-2.4

Usecase: Ich hab mir ein einfaches Bashscript für den Buildprozess erstellt und exportiere dort die entsprechenden Variablen.

# erst die exports
export CC="sh4-linux-gcc"
export CXX="sh4-linux-g++"
export PATH=$PATH:/opt/toolchains/STLinux-2.4/devkit/sh4/bin
export TOOLCHAIN=/opt/toolchains/STLinux-2.4/devkit/sh4
# und hier wird der Build durchgeführt
make V=1 CROSS=$TOOLCHAIN/bin/sh4-linux-

Ich hoffe damit kann jmd etwas anfangen, Erfahrungen und Kommentare sind hierzu ausdrücklich erwünscht! 😉

CUPS Weboberfläche im Netzwerk freigeben

Problem:
Ich habe einen Druckserver und möchte das Webinterface vom lokalen Netzwerk aus nutzen.

Lösung:
Früher durfte man die cupsd.conf bearbeiten, heute aber kann man das Webinterface via sudo cupsctl --remote-admin im Netzwerk freigeben.
Wen die Paranoia plagt, der kann nach getaner Arbeit das Webinterface wieder fürs Netz deaktivieren.sudo cupsctl --no-remote-admin

Debian für OSCam Installation vorbereiten

Zuerst müssen die benötigten Pakete installiert werden

sudo apt-get install cvs autoconf libccidmake patch ncurses-bin gcc g++ flex bison pkg-config libpng3 tar bzip2 gzip zlib1g-dev lib32z1 libssl-dev libpcsclite-dev libusb-dev

Dann müssen die Sources heruntergeladen werden

cd /opt/sources
svn co http://streamboard.de.vu/svn/oscam/trunk oscam-devel

Jenachdem was man vor hat, kann man nun noch das Script von den Entwicklern entsprechend anpassen und ablegen. Dort findet sich auch die umfangreich zu konfigurierende cmake-Befehlskette für die Kompilierung selbst.

Debian für Freetz Kompilierung vorbereiten

Problem:
Ich möchte mir ein freetz Image für den Router erstellen – was muss ich tun?

Lösung:
Zuerst sucht man sich ein Plätzchen für die Quellen, ich nutze dazu /opt/sources – dort dürfen nur die User der Gruppe src schreiben. Mit „id“ kann man prüfen, ob man Mitglied der Gruppe ist.

sudo mkdir /opt/sources
sudo chmod 775 /opt/sources
sudo chgrp src /opt/sources
cd /opt/sources

Jetzt müssen noch einige Pakete installiert werden

sudo apt-get install subversion zlib1g-dev libacl1-dev libncurses5-dev libcap-dev autoconf automake libtool bison flex libc6-dev-i386 gcc-multilib lib32ncurses5-dev

Nun kanns schon losgehn

cd /opt/sources
# Entwicklertrunk ist mir am liebsten 😉
svn co http://svn.freetz.org/trunk freetz-devel
cd freetz-devel
make menuconfig
make

FIX: Standby bei Debian jessie/sid funktioniert nicht

Problem:
Mein Laptop läuft auf Debian Testing (Jessie) und seit dem Upgrade funktioniert die Energieverwaltung nicht mehr richtig. Ich möchte, dass der Laptop in den Standby Modus geht – sowohl wenn ich den Deckel schließe als auch wenn ich die Hotkeys (z.B. Fn + F5) verwende. Übers Terminal, mittels pm-suspend getriggert, passiert Erwartetes einwandfrei.

Lösung:
Ich habe eben hier gefunden.

apt-get install systemd-shim systemd-ui

Das hat genügt, die vermissten Funktionen (Standby via LID und Hotkey) waren SOFORT verfügbar!

Das Paket systemd-ui ist nicht essentiell – ich fand aber ein zugehöriges Frontend verlockend. Dieses scheint zum jetzigen Zeitpunkt jedenfalls nocht nicht zu funktionieren

user@host:~$ sudo systemadm

** (systemadm:9050): CRITICAL **: file /home/kay/data/src/systemd-ui/src/systemadm.vala: line 335: uncaught error: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such method `Subscribe' (g-dbus-error-quark, 19)

(systemadm:9050): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion `G_IS_OBJECT (object)' failed

(systemadm:9050): Gtk-CRITICAL **: gtk_widget_show_all: assertion `GTK_IS_WIDGET (widget)' failed


Debian Filename: pool/main/s/systemd-ui/systemd-ui_2-2_amd64.deb

Diesen Pfad solltet ihr bei der genannten Version ebenfalls sehen – bei mir gibts den jedenfalls nicht! 😀
/home/kay/data/src/systemd-ui/src/systemadm.vala

Freetz Trunk lässt sich nicht auf Debian Testing compilen

Problem:
Ich wollte mal wieder mein Freetz-Image aktualisieren, also ab in die Sources und ein „svn update“ durchgeführt – soweit sogut. Im Anschluss führe ich make clean aus und folgende Meldung erscheint.

boss@devil:/opt/freetz-box/freetz-devel$ make clean
ERROR: The header file sys/acl.h was not found in /usr/(local/)include.
ERROR: The header file sys/capability.h was not found in /usr/(local/)include.
Makefile:133: *** Some build prerequisites are missing! Please install the missing packages before trying again. Schluss.

Lösung:
Ich habe apt-file nach den fehlenden Dateien befragt und dadurch die Lösung erhalten. Es muss die Installation der folgenden Pakete durchgeführt werden, im Anschluss funktioniert der Freetz-Buildtree wieder wie gewohnt!

apt-get install libacl1-dev libcap-dev

Happy Freetzing!

Wann und wieso die Dateien nicht mehr vorhanden waren, habe ich nicht weiter untersucht. Geht ja wieder alles ^^

svchost.exe 100% CPU bei Windows XP Update

Problem:
Ich habe 3 Rechner mit WinXP SP3 Slipstream neuinstalliert. Leider ist es über den IE6 nicht möglich, die ausstehenden MS Updates einzuspielen da das System mit der svchost.exe auf 100% Auslastung hängt.

Ich habe einige Dinge ausprobiert, im Internet finden sich haufenweise Beschreibungen des Fehlers, welcher wohl im Jahr 2011 unter XP SP2 schon aufgetreten ist. Dementsprechend sind die Lösungen auch nicht praktikabel, da die vorgeschlagenen Patches schon in SP3 integriert sind.

Am 3. Tag habe ich dann mal nebenbei die Lösung für das Problem gefunden – endlich!! =)

Wichtig: svchost.exe kann 100% Auslastung verursachen, das ist prinzipiell kein Fehler und „muss so sein“!
Wenn aber nach 12 Stunden keine Veränderung zu sehen ist, dann kann nachfolgendes hilfreich sein.

Workaround:
2 manuell-installierte Dinge haben die Lage entspannt und endlich Windows Updates ermöglicht.

1. Installieren der aktuellen Root Zertifikate von Microsoft
http://www.microsoft.com/de-de/download/details.aspx?id=38918

2. Installieren des Internet Explorers 8
http://www.microsoft.com/de-de/download/internet-explorer-8-details.aspx

Nach einem Neustart sollte das Windows Update Tool wieder Ergebnisse liefern!

snmpd – Basis Einrichtung unter Linux

Problem:
Ich möchte per SNMP einige Geräte mit Cacti überwachen.

Lösung:
Ich installiere snmpd und konfiguriere spartanisch
apt-get install snmpd
vi /etc/snmp/snmpd.conf

Meine modifizierten Variablen wie folgt:
agentAddress udp:161
view systemonly included .1.3.6.1.2.1
sysLocation Sitting on the Dock of the Bay
sysContact Me

Zuletzt den Dienst nochmal durchstarten, fertig!
/etc/init.d/snmpd restart

Der String .1.3.6.1.2.1 ist in der RFC1213-MIB spezifiziert und wird in einem O’relly Dokument recht gut erklärt wie ich finde.

Dazu gibt es im Debian Zweig noch ein MIB-Downloader Paket welches ich installiere

apt-get install snmp-mibs-downloader
# damit sind die MIBs auch schon runtergeladen

Dann muss in /etc/default/snmpd noch folgende Zeile ergänzt werden:

# Don't load any MIBs by default.
# You might comment this lines once you have the MIBs downloaded.
export MIBS=UCD-SNMP-MIB

Jetzt muss nur noch der snmpd neu gestartet werden.

Nachtrag:
Der Service loggt standardmäßig doch recht viel, das kann in der Datei /etc/default/snmpd abgeändert werden.

DebugLog:
# snmpd options (use syslog, close stdin/out/err).
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'

WarningLog:
# snmpd options (use syslog, close stdin/out/err).
SNMPDOPTS='-LS0-5d -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'

Die -L Option wird auf der Projektseite des PerlModuls näher erklärt
http://net-snmp.sourceforge.net/docs/man/snmpcmd.html

Nachtrag:
Netzwerk-Verbindungsüberwachung, zB für klassisches DSL oder PPTP VPN funktioniert nur solange die Verbindung besteht. Wird diese getrennt, dann kann snmpd nichts mehr liefern – Auch wenn die Verbindung wieder hergestellt ist!!
Abhilfe schafft hier ein einfaches, ausführbares (chmod 755) Script /etc/ppp/ip-up.d/snmpd-restart.sh

#!/bin/sh
/etc/init.d/snmpd restart

Damit wird bei jeder neuen, erstellten Verbindung der SNMP Dienst neu gestartet. Quick & Dirty