Why the XO-1.5 will also be a challenge for Sugar Labs

   
   
   
   
   

Earlier this week I discussed some of the challenges that OLPC faces with regard to the announcement of the XO-1.5. However I believe that Sugar Labs will also have to deal with some interesting challenges as result of this announcement.


No Sugar 0.84 for the XO-1.5?

For Sugar Labs the XO-1.5 will mainly be yet another device that they'll want to support given that it's likely to be one of the best choices when it comes to low-cost portable hardware for developing countries. However given the pitiful state of Sugar 0.84 on the XO-1 hardware (check mavrothal's forum comments for more information) - which won't be improved until Fedora 12 is released in autumn - I remain skeptical of just how well Sugar will run on the XO-1.5.

Yes, I know technically Sugar 0.84 not running well on the XO isn't Sugar Labs' fault but while the solutions might lie upstream, downstream or in some sort of real collaboration between Sugar Labs and OLPC the fact remains that currently 99% of Sugar's installed user-base can't use the latest available version of the software and is basically stuck in late 2008 as far as Sugar is concerned.

Additionally there's the fun of figuring out whether a specific piece of software such as an activity will work on Sugar 0.82 (aka OLPC 8.2 aka Build 767), Sugar 0.84, the upcoming Sugar 0.86 and the relevant combinations with XO-1, XO-1.5 and other netbook hardware (never mind different Linux distributions and CPU architectures).

I think almost anyone will agree with me when I say that Sugar on the XO-1 still has quite a long way to go until it can really be considered a great solution. Introducing the XO-1.5 isn't going to make things easier but the goal of shipping XO-1.5s with the OLPC 8.2.x software release which will be more than a year old by the time it arrives sets the bar low.

So while it really is OLPC's responsibility to make Sugar run well on all of its hardware I'm afraid that the results could prove to be lackluster (at best) or chaotic (at worst). And while it's up to debate just how much Sugar Labs can do about all of this it's certainly not the best scenario to find yourself in.

Yes, I'm still excited about the XO-1.5 announcement. But damn, that's quite a bit of extra work and worries that just got dumped on everyone working on OLPC / Sugar related projects...

Related Entries

13 Comments

Would like to point out that GNOME or any linux desktop has the same problems that Sugar 0.84 on the XO.

This means that it isn't a matter of Sugar running well on the XO, but Linux.

So the question is: who is going to put resources for mainstream linux to run well on OLPC's hw?

Because I guess we can assume that MS is going to put some dozens of engineers to make sure that their products run well enough on them.

Major difference between OLPC and Sugarlabs are the optimization of Linux kernel and desktop environments. LXDE, Enlightenment and XFCE will perfectly fit on XO due lower hardware requirement. Sugarlabs version of Sugar aimed to be portable on multiple hardware hence lower speed on XO.

I personally think OLPC decision to use Windows XP is a strategically error that will haunt them mostly for political reasons.

@finalzone:
"I personally think OLPC decision to use Windows XP is a strategically error that will haunt them mostly for political reasons."

I think the OLPC' hand was forced to prevent MS from killing them off outright.

MS can only lose on the OLPC as they cannot earn ANY money from it, but must make large costs to get onto it.

That is why I also very much doubt that they will spend more than the absolute minimum on the OLPC. If anything, MS will try to get little more than some pilots off the ground.

Winter

I'm confused about this "decision to use Windows", and "too bad OLPC went Microsoft"

As far as I know Sugar / Linux is still the design / preferred operating system by OLPC. XP XO's boot Sugar off internal flash and XP off of an SD. OLPC spun off Sugar labs, but that's because the company is a financial disaster. Future models (XO-2) are looking at ARM, which inherently isn't MS friendly (except for CE... which sucks compared to Linux), so I don't understand why people think they "abandoned Linux in favour of Windows".

Microsoft has released a version of XP that will work on the XO but as far as I know OLPC doesn't actually do anything for Windows as far as writing applications or deploying the machines, or trying to market Windows. All I've actually heard is a couple pilots, a demo video which may be fudged, and a CNET (or ZDNET) report where someone's daughter prefers Sugar "because it's fun".

From what I understand, cooperation between MS and OLPC is limited to: OLPC providing MS with beta / development models (from which Microsoft had to design their own drivers), the same as other developers, adding consideration in OpenFirmware for being able to boot to Windows (and the guy working on OpenFirmware actually sounded pretty cool and non-partisan about it). There's some questioning whether Microsoft "forced" certain minimum requirements on the machine: RAM and SD slot, however the SD reader is of a fairly free/open design, and a lot of G1G1 recipients boot another OS from SD. RAM? Well Sugar is so bloated that people complain about it running out of RAM as it is, I'd hate to see how horrible it'd be with less.

However there's a lot of Anti-MS sentiment from OLPC developers, so it doesn't sound like they're in cahoots. My favorite is:

http://www.olpcnews.com/software/operating_system/windows_olpc_xp_clarity.html
Sometimes they brick machines (because they have to replace the awesome firmware we have with a poopy PC BIOS) and send them back to the office to get them unbricked. Sometimes they complain that the machine has hardware problems and we reply that it works fine here.

That is a perfect textbook example of the FOSS self congratulatory circle jerk going on in this project.

Say nothing about the fact that their "awesome firmware" caused problems for G1G1 users that wanted to load another Linux OS, or the fact that they wanted to ignore Microsoft's reported hardware problems when golly gee, what's that? Field reports of hardware problems (touchpad, keyboard). Maybe they should have listened.

Or the fact that their awesome open firmware bricks itself if the motherboard battery dies. Look at this:
http://en.forum.laptop.org/viewtopic.php?f=1324&t=155444

Of course, this is the classic bricked XO due to the D6 firmware error. For those couple of people that don't know, loss of motherboard battery power causes some values in NAND to become corrupted, specifically year. Upon restart, the firmware seems the invalid value and fails to restart. Since the laptop firmware security is on, it cannot show the error prompt noting the false data (since it's not allow to initialize the video - I think) and we have a brick.

