Welcome to the OpenMoko page devoted to MacOS X users!
Here you can find notes of using Neo1973 (and maybe other OM devices) with Mac.
To operate the Phase 1 devices, you need to flash a root file system first.
NOTE: you need an Intel Mac to run dfu-util since it is currently broken on big-endian machines (PowerPC).
Here is a detailed instruction:
The dfu-utils tool is included in the OpenMoko Flasher application; you can access it as OpenMoko Flasher.app/Contents/MacOS/dfu-util ; alternatively, you can compile dfu-util manually as described at http://wiki.openmoko.org/wiki/User:SNMoore
It is possible to access the U-Boot Bootloader serial console from a Mac. You can use the Terminal application on Mac OS X, or minicom from Fink or MacPorts (formerly Darwin Ports.)
The USB driver creates cu and tty character devices, for example
$ ls -la /dev/tty.usb* crw-rw-rw- 1 root wheel 10, 18 Aug 23 14:10 /dev/tty.usbmodem00000001 $ ls -la /dev/cu.usb* crw-rw-rw- 1 root wheel 10, 19 Aug 23 14:10 /dev/cu.usbmodem00000001
The screen
program is included with Mac OS X, and can be used from the terminal command line to connect to the serial console. To do this, simply get to a shell prompt in the terminal and invoke screen
as follows:
% screen /dev/tty.usbmodem00000001
You should find yourself at the U-boot serial console prompt. To get out, type control+a
followed by control+backslash
.
The minicom program from the MacPorts collection can be used to access the USB serial port /dev/cu.usbmodem00000001 (numbering may vary.)
First install the program (assuming you already have MacPorts installed):
sudo port install minicom
Then launch it in configuration mode (the -s flag):
sudo minicom -s
Under "Serial Port Setup", set the Device to "/dev/cu.usbmodem00000001" and set Bps to "115200 8N1". Under "Modem and Dialing", enter empty strings for "Init string", "Reset string", and "Hang-up string". Save the setup as default ("dfl") then Exit.
You should now be able to access the bootloader console. You should exit from Minicom before disconnecting the smartphone, or else you will get an error about unplugging a USB device while it is in use.
The built in Mac Terminal application Terminal.app can be used to access the USB serial port /dev/tty.usbmodem00000001 (numbering may vary.)
An easy way to do this is to configure the terminal with Script Editor, as described in the short article, Use 'screen' as a serial terminal emulator(macosxhints.com). Then,
In: usbtty Out: usbtty Err: usbtty DEVICE_CONFIGURED: 1 Enabling automatic fast charge GTA01Bv4 #
When you boot Linux on the smartphone, or if the smartphone powers down, Mac OS X will show a USB Device Unplug Notice, "The USB device has been unplugged while an application was still active. This can result in loss of data." This error is probably harmless.
There are two drivers you can use to talk to the RNDIS/Ethernet Gadget that the neo1973 presents to its host system. For how you use them the only difference is in what shows up in your Network panel, but there are some difference in the technical details.
MacOS X 10.4.10 and later does provide such a driver for RNDIS/Ethernet Gadget. Launch System Prefs->Network and you should see "new interface detected enXX".
Each time you reboot, it will get a different Ethernet Address which requires to create a new configuration record on the Mac. This can lead to having a huge list of if you don't periodically clean them out by going Network -> Show(Network Port Configurations) -> Select an enXX -> Delete.
You can also use an open source (GPL) universal driver http://www.dsitri.de/wiki.php?page=AJZaurusUSB which is developed for handheld devices like iPAQ, Sharp Zaurus, and Motorola A760. Download it and install according to manual found inside of the package.
After reboot, you should have a new Ethernet interface in your System Preferences/Network. (XXX does this have the same problem as the Apple driver does, where it constantly adds to the list of interfaces each time you reboot the neo?). NOTE: this driver is sometimes a bit flaky, and a reboot of the Mac seems to bring it back. It is especially critical about hot unplugging the OM and sleep modes of MacBooks. This may even result in a Kernel Panic.
Use this configuration on the new interface:
IP-V4: manual IP-Addr: 192.168.0.200 (you can use anything in 192.168.0.* but OM is configured by default to use 192.168.0.200 as the external gateway) Subnet: 255.255.255.0 (should be the default) Router: 192.168.0.202 (not actually needed, OS X can figure this out for itself, unless you have other conflicting configurations)
This might conflict with some WLAN routers which also use the 192.168.0.0 network. Fixing this is beyond the scope of this guide, you need a more general introduction to networking then. If it doesn't conflict, You should be able to connect to your Neo! Try using ping 192.168.0.202 and the roundtrip time should be between 1 and 2 ms.
run "ssh root@192.168.0.202" to get in, and try pinging (from the neo) the outside world (e.g. "ping google.com"). If that works then your Mac is routing the neo globally--congratulations!--if not.. XXX fill in. You can also scp files back and forth. You can telnet, SSH, SMB or do whatever you want if you install software that enables you to set up TCP/IP network over your USB connection.
To Be Done.
After making the USB connection work, start ssh:
ssh -l root 192.168.0.202
If you don't have installed the key, it will ask for a "yes" on the first connection. The root password is blank unless you change it.
MacBook-hns:~ hns$ ssh -l root 192.168.0.202 root@192.168.0.202's password: root@fic-gta01:~$ hostname fic-gta01 root@fic-gta01:~$
NOTE: the ssh daemon (dropbear 0.49) on the OpenMoko appears to have a bug when sending the exit status back to the client. From time to time you receive an exit status of 255.
To Be Done. See also: Bluetooth_Support#PPP_Networking.
To Be Done.
In progress: This article or section documents one or more features whose implementation are in progress. |
This is not done yet. Possible solutions are SyncML or ZMacSync http://www.dsitri.de/wiki.php?page=ZMacSync
ZMacSync does not yet synchronize but allows more easy access to the OpenMoko through Terminal/ssh.
Here is described how to enable your Mac to serve as a Internet Router for your OpenMoko device.
Note: you have to open all services you want to use from the OpenMoko in the Mac Firewall.
In the Sharing System Preferences
SSH into your Neo and create /etc/resolv.conf, specify your Internet router IP address as the name server. You can simply copy the /etc/resolv.conf from your Mac.
scp /etc/resolv.conf root@192.168.0.202:/etc/resolv.conf
Example: nameserver 192.168.1.200 # replace by your real nameserver address
Make sure your Neo routing table has entries so that all internet traffic is sent to your Mac (which will forward it to the outside world)
root@fic-gta01:~$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 usb0 default 192.168.0.200 0.0.0.0 UG 0 0 0 usb0
Don't forget to enable your USB interface for Internet Sharing!
In progress: This article or section documents one or more features whose implementation are in progress. |
This is based on:
http://wiki.openmoko.org/wiki/Bluetooth_Support#Networking
http://www.macosxhints.com/article.php?story=20051220221237711
In the Bluetooth System Preferences (10.4.11)
In the Network System Preferences
In a Terminal, enter the following:
$ sudo /usr/sbin/pppd /dev/tty.BluetoothAccessPoint 115200 noauth local passive proxyarp asyncmap 0 silent persist :172.16.140.14
Here you see the 172.16.140.14 address, which makes it possible not to use natd, since it's in the same network as the Mac is. So the firewall knows where to sent it to -- no routing problems etc. Pick any free address in your private range. For instance, if you are using the following ... firewall: 192.168.1.1, Mac: 192.168.1.2, you can enter 192.168.1.3, assuming it's not used elsewhere on your network.
If you want to be sure you did it right, open the system.log file on the Mac (tail -f /var/log/system.log), and you should see something like this:
Jun 25 10:33:57 hostname pppd[679]: pppd 2.4.2 (Apple version 229) started by username, uid 0 Jun 25 10:33:57 hostname pppd[679]: Connect: ppp0 <--> /dev/tty.BluetoothAccessPoint
In Terminal, write
sudo sysctl -w net.inet.ip.forwarding=1
which should give the following feedback:
net.inet.ip.forwarding: 0 -> 1
In Terminal, write
sudo ifconfig ppp0 up.
On the OpenMoko do the following
root@fic-gta01:~$ hcitool scan Scanning ... 00:0E:6D:C0:0l:6A Sho 00:20:E0:5A:FE:C8 MacBook
root@fic-gta01:~$ pand -c 00:20:E0:5A:FE:C8
ip a add 10.0.0.2/24 dev bnep0 ip r add default via 10.0.0.1
In progress: This article or section documents one or more features whose implementation are in progress. |
To Be Done.
You can use Parallels or VMWare to install your favourite Linux distribution and then develop just as on Linux.
There are some drawback since AFAIK dfu-util may not work correctly in such environments.
Don't bother with Parallels Desktop for Mac (<=3), the current USB support is terrible and USB storage keys don't even work so there was no way I would try dfu-util. USB keys work under VMWare Fusion for Mac though I have yet to try dfu-util in an VM under VMWare Fusion as there is OpenMoko Flasher for Mac. -- Eric
In progress: This article or section documents one or more features whose implementation are in progress. |
There are some efforts to get through process of compiling OE and OpenMoko under mac: OpenMoko_under_QEMU_on_MacOSX
There is a QuantumSTEP/mySTEP project to port GNUstep to the OpenMoko/Neo: http://www.quantum-step.com/wiki.php?page=OpenMoko-Edition An SDK for Xcode/Interface Builder is also available: http://www.versiontracker.com/dyn/moreinfo/macosx/20581 http://www.quantum-step.com/wiki.php?page=SDK
Some tools that run on MacOS X
[mkfs.jffs2] - make JFFS2 (root) file system (Universal Binary). Package includes sources and Xcode 2.4 project file to rebuild on MacOS X 10.4.11. NOT TESTED THOROUGHLY.
mkfs.jffs2 --pad=0x700000 -o rootfs.jffs2 -e 0x4000 -n -d/tmp/jffsroot/
[gcc 2.95.3] - OABI cross compiler toolchain (C, C++, Obj-C) with Linux headers (PPC and Intel Macs)
If someone has a newer one that works, please provide as an installable OSX Package.
[Keyword OpenMoko] at VersionTracker
[Mac Issues Forum] at Open Embedded Software Foundation (was Zaurus User Group)