[buildd-tools-devel] Bug#604268: Bug#604268: Bug#604268: Bug#604268: Bug#604268: QEMU linux-user support

Julian Andres Klode jak at debian.org
Wed Jul 27 18:01:13 UTC 2011


On Tue, Jun 14, 2011 at 01:25:42PM +0200, Julian Andres Klode wrote:
> On Tue, Jan 25, 2011 at 03:44:29PM +0100, Loïc Minier wrote:
> > On Mon, Jan 24, 2011, Loïc Minier wrote:
> > >  While we could try parsing binfmt-support's format or binfmt_misc's
> > >  format, I think the best thing here would be to check with the
> > >  binfmt-support maintainer.  I wonder whether binfmt-support is
> > >  Debian/Ubuntu specific.  If it is, then poking the kernel format or
> > >  trying to run a binary might be best.  If it's also used on other
> > >  distros, perhaps we can get some command which tells us what the
> > >  interpreter is for a specific binary.  If that makes sense to you, I
> > >  can poke Colin about it, and perhaps open a bug report for the
> > >  binfmt-support changes.
> > 
> >  I've asked Colin about this, and he implemented support for that in
> >  trunk!  :-)   (I tested it, there was an issue in the original version
> >  but r109 fixed it)
> > 
> >  (bzr+ssh://bzr.debian.org/bzr/binfmt-support/trunk or
> >  http://bzr.debian.org/binfmt-support/trunk)
> > 
> >     % sudo apt-get build-dep binfmt-support
> >     % ./configure && make
> >     % src/update-binfmts --find $chroot/bin/true
> >     /usr/bin/qemu-arm-static
> > 
> >  Note that the --find might return multiple interpreters; in this case,
> >  the kernel tries them one by one.
> > 
> >  Perhaps we should do something like find the first static interpreter,
> >  or always copy the first interpreter and warn if there is more than
> >  one?
> > 
> Attaching my solution for this.
> 
Updated as per IRC comments. Changes since v1:

    * Run in setup-recover as well
    * Reindent in accordance to other schroot scripts
    * Simply touch the emulator if it does not exist yet instead of
      trying to write a script there.


-- 
Julian Andres Klode  - Debian Developer, Ubuntu Member

See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.
-------------- next part --------------
#!/bin/sh
# Copyright © 2011 Julian Andres Klode <jak at debian.org>
#
# schroot is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# schroot is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see
# <http://www.gnu.org/licenses/>.
#
#####################################################################

set -e

. "$SETUP_DATA_DIR/common-data"
. "$SETUP_DATA_DIR/common-functions"


if [ "$STAGE" != "setup-start" ] && \
   [ "$STAGE" != "setup-stop"  ] && \
   [ "$STAGE" != "setup-recover" ]; then
    exit 0
elif ! which update-binfmts > /dev/null; then
    info "Missing update-binfmts"
    exit 0
fi

shell="${CHROOT_PATH}/bin/sh"

for emulator in $(update-binfmts --find "$shell"); do
    dst="${CHROOT_PATH}$emulator"
    if [ ! -e "$emulator" ]; then
	info "Missing emulator: $emulator"
    else
	[ -e "$dst" ] || touch "$dst"
	mount --bind "$emulator" "$dst"
	mount -o remount,ro "$dst"
    fi
done
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/buildd-tools-devel/attachments/20110727/f1ae901d/attachment.pgp>


More information about the Buildd-tools-devel mailing list