Maybe instead of ejaculating over how much better your open firmware is than "poopy PC BIOS" you should actually work on it. Here in the "poopy PC BIOS" world we hit F1, reset the date, and move on with life if the battery dies. We don't get out a serial debugger and ejaculate all over the place.

As far as I know Sugar / Linux is still the design / preferred operating system by OLPC. XP XO's boot Sugar off internal flash and XP off of an SD. OLPC spun off Sugar labs, but that's because the company is a financial disaster.

Actually due in-house disagreement, not financial issue.

Future models (XO-2) are looking at ARM, which inherently isn't MS friendly (except for CE... which sucks compared to Linux), so I don't understand why people think they "abandoned Linux in favour of Windows".

That statement is get out of context with "abandoned Linux in favour of Windows" which not mentioned on my comment.

Before comment degenerates further lets say some OLPC developers have plenty reasons to not like Microsoft involvements given their two decades shady past. The example about D6 firmware from the posted link show the issue is not as bad the above comment seems to imply otherwise there would a hug amount of comment.

Oh wow, you are certainly earning your pay, if not in quality but in quantity.

I happen to know much more about PC BIOS than any sane person is supposed to, and I can assure you, the only reason why you can "press F1" is because after initialization all PC hardware involved in it behaves in exactly the same way, and did so for at least 20 years. Manufacturers go to great lengths to emulate IBM PC/AT, to detriment of pretty much everything else including cost, reliability and their developers' sanity. That includes supposedly "legacy-free" systems, EFI and other new development by the same players.

OLPC, on the other hand, implemented something that makes sense -- only to find out that Microsoft developers are too stupid to add support for any new bootloader or filesystem, something that Linux developers do routinely when any new hardware platform is released.

@ finalzone :" That statement is get out of context with "abandoned Linux in favour of Windows" which not mentioned on my comment."

My comment is more general, addressing that a lot of people say things along the lines of "They lost a lot of FOSS developers / community support ever since they 'went to Windows' and abandoned Linux", even though ability to boot into an MS operating system was in the works for a long time. A lot of people seem to act like the FOSS war is over now that Windows runs on the XO, even though development on Sugar continues (as broken as before), I don't see huge reports of XP and OLPC is investigating moving to a platform inherently MS unfriendly.

@finalzone: " The example about D6 firmware from the posted link show the issue is not as bad the above comment seems to imply otherwise there would a hug amount of comment."

My comment is that it seems some of the developers (like Chris Blizzard) are too busy patting themselves on the back in a self congratulatory manner about how "awesome" their stuff is, even though looking at it objectively, it is far from perfect (eg: also has bugs just like anything else). I'm not going to pretend PC BIOS is a better solution than EFI or open firmware, but in this case the very same awesome firmware he talks of was in fact causing bricking, which is the very thing he was accusing Microsoft of with their "poopy BIOS". I would prefer an antiquated, but functioning BIOS over a bricked, but awesome firmware.

