Emulator brings x86 Linux apps to ARM devices


I've made an install script which installs exagear on Pandora in somewhat crippled way. Prerequisites:

- ext2/3/4 formatted SD card or partition with about 1GB free space

- a folder on that card with exagear*.deb installation files and your licence

- internet connection (needed to activate exagear and to install extra packages)

The script should be executed in the same folder as  exagear*.deb files and the pk*.key file, and that same folder is used as installation base. The installation creates some files and symlinks in your NAND, so root permissions are required. The installation normally goes without error messages.

After the installation, you should be able to start exagear by typing "exagear" in a terminal. It complains at "service" command at start, but works nevertheless. If you want to install something, you should run it as root, i.e. "sudo exagear".

Some helpful commands after you get your exagear running as root:


apt-get update
apt-get install python-software-properties
add-apt-repository ppa:ubuntu-wine/ppa
apt-get update
apt-get install wine1.6

# Skype should be downloaded manually
dpkg -i skype*.deb; apt-get -f install

pandora-inst-exagear.sh.gz
 

Attachments

  • pandora-inst-exagear.sh.gz
    822 bytes · Views: 362
Last edited by a moderator:
Exactly, you need to run those apt-get commands if you want to install an x86 wine or skype on your exagear image.
 
Last edited by a moderator:
you done goofed

vpaths_list=`ls /opt/exagear/images/*/.exagear/vpaths-list` <-- This line probably needs the actual ubuntu-1204lts folder defined instead of an asterisk ;)
 
Last edited by a moderator:
you done goofed

vpaths_list=`ls /opt/exagear/images/*/.exagear/vpaths-list` <-- This line probably needs the actual ubuntu-1204lts folder defined instead of an asterisk ;)
Why, isn't the script working? The line above should substitute the asterisk by ubuntu-1204lts and assign the result to the variable vpaths_list, right? 
 
Script has a typo, it tries to remove /var/lib/dpkg/stateoverride

The fie is named statoverride, not stateoverride.

Seems to have worked fine otherwise, thanks!
 
Last edited by a moderator:
I just reuploaded the script again. Now it sets write permission on /tmp folder, which fixes a lot of stuff which otherwise would only run as root
 
Is there any limitations with the image, i.e. is it tricky to get X applications to run, given that X is running on the ARM side rather than x86? Also, is there a problem with letting X be installed given that most graphical applications depend on something which in turn depends on X11. 
 
Well, since the applications are just X clients to the X server, then they should run properly. The architecture shouldn't be an obstacle. For example I run Pandora applications and have them use the X server on my x86 desktop via SSH X11 forwarding (I get the window on the desktop's screen but they run on Pandora).

I think only an environment variable (ie. DISPLAY=:0.0) is needed for the application inside exagear to use the X server already running on Pandora. Should already be set when you open a terminal window.

Silly idea: I could run an x86 application on ARM Pandora and X forward it to the X server on my x86 desktop. :lol:
 
Last edited by a moderator:
Basically, I got skype and wine running. No sound in either program though. Also wine is missing OpenGL, so most games won't run.
 
Yeah, I'm aware @ missing openGL.

By the way, I noticed an oddity.

[501][root@fiq-openpandora /etc]# ls

ls: cannot access deluser.conf: No such file or directory

ls: cannot access fuse.conf: No such file or directory

ls: cannot access adduser.conf: No such file or directory

ls: cannot access blkid.conf: No such file or directory

ls: cannot access blkid.tab: No such file or directory

ls: cannot access ca-certificates.conf: No such file or directory

(list of files)

 

This seems to be caused by the file /.exagear/vpaths-list in the guest rootfs. This file seems to be read on startup to point files from host OS to the guest OS to read. Since these files were missing from the host OS, this happens.

 

I tried to remove these entries which seems to have worked, but was that a bad idea?
 
/usr/bin/exagear: line 91: 2461 Killed   $ubt --path-prefix $image_dir --vpaths-list $vpaths_list -- /bin/echo "Starting the shell in the guest image image_dir"
Failed to start the shell under ExaGear

Installation went without any error messages, but I can't run exagear. CC Pandora, files are on a separate ext2 partition on mind second SD card if that matters.


OS is updated, also tried reboot and reinstall already.


Any ideas?
 
you done goofed

vpaths_list=`ls /opt/exagear/images/*/.exagear/vpaths-list` <-- This line probably needs the actual ubuntu-1204lts folder defined instead of an asterisk ;)
Why, isn't the script working? The line above should substitute the asterisk by ubuntu-1204lts and assign the result to the variable vpaths_list, right? 
Nevermind.. I had a space in that actual path from something.

Still can't install Wine via sudo apt-get install wine. Something about cron jobs.. Perhaps that's what was fixed? 
 
Last edited by a moderator:
If you got this thing working with sound and open gl can you please try Heroes of Might and Magic 3? There is a native linux version. This would be awesome, since VCMI needs some time till its done.
 
1. Set WINE's DirectDraw to use GDI instead of OpenGL. This will allow more things to run.

2. Do not use the WINE that comes in Ubuntu's repo. The one in the WINE PPA is much better.
 
This seems to be caused by the file /.exagear/vpaths-list in the guest rootfs. This file seems to be read on startup to point files from host OS to the guest OS to read. Since these files were missing from the host OS, this happens.


 

I tried to remove these entries which seems to have worked, but was that a bad idea?
I don't think it's a bad idea, since the files don't exist anyway. Unless someone has an idea how to create reasonable substitutes for these files.

/usr/bin/exagear: line 91: 2461 Killed   $ubt --path-prefix $image_dir --vpaths-list $vpaths_list -- /bin/echo "Starting the shell in the guest image image_dir"
Failed to start the shell under ExaGear
OS is updated, also tried reboot and reinstall already.


Any ideas?
I got the same error recently. It is fixed by reactivating your copy of exagear:

sudo /opt/exagear/bin/actool

Still can't install Wine via sudo apt-get install wine. Something 

about cron jobs.. Perhaps that's what was fixed? 
Yes, this is related to statoverride typo in my script. Try to remove /opt/exagear/images/*/var/lib/dpkg/statoverride file

If you got this thing working with sound and open gl can you please try Heroes of Might and Magic 3? There is a native linux version. This would be awesome, since VCMI needs some time till its done.
Interested in that myself. Where can I find this linux version?

1. Set WINE's DirectDraw to use GDI instead of OpenGL. This will allow more things to run.

2. Do not use the WINE that comes in Ubuntu's repo. The one in the WINE PPA is much better.
Thanks, I'll try these. Do you recommend wine 1.6 or 1.7(unstable)?
 
Last edited by a moderator:
Back
Top