원래 질문
저는 aarch64
Raspberry arm64
Pi 3 B+(2017) 또는 Pi 4(여기 이미지를 사용하세요). 이제 일부 애플리케이션/라이브러리의 32비트( armhf
/ ) 버전을 실행하고 싶지만 armv7
작동하지 않는 것 같습니다. 특히 raspistill
Raspbery Pi 사용자 영역 애플리케이션에서 그렇습니다.
질문: 가능하다면 raspistill
(및 기타 32비트 Arm 바이너리)을 64비트 OS에서 실행하려면 어떻게 해야 합니까?
내가 시도한 것:
- 아래에서 여러 아키텍처를 활성화하세요.이 데비안 HOWTO 가이드.
- 나도 추가했다
armhf
Raspberry Pi용 리소스 - 이 단계는 이 질문에 제공된 답변과 유사합니다.64비트 Debian/Ubuntu에서 32비트 프로그램을 어떻게 실행하나요?
- 나도 추가했다
- 다음 설치 지침을 시도했습니다
raspistill
.https://raspberrypi.stackexchange.com/a/67157.- 올바르게 연결되었는지 확인하려고 하면 오류가 발생합니다:
not a dynamic executable
. - 바이너리를 실행하면
No such file or directory
오류가 발생합니다.
- 올바르게 연결되었는지 확인하려고 하면 오류가 발생합니다:
raspistill
설치를 사용해 보았지만apt-get
위와 같은 오류가 발생했습니다.- 또한 쉘 스크립트를 사용하여 Miniconda를 설치해 보았습니다
armv7l
(Miniconda3-latest-Linux-armv7l.sh
여기에서). 다음 오류가 발생합니다.cannot execute native linux-armv7l binary, output from 'uname -a' is: Linux rpi4-20201112 5.9.0-0.bpo.2-arm64 #1 SMP Debian 5.9.6-1~bpo10+1 (2020-11-19) aarch64 GNU/Linux
추가로 취해야 할 조치
libc6:armh를 설치해 보세요.
라즈베리파이 소스 사용
libc6:armh
다음을 사용하여 설치를 시도 했는데 sudo apt-get install libc6:armhf
다음 메시지가 나타납니다.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libc6:armhf : Depends: libgcc1:armhf but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
그런 다음 을 시도하면 sudo apt-get install libc6:armhf libgcc1:armhf
설치할 추가 또는 새 패키지, 권장 패키지 및 제거할 패키지의 긴 목록이 표시됩니다. 메시지의 마지막 부분에서는 이를 명확하게 설명합니다.
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
apt adduser (due to apt) gpgv (due to apt) libapt-pkg5.0 (due to apt) libc6 (due to apt) libgcc1 (due to apt) libgnutls30 (due to apt) libseccomp2 (due to apt) libstdc++6 (due to apt) base-files base-passwd libdebconfclient0 (due to base-passwd) bash
libtinfo6 (due to bash) debianutils (due to bash) bsdutils libsystemd0 (due to bsdutils) coreutils libacl1 (due to coreutils) libattr1 (due to coreutils) libselinux1 (due to coreutils) dash dpkg (due to dash) debconf (due to dash) diffutils libbz2-1.0 (due to dpkg)
liblzma5 (due to dpkg) zlib1g (due to dpkg) tar (due to dpkg) e2fsprogs libblkid1 (due to e2fsprogs) libcom-err2 (due to e2fsprogs) libext2fs2 (due to e2fsprogs) libss2 (due to e2fsprogs) libuuid1 (due to e2fsprogs) fdisk libfdisk1 (due to fdisk)
libmount1 (due to fdisk) libncursesw6 (due to fdisk) libsmartcols1 (due to fdisk) findutils grep libpcre3 (due to grep) gzip hostname init systemd-sysv (due to init) init-system-helpers (due to init) perl-base (due to init-system-helpers) libc-bin login
libaudit1 (due to login) libpam0g (due to login) libpam-runtime (due to login) libpam-modules (due to login) mount util-linux (due to mount) ncurses-bin sed sysvinit-utils libcap-ng0 (due to util-linux) libudev1 (due to util-linux)
0 upgraded, 3 newly installed, 272 to remove and 1 not upgraded.
Need to get 2534 kB of archives.
After this operation, 718 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
기본 데비안 소스 사용
지금은 raspbian 소스를 제거 /etc/apt/sources.list
하고 아키텍처가 활성화된 기본 데비안 소스만 사용할 것이라고 생각합니다 armhf
. 다음의 예 sources.list
: deb [arch=arm64,armhf] http://deb.debian.org/debian buster main contrib non-free
.
이제 실행하면 sudo apt-get install libc6:armhf
오류 메시지가 나타납니다: package architecture (armhf) does not match system (arm64)
. sudo apt-get update
, upgrade
, dist-upgrade
및 을 실행한 후에도 clean
이 오류가 발생합니다 autoclean
.
Get:2 http://deb.debian.org/debian buster/main armhf libgcc1 armhf 1:8.3.0-6 [37.2 kB]
Get:3 http://deb.debian.org/debian buster/main armhf libc6 armhf 2.28-10 [2390 kB]
Get:4 http://deb.debian.org/debian buster/main armhf libunistring2 armhf 0.9.10-1 [368 kB]
Get:5 http://deb.debian.org/debian buster/main armhf libidn2-0 armhf 2.0.5-1+deb10u1 [74.3 kB]
Fetched 3060 kB in 2s (1430 kB/s)
Preconfiguring packages ...
dpkg: error processing archive /var/cache/apt/archives/gcc-8-base_8.3.0-6_armhf.deb (--unpack):
package architecture (armhf) does not match system (arm64)
dpkg: error processing archive /var/cache/apt/archives/libgcc1_1%3a8.3.0-6_armhf.deb (--unpack):
package architecture (armhf) does not match system (arm64)
dpkg: error processing archive /var/cache/apt/archives/libc6_2.28-10_armhf.deb (--unpack):
package architecture (armhf) does not match system (arm64)
dpkg: error processing archive /var/cache/apt/archives/libunistring2_0.9.10-1_armhf.deb (--unpack):
package architecture (armhf) does not match system (arm64)
dpkg: error processing archive /var/cache/apt/archives/libidn2-0_2.0.5-1+deb10u1_armhf.deb (--unpack):
package architecture (armhf) does not match system (arm64)
Errors were encountered while processing:
/var/cache/apt/archives/gcc-8-base_8.3.0-6_armhf.deb
/var/cache/apt/archives/libgcc1_1%3a8.3.0-6_armhf.deb
/var/cache/apt/archives/libc6_2.28-10_armhf.deb
/var/cache/apt/archives/libunistring2_0.9.10-1_armhf.deb
/var/cache/apt/archives/libidn2-0_2.0.5-1+deb10u1_armhf.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
실행 apt policy libc6:arm{hf,64} libgcc1:arm{hf,64}
출력:
libc6:armhf:
Installed: (none)
Candidate: 2.28-10
Version table:
2.28-10 990
990 http://deb.debian.org/debian buster/main armhf Packages
libc6:
Installed: 2.28-10
Candidate: 2.28-10
Version table:
*** 2.28-10 990
990 http://deb.debian.org/debian buster/main arm64 Packages
100 /var/lib/dpkg/status
libgcc1:armhf:
Installed: (none)
Candidate: 1:8.3.0-6
Version table:
1:8.3.0-6 990
990 http://deb.debian.org/debian buster/main armhf Packages
libgcc1:
Installed: 1:8.3.0-6
Candidate: 1:8.3.0-6
Version table:
*** 1:8.3.0-6 990
990 http://deb.debian.org/debian buster/main arm64 Packages
100 /var/lib/dpkg/status
답변1
나는 같은 문제가있었습니다 ( package architecture (armhf) does not match system (arm64)
그것을 할 때 여러 번 apt install libc6:armhf
). 나에게는 실행이 dpkg --add-architecture armhf
문제를 해결했습니다.
답변2
Ubuntu Mate Desktop 20.04의 Raspi 버전에서도 똑같은 문제가 발생했습니다. Raspi Ubuntu Server 20.04(데스크톱 없이) 설치를 시도한 다음 armhf
아키텍처와 :armhf
라이브러리를 추가했습니다. 그런 다음 이 서버 설치에 Mate 데스크톱을 설치하고 32비트 응용 프로그램(사용자 정의 32비트 라이브러리를 복사해야 함 /usr/lib
)을 설치했는데 제대로 작동했습니다. 애플리케이션에 Raspbian 특정 라이브러리가 필요한 경우 동일한 작업을 수행할 수 있는지 확실하지 않지만 시도해 볼 수 있습니다.