Installing apps in a 32-bit chroot in AMD64 Debian system

Posted by Utumno on Tue 21 Feb 2006 at 09:54

So you switched to the AMD64 architecture, installed the 'pure64'; flavour of Debian on it? Well, get prepared for some problems: no flashplugin for Firefox, no win32 codecs for MPlayer, no OpenOffice.

I couldn't care less for the flashplugin, OpenOffice I've got on my laptop and I hardly use it, but a complete, custom-compiled MPlayer is a must. Here's a way to install it along with the win32 and RealPlayer codecs, LIVE.com streaming support, and more.

One way - they say - is to install the ia32-libs, but I wanted to be all clean about it and use the arguably harder 'chroot' method. This way, one can achieve a modular, easily upgradeble system. Both 64- and 32- bit apps are separated from each other, and all users can - compeletely transparently - call the 32-bit apps from within their 64-bit text consoles and DEs.

1. Install the chroot

Minimal Debian system, although I ended up with about 400 MB of stuff in it.

1.1) Create a new empty directory:

$ mkdir /var/sid-386-chroot
1.2) Make sure you've got the 'debootstrap' package installed and install Debian Sid, i386 version, base system to the newly created directory:
$ debootstrap --arch i386 sid /var/sid-386-chroot http://ftp.debian.org/debian/
That will pull quite a few packages. Once it is done, you should see a normal Debian root directory tree inside.

1.3) Add the library path of your chroot to your /etc/ld.so.conf: ( I mean your original /etc/ld.so.conf, not the one from the chroot )

/usr/X11R6/lib
# chroot i386 system libs
/var/sid-386-chroot/lib
/var/sid-386-chroot/usr/lib
/var/sid-386-chroot/usr/X11R6/lib
/var/sid-386-chroot/usr/local/lib

1.4) You also need a link to your 32bit linker in the /lib path:

$ cd /lib
$ ln -s /var/sid-386-chroot/lib/ld-linux.so.2 ld-linux.so.2
1.5) Now run ldconfig to update your linker's cache:
$ ldconfig
1.6) To run an application inside the chroot you will need some parts of your 64bit system tree inside the chroot. This can be achieved with a bind mount. In this example we will bind /tmp to the chroot for the X11 sockets which are in /tmp, and bind /home to access the home directories from within the chroot. You may also want to mount the /proc and /sys filesystems within the chroot. Edit your fstab and add the required paths:
# ia32 chroot
/home           /var/sid-386-chroot/home none   bind            0       0
/tmp            /var/sid-386-chroot/tmp  none   bind            0       0
/proc           /var/sid-386-chroot/proc proc   defaults        0       0
/dev            /var/sid-386-chroot/dev  none   bind            0       0
1.7) Then mount them:
$ mount /var/sid-386-chroot/home
$ mount /var/sid-386-chroot/tmp
$ mount /var/sid-386-chroot/proc
$ mount /var/sid-386-chroot/dev
WARNING: The above means that should you ever decide to remove the chroot:
$ rm -rf /var/sid-386-chroot/
then ALL the bind-mounted partitions, including your $HOME, are also going to be deleted!
So make sure to unmount them first.
1.8) You will also need to set up the relevant users in the chroot. Copy your /etc/passwd, /etc/shadow , /etc/hosts and /etc/group files to the chroot.
1.9) At this point you should be able to run applications within the chroot. Change to your chroot (you must be root to do this):
$ chroot /var/sid-386-chroot
1.10) Try to run something:
$ cat /etc/apt/sources.list
The above command should give you the contents of 32-bit sources.list (doh!). Now it's good time to edit it if you are planning on installing some more stuff there (Skype?)

1.11) To get out of the chroot back to your 64-bit main system, simply type
$ exit

2. Compile and install 32-bit MPlayer into the chroot

