hejdo : de : computer : mac

blog :: de :: computer :: mac

Fri, 23 Apr 2010

Mehr Infos beim Booten

Normalerweise zeigt ein Intel-Mac während des Bootvorgangs kaum Informationen an. Für Neugierige gibt es einen einfachen Weg, an mehr Infos zu kommen. Der folgende Befehl setzt eine Systemvariable, die ab dem nächsten Neustart für viele Text-Infos auf der Konsole sorgt.

 sudo nvram boot-args="-v"

posted at: 23:01 | path: /de/computer/mac | permalink

Sat, 27 Jun 2009

Schlafmodi eines MacBooks

Das Power-Management von MacBooks lässt sich mit dem kleinen Tool pmset tunen. Für die meisten Einstellungen benutzt man besser (einfacher) die Systemsteuerung, aber einiges lässt sich nur an der Kommandozeile einstellen.

Besonders interessant erscheinen mir die verschiedenen Schlafmodi. Voreingestellt ist der hibernatemode 3: Beim Einschlafen (z.B. durch Zuklappen des Bildschirms) wird der Inhalt des Hauptspeichers in eine besondere Datei (/private/var/vm/sleepimage) geschrieben. Anschließend geht das System aber in einen normalen Schlafmodus über, bei dem das RAM weiterhin mit Strom versorgt wird, solange die Batterie noch hält. Dadurch geht das Wiederaufwachen schneller vonstatten.

Im Modus 1 hingegen schaltet der Computer nach Erstellen des Sleepimage den Strom komplett ab. Dadurch wird während des Schlafens kein Strom mehr verbraucht, aber beim Aufwachen muss der komplette Speicher von der Festplatte reinitialisiert werden, was naturgemäß ein Weilchen braucht.

Theoretisch müsste auch Modus 2 funktionieren, bei dem kein Sleepimage genutzt wird und sowohl beim Einschlafen als auch beim Aufwachen die Festplatte unberührt bleibt. Das würde für ein noch schnelleres Einschlafen sorgen, aber beim Verlust der Stromversorgung während des Schlafens einen Komplettabsturz des Systems nach sich ziehen. Ich würde diesen Modus folglich nicht empfehlen und habe ihn auch nicht getestet.

Zwischen den einzelnen Modi wird mit einem kurzen Befehl an der Kommandozeile (Terminal.app) umgeschaltet:

sudo pmset -b hibernatemode 3

sudo pmset -b hibernatemode 1

pmset erlaubt (wie die Systemsteuerung) unterschiedliche Einstellungen für den Einsatz mit und ohne Netzteil. Zum Stromsparen ohne Netzteil (Battery, -b) bei gleichzeitig schnellerem Einschlafen mit Netzteil (Charger, -c) würden sich also folgende Befehle eignen:

sudo pmset -c hibernatemode 3

sudo pmset -b hibernatemode 1

Weil der Stromsparmodus aber nicht während des Schlafens umgeschaltet wird, funktioniert das nicht, wenn man erst den Bildschirm zuklappt und dann das Netzteil entfernt. Während dieses Schlafvorgangs würden dann trotzdem die Netzteil-Einstellungen verwendet. Wer also unterschiedliche Schlafmodi für Netzteil und Batterie verwenden möchte, müsste immer zuerst das Netzteil abstöpseln und erst danach den Rechner einschlafen lassen.

posted at: 13:50 | path: /de/computer/mac | permalink

Sun, 31 May 2009

ipfw-Firewall unter OS X 10.5

OS X 10.5 "Leopard" benutzt eigentlich eine Application-Level-Firewall, bei der bestimmte Programme signiert sind (Systemprogramme von Apple) oder werden (zusätzliche Programme, die der Anwender installiert hat) und aufgrund dessen Daten mit dem Netz austauschen dürfen.