As far as it not being "as bad". While the issue is resolved in newer firmware revs, bricking is serious. It renders the device unusable. Not so bad with a Get one device, you can RMA it, but what about field devices? That's one child that doesn't have a functioning computer, and getting repair / replacement might not be so easy in an isolated area.

@teapot: I'm not going to pretend PC BIOS is elegant. EFI and the like are better technologies. Legacy is both one of the best things about the PC platform, and one of the worst. Even on new PCs I still see people run DOS based deployment stuff, which requires BIOS crap. And legacy support is one of the reasons Windows is popular. As far as Microsoft not implementing EFI or open firmware booting, keep in mind product life cycles, and usually they're not ones to introduce drastic new features between releases, and it was 6 years between XP and Vista, and they weren't about to frig around with XP boot code. Anyways, Microsoft went though a lot of effort to port WindowsXP to IA64, which includes EFI boot support. Also AFAIK Vista and newer support EFI booting. I also know that Windows 7 will not boot if you don't have an ACPI BIOS support (which points to requiring more advanced firmware support).

And there's the fact that Chris gets so excited about the open firmware when in the scheme of things it's fairly insignificant. Once the Operating system has booted, no one really cares about whether a BIOS, EFI, or open firmware got you there. People are going to care more about whether the OS is usable, and especially in an educational product (like OLPC), if it contains useful applications and content.

However OLPC decided to go with x86 based systems, which along with the flexibility and compatibility in operating systems, and hardware, comes all the legacy baggage. Even if you don't want to support it, the very fact that it is x86 means people are going to want compatibility with other x86 systems. People think they're doing the developing world a favour by saving them from Microsoft. Frankly I think they should have done the developing world a favour and saved them from x86's inherently archaic design and gone with a clean slate (like ARM) to begin with. Because I doubt they need backwards compatibility with a 70's elevator microcontroller.

There's nothing "shameful" about having PC-BIOS support. I think it actually helps with being an open platform because you can boot whatever OS you want. And stuff like EFI and open firmware allow you to emulate PC-BIOS, so you can use it in a depreciated manner, while still offering and encouraging supporting operating systems the benefit of the more advanced firmware designs. Look at how Intel Mac uses standard EFI, but can emulate PC-BIOS in bootcamp.


PC BIOS is a better solution than EFI or open firmware

EFI is just as bad as BIOS. For $deity sake, it usually runs on top of BIOS.

OpenFirmware is actually superior -- both as infrastructure and as a bootloader.

@teapot: I'm not going to pretend PC BIOS is elegant. EFI and the like are better technologies. Legacy is both one of the best things about the PC platform, and one of the worst. Even on new PCs I still see people run DOS based deployment stuff, which requires BIOS crap.

And this is invariably for systems that run Windows. I happen to be embedded systems developer, and the only situations where I use DOS (or Windows) is when developing or testing PC BIOS or compatibility with it.

And legacy support is one of the reasons Windows is popular.

The problem is, legacy crap is ALL they support. They are incapable of providing support for systems even when such support is much easier to implement, they just reuse the same bootloaders all over again.

As far as Microsoft not implementing EFI or open firmware booting, keep in mind product life cycles, and usually they're not ones to introduce drastic new features between releases, and it was 6 years between XP and Vista, and they weren't about to frig around with XP boot code.

As a professional embedded systems developer, I call bullshit on this. Both bootloader and startup code are completely purged from memory after OS is booted. The only things that are left active after that are the services and handlers that have to be hidden from OS because it does not know how to use them. If they are not used in the first place, OS is the last thing that will miss them.

Anyways, Microsoft went though a lot of effort to port WindowsXP to IA64, which includes EFI boot support. Also AFAIK Vista and newer support EFI booting. I also know that Windows 7 will not boot if you don't have an ACPI BIOS support (which points to requiring more advanced firmware support).

ACPI is basically a standard for describing hardware lists and initialization procedures in a combination of tables and procedural language, plus a set of vague guidelines about turning parts of computer on and off. XO has more sophisticated power management than anything ACPI can support without adding more nonstandard extensions, so with or without ACPI, power management has to be performed by OS.


