Tuesday, October 25, 2011

OS X Lion 10.7.2 with NVIDIA GTX 570

Disclaimer: This is essentially an update, so read this original post first if you haven't and once again, I'm not responsible if you cock up your machine, it comes with the territory. You'll need to learn how to de-cock your machine sooner or later.

I know, I know, I said I wouldn't update ever again, but I was having a weird issue with iTunes and the icons in 10.7.2's Launcher were bigger, I got dazzled. Anyway here are the fixes I needed to make to boot up my hackintosh with my EVGA NVIDIA GTX 570 with full resolution and openGL...

Using my system in the state from the initial guide, I installed the Mac OS X Lion 10.7.2 Update and rebooted. Results were expected, my NVIDIA GTX 465 worked perfectly, but my GTX 570 came up single monitor at 1024x768.

So, we need to make the same modifications we did previously to get things working with a couple little differences...

$ sudo su
Password:
# mkdir /Users/<username>/Desktop/Backup-GTX570-Mods-10.7.2/
# rsync -av /System/Library/Extensions/NVDAGF100Hal.kext/ /Users/<username>/Desktop/Backup-GTX570-Mods-10.7.2/NVDAGF100Hal.kext/

Now let's add our device IDs..

# nano -wT2 /System/Library/Extensions/NVDAGF100Hal.kext/Contents/Info.plist

Add your device ID to the IOPCIPrimaryMatch key list, mine is 1081 but yours may be 1086.
  <key>IOPCIPrimaryMatch</key>
  <string>
    0x06c010de&amp;0xffe0ffff
    0x0dc010de&amp;0xffc0ffff
    0x0e2010de&amp;0xffe0ffff
    0x0ee010de&amp;0xffe0ffff
    0x0f0010de&amp;0xffc0ffff
    0x104010de&amp;0xffc0ffff
    0x124010de&amp;0xffc0ffff

    0x108110de&amp;0xffc0ffff
  </string>

Next, install the July 22, 2011 version of ATY_Init.kext from netkas.

The updated version of GeForceBundle needs to be fixed. This time we're replacing the following hex codes:

eb a8 83 f8 02 7c 15
will be replaced with
eb a8 83 f8 03 7c 15

78 e8 83 f8 02 7c 11
will be replaced with
78 e8 83 f8 03 7c 11

Back things up first...
# rsync -av /System/Library/Extensions/GeForceGLDriver.bundle/ /Users/<username>/Desktop/Backup-GTX570-Mods-10.7.2/GeForceGLDriver.bundle/

You can do this fix using this helpful perl command line script.

# perl -pi -e '$c++ if s|\xeb\xa8\x83\xf8\x02\x7c\x15|\xeb\xa8\x83\xf8\x03\x7c\x15|; s|\x78\xe8\x83\xf8\x02\x7c\x11|\x78\xe8\x83\xf8\x03\x7c\x11|; END { unless ($c) { warn "No substitutions made\n"; $? =1 } }' /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/GeForceGLDriver

A step I didn't do previously is to modify libclh.dylib to allow OpenCL 2.0. It shouldn't be necessary for GTX 570 cards but for complete hack-ness, I opted to do it anyway...

8b 87 1c 0c 00 00 89 06 8b 87 20 0c 00 00 89 02
will be replaced with
31 c0 ff c0 ff c0 89 06 31 c0 89 02 90 90 90 90

# perl -pi -e '$c++ if s|\x8b\x87\x1c\x0c\x00\x00\x89\x06\x8b\x87\x20\x0c\x00\x00\x89\x02|\x31\xc0\xff\xc0\xff\xc0\x89\x06\x31\xc0\x89\x02\x90\x90\x90\x90|; END { unless ($c) { warn "No substitutions made\n"; $? =1 } }' /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/libclh.dylib

