Extend Utils
Overview
Extend Utils provide a variety of tools to manipulate Extend, Overlay and Swap files. These are generally loop-back files stored on SD card for various purposes which include, but is not limited to:
- OS Extends - running another distribution on top of Angstrom in a chroot environment.
- Dev Extends - a method of providing dev tool support without installing directly to NAND.
- File system Overlays - redirect writes from NAND to a file on an SD card.
- Swap - use a swap file on SD card to provide additional memory for the Pandora when needed.
This page used to only document OS Extends... it will now document all facets of the Extend Utils.
Extend Utils have been written by Stuckie and while very much work-in-progress, the scripts are very useful in day to day tasks.
Bug Reports
In order for a bug report to be useful, I need the following information from you:
Output from "dmesg | tail", "mount" and your preMount script.
A description of the error.
Just PM me them on the GP32X boards, or post in the relevant threads - Links at the bottom of this page.
Available Files
The current ExtendUtils will always be on my website here: Extend Utils
For support, please direct questions to this forum thread: Extend Utils on GP32X
Older threads where all this came from are at the bottom of this page for the interested.
Empty Extends
The following files are pre-formatted ext2 files. These are included in Extend Utils, but are available here as well as they're just loop files and can therefore be used with other things:
Dev Extends
All Angstrom-based Dev Extends are currently deprecated as of 26th June 2011.
Please see the Lenny Debian OS Extend instead.
OS Extends
Debian
Lenny Dev Extend
The Lenny Dev Extend has a Debian bootstrap with dev tools ( enough for the Wakebreaker GL ES example plus gtk 1.2 dev )
There's about a hundred meg left in the extend for additional libraries, or you can transfer it to a bigger extend via cp -a oldExtend/* newExtend/
Alternatively, check the Debian On SD project for booting Debian directly from SD card.
Extend Utils Help
Extend Utils ( version 1.0a ) now facilitates the creation of "PreMount" scripts. For users of previous Extend Utils script sets, these separate scripts are essentially a PreMount script - the Ubuntu specific variant being a prime example.
This allows us to create customised mounting procedures - such as being able to mount multiple Extends and Overlays at once; for example, a compressed Base OS Extend with perhaps an Overlay on top to "catch" installed programs.
Unfortunately, as is always the case with more customization, the complexity has shot up. This guide will help you to create a PreMount script given four common scenarios: a Swap mount, a Home or Root Overlay, an OS Extend and a Dev Extend.
Creating a Swap PreMount
Perhaps the simplest PreMount script is a Swap Mount. For this, I shall assume you have not created a .swap file.
- Start up Extend Utils.
- Select New Extend/Overlay/Swap.
- Select New Swap File.
- Select 256MB - this uses one of the pre-created zipped Extend files, whereas Custom will create a new one on the card.
- Save the file anywhere you like.
- It will extract the appropriate zip to where you selected.
- Back at the Main Menu, select New Pre-Mount.
- Select New Swap Mount Script.
- Find your Swap File you just created.
- Select a location for your Pre-Mount script to be saved to.
- Finally, back at the Main Menu, you can select Mount Existing Pre-Mount.
- Find where your Pre-Mount script was saved to, and that's it.. you have swap mounted.
Obviously, now that the script is saved, you only need to repeat the last two steps, or just run the script direct from the Terminal.
Creating a Root or Home Overlay PreMount
Again, I shall assume that you do not have any pre-made .overlay files.
- Start up Extend Utils.
- Select New Overlay.
- Select New Overlay File.
- Select 1GB - or whatever you like.. again be aware that Custom may very well chew through your SD card as it DD's direct to it!
- Save the file anywhere you like.
- It will extract the appropriate zip to where you selected.
- Back at the Main Menu, select New Pre-Mount.
- Select New Overlay Mount Script.
- Select either Standard Home Overlay or Standard Root Overlay.
- Find your Overlay that you created.
- Select where you want to save the Pre-Mount script.
- Finally, back at the Main Menu, you can select Mount Existing Pre-Mount.
- Find where your Pre-Mount script was saved to, and that's it.. either the majority of / or your /home is bound to the overlay.
Creating an OS Extend PreMount
Generally, these will have been pre-made downloads, or you'll have created a chroot environment and wrapped it in an extend already. It's also important to note that there are essentially TWO types of OS Extends - compressed and uncompressed. Compressed OS Extends should be affixed with compressed; base-debian-sid-compressed.extend for example, which donates it's a base install of debian sid, in a compressed extend. Compressed extends can only be mounted as read-only, and will likely fail if you try to mount them read-write. This means they require an Overlay in order to be much use. As such, I will describe a "classic" uncompressed OS Extend procedure, and a "modern" compressed OS Extend procedure.
Compressed OS Extends
- Start Extend Utils.
- Select New Pre-Mount.
- Select New Extend Mount.
- Select OS Extend.
This is where you need to start paying attention as to what you're doing.
For our purposes, we want a basic configuration for say a Base Debian Sid Extend, and one Overlay.
The Base Debian Sid Extend we would have downloaded already, and the Overlay we should have created as well. - Move the slider to select 1 Read-Only Extend.
- Select our base-debian-sid-compressed.extend ( assuming you've downloaded it, and it's been released! )
- We don't want any Read-Write Extends, so Cancel or select 0.
- We do want an Overlay, so select 1 Read-Write Overlay.
- Choose the Overlay you want to use.
- Now you must name the mount point. This can be anything you like, but it must be unique and not the name of the Extend or Overlay you've chosen.
- You'll then be asked where you want to save the PreMount script.
Again, we need to pay attention as to what we want here.
For our purposes, we just want a Terminal, so that we can call apt-get and install whatever we feel like, and run it from the shell to interact with the program in Angstrom.
You can, of course, re-do this procedure later after having installed a window manager and desktop manager ( IE: something like Fluxbox and GDM ) so that you can jump fully into Debian if you so wish. - Select the Terminal option.
- You'll now be sent back to the Main Menu, where you can now select Mount Existing Pre-Mount.
- Select your Pre-Mount Script you've just created.
- After the gksudo checks, you should have a Terminal open inside your OS Extend, where all writes go to your Overlay.
Uncompressed/Classic OS Extends
These ones are much easier to deal with, and are generally what have been released up till now. These don't require an Overlay ( though you can still use one if you like. ) The procedure for setting up a mount script for one of these runs as follows:
- Start Extend Utils.
- Select New Pre-Mount.
- Select New Extend Mount.
- Select OS Extend.
As said, we don't need an Overlay, and Uncompressed/Classic Extends can be mounted Read-Write without any issues.
Therefore, we only need to select 1 Read-Write Extend, and 0 everything else. - We don't want any Read-Only Extends, so Cancel or select 0.
- We do want a Read-Write Extend...so move the slider to 1 and find your Extend file.
- Again, we don't want an Overlay, so select 0 or Cancel it.
- Now you must name the mount point. This can be anything you like, but it must be unique and not the name of the Extend.
- You'll then be asked where you want to save the PreMount script.
Now we need to know roughly what's in our Extend.. to be safe, we can just choose a Terminal as that's guaranteed to work. If, however, you know that GDM is installed and setup ( I'll ensure that any of my Extends that are, are documented in saying so ) then you can choose the GDM option. - We'll assume we've got GDM present, so select GDM.
- You'll now be sent back to the Main Menu, where you can now select Mount Existing Pre-Mount.
- Select your Pre-Mount Script you've just created.
- After the gksudo checks, GDM will start up alongside Angstrom and ask you to login. You should have a login/password already - either from you manually setting it up, or the default that whoever set the .Extend up performed.
Creating a Dev Extend Pre-Mount
Dev Extends are essentially Root Extends these days.. however that's not to say there won't eventually be packs so that there's a base Dev Extend with just the bare essentials, then addons for GTK, QT, wxWidgets, etc.. so having them classed as an Extend seems like the best option.
The current Dev Extends are created exactly like the Uncompressed/Classic OS Extends, but for completeness sakes:
- Start Extend Utils.
- Select New Pre-Mount.
- Select New Extend Mount.
- Select Dev Extend.
- Select 0 Read-Only Extends.
- Select 1 Read-Write Extend.
- Find your Dev Extend.
- Select 0 Read-Write Overlays.
- Come up with a mount point.
- Save your Pre-Mount somewhere.
- You may now load it up through the Mount Existing Pre-Mount script if you so wish.