Apple SuperDrive am USB-Hub mit El Capitan

Vor einiger Zeit schrieb ich in diesem Blogartikel, wie man ein SuperDrive von Apple an einem USB-Hub anschließen kann.

Der Trick funktioniert mit OS X El Capitan aber nicht mehr, weil dieses einen System Integrity Protection-Modus benutzt.
In diesem Modus werden Änderungen von Systemdateien unterbunden.

Es gibt aber auch hier einen Workaround, der den Anschluss am USB-Hub weiterhin möglich macht.

Dazu sind folgende Schritte notwendig:

  • Zunächst muss man den Mac ausschalten
  • Dann cmd+R gedrückt halten und den Mac einschalten
  • Die Tasten muss man so lange gedrückt halten, bis der Apfel zu sehen ist
  • Der Mac bootet nun in das Rettungssystem
  • Hier schaltet man die System Integrity Protection im Terminal ab: csrutil disable
  • Nun den Rechner neu starten und in das normale System booten
  • Am Terminal kann man nun die Boot-Optionen setzen: sudo nvram boot-args="mbasd=1"
  • Danach muss man den Rechner noch einmal neu starten, damit die Änderung wirksam wird
  • Optional: nach der Änderung kann man System Integrity Protection aus dem Rettungssystem heraus wieder einschalten: csrutil enable
  • Optional: den Status der System Integrity Protection kann man wie folgt prüfen: csrutil status

Referenz: OS X 10.11 – Rootless-Feature deaktivieren

Apple SuperDrive am USB-Hub

Apple empfiehlt das SuperDrive nur an USB-Ports direkt am Mac zu betreiben.
Nun stellt selbst das MacBook Pro leider nur zwei USB-Ports zur Verfügung, was das Ganze ziemlich lästig macht.

Hängt man das Laufwerk an einen USB-Hub, erhält man die lapidare Meldung, dass dieses Gerät mehr Strom benötigt. Dabei gibt es durchaus USB-Hubs, die genügend Strom für das SuperDrive bereitstellen.

Damit OS X das SuperDrive an so einem USB-Hub akzeptiert, muss man den Kernel wie folgt motivieren.

Als root muss man die Boot-Parameter editieren:

vi /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

In der Datei ergänz man dann mbasd=1, so dass sie folgendermaßen ausschaut:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Kernel Flags</key>
        <string>mbasd=1</string>
</dict>
</plist>

Jetzt noch ein Neustart, und das SuperDrive läuft am USB-Hub.

Achtung: Wenn der USB-Hub tatsächlich zu wenig Strom zur Verfügung stellt, kann es zu Datenfehlern kommen. Ein USB-Hub, der auf zwei Power-Ports ausreichend Strom liefert, ist der DUB-H7 von D-Link.

Referenz: How to Run a SuperDrive on a Targus Hub

opensync mit dem Nokia 9300i

openSUSE Nachdem ich in letzter Zeit regelmäßig bei der Audi AG in Ingolstadt unterwegs bin und dort mein Nokia E90 nicht benutzen kann, weil es eine Kamera hat, habe ich mir eine Alternative zugelegt: einen guten alten Nokia 9300i.

Zunächst hatte ich einige Probleme, den Communicator mit meinem Kontact zu synchronisieren, aber jetzt habe ich eine opensync-Konfiguration gefunden, die ziemlich gut funktioniert.
opensync mit dem Nokia 9300i weiterlesen

Nokia E90 mit udev

openSUSE Das E90 von Nokia und vermutlich etliche andere Handys, die per USB angeschlossen werden können, verleiten etliche Leute zu ziemlicher Akrobatik, was chmod unter /dev angeht. Störend ist das vor allem, wenn man mit opensync oder ähnlichen Tools zugreifen will.

Es gibt aber auch eine sehr schöne, saubere, geradzu elegante Lösung.
Man überlädt die udev-Regeln, die von openSUSE mitgebracht werden.

Für openSUSE 11.1 funktioniert das wie folgt:

Normalerweise werden die Gerätedateien unterhalb von /dev/bus/usb nach einer Regel angelegt, die in der Datei /lib/udev/rules.d/50-udev-default.rules steht. (Bei openSUSE 11.0 lag die Datei noch unter /etc/udev).
Die Regel lautet:

# libusb device nodes
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"

Diese Regel bewirkt, dass die Gerätedatei unterhalb von /dev/bus/usb mit dem Modus 644 angelegt wird. Außerdem gehört sie standardmäßig root:root.

Da die Datei bei einem Update wieder überschrieben würde, muss eine neue Datei anlegt werden, die /etc/udev/rules.d/99-local.rules heißen soll. 99 damit sie nach den Default-Regeln gelesen wird.
In diese Datei wird folgende Regel geschrieben:

# libusb device nodes
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0664"

Damit gehören die Gerätedateien in Zukunft der Gruppe uucp und alle Mitglieder der Gruppe können auf die Dateien schreiben.

Um in diese Gruppe zu gelangen, muss in der Datei /etc/group der Nutzeraccount bei der Gruppe root ergänzt werden: root:x:1:gustav

Das war’s schon. Funktioniert prima.