Okt 26

[Update 01.11.2014:] Klang alles vielversprechend, hat aber gerade mal 3 Tage WakeUp gehalten Lösung also leider noch nicht gefunden

Nach dem ich meinen Mac auf Windows8 OSX Yosemite geupdated habe, ging nach einem WakeUp, netzwekmässig, überhaupt nichts mehr.

War schon so gefrustet, dass ich dachte ich müsste Clean-Install machen, oder aber auf ein anderes OS wechseln. Das ganze hat sich im system.log und Allgemein so geäussert, dass die NIC nach einem WakeUp für ein paar Millisekunden da war, und dann wieder weg (was die Funktionalität angeht). In den Systemeinstellungen sah die ganze Zeit über alles fein aus: IP, Interface war up, etc. Aber halt so gar keine Connectivity. Auszug syslog:

Oct 24 14:03:30 macpro2 kernel[0]: 0x1face000, 0x00000000  Intel82574L::setLinkStatus - not active
Oct 24 14:03:30 macpro2 kernel[0]: 0x1face001, 0x00000000  Intel82574L::setLinkStatus - not active
Oct 24 14:03:32 macpro2 kernel[0]: Ethernet [Intel82574L]: Link up on en1, 1-Gigabit, Full-duplex, Symmetric flow-control, Debug [796d,af08,0d01,0200,cde1,3c00]
Oct 24 14:03:32 macpro2 kernel[0]: 0x1face001, 0x0000000b  Intel82574L::setLinkStatus - active
									

Nach ein paar Anfragen bei stackoverflow kam ich auch nicht wirklich weiter. Irgendwann bin ich dann auf einen Beitrag gestossen, wo jemand über das Problem berichtete, dass sein Mac immer dann abstürzte, wenn er in die Soundeinstellungen ging. Das Problem wurde dadurch gelöst, dass er die Kernel-Extension (kext) von Soundflower deinstalliert hatte. Hab ich dann hier (obwohl ganz anderes Problem) auch mal gemacht. Zusätzlich hab ich noch alles andere an kexts deinstalliert, was nicht notwendig war. Vendorfremde kexts neigen bei ‘nem Major-Update zum Amoklauf. Eine Liste, welche kexts bei Euch NICHT von Apple kommen gibts es wie folgt:

kextstat |grep -v apple
Index Refs Address            Size       Wired      Name (Version) <Linked Against>
   41    0 0xffffff7f81e1f000 0x19000    0x19000    net.osx86.kexts.GenericUSBXHCI (1.2.6) <38 12 7 5 4 3>
  130    3 0xffffff7f833c7000 0x57000    0x57000    org.virtualbox.kext.VBoxDrv (4.3.18) <7 5 4 3 1>
  131    0 0xffffff7f8341e000 0x8000     0x8000     org.virtualbox.kext.VBoxUSB (4.3.18) <130 79 38 7 5 4 3 1>
  132    0 0xffffff7f83426000 0x5000     0x5000     org.virtualbox.kext.VBoxNetFlt (4.3.18) <130 7 5 4 3 1>
  133    0 0xffffff7f8342b000 0x6000     0x6000     org.virtualbox.kext.VBoxNetAdp (4.3.18) <130 5 4 1>

									

Die oberste kext benötige ich für USB3.0 (funktioniert auch unter Yosemite noch), die anderen 4 sind von Oracles VirtualBox. Mit denen funktioniert nun wieder alles. Vorher war noch Soundflower und noch irgendein Kram dabei. Idealerweise deinstalliert man die Dinger mit dem – der Soft hoffentlich beiliegenden – Uninstaller. Ist der nicht vorhanden kann man die Dinger auch per Hand töten. Seit OSX Lion muss man dafür nicht mal den Kernel-Extension-Cache neu aufbauen. Funktioniert wie folgt:

cd /System/Library/Extensions

									

Mit ls die passende Extension, die man löschen will, suchen.

Anschliessend kext “unloaden” (d.h. aus dem RAM entfernen) und löschen:

sudo kextunload /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext
sudo rm /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext
									

