Thanks for the info, it tells me I am on the right track. I had first tried to build w/o the kernel and it didn't boot, so I then tried to "make" with the kernel and wondered why it was taking so long when puppy is so small! I have no kernel experience, but it must be there are just so many small files to download and compile. I don't know how to determine whether I need the kernel or not, can I just take the kernel file from (for example) XOpup?

Anyway, the build failed after 30+ min. because I was building on my debian system. Then I booted the Puppy Arcade disk as indicated by the script, but never got it to work since I was (surprisingly) having wireless trouble. Never had a problem with puppy on my vaio before, so maybe unique to the Puppy Arcade build.

Thanks for the info, it tells me I am on the right track. I had first tried to build w/o the kernel and it didn't boot, so I then tried to "make" with the kernel and wondered why it was taking so long when puppy is so small! I have no kernel experience, but it must be there are just so many small files to download and compile. I don't know how to determine whether I need the kernel or not, can I just take the kernel file from (for example) XOpup?

you definitively need an XO-specific kernel. building your own is pretty automatic with the scripts but you need an internet connection.
The scripts work both in puppy and in other distros as long as you have the respective dev tools and run some commands as root.
You could use the XOpup kernel too. You will need to coppy boot10 folder as such and /lib/modules in a folder named XO1kernel in your build dir._________________Kids all over the world go around with an XO laptop. They deserve one puppy (or many) too

I did. No go
The XO build boots fine but does not go to desktop because the geode video driver is not included in the iso.
Even if you find it somewhere will be an old version an anything before 2.11.10 is too slow, especially for gaming.
You'll need to compile a newer one, assuming that all needed files are in the 420 devx and there are not other issues with the older xserver that 420/Arcade has and the newer geode drivers._________________Kids all over the world go around with an XO laptop. They deserve one puppy (or many) too

mavrothal, thanks so much for giving it a try! I am thinking maybe it will be easier to start with xopup-2.2 as a base then, and maybe add the packages from puppy arcade directly. There was clearly a lot of work that went into both puplets, so merging them will be a major challenge for me, and could be a good new project! I really like the ROM launcher for puppy-arcade which can be navigated in tablet mode on the xo-1. I like the idea of turning the xo-1 into a great kids game system, like an oversized gameboy!

I think the OLPC XO-1 is a marvellous piece of hardware, let down badly by the software. (I bought 6) A while ago I tried running puppy, but was continuously frustrated with applications requiring a more up to date kernel. I really wanted to know: In what way is the OLPC so different from any other laptop? I know it doesn't boot the same way. (Rather than load an MBR at 0000:0007ch & run it, it has this forth driven load system), but are the other BIOS INT calls different? I thought Linux did not use these calls anyway once up and running. Why does the kernel need patching, and what does this do? Why does the rest of puppy need changing?

I thought this thread, (which I have only just discovered) would let me answer this, but I am confused. It starts with 'Create_xo_puppy-0.3.tar.bz2' which seems to be a broken link & I can't find it anywhere. Then there is XOpup_kernel_builder-4.sh.gz. This seems to patch the Kernel source code using downloaded patch instructions, but little indication as to what this achieves. However, it seems to work on the kernel & that alone. Then there is, the Pox_git entry, create_xo_puppysh.html which when separated from the HTML seems to be a script that is claimed to magically do the whole thing from just an ISO download (which surely does not have the kernel sourcecode). It appears to modify many things, but not the kernel. (well if it does, I have not found where.) Duh????? I have not actually run any of them yet.

In order to take a short cut and actually upgrade my OLPC's, if converting any puppy is now supposed to be so easy, (even if time consuming), could someone who has done the latest two ISO's not make the result available for direct download?

I think the OLPC XO-1 is a marvellous piece of hardware, let down badly by the software. (I bought 6) A while ago I tried running puppy, but was continuously frustrated with applications requiring a more up to date kernel. I really wanted to know: In what way is the OLPC so different from any other laptop? I know it doesn't boot the same way. (Rather than load an MBR at 0000:0007ch & run it, it has this forth driven load system), but are the other BIOS INT calls different? I thought Linux did not use these calls anyway once up and running. Why does the kernel need patching, and what does this do? Why does the rest of puppy need changing?

