Stuckie
Member
Afternoon.
Seems there's been a hellova mess with Extend Utils usage, which I'm going to attempt to fix some of it today... or failing that, towards the end of July when I find some free time.
Effectively, there are two versions of Extend Utils being used... the "OldExtendUtils" package, and the newer configurable one that gives you preMount scripts, and has a huge amount of documentation that I wrote up on the Wiki.
The Old one was meant to have been phased out by now.. it's only still around as I haven't had time to go and wipe things off my server and clean up pages.
Here's the main reason why - the old one is a "black box" and if there's any problems with it, it's incredibly hard to fix. The newer one creates these preMount scripts, which do exactly what the old one does, but gives you it in script form so that you can run it whenever and wherever you want. And as the script is outside the "black box," it's more easily fixable if something goes wrong. You also only have a small amount of loop devices on your Pandora, and if a PND hiccups and fails to unmount, you lose one of these. If you use the Old Extend Utils, that PND stays active while you're in the system. Since it additionally mounts filesystems itself, that's another one or two that it's eating up - bringing a total of three loopback devices that are being chewed up before you even start.
Additionally, I had a bunch of proof of concept extends for various bits and pieces, showing off what you could do with the system.
I had Debian wrapped up in a prebuilt chroot, for example. This got quite a bit of use as well, and I further worked on it to be able to do crazy things like launch two X servers - one for Angstrom, one for Debian - and switch between them pretty convincingly. There's a Youtube video of me doing just that, and running Abuse from inside the Debian extend. This slowly morphed into running Debian from SD, and also from NAND.
Other things included Dev Extends. These were effectively prebuilt root overlays which had gcc et al already installed.
However, as the hot fixes started to roll out, these started to break as the libraries that had been overloaded in the extend became older than what ended up on the system. I did make a note of this on the original thread, however due to Extend Utils being an amalgamation of several dodgy hacks, there's three or four separate threads for the various things Extend Utils can do, so it no doubt got lost.
Therefore, this thread is going to act as the root of all evil.
This is the main Extend Utils thread, as of now.
So let's see what mess has happened and how to go about fixing it.
OS Extends
These are the chroot jails wrapped up in an extend file. I don't think anyone actually uses these, if you do, please post in here so I know I have to look into it and work on it. An alternative to this is Gregor's PanDebian - albeit his system does a debootstrap from scratch, whereas mine is more geared towards a prebuilt blob that's already been bootstrapped. So perhaps either a collaboration, or a complete drop of this from Extend Utils altogether is best.
Also, there are projects for running Debian, Arch, Gentoo and probably others from SD card anyway.. which means the OS Extends are just a neat hack any more.
Dev Extends
These are prebuilt root overlays.. and seem to have caused a lot of pain recently for some people.
The prebuilt nature of them mean that they really should be redone each Hotfix that comes out... as system libraries may end up out of sync ( which is what's happened ) and that's very dangerous as you end up with an unstable system at best. Granted, this is all locked away from NAND, but still.. it's frustrating!
Thinking about it, a Debian Lenny OS Extend would make a pretty nice dev environment, and should be binary compatible with our current Angstrom, so I may do that today.
Home/Root Extends ( or Overlays, whichever you prefer )
Nothing really needs to be done for these, as these start out empty anyway. I'll probably have another look to see if there's any extra folders that haven't been bound out of root.
Swap Extends
Never had an issue with these either, and I'm pretty sure there's other applications out there now that do the exact same thing.
I did have the following features that I've been meaning to add:
The ability to mount these things at boot time.
An actual proper GUI system.
Stackable mounts.
However, boot-time mounting turned out to be rather tricky and I haven't had much time to look into it. And by boot-time mounting, I mean literally spawning off to an Overlay as root gets mounted from uBoot.. you can mount _during_ boot already with the current Extend Utils, as you just need to call your preMount script in an init-rc script. However, this requires stackable mounts to work. I know how the theory behind it works, but I haven't actually tried it yet.. if the stackable mounts thing works, it means boot-time mounting is actually doable as it won't clobber the AUFS binds the PND system requires.
The GUI system has also stalled... I was using FLTK but it's actually a bit iffy, so I'm thinking on using GTK instead as it's guaranteed to be on board the Pandora, and means I can also stick a system tray icon on when an Extend is active, so you remember not to randomly rip the card out and stuff everything up! I just haven't used GTK in a long while, so I need to learn it a bit again.
So, what I need from you kind people is the following:
If the wiki documentation is too overwhelming - TELL ME! How can it be improved? What's unclear?
If Extend Utils breaks or does something odd that you weren't expecting - TELL ME! Post in here so I can track it. I don't have a great deal of time any more to work on all my projects, so they all get the odd five minutes here and there ( yes, even GLESGAE only gets an odd five minutes now and then, which should be evident from how simple it still is! ) so I can't spend ages trawling two forums to find issues if they're not highlighted to me. Actually, can't really spend the time just trawling one of them.
Let's try and get this from dodgy hack status, to something that's a bit more usable and maintainable now
Of course, if people aren't using it any more, I can officially drop it, and concentrate my energies on something else.. so please let me know!
Seems there's been a hellova mess with Extend Utils usage, which I'm going to attempt to fix some of it today... or failing that, towards the end of July when I find some free time.
Effectively, there are two versions of Extend Utils being used... the "OldExtendUtils" package, and the newer configurable one that gives you preMount scripts, and has a huge amount of documentation that I wrote up on the Wiki.
The Old one was meant to have been phased out by now.. it's only still around as I haven't had time to go and wipe things off my server and clean up pages.
Here's the main reason why - the old one is a "black box" and if there's any problems with it, it's incredibly hard to fix. The newer one creates these preMount scripts, which do exactly what the old one does, but gives you it in script form so that you can run it whenever and wherever you want. And as the script is outside the "black box," it's more easily fixable if something goes wrong. You also only have a small amount of loop devices on your Pandora, and if a PND hiccups and fails to unmount, you lose one of these. If you use the Old Extend Utils, that PND stays active while you're in the system. Since it additionally mounts filesystems itself, that's another one or two that it's eating up - bringing a total of three loopback devices that are being chewed up before you even start.
Additionally, I had a bunch of proof of concept extends for various bits and pieces, showing off what you could do with the system.
I had Debian wrapped up in a prebuilt chroot, for example. This got quite a bit of use as well, and I further worked on it to be able to do crazy things like launch two X servers - one for Angstrom, one for Debian - and switch between them pretty convincingly. There's a Youtube video of me doing just that, and running Abuse from inside the Debian extend. This slowly morphed into running Debian from SD, and also from NAND.
Other things included Dev Extends. These were effectively prebuilt root overlays which had gcc et al already installed.
However, as the hot fixes started to roll out, these started to break as the libraries that had been overloaded in the extend became older than what ended up on the system. I did make a note of this on the original thread, however due to Extend Utils being an amalgamation of several dodgy hacks, there's three or four separate threads for the various things Extend Utils can do, so it no doubt got lost.
Therefore, this thread is going to act as the root of all evil.
This is the main Extend Utils thread, as of now.
So let's see what mess has happened and how to go about fixing it.
OS Extends
These are the chroot jails wrapped up in an extend file. I don't think anyone actually uses these, if you do, please post in here so I know I have to look into it and work on it. An alternative to this is Gregor's PanDebian - albeit his system does a debootstrap from scratch, whereas mine is more geared towards a prebuilt blob that's already been bootstrapped. So perhaps either a collaboration, or a complete drop of this from Extend Utils altogether is best.
Also, there are projects for running Debian, Arch, Gentoo and probably others from SD card anyway.. which means the OS Extends are just a neat hack any more.
Dev Extends
These are prebuilt root overlays.. and seem to have caused a lot of pain recently for some people.
The prebuilt nature of them mean that they really should be redone each Hotfix that comes out... as system libraries may end up out of sync ( which is what's happened ) and that's very dangerous as you end up with an unstable system at best. Granted, this is all locked away from NAND, but still.. it's frustrating!
Thinking about it, a Debian Lenny OS Extend would make a pretty nice dev environment, and should be binary compatible with our current Angstrom, so I may do that today.
Home/Root Extends ( or Overlays, whichever you prefer )
Nothing really needs to be done for these, as these start out empty anyway. I'll probably have another look to see if there's any extra folders that haven't been bound out of root.
Swap Extends
Never had an issue with these either, and I'm pretty sure there's other applications out there now that do the exact same thing.
I did have the following features that I've been meaning to add:
The ability to mount these things at boot time.
An actual proper GUI system.
Stackable mounts.
However, boot-time mounting turned out to be rather tricky and I haven't had much time to look into it. And by boot-time mounting, I mean literally spawning off to an Overlay as root gets mounted from uBoot.. you can mount _during_ boot already with the current Extend Utils, as you just need to call your preMount script in an init-rc script. However, this requires stackable mounts to work. I know how the theory behind it works, but I haven't actually tried it yet.. if the stackable mounts thing works, it means boot-time mounting is actually doable as it won't clobber the AUFS binds the PND system requires.
The GUI system has also stalled... I was using FLTK but it's actually a bit iffy, so I'm thinking on using GTK instead as it's guaranteed to be on board the Pandora, and means I can also stick a system tray icon on when an Extend is active, so you remember not to randomly rip the card out and stuff everything up! I just haven't used GTK in a long while, so I need to learn it a bit again.
So, what I need from you kind people is the following:
If the wiki documentation is too overwhelming - TELL ME! How can it be improved? What's unclear?
If Extend Utils breaks or does something odd that you weren't expecting - TELL ME! Post in here so I can track it. I don't have a great deal of time any more to work on all my projects, so they all get the odd five minutes here and there ( yes, even GLESGAE only gets an odd five minutes now and then, which should be evident from how simple it still is! ) so I can't spend ages trawling two forums to find issues if they're not highlighted to me. Actually, can't really spend the time just trawling one of them.
Let's try and get this from dodgy hack status, to something that's a bit more usable and maintainable now
Of course, if people aren't using it any more, I can officially drop it, and concentrate my energies on something else.. so please let me know!