Difference between revisions of "Extend Utils"

From Pandora Wiki
Jump to: navigation, search
(Added some F.A.Q .. like the default user/pass for logging in!)
(Moved Links to respective places, added Android OS details)
Line 47: Line 47:
  
 
Not much work has been taking in furthering the install as of this time.
 
Not much work has been taking in furthering the install as of this time.
 +
 +
= Android OS Extend =
 +
This might be tricky due to dalvik.. doesn't seem to be any fast way of "borrowing" an existing rootfs, will have to just try compiling manually for the Pandora.
 +
 +
== Links ==
 +
* http://elinux.org/Android_on_OMAP
 +
* http://omappedia.org/wiki/Android_Getting_Started
  
 
= Debian OS Extend =
 
= Debian OS Extend =
Line 61: Line 68:
  
 
= Ubuntu OS Extend =
 
= Ubuntu OS Extend =
Ubuntu is currently where all development is focussed.
+
Ubuntu development is on hold.
  
 
A first release is available here:
 
A first release is available here:
Line 84: Line 91:
  
 
It is possible to get Ubuntu's services to start by calling ''''' sudo /etc/init.d/dbus start ''''' however, this knocks out Angstrom's services, and in particular, HAL - the Hardware Abstraction Layer - which currently detects the presence of a chroot and refuses to work inside our environment. This is bad as if we log out of Ubuntu, we've lost access to all input devices, unless we have switched back to Angstrom and restarted dbus in it's environment.
 
It is possible to get Ubuntu's services to start by calling ''''' sudo /etc/init.d/dbus start ''''' however, this knocks out Angstrom's services, and in particular, HAL - the Hardware Abstraction Layer - which currently detects the presence of a chroot and refuses to work inside our environment. This is bad as if we log out of Ubuntu, we've lost access to all input devices, unless we have switched back to Angstrom and restarted dbus in it's environment.
 +
 +
Update: Hal can be kept active by following this routine...
 +
* Start Ubuntu as normal, but don't click the final Ok for GDM to start.
 +
* Open a Terminal
 +
* ''''' sudo chroot /tmp/osextend '''''
 +
* Open another Terminal/Tab ... this'll be Angstrom, whereas your original is Ubuntu.
 +
* ''''' sudo /etc/init.d/dbus-1 stop ''''' (Angstrom)
 +
* ''''' sudo /etc/init.d/dbus start ''''' (Ubuntu)
 +
* ''''' sudo hald --daemon=no --verbose=yes ''''' (Angstrom)
 +
* Wait till HAL has finished, then click OK.
 +
 +
This gets us slightly further, but still seems to stop Ubuntu's admin services somewhere, as you still cannot use the GUI-based Administration tools. You do however, seem to have access to WiFi and Bluetooth as their icons now appear in the system tray.
 +
D-Pad control now seems knocked out as well.
  
 
Touchscreen support currently does not work. The TSLib has been installed, and the xorg-input-tslib is also available, however it doesn't seem to be picked up.
 
Touchscreen support currently does not work. The TSLib has been installed, and the xorg-input-tslib is also available, however it doesn't seem to be picked up.
Line 101: Line 121:
  
 
I also need to have a further look into getting Karmic or Lucid running properly.
 
I also need to have a further look into getting Karmic or Lucid running properly.
 +
 +
== Links ==
 +