Weiterhin vorhanden ist aber auch die klassische Paketfilter-Firewall ipfw. Wer ein entsprechendes Skript hat, kann alternativ auch diese nutzen: /sbin/ipfw /etc/firewall.ipfw beispielsweise lädt die Firewall-Regeln, die in /etc/firewall.ipfw gespeichert sind.

Ein Beispiel für /etc/firewall.ipfw habe ich ins Netz gestellt.

posted at: 12:27 | path: /de/computer/mac | permalink

Sat, 16 May 2009

Skype Video-Auflösung reduzieren

Skype unterstützt Videotelefonate – eine tolle Sache, solange die Bandbreite ausreicht! Leider ist genau das bei DSL-Light (und auch bei einfachen "großen" DSL-Anschlüssen) nicht der Fall. Das Resultat: Unförmige Klötzchen und Artefakte, die freilich mit hoher Auflösung übertragen werden.

Folgende Änderung ermöglicht es, die Videoauflösung zu reduzieren. Was dadurch an Bandbreite gespart wird, nutzt Skype für höhere Bildqualität in der neuen Auflösung. So benötigt ein Video, das statt mit 640x480 Pixeln nur mit 320x240 Pixeln übertragen wird, gerade einmal ein Viertel der Bandbreite.

Um die Änderung vorzunehmen, beenden Sie zunächst Skype. In Ihrem Heimatverzeichnis gibt es unter Library/Application Support/Skype einen Ordner, dessen Name dem Skype-Benutzernamen entspricht. Darin befindet sich eine Datei config.xml, die Sie in einem Editor (z.B. Textedit oder Dashcode) öffnen. Suchen Sie darin einen Abschnitt <Video>, der zunächst vermutlich nur folgenden Text enthält:

    <Video>
      <Device>Built-in iSight</Device>
    </Video>

Hier ergänzen Sie drei Zeilen, sodass der Abschnitt beispielsweise so aussieht:

    <Video>
      <Device>Built-in iSight</Device>
      <CaptureWidth>320</CaptureWidth>
      <CaptureHeight>240</CaptureHeight>
      <Fps>10</Fps>
    </Video>

Die neu eingefügten Optionen stehen für Bildbreite, Bildhöhe und Bildzahl pro Sekunde.

Mit den neuen Einstellungen ist das Bild kleiner (bzw. im Vollbildmodus unschärfer), dafür aber wesentlich detailreicher, selbst bei einer Bandbreite von nur 64 kbps im Uplink.

Wer freilich DSL mit 16 Megabit oder mehr sein eigen nennt, verfügt vermutlich über eine wesentlich komfortablere Bandbreite auch im Uplink und kann über diesen Verbesserungsvorschlag daher nur schmunzeln ...

posted at: 10:36 | path: /de/computer/mac | permalink

Sat, 28 Mar 2009

.profile für ssh-agent

Der folgende Tipp eignet sich grundsätzlich für jedes Betriebssystem. Besonders nützlich ist er aber unter OS X, wo es keinen X-Server gibt, dem man händisch Umgebungsvariablen aufdrücken könnte.

Will man mit SSH auf einen anderen Server zugreifen, wird man sich häufig über einen asymmetrischen Schlüsselaustausch authentifizieren. Da der private Teil des Schlüssels seinerseits verschlüsselt ist, müsste man eigentlich für jede Verbindung trotzdem ein Passwort eingeben – nur eben nicht für das Benutzerkonto auf dem anderen Rechner, sondern für den privaten Schlüssel im eigenen Heimatverzeichnis. Weil das lästig ist, gibt es ein kleines Hilfsprogramm ssh-agent, das den entsperrten Schlüssel speichert und für künftige SSH-Sitzungen aufbewahrt. ssh-agent muss eigentlich nur einmal (pro Benutzer) gestartet werden und läuft dann im Hintergrund weiter. Aber die jeweils benutzte Shell muss wissen, wie sie auf ssh-agent zugreifen kann. Dazu gibt ssh-agent ein paar Shell-Kommandos aus, welche entsprechende Umgebungsvariablen setzen.

