Github messages for voidlinux
 help / color / mirror / Atom feed
* [ISSUE] Direwolf on Rpi Zero W fails to run due to missing NEON support.
@ 2024-01-20 15:03 CtrlC-Root
  2024-01-20 16:39 ` classabbyamp
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: CtrlC-Root @ 2024-01-20 15:03 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2927 bytes --]

New issue by CtrlC-Root on void-packages repository

https://github.com/void-linux/void-packages/issues/48299

Description:
### Is this a new report?

Yes

### System Info

Void 6.1.69_1 armv6l Unknown uptodate rFF

### Package(s) Affected

direwolf-1.7_1

### Does a report exist for this bug with the project's home (upstream) and/or another distro?

https://github.com/RPi-Distro/repo/issues/278
https://bugs.launchpad.net/raspbian/+bug/1980899
https://groups.io/g/direwolf/topic/87406630#5856

### Expected behaviour

You should be able to run the binaries in the `direwolf` package on supported ARM boards as per the Void Handbook including the Raspberry Pi Zero W.

### Actual behaviour

The `direwolf` binary crashes with an `Illegal instruction` as seen below:

```
[root@void-live ~]# direwolf
Dire Wolf version 1.7
Includes optional support for:  hamlib cm108-ptt

Dire Wolf requires only privileges available to ordinary users.                                                                                                                              
Running this as root is an unnecessary security risk.

Illegal instruction
[root@void-live ~]#
```

I've done some digging and it appears this is likely because it's compiled on an ARM system that has the NEON instruction set whereas the Raspberry Pi Zero W does not support this.

```
[root@void-live ~]# readelf -A /usr/bin/direwolf | grep NEON
  Tag_Advanced_SIMD_arch: NEONv1
[root@void-live ~]# lscpu
Architecture:           armv6l
  Byte Order:           Little Endian
CPU(s):                 1
  On-line CPU(s) list:  0
Vendor ID:              ARM
  Model name:           ARM1176
    Model:              7
    Thread(s) per core: 1
    Core(s) per socket: 1
    Socket(s):          1
    Stepping:           r0p7
    CPU(s) scaling MHz: 100%
    CPU max MHz:        1000.0000
    CPU min MHz:        700.0000
    BogoMIPS:           997.08
    Flags:              half thumb fastmult vfp edsp java tls
```

Of course just because the binary contains NEON instructions does not necessarily mean it's executing them but I suspect this is the issue given the linked bug reports above. I am currently attempting to build this package from source on the board to see if that solves it but that's going to take a while.

### Steps to reproduce

1. Follow the Void Handbook instructions to download an ARMv6l image (I used `void-rpi-armv6l-20230628.img`) and prepare a microSD card using it.
2. Boot the image on an ARMv6 board without support for NEON instructions (I used a Raspberry Pi Zero W).
3. Install the direwolf package: `xbps-install direwolf`
4. Run the `direwolf` binary in a way where it attempts to actually process data: `direwolf -c /usr/share/doc/direwolf/conf/direwolf.conf`
5. Observe the crash documented above in the `Actual behavior` section.

Tagging @classabbyamp as the package maintainer.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-01-21 20:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-20 15:03 [ISSUE] Direwolf on Rpi Zero W fails to run due to missing NEON support CtrlC-Root
2024-01-20 16:39 ` classabbyamp
2024-01-20 16:39 ` [ISSUE] [CLOSED] " classabbyamp
2024-01-20 20:38 ` CtrlC-Root
2024-01-21 20:18 ` [ISSUE] [CLOSED] " classabbyamp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).