Extend Utils


Stuckie said:
Select "Mount Existing Pre-Mount"
Gotcha: As we've saved the script to a FAT32 filesystem, we can't actually run it directly from the Terminal. Normally, you can. You'll need to run it through Extend Utils or do /bin/bash /my/mount/script.preMount instead.
Choose the script you saved in the previous part.
Type your sudo password.
That should be it.
Please define "normally". Is that when the SD card is formatted to ext2/3/4? What about NTFS?

For checking purposes:
Launch a Terminal.
Type mount
Look for a line at the bottom reading something like "aufs on /home type aufs (rw, si=67199377)" The number may be different... I didn't look much into it.
Ok, the relevant line when I type that reads "aufs on /home type aufs (rw, si=67d14a37)". EDIT: The second time I tried it, the number was "61d6a177". I guess it constantly changes?

Type cd /tmp/NAMEOFOVERLAY.overlay for our example; cd /tmp/homeMount.overlay
We'll put a random file here to ensure it works touch MyTestFile
ls should show it up, as should ls ~
By "show it up", what do you mean? Here's my test of that:
Code:
esn-openpandora:/tmp/1gb.overlay$ touch uqm-0.7.0-content.uqm ls
esn-openpandora:/tmp/1gb.overlay$
Basically, nothing happens. Is that okay or did I do it wrong?

Oops, never mind, that was really silly of me. You meant use the "touch" command to create a new file called "mytestfile", and the "ls" command to verify that it exists. And I understood it differently. Yes, this step works as it should.

