Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:run-x86-arm

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
wiki:run-x86-arm [2020/11/15 21:50] – [run-x86-arm] pulsarwiki:run-x86-arm [2023/03/25 11:11] (aktuell) – [box64] pulsar
Zeile 1: Zeile 1:
  
-===== run-x86-arm =====+====== run x86_64 auf ARM ======
  
 Auf einer ARM CPU basierenden Computer wie z.B. den Raspberry Pi möchte ich x86_64Bit Anwendungen ausführen. Dafür benötigt man zunächst einen Raspberry Pi ab der Version 3, denn hier ist sicher ein 64 Bit CPU verbaut. Ausserdem wird ein 64 Bit OS benötigt. Suse hatte schon recht früh 64Bit für ARM angeboten nun gibt es das auch vom Raspberry Pi OS. Auf einer ARM CPU basierenden Computer wie z.B. den Raspberry Pi möchte ich x86_64Bit Anwendungen ausführen. Dafür benötigt man zunächst einen Raspberry Pi ab der Version 3, denn hier ist sicher ein 64 Bit CPU verbaut. Ausserdem wird ein 64 Bit OS benötigt. Suse hatte schon recht früh 64Bit für ARM angeboten nun gibt es das auch vom Raspberry Pi OS.
  
-  * https://stackoverflow.com/questions/51895452/qemu-debian-x86-on-raspberrypi + 
-  * https://www.novaspirit.com/2019/04/15/run-x86-arm/+ 
 +===== box64 ===== 
 + 
 +Mit ''box64'' x86_64 Anwendungen auf ARM ausführen. Hier am Bespiel der x86_64 Bit Anwendung guarda: 
 + 
 +  box64 guarda 
 +   
 +Man kann vorher noch Umgebungsvariablen setzen um das Verhalten von ''box64'' zu beeinflussen. 
 + 
 +  export BOX64_NOBANNER=0 
 +  export BOX64_NOPULSE=1 
 + 
 + 
 + 
 +===== schroot ===== 
 +Mit ''schroot'' wird einem ein Teil der Arbeit abgenommen, es übernimmt das Mounten der benötigten Verzeichnisse aus dem Hauptsystem. Die gemounteten Pfade können, falls benötigt, unter ''/etc/schroot/desktop/fstab'' bearbeitet werden. 
 + 
 + 
 +Die neuen Pakete ''schroot'', ''qemu'' und ''debootstrap'' installieren + weitere: 
 + 
 +  sudo apt install schroot qemu qemu-user qemu-user-static binfmt-support debootstrap binutils 
 + 
 +Eine Datei für eine neue ''chroot'' Umgebung anlegen: 
 + 
 +  sudo nano /etc/schroot/chroot.d/bullseye-amd64 
 +   
 +Mit dem Inhalt:
  
 <code> <code>
