Project

General

Profile

Bug #807

[librechroot] Support using proot to call QEMU for foreign architectures

Anonymous - over 8 years ago - . Updated almost 8 years ago.

Status:
not-a-bug
Priority:
feature
Category:
ARM on x86
Assignee:
% Done:

0%


Description

Merge PRoot project to libretools for easy compiling multiple architecture

http://proot.me/

PRoot description:

PRoot is a user-space implementation of chroot, mount --bind, and binfmt_misc. This means that users don't need any privileges or setup to do things like using an arbitrary directory as the new root filesystem, making files accessible somewhere else in the filesystem hierarchy, or executing programs built for another CPU architecture transparently through QEMU user-mode. Also, developers can use PRoot as a generic GNU/Linux process instrumentation engine thanks to its extension mechanism, see CARE for an example. Technically PRoot relies on ptrace, an unprivileged system-call available in every Linux kernel.

Example:
  1. mount -o rbind /dev <chroot-dir>/dev
  2. mount -o bind /sys <chroot-dir>/sys
  3. mount -o bind /tmp <chroot-dir>/tmp
  4. mount -t proc none <chroot-dir>/proc
  5. proot -0 -q /usr/bin/qemu-arm -r <chroot-dir>

Note: "-0" means root user access.


Related issues

Related to libretools - Bug #987: [librechroot] Support using binfmt_misc to call QEMU for foreign architecturesfixed2016-04-15

Actions
Blocks libretools - Porting #787: [librechroot] Support ARM chroots on x86 via QEMUfixed2015-08-19

Actions

History

#1

Updated by Anonymous over 8 years ago

  • Related to Bug #790: Add support QEMU in chroot on nonnative architecture to build other systems without need to use cross-compiling added
#2

Updated by Anonymous over 8 years ago

  • Related to Porting #787: [librechroot] Support ARM chroots on x86 via QEMU added
#3

Updated by Anonymous over 8 years ago

  • Related to Bug #791: Support cross-compiling for other architectures without need extra dependencies added
#4

Updated by Anonymous over 8 years ago

  • Related to Bug #808: Package [dbscripts] similarly to libretools for easy use in Parabola server added
#6

Updated by lukeshu about 8 years ago

  • Subject changed from Merge PRoot project to libretools for easy compiling multiple architecture to [librechroot] Use proot for calling QEMU for foreign architectures
#7

Updated by lukeshu about 8 years ago

  • Subject changed from [librechroot] Use proot for calling QEMU for foreign architectures to [librechroot] Support using proot to call QEMU for foreign architectures
#8

Updated by lukeshu about 8 years ago

  • Related to deleted (Bug #790: Add support QEMU in chroot on nonnative architecture to build other systems without need to use cross-compiling)
#9

Updated by lukeshu about 8 years ago

  • Related to deleted (Bug #791: Support cross-compiling for other architectures without need extra dependencies)
#10

Updated by lukeshu about 8 years ago

  • Related to deleted (Bug #808: Package [dbscripts] similarly to libretools for easy use in Parabola server)
#11

Updated by lukeshu about 8 years ago

  • Target version set to Basic ARM support
  • Category set to ARM on x86
#12

Updated by lukeshu about 8 years ago

  • Related to Bug #987: [librechroot] Support using binfmt_misc to call QEMU for foreign architectures added
#13

Updated by lukeshu about 8 years ago

  • Related to deleted (Porting #787: [librechroot] Support ARM chroots on x86 via QEMU)
#14

Updated by lukeshu about 8 years ago

  • Blocks Porting #787: [librechroot] Support ARM chroots on x86 via QEMU added
#15

Updated by lukeshu about 8 years ago

proot whigs out when the child process does certain things with unshare.

I think what's going on is that the child unshares, then forks a new (ARM) process, then proot directly calls qemu, so proot+qemu don't know about the new namespace.

I think this blocks using proot with systemd-nspawn.

There's ~0% chance that I'm switching libretools away from systemd-nspawn (or a derivative).

So, I guess I'm waiting for coadde's build of a static qemu, so I tackle #987 instead.

#16

Updated by Anonymous almost 8 years ago

  • Status changed from open to not-a-bug

Don't needed since we are using qemu-static for it.

Also available in: Atom PDF