If you do, shout out! or I'll be removing them! Extends ARE Overlays, just that my menu system allows you to generate compressed Extends but not compressed Overlays. If you use Compressed Extends for whatever reason, let me know :) See, your head's probably exploded already with me mention Extend and Overlays so often ;) they're the same thing.
Well, I don't really mind as long as it's well-explained. THAT explanation though is a bit contradictory (extends=overlays, yet extends have different features, so therefore extends≠overlays? Uh? EDIT: Oh, nevermind... I guess you mean that it's just a different file extension so that the program recognizes which ones to compress and which ones not to). What would the potential use of a Compressed Extend be?
I do agree that "preMount" instead of "extendMount" is a bit confusing. When reading the wiki article, I was wishing for a section that just explained the unique terminology.

EDIT: I opened the Debian Extend after and tried to see what was in /home. No luck - still the same. Maybe I should just make a video of me doing it from start to finish? I'm following the instructions as far as I can tell, but I can't get the homeExtend to be the /home folder in the Debian Dev Extend. Will try it a few more times.

EDIT2: Okay, I tried it a few more times. Basically, everything works perfectly right up until the point when I type "ls" (or "dir") in the Debian Extend's home directory, and the contents it shows me are those of the /home directory of my NAND, not of the 1gb.overlay file.
 
Last edited by a moderator:
Esn said:
Stuckie said:
Select "Mount Existing Pre-Mount"
Gotcha: As we've saved the script to a FAT32 filesystem, we can't actually run it directly from the Terminal. Normally, you can. You'll need to run it through Extend Utils or do /bin/bash /my/mount/script.preMount instead.
Choose the script you saved in the previous part.
Type your sudo password.
That should be it.
Please define "normally". Is that when the SD card is formatted to ext2/3/4? What about NTFS?
Normal to a Linux system.. I keep forgetting that in general, people with Pandoras will be using SD cards formatted for non-Linux systems.. so in this case, a Linux filesystem, not FAT or NTFS.

Esn said:
For checking purposes:
Launch a Terminal.
Type mount
Look for a line at the bottom reading something like "aufs on /home type aufs (rw, si=67199377)" The number may be different... I didn't look much into it.
Ok, the relevant line when I type that reads "aufs on /home type aufs (rw, si=67d14a37)". EDIT: The second time I tried it, the number was "61d6a177". I guess it constantly changes?

Type cd /tmp/NAMEOFOVERLAY.overlay for our example; cd /tmp/homeMount.overlay
We'll put a random file here to ensure it works touch MyTestFile
ls should show it up, as should ls ~
By "show it up", what do you mean? Here's my test of that:
Code:
esn-openpandora:/tmp/1gb.overlay$ touch uqm-0.7.0-content.uqm ls
esn-openpandora:/tmp/1gb.overlay$
Basically, nothing happens. Is that okay or did I do it wrong?

Oops, never mind, that was really silly of me. You meant use the "touch" command to create a new file called "mytestfile", and the "ls" command to verify that it exists. And I complete understood it differently, for some reason.
Did it work though?

Esn said:
If you do, shout out! or I'll be removing them! Extends ARE Overlays, just that my menu system allows you to generate compressed Extends but not compressed Overlays. If you use Compressed Extends for whatever reason, let me know :) See, your head's probably exploded already with me mention Extend and Overlays so often ;) they're the same thing.
Well, I don't really mind as long as it's well-explained. THAT explanation though is a bit contradictory (extends=overlays, yet extends have different features, so therefore extends≠overlays? Uh? EDIT: Oh, nevermind... I guess you mean that it's just a different file extension so that the program recognizes which ones to compress and which ones not to). What would the potential use of a Compressed Extend be?
I do agree that "preMount" instead of "extendMount" is a bit confusing. When reading the wiki article, I was wishing for a section that just explained the unique terminology.
Yep, going to fix that.. they're the same thing with a different extension is exactly what I meant.
The purpose of compressed extends was to provide something like a read-only compressed "base" and read-write "add-on" modules. The example in the original thread was something like a basic bootstrap of Debian as a compressed "base" and then things like a development toolchain in an "add-on" module, or GTK support or KDE, etc...

Esn said:
I should mention that whenever I restart my Pandora now (ever since first running the Debian Dev Extend), I get a terminal window called "Debian Dev Extend" popping up at startup with the following text:
Code:
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others
    #2) Think before you type
    #3) With great power comes great responsibility.

Password:
EDIT: Sorry, nevermind, I was wrong - it happened a few times but this latest time it did not.
That's rather worrying.. how did you manage that? I don't save _anything_ to NAND to cause this...

Esn said:
EDIT2: Also, I opened the Debian Extend after and tried to see what was in /home. No luck - still the same. Maybe I should just make a video of me doing it from start to finish? I'm following the instructions as far as I can tell, but I can't get the homeExtend to be the /home folder in the Debian Dev Extend.

Ok.. this I think is where wires are getting crossed and confusion is reigning.
If you do ls ~ in your Angstrom terminal, do you see the file you created?
If you do ls ~ in your Debian terminal, do you see the file you created?

The Debian Extend mounts your personal home folder, not /home directly.
Your /home in Debian should have two folders - debian and esn ( I assume this is your user name! )
What I have been meaning by binding your home folder is in the Linux sense - your personal home folder, so /home/esn and not in the literal sense as in /home
Does that make better sense?
 
Last edited by a moderator:
Stuckie said:
timestamp='1309255730' post='952473' timestamp='1309255730' post='952473']

Esn said:
I should mention that whenever I restart my Pandora now (ever since first running the Debian Dev Extend), I get a terminal window called "Debian Dev Extend" popping up at startup with the following text:
Code:
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others
    #2) Think before you type
    #3) With great power comes great responsibility.

Password:
EDIT: Sorry, nevermind, I was wrong - it happened a few times but this latest time it did not.
That's rather worrying.. how did you manage that? I don't save _anything_ to NAND to cause this...
It might've been because I restarted while having the terminal window open and "save session for future logins" ticked. It doesn't seem like any extends were actually mounted, though.

Ok.. this I think is where wires are getting crossed and confusion is reigning.
If you do ls ~ in your Angstrom terminal, do you see the file you created?
Yes

If you do ls ~ in your Debian terminal, do you see the file you created?
No.

Here's what the /tmp folder looks like in Xfe:

kvIam.png


The /tmp/debextend/home/esn folder contains what is on my NAND, not what's in the 1GB home extend. There's a .pndXmodmap file in there, for example.

