Lxrun Information Contributed By Users

This page is a gathering point for information on lxrun contributed by users.


Jerome writes:
Steve,
 
I tried to build lxrun on Sol9 x86. It builds but does not run. 
 
# lxrun
Killed
 
I could get it to work by rebuilding it using a different solaris.mapfile:
# diff solaris.mapfile solaris.mapfile.orig
 
< text = LOAD ?RX v0xb0000000;
> text = LOAD ?RX v0xc0000000;

I just changed the text segment begin address. You might want to make a note   
of it on your website.

Thanks,

Jerome

Andreas (stolcke@speech.sri.com) contributed this experimental patch for emulating a more recent Linux kernel. This might help if you have a modern program that complains about unimplemented syscalls.

This is what Andreas has to say about his patch:

There are some loose ends.

1. I only tested this on Solaris.  so it is probably safest to enclose all
   of these changes (apart from a couple general bug fixes) in #ifdef SOLARIS.

2. I actually only tested the following new syscalls:

vfork
mmap2
fstat64
getuid32
getgid32
geteuid32
getegid32
getdents64
fcntl64

vfork is mapped to regular fork, since Solaris vfork doesn't seem to
work with lxrun.  However, this makes things like pipe() and system() work.

Note all the calls dealing with 32-bit uids and gids are just mapped to
the regular Solaris calls because Solaris uids and gids are already 32-bit
(and short's are promoted to int's in argument passing).

In lx_fcntl64 and lx_fstat64, I commented out the parts that are
#ifdef OLD_PROCFS in the original version, since I didn't quite follow what
is happening there.

I mapped the rt_sig* calls to the non-rt versions, since without that 
system() wouldn't work.

Lastly, you will notice that I added a hack to lx_brk() to reduce the 
overhead of lots of brk() calls from the memory allocator, which can 
be significant.  However, this is disabled by default.

Stephen writes:
Ive installed Lxrun on Solaris 9 x86 from the Companion CD. 

I used INSTALL-RH6 with the script from the source code. I had
to customize the script somewhat to get Redhat 6 and lxrun to
install and work happily on Solaris 9. Would you like a copy?
Basically it was adding missing libraries  and sorting out a
confused lxrun which was trying to find pathmap in a chrooted
environment.

To this I added large chunks of the Redhat 6.2 Gnome Environment.
Here is Stephen's modified INSTALL-RH6.
John writes:
This is a patch to lxrun-0.9.6pre1 + stolckepatch.txt which addresses
a few issues that occured using lxrun on Solaris 9 x86 with the Red Hat
6.2 runtime.

  1) The build failed due to traceargs missing print_stat64 and print_off64.

  2) bash had problems systeming other commands (i.e. ls) until Andreas's
     signal change was reverted.

  3) getrlimit didn't support RLIMIT_AS.

  4) flock was not implemented.

  5) SIOCGIFHWADDR was not implemented.  Note: The included implementation
     merely returns the hardware address of the primary network interface.

Enjoy!
Here is John's patch.
Steve Ginzburg (steven at ugcs dot caltech dot edu)