[pulseaudio-discuss] Pulseaudio server for playing 32-bit chroot sounds on 64-bit host machine

Erich Boleyn erich at uruk.org
Fri Apr 24 09:05:12 PDT 2009

Hi all,

I know I'm inserting myself in the middle of this conversation, but
just got time to skim the pulseaudio list and thought I'd comment on
my own working 32-bit chroot on a 64-bit Linux (Gentoo in my case,
but I don't think that matters per se).

I use the chroot to have easily built and managed 32-bit versions
of Firefox and mplayer using the portage system.

Basic setup:
  --  64-bit host Gentoo Linux.
  --  32-bit chroot Gentoo Linux (in "/mnt/gentoo32").
  --  Pulseaudio 0.9.15 running as a single system instance in the 64-bit
	host Linux.

Audio setup:
  --  Both 64-bit host and 32-bit chroot setups (i.e. identical).
      --  /etc/asound.conf set to use ALSA pulse plugin by default.
          (and note the "cp" command to copy it to "/mnt/gentoo32" below!)
      --  Pulseaudio compiled with alsa support.
      --  ALSA plugins compiled with pulseaudio support.
  --  64-bit host only:
      --  Pulseaudio system daemon config files in /etc/pulse, no special
          setup there for the chroot.

Chroot setup done at system startup:
       mount -o bind /dev /mnt/gentoo32/dev >/dev/null
       mount -o bind /dev/pts /mnt/gentoo32/dev/pts >/dev/null &
       mount -o bind /dev/shm /mnt/gentoo32/dev/shm >/dev/null &
       mount -o bind /proc /mnt/gentoo32/proc >/dev/null
       mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb >/dev/null &
       mount -o bind /sys /mnt/gentoo32/sys >/dev/null &
       mount -o bind /tmp /mnt/gentoo32/tmp >/dev/null &
       mount -o bind /usr/portage /mnt/gentoo32/usr/portage >/dev/null &
       mount -o bind /usr/portage_overlay /mnt/gentoo32/usr/portage_overlay >/dev/null &
       mount -o bind /var/run /mnt/gentoo32/var/run >/dev/null &
       mount -o bind /home /mnt/gentoo32/home >/dev/null &
       cp -pf /etc/asound.conf /mnt/gentoo32/etc >/dev/null &
       cp -pf /etc/resolv.conf /mnt/gentoo32/etc >/dev/null &
       cp -pf /etc/passwd /mnt/gentoo32/etc >/dev/null &
       cp -pf /etc/shadow /mnt/gentoo32/etc >/dev/null &
       cp -pf /etc/group /mnt/gentoo32/etc >/dev/null &
       cp -pf /etc/gshadow /mnt/gentoo32/etc >/dev/null &
       cp -pf /etc/hosts /mnt/gentoo32/etc > /dev/null &
       cp -Ppf /etc/localtime /mnt/gentoo32/etc >/dev/null &

I think the important one for getting the 32-bit applications to connect
to the 64-bit pulseaudio daemon is mounting "/var/run".  There are some
UNIX-domain sockets that get created there by the pulseaudio server.

Hope this is helpful.

    Erich Stefan Boleyn     <erich at uruk.org>     http://www.uruk.org/
"Reality is truly stranger than fiction; Probably why fiction is so popular"

More information about the pulseaudio-discuss mailing list