Mac OS X

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(USB Serial: change Darwin Ports to MacPorts (darwinports site is decommissioned) added section for Terminal.app)
(USB Serial with Terminal: typo)
Line 62: Line 62:
  
 
# Press and hold {{aux}} and then press and hold {{power}} for 5 seconds
 
# Press and hold {{aux}} and then press and hold {{power}} for 5 seconds
# Press {{aux}} to select <tt>Set console to USB<tt> in the U-Boot menu, and {{power}} to execute it
+
# Press {{aux}} to select <tt>Set console to USB</tt> in the U-Boot menu, and {{power}} to execute it
 
# Start the serial terminal application.  You should see a U-Boot command line prompt, such as
 
# Start the serial terminal application.  You should see a U-Boot command line prompt, such as
 
  In:    usbtty
 
  In:    usbtty
Line 70: Line 70:
 
  Enabling automatic fast charge
 
  Enabling automatic fast charge
 
  GTA01Bv4 #
 
  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.
When you boot Linux on the smartphone, or if the smartphone powers down, you will get 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.
+
  
 
== USB Networking ==
 
== USB Networking ==

Revision as of 14:57, 23 August 2007

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.

Contents

Flashing to your device

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 detailled instruction:

  1. download the latest version of AJZaurusUSB from http://www.dsitri.de/wiki.php?page=AJZaurusUSB
  2. install
  3. run 'sudo kextload /System/Library/Extensions/AJZaurusUSB.kext' from Terminal (or reboot your Mac as described - but you do not need to configure AJZaurusUSB it before flashing the OpenMoko)
  4. download the latest version of OpenMoko Flasher from http://www.dsitri.de/wiki.php?page=OpenMoko%20Flasher
  5. [V1.0 only: create a new Folder at "~/Library/Caches/OpenMoko Flasher"]
  6. press the Refresh button (which loads the list of packages on the server)
  7. select and load the rootfs (takes some minutes for approx. 40 MByte)
  8. [V1.0 and V1.1 only: open the Console application and show the console.log]
  9. Now, on your OpenMoko, hold the AUX button while pressing the Power button for 5 seconds
  10. the BOOT menu should appear
  11. connect the USB cable
  12. Press the Flash button
  13. the BOOT menu screen on the OM should show an indication that it has been switched to DFU mode
  14. if it fails), unplug the OpenMoko shortly and replug and try again (experience shows that it is needed up to three times)
  15. if it successfully flashed, you should be able to boot the OpenMoko and continue configuring AJZaurusUSB

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

Connecting to your device

USB Serial

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

USB Serial with minicom

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.

USB Serial with Terminal

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,

  1. Press and hold AUX Button and then press and hold POWER for 5 seconds
  2. Press AUX Button to select Set console to USB in the U-Boot menu, and POWER to execute it
  3. Start the serial terminal application. You should see a U-Boot command line prompt, such as
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.

USB Networking

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.

MacOS X does not provide such a driver for RNDIS/Ethernet Gadget. But you can 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. Set up the network manually for that interface by using these addresses:

IP-V4: manual
IP-Addr:  192.168.0.200
Subnet:  255.255.255.0
Router: 192.168.0.202

This might conflict with some WLAN routers which also use the 192.168.0.0 network.

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.

NOTE: the software 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.

Telnet, ssh, SMB

To Be Done.

ssh

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 and for a password on each other. This is "root" 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.

Bluetooth

To Be Done. See also: Bluetooth_Support#PPP_Networking.

WiFi

To Be Done.

Synchronizing

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.

Sharing connection

Mac as a server

Here is described how to enable your Mac to serve as a internet router for your OpenMoko device.

Bluetooth

This could help:

http://wiki.openmoko.org/wiki/Bluetooth_Support#Networking

http://www.macosxhints.com/article.php?story=20051220221237711

USB

If you install AJZaurusUSB driver you should be able to set up your Mac as a router (not tested).

Neo1973 as a server

To Be Done.

Developing software

Using virtualization software

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.

Natively

There are some efforts to get through process of compiling OE and OpenMoko under mac: OpenMoko_under_QEMU_on_MacOSX

Other Resources

Search Software Repositories

[Keyword OpenMoko] at VersionTracker

Discussion Fora

[Mac Issues Forum] at Open Embedded Software Foundation (was Zaurus User Group)

Personal tools

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.

Flashing to your device

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 detailled instruction:

  1. download the latest version of AJZaurusUSB from http://www.dsitri.de/wiki.php?page=AJZaurusUSB
  2. install
  3. run 'sudo kextload /System/Library/Extensions/AJZaurusUSB.kext' from Terminal (or reboot your Mac as described - but you do not need to configure AJZaurusUSB it before flashing the OpenMoko)
  4. download the latest version of OpenMoko Flasher from http://www.dsitri.de/wiki.php?page=OpenMoko%20Flasher
  5. [V1.0 only: create a new Folder at "~/Library/Caches/OpenMoko Flasher"]
  6. press the Refresh button (which loads the list of packages on the server)
  7. select and load the rootfs (takes some minutes for approx. 40 MByte)
  8. [V1.0 and V1.1 only: open the Console application and show the console.log]
  9. Now, on your OpenMoko, hold the AUX button while pressing the Power button for 5 seconds
  10. the BOOT menu should appear
  11. connect the USB cable
  12. Press the Flash button
  13. the BOOT menu screen on the OM should show an indication that it has been switched to DFU mode
  14. if it fails), unplug the OpenMoko shortly and replug and try again (experience shows that it is needed up to three times)
  15. if it successfully flashed, you should be able to boot the OpenMoko and continue configuring AJZaurusUSB

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

Connecting to your device

USB Serial

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

USB Serial with minicom

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.

USB Serial with Terminal

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,

  1. Press and hold AUX Button and then press and hold POWER for 5 seconds
  2. Press AUX Button to select Set console to USB in the U-Boot menu, and POWER to execute it
  3. Start the serial terminal application. You should see a U-Boot command line prompt, such as
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.

USB Networking

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.

MacOS X does not provide such a driver for RNDIS/Ethernet Gadget. But you can 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. Set up the network manually for that interface by using these addresses:

IP-V4: manual
IP-Addr:  192.168.0.200
Subnet:  255.255.255.0
Router: 192.168.0.202

This might conflict with some WLAN routers which also use the 192.168.0.0 network.

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.

NOTE: the software 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.

Telnet, ssh, SMB

To Be Done.

ssh

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 and for a password on each other. This is "root" 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.

Bluetooth

To Be Done. See also: Bluetooth_Support#PPP_Networking.

WiFi

To Be Done.

Synchronizing

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.

Sharing connection

Mac as a server

Here is described how to enable your Mac to serve as a internet router for your OpenMoko device.

Bluetooth

This could help:

http://wiki.openmoko.org/wiki/Bluetooth_Support#Networking

http://www.macosxhints.com/article.php?story=20051220221237711

USB

If you install AJZaurusUSB driver you should be able to set up your Mac as a router (not tested).

Neo1973 as a server

To Be Done.

Developing software

Using virtualization software

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.

Natively

There are some efforts to get through process of compiling OE and OpenMoko under mac: OpenMoko_under_QEMU_on_MacOSX

Other Resources

Search Software Repositories

[Keyword OpenMoko] at VersionTracker

Discussion Fora

[Mac Issues Forum] at Open Embedded Software Foundation (was Zaurus User Group)