hassio-addons / addon-traccar

Traccar - Home Assistant Community Add-ons
https://addons.community
MIT License
127 stars 31 forks source link

Bring back support for Raspberry PI systems (armv7) #293

Closed adrianmo closed 8 months ago

adrianmo commented 8 months ago

Proposed Changes

(Describe the changes and rationale behind them)

First off, @frenck thanks for the awesome job you did with this addon and many other pieces of Home Assistant!

Here's a summary of the reason for this PR:

PR #116 removed support for i386, armhf and armv7 systems, leaving Raspberry PI users (among other hardware using the unsupported systems) without the possibility of upgrading the addon any longer.

After digging a bit about the reason that originated the PR, I found out that Traccar moved from Java 8 to Java 11 [1] in v4.13 [2]. Presumably, that change caused that the addon container image failed to build, because the addon was using a base image based on Alpine, and Alpine's repos don't provide a package for OpenJDK 11 for ARM systems [3].

To overcome that limitation, I changed the base image from Alpine to Debian and used the prebuilt OpenJDK packages provided by Adoptium [4] to install Java 11 in all supported systems. The downside is that the Dockerfile is a bit longer, but IMO the benefits justify it.

I have tested this in my own HA deployment on a RPI 4 and works perfectly well. I'm now able to use the latest Traccar with my tracking devices.

Please let me know what you think and if any of my assumption are not correct. I'm happy to make any changes requested by the maintainers.

Related Issues

(Github link to related issues or pull requests)

frenck commented 8 months ago

I have no plans to support 32-bit systems in the long run. Support is being dropped everywhere around the world. While you do present a possible route, I don't want to add back support as it includes complexity and maintenance.

../Frenck

adrianmo commented 8 months ago

I have no plans to support 32-bit systems in the long run. Support is being dropped everywhere around the world. While you do present a possible route, I don't want to add back support as it includes complexity and maintenance.

../Frenck

@frenck Thanks for your reply! What you said makes sense to me, but got me a bit confused too (mainly because of my lack of knowledge in this area).

I've got a RPI 4, which comes with ARM Cortex-A72 processor (ARMv8, 64 bits). However, my RPI reports 32 bits and ARMv7 as you can see below.

[core-ssh ~]$ uname -a
Linux core-ssh 6.1.63-haos-raspi #1 SMP PREEMPT Mon Feb  5 11:26:13 UTC 2024 armv7l Linux
[core-ssh ~]$ cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 3 (v7l)
...

Is it because I originally flashed it with a 32-bit version of HAOS? Should I reflash it with a 64-bit version so that the architecture is recognized as AArch64?

Thanks!

frenck commented 8 months ago

I've got a RPI 4, which comes with ARM Cortex-A72 processor (ARMv8, 64 bits). However, my RPI reports 32 bits and ARMv7 as you can see below.

It means you installed a 32 bits OS.

Is it because I originally flashed it with a 32-bit version of HAOS? Should I reflash it with a 64-bit version so that the architecture is recognized as AArch64?

Yup.

../Frenck

adrianmo commented 8 months ago

Cool - Thanks mate! 😉