Author Topic: Other Operating Systems  (Read 6123 times)

spartan

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Other Operating Systems
« on: January 05, 2005, 11:55:27 pm »
Has anyone had any luck running something other than Linux on their Zaurus models?

To keep this as brief as possible, I need a simple program that transfers control from Linux protected userspace mode to kernel unprotected mode--starts in Linux on the Zaurus, then dirtly transfers control to an entrypoint inside an executable/bootloader.

Why? Windows CE isn't just feasible, it's so simple it's disgusting. For all intensive purposes I have a straightforward, feature-packed ROM ready for anything that uses the XScale processors, with Internet Explorer and DirectX, a huge number of video codecs, and the professional engineering of Microsoft. As a proof of concept (and to keep my difficult-to-restore C3000 clean), I would sincerely prefer a program that transfers control from Linux to anything, technically it doesn't matter.

I understood that such programs are as simple as...

Code: [Select]
void main() {
 Â int ptr;
 Â ptr = (Linux equivalent of ReadFile)(Path to executable);
 Â (Kernel unprotect function)(TRUE);
 Â (Compiler assembly directive) {
 Â   jmp ptr;
 Â }
}

I've only had luck finding programs that transfer control from Windows CE to Linux, not the other way around. I don't have a Linux cross-compiler, being a Windows user. If someone were to compile this seemingly straightforward application, it would be greatly appreciated. However, that is for a different forum.

Now admitedly this sounds like blasphemy, but it's just being used as a proof of concept.

Added: The ROM information is attached.

Added: The only thing I need the the program for is specifically for testing on the C3000. For any other non-harddisk model, one should be able to flash the ROM image directly on. It can't get any more bloated than 32MBs with literally everything enabled. I already configured the Japanese keyboard layout support (the rest is plug-and-play), but I haven't tested it, so that's basically an unwise thing to do!
« Last Edit: January 06, 2005, 12:06:59 am by spartan »
C3000 with Tetsu v18d Special Kernel and Sharp 1.11JP ROM
1GB Lexmark SD, 2GB Mini SD, Socket Revision H Bluetooth, Ambicom Wi-Fi

arniel

  • Full Member
  • ***
  • Posts: 103
    • View Profile
Other Operating Systems
« Reply #1 on: January 06, 2005, 05:38:52 am »
Quote
...and the professional engineering of Microsoft.
I hope you've got your flame-proof suit on

Mickeyl

  • Hero Member
  • *****
  • Posts: 1495
    • View Profile
    • http://www.Vanille.de
Other Operating Systems
« Reply #2 on: January 06, 2005, 06:57:36 am »
Best take that up to the linux-arm mailing list.
Cheers,

Michael 'Mickey' Lauer | Embedded Linux Freelancer | www.Vanille-Media.de
Consider donating, if you like the software I contribute to.

kopsis

  • Sr. Member
  • ****
  • Posts: 329
    • View Profile
    • http://kopsisengineering.com
Other Operating Systems
« Reply #3 on: January 06, 2005, 07:17:21 am »
Quote
For all intensive purposes I have a straightforward, feature-packed ROM ready for anything that uses the XScale processors, with Internet Explorer and DirectX, a huge number of video codecs, and the professional engineering of Microsoft.
Really? So you've written and integraded Windows CE drivers for the custom display, touchscreen, SD card, and power management hardware in the Zaurus? And of course I assume you've built your WinCE kernel specifically for the Zaurus hardware memory map?

Excuse my sarchasm, but there's simply no such thing as a WinCE build that will run on any device with an Xscale processor. PDAs and other embedded devices are not like PCs. They don't have an industry standard architecture, they don't have a plug and play BIOS, they don't even have consistant memory maps. CE builds have to be targeted to a specific hardware platform. That's why you can't, for example, flash a Toshiba PocketPC with an iPaq ROM image.

