Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

Nook Touch kernel hacking

OP texasice

13th April 2012, 06:26 AM   |  #81  
Member
Flag Raleigh
Thanks Meter: 31
 
57 posts
Join Date:Joined: Jul 2011
where is the rc.pvr script called?


let's see.
Code:
busybox grep -Ir 'rc.pvr' /;
Last edited by klausef; 13th April 2012 at 03:53 PM.
13th April 2012, 08:42 PM   |  #82  
Member
Flag Raleigh
Thanks Meter: 31
 
57 posts
Join Date:Joined: Jul 2011
rc.pvr, the module loader, is called in the init script:
Code:
/data/local/tmp/init.rc

Code:
service pvrsrv /system/bin/sh /system/bin/sgx/rc.pvr start
14th April 2012, 01:42 AM   |  #83  
Member
Flag Raleigh
Thanks Meter: 31
 
57 posts
Join Date:Joined: Jul 2011
OK from what I understand, init and the init script are both rolled into the uImage, since they aren't part of any other partition. To change the init script we would then need to create a new uImage somehow, or we would need to make UBoot pass an argument to the kernel to use a different init script. I can figure out how to do the second one pretty easily but it's super hacky and I'm a bit burnt-out with this right now. Y'all are welcome to try it, though.

EDIT: I forgot the reason I made this post in the first place;

Does anyone have a list of differences between the stock 2.1 kernel and userland and the Nook 2.1 kernel and userland, or is this something to look into?

(I mean things other than the obvious, like different APKs)
Last edited by klausef; 14th April 2012 at 03:14 AM.
16th April 2012, 11:41 AM   |  #84  
Junior Member
Thanks Meter: 7
 
23 posts
Join Date:Joined: Apr 2012
Hi all.
Please correct me where I'm wrong in current situation.

1. It is impossible to even get a complete working system built from B&N sources because of no GPU and WLAN drivers there (even as a just binaries).

