release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Wiki > Main > IPodNano2GPort (compare)

Difference: IPodNano2GPort (r37 vs. r36)

iPod nano 2nd Generation Port

Summary

Rockbox can boot and run on the 2nd generation iPod nano. This includes a read/write NAND (disk) driver and working plugins. Most features work, see the list below for things that are still missing.

Installation

A manual Rockbox installation consists of two parts - installing the Rockbox bootloader to your ipod, and installing Rockbox itself. The Rockbox bootloader is installed by running the ipodpatcher tool, and just needs to be done once. After you've done this, you can still use the Apple firmware by turning on the hold switch or holding the menu button when powering on your Nano.

Rockbox itself is installed by downloading http://build.rockbox.org/data/rockbox-ipodnano2g.zip and extracting the contents to the root (i.e. top-level) of your ipod. This URL always points to the most recent "current build" of Rockbox, updated automatically a few minutes after every change to the Rockbox source code.

Installing the 2nd Generation Nano is also supported by RockboxUtility, Rockbox's graphical installer. This is usually the simplest way to install Rockbox and does not require to run other tools or download the build manually -- the steps outlined above are done automatically. The Rockbox manual has full installation instructions.

Port Status

In mid-2009, a vulnerability in the iPod's original firmware was discovered in its "Notes" application. This was exploited and used to dump the Boot ROM from within the Samsung SOC. This then allowed decrypting and dumping of the contents of the NOR flash (containing the iPod's bootloader, disk mode and diagnostic mode), which in turn allowed the encryption of the main firmware partition to be understood.

It is now possible to encrypt (using the AES hardware crypto unit inside the Samsung SoC) a bootloader and install it onto an iPod Nano 2G's firmware partition using ipodpatcher. Bootloader binaries are encrypted on an ipod using the crypt_firmware viewer plugin.

As of Rockbox 3.7 (November 2010), the iPod Nano 2G is considered a stable target.

Known bugs

The following is a list of known bugs in the Nano 2G port:

  • After an unclean shutdown (menu+select reset or a crash), it may sometimes lose all contents on the data flash. This seems to have been resolved, but we aren't sure yet. Avoid menu+select resets where possible and hold the play button to shut down the player properly instead.

Driver status

The following table shows the current status in Rockbox SVN of the various drivers required to be implemented before Rockbox is fully functional on the 2nd gen Nano.

DeviceStatus
Kernel (core sleep, timers) Done
Interrupt handling core code Done
LCD driver 95% Full functionality implemented, but needs benchmarking and (if possible) optimising.
Backlight Done
NAND/FTL driver 90% Read/write driver implemented, seems to be mostly stable. Needs performance improvements though.
ADC driver Done
Button driver Done Shares the same clickwheel driver as earlier ipods. Clickwheel acceleration enabled since r r23748. 23748.
USB handler 90% Mass storage works, HID doesn't.
Power handling Done
RTC driver 90% Alarm not implemented yet.
I2C driver Done
I2S driver Done
CPU frequency changing 50% Done No dynamic undervolting yet (dynamic core voltage since r28590)
Audio ADC/DAC driver 80%Playback-only right now (all sample rates, using DMA)

Todo List

  • Recording
  • Accessory Protocol
  • Dynamic Undervolting Better current consumption estimation (e.g. FS#10890)
  • Better Audio DMA handling to allow dynamic undervolting
  • Better current consumption estimation
  • FTL/NAND performance improvements on chips that don't support multibank writes
  • Fix USB interrupt transfers or whatever else breaks the HID.
  • Implement RTC alarm
  • Implement missing LCD features (LCD sleep etc.)
  • Implement hardware keyclick
  • Fix popping noise on power on
  • Figure out and fix the reason for the increased power consumption before playback is started

Hardware

(table needs to be reinserted)

Done

r38 - 12 Dec 2010 - 15:32:52 - AndreeBuschmann

Revision r37 - 16 Nov 2010 - 07:04 - AndreeBuschmann
Revision r36 - 02 Nov 2010 - 16:12 - SamuelKatz
Copyright by the contributing authors.