Table of Contents

About

pikeyd165 is provided as part of the Pi2Jamma recalbox distribution and is responsible for making the arcade controls (such as joystick and buttons) to be recognized by the Linux operating subsystem. Unfortunately, the version of pikeyd165 provided by Pi2Jamma is compiled as an ARM 32bit binary and might not match the various architectures out there running Linux and utilizing Pi2Jamma. The following tutorial will document how to cross-compile pikeyd165 to a target architecture.

Binaries

Requirements

svn co http://svn.grimore.org/pikeyd165

and conveniently includes the BCM2835 driver source.

apt install gcc make gcc-arm-linux-gnueabi binutils-arm-linux-gnueabi
apt install gcc make gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu

Compiling the Sources

First, the BCM2835 library must be compiled inside the pikeyd165 directory:

cd pikeyd165/bcm2835
make clean
./configure --target=aarch64-linux-gnu --host=aarch64-linux-gnu
make

where:

This should have created src/libbcm2835.a and src/libbcm2835.h.

Next, pikeyd165 has to be compiled. The pikeyd165/pikeyd165/Makefile file has to be edited in order to replace:

CC := aarch64-linux-gnu-gcc

with the desired cross-compiler.

After editing the Makefile, compile pikeyd165:

cd pikeyd165
make

and there should be a resulting binary pikeyd165.

Finally, transfer the pikeyd165 binary to the arcade machine running Pi2Jamma and follow the instructions to set the arcade machine up.