Now we edit the AppleGraphicsPowerManagement.kext to add power management for our card. Once again our system is set to be an iMac 12,2 so that's where I've added the following (in black)...


        <key>iMac12,2</key>
        <dict>
        ...
          <key>Vendor1002Device6740</key>
          <dict>
            <key>control-id</key>
            <integer>17</integer>
            <key>max-power-state</key>
            <integer>2</integer>
          <dict>

          <key>Vendor10deDevice1081</key>
          <dict>
          <key>Heuristic</key>
          <dict>
            <key>ID</key>
            <integer>0</integer>
            <key>IdleInterval</key>
            <integer>250</integer>
            <key>SensorOption</key>
            <integer>1</integer>
            <key>SensorSampleRate</key>
            <integer>4</integer>
            <key>TargetCount</key>
            <integer>5</integer>
            <key>Threshold_High</key>
            <array>
              <integer>93</integer>
              <integer>93</integer>
              <integer>93</integer>
              <integer>100</integer>
            </array>
            <key>Threshold_Low</key>
            <array>
              <integer>0</integer>
              <integer>97</integer>
              <integer>97</integer>
              <integer>100</integer>
            </array>
          </dict>
          <key>LogControl</key>
          <integer>1</integer>
          <key>control-id</key>
          <integer>18</integer>
        </dict>
        <key>default-control-id</key>
        <integer>18</integer>
      </dict>
      <key>iMac 9,1</key>
      <dict>
        <key>IGPU</key>

Now we rebuild the caches..

# rm -rf /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache
# kextcache -system-prelinked-kernel
# kextcache -system-caches

And I needed to update my EFI string, I had to remove a section because it wasn't being recognized or something. Here's my updated org.chameleon.Boot.plist

<plist version="1.0">
<dict>
  <key>Kernel</key>
  <string>mach_kernel</string>
  <key>Kernel Flags</key>
  <string>-v arch=i386 npci=0x2000</string>
  <key>Timeout</key>
  <string>2</string>
  <key>Legacy Logo</key>
  <string>Yes</string>
  <key>PCIRootUID</key>
  <string>1</string>
  <key>EthernetBuiltIn</key>
  <string>Yes</string>
  <key>UseKernelCache</key>
  <string>Yes</string>
  <key>GraphicsEnabler</key>
  <string></string>
  <key>Graphics Mode</key>
  <string></string>
  <key>device-properties</key>
  <string>530200000100000001000000470200000c00000002010c00d041030a000000000101060000030101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000002e0000004e5649444941204765466f7263652047545820353730204f70656e474c20456e67696e65205b4546495d22000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000c000000000000070000000014000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c0000001a0000004e5649444941204765466f72636520475458203537300e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000005020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000f0000004e5644412c506172656e74</string>
</dict>
</plist>

Once I rebooted with that, all was perfect but then I figured out what I'd screwed up and so I was able to combine my EFI strings using OSX86Tools so I updated my EFI string to have both video cards in it and an ethernet card...

<plist version="1.0">
<dict>
  <key>Kernel</key>
  <string>mach_kernel</string>
  <key>Kernel Flags</key>
  <string>-v arch=i386 npci=0x2000</string>
  <key>Timeout</key>
  <string>2</string>
  <key>Legacy Logo</key>
  <string>Yes</string>
  <key>PCIRootUID</key>
  <string>1</string>
  <key>EthernetBuiltIn</key>
  <string>Yes</string>
  <key>UseKernelCache</key>
  <string>Yes</string>
  <key>GraphicsEnabler</key>
  <string></string>
  <key>Graphics Mode</key>
  <string></string>
  <key>device-properties</key>
  <string>d804000001000000030000003f0000000100000002010c00d041030a0000000001010600021c0101060000007fff0400160000006200750069006c0074002d0069006e0000000500000001470200000c00000002010c00d041030a000000000101060000030101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000002e0000004e5649444941204765466f7263652047545820353730204f70656e474c20456e67696e65205b4546495d22000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000c000000000000070000000014000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c0000001a0000004e5649444941204765466f72636520475458203537300e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000005020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000f0000004e5644412c506172656e74460200000c00000002010c00d041030a000000000101060000070101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000002e0000004e5649444941204765466f7263652047545820343635204f70656e474c20456e67696e65205b4546495d22000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000c000000000000070000000014000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c0000001a0000004e5649444941204765466f72636520475458203436350e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000004020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000e0000004e5644412c4368696c64</string>
