Meego Wiki
Views
From MeeGo wiki
< ARM(Difference between revisions)
Jump to: navigation, search
(Kernel Sources)
(Undo spam revision 49837 by Tamekabegay (talk))
 
(3 intermediate revisions not shown)
Line 23: Line 23:
All channels are on irc.freenode.net
All channels are on irc.freenode.net
-
##nook-kernel -- All kernel collaboration discussion.
 
#meego, #meego-arm -- Future MeeGo discussion.
#meego, #meego-arm -- Future MeeGo discussion.
Line 33: Line 32:
=== Vendor Sources ===
=== Vendor Sources ===
-
B&N have posted the sources for their kernel, bootloader, and xloader, on their [http://www.barnesandnoble.com/nookcolor/legal/index.asp 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.
+
 
 +
B&N have posted the sources for their kernel, bootloader, and xloader, on their [http://www.barnesandnoble.com/nookcolor/legal/index.asp 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. Attachments 3 and 4 are for more recent builds of the Nook OS.
=== Community Sources ===
=== Community Sources ===
-
A [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=2633af02b092975937209332f562451068fddea2 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 [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git 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 [http://images.barnesandnoble.com/PResources/download/Nook/source-code/nookcolor-source-code.zip source code] and Oleg's Android 2.6.35 [https://github.com/verygreen/ti-omap-encore-kernel/tree/encore2-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.
+
Existing community [[Nook Color Kernel Sources]], attempting to clean the kernel up and push boards upstream
-
=== Needed Drivers ===
+
With the realization that we can boot on 2.6.32, [https://github.com/dalingrin/nook_kernel Dalingrin's kernel] is currently our base.
-
*Encore charger and battery [https://github.com/verygreen/ti-omap-encore-kernel/commit/02099fe0a95eed68752d2d3eba9b3412ec8d1893 drivers] (max17042).
+
== Adaptation Patches ==
-
I guess that support for this hardware is already in kernel, look at drivers/power/max17042_battery.c and drivers/power/max8903_charger.c
+
-
*Kionix KXTF9 tri-axis digital accelerometer [https://github.com/verygreen/ti-omap-encore-kernel/commit/e22a1a028cd517be46315bb953f0b262c426e4eb driver]
+
-
** linux-input
+
-
Nathan Royer from [http://www.invensense.com/ 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 [https://patchwork.kernel.org/patch/934172/ patch] should be the one to base the porting work.
+
-
*Cypress TrueTouch (tm) Standard Product (TTSP) I2C touchscreen [https://github.com/verygreen/ti-omap-encore-kernel/commit/27419caf66ed159548650e6fea6733744958e6ea driver]
+
-
** linux-input
+
-
Kevin McNeely from [http://www.cypress.com/ Cypress Semiconductor] is also working in a [https://lkml.org/lkml/2011/1/4/258 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 [https://github.com/martinezjavier/nook_color repo]
+
-
*Wifi [https://github.com/verygreen/ti-omap-encore-kernel/commit/e2a71aa21d9dba6ba0d5a40d6123394aa09bfa19 driver]
+
-
** linux-omap (board changes), linux-next (wifi driver)
+
-
William Marone is working in a Linux port of the wifi driver for upstream submission, its git tree can be found [https://gitorious.org/linux-omap-nook here]
+
-
== Status ==
+
[https://gitorious.org/mer-nook-compat Nook Hardware Adaptation for Mer]
-
 
+
-
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.)
+
== Getting Started ==
== Getting Started ==
Line 66: Line 51:
=== Creating a Bootable Card ===
=== Creating a Bootable Card ===
-
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.
+
A baseline .ks can be found [http://pastie.org/pastes/2956301/text here], which builds a 3 partition, ~4GB disk image that the OMAP3 will correctly boot from.
-
 
+
-
The simplest format is as follows, created using parted:
+
-
 
+
-
<code>
+
-
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
+
-
</code>
+
-
 
+
-
==== Partition 1 ====
+
-
*mlo -- Not sure, haven't touched it
+
-
*u-boot.bin -- u-Boot binary, rebuilt to present a new command line to the kernel on startup
+
-
*uImage -- u-Boot prepared kernel image
+
-
*uRamdisk -- Rebuilt image to disable the internal init
+
-
 
+
-
==== Partition 2 ====
+
-
Empty, probably not necessary
+
-
 
+
-
==== Partition 3 ====
+
-
MeeGo root filesystem
+
=== Building the Kernel ===
=== Building the Kernel ===
-
The [http://nookdevs.com/NookColor:_Build_the_Original_Kernel Nook Devs] instructions will suffice for building a proper uImage. I will post the source of my u-Boot shortly.
+
The [http://nookdevs.com/NookColor:_Build_the_Original_Kernel Nook Devs] instructions will suffice for building a proper uImage.
=== Debug ===
=== Debug ===
-
[http://nookdevs.com/NookColor:_Nookie_Froyo_Technical_Page 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.
+
Currently it's mostly trial and error. There are two UARTs on the board, one via the USB port that is disabled if the kernel initializes USB, the other via 4 test points on the (facing the screen) right edge of the PCB. They are 1.8v, and consist of RX, TX, VCC, and Ground.
-
 
+
-
== Source Code ==
+
-
 
+
-
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.
+

Latest revision as of 18:58, 12 April 2012

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.

Nook Color Official Site

NookDevs Nook Color Portal, good source of information

Contents

Basic Nook Color Specs:

  • OMAP3621 SoC @ 800MHz
    • PowerVR SGX 530
    • Differs from the 3630 by having the camera support logic disabled
  • 512MB RAM
  • 8GB internal storage
  • microSDHC slot
  • 7" IPS panel
  • Power, Volume+, Volume-, and stylized "N" home button
  • Headphone jack
  • USB Host support - Working in CM7 with 2.6.39 kernel and "Nook Tweaks" tool
  • Bluetooth -- Working in CM7 with 2.6.39 kernel

Communication

All channels are on irc.freenode.net

  1. meego, #meego-arm -- Future MeeGo discussion.

Novomok

Novomok had something going a few days after the 2011 San Francisco conference. They used a chroot to get stuff running.

Kernel Sources

Vendor Sources

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. Attachments 3 and 4 are for more recent builds of the Nook OS.

Community Sources

Existing community Nook Color Kernel Sources, attempting to clean the kernel up and push boards upstream

With the realization that we can boot on 2.6.32, Dalingrin's kernel is currently our base.

Adaptation Patches

Nook Hardware Adaptation for Mer

Getting Started

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.

Creating a Bootable Card

A baseline .ks can be found here, which builds a 3 partition, ~4GB disk image that the OMAP3 will correctly boot from.

Building the Kernel

The Nook Devs instructions will suffice for building a proper uImage.

Debug

Currently it's mostly trial and error. There are two UARTs on the board, one via the USB port that is disabled if the kernel initializes USB, the other via 4 test points on the (facing the screen) right edge of the PCB. They are 1.8v, and consist of RX, TX, VCC, and Ground.

Personal tools