Now, with enough knowledge of the Zaurus hardware obtained via reverse engineering (because Sharp hasn't published enough of the details), it is theoretically possible to create a compatible version of WinCE. But in the hundred or so times I've seen various flavors of this question asked, not once has anyone actually accomplished that task.

I won't touch the comments regarding the quality of WinCE other than to say that I've been developing military and telecom grade embedded systems since 1989 and after seeing the internals of PalmOS, WinCE, and Linux, choosing the Linux was a no-brainer.

Tom61

  • Sr. Member
  • ****
  • Posts: 252
    • View Profile
Other Operating Systems
« Reply #4 on: January 06, 2005, 05:13:04 pm »
Quote
I don't have a Linux cross-compiler, being a Windows user.

You could just install ZGCC on on your Zaurus, since what you want should be fairly small.

spartan

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Other Operating Systems
« Reply #5 on: January 06, 2005, 10:16:20 pm »
Thanks Tom--I'll try that. But, my C++ programming skills are certainly nothing amazing!

While you make an excellent point about memory mappings (there doesn't appear to be anything I can change about that, or if it's a problem), Kopsis, you come to an even more important conclusion: "embedded devices are not like PCs". The great advantage of system-on-chip solutions like the Xscale processor is it's simplicity to program.

Firstly, no driver programming is necessary on the PXA270 on the C3000--I couldn't confidently say the same for the PXA255 or PXA250. Broad Support Packages, the most important feature of Windows CE, handle the hardware details. The system works so perfectly because the processor is the videocard, the soundcard, the USB controller, the flash controller, the memory controller, the storage controller, the UART/GPIO controller, and even power controller of the entire system. Everything gets handled on behalf of the processor, which is why it is in fact so simple to deploy Windows CE.

Perhaps those who have previously invisioned deploying Windows CE imagined a kernel-build system, with specific tweaks needed for everything to work and versioning control to perform. With the amount that Intel and Microsoft are so deeply in bed, Platform Builder for CE .Net 4.2 handles all the work for much more than just the Xscale processor.

Just like in the Windows computer world, the issue isn't features like Windows Media Player or Internet explorer: the competition makes cheaper, faster, or prettier hardware.

The emphasis technology-wise lies in the SoC (system-on-chip) nature of embedded computers. The same could be done, just as easily, if the Zaurus ran a Texas Instruments OMAP processor or one of the new Samsung competitive products.

In response to why I am personally considering Windows CE, it's really down to the same reasons why there's Mozilla and Firefox, Gnome and KDE, Debian and Redhat: I have a choice, and I can make it free of charge! Remember, I'm sure people are interested in this, and on such a wonderful hardware platform like the Zaurus models, I came here for help.
C3000 with Tetsu v18d Special Kernel and Sharp 1.11JP ROM
1GB Lexmark SD, 2GB Mini SD, Socket Revision H Bluetooth, Ambicom Wi-Fi

kopsis

  • Sr. Member
  • ****
  • Posts: 329
    • View Profile
    • http://kopsisengineering.com
Other Operating Systems
« Reply #6 on: January 07, 2005, 08:14:58 am »
Quote
Everything gets handled on behalf of the processor, which is why it is in fact so simple to deploy Windows CE.
A more correct statement is that most everything can be handled by the processor. That does not mean that it is. I've seen a number of PXA270 designs that evolved from PXA255 designs and chose not to use many of the SOC features because doing so would add significant extra development (taking stuff out of a hardware design is often as much work as putting it in).

Even on new designs, not everyone follows the "reference design". Hardware designers have to deviate to add value and differentiate their products. In fact I led one PXA270 design where we opted not to use the built-in display controller because the limited range of displays it supported did not meet our application requirements. And even if the deviation is as trivial as selecting which GPIOs are going to be used as keypad input, it's still a deviation and it means you're going to have to tailor the BSP to fit the hardware. Yes, the PXA270 means potentially less BSP customization, but expecting the reference platform BSP to "just work" on any PXA270 based device is highly unrealistic.

Merardon

  • Full Member
  • ***
  • Posts: 141
    • View Profile
    • http://
Other Operating Systems
« Reply #7 on: January 13, 2005, 10:29:10 am »
Quote
Remember, I'm sure people are interested in this
Are you forgetting that the Zaurus is almost exclusively a geek-only model here? As for the quality of Windows CE, and Windows in general, I merely point to those with computer expertise. I'll not deny that Windows is certainly useful for many people, but I just don't see the point to this at all, as people buy the Zaurii for a reason. I won't disagree with your statement that it's a matter of choice, but remember, without Linux, the actual devices aren't as good as some of their competitors. The main attraction is Linux, at least for me, and the hardware comes second.

EDIT: If you're still serious about it, then you'd be better off in a Japanese Zaurus forum. There'd be more interest there, as it's more then a geek tool there.
« Last Edit: January 13, 2005, 11:38:32 am by Merardon »
Zaurus SL-C3100 (Borzoi) - Cacko ROM 1.23 & OpenBSD 4.0 Beta
Zaurus SL-5500 (Collie) - OpenZaurus 3.5.4.2 RC1
[img]http://forum.zaurus.cn/data/chroot/zaurus/upcoming/c3100_126.gif\" border=\"0\" class=\"linked-sig-image\" /][img]http://forum.zaurus.cn/data/chroot/zaurus/upcoming/5500_134.gif\" border=\"0\" class=\"linked-sig-image\" /]
Miscellaneous random accessories

clofland

  • Full Member
  • ***
  • Posts: 247
    • View Profile
    • http://www.lofland.net/
Other Operating Systems
« Reply #8 on: January 13, 2005, 03:14:37 pm »
However, as a geek, I would love to get CE running on my Z.

Just for fun.

A dual boot would be cool too. CE on an SD card anyone?
C-760 Last Running pdaXrom 1.1.0beta3
- Sandisk UltraII 1GB SD card - Socket LP CF LAN card - Socket LP CF WLAN card - Socket CF Bluetooth Card Rev H -

spartan

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Other Operating Systems
« Reply #9 on: January 14, 2005, 12:43:23 am »
To say the least, examining the kernel source, namely the GPIO bit flags, battery drivers, and hardware key support (crazy things like the "screen close" button), is a monumental task. To implement Windows CE 4.2 on the C3000 is far less feasible, in fact, than on earlier models because of the CE-friendly file system configuration. I agree that it's very difficult to get right. My main safe testing requirement is still a kernel mode jump program. That way, I can at least feel comfortable trashing my Zaurus.
C3000 with Tetsu v18d Special Kernel and Sharp 1.11JP ROM
1GB Lexmark SD, 2GB Mini SD, Socket Revision H Bluetooth, Ambicom Wi-Fi

waalkman

  • Full Member
  • ***
  • Posts: 176
    • View Profile
Other Operating Systems
« Reply #10 on: January 14, 2005, 04:56:58 am »
Doesn't Platform Builder for CE do this for you already?


John
C860, SMC Model SMC2642W, various sized memory cards

davidmcnaught16

  • Newbie
  • *
  • Posts: 36
    • View Profile
Other Operating Systems
« Reply #11 on: January 14, 2005, 09:09:12 am »
Why do you want CE on a zaurus?

If you want CE, you can get much better hardware than the zaurus for less money with CE already installed. (Loox 720, Axim x50v etc)

The only reason I can think of is that there is no decent windows CE machine with a good keyboard.

nilch

  • Hero Member
  • *****
  • Posts: 668
    • View Profile
    • http://
Other Operating Systems
« Reply #12 on: February 01, 2005, 12:35:13 pm »
Quote
Why do you want CE on a zaurus?

If you want CE, you can get much better hardware than the zaurus for less money with CE already installed. (Loox 720, Axim x50v etc)

The only reason I can think of is that there is no decent windows CE machine with a good keyboard.
[div align=\"right\"][{POST_SNAPBACK}][/a][/div]


Well now with the Olympus release, you can also get much worse hardware (in terms of screen) for much MORE money with WinCE installed, without the keyboard to boot.

See [a href=\"https://www.oesf.org/forums/index.php?showtopic=10421]Thread here[/url]

Just resurrected this thread to ask a question...
How come Olympus is able to have one hardware which supporst both WinCE and Qtopia (the question that the parent poster had asked) ? I havent really checked up the Olympus hardware chip, but is it significantly different ?

Ps: Not that I am interested in WinCE alongside Qtopia, but as a hypothetical possibility ....
New no more-C1000 / 5000D (sold my 6000 and 750) | Cacko ROM 1.23 on C1000 | 256 MB CF | 2GB PNY SD card | Socket Networker WiFi CF Card | USB Host cable from StreamlineCPUS | Mini Microphone (for voice recording) |

tumnus

  • Hero Member
  • *****
  • Posts: 1176
    • View Profile
    • http://www.cpinkney.org.uk
Other Operating Systems
« Reply #13 on: February 01, 2005, 12:46:42 pm »
It's not about having hardware to support the software, but rather having the software support the hardware.

In terms of getting WinCE to work with a device, you need the source code to tweak drivers etc to work with your device. This requires an expensive commercial license that comes with a hefty NDA agreement from Microsoft.

Of course with Linux and GPL Qtopia it's much easier and cheaper as it's all open source. If it wasn't for this I doubt you'd see a Linux/Qtopia option for the Olympus device.
# Search the Zaurus Howtos ## Search the Zaurus FAQs ## Find Z software at ELSI #
--------------------
UK SL5500 with Sharp ROM 3.13, SL5600 with Sharp ROM 1.32 - SuSE 9.0 Pro, Windows XP Home
Qualendar for Calendar and Todo
Socket Bluetooth CF Card (Rev F), Kingmax 512MB MMC Card, Palm Tungsten T Stylus,
Pretec CF->Smartmedia Adapter, Semsons Universal Battery Extender

kopsis

  • Sr. Member
  • ****
  • Posts: 329
    • View Profile
    • http://kopsisengineering.com
Other Operating Systems
« Reply #14 on: February 02, 2005, 09:13:28 am »
Quote
It's not about having hardware to support the software, but rather having the software support the hardware.
Exactly! What people don't seem to understand is that every manufacturer of a handheld device has to take the source code for someone's operating system (WinCE, Linux, Symbian, PalmOS, etc.) and change it to work with their hardware. That is difficult, specialized work. I've seen embedded development houses quote six figure prices to develop a WinCE board support package (BSP) for a new hardware platform. And then of course, you can't distribute WinCE without paying Microsoft a fee for every copy that goes out the door.

But there's an even bigger reason that few vendors offer an OS "choice" on their devices ... support costs! Unless you've actually sold PDA hardware or software, you can't even begin to imagine the number of hours that go into customer support. And the more choices you give the customer, the worse it gets.

Let's say you offer a device with WinCE with no "approved" way to modify the OS. Most of your support requests will be generic WinCE questions and you can pass the buck to Microsoft. Now let's say you offer an alternative Linux distro for customers to flash. First off you get a batch of support questions from people who want help deciding which OS they should use. You also get the inevitable percentage of customers who will have problems flashing (usually their fault but don't try to tell them that).

Those who do get Linux going will have questions and problems that you have to field because if you try to pass the buck to Trolltech or Metrowerks (companies your customer has never heard of) you're going to look really incompetent (no one ever looks bad for blaming Microsoft  ). Sure you can offer Linux as an "unsupported" alternative but then most customers won't go anywhere near it (what percentage of iPaqs saw Familiar installed by the original purchaser?). Especially the first time a customer has a problem with the "unsupported" software and starts posting long rants about all their difficulties.

So as a PDA maker that wants to support the Linux community, you can:

1) Make a strictly Linux device (Zaurus approach). This is a tough sell but can work -- at least in some markets. I think it's safe to say the Zaurus is a success in Japan.

2) Open your hardware specs to the community so they can port Linux themselves (Compaq + Familiar approach). The risk here is that you open your hardware specs to your competition and risk competing with less expensive clones (since they don't have to amortize as much development cost).

3) Offer WinCE and Linux (Olympus approach). You dramatically increase your support costs for a very marginal increase in sales. This "might" work for Olympus who appears to be targeting vertical markets, but is highly impractical for the consumer electronics world.

4) Forget Linux and suffer the loud but small wrath of the offended community.

You're the CEO and there are millions of dollars (plus your incentive pay and possibly your job) on the line ... what call do you make?