Erica Sadun is at it again with another useful iPhone hack. By updating the Preferences.app’s Settings-iPhone.plist file with a tweaked version, you can enable a number of hidden options right within the Settings screen. Prior to this, you could tweak these parameters with various property list edits, but this makes it easy to customize your phone in a more user-friendly manner.

Mess with your iPhone Settings screens – Link
Replacement Settings-iPhone.plist – Link

Brian Jepson

Brian Jepson

I’m a tinkerer and finally reached the point where I fix more things than I break. When I’m not tinkering, I’m probably editing a book for Maker Media.

  • Gian Pablo Villamil

    This works great, with one minor hiccup: if I run Arduino as a regular user, I get the message:

    lock_status: No permission to create lock file
    check_group_uucp(): error testing lock file creation

    When this happens, I can see no serial ports in the Arduino IDE.

    However, if I run as a superuser, everything is fine. I can compile and upload code to the Arduino with no issue.

    What am I doing wrong?

  • Brian Jepson


    I think you might need to exit and restart the Terminal activity to make sure that your group membership in both “lock” and “uucp” is updated. You might need to restart, but I think restarting the Terminal should do the trick.

    Another thing you might try is running the command “newgrp uucp” just before you launch Arduino.

    Hope this helps,


  • Gian Pablo Villamil

    That did the trick!

    I am working on encapsulating Arduino as an OLPC activity (writing a Python wrapper basically) to sort out the UI issues, and so that it has a regular activity icon.

    This is a *huge* home run for the OLPC project.

  • Brian Jepson

    Gian, that is wonderful news! I can’t wait to try out your activity when it’s done. I think the XO could become my Arduino programming device of choice!

  • Seth Wodoworth

    You should edit your directions a little bit. As of Update.1 root is going to go away as a user, and you will have to sudo all of your commands.

    Also, the developers wont ship non-free java on the XO because it’s not open software. Do you know if the free-java equivalent works with the Arduino?

    Either way we would love to have a writeup on the OLPC wiki. (wiki.laptop.org/go/)

    Seth Woodworth (isforinsects)

  • Brian Jepson

    Thanks, Seth. I noticed that su went away in the latest joyride, but I couldn’t find sudo in 650, so I have to wait until Update.1 is rolled out to revisit these instructions, otherwise they may not work for most G1G1 recipients.

    Could you give me some more information on free Java on the XO? Is there a wiki page with instructions on installing a free Java equivalent on the XO? At the bottom of http://wiki.laptop.org/go/Java there is a link to a mailing list post that says that Open Source JDK is still missing some important pieces. That page still directs users to the RestrictedFormats page.



  • Scott Penrose

    Rather than re-launch terminal, you can just type “source .bashrc”. Saves waiting for the activity to restart.

  • Chris Spurgeon

    Hmm, it looks like the Java install isn’t working for me. I don’t get any errors, it all seems to work just the way the XO Java instructions describe, but when I try to fire the Arduino install I get a “java not installed” error. I double checked and I *am* using jre-1_5_0_13-linux-i586-rpm.bin just like the instructions say. Any suggestions of things I can check?

  • Chris Spurgeon

    Forgot to say, I am running release 656 on my XO. Does that make a difference?

  • Brian Jepson

    Chris, it shouldn’t matter if you are running that build.

    Can you check what you put into your .bashrc very closely? I’ve seen this not work because someone forgot a $ or :

    Also, can you post the output of these commands?:

    echo $PATH
    cat ~/.bashrc
    ls /usr/java

    You can use a 3-button mouse to copy and paste (highlight the text you want to copy while you are in the Terminal activity, switch to the web browser, and paste it in with a middle click).



  • Chris Spurgeon

    Hi Brian (great tutorial at ETech BTW!)…

    I haven’t altered my .bashrc yet, since that step came after the Arduino install step, and that fails for me. When I run ./arduino I get this error…

    ./arduino: line 16: java: command not found

    echo $PATH looks like this…


    cat ~/.bashrc looks like this…

    # .bashrc

    # Source global definitions
    if [ -f /etc/bashrc ]; then
    . /etc/bashrc

    # User specific aliases and functions

    The output of ls /usr/java is …


    Thanks in advance for your help!

    Chris Spurgeon

  • Brian Jepson

    Thanks, Chris. You should definitely modify your .bashrc before you proceed; that should be part of the Java installation.

    Sorry that I didn’t make that clearer (what I meant by putting it in the “Update” at the end was that you should do everything listed there in place of installing Java 6. This is because Java 6 takes care of putting things in your PATH, whereas Java 5 does not). I’ll amend the post to reflect that.

  • Chris Spurgeon

    Sweet! That’s all it took, the Arduino IDE is up and running now, thanks! I love the idea of being able to have the smaller, more rugged XO as my machine when making last minute on-site Arduino code tweaks.

  • Roland Latour

    If you use the above method to load Simple Message
    System, you can actually *use* that Diecimila by
    way of my shell script package. Full IO and PWM
    control. AD is scaled to mV and formatted for
    import to most spreadsheets. Run ‘wget’ to get the package.

  • hc gilje

    Its been a while since this post was written, so maybe something has changed:
    when I type yum install avr-gcc avr-libc avr-gcc c++
    I get a not found error from this link.

    any workaround for this?


  • Brian Jepson


    I just looked into this, and there is a problem with the Fedora repository. According to this thread, the Fedora team is working on fixing this:


    – Brian