War ‘ne harte Nuss, zumal so gar kein Hinweis auf die (amoklaufenden) Extensions im Syslog oder Kernel-Ring-Buffer (dmesg) auftauchten. Nu tut der Mac wieder wie er soll. Nichts desto trotz denke ich, dass es langsam Zeit wird, sich nach einem anderen OS umzusehen. Die Schmerzen (und die Ähnlichkeit zu Windows) werden immer grösser.

Tagged with:
Okt 26

Nach dem ich nun auf 3 Maschinen OSX 10.9 (aka Mavericks) installiert habe, ist es Zeit für ein erstes kleineres Resumee, in dem ich mal drei Stolperfallen beleuchten möchte. Kurz und Bündig:

  1. TimeMachine will nicht mehr auf mein Debian mit Netatalk3 backuppen. Es erzählt irgendwas von

     Failed to create backup of Time Machine Information file
    									

    . Die Lösung war recht simpel. In meinem Namen befindet sich ein Umlaut. Und per Default werden Macs unter “Systemeinstellungen / Freigaben” mit dem Namen “[Name des Besitzers]’s Mac Pro” gekennzeichnet. Diesen Namen nimmt OSX auch für die erstellten Sparsebundles. Also Umlaute und Spaces aus dem “Computernamen” entfernt, und schon geht es wieder
  2. Die Einstellung mit der Menubar auf jedem Screen (Multiscreen) macht auf einem Macboo mit einem externen Monitor vielleicht noch Sinn. Auf einem MacPro mit mehr als 2 angeschlossenen Screens ist das ganze nur noch nervig. Bei der Suche nach der Option, mit der man das abstellen kann, hab’ ich mich echt in Windows-Zeiten zurückversetzt gefühlt. Abgestellt wird das ganze unter “Systemeinstellungen / MissionControl” – hier den Haken bei “Monitore verwenden verschiedene Spaces” entfernen, und gut ist.
  3. Bisher ungelöst: Ich habe hier ein AppleTV3 im Netz. IP’s werden per DHCP übergeben, gleichzeitig läuft ein arpwatch. Das Arpwatch schlägt jedesmal an, wenn eine neue MacAdresse im Netz auftaucht, oder irgendeine neue MacAdress/IP-Kombi auftritt. Seit Mavericks passier folgendes: Mac wacht alle 4h auf (war vermutlich früher schon so), krallt sich die MACADRESSE des AppleTV’s und die IP des Macs, wechselt dann die MacAdr. behält aber die IP. Mit dem Effekt das es alle 4h ‘ne Mail vom Arpwatch gibt. Seit 2 Tagen habe ich testweise das ATV mal vom Netz genommen. Keine Probleme mehr. Aber irgendwie kann es das ja auch nicht sein. Wer also ‘nen Tip hat -> Her damit!

Das ganze Speichermanagement soll, angeblich, besser sein. Kann ich nicht bestätigen. Ab einer bestimmten Belegungsmenge fängt das Ding wieder wie irre an zu swappen. Da hilft nur kurz vorher ein “sudo purge” im Terminal…

Tagged with:
Jun 23

Die Konfig hier zu Haus sagt, gehe über den Proxy – egal was passiert. Per iptables ist es den Workstations verboten, direkte HTTP-Requests nach draussen abzusetzen. Die werden einfach gedroppt. Damit man jedoch nicht bei jedem neuen Client erst den Proxy eintragen muss, gibt es so schöne Erfindungen wie wpad.dat (aka proxy.pac).

Der DHCP Server im Netz announced also, bei Vergabe einer ip, gleich die URL fuer die Proxy-Autoconf mit. In der Regel klappt das auch alles super. Hätte nicht jeder Browserhersteller wieder seinen eigenen Kram gebastelt. So interpretiert der Safari auf dem Mac diverse Dinge anders als der Chrome oder der IE. Eine schöne Matrix, mit dem was geht, und was nicht geht, gibt es bspw. bei pacwpad.com.

Die Herausforderung bestand/besteht am Ende darin, den Browsern zu sagen: Hey, du willst was im LAN, dann brauchst Du den Proxy nicht zu fragen. Ansonsten bitte Proxy nehmen. Mit ipv4 kein Thema. Bei ipv6 verschluckt sich der Safari jedoch massivst.