Unter Linux wird man ssh-agent daher aus der ~/.xinitrc aufrufen, sodass der X-Server diese Umgebungsvariablen kennt und allen aufgerufenen Terminalfenstern mit auf den Weg gibt. Diese Methode funktioniert unter OS X nicht. Stattdessen benutze ich folgendes Schnipsel in ~/.profile, welches bei jedem Start einer interaktiven Shell eingelesen wird:

AGENTLOG=/tmp/mas/.agent.log
if [ -O $AGENTLOG ]; then
        . $AGENTLOG
else
        mkdir -p `dirname $AGENTLOG`
        ssh-agent >$AGENTLOG
        . $AGENTLOG
        echo "A fresh ssh-agent has been started; please run ssh-add asap."
fi

(Sofern Sie dies übernehmen möchten, sollten Sie natürlich "mas" durch Ihren Benutzernamen ersetzen.)

Die Idee dahinter ist, die Ausgabe von ssh-agent (also die Befehle zum Setzen der genannten Variablen) in einer Datei in /tmp zwischenzuspeichern. Obiges Skript prüft zunächst, ob eine solche Datei vorhanden ist. Wenn ja, liest sie sie ein – der zuvor gestartete ssh-agent ist damit ansprechbar. Wenn nein, wurde seit dem letzten Reboot wohl noch kein ssh-agent gestartet. Das Skript holt dies nach und speichert seine Ausgabe für später in einer Datei.

Zusätzlich gibt es noch eine Meldung aus, man solle den ssh-agent doch bitte bei Gelegenheit mit den Passwörtern füttern. Dies geschieht nun aber nur noch einmal pro Reboot, nicht mehr einmal pro Terminal-Aufruf.

posted at: 14:43 | path: /de/computer/mac | permalink

Sat, 21 Mar 2009

/etc/rc.local in OS X

OS X benutzt bekanntlich anstelle des unter Unix üblichen initd einen launchd zum Starten von Dämonen und anderen Programmen. Neue Services für launchd kann jedermann – ob root oder ein einfacher Benutzer – ergänzen, indem er eine entsprechende XML-Steuerdatei schreibt.

Wenn es allerdings nur darum geht, beim Booten einmalig ein bestimmtes Programm aufzurufen, gibt es einen einfacheren Weg: OS X unterstützt (zumindest in Version 10.5) immer noch ein Skript /etc/rc.local, das beim Bootvorgang aufgerufen wird. Um z.B. die Firewall zu modifizieren, reicht es also aus, ein entsprechendes Skript zu erstellen und in /etc/rc.local abzuspeichern.

posted at: 08:16 | path: /de/computer/mac | permalink

Sat, 14 Mar 2009

Skype Splash-Screen ausschalten in OS X

Über Skype kann man gern diskutieren: Einerseits ist das Programm closed-source, geht mit den Ressourcen des Rechners nicht gerade schonend um und die Firma lässt sich nicht gern in die Karten sehen. Andererseits ist Skype sehr weit verbreitet – und bislang kenne ich keine Open-Source-Alternative, die auch durch eine Firewall oder NAT (wie bei einem typischen DSL-Anschluss) hindurch so problemlos funktioniert.

Skype unter OS X hat als kleine aber lästige Angewohnheit den Windows-Splash-Screen beibehalten, der während des Programmstarts angezeigt wird und dabei auch die Arbeit mit anderen Programmen behindert. Zum Glück lässt er sich ausschalten: Dazu einfach in einem Terminal-Fenster den Befehl

defaults write com.skype.skype SKShowSplash NO

eingeben. (Das Terminalfenster kann danach natürlich wieder geschlossen werden, wenn es nicht mehr benötigt wird.) Voilà: Ab sofort startet Skype ganz ohne nervige Begrüßungsmeldung.

posted at: 07:01 | path: /de/computer/mac | permalink

Home | Blog | Impressum