XOs need a specific kernel because some of the hardware drivers and mods are not upstream yet.
The rest of puppy does not really needs modification but for space savings a lot of useless stuff is removed (kernel, video drivers).
Some user space modifications (power management, udev with extras, chrome driver for the XO-1.5 and a couple little apps and configurations) are done to improve functionality

Yogi12 wrote:

I thought this thread, (which I have only just discovered) would let me answer this, but I am confused. It starts with 'Create_xo_puppy-0.3.tar.bz2' which seems to be a broken link & I can't find it anywhere. Then there is XOpup_kernel_builder-4.sh.gz. This seems to patch the Kernel source code using downloaded patch instructions, but little indication as to what this achieves. However, it seems to work on the kernel & that alone. Then there is, the Pox_git entry, create_xo_puppysh.html which when separated from the HTML seems to be a script that is claimed to magically do the whole thing from just an ISO download (which surely does not have the kernel sourcecode). It appears to modify many things, but not the kernel. (well if it does, I have not found where.) Duh????? I have not actually run any of them yet.

This thread evolved with development...
Pox_git scripts is the latest development and it does build an XO specific puppy "magically". Just download, expand (or git clone) and run.
To take out the magic you may want to read the readme file .

Yogi12 wrote:

In order to take a short cut and actually upgrade my OLPC's, if converting any puppy is now supposed to be so easy, (even if time consuming), could someone who has done the latest two ISO's not make the result available for direct download?

Thank you very much indeed for your message. Much information leading to much thought: and much time (that I simply do not have) consummed but in an interesting way.
My background/perspective: Electronic researcher & hardware designer before microprocessors were invented. When they came, a god send. Much less hardware, connect everything using numbers. However, programming style my own, which developed to quite large projects. Code re-used extensively, but using copy-paste NOT headers or libraries etc. Very 'KISS' 'Keep It Simple, Stupid'. (sarcasm on: I often think Make files are more complicated than the application they are trying to make need be. sarcasm off.)