In der folgenden Config bin ich nun soweit, dass Chrome brav das macht was er soll, Safari jedoch bei jeglichen (auch LAN) ipv6-only Websites immer über den Proxy geht. Das liegt daran, dass der Safari scheinbar die javascript-Funktion “dnsResolveEx” nicht kennt. Ohne try/exception macht der immer einen auf “direct” bei ipv6. Mit diesem Konstrukt geht er zumindest immer auf den Proxy. Bin mal gespannt, wie lange es dauert bis sich die Browserhersteller da geeinigt haben…

Hier also die Config:

  • LANv4 ist 10.0.0.0/24
  • LANv6 ist 2001:999:999:8888/64

function FindProxyForURL(url, host)
{
        if (isInNet(host, "10.0.0.0", "255.255.255.0")) { // ipv4 im LAN ? Dann direct
                return "DIRECT";
        }
        if (host.substring(0, 4) == "127.") { // Localhost ? dann DIRECT
                return "DIRECT";
        }
        if (host.substring(0,16) == "2001:999:999:8888") { // IPv6 Adresse in den Browser eingegeben, und die ist im LAN ? Dann DIRECT
                return "DIRECT";
        }
        try {
            var resolved_ip = dnsResolveEx(host);
            if (resolved_ip.indexOf("2001:999:999:8888")>-1 ) { // Hostname löst auf eine IPv6 auf, die im LAN ist ? Dann DIRECT
                    return "DIRECT";
            }
        } catch(e) { // Funktion "dnsResolveEx" nicht vorhanden ? Dann Fallback proxy
            return "PROXY 10.0.0.2:3128";
        } 
        return "PROXY 10.0.0.2:3128"; // Default: Proxy
}

									

Update: Es empfiehlt sich anstelle der IP (10.0.0.2:3128) den FQDN des Proxies einzutragen. Einige Geräte machen scheinbar einen lookup bevor sie den Proxy fragen. Wenn beim lookup eine V6 Adresse herauskommt, dann läuft die wpad.dat ins leere, da kein V6-Proxy gefunden wird. Wichtig: der FQDN des Proxies sollte sowohl über einen V4-Eintrag (A), als auch über einen V6-Eintrag (AAAA) verfügen, und auch zusätzlich auf dem V6-Port lauschen…

Tagged with:
Apr 11

Das Kind hat doch derbe Defizite mit dem kleinen 1×1. Macht sich jetzt so richtig bemerkbar, weil im Unterricht Division mit REST durchgenommen wird. Nun habe ich allerdings wenig Lust, mir alle Nasenlang neue Aufgaben aus den Fingern zu saugen. Also mal flux ein Perl-Script geschrieben, welches die Ergebnisse gleich mitliefert. Auf Excel-Output hatte ich gerade keine Lust, sollte aber mit “Spreadsheet::WriteExcel” (gibts beim CPAN Ihres Vertrauens) auch kein Thema sein.

Das folgende Script wirft also 60 Aufgaben mit 60 Ergebnissen aus. Wenn man den Output (Tab-getrennt) in Excel guttenbergt (CopyPaste), dann hat man auf dem “linken” Blatt, bei einem 18er Font, die Aufgaben, und auf dem rechten Blatt die Ergebnisse. Die machen es dann etwas leichter, den Kram den der Nachwuchs da hingepinselt hat, zu kontrollieren.

#!/usr/bin/perl
my $i=100;
my @erg,@aufg;
my $sollaufgaben=60;
while ($aufgaben<$sollaufgaben) {
  $i++;
  my $a=int(rand($i)%100);
  my $b=int(rand($i)%10);
  $b=1 if int($b)==0;
  $a=1 if int($a)==0;
  if (int($a/$b)<12) {
    $aufgaben++;
    push @aufg,$aufgaben."\t".$a."\t:\t".$b;
    push @erg,int($a/$b)." R ".($a % $b);
  }
}

