Table of Contents

You might want to disable .DS_Store files on (network) mounts …otherwise Mac OS will break your r0ket file system. NEVER EVER access the r0ket with the finder. Always use only the terminal.

Build environment on Mac OS X

1. Compiler

Using Mac OS X:
The CodeSourcery G++ package provides a GNU cross-compiler toolchain for ARM. The Mac OS X version is not distributed by CodeSourcery in binary form, but can be built from source code, or mainline gcc for arm-none-eabi can be installed via MacPorts.

Solution 1

Solution 2

This “Solution” produces slightly bigger code (with gcc 4.6.2) compared to older gcc versions. Therefore you can not compile some l0dables. This results in errors like:
arm-none-eabi-ld -nostartfiles -T loadable.ld -o mp0ng.elf mp0ng.o  -lc -L/opt/local/arm-none-eabi/lib/
arm-none-eabi-ld: mp0ng.elf section `.text' will not fit in region `sram'
arm-none-eabi-ld: region `sram' overflowed by 148 bytes

Solution 3

Another option: Installing Ubuntu Linux in a VirtualBox:

2. Source

see main Build article

3. Build

see main Build article

4. Deploy

Bring the r0ket into ISP-Mode: e.g. by using Method 1 (up to 30 seconds, but works always)

Mac OS X will show a “CRP DISABLD” USB device.

Using the Mac OS X Terminal:
cp firmware.bin /Volumes/CRP\ DISABLD/

Note: Copying the firmware.bin over to the device in the Mac OS X Finder does not work.

Using the Ubunto Terminal in a VirtualBox:

Share the directory “CRP DISABLD” on the Mac OS X host with VirtualBox, e.g. using the name r0flash - it will be available on the Ubuntu guest at /media/sf_r0flash.

Copy the file firmware.bin to that directory:

cp firmware.bin /media/sf_r0flash/

9. Prepare a brand new r0ket

See main Build article (scoll to the bottom), or:

Bring the r0ket into ISP-Mode: e.g. by using Method 1 (up to 30 seconds, but works always)

If you want to start from scratch:

rm /Volumes/CRP2\ ENABLD/*

Install the “initial” formatting firmware:

cd firmware
make APP=initial
cp firmware.bin /Volumes/CRP\ DISABLD/firmware.bin

The Data Flash will be formatted. Now the r0ket will present a flash file system called “NO NAME” over USB. Install the l0dables:

cd l0dable
make
cp *.c0d /Volumes/NO\ NAME/
cp *.int /Volumes/NO\ NAME/
cp *.nik /Volumes/NO\ NAME/
cd ..

Now install the Camp firmware (“final”):

make APP=final
cp firmware.bin /Volumes/CRP2\ ENABLD/firmware.bin

Example commands that worked for me

MacOSX, Lion, Up-to-date MacPorts - DanBUK

sudo port sync
sudo port install arm-none-eabi-gcc
git clone git://github.com/r0ket/r0ket.git
cd r0ket
git checkout c583ddc7e3b6ecc2cdb94fe0a0474d52bcbb220b
cd firmware
cp SECRETS SECRETS.release
# Edit SECRETS.release
./release-all
make APP=initial
cp firmware.bin ../release/initial.bin
cd ../release/
# ISP Mode - Power on whilst holding left on Joypad
# NB. This isn't always CRP DISABLED, could be CRP2 ENABLED
mount | grep "CRP DISABLD"
# /dev/disk3      32Ki   32Ki    0Bi   100%    /Volumes/CRP DISABLD
cp initial.bin /Volumes/CRP\ DISABLD/firmware.bin
diskutil unmount "CRP DISABLD"
# power off
# power on
mount | grep "NO NAME"
# /dev/disk3 on /Volumes/NO NAME (msdos, local, nodev, nosuid, noowners)
# If you want to start completely empty:
# rm -Rf /Volumes/NO\ NAME/*
cp files/* /Volumes/NO\ NAME/
diskutil unmount "NO NAME"
# press button (joypad middle)
mount | grep "CRP2 ENABLD"
# /dev/disk3 on /Volumes/CRP2 ENABLD (msdos, local, nodev, nosuid, noowners)
cp final.bin /Volumes/CRP2\ ENABLD/firmware.bin
diskutil eject "CRP2 ENABLD"
# power off
# power on
# Enjoy!