Wednesday, April 27, 2016

[fedora-arm] Re: armhf dnf is not working on aarch64 kernel

On 2016-04-27 14:09, Chanho Park wrote:
> Hi Peter,
>
> On Wednesday, April 27, 2016, Peter Robinson <pbrobinson@gmail.com>
> wrote:
>
>> On Wed, Apr 27, 2016 at 1:18 PM, Chanho Park <parkch98@gmail.com>
>> wrote:
>>> Hi all,
>>>
>>> I want to use the armhf fedora rootfs on the aarch64 bit kernel.
>>
>> You can't, it's not a use case we support.
>
> Why not? All arm binaries can be runnable on aarch32 mode of aarch64
> kernel.
>
>>> When I ran the dnf command on the armhf image with aarch64 kernel,
>> the
>>> dnf command was failed with below error.
>>>
>>> dnf -v install mesa
>>> cachedir: /var/cache/dnf
>>> DNF version: 1.1.6
>>> Failed to synchronize cache for repo 'rpmfusion-free-updates' from
>>>
>>
> 'http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-updates-released-22&arch=aarch64':
>>> Cannot prepare internal mirrorlist: No URLs in mirrorlist,
>> disabling.
>>> repo: using cache for: fedora
>>> not found updateinfo for: Fedora 22 - aarch64
>>> repo: using cache for: updates
>>> not found deltainfo for: Fedora 22 - aarch64 - Updates
>>> not found updateinfo for: Fedora 22 - aarch64 - Updates
>>>
>>> Actually, armhf binaries/rootfs can be executed even aarch64
>>> kernel(fully compatible with armhf).
>>> Maybe the dnf command tries to find its repo from uname call.
>>> $ uname -m
>>> aarch64
>>>
>>> The rpm install was also failed because fedora doesn't have any
>> rpm
>>> platform file
>>> So, I added below file. It is able to install armhf rpm file even
>>> aarch64 kernel.
>>>
>>> cat /etc/rpm/platform
>>> armv7hl-fedora-linux-gnu
>>>
>>> The question is 'how can I run 'dnf' command on armhf fedora with
>>> aarch64 kernel?'
>>
>> No, the ARMv7 and aarch64 ABI aren't compatible, the only way we
>> support ARMv7 on aarch64 is via virtualisation. We will not be
>> supporting this or a "multilib" usecase.
>
> The aarch64 kernel can execute both aarch64 and aarch32(fully
> compatible armv7) binaries. For example, the kernel of raspberry pi 3
> is aarch64 and fedora arm version can't run on rpi3. Even all binaries
> can run on it but only dnf command can't do that.

I can confirm that armv7hl (and armv5tel) userspace DOES work in
a chroot on aarch64 provided you use a sensible kernel (specifically
meaning that it uses 4KB memory pages rather than 64KB memory pages).
I am running CentOS 7 armv7hl in a chroot and LXC/docker containers
on CentOS 7 aarch64 (with aarch64 kernel configured for 4KB pages
and backward compatibility enabled).

So if the above doesn't work (with /etc/rpm/platform configured),
it has to be considered a bug.

Gordan
_______________________________________________
arm mailing list
arm@lists.fedoraproject.org
http://lists.fedoraproject.org/admin/lists/arm@lists.fedoraproject.org

No comments:

Post a Comment