</dict>
</plist>

Now the system boots happily and actually shows the 1GB of VRAM on the NVIDIA GTX 465.

Check it out...


Big source for material compiled above is this forum post

Monday, September 26, 2011

WTF Google?

Can someone please explain to me why the first match for "edit freebsd password file" isn't something that says:

# vipw

Seriously Google, that's all I wanted.

Sunday, September 11, 2011

OS X Lion with GTX 570 and GTX 465 quad monitor support


Disclaimer: if you've stumbled across this article don't attempt these steps without reading through the whole post and know that if you do screw something up your system may not boot again properly until you put your drive into another Mac or Hackintosh and undo your changes.

When I first purchased my ultimate Hackintosh machine, I bought the EVGA NVIDIA GeForce GTX 570 card. I did so foolishly without first finding out whether it was "supported" by OS X or the Hacktinosh community at large.  I just got it because it sounded awesome and like a typical Linux user, assumed the drivers will come later.

Before we get going with the solution to getting the GTX 570 card working, here's my system specs:
  • Asus P6X58D-E Motherboard
  • Intel i7 970 processor 3.2GHz 6 Cores, 12 threads
  • 6 - 4GB Kingston DDR3 1333MHz - 24GB RAM
  • 2 - 2TB Western Digital Black SATA3 6GB/s drives
After a few attempts I was able to get the GTX 570 to boot and after a few more I was able to get it to boot up with correct resolution detection, it wasn't until 24 hours later that I was able to get everything to boot up with OpenGL (which was the biggest headache).

Okay so here's what I had to do to get it working... I ran into countless dead ends with OS X 10.7.0 so, refusing to be beat, I updated to 10.7.1 and that's when everything started working correctly for me.