2. Possible solutions are:
a) Use binary kernel modules. Extract them from system installed at (rooted) stock NST. Limits you to use the exact kernel version (2.6.29) and a few tuning is possible.
b) Build modules from sources:
-- Video drivers (omaplfb and pvrsrvkm): TI SDK (http://software-dl.ti.com/dsps/dsps_...index_FDS.html). More info: http://processors.wiki.ti.com/index....nto_the_target
-- WLAN (tiwlan_drv): ? All I've found for now is following, but I'm not sure it is helpful:
http://www.jorjin.com/WG7310-20.html (chip manufacturer)
http://omappedia.org/wiki/Porting_WLAN_to_Android (maybe the best, note omapzoom.org reference. However, it isn't easy to pick an alive branch there)
http://omappedia.org/wiki/WiLink_Connectivity_Project (just firmware by the link at gforge.ti.com, no kernel modules?)
http://www.omappedia.org/wiki/Portin...LAN_to_Android (almost same page as previous)
http://omappedia.org/wiki/Getting_TI...ing_on_Android (however, related to omap4 / blaze)
http://e2e.ti.com/support/low_power_...00.aspx#275259 (there is even a possibility to got WLAN working at 2.6.32, not .29)
Last edited by corge; 16th April 2012 at 04:53 PM.
20th April 2012, 04:21 AM   |  #85  
Member
Flag Raleigh
Thanks Meter: 31
 
57 posts
Join Date:Joined: Jul 2011
I notice I'm a bit late to the party on this but holy mackerel what is the purpose of all these kernel configs in the B&N source???? (distro/kernel/arch/arm/configs)
There are even six targeted towards the OMAP 3621. Y'all used `omap3621_gossamer_defconfig` and `omap3621_gossamer_evt1c_defconfig` but do any of the others work? (boot)

I guess I will compile one for all six and stick them on Dropbox...
20th April 2012, 10:52 AM   |  #86  
Junior Member
Thanks Meter: 7
 
23 posts
Join Date:Joined: Apr 2012
Quote:
Originally Posted by klausef

Y'all used `omap3621_gossamer_defconfig` and `omap3621_gossamer_evt1c_defconfig` but do any of the others work? (boot)

Also it may be a question what is right from this two cases. Could anyone please show the `cat /proc/cpuinfo` output? "Revision" there is indicating a needed config.
20th April 2012, 09:01 PM   |  #87  
Member
Flag Raleigh
Thanks Meter: 31
 
57 posts
Join Date:Joined: Jul 2011
I'll run that and paste the output once I get my nook back from having left it at the YMCA

In the meantime I have been fooling with the Cyanogenmod source and from what I understand, it's just a userland with no hard requirement on what kernel it runs on (??? You would think it to be more standardized...) Despite this, there appears to be some 'correct' kernel described in: http://wiki.cyanogenmod.com/wiki/Int...ernel_building and http://wiki.cyanogenmod.com/wiki/Bui...el_from_source

I'm building the B&N Nook Color kernel under the provided omap3621 config just to see what happens, although I don't think it will do much as it appears that the config is generic.

---

Kallooks! Kallooks! It boots, it boots!!!! I've finally gotten to the point where the OP was; I was able to compile the kernel provided by nook source and run it off of the SD card. I'll document how to do it on the NookDevs wiki.

Also, here is the code you requested:

Code:
# cat /proc/cpuinfo
Processor		: ARMv7 Processor rev 2 (v71_
BogoMIPS		: 597.64
Features		: swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer		: 0x41
CPU architecture	: 7
CPU variant		: 0x3
CPU part		: 0xc08
CPU revision		: 2

Hardware		: OMAP3621 GOSSAMER board
Revision		: 0005
Serial 		: 3014430162723006
Last edited by klausef; 21st April 2012 at 02:08 AM.
The Following User Says Thank You to klausef For This Useful Post: [ View ]
21st April 2012, 11:42 AM   |  #88  
Junior Member
Thanks Meter: 7
 
23 posts
Join Date:Joined: Apr 2012
Quote:
Originally Posted by klausef

I've finally gotten to the point where the OP was; I was able to compile the kernel provided by nook source and run it off of the SD card.

Could you please describe more exactly whan you've done with GPU and WiFi modules?
And just to be sure: to be able to boot from SD the device must be rooted before, is it so?

Quote:
Originally Posted by klausef

Code:
Revision		: 0005

Thanks! I spent some time wondering how it can be, but then noticed you used Nook Color, not ST ;)
I meant look at this with rooted NST to define a best config to it. Seems like revision is really read from HW, not defined by config you choose (at least in u-boot, but let's trust them a bit;)
Possible values (just copy-paste from arch/arm/plat-omap/include/mach/board-boxer.h):
Code:
BOARD_ENCORE_REV_EVT1A      0x1
BOARD_ENCORE_REV_EVT1B      0x2
BOARD_ENCORE_REV_EVT2       0x3
BOARD_ENCORE_REV_DVT        0x4
BOARD_ENCORE_REV_PVT        0x5

BOARD_ENCORE_PROD_3G        0x8

BOARD_ENCORE_REV_UNKNOWN    0x6

BOARD_GOSSAMER_REV_EVT1A    0x1
BOARD_GOSSAMER_REV_EVTPRE1C    0x2
BOARD_GOSSAMER_REV_EVT1C    0x3
And some tips:

Code:
encore_board_evt2:                   revision >= BOARD_ENCORE_REV_EVT2

gossamer_board_compatible_evt_pre1c: revision <= BOARD_GOSSAMER_REV_EVTPRE1C
Quote:
Originally Posted by klausef

I'll document how to do it on the NookDevs wiki.

Please post here a link then.

Finally, some more good news: it might be possible to use upstream wl12xx WiFi driver instead of closed-source tiwlan.

Also, a kernel here contains come code related to our GPU (drivers/gpu/pvr/): git://git.omapzoom.org/kernel/omap.git
Last edited by corge; 21st April 2012 at 02:54 PM.
22nd April 2012, 12:19 AM   |  #89  
Senior Member
Thanks Meter: 24
 
147 posts
Join Date:Joined: Sep 2010
> And just to be sure: to be able to boot from SD the device must be rooted before, is it so?

No, it is not needed.
The Following User Says Thank You to cceerrtt For This Useful Post: [ View ]
22nd April 2012, 04:51 AM   |  #90  
Member
Flag Raleigh
Thanks Meter: 31
 
57 posts
Join Date:Joined: Jul 2011
You don't have to modify the provided source to get it to boot. At any rate, here is the guide:

http://nookdevs.com/Building_the_Noo...ile_the_Source

Like the OP I am really not sure where to go here, although it is my intuition to get the latest and greatest Linux kernel to boot on it, then later try to get working whatever is the latest CyanogenMod 9 userland.

Somewhat blindly, I decided to just try and compile Linux 3.3.2 under omap3621_gossamer_evt1c_defconfig, and use `make oldconfig` with all the defaults. Unfortunately, the uImage it produces does not load the kernel the right memory address (0x80008000 instead of 0x20008000) and I suspect the issues go much deeper than this. Needless to say it doesn't work...


For what it's worth, and slightly unrelated, here is a diff of Linux 2.6.29 and the Nook kernel (based on 2.6.29): http://dl.dropbox.com/u/1494123/Access/LinuxToNook.diff
Last edited by klausef; 22nd April 2012 at 04:57 AM.

The Following User Says Thank You to klausef For This Useful Post: [ View ]
Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes