User avatar
Gavinmc42
Posts: 4850
Joined: Wed Aug 28, 2013 3:31 am

Re: experimental support for multiarch with Raspbian and Debian arm64

Wed Jan 01, 2020 4:05 am

OpenJDK?
Gentoo64 is using OpenJDK and I pretty sure Minecraft can use that.

So is there a OpenJDK for Debian?
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
HawaiianPi
Posts: 6004
Joined: Mon Apr 08, 2013 4:53 am
Location: Aloha, Oregon USA

Re: experimental support for multiarch with Raspbian and Debian arm64

Wed Jan 01, 2020 8:38 am

Gavinmc42 wrote:
Wed Jan 01, 2020 4:05 am
Gentoo64 is using OpenJDK and I pretty sure Minecraft can use that.
Yea, I figure Gentoo will work, but it's been ages since I've used that distro, so I thought I'd try it under Raspbian (been using Debian based distros for the last 15 years or so). This multiarch support with the 64-bit kernel seemed like a possibility, but Java64 doesn't work.

Guess it's time to give Sakaki's Gentoo a go.
My mind is like a browser. 27 tabs are open, 9 aren't responding,
lots of pop-ups...and where is that annoying music coming from?

MaccyC
Posts: 6
Joined: Sun Sep 01, 2019 12:37 am

Re: experimental support for multiarch with Raspbian and Debian arm64

Fri Jan 03, 2020 7:34 pm

HawaiianPi

Does the /opt/ARCH64/java file have the execution bit set?

User avatar
HawaiianPi
Posts: 6004
Joined: Mon Apr 08, 2013 4:53 am
Location: Aloha, Oregon USA

Re: experimental support for multiarch with Raspbian and Debian arm64

Fri Jan 03, 2020 8:05 pm

MaccyC wrote:
Fri Jan 03, 2020 7:34 pm
HawaiianPi

Does the /opt/ARCH64/java file have the execution bit set?
Yes. First thing I checked after receiving the "No such file or directory" error. 32 and 64 bit versions have the same permissions.

tim@RaspberryPi4B4:~ $ ls -lah /opt/Java/ARM64/bin/java
-rwxr-xr-x 1 tim tim 9.1K Oct 5 04:05 /opt/Java/ARM64/bin/java
tim@RaspberryPi4B4:~ $ ls -lah /opt/Java/ARM32/bin/java
-rwxr-xr-x 1 tim tim 8.0K Oct 5 05:30 /opt/Java/ARM32/bin/java

And I do have the 64-kernel installed (as well as multiarch support).

tim@RaspberryPi4B4:~ $ uname -r
4.19.75-v8+

So this is an odd error. Since it's not a path error, it seems like I have the wrong version (wrong architecture), but I also double-checked that.

tim@RaspberryPi4B4:~ $ ls Downloads -1
jdk-8u231-linux-arm32-vfp-hflt.tar.gz
jdk-8u231-linux-arm64-vfp-hflt.tar.gz


¯\_(ツ)_/¯
My mind is like a browser. 27 tabs are open, 9 aren't responding,
lots of pop-ups...and where is that annoying music coming from?

User avatar
dickon
Posts: 1814
Joined: Sun Dec 09, 2012 3:54 pm
Location: Home, just outside Reading

Re: experimental support for multiarch with Raspbian and Debian arm64

Fri Jan 03, 2020 8:32 pm

Normally, an ENOENT is generated for an executable format the kernel doesn't have an interpreter for. Usually, the interpreter is either a shell (or similar, via a '#!' stanza), or a ld-linux-*.so* binary; 'file foo' will tell you what it's expecting.

My *guess* is that your aarch64 multiarch installation isn't quite installed correctly, but you seem to think it is, and I have no reason to doubt you, which is why I haven't commented before. I'd run 'file /opt/Java/ARM64/bin/java' and see if there's anything in the interpreter section. I'd expect 'interpreter /lib/ld-linux-aarch64.so.1' or similar.

User avatar
HawaiianPi
Posts: 6004
Joined: Mon Apr 08, 2013 4:53 am
Location: Aloha, Oregon USA

Re: experimental support for multiarch with Raspbian and Debian arm64

Fri Jan 03, 2020 9:51 pm

dickon wrote:
Fri Jan 03, 2020 8:32 pm
My *guess* is that your aarch64 multiarch installation isn't quite installed correctly, but you seem to think it is
I followed the directions in this thread and didn't encounter any errors (other than the keyring issue previously mentioned and resolved). The uname -a command shows I have the v8+ kernel and aarch64 support.

tim@RaspberryPi4B4:~ $ uname -a
Linux RaspberryPi4B4 4.19.75-v8+ #1270 SMP PREEMPT Tue Sep 24 18:59:17 BST 2019 aarch64 GNU/Linux

So as far as I can tell, it's correct, but I have no prior experience with multiarch, so ... ¯\_(ツ)_/¯

dickon wrote:
Fri Jan 03, 2020 8:32 pm
I'd run 'file /opt/Java/ARM64/bin/java' and see if there's anything in the interpreter section. I'd expect 'interpreter /lib/ld-linux-aarch64.so.1' or similar.
Here's what your suggestion output.

tim@RaspberryPi4B4:~ $ file /opt/Java/ARM64/bin/java
/opt/Java/ARM64/bin/java: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=e7897a039f899c1d4c0b0d90cb91d1cc5afa6096, not stripped

So it looks like I have what you expected to see. Not sure where to go from here.

Thanks for your help.
My mind is like a browser. 27 tabs are open, 9 aren't responding,
lots of pop-ups...and where is that annoying music coming from?

User avatar
dickon
Posts: 1814
Joined: Sun Dec 09, 2012 3:54 pm
Location: Home, just outside Reading

Re: experimental support for multiarch with Raspbian and Debian arm64

Sat Jan 04, 2020 10:59 am

Hmm. At this point I'd start looking hard at shared libraries and your LD_LIBRARY_PATH (particularly anything living in /opt/java/ARM64/lib), but if they're wrong I'd expect an error about missing shared libraries or the like, rather than a straight ENOENT. I'm assuming /lib/ld-linux-aarch64.so.1 does actually exist...

Unfortunately, I've no idea where to get an aarch64-capable ldd from that will coexist on a system with the 32b version, which makes diagnosing these things more difficult than it needs to be.

User avatar
HawaiianPi
Posts: 6004
Joined: Mon Apr 08, 2013 4:53 am
Location: Aloha, Oregon USA

Re: experimental support for multiarch with Raspbian and Debian arm64

Sat Jan 04, 2020 12:09 pm

Alright, thanks.