I'm running:
Another important note with my rig is that my EVGA NVIDIA GTX 570 has the device ID 1081.  There are others which have 1086 instead and so they need different configuration modifications than those listed below.  (Possibly just changing 1081 to 1086 wherever it's listed below)

First thing's first, once you have OS X 10.7.1 installed, you need to edit the /System/Library/Extensions/NVDAGF100Hal.kext/Contents/Info.plist to add the device ID for your video card. I like to do stuff right from the Terminal though there are countless helper apps, so first let's create a Backup folder for all of the files we're going to break in case we need the originals again...

$ sudo su
Password:
# mkdir /Users/<username>/Desktop/Backup-GTX570-Mods/
# rsync -av /System/Library/Extensions/NVDAGF100Hal.kext/ /Users/<username>/Desktop/Backup-GTX570-Mods/NVDAGF100Hal.kext/

Now let's add our device IDs..

# nano -wT2 /System/Library/Extensions/NVDAGF100Hal.kext/Contents/Info.plist

Add your device ID to the IOPCIPrimaryMatch key list, mine is 1081 but yours may be 1086. The 10de part is nVidia's vendor ID, in case you're wondering. That's why they're all the same.
  <key>IOPCIPrimaryMatch</key>
  <string>
    0x06c010de&0xffe0ffff
    0x0dc010de&0xffc0ffff
    0x0e2010de&0xffe0ffff
    0x0ee010de&0xffe0ffff
    0x0f0010de&0xffc0ffff
    0x104010de&0xffc0ffff
    0x124010de&0xffc0ffff
    0x108110de&0xffc0ffff
  </string>

With this addition your system should boot up and you should have the correct resolution for your monitor instead of being stuck at 1024x768. YouTube videos will play but you won't be able to use any OpenGL or OpenCL like watching a video with VLC or opening Chess.

Next thing I added was ATY_init.kext which set things in motion.  Once downloaded and unzipped...

# mv /Users/<username>/Downloads/ATY_Init.kext /System/Library/Extensions/
# chown -R 0:0 /System/Library/Extensions/ATY_Init.kext
# chmod -R 755 /System/Library/Extensions/ATY_Init.kext

There are three more files I needed to modify to get everything swimming along, the first was /Extra/com.apple.Boot.plist or, in my case since I'm running Chimera 1.5.4 /Extra/org.chameleon.Boot.plist In there I needed to disable the Graphics Mode by setting it to a blank string and add a Hex EFI String for the GTX 570 card. My Kernel Flags section also needed to be modified as it had something about i386 in it. Here's my /Extra/org.chameleon.Boot.plist (update sept 16 at bottom of this post has new file)

<plist version="1.0">
<dict>
  <key>Kernel</key>
  <string>mach_kernel</string>
  <key>Kernel Flags</key>
  <string>npci=0x2000</string>
  <key>Timeout</key>
  <string>2</string>
  <key>Legacy Logo</key>
  <string>Yes</string>
  <key>EthernetBuiltIn</key>
  <string>Yes</string>
  <key>Graphics Mode</key>
  <string></string>
  <key>device-properties</key>
  <string>6c0200000100000001000000600200000d00000002010c00d041030a000000000101060000030101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000002e0000004e5649444941204765466f7263652047545820353730204f70656e474c20456e67696e65205b4546495d22000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000c00000000000007000000000e0000006e0061006d00650000000b000000646973706c617914000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c0000001a0000004e5649444941204765466f72636520475458203537300e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000005020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000f0000004e5644412c506172656e74</string>
</dict>
</plist>

To generate my HEX string I used OSX86Tools. Open it up (reboot may be required?) and press Add EFI Strings/Boot Flag in the bottom box. Click on the GFX Strings button in the dialog box that pops up and then for Graphics Card choose Custom GeForce... at the bottom. Enter: NVIDIA GeForce GTX 570 for the name, Custom... for the VRAM and enter: 0x50000000 which equates to 1280MB. Select DVI-I / DVI-I and continue.

I just used the HEX value generated in the bottom window and created my new device-properties key manually. I didn't use the program to manipulate the org.chameleon.Boot.plist file, I did it via Terminal manually.

So now the system will boot and not set the graphics mode and it will be told that it's OpenGL capable. The next file I changed was a hex change from netkas to enable OpenCL for the card. So let's back up the files and make them user-editable.

# rsync -av /System/Library/Extensions/GeForceGLDriver.bundle/ /Users/<username>/Desktop/Backup-GTX570-Mods/GeForceGLDriver.bundle/
# cp /Users/<username>/Desktop/Backup-GTX570-Mods/GeForceGLDriver.bundle/Contents/MacOS/GeForceGLDriver /Users/<username>/Desktop/
# chown <username> /Users/<username>/Desktop/GeForceGLDriver

Now let's use HexEdit and follow netkas' instructions on our /Users/<username>/Desktop/GeForceGLDriver file.
Find
a883f8028b45f0
replace 02 with 03 to get
a883f8038b45f0

Find
ea83f802498b
replace 02 with 03 to get
ea83f803498b
So with our Desktop copy of the file patched and our original safely backed up let's put this one into place...

# mv /Users/<username>/Desktop/GeForceGLDriver /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/
# chown -R 0:0 /System/Library/Extensions/GeForceGLDriver.bundle/
# chmod -R 755 /System/Library/Extensions/GeForceGLDriver.bundle/

So now there's just one more file left to tweak, it's the AppleGraphicsPowerManagement or AGPM. For our changes to take effect the system type has to match our defined system type and our GTX 570's device ID. So I used Multibeast from tonymacx86 to change my system type to iMac12,2 because that's what others had done and that's where the changes in this file seem to be.

# rsync -av /System/Library/Extensions/AppleGraphicsPowerManagement.kext/ /Users/<username>/Desktop/Backup-GTX570/AppleGraphicsPowerManagement.kext/

Open up /System/Library/Extensions/AppleGraphicsPowerManagement.kext/Contents/Info.plist and edit the section which begins with iMac12,2 to be as follows:

        <key>iMac12,2</key>
        <dict>
          <key>Vendor10deDevice1081</key>
          <dict>
          <key>Heuristic</key>
          <dict>
            <key>ID</key>
            <integer>0</integer>
            <key>IdleInterval</key>
            <integer>250</integer>
            <key>SensorOption</key>
            <integer>1</integer>
            <key>SensorSampleRate</key>
            <integer>4</integer>
            <key>TargetCount</key>
            <integer>5</integer>
            <key>Threshold_High</key>
            <array>
              <integer>93</integer>
              <integer>93</integer>
              <integer>93</integer>
              <integer>100</integer>
            </array>
            <key>Threshold_Low</key>
            <array>
              <integer>0</integer>
              <integer>97</integer>
              <integer>97</integer>
              <integer>100</integer>
            </array>
          </dict>
          <key>LogControl</key>
          <integer>1</integer>
          <key>control-id</key>
          <integer>18</integer>
        </dict>
        <key>default-control-id</key>
        <integer>18</integer>
      </dict>

So! After making all of those changes and rebooting, I was succesfully able to boot, MUCH faster than ever before and once the system booted up OpenGL/CI worked videos play in VLC, youtubes tube, and 3D benchmarks in NovaBench and Xbench don't crash the system anymore.

I tossed the EVGA nVidia GeForce GTX 465 in the second PCI Express slot and without any futher alterations I have quad monitors with 1920x1080 each. There's a slight flicker when I move a playing video from one monitor on one card to another but I seem to be able to play them halfway between each just fine.

A big thanks goes to the materials found from these threads on tonymacx86's forum and InsanelyMac's. Wouldn't have been possible for me to figure this out without all of their leg work.

Update [sept 13]: after only two days of use I noticed that my sound card wasn't working. I used Multibeast to add in the missing kext files and I've been working on recovering from that ever since. I can boot the system fine, but once again no OpenGL. In the process of trying to fix things I've updated to the new Chameleon layout which got rid of /Extras/Extensions and added UseKernelCache key. If I don't boot using the kernel cache, I can't boot. If I do use the kernel cache, it ignores my Graphics Mode declaration (I'm guessing that's why the OpenGL isn't working). Trial and error is becoming extremely annoying, but I will solve this... and then never update my system again.