The actual Puppy I wanted to put on my OLPC (lupu-528.005.ISO) did not seem to be available, so I decided to simply use the offered 'Magic' of create_xo_puppy.sh, in my system Edubuntu 8.04.4LTS., kept up to the latest 'update'. This seems to replace the kernel every other month so that I assumed it would be up to date. Result: 'export: 18: Illegal option -f'. Apparent reason: the first line line of the script (so called shebang line) causes the shell 'dash' to be used. Dash does not support export of functions. (Not that this is necessary from the user's point of view.) My solution: edit the first line to be #!/bin/bash. (I defy any newbie to suss that one out!). Now it complained about the kernel version. Thought this must be a 'test error', but no: I can create & mount squash filesystems, but not the latest! As I didn't want to do heart surgery on this system just to run a script (if it didn't create problems somewhere why wasn't it already done?). Abandoned. Found a more up to date Edubuntu. (11.10 Oneric Ocelot) (Ugh! Horrid GUI) 'Dash' problem still applied. Script failed this time with "cp: cannot stat (working directory)/XO_sfs/* no such file or directory, and a similar line but with a list of initial letters. Looking at script I could see where $XOSFS is defined, but could not easily spot where it creates a directory from it. Temporary give up, too involved for the time I had. Decided to take the hint given when the script runs about not using Puppy, so decided to try again using the lupu release I wanted as a base. It gave the usual moan that there was no pks_remrc file in the working directory and simply returned a command prompt (I assume pks_remrc is an _optional_ configuration file????). Investigation indicated that not being able to find this file aborts the script. Why I do not know. My solution: commented out the . $CWD/pkgs_remrc line. Now had the same outcome as the second Ubuntu attempt. That ended exactly the same way as the second Edubuntu attempt.

Oh well, I decided to work with the ready made releases available. (There seemed to be 5). I would like to compare them to find the differences, (is that documented anywhere?). Just a little forth script, or so I thought. Failed miserably. Simplified my script to this point:- Selecting the original script, modified to unambiguously display what went to boot_file, boot_device and ramdisk booted racy5.3 fine. Selecting a simplified script that just consisted of three lines putting exactly that to those three places (and booting, with or without unfreeze) I got:-

Tried to find what it is about the body of the original script that makes a difference. I like forth, but it only really works if words added beyond the widely documented ones are themselves well documented. Please - is there any where on the internet where words such as 'get-package-property' are documented? (I found one possible broken link lead only.) Tried examining with the only tool I know, 'see', but could not find anything that was a clue as to my problem.

Help with my frustrations would be most appreciated: I would love to 'understand' this lot, (and possibly contribute) but feel I am spending a lot of time not really getting there.

The actual Puppy I wanted to put on my OLPC (lupu-528.005.ISO) did not seem to be available

Lupu 528 is evolution of Lupu5x that the original XOpup is based on. Newer apps in lupu528 can be downloaded with the Puppy Package Manager and installed in XOpup, usually without any problems.
A lot of the improvements in Lupu relate to hardware detection and implementation and are not really relevant to XO laptops.

Yogi12 wrote:

Result: 'export: 18: Illegal option -f'. Apparent reason: the first line line of the script (so called shebang line) causes the shell 'dash' to be used.

I use the Pox_git scripts in Puppies or Fedora. It looks like that Ubuntu has dash as the default shell script. I guess changing to shebang in all the scripts to /bin/bash is the way to go on that. Or you could symlink /bin/sh in Ubuntu to bash instead of dash (sudo ln -sf /bin/bash /bin/sh).
But is a good point. I changed the scripts to bash in Pox_git

Yogi12 wrote:

so decided to try again using the lupu release I wanted as a base. It gave the usual moan that there was no pks_remrc file in the working directory and simply returned a command prompt (I assume pks_remrc is an _optional_ configuration file????).

To build a puppy you must clone or download the Pox_git tarball extract it and then you can either run the scripts individually or run the master script. The pox_git directory besides the scripts has also patches the pkgs_remrc and other XO files needed for the builds. The scripts by themselves will not do it.
Also make sure you have at least 1GB space if you are going to build the kernels

One "wired" thing is that you can not run the master script (make_build) from within the directory you downloaded but from a level above. eg

Code:

./mavrothal-Pox_git-80b09cb/make_build -b /path/to/iso/puppyname.iso

(The idea is that this is a git repository for the development of the build scripts and not for the puppy XO builds, so we leave it alone).

The master script will make the working directory named "puppyname_XO_build" and make everything in there. When it finishes the build files are found in the build directory within the puppyname_XO_build folder.

Also if you run the other scripts individually from within the directory you cloned/downloaded "{mavrothal-}Pox_git{-commit}" will fail since other needed files are not in the right path. Running them from the "puppyname_XO_build" directory that make_build generates works fine
(Hmm... OK I put some safeties for that in the scripts in case the Readme is not clear enough)

Yogi12 wrote:

Oh well, I decided to work with the ready made releases available. (There seemed to be 5). I would like to compare them to find the differences, (is that documented anywhere?).

The differences between the different puppies (and their respective XO versions) is binary compatibility and the repertoire of apps/desktops that each developer adds to the given puppy.

Yogi12 wrote:

Just a little forth script, or so I thought. Failed miserably. Simplified my script to this point:- Selecting the original script, modified to unambiguously display what went to boot_file, boot_device and ramdisk booted racy5.3 fine. Selecting a simplified script that just consisted of three lines putting exactly that to those three places (and booting, with or without unfreeze) I got:-

FAIL.

Is not clear to me what you did here. Maybe you can post your olpc.fth file but the original olpc.fth passes a number of arguments to puppy, including the boot device ant thus the location of the sfs files.
You should also make sure that you use the correct initrd.img for the build since the puppy version, and sfs to look for, is defined there.

Yogi12 wrote:

Please - is there any where on the internet where words such as 'get-package-property' are documented? (I found one possible broken link lead only.) Tried examining with the only tool I know, 'see', but could not find anything that was a clue as to my problem.

You could also ask directly in the OLPC devel list that has many very knowledgeable OFW/Forth developers including Mitch Bradley himself_________________Kids all over the world go around with an XO laptop. They deserve one puppy (or many) too

Thank you very much once again for your reply. Once again much to think about and work on. I obviously have not got the knack of sorting the Internet gems from vast quantities of scarcely relevant in this subject area yet.

You suggested I posted my olpc.fth. The following is my script, (stored in /boot as olpc.fth in the XO-1.0).
The SD card has may things, but relevant is that /boot10 is the original racy /boot10, containing its config file, initrd.im and vmlinuz. /boou10 is the original /boot10 from the lupu, containing its config, System.map initrd.img and vmlinuz. Currently lupu-511.sfs and puppy_racy_5.3.sfs together with sfs files created by them are all in the root directory of the card. Options 1 and 8 work (8 boots racy), 2 does not, producing the effect reported above.

As you can see from the commented out lines, that is how I initially had it. Upon failure, in order to try and work out if the problem was anything to do with the formation or syntax of the lines, I tried using exactly (as far as I could copy) what worked after executing the original script.

Mavrothal wrote:-

Quote:

BTW when you say lupu-511 you mean from XOpup-2.2 or indeed the Lupu-511 initrd/vmlinuz?

All I know is I obtained lupu-511.sfs and the boot10 folder (renamed by me to boou10) from file XOpup-1.0.tar.gz downloaded on or before 28th November 2010. The folder inside is dated 16th October 2010.

As you can see from the commented out lines, that is how I initially had it. Upon failure, in order to try and work out if the problem was anything to do with the formation or syntax of the lines, I tried using exactly (as far as I could copy) what worked after executing the original script.

XOpup-1.0 and slacko_xo_5.3.3 have considerably different init and I do not think "root=/dev/mmcblk0p1 rootdelay=1" is something that the puppy init understands.
Some times is also card timing issues that XOs may have problem with.
I trust that you are running a recent firmware on your XO-1 (preferably q2f11 or 12) that tries to address some of these issues.
You may also try your files in a USB stick to see if indeed is a card problem

BTW XOpup-2.2 is considerably better and closer to lupu-525_________________Kids all over the world go around with an XO laptop. They deserve one puppy (or many) too

Oops. I intended the commented out lines in my script to be my original, but when trying all kinds of different things, (including things "borrowed" from other places) I got the script messy. When I pruned it for the post I left in the wrong commented out line. Sorry. (Tests would not have found that error.) My original offering, which I thought would just 'work', was in fact exactly your first suggestion. Checked by testing it again, failure as reported above. Tried the substitution of ext: for sd: in the other two lines, and the result was the same.

Quote:

Some times is also card timing issues that XOs may have problem with. I trust that you are running a recent firmware on your XO-1 (preferably q2f11 or 12) that tries to address some of these issues.
You may also try your files in a USB stick to see if indeed is a card problem

Q2E45. Perhaps I should update. I am still interested in the approach that boot is passing something read from the script. boot calls boot-getline which calls parse. parse does not seem to behave like the parse I am used to. I have tried leads from you but I still cannot find an index document of the words in the olpc prom like I am used to having when a third party has added to forth. (I have not so far downloaded the entire source to create one for myself.)

moan mode:
All this escalated from trying to by-pass an issue with python code, and the required python release not running with the kernel in the olpc, and not being able to easily change it. The python code is only required because of the way a particular person wrote the user interface to control a driver that that does not need or directly use python at all. Why such a simple use of something simply used to make pretty pictures should be so release dependent is beyond me. Somehow, I am feeling I am still deep in the old Linux 'monolithic' complexity of EVERYTHING being dependent on several large chunk things that cannot be adapted without breaking unpredictable things that currently work, and are completely irrelevant to the problem in hand. Most of the dependencies themselves are side effects and not directly relevant to the objective of the software. Somehow, the way the entire system works to achieve what it does is far too complex, which produces documentation issues. /moan mode

I will next follow your suggestion of trying XOpup-2.2, and possibly just simply put all the releases on different sticks or cards. Thank you a great deal for all your help, you have enabled me to learn a lot.

I am still interested in the approach that boot is passing something read from the script. boot calls boot-getline which calls parse. parse does not seem to behave like the parse I am used to. I have tried leads from you but I still cannot find an index document of the words in the olpc prom like I am used to having when a third party has added to forth. (I have not so far downloaded the entire source to create one for myself.)

Once more I would recommend the olpc-devel list for FORTH/OFW related issues. They are usually helpful, though you may want to get a sense of the list "culture" first
And if you get a super-bootloader going please post it here or maybe the aforementioned olpc wiiki page_________________Kids all over the world go around with an XO laptop. They deserve one puppy (or many) too