5 Commits

Author SHA1 Message Date
63cbcf9ca0 Merge pull request 'logging: Add logging command' (#2) from feature/add-log-command into main
Reviewed-on: http://git.home.arpa/arcade/bsp/pulls/2
2026-02-07 17:45:27 -10:00
f58cc7aded logging: Add logging command
Add new command and update startup scripts to use it

Signed-off-by: Nicholas Mello <nick@nmello.dev>
2026-02-07 21:45:06 -06:00
1bd2214dad gpio-keyboard-driver: Update script for errors
Print and exit correctly on error conditions

Signed-off-by: Nicholas Mello <nick@nmello.dev>
2026-02-07 16:14:29 -06:00
342b6c084f Merge pull request 'gpio-keyboard-driver: Add driver' (#1) from feature/add-gpio-driver into main
Reviewed-on: http://git.home.arpa/arcade/bsp/pulls/1
2026-02-06 21:47:32 -10:00
d35fabb64f gpio-keyboard-driver: Add driver
Adds the gpio keyboard driver to the BSP. The driver probes but fails to
find device tree information it is looking for.

Signed-off-by: Nicholas Mello <nick@nmello.dev>
2026-02-07 01:45:32 -06:00
12 changed files with 117 additions and 2 deletions

View File

@@ -0,0 +1,6 @@
menu "Arcade Machine Customizations"
source "$BR2_EXTERNAL_ARCADE_PATH/package/arcade-logger-cmd/Config.in"
source "$BR2_EXTERNAL_ARCADE_PATH/package/gpio-keyboard-driver/Config.in"
endmenu

8
board/arcade.dts Normal file
View File

@@ -0,0 +1,8 @@
#include "broadcom/bcm2711-rpi-4-b.dts"
/ {
gpio-keyboard {
compatible = "arcade,gpio-keyboard";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
};

View File

@@ -0,0 +1,5 @@
# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
/etc d 755 0 0 - - - - -
/etc/init.d d 755 0 0 - - - - -
/etc/init.d/S20arcade-logging-setup f 755 0 0 - - - - -
/etc/init.d/S25arcade-driver-setup f 755 0 0 - - - - -

View File

@@ -0,0 +1,24 @@
#!/bin/sh
LOG_DIR="/var/log/arcade/"
start() {
echo "Setting up logging directory: ${LOG_DIR}"
mkdir -p "${LOG_DIR}"
chmod 1777 "${LOG_DIR}"
}
case "$1" in
start)
start
;;
stop)
;;
restart)
start
;;
*)
echo "ERROR: Must be start, stop, or restart"
exit 1
;;
esac

View File

@@ -0,0 +1,30 @@
#!/bin/sh
start() {
log -n "startup-scripts" "Probing gpio_keyboard_driver"
modprobe gpio_keyboard_driver
log -n "startup-scripts" "Probed gpio_keyboard_driver with exit code $?"
}
stop() {
log -n "startup-scripts" "Removing gpio_keyboard_driver"
rmmod gpio_keyboard_driver
log -n "startup-scripts" "Removed gpio_keyboard_driver with exit code $?"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
log -l error -n "startup-scripts" "Must be start, stop, or restart"
exit 1
;;
esac

View File

@@ -6,7 +6,9 @@ BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
BR2_GLOBAL_PATCH_DIR="board/raspberrypi/patches"
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt $(BR2_EXTERNAL_ARCADE_PATH)/board/skeleton-device-table.txt"
BR2_SYSTEM_DHCP="eth0"
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_ARCADE_PATH)/board/skeleton/"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4-64/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4-64/post-image.sh"
BR2_LINUX_KERNEL=y
@@ -14,7 +16,7 @@ BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,ac69f097e1fba94502cbd36278db204120a37943)/linux-ac69f097e1fba94502cbd36278db204120a37943.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-400 broadcom/bcm2711-rpi-cm4 broadcom/bcm2711-rpi-cm4s"
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_ARCADE_PATH)/board/arcade.dts"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_XZ=y
@@ -31,3 +33,5 @@ BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_KMOD_XZ=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_GPIO_KEYBOARD_DRIVER=y
BR2_PACKAGE_ARCADE_LOGGER_CMD=y

View File

@@ -1,3 +1,3 @@
name: arcade
name: ARCADE
desc: Project for building the operating system for an arcade machine
url: https://github.com/nicholasmello/arcade

View File

@@ -0,0 +1,2 @@
$(info Including custom arcade packages)
include $(BR2_EXTERNAL_ARCADE_PATH)/package/*/*.mk

View File

@@ -0,0 +1,4 @@
config BR2_PACKAGE_ARCADE_LOGGER_CMD
bool "arcade-logger-cmd"
help
CLI app for logging to the command logging library

View File

@@ -0,0 +1,11 @@
################################################################################
#
# arcade-logger-cmd
#
################################################################################
ARCADE_LOGGER_CMD_VERSION = 26698165ce1717f51eaa5175653e29d48e4ba2ba
ARCADE_LOGGER_CMD_SITE = gitea@ssh.git.home.arpa:arcade/log.git
ARCADE_LOGGER_CMD_SITE_METHOD = git
$(eval $(cargo-package))

View File

@@ -0,0 +1,9 @@
comment "gpio-keyboard-driver needs a Linux kernel to be built"
depends on !BR2_LINUX_KERNEL
config BR2_PACKAGE_GPIO_KEYBOARD_DRIVER
bool "gpio-keyboard-driver"
depends on BR2_LINUX_KERNEL
help
Driver for converting GPIO pins to keyboard actions with run time
configuration

View File

@@ -0,0 +1,12 @@
################################################################################
#
# gpio-keyboard-driver
#
################################################################################
GPIO_KEYBOARD_DRIVER_VERSION = 7e57df0d3b39fb64fb278f433292a378e1fd0515
GPIO_KEYBOARD_DRIVER_SITE = gitea@ssh.git.home.arpa:arcade/gpio-keyboard-driver.git
GPIO_KEYBOARD_DRIVER_SITE_METHOD = git
$(eval $(kernel-module))
$(eval $(generic-package))