我用的是树莓派4b,安装了arch,装了个KDE,打算用vnc远程桌面。tigervnc没法用,只能用realvnc。我用yay安装完realvnc-vnc-server后,运行vncserver,提示无法运行,显示“cannot execute binary file: Exec format error”。起初我以为是amd64不兼容arm64,但我一想,树莓派官方系统不是可以用吗?而且原先下载的软件包带有arm后缀,是针对arm架构的。后来我仔细看了下,软件包是armhf的,也就是32位的。我本来在google上找解决方法,但找到的教程都是抄的,而且太老旧,压根不能用。然后我又冒着风险用dpkg安装,但又有依赖问题没法解决。
我已经用尽了我能想到的所有办法,求各位献策
离线
用file看下vnserver的可执行文件
离线
我记得我当时先写了个.vnc/xstartup,然后直接vncserver:0就搞定了,然后就是用realvnc或者tigervnc都能连了,但是性能较差,刷新速度较慢,我觉得当个小服务器用还行,跑桌面划不来
布丁酱是菜鸡,没毛病,他是菜鸡:)
离线
起初我以为是amd64不兼容arm64
是。
而且原先下载的软件包带有arm后缀
你 uname -a 看看?「带有arm后缀」是哪个后缀?4b 的 CPU 是 Cortex-A72,你不是装的 64 位系统吗?为什么不使用 aarch64 的包呢?
离线
为什么不使用 aarch64 的包呢?
realvnc没有提供aarch64的包,只提供了armhf的包,并且这个包在树莓派官方系统可以正常运行
离线
哦,我没看仔细。
那你把 uname -a 和 file 你运行失败的文件 的结果发一下呀。
离线
哦,我没看仔细。
那你把 uname -a 和 file 你运行失败的文件 的结果发一下呀。
uname -a:
Linux alarm 5.11.0-1-ARCH #1 SMP Wed Feb 17 18:45:38 MST 2021 aarch64 GNU/Linux
file /usr/bin/vncserver:
/usr/bin/vncserver: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=5fd1aaf47c0d4e11d4204d1569fca16fa3cfdcbb, stripped
离线
/lib/ld-linux-armhf.so.3 这个文件你有吗?
离线
/lib/ld-linux-armhf.so.3 这个文件你有吗?
我把ubuntu的这个文件复制过来了,然而一点用处都没
离线
依云 说:/lib/ld-linux-armhf.so.3 这个文件你有吗?
我把ubuntu的这个文件复制过来了,然而一点用处都没
不止一个文件啊…………你没装32位的用户空间支持。
离线
yay?那这个包是从AUR编译上游源代码来的?这样为什么会是32位?还是说那个pkgbuild仅仅是打包了一下,用的是二进制的source
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
不止一个文件啊…………你没装32位的用户空间支持。
但最大的问题是,我找不到任何armhf的运行库
离线
你可以试下:
$ yay -Ss arm hf
archlinuxcn/rust-std-nightly-armv7-unknown-linux-gnueabihf 4:1.52.0_20210221-1 (21.0 MiB 86.9 MiB)
A safe, concurrent, practical language from Mozilla. (standard library, for nightly version, for (cross-)compiling to and running on armv7-unknown-linux-gnueabihf)
archlinuxcn/rust-std-nightly-arm-unknown-linux-gnueabihf 4:1.52.0_20210221-1 (20.8 MiB 85.7 MiB)
A safe, concurrent, practical language from Mozilla. (standard library, for nightly version, for (cross-)compiling to and running on arm-unknown-linux-gnueabihf)
archlinuxcn/arm-linux-gnueabihf-linux-api-headers 5.6.15-1 (1.0 MiB 4.4 MiB)
Kernel headers sanitized for use in userspace (arm-linux-gnueabihf)
archlinuxcn/arm-linux-gnueabihf-glibc 2.31-1 (12.3 MiB 79.1 MiB)
GNU C Library (arm-linux-gnueabihf)
archlinuxcn/arm-linux-gnueabihf-gcc-objc 9.1.0-2 (15.1 MiB 49.5 MiB)
Objective-C front-end for GCC (arm-linux-gnueabihf)
archlinuxcn/arm-linux-gnueabihf-gcc-libs 9.1.0-2 (9.0 MiB 46.7 MiB)
Runtime libraries shipped by GCC (arm-linux-gnueabihf)
archlinuxcn/arm-linux-gnueabihf-gcc-fortran 9.1.0-2 (8.0 MiB 26.2 MiB)
Fortran front-end for GCC (arm-linux-gnueabihf)
archlinuxcn/arm-linux-gnueabihf-gcc 9.1.0-2 (27.3 MiB 129.7 MiB)
The GNU Compiler Collection - C and C++ frontends (arm-linux-gnueabihf)
archlinuxcn/arm-linux-gnueabihf-binutils 2.34-3 (3.0 MiB 14.6 MiB)
A set of programs to assemble and manipulate binary and object files (arm-linux-gnueabihf)
看下版本,再安装就行了吧。
最近编辑记录 luxni (2021-02-22 09:26:37)
虽然人菜菜的,但也想做个有趣的人。
离线
看了一下,确实是二进制source,这个PKGBUILD在尝试从deb转换到pacman包格式。但是很怀疑楼主没有搞清楚AUR、yay是个什么东西:/
这个包确实不在Archlinux ARM官方仓库,如果从AUR安装则是这个
https://aur.archlinux.org/packages/realvnc-vnc-server/
看comments部分,2021-02-18 22:08就谈到了raspbian官方有一个AARCH64的deb包,http://archive.raspberrypi.org/debian/pool/main/r/realvnc-vnc/realvnc-vnc-server_6.7.2.43081_arm64.deb
楼主2021-02-20 00:18:36发帖前似乎没有看到这个comment,其yay安装realvnc-vnc-server时由于某种原因生产了32位ARM构架的包
考虑到AUR包参差不齐的质量以及它设计是为了Archlinux(仅支持x86-64)服务的,且楼主愿意且能够在自己的系统上使用dpkg(个人非常不喜欢,个人也不会尝试在一个pacman based的系统上安装dpkg,这太容易搞坏系统),
建议楼主尝试用dpkg安装这个raspbian官方的AARCH64的deb包,如果lib缺失也尽可能用Archlinux ARM官方仓库的64位包补齐
记得把以前yay安装的和dpkg安装的都卸载一下
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
依云 说:不止一个文件啊…………你没装32位的用户空间支持。
但最大的问题是,我找不到任何armhf的运行库
那可能就是 alarm 不支持了。
离线