Update [sept 16]: after a week more of trial and error, I've got everything working correctly again, I've had to alter my org.chameleon.Boot.plist because with the new Chimera versions it seems the Graphics Mode function is ignored, BUT, I think the only thing we need to avoid is declaring the graphics mode to the card before the OS boots (so the OpenGL) will work. So to do so we can just boot with -v and the graphics mode will only get set once the OS boots. Here's my new /Extra/org.chameleon.Boot.plist

<plist version="1.0">
<dict>
  <key>Kernel</key>
  <string>mach_kernel</string>
  <key>Kernel Flags</key>
  <string>-v arch=i386 npci=0x2000</string>
  <key>Timeout</key>
  <string>2</string>
  <key>Legacy Logo</key>
  <string>Yes</string>
  <key>EthernetBuiltIn</key>
  <string>Yes</string>
  <key>UseKernelCache</key>
  <string>Yes</string>
  <key>GraphicsEnabler</key>
  <string></string>
  <key>Graphics Mode</key>
  <string></string>
  <key>device-properties</key>
  <string>6c0200000100000001000000600200000d00000002010c00d041030a000000000101060000030101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000002e0000004e5649444941204765466f7263652047545820353730204f70656e474c20456e67696e65205b4546495d22000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000c00000000000007000000000e0000006e0061006d00650000000b000000646973706c617914000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c0000001a0000004e5649444941204765466f72636520475458203537300e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000005020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000f0000004e5644412c506172656e74</string>
</dict>
</plist>

Check out the write-up on 10.7.2 for more.

Wednesday, July 27, 2011

Using the OS X built-in tftp server

I needed to configure some devices on the go and as long as you have a Mac handy you can do it without any additional software. I found details on another site but the /sbin/service they used didn't seem to exist on my machine but after a little more Googling I found this is the command to start the tftp server on OS X 10.7 Lion...

sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
sudo launchctl start com.apple.tftpd


