![]() |
[Android] Eclair NITDroid (WIP)
I tried building Android 2.0 (Eclair) last night and getting it working using the amazing work of solca et. al as a base.
I've got it booting and the UI functional - no WiFi or battery yet (just some loader issues) and clock seems to work when it feels like it (this one's weirder - the clocksetter sets the clock properly but Android seems to be ignoring it sometimes) - the bootscripts need some work as well as some vars aren't set and the system doesn't boot completely without a few kicks from an adb shell. With some patches to the Eclair source (to avoid using PMEM for the framebuffer, and to avoid using pageflipping as the LCD hardware gets crashy with it in for some reason) solca's existing compiled kernel works fine with the 2.0 code. I might try to make PMEM and a new kernel work later on, as it'd probably help with graphics speed, but I don't have a working OMAP kernel tree/build system right now. Seems a little faster than 1.5, even though it currently has a very dumb framebuffer setup and vold won't start (so some media servers spin looking for it and slow things down). Fairly "stable" so far too - once it's booted it seems to stay up without freezes or random watchdog/memory error reboots. Once I've got WiFi, battery, and clock working (should be fairly straightforward from here) I'll post a patch and rootfs and people can get hacking - currently it's not a Google device config so it doesn't have the Google apps (like the coveted Maps+Navigation etc.). |
Re: [Android] Eclair NITDroid (WIP)
Sound still not working then?
|
Re: [Android] Eclair NITDroid (WIP)
It would be much more interesting to go the other way. To get Maemo running on Motorola Droid/Milestone.
Maemo is the more open of the two platforms: http://cool900.blogspot.com/2009/10/...d-android.html But unfortunately, I am guessing it is also more tightly tied to Nokia hardware... |
Re: [Android] Eclair NITDroid (WIP)
As you suggested in your previous thread, I assume this is for your N810?
|
Re: [Android] Eclair NITDroid (WIP)
Quote:
|
Re: [Android] Eclair NITDroid (WIP)
No sound yet - I'm exploring it a little but I'm trying to get things stable first.
And yes, it's my N810 - should work on N800 as well (same kernel). N770 is probably a no-go - Android "requires" 128MB and the lowest anyone's gotten 1.6 or 2.0 to run usably in is isn't much less. For what it's worth, 2.0 easily maxes out the 128MB in the N810 running the browser, and as you approach the RAM ceiling things get slower as the garbage collector has to run all the time. |
Re: [Android] Eclair NITDroid (WIP)
Just a question - have you got the n810 bluetooth working? Something I'm pretty sure didn't work in NITdroid.
|
Re: [Android] Eclair NITDroid (WIP)
Yes, the question everyone wants to know... Can you pick up where Solca stopped? Can you solve any of the problems that stumped him?
|
Re: [Android] Eclair NITDroid (WIP)
I can't say for sure - it's not like I can come in and claim I'm going to have Bluetooth, Sound, GPS, and a Holy Grail before I've even got any of it working.
I'll lay out my steps so far and for the next few days (this weekend - then it's back to school and work and I won't have much time - I'll be sure to post patches for those who want to pick up wherever I leave off), for those interested: So far I've commented out the PMEM-dependent framebuffer code and disabled pageflipping to get a UI to come up so I can debug. I've made a new init.rc and bootscripts which (similar to solca's) load the WiFi driver, start the watchdog kicker, and attempt to initialize the DSP. I've modified a bit of the userland to enable file-based battery polling (again similar to but not exactly like solca's work). My next steps are: Download the latest linux-omap tree and latest android tree and merge+build them. This way I won't have to work around old stuff in solca's kernel (i.e. no pmem). UPDATE: This is going to take a little bit (expected) - Android OMAP kernel is based on 2.6.29 while linux-omap got a *lot* of changes I really really want (i.e. native retu watchdog support, new graphics, etc.) even after 2.6.31, so I'll have to rebase Android on latest linux-omap (others have done 2.6.31 rebases for other devices before, so it should be possible) and get everything together. See if I can get PMEM-based framebuffer to work and if the newer kernel doesn't crash with pageflipping. This will improve UI performance a lot if it happens. Since the OMAP2 graphics framework was almost entirely refactored between about linux-omap 2.6.28 and 2.6.32 I suspect there will at least be different bugs now. Patch the remainder of the userspace to get things stable (mostly keymaps, which are currently crashing). Explore audio - it looks like solca et. al. were experimenting with ALSA configs, and it's probably mostly a matter of getting Android to understand how to route the audio. UPDATE: Every other Android device uses the ALSA SoC driver, and the N810 is supported nicely now in ALSA SoC too! I think things should be pretty straightforward once I get the kernel working. Explore Bluetooth - if I can get the kernel to cooperate, this should be very straightforward as Android uses a quite-standard bluez-based BT stack. Unfortunately it looks Bluetooth got shuffled around a lot in linux-omap lately so things are less certain. Explore GPS - Haven't looked into it yet, so I can't say anything. |
Re: [Android] Eclair NITDroid (WIP)
http://jkkmobile.blogspot.com/2009/1...arket-and.html
Perhaps this would help with getting the "google experience" onto NITdroid..with the android market place :) |
Re: [Android] Eclair NITDroid (WIP)
Status update: got a working kernel based on 2.6.30 linux-omap and android - will probably have to set up git somewhere at some point because trying to describe all the cherry-picks, merges, and hacks I had to do to get it booting an Android userland init is going to be hard otherwise.
Some notes for future porters though: Android userspaces need ASHMEM. They won't even start to do anything without it. GCC 4.4.0 and 4.3.1 won't build a booting kernel easily. Using 4.2.1 to build the kernel seems a lot more stable. linux-omap HEAD doesn't init the framebuffer - I think someone accidentally refactored it out when they moved from n800-board-xxx.c to n8x0-board.c and tried to put init in individual drivers. You have to use something from around 2.6.30 (my git will have the specific commit), before the n8x0-board refactor. 2.6.30 has some Android code merged to mainline that works, but not everything (notably ADB Gadget, GPIO Input, its dependencies such as switch and block_wake and ASHMEM will need to be cherry-picked and frontported - some USB name stuff was redone so ADB Gadget needs some love). Now I'm just having much more straightforward rootfs mount / init script issues. My new kernel has WiFi drivers built-in (still need firmware, obviously+sadly), and support for watchdog etc. was put into linux-omap mainline. Sound theoretically works too but I haven't even thought about testing it yet. So we'll have a lot less deps on a Nokia initrd, but they're still there (firmwares now, mostly). |
Re: [Android] Eclair NITDroid (WIP)
Wow, I feel hope stirring within me again! Thanks, bri3d!
|
Re: [Android] Eclair NITDroid (WIP)
Wow, this is really great news. Thanks for spending the time on this
|
Re: [Android] Eclair NITDroid (WIP)
Hi bri3d,
Great thanks for your development. I've already tested android on my n800 and I liked it too much. I hope you can make Android fully usable to us. Keep up the good work. |
Re: [Android] Eclair NITDroid (WIP)
Hi,
Can you post which files are modified? I also got display issue when porting code to Eclair. Thanks, Jose |
Re: [Android] Eclair NITDroid (WIP)
bri3d: You did notice http://elinux.org/N8x0 right?
Also, feel free to hang out on #mer , irc.freenode.net. We're also interested in later kernel versions on N8x0 and the Gentoo/N8x0 guys hang out there too. |
Re: [Android] Eclair NITDroid (WIP)
Stskeeps: anything happening with that project since Kalle Valo's brief burst of activity on his summer vacation? Doesn't look like it... :(
|
Re: [Android] Eclair NITDroid (WIP)
@sanjose:
I had to cherry-pick a specific commit from the linux-omap repo before the n800-board-xxx.c files were refactored into individual drivers and n8x0-board.c was added - it looks like when this happened, some crucial part of Blizzard initialization got lost. I can let you know exactly which commit when I get home (actually, I'll just push up a git repo and gitweb so everyone can check out my kernel and see my nasty hacks). @Stskeeps: Yeah, but it doesn't look like it got anywhere since last summer, so I'm sticking to whatever working linux-omap I can get to boot with all devices. And another status update: The MMC driver got really unreliable somewhere so I'm working on it - the Android userland that does load before my MMC decides to stop reading (init, adb, ADB USB drivers, etc.) is working fine though, so I think I've got the necessary Android stuff into the kernel. |
Re: [Android] Eclair NITDroid (WIP)
Quote:
|
Re: [Android] Eclair NITDroid (WIP)
The MMC driver for 770 was broken too, I wonder if someone tests the changes that are commited :(
|
Re: [Android] Eclair NITDroid (WIP)
Yeah, it seems like linux-omap is pretty flaky.
I'm just going to flash the damn rootfs image for now, it's lots easier to debug MMC with a real userland rather than what I can fit in <500K and send with the kernel as an initram. |
Re: [Android] Eclair NITDroid (WIP)
http://www.mail-archive.com/linux-om.../msg12932.html
Found the source of my woes! This is going to be exciting... UPDATE: cherry-picked the old linux-omap menelaus.c and it works. looks like whoever ported it to mainline forgot some "little bits" like internal N810 MMC power control |
Re: [Android] Eclair NITDroid (WIP)
bri3ed: Felipe Balbi of Nokia just posted a small bunch of patches for N8x0 to linux-omap. Something you would be interested in checking out/testing?
|
Re: [Android] Eclair NITDroid (WIP)
@Stskeeps: Haven't built yet, but N8x0 looks like just some refactors to use platform_board_infos instead of hardcoded values for i.e. GPIOs. N770 changes look more significant.
So I suspect it'll have the same issue which is that video won't come up after the switch from n800-board-xxx.c to n8x0-board.c |
Re: [Android] Eclair NITDroid (WIP)
Hi bri3d, any news about the development? I can be a beta tester for you if you need (I have a N800).
|
Re: [Android] Eclair NITDroid (WIP)
yea id be willing to help out to jsut got a n800 yesterday
|
Re: [Android] Eclair NITDroid (WIP)
I would be very excited to see Android 2.0 on the n8x0 - let me know if there's anything I can do to help. I have an n810, and I would be willing to do testing on it.
|
Re: [Android] Eclair NITDroid (WIP)
Are there anymore updates? I'd love to see an Android port for the N900, or even a detailed page on how to port it. I have yet to find a good tutorial on porting the Android source to these devices from scratch.
|
Re: [Android] Eclair NITDroid (WIP)
bdogg64: there's all sorts of information on porting Android - from http://www.linuxfordevices.com/c/a/L...-a-new-device/ which talks about a non-NITDroid Nokia port of the pre-Cupcake beta source to the entire android-porting group ( http://groups.google.com/group/android-porting ), which although it has a horrible signal to noise ratio and a lot of clueless people is good for up-to-date info sometimes.
Still working (sometimes) on getting things working - updated to 2.0.1 and same deal - a dead-stock userspace sort-of works (very slowly/badly) with Solca's old kernel, and my new kernels have MMC issues and won't boot (curse linux-omap...). |
Re: [Android] Eclair NITDroid (WIP)
I would be willing to alpha/beta as well if needed with my N800.
|
Re: [Android] Eclair NITDroid (WIP)
Quote:
|
Re: [Android] Eclair NITDroid (WIP)
Somebody needs to get this guy an n900..
|
Re: [Android] Eclair NITDroid (WIP)
Quote:
|
Re: [Android] Eclair NITDroid (WIP)
I'd just like to post some encouragement to the porter. I have been contemplating selling my N810 for an Archos Android tablet. I was not interested in the size or video playback, simply the android platform. Please oh please continue your work so that I might be able to someday use this on my tablet! If other readers are just as excited about this as I am, please speak up so that Bri3d can see the amount of people who are going to benefit from his wonderful work!
|
Re: [Android] Eclair NITDroid (WIP)
bri3d:
Please, please, please post your code somewhere, especially if you're stuck. You made some breakthroughs that would be a shame to lose. Perhaps another crack kernel coder can help solve another one of the problems... |
Re: [Android] Eclair NITDroid (WIP)
Quote:
|
Re: [Android] Eclair NITDroid (WIP)
I have been trying to use the kernel 2.6.28 patches from nitdroid for the n8x0 and apply them to the n900 2.6.28 kernel to build a bootable android kernel and filesystem.
I can get it to boot the kernel, but I always get stuck trying to set the root, and root filesystem options to boot from a partition on the micro sd card. I'm willing to help out, or test things out. Any tips, or clues would be great. If I'm completely off track, that would be good to know also. I just want to get some dialog started to get back on track. Thnx |
Re: [Android] Eclair NITDroid (WIP)
Glad to see you rocking this forward for the N800/N810 Tablets!
|
Re: [Android] Eclair NITDroid (WIP)
FWIW, latest Linux-OMAP is nowhere near usable on N8x0 even without Android patches. See http://elinux.org/N800#Status
Feel free to ping me on IRC if you want to coordinate efforts (I'm sticking to mainline Linux for Mer/Gentoo, though, so you're on your own for Android-specific things) |
Re: [Android] Eclair NITDroid (WIP)
Quote:
|
All times are GMT. The time now is 01:12. |
vBulletin® Version 3.8.8