Time to re-learn Gentoo (Sakaki's Gentoo64 build for Pi4), as that will likely be simpler than troubleshooting this multiarch problem.

Thank you for your help.
My mind is like a browser. 27 tabs are open, 9 aren't responding,
lots of pop-ups...and where is that annoying music coming from?

EnglishMobster
Posts: 2
Joined: Wed Jan 22, 2020 6:53 am

Re: experimental support for multiarch with Raspbian and Debian arm64

Sat Feb 01, 2020 5:47 am

Trying to crossgrade a Raspbian install using this method, and I'm getting this error:

Code: Select all

 libsystemd0 : Breaks: libsystemd0:arm64 (!= 241-7~deb10u2+rpi1) but 241-7~deb10u2 is to be installed
 libsystemd0:arm64 : Breaks: libsystemd0 (!= 241-7~deb10u2) but 241-7~deb10u2+rpi1 is to be installed
 libudev1 : Breaks: libudev1:arm64 (!= 241-7~deb10u2+rpi1) but 241-7~deb10u2 is to be installed
 libudev1:arm64 : Breaks: libudev1 (!= 241-7~deb10u2) but 241-7~deb10u2+rpi1 is to be installed
I'm probably just going to get the arm64 versions using wget and install them with dpkg manually, but would it be possible for these to be added to the repo so this can all be done via apt?

This is the full command I ran:

Code: Select all

root@retropie:/home/pi# apt --download-only install dpkg:arm64 tar:arm64 apt:arm64 libapt-pkg5.0:arm64 libgnutls30:arm64 libsystemd0:arm64 libudev1:arm64 libidn2-0:arm64 libsdl2-2.0-0 libudev-dev libibus-1.0-dev libdbus-1-dev fcitx-libs-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
fcitx-libs-dev is already the newest version (1:4.2.9.6-5).
libdbus-1-dev is already the newest version (1.12.16-1).
libibus-1.0-dev is already the newest version (1.5.19-4+deb10u1).
libudev-dev is already the newest version (241-7~deb10u2+rpi1).
libsdl2-2.0-0 is already the newest version (2.0.10+3rpi).
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:
 libsystemd0 : Breaks: libsystemd0:arm64 (!= 241-7~deb10u2+rpi1) but 241-7~deb10u2 is to be installed
 libsystemd0:arm64 : Breaks: libsystemd0 (!= 241-7~deb10u2) but 241-7~deb10u2+rpi1 is to be installed
 libudev1 : Breaks: libudev1:arm64 (!= 241-7~deb10u2+rpi1) but 241-7~deb10u2 is to be installed
 libudev1:arm64 : Breaks: libudev1 (!= 241-7~deb10u2) but 241-7~deb10u2+rpi1 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

plugwash
Forum Moderator
Forum Moderator
Posts: 3697
Joined: Wed Dec 28, 2011 11:45 pm

Re: experimental support for multiarch with Raspbian and Debian arm64

Thu Mar 05, 2020 3:42 pm

Yeah, I did an initial run of builds, but did not get around to automating updates. So a few packages need updating, I'm dealing with that now, as well as hoping to expand this to bullseye.

levaidaniel
Posts: 7
Joined: Fri Mar 13, 2020 2:15 pm

Re: experimental support for multiarch with Raspbian and Debian arm64

Sun Mar 15, 2020 10:41 pm

Hi all!

I'm new to the list, so be gentle :)

I wanted to try out what others had done here, so I started to edit my apt sources:

Code: Select all

====>/etc/apt/sources.list.d/debian_arm64.list
deb [arch=arm64] http://ftp.de.debian.org/debian/ buster main
====>/etc/apt/sources.list.d/raspberrypi.list
deb [arch=armhf] http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
====>/etc/apt/sources.list.d/raspi.list
deb [arch=armhf] http://archive.raspberrypi.org/debian/ buster main
Then added a new dpkg architecture:

Code: Select all

$ sudo dpkg --add-architecture arm64

Code: Select all

$ sudo apt-get update
ran fine, no issues.

But I can't install any arm64 packages:

Code: Select all

$ sudo apt install chromium:arm64
Reading package lists... Done
Building dependency tree
Reading state information... Done
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:
 chromium:arm64 : Depends: libasound2:arm64 (>= 1.0.16) but it is not going to be installed
                  Depends: libatk-bridge2.0-0:arm64 (>= 2.5.3) but it is not going to be installed
                  Depends: libatk1.0-0:arm64 (>= 2.2.0) but it is not going to be installed
                  Depends: libatomic1:arm64 (>= 4.8) but it is not going to be installed
                  Depends: libatspi2.0-0:arm64 (>= 2.9.90) but it is not going to be installed
                  Depends: libavcodec58:arm64 (>= 7:4.0)
                  Depends: libavformat58:arm64 (>= 7:4.1) but it is not going to be installed
                  Depends: libavutil56:arm64 (>= 7:4.0) but it is not going to be installed
                  Depends: libc6:arm64 (>= 2.28) but it is not going to be installed
                  Depends: libcairo-gobject2:arm64 (>= 1.10.0) but it is not going to be installed
                  Depends: libcairo2:arm64 (>= 1.6.0) but it is not going to be installed
                  Depends: libcups2:arm64 (>= 1.4.0) but it is not going to be installed
                  Depends: libdbus-1-3:arm64 (>= 1.9.14) but it is not going to be installed
                  Depends: libdrm2:arm64 (>= 2.3.1) but it is not going to be installed
                  Depends: libevent-2.1-6:arm64 (>= 2.1.8-stable) but it is not going to be installed
                  Depends: libexpat1:arm64 (>= 2.0.1) but it is not going to be installed
                  Depends: libflac8:arm64 (>= 1.3.0) but it is not going to be installed
                  Depends: libfontconfig1:arm64 (>= 2.12.6) but it is not going to be installed
                  Depends: libfreetype6:arm64 (>= 2.3.9) but it is not going to be installed
                  Depends: libgcc1:arm64 (>= 1:4.2) but it is not going to be installed
                  Depends: libgdk-pixbuf2.0-0:arm64 (>= 2.22.0) but it is not going to be installed
                  Depends: libglib2.0-0:arm64 (>= 2.31.8) but it is not going to be installed
                  Depends: libgtk-3-0:arm64 (>= 3.9.10) but it is not going to be installed
                  Depends: libharfbuzz0b:arm64 (>= 2.2.0) but it is not going to be installed
                  Depends: libicu63:arm64 (>= 63.1-1~) but it is not going to be installed
                  Depends: libjpeg62-turbo:arm64 (>= 1.5.0) but it is not going to be installed
                  Depends: libjsoncpp1:arm64 (>= 1.7.4) but it is not going to be installed
                  Depends: liblcms2-2:arm64 (>= 2.2+git20110628) but it is not going to be installed
                  Depends: libminizip1:arm64 (>= 1.1) but it is not going to be installed
                  Depends: libnspr4:arm64 (>= 2:4.9-2~) but it is not going to be installed
                  Depends: libnss3:arm64 (>= 2:3.22) but it is not going to be installed
                  Depends: libopenjp2-7:arm64 (>= 2.2.0) but it is not going to be installed
                  Depends: libopus0:arm64 (>= 1.1) but it is not going to be installed
                  Depends: libpango-1.0-0:arm64 (>= 1.14.0) but it is not going to be installed
                  Depends: libpangocairo-1.0-0:arm64 (>= 1.14.0) but it is not going to be installed
                  Depends: libpci3:arm64 (>= 1:3.5.2-1) but it is not going to be installed
                  Depends: libpng16-16:arm64 (>= 1.6.2-1) but it is not going to be installed
                  Depends: libpulse0:arm64 (>= 0.99.1) but it is not going to be installed
                  Depends: libre2-5:arm64 (>= 20160901) but it is not going to be installed
                  Depends: libsnappy1v5:arm64 but it is not going to be installed
                  Depends: libstdc++6:arm64 (>= 6) but it is not going to be installed
                  Depends: libvpx5:arm64 (>= 1.6.0) but it is not going to be installed
                  Depends: libwebp6:arm64 (>= 0.5.1) but it is not going to be installed
                  Depends: libwebpdemux2:arm64 (>= 0.5.1) but it is not going to be installed
                  Depends: libwebpmux3:arm64 (>= 0.6.1-2) but it is not going to be installed
                  Depends: libx11-6:arm64 (>= 2:1.4.99.1) but it is not going to be installed
                  Depends: libx11-xcb1:arm64 but it is not going to be installed
                  Depends: libxcb1:arm64 (>= 1.6) but it is not going to be installed
                  Depends: libxcomposite1:arm64 (>= 1:0.3-1) but it is not going to be installed
                  Depends: libxcursor1:arm64 (> 1.1.2) but it is not going to be installed
                  Depends: libxdamage1:arm64 (>= 1:1.1) but it is not going to be installed
                  Depends: libxext6:arm64 but it is not going to be installed
                  Depends: libxfixes3:arm64 (>= 1:5.0) but it is not going to be installed
                  Depends: libxi6:arm64 (>= 2:1.2.99.4) but it is not going to be installed
                  Depends: libxml2:arm64 (>= 2.7.4) but it is not going to be installed
                  Depends: libxrandr2:arm64 (>= 2:1.2.99.3) but it is not going to be installed
                  Depends: libxrender1:arm64 but it is not going to be installed
                  Depends: libxslt1.1:arm64 (>= 1.1.25) but it is not going to be installed
                  Depends: libxss1:arm64 but it is not going to be installed
                  Depends: libxtst6:arm64 but it is not going to be installed
                  Depends: zlib1g:arm64 (>= 1:1.2.2) but it is not going to be installed
                  Recommends: chromium-sandbox:arm64 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
I tried with "smaller" packages as well to see if I get lucky, but it usually boils down to this:

Code: Select all

$ sudo apt-get install links:arm64
Reading package lists... Done
Building dependency tree
Reading state information... Done
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:
 links:arm64 : Depends: libbrotli1:arm64 (>= 0.6.0) but it is not going to be installed
               Depends: libbz2-1.0:arm64 but it is not going to be installed
               Depends: libc6:arm64 (>= 2.28) but it is not going to be installed
               Depends: libgpm2:arm64 (>= 1.20.7) but it is not going to be installed
               Depends: liblz1:arm64 (>= 1.11) but it is not going to be installed
               Depends: liblzma5:arm64 (>= 5.1.1alpha+20120614) but it is not going to be installed
               Depends: libssl1.1:arm64 (>= 1.1.1) but it is not going to be installed
               Depends: zlib1g:arm64 (>= 1:1.1.4) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Then to see if I can gradually get there:

Code: Select all

$ sudo apt-get install libc6:arm64
Reading package lists... Done
Building dependency tree
Reading state information... Done
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:arm64 : Depends: libgcc1:arm64 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

$ sudo apt-get install libc6:arm64 libgcc1:arm64
Reading package lists... Done
Building dependency tree
Reading state information... Done
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:
 libgcc1:arm64 : Depends: gcc-8-base:arm64 (= 8.3.0-6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

$ sudo apt-get install libc6:arm64 libgcc1:arm64 gcc-8-base:arm64
[... bunch of packages to be removed ...]
The following NEW packages will be installed:
  gcc-8-base:arm64 libc6:arm64 libgcc1:arm64 libidn2-0:arm64 libunistring2:arm64
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) raspbian-archive-keyring (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) install-info (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, 5 newly installed, 1949 to remove and 0 not upgraded.
Need to get 3.184 kB of archives.
After this operation, 5.495 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!'
 ?] ^C
Clearly I'm missing something here. I'd really appreciate any insight! :)

