Hi all (hi Hilaire :)
I'm interested in making bootable (SqueakNOS) the standard etoys.image from the OLPC.
The process of NOSifying a somehow modern .image is easy:
Just load FFI from universe and then load SqueakNOS from Monticello:
MCHttpRepository location: 'http://www.squeaksource.com/SqueakNOS' user: '' password: ''
Save the image, and reboot with it (copy it to the root of the USB drive as SqueakNOS.image)
I have tested this with several images, and it works. But with etoys.image it doesn't work. I've tested this on the OLPC and on a real PC and VMWare. In all the cases I've got the same result (if you are familiar with the image, which I guess):
The car is moving around the screen, but the screen is not properly redrawn (it only get's redraw when the car passes over somewhere), and the keyboard and mouse don't work (that's my problem). I tried to nail down the problem, but couldn't so far.
One of the problems I had to overcome is to load FFI into the image. Apparently the base .image used is too old for the versions of FFI I could find. I solved this using partial fileout-fileins, bit I'm not sure if I did it properly... I have many questions and possible future directions, but lets just start with the basics:
What version of Squeak is etoys.image based on? What are the chances that I can get the same, but based on a newer image?
If anybody is interested in giving me a hand here, I'll help you get started with SqueakNOS, and from there it'll be just Squeak as you are used to it.
richie
Hi,
What version of Squeak is etoys.image based on?
I'd like to try it tomorrow, but the short answer here is that it is based on the mainstream Squeak3.8-6665, with a lot of changes around UI and the tile scripting system. I don't think there is a significant change since then. (But there are a few issues around FFI and it is basically left unfixed, and the compilers treatment around nil in the literal array has changed, etc.
What are the chances that I can get the same, but based on a newer
image?
The chances are very slim^^; Getting FFI going in the Etoys image would be simpler.
If anybody is interested in giving me a hand here, I'll help you get
started with SqueakNOS, and from there it'll be just Squeak as you are used to it.
Sure.
-- Yoshiki
Yoshiki Ohshima wrote:
I'd like to try it tomorrow, but the short answer here is that it is based on the mainstream Squeak3.8-6665,
that's funny. It's exactly the same version SqueakNOS is based on :)
Let me know (email) when you are on it, so I can give you a hand.
As a sort of debugging/tracing tool, if you do:
(ExternalAddress new fromInteger: 16rFD000000) stringAt: 0 put: (String new: 100000)
You get a black line in the framebuffer.
if black is no good, of course you can do the slower:
(ExternalAddress new fromInteger: 16rFD000000) stringAt: 0 put: ((String new: 100000) atAllPut: $z)
that's going to be e blue line :)
as I said, mail me whatever you need that may make it easier for you
thanks! richie
Hello,
I installed SqueakNOS-gera.49.mcz to the fully updated OLPC Etoys image, and ran it on a stock VM on Fedora 9 on my regular computer. It ran, and when I evaluate
X11Display class>>coloredRectangles
it displays rectangles, so the FFI in the image is working for some extent.
Then I saved the image, and replaced the SqueakNOS.image with it. It boots, and show the initial Morphs I put on the screen did indeed show up. So, display drawing certainly works. But it hangs there, so the primitive usage of device initialization is not working in the Etoys image + SqueakNOS...
-- Yoshiki
At Sun, 21 Sep 2008 23:13:13 -0300, Gerardo Richarte wrote:
Yoshiki Ohshima wrote:
I'd like to try it tomorrow, but the short answer here is that it is based on the mainstream Squeak3.8-6665,
that's funny. It's exactly the same version SqueakNOS is based on :)
Let me know (email) when you are on it, so I can give you a hand.
As a sort of debugging/tracing tool, if you do:
(ExternalAddress new fromInteger: 16rFD000000) stringAt: 0 put: (String new: 100000)
You get a black line in the framebuffer.
if black is no good, of course you can do the slower:
(ExternalAddress new fromInteger: 16rFD000000) stringAt: 0 put: ((String new: 100000) atAllPut: $z)
that's going to be e blue line :)
as I said, mail me whatever you need that may make it easier for you thanks! richie
Etoys mailing list Etoys@lists.laptop.org http://lists.laptop.org/listinfo/etoys
Yoshiki Ohshima wrote:
it displays rectangles, so the FFI in the image is working for some extent.
nice :) Can you check it has the class ExternalAddress? It wasn't there on the version I had, but maybe it was added recently. Where can I get that image from?
Then I saved the image, and replaced the SqueakNOS.image with it. It boots, and show the initial Morphs I put on the screen did indeed show up. So, display drawing certainly works. But it hangs there, so the primitive usage of device initialization is not working in the Etoys image + SqueakNOS...
Open a Transcript and save, so you can see boot messages.
Try also leaving some scripting running (moving some of the morphs around, like the car the original image). To see what happens. But may be the transcript open, and waiting until the boot process is done (the screen flashes) is enough :)
richie
Oops, this email was in a wrong folder, sorry.
At Mon, 22 Sep 2008 15:50:55 -0300, Gerardo Richarte wrote:
Yoshiki Ohshima wrote:
it displays rectangles, so the FFI in the image is working for some extent.
nice :) Can you check it has the class ExternalAddress?
Yes, it does. And it is more or less from Andreas' 1999-2000 version with some fixes.
It wasn't there on the version I had, but maybe it was added recently. Where can I get that image from?
http://tinlizzie.org/olpc/etoys-dev-3.0.zip http://tinlizzie.org/olpc/EtoysV3.sources
and update the image fully. During the update process, Pango rendering may be turned on automatically. To eliminate unncessary complication, I set all fonts to the pixel fonts and turn off usePangoRenderer preference false and saved.
-- Yoshiki
At Mon, 22 Sep 2008 15:50:55 -0300, Gerardo Richarte wrote:
Open a Transcript and save, so you can see boot messages.
It doesn't seem to go to far. I put some test code in the image side like in #snapshot:and:quit:embbeded: and other #startUp in some classes, but none seemed to be executed (I may be doing it wrong, though.) Looking at the VM start up part would be helpful.
Try also leaving some scripting running (moving some of the morphs around, like the car the original image). To see what happens. But may be the transcript open, and waiting until the boot process is done (the screen flashes) is enough :)
How was SqueakNOS.kernel created? (And how do you debug it?)
-- Yoshiki
Yoshiki Ohshima wrote:
It doesn't seem to go to far. I put some test code in the image side like in #snapshot:and:quit:embbeded: and other #startUp in some classes, but none seemed to be executed (I may be doing it wrong, though.) Looking at the VM start up part would be helpful.
That's the same problem I had. Tow particular things confuse me:
. Other squeak images work fine (like SqueakNOS original or SqueakNOS ESUG) . When using etoys.image taken from the OLPC, I got the problem you describe (no code ever ran at startup), BUT, the car (morph/script) moves around and bounces on stuff as it does on a normal image.
The two things together really confuse me
How was SqueakNOS.kernel created? (And how do you debug it?)
On the CD image, directory trunk has everything necesary to rebuild the system. On a linux with gcc and gmake, just go to trunk/platform/SqueakNOS and do make (make try or make iso), that rebuilds the whole system.
As for debugging... well... I don't really have a way to debug it, although OpenFirmware does have a native debugger that you can use. I tried it when I had a problem on the OLPC, and it proved to be very effective.
I just downloaded the image, and I'm updating (it's a lot of updates!). As you suggested, I'm going to change the fonts, I did noticed something about the fonts during my tests.
richie
Gerardo Richarte wrote:
. When using etoys.image taken from the OLPC, I got the problem you describe (no code ever ran at startup), BUT, the car (morph/script) moves around and bounces on stuff as it does on a normal image.
Ok, to understand what I'm saying try putting a bouncing atoms demo and a clock object (or any other stepped morph) on the world, and you'll see how those work.
An interesting note is that when I get to boot this image, the next on the top left rounded edit box (project name?) is not drawn, and instead a red crossed box is shown (the drawOn: fails, maybe on a missing font)
richie
Yoshiki Ohshima wrote:
How was SqueakNOS.kernel created? (And how do you debug it?)
I am just thinking. What external dependencies does etoy relay on? does it require some specific plugins to be compiled in?
If you open SqueakNOS' image, you'll see a collapsed VMMaker, where you can see (and change) the plugins compiled into SqueakNOS.kernel
richie
At Wed, 24 Sep 2008 22:49:07 -0300, Gerardo Richarte wrote:
Yoshiki Ohshima wrote:
How was SqueakNOS.kernel created? (And how do you debug it?)
I am just thinking. What external dependencies does etoy relay on? does it require some specific plugins to be compiled in?
The Etoys image runs on a VM with no frills. Plain 3.7 VM can run it for example.
-- Yoshiki
Yoshiki Ohshima wrote:
How was SqueakNOS.kernel created? (And how do you debug it?)
I also just remembered to tell you and anybody else testing this, that the same thing happens on VMWare when etoys.image is used, so it's not really necessary to have an OLPC and use an OLPC to test this. And it's also not something directly related to the hardware
richie
Excellent! I'm happy that my little machine helps :)
Stef
On Sep 22, 2008, at 1:55 AM, Gerardo Richarte wrote:
Hi all (hi Hilaire :)
I'm interested in making bootable (SqueakNOS) the standard etoys.image from the OLPC.
The process of NOSifying a somehow modern .image is easy:
Just load FFI from universe and then load SqueakNOS from Monticello:
MCHttpRepository location: 'http://www.squeaksource.com/SqueakNOS' user: '' password: ''
Save the image, and reboot with it (copy it to the root of the USB drive as SqueakNOS.image)
I have tested this with several images, and it works. But with etoys.image it doesn't work. I've tested this on the OLPC and on a real PC and VMWare. In all the cases I've got the same result (if you are familiar with the image, which I guess):
The car is moving around the screen, but the screen is not properly redrawn (it only get's redraw when the car passes over somewhere), and the keyboard and mouse don't work (that's my problem). I tried to nail down the problem, but couldn't so far.
One of the problems I had to overcome is to load FFI into the image. Apparently the base .image used is too old for the versions of FFI I could find. I solved this using partial fileout-fileins, bit I'm not sure if I did it properly... I have many questions and possible future directions, but lets just start with the basics:
What version of Squeak is etoys.image based on? What are the chances that I can get the same, but based on a newer image?
If anybody is interested in giving me a hand here, I'll help you get started with SqueakNOS, and from there it'll be just Squeak as you are used to it.
richie _______________________________________________ Etoys mailing list Etoys@lists.laptop.org http://lists.laptop.org/listinfo/etoys
etoys-dev@lists.squeakfoundation.org