arch-test - instrukcja obsługi, opcje, przykłady poleceń


NAZWA

arch-test - wykryj architektury, z których twoje jądro może uruchamiać pliki binarne

STRESZCZENIE

arch-test [-n]
arch-test [-n] [-c <chroot>] <arch>

OPIS

Wywołane bez argumentu, arch-test wyświetla listę architektur wykonywalnych przez uruchomione jądro, po jednej w wierszu, używając nazw archiwów Debiana. Biblioteki Libc ani inne nie są ani potrzebne, ani sprawdzane — arch jest wymieniony, jeśli jego kod maszynowy może zostać wykonany, a jądro obsługuje odpowiednie wywołanie systemowe ABI. Oznacza to, że możesz uruchamiać te architektury w chroot lub kontenerze, uruchamiać je za pomocą multiarch, uruchamiać statyczne pliki binarne itp. Możliwość uruchamiania dodatkowych architektur można uzyskać poprzez binfmt s w systemie Linux, emulacja Linuksa w systemie BSD itp.

Architektura jest uważana za wykonalną tylko wtedy, gdy twoje jądro może uruchamiać niezmodyfikowane pliki binarne, bez dodatkowych kroków, takich jak ponowna kompilacja (Raspbian armhf) lub używanie brandelf na plikach binarnych, które chcesz uruchomić ( emulacja FreeBSD Linuksa). Ponadto, ponieważ Debian wymaga 686 na i386 od wersji stretch, sprawdzana jest obsługa 686.

Jeśli podano -n, arch-test spróbuje wyłączyć znane emulatory (obecnie qemu i wine). Zauważ, że emulator całej maszyny wydaje się być natywny, jeśli chodzi o jądro.

Z -c <chroot>, test jest wykonywany w danym chroot (qemu-user przed 2.12 wymagał, aby interpreter żył wewnątrz chroot ). Wymagane są tutaj uprawnienia roota.

Gdy wywołany z nazwą arch jako argumentem, arch-test testuje określoną architekturę. Zostanie wydrukowana przyjazna dla człowieka wiadomość, a kod wyjścia może być następujący:

0

gratulacje, arch można uruchomić na twoim jądrze

1

awaria

2

nie można sprawdzić — arch-test nie ma pomocnika dla tego łuku

Wskazówka dotycząca powłoki: z

set -e

ty piszesz:

ret=0; arch-test $ARCH || ret=$?

Programy pomocnicze

Wykrywanie odbywa się za pomocą małych programów znajdujących się w /usr/lib/arch-test/. Programy te sprawdzają, czy uruchomione jądro może wykonywać pliki binarne o danej architekturze. Po uruchomieniu, jeśli się powiedzie, każdy taki program wypisuje "ok" na stdout i zwraca kod wyjścia 0.

Gdy kontrola się nie powiedzie, te programy pomocnicze mogą umrzeć w straszny sposób — zawsze z niezerowym kodem wyjścia. Zwykle jądro zauważy niekompatybilność i ładnie przerwie próbę, ale w niektórych przypadkach, w których prawie się nie udało, niepowodzenie jest bardziej kłopotliwe, jak na przykład SIGILL lub SIGSEGV. Jeśli chcesz bezpośrednio uruchomić pomocników, powinieneś przekierować stderr do /dev/null i wyłączyć zrzuty pamięci (ulimit -c 0).

PRZYKŁAD

arch-test [-n]

wylicza architektury

arch-test [-n] [-c <chroot>] <arch>

testuje pojedynczy łuk