sciapp / nojava-ipmi-kvm

nojava-ipmi-kvm is a utility to access Java based ipmi kvm consoles without a local java installation.
MIT License
78 stars 26 forks source link

Run on Raspberry Pi? #15

Open stokkes opened 1 year ago

stokkes commented 1 year ago

Hello,

Love this program and definitely have a big use for it as I have a few supermicro boards with the dreaded Java 7 IPMI, so this is a life saver.

I've tried to run it on the Pi but it doesn't seem like it's made to work on arm-v7. The Pi would be a great little box to host this software so i can configure all my supermicro boards and access from a central location (was even thinking of running it in Docker).

I had a brief look at your Dockerfiles, you seem to be using python:3-buster and debian:jesse images, which I believe all have options for arm versions, so I think... it should be possibler, but I haven't gone through the python code to see if there's anything specific/hard-coded in there.

Any tips would be great, even if I have to do a bit of work on my end!

Thanks.

IngoMeyer441 commented 1 year ago

Hi! I didn't run any tests on Raspberry Pis yet, but you are right, all Docker images should be supported on Raspberry Pis. The reason, why it doesn't run out-of-the-box, is that nojava-ipmi-kvm tries to get a pre-built docker image from the DockerHub registry, which is only available for x64. But you can build your own Docker image with the included Makefile:

make build-openjdk

If this succeeds, you should be able to run nojava-ipmi-kvm locally on your Pi.

However: There are some hard-coded URLs in the Dockerfiles to download the needed old Java versions from https://snapshot.debian.org, for example in the OpenJDK-7 Dockerfile. You probably only need to replace amd64 with armhf but I am not quite sure.

All other code should be independent of the architecture in use.

stokkes commented 1 year ago

So I spent way too much time on this last night and didn't manage to get it to work unfortunately.

The versions don't quite match up. For ARM, there's armhf and arm64, but it's not possible to get the exact versions you have in your example OpenJDK-7 Dockerfile.

For example, icedtea-web doesn't have 1.5.3 so I have to use 1.5.2, and 7u51 I have to use 2.4.6-pre1-1 not just 2.4.6

I can get the container to start and access it via NoVNC, but the biggest issue I'm hitting is that the JavaWS throws an error that no iKVM32 in java.library.path so I am figuring there is something different with these versions of either OpenJDK or IcedTea, or possibly it's expecting 64bit and this is 32...