I also happen to know why exactly some operating systems can't boot without ACPI support. Lo and behold:

http://lxr.linux.no/linux+v2.6.28.8/drivers/pnp/pnpbios/bioscalls.c#L72

http://lxr.linux.no/linux+v2.6.28.8/arch/x86/mm/extable.c#L13

This is a workaround that disables PnP BIOS and recovers after it already crashed on boot when OS tried to access it -- something that happens a lot with recent PC BIOS implementations due to extreme bugginess.

ACPI provides an alternative way to access the same functionality, so buggy code is never called. I guess, Microsoft, being Microsoft, didn't even bother with either investigating the problem or workarounds.

Unfortunately NDA prevents me from explaining details of this problem, however the nature of it can be derived from the mentioned pieces of Linux source.

Just a couple of points.
Fedora 9 (the build-767/Update-0.82 foundation) will not be supported after Fedora 11 release (or 12. I do not remember which one but is just a 6-month difference). This is just to complicate things a bit more with the 0.82-on-the-XO-1.5 announcement.
Linux however (including GNOME), runs great on the XO-1 with or without the OLPC kernel and a few patches (see teapot's Ubuntu or dillinger's DebXO).

Now, on who is doing what. Is simply a matter of priorities... If a single person can do Ubuntu or DebXO on its spare (though admittedly considerable) time, I would assume that even a loosely coordinated, group of 10 or 20 should have no major problems to support 1 or 2 pieces of hardware... Supporting "everything-else, but" of course takes Fedora, Debian or Ubuntu organizations and still needs A LOT of work to run Sugar according to basic specs (see collaboration). However, this IS NOT (and I may add, unlikely to become I'm afraid) your user base. And indeed it is clear from the firmware updates that OLPC/XO is going MS all the way (it is actually the default OS when present in the SDcard)
So, we can sit here and discuss who is doing what, or put our ducks in a row... Either we agree that OLPC XO-1, 1.5, 2 etc will run primarily Windows and there is nothing that can be done about it so focus on the other machines, or you keep developing for the 99% of your user base hardware.

Fedora 9 (the build-767/Update-0.82 foundation) will not be supported after Fedora 11 release (or 12. I do not remember which one but is just a 6-month difference). This is just to complicate things a bit more with the 0.82-on-the-XO-1.5 announcement.

No necessarily, as seen on a transition from Fedora 7 to Fedora 9 and build staging-41 uses Fedora 10 IIRC. Fedora 9 will be discontinued one month after Fedora 11 release. build-767 is just a customized Fedora 9 kernel side and some slim applications versions. Sugar 0.84.x can be easily ported to OLPC so it is up to the organization.

Linux however (including GNOME), runs great on the XO-1 with or without the OLPC kernel and a few patches (see teapot's Ubuntu or dillinger's DebXO).

Lets not forget build-767 is also a Linux distribution and generalisation is bad. AFAIK, teapot patch is custom not upstream unless ported.

And indeed it is clear from the firmware updates that OLPC/XO is going MS all the way (it is actually the default OS when present in the SDcard) So, we can sit here and discuss who is doing what, or put our ducks in a row... Either we agree that OLPC XO-1, 1.5, 2 etc will run primarily Windows and there is nothing that can be done about it so focus on the other machines, or you keep developing for the 99% of your user base hardware.

Basically that quote implies only Windows XP will runs. Problem is will be maintain it now that Windows XP is only in maintain mode and what happen which some critical bugs.

You do realize that most "modifications for XP" are actually PC BIOS emulation, the same environment that is expected by all Linux installation media for PC, right?

@finalzine
"build staging-41 uses Fedora 10 IIRC"
Not really.Look at the differences here http://dev.laptop.org/~bert/8.2-8.2.1.html Staging41 has just q2e41 firmware over os801.

@teapot
"You do realize that most "modifications for XP" are actually PC BIOS emulation, the same environment that is expected by all Linux installation media for PC, right?"
Right. But that's all OLPC is apparently doing (paying for). Right?...

I agree that OLPC development severely misdirected, however from the very beginning it was clear that it is more influenced by supposedly-powerful people and companies (Negroponte, Intel, Microsoft/Gates, etc.) trading influence on each other, rather than any stated goals, least of all its social impact.

The best I can hope is that despite this, Negroponte will accidentally [accomplish] the whole project.

Close