* [https://wiki.ubuntu.com/ARM/RootfsFromScratch Ubuntu ARM From Scratch/RootStock]
 +
* [http://dedors.wordpress.com/2008/12/10/run-kde4-in-chroot-gentoodebianubuntu-howto/ Running KDE4 in chroot] - pay particular attention to the dbus/hal manipulation.
 +
* [http://www.gentoo-wiki.info/HOWTO_startx_in_a_chroot Start X in chroot]
 +
* [https://answers.launchpad.net/ubuntu/+source/gnome-system-tools/+question/32334 Console-Kit issues] - what we get on Ubuntu
  
 
= Extend Utils GUI =
 
= Extend Utils GUI =
Line 109: Line 135:
 
= Links =
 
= Links =
 
* [http://www.gp32x.com/board/index.php?/topic/54651-debian-in-an-extend/ Original Thread]
 
* [http://www.gp32x.com/board/index.php?/topic/54651-debian-in-an-extend/ Original Thread]
* [https://wiki.ubuntu.com/ARM/RootfsFromScratch Ubuntu ARM From Scratch/RootStock]
 
* [http://dedors.wordpress.com/2008/12/10/run-kde4-in-chroot-gentoodebianubuntu-howto/ Running KDE4 in chroot] - pay particular attention to the dbus/hal manipulation.
 
* [http://www.gentoo-wiki.info/HOWTO_startx_in_a_chroot Start X in chroot]
 
* [https://answers.launchpad.net/ubuntu/+source/gnome-system-tools/+question/32334 Console-Kit issues] - what we get on Ubuntu
 

Revision as of 22:44, 29 June 2010

Overview

OS Extend is a method of running another distribution on top of Angstrom. This is currently very much a hacky WORK IN PROGRESS method of doing so, and this page describes what it does, how to get started, and any major pitfalls in using it.

Currently, I've been successful in getting Debian, Ubuntu and Arch running to varying degrees. This page will be split up into these distributions so you should be able to jump to the correct section for any oddities that I've uncovered, and any workarounds presented.

Essentially, what I'm doing is using a loop back file, formatted as Ext2, and performing a first stage install within it for Arm. This is called by either debootstrap, rootstock, or whichever system the target distribution uses. These "Extend" files are then copied over to SD card/Memory Stick/etc... and chrooted into.

However, this brings some very important caveats:

  • System Services don't always tend to work, and starting them can clobber Angstrom's services ( see the HAL/DBus issues in Ubuntu below. )
  • Limited resources when running TWO XServers and TWO Desktop Managers does start to show, but the fact that it's still running fairly well is a testament to how powerful the Pandora actually is.
  • Logging out of XFCE will speed up the chrooted environment, but tends to shut down NetworkManager with it, disabling WiFi for the environment unless it knows how to handle it.

Hopefully, these can be dealt with in due time.

That said, there are benefits of using a system such as this:

  • It's (almost) the exact same distribution as you'd be installing on SD Card, so why not test it out first before sacrificing an SD card fully?
  • Perhaps you only have the one SD card? It may be a gigantic SD card but partitioning scares you, so this allows you to try a chosen distribution first without messing about!
  • Some distributions have a HUGE library of packages ready and waiting to be played with.. why not see which ones you'd like ported over to Angstrom natively?
  • We can be sneaky and take advantage of all Pandora specific updates to Angstrom, and have our Extended OS install reap the benefits rather than having to wait for someone to port it over ( kernel drivers, for example. )
  • Why not show off just how powerful the Pandora actually is - you are running TWO X Servers and TWO Desktop Managers at once!
  • Development between multiple distributions can be done much more easily, as you could bind your development distribution, and check driver support in Angstrom.
  • And my absolute favourite - it's a fun hack!

So, there is good reason to try and pursue a system such as this, if perhaps not generally geared to "End User Consumption."

Extend Utils

The system that is used to work all this is a set of scripts named Extend Utils. These have been written by Stuckie and generally allow the following:

  • Creating a new Extend.
  • Binding a Root Overlay to an Extend.
  • Binding a Home Overlay to an Extend.
  • Binding an OS Extend.
  • Activating Swap on an Extend.

While very much work-in-progress, the scripts are very useful in day to day tasks.

The Extend Utils suite is updated regularly, and is available here: Extend Utils

Overlays

A quick mention about overlays.

Overlays allow the base system to be kept unmodified, and all changes to be propagated to the Extend file. This is immensely useful for development work where you can install a development environment "normally" and compile what is needed, then unbind the overlay and run it on a "vanilla" install, to see if any libraries are missing.

Stuckie's general development environment uses two Overlays - a Root Overlay and a Home Overlay - so that all compiled code sits in the Home Overlay, and the development environment is in the Root Overlay. This allows any programs that have not been configured fully to keep clear of the NAND when running, should they create config files in the user's Home directory, as well as separating the compiled programs from the development environment for easier testing on the "vanilla" state.

Arch OS Extend

A proof of concept is available here: 1Gb Arch Extend

Not much work has been taking in furthering the install as of this time.

Android OS Extend

This might be tricky due to dalvik.. doesn't seem to be any fast way of "borrowing" an existing rootfs, will have to just try compiling manually for the Pandora.

Links

Debian OS Extend

Debian was the first distribution to work in this environment.

Various proof of concepts currently exist:

Work on Debian has currently paused.

Ubuntu OS Extend

Ubuntu development is on hold.

A first release is available here:

Ubuntu OS Extend currently uses a slightly tailored version of Extend Utils, available here: Ubuntu Extend

Ubuntu can be started via the Start Ubuntu option in the System Menu. Then just follow the on-screen prompts.

F.A.Q

Q: How do I login?
A: The default user is "ubuntu" with password "pandora"

Q: Can I create a new user?
A: Yes, but you'll have to do it manually from the Terminal, or start the DBus service ( see below. )

Q: Can I upgrade to Karmic or Lucid?
A: I'd highly advise against this due to the usual System V init system being replace by Upstart, which isn't too happy about being wrapped in a chroot.

Issues

Ubuntu seems to be very dependent upon it's system services being operational. This unfortunately causes us problems as we're jumping in via a chroot, rather than booting the system normally, so Ubuntu's services haven't started; though Angstrom's have.

It is possible to get Ubuntu's services to start by calling sudo /etc/init.d/dbus start however, this knocks out Angstrom's services, and in particular, HAL - the Hardware Abstraction Layer - which currently detects the presence of a chroot and refuses to work inside our environment. This is bad as if we log out of Ubuntu, we've lost access to all input devices, unless we have switched back to Angstrom and restarted dbus in it's environment.

Update: Hal can be kept active by following this routine...

  • Start Ubuntu as normal, but don't click the final Ok for GDM to start.
  • Open a Terminal
  • sudo chroot /tmp/osextend
  • Open another Terminal/Tab ... this'll be Angstrom, whereas your original is Ubuntu.
  • sudo /etc/init.d/dbus-1 stop (Angstrom)
  • sudo /etc/init.d/dbus start (Ubuntu)
  • sudo hald --daemon=no --verbose=yes (Angstrom)
  • Wait till HAL has finished, then click OK.

This gets us slightly further, but still seems to stop Ubuntu's admin services somewhere, as you still cannot use the GUI-based Administration tools. You do however, seem to have access to WiFi and Bluetooth as their icons now appear in the system tray. D-Pad control now seems knocked out as well.

Touchscreen support currently does not work. The TSLib has been installed, and the xorg-input-tslib is also available, however it doesn't seem to be picked up.

Due to Ubuntu's services not being active, most GUI-driven Administration utilities do not appear to work. Either perform the manual command line work, or start services as above.

If Angstrom's X is quit ( IE: you log out of XFCE, ) although a speed up is gained, you've lost access to WiFi. I haven't yet checked if starting services inside Ubuntu would allow the setting up of the WiFi from inside the OS Extend.

The CTRL+ALT+F# keys for changing virtual terminals work on a USB keyboard in Ubuntu, but not on the Pandora's keyboard; neither work in Angstrom.. as such, you have to perform sudo chvt # replacing # with 2 for Ubuntu, and 7 for Angstrom.

Ubuntu 9.04 - Jaunty Jackalope, is currently the last version of Ubuntu to work "properly" in a chroot due to later versions changing the init deamon from the standard System V to Upstart.

Further Work

Ubuntu is the current focus for the time being.

In particular, if it's possible to be able to automatically launch services inside Ubuntu once the desktop has started, and to stop them on log out, this would be a possible work around for the DBus issues for the time being.

I also need to have a further look into getting Karmic or Lucid running properly.

Links

Extend Utils GUI

On the forums, SomeGuy99 has suggested the creation of a GUI-based app to wrap around the Extend Utils suite. This would greatly simplify what is going on by being able to provide on-screen help, as well as tying the many scripts into one app and not cluttering up the System menu any further.

This also needs to be a cross-platform application, if only for the creation of Extend files. As such, it needs a cross-platform widget toolkit; preferably a light-weight one to run on Pandora as well. Currently, this looks to be FLTK

Links