The default tftp file path is /private/tftpboot but you can change that by editing /System/Library/LaunchDaemons/tftp.plist and re-starting with launchctl...

sudo launchctl restart com.apple.tftpd

Friday, July 22, 2011

Characters skipping in nano when using ssh on OS X Lion 10.7

I noticed using Terminal to connect via SSH to an IPv6 server and opening a file with nano, character repeats and skipping of the display when pressing and holding backspace or when typing rapidly. This is only new since I installed OS X 10.7 Lion. I seem to have solved the issue by going into Preferences for Terminal.app and selecting the Advanced tab and changing Declare terminal as: to xterm-color from xterm256-color.

Hopefully this helps someone else.

Monday, May 23, 2011

APN Issues While Travelling

It is dead simple to jailbreak your iPhone, which allows you to install whatever you like and if you haven't updated your phone with iTunes ever, you may also be able to unlock your iPhone as well which allows you to use it with any carrier.

Recently while on vacation in France I purchased a full sized SIM card from Bouygues Telecom and that worked well for me but their pay as you go plan drained my 25 euro credit within a day in my old iPhone 3G because we were using Google Maps to navigate. So by the time I trimmed down the SIM card to fit as a MicroSIM for my iPhone 4 it was useless.

Since the credit was all used up and their data was far to expensive, I wasn't attached to them and found Orange France I jumped ship. For roughly 8-10 euro you get a SIM or MicroSIM with 5 euro worth of credit on it. You can add more as you see fit. The next step of the process is once Orange verifies you're human (roughly 24-72 hours after you sign up) you can set up the Internet Max plan for 1 month of Internet access for 9 euro. That plan gives you "unlimited" internet up to 500MB which for our two-week visit is more than enough, even if I want to tether.

So, I loaded up my SIM with 25 euro, plus the 5 that came with the card and a bonus 5 for buying 5 so I had 35 euro to last me until I was identified as a human in their system. During this time my internet should have been working an apparently it was sending requests out because my completely depleted again within a day, even though I never successfully viewed a map/tweet/site/email on the device.

I followed the instructions the helpful Orange attendant wrote down for me to register for the Internet Max plan roughly 24 hours after I bought the credit (the last steps of the process won't work if you're not "a human" yet").
  1. Call #123#
  2. Reply with 2 (Menu) Reply
  3. 4 (vos bon plans) Reply
  4. 4 (votre multimedia) Reply
  5. 6 (Suite [Next]) Reply
  6. 3 (option Internet Max) Reply
  7. 1 (Suite)
  8. 1 (Souscrire)
  9. 1 (Valider)
  10. I can't remember what happened after that but basically, just continue until you're done. At this point you'll either have the plan added or it will say it can't yet.
Once I was pretty sure my Internet Max plan was added, my phone still wasn't working so I knew from previous travels that my problem was the APN settings. Access Point Names on cellular phones tell the phone where to direct traffic to connect to the internet. By default they're provided by your provider to Apple so when you plug in your phone, it just works. If you're jumping on a different network however, you may need to change the APN, as was the case for me.

To change your APN go to http://unlockit.co.nz on your iPhone, using a WiFi connection. Select Continue then Change APN and put in your APN settings. Lots of Googling may be required to find the settings for your provider. For Orange France the APN settings are:
APN: orange
User name: orange
Password: orange
(I'm confirming that as of now, May 2011 that works, so does using: orangenew.fr as the APN)

Once the Unlockit.co.nz profile is installed on your phone, reboot it. Once rebooted try to access a web site and if you're still getting errors about being "not subscribed to a cellular data package" try ejecting the SIM card tray and then re-inserting, without rebooting the phone. That was the clincher for me, once I did that it took seconds to pull up a site and we were on our way!

Tuesday, October 5, 2010

OS X Backup with rsync

The site in which I found this has since disappeared, so for my own sanity, this rsync command line is a nice way to backup your currently booted Mac...

rsync -xrlptgoEv --progress --delete / /Volumes/NewDrive/

I'm going to blame Google Instant for the fact that I can't find the original page it came from anymore.