2.1) 'chroot' to your chroot:
chroot /var/sid-386-chroot
From this point on, we're going to do all the downloading and compiling inside the chroot.
2.2) Install quite a few packages we're gonna need:
$ apt-get install libogg0 libogg-dev libvorbis0a libvorbis-dev vorbis-tools libpng12-0 libpng12-dev liblogfile-rotate-perl libconfhelper-perl debhelper fakeroot gcc g++ libgtk1.2 libgtk1.2-dev svgalibg1 svgalibg1-dev libsdl1.2-dev libaa1 libaa1-dev libxv1 libxv-dev
2.3) Also, while at it, install some other packages that I always find useful:
$ apt-get install cvs vim bzip2
2.4) Perl is going to spit errors about locale being unset. Shut it up by adding export LC_ALL=C line to /root/.bashrc and source the file:
$ . ~/.bashrc
2.5) Download MPlayer's sources:
$ cd /home/leszek/
$ mkdir mplayer; cd mplayer
$ cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer login
Password: [hit enter]
$ cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P main
2.6) download FFMPEG's sources:
$ cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login
Password: [hit enter]
$ cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co ffmpeg
A directory named 'ffmpeg' with subdirectories named 'libavcodec' and 'libavutil' inside will be created. Copy (symbolic linking does NOT suffice) these 2 subdirectories into the MPlayer source tree.
2.7) Create a directory where we're gonna keep our binary codecs:
$ mkdir /usr/local/lib/codecs
2.8) Get Win32 codecs 'essential-YYYYMMDD.tar.bz2' - grab the latest version "essential codecs package" from Mplayer HQ Download
2.9) Unpack and move the codecs to the right directory:
$ mv essential-YYYYMMDD.tar.bz2 /usr/local/lib
$ cd /usr/local/lib
$ tar xjvf essential-YYYYMMDD.tar.bz2
$ mv essential-YYYYMMDD/* codecs
$ rm -rf essential-YYYYMMDD*
2.10) Same story with the LIVE streaming codecs: get them from here
2.11) Unpack and install:
$ cd /usr/local/lib
$ tar -xvzf live.2005.06.16.tar.gz
$ cd live/
$ ./genMakefiles linux
$ make
2.12) QuickTime codecs: download QuickTime DLL pack from http://www.mplayerhq.hu/MPlayer/releases/codecs/
Unpack and copy them to /usr/local/lib/codecs.
2.13) Download Real codecs from http://www.mplayerhq.hu/MPlayer/releases/codecs/ and extract them to the /usr/local/lib/codecs directory.
2.14) Get MPlayer's UserConf from here, become your user, copy it to your home directory and unpack:
$ tar -xvvf mplayer-user-conf.tar

This will create the ~/.mplayer directory including a skin (neutron), arial size 18 font, and config files.

In line 27 of the ~/.mplayer/gui.conf file, change: font_name = "/home/lyz/.mplayer/font/font.desc" to reflect your username.

2.15) Move MPlayer's sources to /usr/src:
$ mv /home/leszek/mplayer/ /usr/src/
$ cd /usr/src/mplayer/main/
2.16) Compile:
$ DEB_BUILD_OPTIONS="-disable-runtime-cpudetection -enable-gui -enable-menu -disable-rtc -enable-live -with-livelibdir=/usr/local/lib/live" fakeroot debian/rules binary
2.17) After some 8 minutes ( on my Sempron 3000+ with 512 DDR400 and a SATA HD ) a package mplayer_1.0cvs_i386.deb will appear in /usr/src/mplayer. Install it:
$ dpkg -i mplayer_1.0cvs_i386.deb

Voilla! You can now run your mplayer from within your 32-bit chroot. Dont forget to set Video and Audio outputs ( Xv and ALSA in my case ).

3. Make it work transparently from within your 64-bit system

3.1) Get out of the chroot and install the dchroot package:
$ apt-get install dchroot
3.2) Edit /etc/dchroot.conf:
# sid386 chroot
sid386    /var/sid-386-chroot
3.3) Now you should be able to run commands inside the chroot as normal user:
$ dchroot -c sid386 -d gmplayer
3.4) Add a wrapper script to ease things and be able to call 'mplayer' and 'gmplayer' transparently from the command line: in /usr/local/bin create the following script, name it 'do_chroot' and chmod it to 755:
#!/bin/sh
ARGS=""
for i in "$@" ; do
        ARGS="$ARGS '$i'"
done

exec dchroot -c sid386 -d -q "`basename $0`" "$ARGS"
3.5) Last step : symbolic links to our script:
$ cd /usr/local/bin
$  ln -s do_dchroot mplayer
$  ln -s do_dchroot gmplayer
$  ln -s do_dchroot mencoder
3.6) Now, being in the 64-bit system, you can run your 32-bit mplayer like this:
$ /usr/local/bin/mplayer
or better yet, simply
$ mplayer
( /usr/local/bin is searched before /usr/local! ) It all works because the symbolic link /usr/local/bin/mplayer points to /usr/local/bin/do_chroot, which checks its name ( in this case 'mplayer' ), appends all the arguments you might have supplied, and uses dchroot to launch the corresponding mplayer binary from the 32-bit chroot.

Of course, should you ever install any other 32-binary in the chroot , you also have to add new link to make it work from the 64-bit part.

3.7) Finally, the true reason for all this:
$ mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:480, harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\
vbitrate=5000:keyint=18:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 -o movie.mpg movie.avi
And 'movie.avi' gets recoded for NTSC DVD, which you can enjoy watching on your DVD player :)
( mplayer-1.0-pre6 from Ubuntu Breezy does not have the 'mpegopts' flag yet, and 1.0-pre7 from Dapper is uninstallable on Debian Sid because of dependence on X.Org 7.0 )

4. Most of the info has been shamelessly copied from the following sources

a) MPlayer compilation and setup:


b) chroot setup:

 

 


Posted by spiney (85.125.xx.xx) on Tue 21 Feb 2006 at 10:13
Very nice article. I've been rather wary to switch to 64-bit Debian, because the only machine I could use atm is a remote system (in another country) where I don't want to risk anything. And I'm not quite sure what the advantages are anyway, since I'm below the 4GByte RAM border.

But for the next desktop/notebook this article is very informative, thanks.
--
Debian GNU/Linux on an IBM Thinkpad T43p

[ Parent | Reply to this comment ]

Posted by Anonymous (87.6.xx.xx) on Sun 13 Aug 2006 at 14:40
There is a tiny error in the debootstrap command. It has to be "--arch", not "-arch".

[ Parent | Reply to this comment ]

Posted by CarloWood (77.248.xx.xx) on Sun 3 Feb 2008 at 17:07
It has been two years now - when is this finally going to be fixed on the page???
Unbelievable.

[ Parent | Reply to this comment ]

Posted by Anonymous (82.181.xx.xx) on Tue 21 Feb 2006 at 10:30
No flash, no win32-binaries. No non-free_binary-only_crap. What was the problem?

[ Parent | Reply to this comment ]

Posted by ptecza (193.0.xx.xx) on Tue 21 Feb 2006 at 10:50
Hi!

The most URLs in the article are broken, for example
http://ftp.debian.org/debian/<br

My best regards!

P.

[ Parent | Reply to this comment ]

Posted by Utumno (211.22.xx.xx) on Tue 21 Feb 2006 at 16:59
[ View Utumno's Scratchpad | View Weblogs ]
Sorry Panie Pawle,

Wordpress niszczy linki w ten sposob: wstawia <br />( skopiowalem ten tekst verbatim z wlasnego bloga) . Wszystkie dzialaja bez koncowego

[ Parent | Reply to this comment ]

Posted by ptecza (193.0.xx.xx) on Wed 22 Feb 2006 at 09:15
Hello!

Thanks a lot for your reply! Could you please fix it?
Unfortunately, my Opera doesn't support broken URLs ;)
It can't also display them properly. Look at the screenshot.

Regards!

P.

[ Parent | Reply to this comment ]

Posted by Steve (82.41.xx.xx) on Wed 22 Feb 2006 at 09:15
[ View Steve's Scratchpad | View Weblogs ]

I've corrected these now.

Steve

[ Parent | Reply to this comment ]

Posted by ptecza (193.0.xx.xx) on Wed 22 Feb 2006 at 09:24
Hi Steve!

With the exception of the URL from my example - the line
with debootstrap :)

Best regards!

P.

[ Parent | Reply to this comment ]

Posted by Steve (82.41.xx.xx) on Wed 22 Feb 2006 at 09:33
[ View Steve's Scratchpad | View Weblogs ]

Ooops! How embarrassing! I've removed that URL now since it didn't need to be a link in the first place.

Steve

[ Parent | Reply to this comment ]

Posted by ptecza (193.0.xx.xx) on Wed 22 Feb 2006 at 09:48
Thank you very much! Now all URLs are OK, even in my Opera ;)

Have a nice day!

P.

[ Parent | Reply to this comment ]

Posted by PJ_at_Belzabar_Software (59.176.xx.xx) on Tue 21 Feb 2006 at 12:37
[ View Weblogs ]
Utumno wrote:
3.6) Now, the true reason for all this:
$ mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf \ scale=720:480, harddup -srate 48000 -af lavcresample=48000 -lavcopts \ vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=500 0\ :keyint=18:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 -o\ movie.mpg movie.avi
When this man says he likes the command line, I think he really means it.

[ Parent | Reply to this comment ]

Posted by pupeno (201.252.xx.xx) on Tue 21 Feb 2006 at 16:05
Why not OpenOffice ? Can't you compile it for 64-bit ?

[ Parent | Reply to this comment ]

Posted by Utumno (211.22.xx.xx) on Tue 21 Feb 2006 at 16:51
[ View Utumno's Scratchpad | View Weblogs ]
Open Office does not compile on AMD64. Having installed the chroot however, instalation of Open Office is as easy as

$ chroot -c sid386 -d apt-get install openoffice.org

[ Parent | Reply to this comment ]

Posted by Anonymous (82.224.xx.xx) on Wed 22 Feb 2006 at 14:01
Open Office does not compile on AMD64.
Not true. You can even find debian packages here: ftp://ftp-fourier.ujf-grenoble.fr/linux/oo64/

However, it is very unstable and there are several problems loading files created with the 32 bits version. Hopefully, a more stable version is not too far away. See the February 17th, 2006 entry in this blog for example: http://blogs.linux.ie/caolan/index.php

[ Parent | Reply to this comment ]

Posted by pulsar (213.184.xx.xx) on Wed 12 Apr 2006 at 20:35
My fried has Open Office compiled for AMD64 Debian Sid

deb http://office.tea.sky-zebra.net/tren/openoffice.org/ ./

[ Parent | Reply to this comment ]

Posted by Anonymous (82.225.xx.xx) on Tue 21 Feb 2006 at 17:25
You can have these programs without a chroot with http://mhelleboid.free.fr/

[ Parent | Reply to this comment ]

Posted by Utumno (60.248.xx.xx) on Wed 22 Feb 2006 at 04:09
[ View Utumno's Scratchpad | View Weblogs ]
Yes, thanks for the link - didn't know about it.

This is the 'ia32-libs' method, meaning this installs additional 32-bit libs so that both 64- and 32- bit apps can be installed and run on the same system.

I prefer to have both parts clearly separated; YMMV.

[ Parent | Reply to this comment ]

Posted by Anonymous (207.179.xx.xx) on Sun 26 Feb 2006 at 03:45
Why bother compiling mplayer and ffmpeg, wouldn't it just be easier and a far more efficient use of your time to simply add the proper repositories and download and install the binaries? For amd64 bit binaries:

deb ftp://ftp.nerim.net/debian-marillat/
deb http://spello.sscnet.ucla.edu/marillat/

Within the chroot simply add:

deb ftp://ftp.nerim.net/debian-marillat/

This repository to your list. There is no need to compile everything from source and have who knows what installed who knows where... While it makes for nice geek points, it is a waste of time to compile everything from source.

[ Parent | Reply to this comment ]

Posted by pcastell (200.40.xx.xx) on Thu 16 Mar 2006 at 07:44

This is a fix to dchroot script path handling and a nice default in /bin/bash when the script is called directly.

Is easy to get an idea about dchroot path handling with this example. Two roots, amd64: the "live" system, amd32: the chroot as in the article.

If you get different path for a binary like mplayer

  law@amd64:~$ which mplayer -> /home/law/bin/mplayer
  law@amd32:~$ which mplayer -> /usr/bin/mplayer

you end with an error like this when you do dchroot mplayer

  law@amd64:~$ dchroot mplayer
  /home/law/bin/mplayer: line 11: /usr/bin/dchroot: No such file or directory
  /home/law/bin/mplayer: line 11: exec: /usr/bin/dchroot: cannot execute: No such   file or directory
  dchroot: Child exited non-zero.
  dchroot: Operation failed.

You can fix it as follows

#!/bin/sh
  ## path to dchroot binary
  dch=/usr/bin/dchroot
  ## chroot name and script name
  rid=i386-debian-sarge
  ## last known name
  cmd=`basename "$0"`
  ## run bash if this is not a symlink
  [ "$cmd" = "$rid" ] && cmd=/bin/bash
  ## force quote arguments
  args=''
  for a in "$@"; do
    args="$args '$a'"
  done
  ## run dhcroot
  exec $dch -q -c $rid -d /usr/bin/env "$cmd" "$args"
## eof
-- If all else fails, immortality can always be assured by spectacular error.

[ Parent | Reply to this comment ]

Posted by omiethenull (70.151.xx.xx) on Sun 19 Mar 2006 at 19:48
Is this "compatible" with having ia32-libs installed? Because I have:
omie@djinn:/lib$ ls -al ld-linux.so.2
lrwxrwxrwx 1 root root 32 2006-03-18 18:38 ld-linux.so.2 -> /emul/ia32-linux/lib/ld-2.3.2.so

and your tutorial instructs linking it into the chroot. Is there an alternative? I don't want to break the apps that are currently dependent on that symlink.

[ Parent | Reply to this comment ]

Posted by omiethenull (70.151.xx.xx) on Sun 19 Mar 2006 at 20:17
Also, I think you have a slight error in your documentation that can lead to doing the wrong thing:

After editing root's .bashrc, you say to get out of the chroot to download mplayer, but then you tell us to just keep going from out of the chroot--installing codecs and compiling mplayer. Did you mean for that stuff to be down from within the chroot?

[ Parent | Reply to this comment ]

Posted by omiethenull (70.151.xx.xx) on Sun 19 Mar 2006 at 20:56
Awesome. It's working out =). FYI, I use ia32-libs for everything else (cedega, etc.) but I wanted to use your method for mplayer. One other point of advice:

If you want to play DVDs or mount devices for playing, you might want to either mount -o bind your main /dev. However, some people say they have problems with that, so this is what I did:
(from main system (non-chroot))
mount -o bind /dev /mnt/dev
rsync -av /mnt/dev /var/sid-386-chroot/dev
umount /mnt/dev

Now, chroot to your 386 environment and all your devices should be there and things like pipes won't interfere with eachother (as they might if you just mount -o bind /dev /var/sid-386-chroot/dev...though, that might work just fine for some people).

[ Parent | Reply to this comment ]

Posted by Anonymous (142.90.xx.xx) on Mon 10 Apr 2006 at 22:01
Be VERY careful if you decide to remove the chroot at some point in the future. Any filesystems you have mounted with bind MUST be unmounted before you rm -f the chroot. If you fail to do this you'll remove your valuable data (/me sniff's and wipes away a tear)

[ Parent | Reply to this comment ]

Posted by Nikem (62.65.xx.xx) on Sat 15 Apr 2006 at 14:02
Couldn't you help me? I have installed 32 chroot as described here but have two problems:

1. when I start mplayer from within the chroot it can not open X11 display. mplayer -vo aa works just fine, but not -vo xv e.g. Seems to be problem with X server but I am not sure.

2. dchroot -d mplayer fails with
(sid386) mplayer
/usr/bin/mplayer: /usr/bin/mplayer: cannot execute binary file
dchroot: Child exited non-zero.
dchroot: Operation failed.

Any suggestions?

[ Parent | Reply to this comment ]

Posted by olly (80.177.xx.xx) on Fri 19 May 2006 at 08:21
There is a typo in the debootstrap command line: -arch should be --arch

[ Parent | Reply to this comment ]

Posted by Anonymous (82.171.xx.xx) on Sun 28 May 2006 at 06:42
The typo is indeed there. To make sure people who google on the error message see this page, here's the error message you get with -arch:

root@ce:~# debootstrap -arch i386 sid /var/sid-386-chroot http://ftp.debian.org/debian/
/usr/sbin/debootstrap: line 288: .: /var/sid-386-chroot: is a directory
root@ce:~#

And here's the output with --arch:
root@ce:~# debootstrap --arch i386 sid /var/sid-386-chroot http://ftp.debian.org/debian/
I: Retrieving Release
I: Retrieving Packages
.....

With best regards,
Cedric

[ Parent | Reply to this comment ]

Posted by jjz (89.176.xx.xx) on Sun 18 Nov 2007 at 02:22
Too bad the error was "no such script" in my case, so I was googling in vain.

Please, please, please correct the typo in the article,

[ Parent | Reply to this comment ]

Posted by yanger (66.84.xx.xx) on Fri 26 May 2006 at 18:54
would this article work in reverse? ... making 64bit run in the 32bit?

i currently run Debian etch/32bit on a amd64 - just because i had issues with the 64bit version in the past .. being skeptical, could I chroot into a 64 bit chroot and run things in 64bit mode?

;)

[ Parent | Reply to this comment ]

Posted by Anonymous (81.68.xx.xx) on Sat 8 Jul 2006 at 18:20
No you cannot.
For 2 reasons (at least thats what i think. But hey.. what do I know?!):

you're using an 32bit kernel. it's not capable of running 64bit code.
And second, your processor is in 32bit mode. Its a native mode and stays in that mode as soon as a kernel is run, beit either a 64 or a 32bit kernel.

In short: it's kinda like trying to play a Nitendo 64 game on a NES

So sorry.

I must say that the amd64 version of Etch kinda works for me. Had some troubles with Nvidia though. But sort of working right now.

Cheers,

Martijn Bruckman

[ Parent | Reply to this comment ]

Posted by elvesten (24.215.xx.xx) on Mon 7 Aug 2006 at 02:46
I could not get the sources here...

"$ cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer login Password: [hit enter]"

When i hit enter it said i was not authorized.

Any ideas?

Thanks.

[ Parent | Reply to this comment ]

Posted by Anonymous (193.174.xx.xx) on Mon 9 Oct 2006 at 12:27
Mplayer now uses subversion
Issue the following command instead
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

These sources also include ‘libavcodec' and ‘libavutil' so there is no need to
checkout ffmpeg separately.

[ Parent | Reply to this comment ]

Posted by Anonymous (216.86.xx.xx) on Tue 7 Nov 2006 at 04:58
I have to copy /etc/hosts into the chroot so that aptitude can access the internet

mike10

[ Parent | Reply to this comment ]

Posted by Anonymous (82.52.xx.xx) on Thu 12 Jul 2007 at 18:09
mariopc:/# debootstrap --arch i386 sid /var/sid-386-chroot http://ftp.debian.org/debian/
bash: debootstrap: command not found

Excuse me for my little english.. what I do? Thanks!

[ Parent | Reply to this comment ]

Posted by Anonymous (87.11.xx.xx) on Sun 2 Sep 2007 at 22:27
apt-get install debootstrap

[ Parent | Reply to this comment ]

Posted by Anonymous (79.8.xx.xx) on Wed 5 Sep 2007 at 19:02
At the end of debootstrap i got:
W: Failure trying to run: chroot /var/sid-386-chroot mount -t proc proc /proc

harry:/home/bedo$ chroot /var/sid-386-chroot/
chroot: cannot run command `/bin/bash': Exec format error
harry:/home/bedo$

and this happens every time i try to get into the chroot.
How to fix that?

[ Parent | Reply to this comment ]

Posted by vinc17 (140.77.xx.xx) on Fri 12 Aug 2011 at 15:17
I have 2 comments:

1. About the 32bit linker in the /lib path, the symlink to the chroot version is IMHO a bad idea, as this could clash with other packages, such as libc6-i386. So, it's better to install libc6-i386 directly.

2. With the current sid, one also needs to bind-mount /run to run X applications (well, at least with gdm3, because the X authority file is there).

[ Parent | Reply to this comment ]

Sign In

Username:

Password:

[Register|Advanced]

 

Flattr

 

Current Poll

What do you use for configuration management?








( 465 votes ~ 5 comments )