-sudo mount -t sysfs sys Dokumente/amd64/sys/+[bullseye-amd64
 +description=chroot-bullseye-amd64 
 +aliases=kryptowallets 
 +directory=/home/pi/chroot-bullseye-amd64 
 +users=root,pi 
 +type=directory 
 +profile=desktop 
 +personality=linux 
 +preserve-environment=false 
 +</code>
  
-sudo mount -t sysfs sys Dokumente/stretch-amd64/sys/ +Zunächst einmal den Ordner anlegen wo die schroot-Umgebung innewohnt:
-sudo mount -t proc proc Dokumente/stretch-amd64/proc/ +
-sudo mount --bind /dev Dokumente/stretch-amd64/dev/ +
-sudo mount --bind /dev/pts Dokumente/stretch-amd64/dev/pts/ +
-sudo mount --bind /dev/shm Dokumente/stretch-amd64/dev/shm/+
  
 +  mkdir ~/chroot-bullseye-amd64
  
-sudo cp /usr/bin/qemu-x86_64-static Dokumente/stretch-amd64/usr/bin/+Den schroot Dienst neu-starten:
  
 +  systemctl restart schroot
  
-sudo chroot Dokumente/stretch-amd64/ /debootstrap/debootstrap --second-stage +Dann probieren einzuloggen, musste sein bei meinen Tests, da wohl dann erst weitere Ordner unter ~/chroot-bullseye-amd64 angelegt werden: 
-I: Installing core packages..+ 
-IUnpacking required packages... +  schroot -c kryptowallets 
-I: Unpacking libacl1:amd64... + 
-I: Unpacking libattr1:amd64... + 
-I: Unpacking libaudit-common..+Mit ''debootstrap'' die **x86_64** Umgebung anlegen: 
-I: Unpacking libaudit1:amd64... + 
-IUnpacking base-files... +  sudo debootstrap --foreign --arch amd64 bullseye ./chroot-bullseye-amd64/ http://ftp.us.debian.org/debian 
-IUnpacking base-passwd... + 
-IUnpacking bash... + 
-...+Separating the two stages is only needed if you are bootstrapping a distribution for a foreign architecture (CrossDebootstrap)See the description of the ''--foreign'' option on the man pageFor example, using a x86 machine to create a Debian/Ubuntu installation for an embedded ARM or PowerPC system
 + 
 +The first stage downloads the needed .deb files and unpacks them into the directory you specifyThe second stage runs all of the package configuration scripts, which must be done using the target architecture (or by using qemu-user-static to emulate the target architecture)
 + 
 +If you're not building an install for a foreign architecture, the stages are combined and you can ignore the ''--second-stage'' option
 + 
 + 
 +Den Kommando zunächst **nicht** ausführen: 
 + 
 +  sudo chroot ./chroot-bullseye-amd64/ /debootstrap/debootstrap --second-stage 
 + 
 +Dann evtlnoch den Dienst ''binfmt-support.service'' neustarten: 
 + 
 +  systemctl restart binfmt-support.service 
 + 
 + 
 +Ab nun kann man den ''chroot'' Container betreten, als root: 
 + 
 +  sudo schroot -c kryptowallets 
 +   
 +oder als normaler Nutzer: 
 + 
 +  schroot -c kryptowallets 
 + 
 + 
 +==== Bei Fehlern ==== 
 + 
 +HinweisEs kann vorkommen, dass die ''chroot'' hängen bleibt. Um die gemounteten Ressourcen wieder 
 +frei zu bekommen, könnten folgende Befehle hilfreich sein... 
 + 
 +Zeigt alle Sessions an die noch laufen. 
 + 
 +  sudo schroot -l --all-sessions 
 + 
 +Beendet normalerweise alle Sessions 
 + 
 +  sudo schroot -e --all-sessions 
 + 
 + 
 + 
 +==== Alternativ ==== 
 + 
 +<code> 
 +sudo raspi-config # enable OpenGL driver 
 +sudo apt install -y debootstrap schroot 
 +cat << EOF | sudo tee /etc/schroot/chroot.d/pi64 
 +[pi64] 
 +description=VC4 arm64 testing 
 +type=directory 
 +directory=/srv/chroot/pi64 
 +users=pi 
 +root-groups=root 
 +profile=desktop 
 +personality=linux 
 +preserve-environment=true 
 +EOF 
 +sudo debootstrap --arch arm64 stable /srv/chroot/pi64 
 +sudo schroot -c pi64 -- apt install -y mesa-utils minetest sudo 
 + 
 +schroot -c pi64
 </code> </code>
 +
 +  
 +First you need to run the command below:
 +
 +  sudo apt install -y raspbian-nspawn-64
 +
 +You'll be prompted to enable 64-bit. Select Yes, hit Enter and reboot the system. Then you should be good to go and run:
 +
  
wiki/run-x86-arm.1605473435.txt.gz · Zuletzt geändert: 2020/11/15 21:50 von pulsar