for (my $i=0;$i<int($sollaufgaben/2);$i++) {
  print $aufg[$i*2]."\t\t".$aufg[$i*2+1]."\t\t";
  print $erg[$i*2]."\t".$erg[$i*2+1]."\n";
}
									

Tagged with:
Okt 18

Muss man ja auch erstmal wissen, wie das ohne iTunes geht: Einfach in der “Music-App” auf dem Podcast von links nach rechts “wischen”, und schon erscheint der Deletebutton.

Man lernt halt nie aus…

Tagged with:
Jan 27

Allen die bei einer Entfernung von über 50cm (ist ja jetzt nicht wirklich viel 🙂 zwischen MacPro und Bluetooth Gerät (MagicMouse / MightyMouse / Keyboard / etc.) Probleme mit der Verbindung haben, sei dieser Artikel bei MacRumours ans Herz gelegt. Mein MacPro (MacPro1,1 / Early 2007) hatte genau diese “falsche Verkabelung”, die dort in Step5 beschrieben ist.

Jetzt, nach Umverdrahtung der “Pigtails” klappt alles einwandfrei 🙂

Tagged with:
Jan 03

Ha, da habe ich doch schon ewig nach gesucht (und bin immer wieder auf “Chicken of the VNC”, “Jolly VNC” oder andere Spaesse ausgewichen).

Gesucht war eine Tastenkombination mit der man beim Verbinden auf Windooze Kisten ein “CTRL-ALT-DEL” senden kann. Alle Standardkombinationen sind fehlgeschlagen. Jetzt weiss ich wie es geht. Man drücke nach dem Verbinden via “Command-K” und “vnc://ip.ad.dre.sse” einfach CTRL-ALT-COMMAND-DELETE.

Das Command war das fehlenden Glied 🙂

Fuer alle “alten” Mac-User: COMMAND = “Apfeltaste” 🙂

Tagged with:
Dez 28

Oh wie wahr….

Sep 16

Mobile.Me ist ja irgendwie fein. Allerdings haben sich meine Macs strikt geweigert, auch nur im Ansatz die korrekten Inhalte des Kalenders zu synchronisieren. Nun woran lag es ?

Kurz und bündig: Die “SyncData” ist quasi “out of Sync”. Soll heissen: Der Mac weiss nicht (mehr) was er synchronisieren soll, und was nicht.

Auf einschlägigen Seiten (z.B. der KB von Apple) wird ein hierzu Reset der Sync Data empfohlen. Allerdings ist diese in den Systemeinstellungen für Mobile.Me nur halbherzig implementiert. Ein Blick ins /var/log/system.log bringt folgende Meldungen zu Tage:


Sep 16 19:03:11 powermac iCalExternalSync[822]: SyncServices precondition failure in [ISyncConcreteSession clientAcceptedChangesForRecordWithIdentifier:formatted-
Record:newRecordIdentifier:]: you can't change the record identifier from BLUBB-DIWUPP-HEXKEY-WIEBEI-WINDOOFS to com.apple.ical.calendars.RootNode: it is already associated with a different record.

Dem Mac das abzugewöhnen war garnicht so einfach (Naja, der Weg dahin war steinig, der Rest ist leicht 🙂 Fangen wir also an:

  1. iCal, iTunes, Addressbook etc. schliessen
  2. Unter ~/Library/Calendars selbiges Directory löschen (Die vorsichtigen unter euch dürfen es gern Backuppen)
  3. iSync starten und unter Einstellungen die Synchronisierung DEAKTIVIEREN
  4. Mobile.Me Account komplett unter den Systemeinstellungen DEAKTIVIEREN (Also “Abmelden” !!)
  5. Unter ~/Library/Application Support/Sync Services/ das Directory “clientdata” löschen
  6. In iSync sicherheitshalber nochmal auf “iSync-Verlauf zurücksetzen” clicken.
  7. Mobile.Me wieder aktivieren und syncen
  8. Fertig !

War der einzigste Weg bei mir, der ganze 3 Rechner wiederbelebt hat. Alle anderen “Tricks” aus irgendwelchen Apple-Foren haben garnichts gebracht. Die “Magic” steckt einzig und allein in Punkt 5 und 6 oben. Ich nehme an dass “iSync-Verlauf zurücksetzen” genau das tun sollte, was ich in Punkt 5 beschreibe. Macht es aber leider nicht. Naja, mit der Anleitung oben wird man dann auch glücklicher Mobile.Me Nutzer 😉

Viel Spass

Jul 31

Oft gesehen, nie benutzt. Zu der Kategorie gehoert wohl das kleine aber feine Tool “at”. Quasi ein “Wegwerf”-CRON. Dabei ist das Ding totsimpel zu bedienen, und dazu noch extremst nützlich. Wie es funktioniert ? Folgendermassen:

Angenommen ich muss dringend noch ein paar Files per scp kopieren, kann das aber erst machen, wenn kein Betrieb mehr auf dem Produktionssystem herrscht. Erschwerend kommt jetzt noch hinzu dass, sagen wir, der Betrieb erst gegen 23:00 beendet ist. Ein klassischer Fall für at:

at 23:00 [CR] (danach befinden wir uns im Commandmode)
scp Datei user@system:/directory [CR]
[CTRL+D]

Nun lediglich den Rechner auf dem das Kommando abgesetzt wurde anlassen (oder noch besser: Auf einem Remotesystem ausführen und anschliessend ausloggen) und ab gehts um 23:00 🙂

Eine Besonderheit für Mac-User gibt es noch. Der Dienst der die at-jobs (Eine Liste derer gibts übrigens via “atq”) startet, ist defaultmässig nicht gestartet. Das kann man via:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

nachholen.

Viel Spass beim “at”ten …

Jun 20

Mit bind geht das schon lange. Man hat 2 Netze, mit jeweils zwei unterschiedlichen Nameservern die die privaten Adressen im jeweiligen LAN auflösen. Will man jetzt, z.B. via VPN beide Nameserver aus den jeweiligen LANs nutzen, so konfiguriert man den bind für die jeweiligen Netze als forwarder (Jeweils für das Netz mit seinem Nameserver einen Eintrag). Ein Beispiel:

Gegeben seien ein LAN mit der Domäne Intranet1.de und dem Nameserver 192.168.0.222, und das LAN mit der Domain intranet2.de welches seinen DNS auf 10.0.0.222 liegen hat. Natürlich gibts noch einen öffentlichen Nameserver, der hat in unserem Beispiel die 212.121.212.111 als IP.

In der named.conf sieht das dann so aus:

options {
directory “/var/named”;
forwarders { 212.121.212.111;};
};

zone “intranet1.de” in {
type forward;
forwarders {192.168.0.222; };
forward only;
};

zone “intranet2.de” in {
type forward;
forwarders {10.0.0.222; };
forward only;
};

Beim Mac ist das viel simpler. Man lege ein Directory /etc/resolver an und lege dort einfach pro Zone ein File ab. In diesem Beispiel wäre das dann /etc/resolver/intranet1.de mit dem Inhalt “nameserver 192.168.0.222” und eine zweite Datei mit /etc/resolver/intranet2.de mit Inhalt “nameserver 10.0.0.222”. Fertig. Dumm nur das das ganze nicht persistent ist. Nach dem Neustart ist alles weg. Nicht so wenn man sich die Dateien per Shellscript aus der /etc/rc.common erstellen lässt. Funktioniert prima und ist simpel.

Apr 07

Fuer den Fall der Faelle, in dem man ein simples Shellscript beim Aufwecken bzw. einschlafen seines Macs ein Script abfeuern moechte (kann ja hilfreich sein, um schnell noch was zu umounten, etc.), nehme man den Sleepwatcher von Berhard Baehr.
Das Ding gibts unter http:/www.bernhard-baehr.de kostenlos herunterzuladen.

Feb 20

Das ist wirklich bitter. Habe mich gerade gewundert wieso ca. 4 GB RAM auf meinem MacPro belegt sind, obwohl lediglich Mail.App, Firefox und ein Remotedesktop liefen.
Zuerst hatte ich den Firefox im Verdacht. Ein Blick auf top brachte dann jedoch Licht ins Dunkel: Ca. 1,8 GB (Ja GB für Gigabyte) RAM waren durch den RemotedesktopClient (übrigens Version 2.0) belegt.
Mann, da kann ich 3 x Windows unter Parallels für starten 😉

Kennt jemand einen anderen gute RDP-Client für den Mac ? Bitte nicht CoRD, der kommt leider mit Fullscreen auf einem Multiscreensystem nicht klar. Ich suche was simpeles, schnelles und was ohne Memory Leaks…

Update (13.09.2010): Durch einen Hinweis aus der Leserschaft bin ich auf einen netten Vergleichschart hingewiesen worden. Hier stehen noch ein paar andere Clients zur Auswahl (Danke, Amy!)

Feb 11

Seit Wochen kämpfe ich nun unter Etch, trotz Gigabit, mit einem extrem langsamen Samba – nun endlich der Durchbruch.
Doch zu Vorgeschichte:

Nach den üblichen Anpassungen in der smb.conf (TCP_NODELAY und der ganze Schnickschnack) war ich fast schon am verzweifeln. Die einzigen Effekte die ich bekam, manifestierten sich in einer schwankenden Transferrate (sofern das Directory Listing auf dem Mac überhaupt in annehmbarer Zeit angekommen war) – mal hoch, und mal wieder runter.

Heute morgen habe ich dann man mit mii-tool und ethtool herumgespielt und das Interface einfach mal auf 100MBit heruntergedreht. Ergebnis: Ein Rasend schnelles samba – aber eben nur auf 100MBit.

Abhilfe schafft ein neuerer Realteak Treiber, den man hier herunterladen kann. Sobald der installiert ist kann man Samba in voller Breite, d.h. wieder mit 1000BaseTX, geniessen. Herrlich !!!
Der original-Treiber, für die RTL8168 der bei etch dabei ist war folglich etwas buggy…
Aber nun läuft es ja.

PS: OSX Leopard hat mit Netzen und Samba auch so seine Problemchen. Eine Lösung des OSX-Problems gibt es bei MacOsXhints

Nov 09

Es gibt Anbieter im Netz, die für soetwas Geld nehmen. Hier die Anleitung wie es einfach geht.

  1. Shell öffnen
  2. cd Applications/iSync.app/Contents/PlugIns/ApplePhoneConduit.syncdevice/
  3. cd Contents/PlugIns/PhoneModelsSync.phoneplugin/Contents/Resources/
  4. Nun in der MetaClasses.plis über den vi/emacs/…/[Editor] den key com.nokia.6280 suchen, und wie folgt ersetzen …

<key>com.nokia.6280</key>
<dict>
<key>Identification</key>
<dict>
<key>com.apple.cgmi+cgmm</key>
<string>Nokia+Nokia 6288</string>
<key>com.apple.gmi+gmm</key>
<string>Nokia+Nokia 6288</string>
<key>com.apple.usb.vendorid-modelid</key>
<string>0x0421/0x045A</string>
</dict>
<key>InheritsFrom</key>
<array>
<string>family.com.nokia.series40.3rdEd.bus.usb-bt</string>
</array>
<key>Services</key>
<array>
<dict>
<key>ServiceName</key>
<string>com.apple.model</string>
<key>ServiceProperties</key>
<dict>
<key>ModelIcon</key>
<string>NOK6280.tiff</string>
<key>ModelName</key>
<string>6288</string>
</dict>
</dict>
<dict>
<key>ServiceName</key>
<string>com.apple.synchro</string>
<key>ServiceProperties</key>
<dict>
<key>MaxCityLength</key>
<integer>50</integer>
<key>MaxEMailLength</key>
<integer>60</integer>
<key>MaxEventLocationLength</key>
<integer>150</integer>
<key>MaxPhoneNumberLength</key>
<integer>48</integer>
<key>MaxPostalCodeLength</key>
<integer>50</integer>
<key>MaxStateLength</key>
<integer>50</integer>
<key>MaxStreetLength</key>
<integer>50</integer>
<key>MaxURLLength</key>
<integer>60</integer>
</dict>
</dict>
</array>
</dict>

preload preload preload