I'm working under the assumption that development work should be done within the Debian terminal, not within the Angstrom terminal. But how can I do this, if I can't access any of the files I want to work on from the Debian terminal?

Stuckie said:
You can use your Home Extend without issue.. bind the Home Extend first ( and if you're still using the older Extend Utils, use "mount" to make sure it actually _is_ bound as I had issues when I was testing with it and it didn't always take, ) then run the Debian Extend so that when it binds to your home folder, it binds to the right one ;) Else it can be sneaky and bind to NAND instead as I found out!
Yep, that's what's been happening. It has been binding to the NAND. Maybe FAT32 is causing the problem? Maybe I should I try putting everything onto an SD card formatted to ext2...
 
Last edited by a moderator:
I've been using a FAT32 card to test this all with, so that's not the problem.

To be honest, I have no idea what the problem is :(
Especially as it looks like your home folder is bound out as /home/esn in the screenshot there, and since it's an rbind mount, it should be exactly what you see in Angstrom.

And I forgot to grab the Pandora on my way out, so I can't test anything till I get back.
 
In case it helps figure out what's going on, here are a few more things.

Screenshot of the contents of /tmp/debextend/home/esn in Xfe:
aZEGO.png


pndrun_extendutils.out:
Code:
=======================================================================================
PND             : /media/mmcblk0p1/pandora/menu/ExtendUtils.pnd
PND_FSTYPE      : ISO
APPDATADIR      : /media/mmcblk0p1/pandora/appdata/extendutils
APPDD_FSTYPE    : vfat
PND_CPUSPEED    : <unset>
EXENAME         : extendutils.sh
ARGUMENTS       : <unset>
=======================================================================================
[ START ]--- Mount the PND ----------
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Inappropriate ioctl for device
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Success
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Success
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Success
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
WARNING Union already mounted, using it
+++++++
Loopback devices :
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
/dev/loop0: [b301]:741 (/media/mmcblk0p1/pandora/menu/System/xfe.pnd)
/dev/loop1: [b301]:1350 (/media/mmcblk0p1/pandora/menu/ExtendUtils.pnd)
/dev/loop2: [0015]:14 (/mnt/utmp/extendutils/1gb.overlay)
Are mounted on :
/dev/loop0 on /mnt/utmp/xfe type squashfs (ro)
/dev/loop1 on /mnt/utmp/extendutils type iso9660 (ro)
/dev/loop2 on /var/volatile/tmp/1gb.overlay type ext2 (rw,errors=continue)
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
For these Union :
none on /mnt/utmp/xfe type aufs (rw,si=61fd4f77,noplink)
none on /mnt/utmp/extendutils type aufs (rw,si=61e02577,noplink)
aufs on /home type aufs (rw,si=6dcfdf37)
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
[SUCCESS]--- Mount the PND ----------
pwd: error retrieving current directory: getcwd: cannot access parent directories: Success
[ START ]--- Starting the application (extendutils.sh ) ----------
chdir: error retrieving current directory: getcwd: cannot access parent directories: Success
mkdir: cannot create directory `/tmp/1gb.overlay': File exists
mount: according to mtab /mnt/utmp/extendutils/1gb.overlay is already mounted on /tmp/1gb.overlay as loop
mount: wrong fs type, bad option, bad superblock on aufs,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

[ FAILED]--- Starting the application (extendutils.sh ) ----------
[ START ]--- uMount the PND ----------
[ START ]--- Waiting the Union to be available ----------
[SUCCESS]--- Waiting the Union to be available ----------
umount: /mnt/utmp/extendutils: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount: /mnt/utmp/extendutils: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount: /mnt/utmp/extendutils: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
WARNING umount UNION failed, didnt clean up. Process still using this FS :
+++++++
Loopback devices :
/dev/loop0: [b301]:741 (/media/mmcblk0p1/pandora/menu/System/xfe.pnd)
/dev/loop1: [b301]:1350 (/media/mmcblk0p1/pandora/menu/ExtendUtils.pnd)
/dev/loop2: [0015]:14 (/mnt/utmp/extendutils/1gb.overlay)
Are mounted on :
/dev/loop0 on /mnt/utmp/xfe type squashfs (ro)
/dev/loop1 on /mnt/utmp/extendutils type iso9660 (ro)
/dev/loop2 on /var/volatile/tmp/1gb.overlay type ext2 (rw,errors=continue)
For these Union :
none on /mnt/utmp/xfe type aufs (rw,si=61fd4f77,noplink)
none on /mnt/utmp/extendutils type aufs (rw,si=61e02577,noplink)
aufs on /home type aufs (rw,si=6dcfdf37)
[SUCCESS]--- uMount the PND ----------
=======================================================================================
Return code is : 23
(I accidentally started it twice; the second time it recognized that the overlay was already mounted, and quit)

pndrun_DebianDevExtend.out:
Code:
=======================================================================================
PND             : /media/mmcblk0p1/pandora/menu/DebianDevExtend.pnd
PND_FSTYPE      : ISO
APPDATADIR      : /media/mmcblk0p1/pandora/appdata/DebianDevExtend
APPDD_FSTYPE    : vfat
PND_CPUSPEED    : <unset>
EXENAME         : debdev.sh
ARGUMENTS       : <unset>
=======================================================================================
[ START ]--- Mount the PND ----------
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Inappropriate ioctl for device
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Success
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Success
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Success
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
Mounting : mount "/dev/loop3" "/mnt/utmp/DebianDevExtend"
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
rmdir: failed to remove `/mnt/pnd/DebianDevExtend': Not a directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
Mounting the Union FS : mount -t aufs -o exec,noplink,dirs="/media/mmcblk0p1/pandora/appdata/DebianDevExtend=rw+nolwh":"/mnt/pnd/DebianDevExtend=rr" none "/mnt/utmp/DebianDevExtend"
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Success
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
[SUCCESS]--- Mount the PND ----------
pwd: error retrieving current directory: getcwd: cannot access parent directories: Success
[ START ]--- Starting the application (debdev.sh ) ----------
chdir: error retrieving current directory: getcwd: cannot access parent directories: Success
mkdir: cannot create directory `/tmp/debextend/home/esn': File exists
non-network local connections being added to access control list

Contents of 1gb.premount:
Code:
mkdir /tmp/1gb.overlay
gksudo "mount -o loop /mnt/utmp/extendutils/1gb.overlay /tmp/1gb.overlay"
gksudo "mount -t aufs -o dirs=/tmp/1gb.overlay=rw:/home=ro aufs /home"
 
Sure. Here it is from the Angstrom terminal:

Code:
esn-openpandora:/tmp/1gb.overlay$ mount
rootfs on / type rootfs (rw)
ubi0:rootfs on / type ubifs (rw,bulk_read)
proc on /proc type proc (rw)
tmpfs on /mnt/.splash type tmpfs (rw,size=40k)
sysfs on /sys type sysfs (rw)
none on /dev type tmpfs (rw,mode=755)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
tmpfs on /var/volatile type tmpfs (rw)
tmpfs on /dev/shm type tmpfs (rw,mode=777)
tmpfs on /media/ram type tmpfs (rw)
ubi1:boot on /boot type ubifs (rw)
/dev/mmcblk1p3 on /media/PANDORAROOT type ext3 (rw,dirsync,noatime,errors=continue,data=ordered)
/dev/mmcblk1p1 on /media/PANDORABOOT type vfat (rw,dirsync,noatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=iso8859-1)
/dev/mmcblk0p1 on /media/mmcblk0p1 type vfat (rw,dirsync,noatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=iso8859-1)
/dev/loop0 on /mnt/utmp/xfe type squashfs (ro)
none on /mnt/utmp/xfe type aufs (rw,si=61fd4f77,noplink)
/dev/loop1 on /mnt/utmp/extendutils type iso9660 (ro)
none on /mnt/utmp/extendutils type aufs (rw,si=61e02577,noplink)
/dev/loop2 on /var/volatile/tmp/1gb.overlay type ext2 (rw,errors=continue)
aufs on /home type aufs (rw,si=6dcfdf37)
/dev/loop3 on /mnt/utmp/DebianDevExtend type iso9660 (ro)
none on /mnt/utmp/DebianDevExtend type aufs (rw,si=6dd67077,noplink)
/dev/loop4 on /var/volatile/tmp/debextend type ext2 (rw,errors=continue)
proc on /var/volatile/tmp/debextend/proc type proc (rw)
aufs on /var/volatile/tmp/debextend/home/esn type aufs (rw,si=6dcfdf37)
/dev/loop5 on /mnt/utmp/midori type squashfs (ro)
none on /mnt/utmp/midori type aufs (rw,si=6c678437,noplink)
esn-openpandora:/tmp/1gb.overlay$

Here it is from the Debian terminal:

Code:
esn-openpandora:~$ mount
rootfs on / type rootfs (rw)
ubi0:rootfs on / type ubifs (rw,bulk_read)
proc on /proc type proc (rw)
tmpfs on /mnt/.splash type tmpfs (rw,size=40k)
sysfs on /sys type sysfs (rw)
none on /dev type tmpfs (rw,mode=755)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
tmpfs on /var/volatile type tmpfs (rw)
tmpfs on /dev/shm type tmpfs (rw,mode=777)
tmpfs on /media/ram type tmpfs (rw)
ubi1:boot on /boot type ubifs (rw)
/dev/mmcblk0p1 on /media/mmcblk0p1 type vfat (rw,dirsync,noatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=iso8859-1)
/dev/loop0 on /mnt/pnd/rootextend type iso9660 (ro)
none on /mnt/utmp/rootextend type aufs (rw,si=645b9f77,noplink)
/dev/loop1 on /var/volatile/tmp/osextend type ext2 (rw,errors=continue)
none on /var/volatile/tmp/osextend/dev type tmpfs (rw,mode=755)
devpts on /var/volatile/tmp/osextend/dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /var/volatile/tmp/osextend/dev/shm type tmpfs (rw,mode=777)
proc on /var/volatile/tmp/osextend/proc type proc (rw)
usbfs on /var/volatile/tmp/osextend/proc/bus/usb type usbfs (rw)
sysfs on /var/volatile/tmp/osextend/sys type sysfs (rw)
tmpfs on /var/volatile/tmp/osextend/tmp type tmpfs (rw)
/dev/loop1 on /var/volatile/tmp/osextend/tmp/osextend type ext2 (rw,errors=continue)
none on /var/volatile/tmp/osextend/tmp/osextend/dev type tmpfs (rw,mode=755)
devpts on /var/volatile/tmp/osextend/tmp/osextend/dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /var/volatile/tmp/osextend/tmp/osextend/dev/shm type tmpfs (rw,mode=777)
proc on /var/volatile/tmp/osextend/tmp/osextend/proc type proc (rw)
usbfs on /var/volatile/tmp/osextend/tmp/osextend/proc/bus/usb type usbfs (rw)
sysfs on /var/volatile/tmp/osextend/tmp/osextend/sys type sysfs (rw)
tmpfs on /var/volatile/tmp/osextend/var/run type tmpfs (rw)
none on /var/volatile/tmp/osextend/var/lock type tmpfs (rw)
ubi0:rootfs on /var/volatile/tmp/osextend/lib/modules type ubifs (rw,bulk_read)
ubi0:rootfs on /var/volatile/tmp/osextend/Angstrom type ubifs (rw,bulk_read)
proc on /var/volatile/tmp/osextend/Angstrom/proc type proc (rw)
usbfs on /var/volatile/tmp/osextend/Angstrom/proc/bus/usb type usbfs (rw)
tmpfs on /var/volatile/tmp/osextend/Angstrom/mnt/.splash type tmpfs (rw,size=40k)
sysfs on /var/volatile/tmp/osextend/Angstrom/sys type sysfs (rw)
none on /var/volatile/tmp/osextend/Angstrom/dev type tmpfs (rw,mode=755)
devpts on /var/volatile/tmp/osextend/Angstrom/dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /var/volatile/tmp/osextend/Angstrom/dev/shm type tmpfs (rw,mode=777)
tmpfs on /var/volatile/tmp/osextend/Angstrom/var/volatile type tmpfs (rw)
/dev/loop1 on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend type ext2 (rw,errors=continue)
none on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/dev type tmpfs (rw,mode=755)
devpts on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/dev/shm type tmpfs (rw,mode=777)
proc on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/proc type proc (rw)
usbfs on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/proc/bus/usb type usbfs (rw)
sysfs on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/sys type sysfs (rw)
tmpfs on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/tmp type tmpfs (rw)
/dev/loop1 on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/tmp/osextend type ext2 (rw,errors=continue)
none on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/tmp/osextend/dev type tmpfs (rw,mode=755)
devpts on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/tmp/osextend/dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/tmp/osextend/dev/shm type tmpfs (rw,mode=777)
proc on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/tmp/osextend/proc type proc (rw)
usbfs on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/tmp/osextend/proc/bus/usb type usbfs (rw)
sysfs on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/tmp/osextend/sys type sysfs (rw)
tmpfs on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/var/run type tmpfs (rw)
none on /var/volatile/tmp/osextend/Angstrom/var/volatile/tmp/osextend/var/lock type tmpfs (rw)
esn-openpandora:~$
 
Yea ignore Debian's mount.. it's bollocks ;) it's my fault, and I might fix it, but probably not as it doesn't affect anything.

From your main Angstrom mount spew though, it does seem to have linked up successfully:
Code:
/dev/loop2 on /var/volatile/tmp/1gb.overlay type ext2 (rw,errors=continue)
aufs on /home type aufs (rw,si=6dcfdf37)
/dev/loop3 on /mnt/utmp/DebianDevExtend type iso9660 (ro)
none on /mnt/utmp/DebianDevExtend type aufs (rw,si=6dd67077,noplink)
/dev/loop4 on /var/volatile/tmp/debextend type ext2 (rw,errors=continue)
proc on /var/volatile/tmp/debextend/proc type proc (rw)
aufs on /var/volatile/tmp/debextend/home/esn type aufs (rw,si=6dcfdf37)

loop2 is mounting the overlay.
this is then aufs mounted to home.

loop3 is the Debian Extend PND.

loop4 is the Debian Extend itself
proc is bound
and /home/esn is bound from Angstrom into /home/esn on Debian.

The system says it's there and it's mounted.
I'm a bit at a loss as to what's gone wrong, now....
 
Stuckie said:
and /home/esn is bound from Angstrom into /home/esn on Debian.
The Xfe screenshot shows that Debian's /home/esn is equivalent to the one that is normally on the NAND. Is it SUPPOSED to bind the home/esn folder that's normally on my NAND into the /home/esn folder on Debian? (If that's so, how exactly do I access the files in the 1gb extend? Where is it located, within the Debian extend?)
 
Last edited by a moderator:
It does, but it does it via an aufs bind so you get your NAND /home as well as the overlay file.
All writes into /home will then go into the overlay rather than your NAND, but you can access them both from the same point.. which is one of the funky benefits of using overlays in general.

Therefore you should see everything that you'd normally get on your NAND, but you should _ALSO_ see what you've put in the overlay.
But you've said that you can't find the file you created on the overlay :\ so I don't know what it's up to as all the logs you've put up say that everything is working as it should be.
 
Stuckie said:
Therefore you should see everything that you'd normally get on your NAND, but you should _ALSO_ see what you've put in the overlay.
Ah, thanks. Now I finally understand what it should look like.

But you've said that you can't find the file you created on the overlay :\ so I don't know what it's up to as all the logs you've put up say that everything is working as it should be.
just to make quadruple-sure, I rebooted again and followed all the steps once more.

From typing mount in the Angstrom terminal, I get this:
Code:
esn-openpandora:~$ mount
rootfs on / type rootfs (rw)
ubi0:rootfs on / type ubifs (rw,bulk_read)
proc on /proc type proc (rw)
tmpfs on /mnt/.splash type tmpfs (rw,size=40k)
sysfs on /sys type sysfs (rw)
none on /dev type tmpfs (rw,mode=755)
/dev/mmcblk1p1 on /media/PANDORABOOT type vfat (rw,dirsync,noatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=iso8859-1)
/dev/mmcblk1p3 on /media/PANDORAROOT type ext3 (rw,dirsync,noatime,errors=continue,data=ordered)
/dev/mmcblk0p1 on /media/mmcblk0p1 type vfat (rw,dirsync,noatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=iso8859-1)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
tmpfs on /var/volatile type tmpfs (rw)
tmpfs on /dev/shm type tmpfs (rw,mode=777)
tmpfs on /media/ram type tmpfs (rw)
ubi1:boot on /boot type ubifs (rw)
/dev/loop0 on /mnt/utmp/extendutils type iso9660 (ro)
none on /mnt/utmp/extendutils type aufs (rw,si=60731f37,noplink)
/dev/loop1 on /var/volatile/tmp/1gb.overlay type ext2 (rw,errors=continue)
aufs on /home type aufs (rw,si=607f6137)
/dev/loop2 on /mnt/utmp/DebianDevExtend type iso9660 (ro)
none on /mnt/utmp/DebianDevExtend type aufs (rw,si=606fa377,noplink)
/dev/loop3 on /var/volatile/tmp/debextend type ext2 (rw,errors=continue)
proc on /var/volatile/tmp/debextend/proc type proc (rw)
aufs on /var/volatile/tmp/debextend/home/esn type aufs (rw,si=607f6137)
/dev/loop4 on /mnt/utmp/xfe type squashfs (ro)
none on /mnt/utmp/xfe type aufs (rw,si=604d9277,noplink)
esn-openpandora:~$
Here are two screenshots from Xfe, one of the /tmp/1gb.overlay folder, one of the /tmp/debextend/home/esn folder. Note the absence of any "uqm" files from the latter, along with any other files that are present in the first location...
http://i.imgur.com/9Vv0s.png
http://i.imgur.com/5Ib18.png

Seems like the "mount" command tells one story, and reality tells another.

You say that this does work for you, though? If there's no other difference, maybe it's down to something in my SD card after all, I'll try out another one... or maybe it somehow left something on the NAND from the very first time I ran the Debian Extend...
 
Last edited by a moderator:
Do the files exist in the Angstrom /home?

/home/esn should be the _exact same_ on both Angstrom and Debian... so use them for comparison shots rather than directly inside the overlay as it won't match up.
And again, the log states that it has bound up correctly. :(

Seeing as you seem to be booting from an SD card, try creating a folder, or a file, or something from within the Debian Extend and ensuring it comes out in both Angstrom's /home/esn and the /tmp/1gb.overlay folder.

--edit--
Bit of an arse this, isn't it? heh
I'm hoping that at the end of it all, it's something amazingly silly that's been missed out!
 
Stuckie said:
Do the files exist in the Angstrom /home?
Yes, they do. Angstrom /home and /tmp/1gb.overlay are mostly identical, except for a few extra hidden files in the 1gb.overlay folder

Stuckie said:
/home/esn should be the _exact same_ on both Angstrom and Debian... so use them for comparison shots rather than directly inside the overlay as it won't match up.
And again, the log states that it has bound up correctly. :(
Yes, they seem to be identical.
Angstrom /home and /tmp/1gb.overlay are almost identical.
Angstrom /home/esn and Debian /home/esn seem to be identical.

But how can I access the files in the 1gb overlay from the Debian terminal?

Stuckie said:
Therefore you should see everything that you'd normally get on your NAND, but you should _ALSO_ see what you've put in the overlay.
And this is what is not happening. Debian's /home/esn folder mirrors Angstrom's /home/esn folder, but it contains no content from /tmp/1gb.overlay (which is mirrored in Angstrom's /home folder).

Out of curiosity, what would happen if the NAND's /home/esn folder and the 1gb overlay contained a file or directory with an identical name? Since they're both supposed to show up in the same directory in Debian, might there be some kind of conflict?

Seeing as you seem to be booting from an SD card, try creating a folder, or a file, or something from within the Debian Extend and ensuring it comes out in both Angstrom's /home/esn and the /tmp/1gb.overlay folder.
I'm not booting from SD card. I do have an SD card that has a Debian OS in it, but it's in the right slot; I would be booting from it only if it were in the left slot.

Anyway, I created a folder called "test" in Debian's /home/esn folder. It also showed up in Angstrom's /home/esn folder, but not in /tmp/1gb.overlay.

--edit--
Bit of an arse this, isn't it? heh
I'm hoping that at the end of it all, it's something amazingly silly that's been missed out!
Yep, me too. I'm not giving up yet, though...
 
Last edited by a moderator:
Oh... you're going to laugh at this :) least I hope you will!

Right.
Angstrom.
/tmp/1gb.overlay is bound to /home.
If you place stuff in /tmp/1gb.overlay, it'll appear in /home.
So, /tmp/1gb.overlay/MyTestFile will show up in /home/MyTestFile.

Debian.
/home/esn is mount to Angstrom's /home/esn
/home isn't overloaded at all... it remains in Debian's space.
Therefore, /tmp/1gb.overlay/MyTestFile doesn't get through.
However, if it was /tmp/1gb.overlay/esn/MyTestFile it would!

So, put your files into your home folder - as in your user's home, /home/esn.
Not literally your home folder as in /home.

Linux terminology being slightly confusing ;)
 
Ok, I added a step-by-step guide to the Extend Utils wiki:
http://pandorawiki.org/Extend_Utils#Step-by-step_guide
It might be in the wrong section, I'm not quite sure.

Most of it is taken from your guide on page 2, but I edited the language a little and made a few things clearer (I hope).

I also added the following section to the end:

How it all links together
You can open a file manager (for example Thunar, or Xfe) and verify that everything is as it should be. Here's how it should look:

1. The contents of "/home" and "/tmp/1gb.overlay" should be almost identical

2. The contents of the following three directories should be identical:
/home/username
/tmp/debextend/home/username
/tmp/1gb.overlay/username
 
Well, I walked through Esn's guide and was able to get this going with no large hickups.

One outstanding issue/question - Shouldn't the Extend Utilities pnd/script provide a facility to umount your overlay, swaps.. etc?
 
That depends very greatly on what you're binding and where.

If you bind a home overlay, you can't unmount it.
If you bind an overlay over the entirety of root, you can't unmount it.
Generally anywhere that's out the way, you can unmount - swap included though why you'd want to unmount swap, especially if it's being used, I don't know!

Reason being that the filesystem is constantly changing. When you run a command, the bash_history gets updated, and therefore the filesystem is active, and AUFS won't let you unmount it. That's why there's no unmount stuff.

Instead, when I get the GUI up and running, I'll be sticking a red warning in the system tray that you've got an overlay active and therefore should be careful not to remove the SD card it's running on.
So for any large scale overlay stuff, you'll need to reboot to clear it, I'm afraid.
 
I edited the Wiki tutorial to add a reminder that the new sudo password for Debian is "pandora". An important thing to mention!

I've installed a few packages, and each time though they installed okay, I've gotten some message or two like this:
Code:
Can not write log, openpty() failed (/dev/pts not mounted?)
Is that fine?

Also how come in Debian the command is "sudo apt-get install xxx", while in Angstrom it's "sudo opkg install xxx"? Or can the latter be used in Debian as well?

Edit: well, that was quick. Some programs are asking me for pygtk-2.0, so I think I need the python-gtk2-dev package which needs over 154mb. It looks like I already will need to move over the contents to a bigger 1gb file. :)
 
Back
Top