![]() |
A few questions
Hi there.
I don't yet own an N810 but hope to sometime in the future. I've seen screenshots of the Maemo UI (that screen has a *really* high resolution from what I can see in photos, since screenshots are SO big!) but don't really like its layout. I'd far prefer a UI that I write myself, but predominantly want a desktop based on something like Openbox or similar. If that's even possible. You may have guessed already, but I've never owned an embedded device like this before, so I have a few questions: I know nothing about how to flash, update or otherwise copy firmware, custom or otherwise, onto a device like the N810. Well, I have a router/modem, but it runs proprietary firmware, and updating it was just a few clicks in a winfailure application. So I just wanted to know: * I assume the N810 somehow "boots" the firmware, so how do you flash this firmware onto the device? And if anyone can share how an ARM CPU boots, that'd be interesting to learn. * If I flash corrupt or improperly "built" firmware onto an N810, is there a magic trick I can perform that I can use to tell tell the CPU to wait for a new flash image to be written to the device (like plugging in a special cable or flicking a switch inside the case), in order to fix it? Or is the device dead? * Can you dual-boot two different types of firmware? Is something like this stable (dual-booting in a situation like this sounds a little on the unstable side, but I don't know)? That said, I want to get uArch (Launchpad page, Google Code page), a subset of Arch Linux for resource constrained/non-x86 architectures such as the ARM CPU, working on an N810 when I finally get one. Arch Linux focuses on simplicity, and since uArch is more or less Arch Linux, if I installed it, I'd have a lot of options such as choice of windowmanager and the like. At the moment uArch takes up around 300MB for a base install but that size is being worked on. Thing is, since I've never done something like this before, I've no idea where to start. So any help, tips, advice etc will be welcomed. -dav7 |
Re: A few questions
Basically, the boot loader will load the kernel and the kernel will mount initfs and run some setup stuff, then mount the root fs and launch init. What people do to "dual boot" is have the linux kernel run a script in initfs that lets the user pick which rootfs to mount from a menu. That allows them to have the rootfs on an sd card. This is a great way to test out new things and always leave your device in a bootable state. Ask more questions if you have them. :D
Also check out the deblet debian-on-n8x0, at least for ideas on how people got other distros booting. Have fun and tell us how it goes! -John |
Re: A few questions
Thanks a heap. That sure has cleared up quite a few issues... I have some more though. I'm not likely to own an N810 too soon, but preparation never hurt anybody, so that's what I'm doing now. So here we go:
* How does X work? Does it work much like X on a desktop would, except it outputs to the integrated screen? * From a software perspective, if I push the architecture difference(s) aside, can I see the N810 pretty much like a PC in that if I write an app that uses the GNOME libraries (for example) will it run on the N810 (if I put uArch on it)? What toolkits compile for ARM? * Can I stuff both Arch Linux and OS 2008 into the internal memory, once I have everything sorted? * The Linux kernel is open source, but are Nokia's changes also open source? Specifically, can I recompile the kernel if I want to, or am I locked into using Nokia kernels with closed-source changes? Leaning more toward the N810's hardware side now: * If I considered an application (a situational type of application) that has the N810 as a kind of "status device" that sits in my pocket and tells me of updates to different things, is there any way the N810 can notify me without me seeing it? For example, I've heard that it doesn't have a vibrator. Is there anything else it might be able to do to get my attention? * Does the system fire events or modify a file in /proc or /sys if I slide out the keyboard or slide it back in? Can I `cat' a number or string to a file somewhere to turn the LED on or off, or make it change color? Or are these locked down by complex API calls? Thanks for answering all this. -dav7 |
Re: A few questions
There's a wealth of information on this sort of topic over at the Maemo site, of course, and if you click Wiki at the top of the main page here you can find a lot more.
|
Re: A few questions
Okay, thanks for that, I'll be sure to check out that site and the wiki for info.
And I look forward to getting a N810 someday too :D I can't wait to play with one :D -dav7 |
Re: A few questions
Okay, here's a question I couldn't get answered by googling around.
Since I want to try stuff out, is it possible to either: * Compile the entire Maemo platform for x86 and run it in an appropriately sized Xnest or Xvnc window * Use an emulator (qemu-system-arm?) to run the entire software stack (I have an old computer so this is NOT preferred) ...? I have a fairly decent amount of diskspace so even if I have to download and compile lots and lots of stuff to make it all work, I don't mind. -dav7 |
Re: A few questions
Quote:
AFAIK, this is the normal way of trying software under development in the SDK, with actual ARM compilation and testing (emulated or on-device) reserved for things that should be architecture dependent, and for testing of those that shouldn't (but might be buggy). I think installing the SDK should get you what you want. |
Re: A few questions
Wow, lots of complicated questions with some mediocre responses!;)
Ok, I will answer your unanswered question to the best of my ability: Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
If you are developing for the tablet (opposed to porting), I think there is a lot of good documentation and libraries available. Quote:
Quote:
This is also one reason why we don't have graphics drivers. |
Re: A few questions
A new question:
If I quit X, will I be presented with a text console just like on an x86 PC? Or is the hardware designed such that the displays requires an appropriate X video driver to "go"? Alternatively, is there a framebuffer driver I can use to get console output? If none of those methods work, I'm happy with a fullscreen terminal in X, if I need to get an interface like that - that works fine. Benson A couple of questions: Is this SDK you speak of called Scratchbox? If it is, please help me find a way to install it on Arch Linux. I don't want to install or switch distros just to make developing for a device which I'll note I don't even have one of yet :p a bit easier. I've already tried to install it but that was a while ago... some issue about an XML parser not existing in the kernel (:confused:) :mad: Alternatively, if precompiled binaries that produce the Maemo/Hildon "desktop"/UI can simply be lifted from some package, I'd be happy to download such a package and try it out. Thesandlord: Thanks a heap for your responses! Now to clear a few things up: Quote:
Newer PCs have a jumper switch that lets you bypass the contents of a corrupted BIOS, but when older systems start up, the CPU is invariably "aligned" to an area of memory that is mapped to the BIOS, so the BIOS is actually the first thing an older PC's CPU executes. If the BIOS is corrupt, the CPU can't execute anything, so is... effectively... bricked, because the CPU needs to be able to execute the BIOS which after some checks transfers control to the FDD boot block which then boots and finally runs the BIOS flasher. The only way out of such a situation is to replace the BIOS if it's removable, hope you're really good with a soldering iron, or replace the motherboard. What I'm asking is, is the N810 like that older PC architecture, or does it have some kind of failsafe mechanism like more modern systems? Like, if I wrote something to its internal memory (however small this memory is), and the write failed, or I SERIOUSLY botched something up, is the N810 dead? Or can I press a magic keycombo to tell the N810 to ignore the contents of its EEPROM and accept a new image? Is that actually how it works? Let me put it another way. Does the N810 require you to have a successfully working OS already in memory and loadable before it "knows" how to communicate with a computer to flash a new OS? Quote:
Quote:
Quote:
Quote:
Quote:
How does Hildon "run"? Like a session manager? Can I killall the right processes to have apps, sidebar thingy, task manager, panel, etc, quit? Then, assuming that method works, with my N810 just running the terminal I used to killall everything, I can just run openbox from there. Also, I might do a little porting, but mostly plan to develop my own apps. Whether they'll run for Hildon (my programming strengths are generally with PHP and bash, which have almost no working desktop frameworks available - there is PHP-GTK, but that breaks PHP's apache module here, and PHP-QT, but that won't compile here) would remain to be seen. Quote:
Also, how does booting from the SD card work? Is the SD card akin to a PC's hard disks, in that the N810 will first poke its internal ROM for a valid boot block, then the SD card, etc? Or does it just jump straight to ROM, in which is a script that picks up from there and loads from the SD card? Quote:
The GPS. Thanks for mentioning that. I was wondering if I could access that myself, thanks for clearing that up :P But... *you don't have graphics drivers?* You mean you don't have the *sourcecode*, or are you using the VESA driver with this thing?! -dav7 |
Re: A few questions
Just, fyi, the N810 is neither a router nor a desktop computer. You seem to be approaching it like it's one or the other, but it's neither.
|
Re: A few questions
Quote:
|
Re: A few questions
Quote:
|
Re: A few questions
I finally had another go installing Scratchbox, and it failed again, just like last time.
First up, it all *installed* fine... ...then... 1. sb-menu - or more specifically, "import sb_menu" in Python - hangs and eats 100% CPU. 2. sb-conf complains at each and every point I do *anything* at the shell because it's in the prompt string and sb-menu doesn't work. 3. Xephyr won't compile on my system. So I've given up again, likely for good. I like Arch and don't want to have to switch distros; I'll unlikely use Debian anytime soon, so doubt my chances of developing for the Maemo platform until it supports non-Debian-like systems. When I do get an N810, I'll likely either install uArch and work with that, or build an ARM-targeted copy of LFS or something. But thanks for your help! :D -dav7 |
Re: A few questions
Quote:
|
Re: A few questions
Quote:
|
Re: A few questions
I didn't know that existed, thanks.
I'm downloading it now at like 700K/s :D thanks again :D -dav7 |
Re: A few questions
Quote:
USB -> VGA is bad right now Hildon-Desktop is automatically brought back to life if you kill it. You have to modify the script and you can easily replace it with whatever you want, OpenBox, KDE, etc... Booting from SD card is NOT like a computer. Im not very sure how it works, but look at Deblet for a nice Debian port. GPS is fully accessible, don't really understand what you mean? About the Graphics, I don't mean the sourcecode. I mean, we don't have any drivers for the built in 3D. It just sits there. The display is not using the OMAP chip, but a separate controller, making it slow AND weak. Look a liqbase for a example of clever software taking advantage of "bad" hardware. |
All times are GMT. The time now is 19:57. |
vBulletin® Version 3.8.8