The Nook Color is an OMAP3621 based 7" tablet produced by Barnes and Noble as an lcd-based e-Reader. At the same time, it serves as quite a handy target for MeeGo due to the similar SoC.
NookDevs Nook Color Portal, good source of information
Contents |
Hardware believed to be present, but not active
All channels are on irc.freenode.net
Novomok had something going a few days after the 2011 San Francisco conference. They used a chroot to get stuff running.
B&N have posted the sources for their kernel, bootloader, and xloader, on their legal page, look for Attachments 1 and 2. Attachment 1 is the older 2.6.29 kernel, while Attachment 2 is the newer 2.6.32 kernel.
Currently there is an official 2.6.32 kernel, along with a community attempted port to 2.6.35, as well as my port of those patches forward to 2.6.38, in an attempt to meet the MeeGo baseline of 2.6.37.
A patch by Oleg Drokin that adds board file, serial console, gpio keys, MMC/SDCard and USB (peripheral) support has been accepted upstream. So Nook Color support is now available in the linux-omap-2.6 git tree and will be eventually pushed to linux-2.6.
Oleg's patches are very bare minimal and a kernel drivers for most devices still need to be pushed upstream. These drivers are both in 2.6.32 Nook Color Android stock kernel provided with the B & N source code and Oleg's Android 2.6.35 kernel. If someone is interested in forward port a driver to linux-next, please put your name next to the driver you will be working on. Then others can focus in different drivers to avoid duplicated effort.
The drivers needed are:
I guess that support for this hardware is already in kernel, look at drivers/power/max17042_battery.c and drivers/power/max8903_charger.c
Nathan Royer from Invense is also working in a driver for upstream submission. But as a part of a bigger driver for a Motion Unit Processing (MPU3050). When contacted Nathan said that he is also interested in a standalone KXTF9 driver working in the absence of the MPU3050. So Nathan's patch should be the one to base the porting work.
Kevin McNeely from Cypress Semiconductor is also working in a driver for upstream submission. Cypress driver is not I2C specific as the one found in the Barnes & Nobles Android kernel. The driver is generic, it has a core driver and bus specific modules. Right now implements two modules for I2C and SPI. The driver only supports multi-touch Protocol A. The community is working to implement Protocol B to Cypress driver, a requirement for upstream submission. The work can be found in this github repo
William Marone is working in a Linux port of the wifi driver for upstream submission, its git tree can be found here
At this point 2.6.38 with drivers and board support files ported forward compiles silently, but does not activate the screen thus giving no useful output. With 2.6.32 and 2.6.29 it is possible to boot up to the login prompt (Xorg must be disabled, or the device will not give any indication of having booted.)
The Nook Color has a particularly well done boot sequence, in that it will default to boot from the SD card slot if plugged into a PC and powered on with a bootable card inserted.
The card I created is based off of one of the Clockwork Recovery images, in particular a 4GB image reworked to boot MeeGo from the SD Card.
The simplest format is as follows, created using parted:
Number Start End Size Type File system Flags
1 32.3kB 74.0MB 74.0MB primary fat16 boot, lba 2 74.4MB 331MB 257MB primary ext2 3 331MB 4428MB 4097MB primary ext2
Empty, probably not necessary
MeeGo root filesystem
The Nook Devs instructions will suffice for building a proper uImage. I will post the source of my u-Boot shortly.
Tech docs @ NookDevs. There is apparently a way to get RS232 out over the USB port, if you disable USB and enable the output in u-Boot.
If you happen to come across any source code, patches, or the like (that are open source) then please let me (wmarone) know so they can be consolidated in a repository on Gitorious. Passing binaries and source code around using mediafire or other download sites just isn't right.