Thanks!


Dani

User avatar
dickon
Posts: 1814
Joined: Sun Dec 09, 2012 3:54 pm
Location: Home, just outside Reading

Re: experimental support for multiarch with Raspbian and Debian arm64

Mon Mar 16, 2020 11:38 am

You also need to add

Code: Select all

deb [arch=arm64] http://plugwash.raspbian.org/multiarch buster main
to /etc/apt/sources.list.

levaidaniel
Posts: 7
Joined: Fri Mar 13, 2020 2:15 pm

Re: experimental support for multiarch with Raspbian and Debian arm64

Mon Mar 16, 2020 12:42 pm

Hey dickon!

Thanks for the tip!

I of course heeded the advice and tried with plugwash's repo, alas with the same results:

Code: Select all

$ sudo apt-get update
[...]
Get:4 http://plugwash.raspbian.org/multiarch buster InRelease [3.899 B]
Get:5 http://plugwash.raspbian.org/multiarch buster/main arm64 Packages [288 kB]
Fetched 307 kB in 2s (190 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done

$ sudo apt install chromium:arm64
Reading package lists... Done
Building dependency tree
Reading state information... Done
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:
 chromium:arm64 : Depends: libasound2:arm64 (>= 1.0.16) but it is not going to be installed
                  Depends: libatk-bridge2.0-0:arm64 (>= 2.5.3) but it is not going to be installed
                  Depends: libatspi2.0-0:arm64 (>= 2.9.90) but it is not going to be installed
                  Depends: libavcodec58:arm64 (>= 7:4.0)
                  Depends: libavformat58:arm64 (>= 7:4.1) but it is not going to be installed
                  Depends: libavutil56:arm64 (>= 7:4.0) but it is not going to be installed
                  Depends: libcairo-gobject2:arm64 (>= 1.10.0) but it is not going to be installed
                  Depends: libcairo2:arm64 (>= 1.6.0) but it is not going to be installed
                  Depends: libcups2:arm64 (>= 1.4.0) but it is not going to be installed
                  Depends: libdbus-1-3:arm64 (>= 1.9.14) but it is not going to be installed
                  Depends: libdrm2:arm64 (>= 2.3.1) but it is not going to be installed
                  Depends: libgtk-3-0:arm64 (>= 3.9.10) but it is not going to be installed
                  Depends: libpangocairo-1.0-0:arm64 (>= 1.14.0) but it is not going to be installed
                  Depends: libpci3:arm64 (>= 1:3.5.2-1) but it is not going to be installed
                  Depends: libpulse0:arm64 (>= 0.99.1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
I don't see why that should be the case, I'll be honest with you -- having to add plugwash's repository, that is. At first I intentionally left that part out. That repo. just contains a couple of packages from last year, (seemingly) none of them has to do anyhing with any of the package conflicts that I have here.

If I'm not mistaken, the idea here would be to use Debian's arm64 repository to install arm64 packages side-by-side my Raspbian repository's armhf packages. Nothing would have been installed from plugwash's repository. But this leads me to another question, if maybe I'm missing something that must be installed from plugwash's repo., maybe to resolve some conflicts, or replace some packages that are notoriusly preventing someone from mixing arm64 with armhf? I poked around that repo. but it seems like a couple of random pkgs built for arm64.

User avatar
dickon
Posts: 1814
Joined: Sun Dec 09, 2012 3:54 pm
Location: Home, just outside Reading

Re: experimental support for multiarch with Raspbian and Debian arm64

Mon Mar 16, 2020 12:59 pm

Last time I attempted this -- and I haven't in a while; I've been running plain debian/arm64 instead -- I got some things installed by manually specifying all the dependencies, so:

Code: Select all

apt install chromium:arm64 libasound2:arm64 libatk-bridge2.0-0:arm64 [...]
etc. That got me somewhere, but chromium is a very big package with many dependencies and you may run into something fundamentally broken. Debian's multiarch support isn't as well-developed as Solaris' (surprisingly -- Sun got all this sorted in about 1999, IIRC, although on SPARC and UltraSPARC, rather than aarch32 and aarch64) and seems to be much more fragile.

plugwash
Forum Moderator
Forum Moderator
Posts: 3697
Joined: Wed Dec 28, 2011 11:45 pm

Re: experimental support for multiarch with Raspbian and Debian arm64

Mon Mar 16, 2020 2:38 pm

When a "multi-arch: same" package is installed for multiple architectures under multiarch, the version number for the package on the two architectures must precisely match.

For most packages, the version numbers do match, so (provided the package is multi-arch: same) the regular Debian arm64 package can be installed alongside the raspbian armhf ones. However some packages (including some core system ones) have had their source modified by either raspbian or the raspberry pi foundation/trading and so the version numbers don't match. Others have had a different number of "binnmus" (binary only rebuilds) in raspbian than in Debian, which again causes a version mismatch.

Solving this issue is the purpose of the two extra repos mentioned in the first post of this topic. The "multiarch" repo contains arm64 rebuilds of raspbian packages, The "multiarch-rpf" repo mostly contains arm64 rebuilds of raspberry pi foundation/trading packages. For a couple of important packages (most notably the ffmpeg source package, which builds libav*) it was not possible to rebuild the raspberry pi foundation/trading packages on arm64 without modification, so in these cases the "multiarch-rpf" repo contains a modified version of the package, built for both armhf and arm64.

Unfortunately these support repos had lagged behind a bit, I have just pushed out an update for them, if you have your apt sources configured as stated in the first post of this thread (with both support repos) and are still having problems, please post back so we can troubleshoot further.

levaidaniel
Posts: 7
Joined: Fri Mar 13, 2020 2:15 pm

Re: experimental support for multiarch with Raspbian and Debian arm64

Mon Mar 16, 2020 4:00 pm

Nice, thank you!
It actually works with the two extra repos defined! :)

I've successfully installed e.g. chromium:arm64.

I'm noticing a ld error with arm64 packages/binaries however, and I think it's understandable, but I'd like to fix it if possible:

Two examples:

I'm using spectrwm (a tiling window manager), and it has a shared lib /usr/lib/spectrwm/libswmhack.so.0.0 which is a helper it uses to (re)place windows on the screen. Now I've installed spectrwm:arm64 and it installed its 64bit libswmhack.so -- no surprise there.
But whenever it tries to preload it, I get this error:
ERROR: ld.so: object '/usr/lib/spectrwm/libswmhack.so.0.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

chromium also shows these symptoms:
ERROR: ld.so: object '/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so' from /etc/ld.so.preload cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

That libarmmem-*.so is in the raspi-copies-and-fills package ("ARM-accelerated versions of selected functions from string.h" according to its description) that doesn't have an arm64 replacement.

So what options do I have here? I noticed that I cannot install libc-bin:arm64 without apt yelling at me -- but maybe the solution is to force this through? What are the experiences/advices here regarding this?


--
Dani

levaidaniel
Posts: 7
Joined: Fri Mar 13, 2020 2:15 pm

Re: experimental support for multiarch with Raspbian and Debian arm64

Tue Mar 17, 2020 8:31 pm

Nevermind, I messed up the system by trying to replace packages with their arm64 counterparts -- after a reboot suddenly I was left without bluetooth and stuff like that. Clearly this is not for me :D
Thanks anyway and keep up the good work!

--
Dani

User avatar
HimbeerKuchenBretter
Posts: 11
Joined: Sat Nov 23, 2019 1:43 am

Re: experimental support for multiarch with Raspbian and Debian arm64

Sun Apr 05, 2020 10:13 pm

better try arm64 directly from

Code: Select all

http://archive.raspberrypi.org/debian/

rcfa
Posts: 16
Joined: Sun Feb 25, 2018 5:22 am

Re: experimental support for multiarch with Raspbian and Debian arm64

Fri Jun 12, 2020 6:54 pm

So we have this effort here, and then we have this

viewtopic.php?f=117&t=275370

which has the issue of no 64-bit Mathematica, etc.

Why didn't these efforts just get merged? Wouldn't it be much simpler to just do a multi-arch distro, with some commands to thin it out if someone doesn't have the extra space for it, rather than doing separate 32-bit and 64-bit versions, and then shoe-stringing a multi-architecture variant together?

Just thinking out loud...

...on a more practical side:

The how-to seems to be to go from a 32-bit installation to a multi-arch installation.
If we start from the 64-bit beta, and tried to make that a multi-arch installation, what would be changed? Or does this depend on specific repos, that wouldn't be applicable to the beta OS?

fruitoftheloom
Posts: 24544
Joined: Tue Mar 25, 2014 12:40 pm
Location: Delightful Dorset

Re: experimental support for multiarch with Raspbian and Debian arm64

Sat Jun 13, 2020 4:42 am

rcfa wrote:
Fri Jun 12, 2020 6:54 pm
So we have this effort here, and then we have this

viewtopic.php?f=117&t=275370

which has the issue of no 64-bit Mathematica, etc.

Why didn't these efforts just get merged? Wouldn't it be much simpler to just do a multi-arch distro, with some commands to thin it out if someone doesn't have the extra space for it, rather than doing separate 32-bit and 64-bit versions, and then shoe-stringing a multi-architecture variant together?

Just thinking out loud...

...on a more practical side:

The how-to seems to be to go from a 32-bit installation to a multi-arch installation.
If we start from the 64-bit beta, and tried to make that a multi-arch installation, what would be changed? Or does this depend on specific repos, that wouldn't be applicable to the beta OS?

Raspberry Pi OS ARMHF Stable 32bit Kernel & Userland is required for older Raspberry Pi SBCs and based of Raspbian ARMHF, the 64bit Kernel was offered for Users who wanted a Multi-Arch Beta Release.


Raspberry Pi OS ARM64 BETA is 64bit Kernel and Userland and is based of Debian ARM64.


I suspect that Multi-Arch will be dropped when Raspberry Pi OS ARM64 is a Stable Release and fully supports RPi 2B v1.2 and newer.
Thinking outside the box is better than burying your head in the sand...

Return to “Raspberry Pi OS”