24 Commits

Author SHA1 Message Date
c7803807e6 Comments regarding RPI 0W in extlinux.conf and config_common.txt 2026-04-16 18:46:41 -03:00
603f738f8a Raspberry Pi Zero W compatibility 2026-04-16 18:42:23 -03:00
f3869f8ae6 Bump gfxcanvas to release 0.2 2026-04-09 21:33:25 -03:00
a7f0cbea9c Add build info to post-build.sh 2026-04-09 18:15:58 -03:00
6d90c7ebca Add GfxCanvas as buildroot package 2026-04-09 16:07:34 -03:00
1e20f93562 Set ifup to trigger only after driver finishes probing 2026-04-04 02:01:33 -03:00
719ef5ea40 WLAN autoconfiguration through wpa_supplicant and mdev rules 2026-04-04 01:52:36 -03:00
14481a2939 rtl8821cu mdev rule for automatic usb modeswitch 2026-04-04 01:01:44 -03:00
bacddccd76 Set correct permissions for ssh keys in device_table.txt 2026-04-04 00:42:57 -03:00
b95cd7b030 Add mdev, rtw88 firmware and usb_modeswitch_data 2026-04-04 00:14:15 -03:00
d857eaad1c Add wpa_supplicant and rtl8821cu driver 2026-04-03 20:50:01 -03:00
1230b7dd43 Fix ssd1306 dt overlay 2026-04-03 19:24:25 -03:00
127eb68fd4 Add gdb server to target 2026-04-03 16:12:41 -03:00
e9e9c6cf07 Add ssd1306.dtbo by default 2026-03-31 20:29:03 -03:00
df4320a2ce Add rootfs overlay with SSH keys to be used during development 2026-03-31 20:19:02 -03:00
956ec1dd44 Remove rootfs overlay skeleton 2026-03-31 20:07:24 -03:00
237adc5efe Add iperf3 and openssh, and remove kmod tools 2026-03-31 17:59:37 -03:00
f6f5ce3e88 Hotfix: Commit buildroot BR2_TARGET_UBOOT_PATCH needed for uboot device tree overlay support 2026-03-30 17:06:07 -03:00
c96999abed Add device tree overlay for ssd1306 i2c display 2026-03-30 13:28:51 -03:00
00e3ad2a80 Add device tree overlay support in Linux, U-Boot, and post image script 2026-03-30 13:28:16 -03:00
002757909d Add ssd1306 driver to linux, and set defconfig to out of tree 2026-03-30 12:03:52 -03:00
7321394be1 Add libgpiod2 and htop 2026-03-29 20:11:53 -03:00
16357f1941 Buildroot locally-built toolchain, with 6.12 kernel headers 2026-03-29 19:51:03 -03:00
0aaa51bed0 Change kernel to mainline, and devicetree to bcm2835 2026-03-29 18:28:10 -03:00
25 changed files with 521 additions and 60 deletions

View File

@@ -2,5 +2,6 @@ menu "RPI Common packages"
source "$BR2_EXTERNAL_RPI_COMMON_PATH/package/my-shared-lib/Config.in"
source "$BR2_EXTERNAL_RPI_COMMON_PATH/package/my-common-tool/Config.in"
source "$BR2_EXTERNAL_RPI_COMMON_PATH/package/gfxcanvas/Config.in"
endmenu

View File

@@ -1,13 +1,12 @@
# Please note that this is only a sample, we recommend you to change it to fit
# your needs.
# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE.
# See http://buildroot.org/manual.html#rootfs-custom
# and http://elinux.org/RPiconfig for a description of config.txt syntax
start_file=start.elf
fixup_file=fixup.dat
# Device tree to be used bu U-Boot:
device_tree=bcm2835-rpi-b-plus.dtb
#device_tree=bcm2835-rpi-zero-w.dtb
kernel=u-boot.bin
# To use an external initramfs file

View File

@@ -0,0 +1,12 @@
# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
# ssh keys
/etc/ssh/ssh_host_ecdsa_key f 600 0 0 - - - - -
/etc/ssh/ssh_host_ed25519_key f 600 0 0 - - - - -
/etc/ssh/ssh_host_rsa_key f 600 0 0 - - - - -
#rtl8821cu usb modeswitch script
/lib/mdev/rtl8821cu_usb_modeswitch.sh f 755 0 0 - - - - -
# WLAN setup
/lib/mdev/wlan_setup.sh f 755 0 0 - - - - -

View File

@@ -0,0 +1,20 @@
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835";
fragment@0 {
target = <&i2c1>;
__overlay__ {
ssd1306: oled@3c {
compatible = "solomon,ssd1306fb-i2c";
reg = <0x3c>;
solomon,width = <128>;
solomon,height = <64>;
solomon,page-offset = <0>;
solomon,com-invdir;
};
};
};
};

View File

@@ -1,4 +1,9 @@
label buildroot
kernel /zImage
devicetree /bcm2708-rpi-b-plus.dtb
devicetree /bcm2835-rpi-b-plus.dtb
# devicetree /bcm2835-rpi-zero-w.dtb
devicetree-overlay /ssd1306.dtbo
append root=/dev/mmcblk0p2 rootwait console=tty1 console=ttyAMA0,115200
# In Raspberry Pi Zero W, the mini-uart is used for console instead of the PL011:
# append root=/dev/mmcblk0p2 rootwait console=tty1 console=ttyS1,115200

View File

@@ -0,0 +1,192 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_LOG_BUF_SHIFT=18
CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_NAMESPACES=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_EXPERT=y
CONFIG_KALLSYMS_ALL=y
CONFIG_PROFILING=y
CONFIG_KEXEC=y
CONFIG_ARCH_MULTI_V6=y
CONFIG_ARCH_BCM=y
CONFIG_ARCH_BCM2835=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPUFREQ_DT=y
CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
CONFIG_VFP=y
# CONFIG_SUSPEND is not set
CONFIG_PM=y
CONFIG_JUMP_LABEL=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_COMPAT_BRK is not set
CONFIG_KSM=y
CONFIG_CMA=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
CONFIG_BT=y
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_BCM=y
CONFIG_CFG80211=y
CONFIG_MAC80211=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_STANDALONE is not set
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_NETDEVICES=y
CONFIG_BCMGENET=y
CONFIG_USB_LAN78XX=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_SMSC95XX=y
CONFIG_BRCMFMAC=m
CONFIG_RTW88=y
CONFIG_RTW88_8821CU=y
CONFIG_RTW88_DEBUG=y
CONFIG_RTW88_DEBUGFS=y
CONFIG_ZD1211RW=y
CONFIG_INPUT_EVDEV=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_BCM2835AUX=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_TTY_PRINTK=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_BCM2835=y
CONFIG_SPI=y
CONFIG_SPI_BCM2835=y
CONFIG_SPI_BCM2835AUX=y
CONFIG_GPIO_SYSFS=y
CONFIG_SENSORS_RASPBERRYPI_HWMON=m
CONFIG_THERMAL=y
CONFIG_BCM2711_THERMAL=y
CONFIG_BCM2835_THERMAL=y
CONFIG_WATCHDOG=y
CONFIG_BCM2835_WDT=y
CONFIG_MFD_SYSCON=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_GPIO=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_DRM=y
CONFIG_DRM_V3D=y
CONFIG_DRM_VC4=y
CONFIG_DRM_SIMPLEDRM=y
CONFIG_DRM_SSD130X=y
CONFIG_DRM_SSD130X_I2C=y
CONFIG_FB=y
CONFIG_FB_SSD1307=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_BCM2835_SOC_I2S=y
CONFIG_USB=y
CONFIG_USB_OTG=y
CONFIG_USB_STORAGE=y
CONFIG_USB_DWC2=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_GADGET=y
CONFIG_USB_ETH=m
CONFIG_USB_ETH_EEM=y
CONFIG_USB_G_SERIAL=m
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_IPROC=y
CONFIG_MMC_BCM2835=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_LEDS_TRIGGER_CAMERA=y
CONFIG_DMADEVICES=y
CONFIG_DMA_BCM2835=y
CONFIG_STAGING=y
CONFIG_FB_TFT=y
CONFIG_FB_TFT_SSD1306=y
CONFIG_SND_BCM2835=m
CONFIG_VIDEO_BCM2835=m
CONFIG_CLK_RASPBERRYPI=y
CONFIG_MAILBOX=y
CONFIG_BCM2835_MBOX=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_RASPBERRYPI_POWER=y
CONFIG_PWM=y
CONFIG_PWM_BCM2835=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_FANOTIFY=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_MISC_FILESYSTEMS is not set
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_NFSD=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
# CONFIG_XZ_DEC_ARM is not set
# CONFIG_XZ_DEC_ARMTHUMB is not set
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=32
CONFIG_PRINTK_TIME=y
CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
CONFIG_DEBUG_FS=y
CONFIG_KGDB=y
CONFIG_KGDB_KDB=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_STACK_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_STRICT_DEVMEM=y
CONFIG_TEST_KSTRTOX=y

View File

@@ -1,12 +0,0 @@
# /etc/network/interfaces - Common network configuration
#
# This file is part of the shared rootfs overlay and provides a
# sensible default network configuration for all Raspberry Pi projects.
# Projects can override this by placing their own version in their
# project-specific overlay (which is applied after this one).
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

69
board/raspberrypi/post-build.sh Executable file
View File

@@ -0,0 +1,69 @@
#!/bin/sh
# post_build.sh - Common post-build script for Raspberry Pi
#
# Called by Buildroot after assembling the target rootfs.
# Arguments:
# $1 = path to the target rootfs directory (e.g., output/target)
#
# Environment:
# BR2_EXTERNAL_RPI_COMMON_PATH = path to this external tree
#
# Use this script for:
# - Fixing file permissions
# - Creating symlinks
# - Generating config files that depend on build-time variables
# - Stripping unnecessary files from the rootfs
#
# Do NOT use this for:
# - Installing packages (use rootfs overlay or a package .mk instead)
# - Modifying files outside $1
# Add usb_modeswitch mdev rule
grep -q "usb_modeswitch" "$TARGET_DIR/etc/mdev.conf" || \
echo '$PRODUCT=bda/1a2b.* root:root 0660 */lib/mdev/rtl8821cu_usb_modeswitch.sh' >> "$TARGET_DIR/etc/mdev.conf"
# Add wlan_setup mdev rule
grep -q "wlan_setup" "$TARGET_DIR/etc/mdev.conf" || \
echo '$PRODUCT=bda/c820.* root:root 0660 */lib/mdev/wlan_setup.sh' >> "$TARGET_DIR/etc/mdev.conf"
# Add wlan0 configuration
grep -q "iface wlan0" "$TARGET_DIR/etc/network/interfaces" || \
cat >> "$TARGET_DIR/etc/network/interfaces" << 'EOF'
auto wlan0
iface wlan0 inet dhcp
pre-up ip link set wlan0 up
pre-up wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
EOF
# Generate /etc/build-info with details about this build
build_user="$(id -un)"
build_host="$(hostname)"
build_date="$(date '+%Y-%m-%d %H:%M:%S %z')"
# Determine the git revision the same way the Linux kernel does:
# prefer a tag (git describe), fall back to the short hash, and append
# "-dirty" if tracked files are modified or there are untracked files.
build_rev="unknown"
if [ -n "$BR2_EXTERNAL_RPI_COMMON_PATH" ] && \
git -C "$BR2_EXTERNAL_RPI_COMMON_PATH" rev-parse --is-inside-work-tree >/dev/null 2>&1; then
git_dir="$BR2_EXTERNAL_RPI_COMMON_PATH"
build_rev="$(git -C "$git_dir" describe --always --tags 2>/dev/null || \
git -C "$git_dir" rev-parse --short HEAD 2>/dev/null || \
echo unknown)"
# Refresh the index so diff-index doesn't report stale stat info
git -C "$git_dir" update-index --refresh >/dev/null 2>&1 || :
dirty=""
if ! git -C "$git_dir" diff-index --quiet HEAD -- 2>/dev/null; then
dirty="-dirty"
elif [ -n "$(git -C "$git_dir" ls-files --others --exclude-standard 2>/dev/null)" ]; then
dirty="-dirty"
fi
build_rev="${build_rev}${dirty}"
fi
cat > "$TARGET_DIR/etc/build-info" << EOF
Built by: ${build_user}@${build_host}
Build date: ${build_date}
Revision: ${build_rev}
EOF

View File

@@ -20,6 +20,10 @@ if [ ! -e "${GENIMAGE_CFG}" ]; then
FILES+=( "${i#${BINARIES_DIR}/}" )
done
for i in "${BINARIES_DIR}"/*.dtbo; do
FILES+=( "${i#${BINARIES_DIR}/}" )
done
FILES+=( "u-boot.bin" )
FILES+=( "zImage" )
FILES+=( "extlinux/" )

View File

@@ -1,34 +0,0 @@
#!/bin/sh
# post_build.sh - Common post-build script for Raspberry Pi
#
# Called by Buildroot after assembling the target rootfs.
# Arguments:
# $1 = path to the target rootfs directory (e.g., output/target)
#
# Environment:
# BR2_EXTERNAL_RPI_COMMON_PATH = path to this external tree
#
# Use this script for:
# - Fixing file permissions
# - Creating symlinks
# - Generating config files that depend on build-time variables
# - Stripping unnecessary files from the rootfs
#
# Do NOT use this for:
# - Installing packages (use rootfs overlay or a package .mk instead)
# - Modifying files outside $1
set -e
TARGET_DIR="$1"
# Example: ensure /etc/hostname exists with a default value
if [ ! -f "${TARGET_DIR}/etc/hostname" ]; then
echo "rpi-common" > "${TARGET_DIR}/etc/hostname"
fi
# Example: remove unnecessary documentation to save space
rm -rf "${TARGET_DIR}/usr/share/man"
rm -rf "${TARGET_DIR}/usr/share/doc"
echo ">>> Common post-build script completed"

View File

@@ -0,0 +1,9 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQSl9RVGjxEE1Z6qDY21KA6tmgLqacnk
vKc1kSkID/EbnevNtVCsiXFnz3+8SVhwN40LvsGTYCvpvY1rfdbEMuQ5AAAAqN1fGILdXx
iCAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKX1FUaPEQTVnqoN
jbUoDq2aAuppyeS8pzWRKQgP8Rud6821UKyJcWfPf7xJWHA3jQu+wZNgK+m9jWt91sQy5D
kAAAAgW9F8JZ52i66TzRFQXijQ9fCZNKoQvYLQNbFsRTtouyYAAAAOcm9vdEBidWlsZHJv
b3QBAg==
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKX1FUaPEQTVnqoNjbUoDq2aAuppyeS8pzWRKQgP8Rud6821UKyJcWfPf7xJWHA3jQu+wZNgK+m9jWt91sQy5Dk= root@buildroot

View File

@@ -0,0 +1,7 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACBum+4jD3lEmZe0zInr6m0FoTfijCtR3ja59pYjpYVJNwAAAJg/TeMTP03j
EwAAAAtzc2gtZWQyNTUxOQAAACBum+4jD3lEmZe0zInr6m0FoTfijCtR3ja59pYjpYVJNw
AAAEASEHCJMowIsJDYg06NfQl9vQG6xGMEjSbiYJJMtRJNS26b7iMPeUSZl7TMievqbQWh
N+KMK1HeNrn2liOlhUk3AAAADnJvb3RAYnVpbGRyb290AQIDBAUGBw==
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG6b7iMPeUSZl7TMievqbQWhN+KMK1HeNrn2liOlhUk3 root@buildroot

View File

@@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCpRgSaPyq4pKLSUrHKPOH9zF2dVEo686f+oZIOVWMuMHw858T2AAu+kstMtPVsAcCY+HZHdCbRp1yh1l9UV3GdrpW8eex413wzpf7yHsil2CIbfheVY43Qrw3E34etw8bMqoNBxZpHmZEFtDC18DcdtBHaVycrHYQRM6SgbTG++TeVDL33bP+BREEK6cAvbUcJbaV96w7M8CtJAfy1xKOMHgeOggoaymrg3jBZqJ1VHrdu3jYbAuH+DrNMNPVKYk/61LP4+9FLswPpyHFZgvLswMdE5bd/s92cfwn6ovOOty4gwfd25w14VYfxpDnEMuLP4afUCF9cqf577v1St8YJYzc/v4O+MnILLORCJz07hCXw5rvPSYkk3bDMDK4UVGPgiSvkHZDVXgL50xHFvjGPkhLbM/iUzm/zp8IOCu8LLbBKOUWP6e5wpfPiS4pfS1bWwLHeQbxmiHH7ogzgKTnr8hg0wGbJHbFINL76Mq+gQI4ALshD8r8/WQ21QWPhlSc= root@buildroot

View File

@@ -0,0 +1,4 @@
network={
ssid="Gabriel_2G"
psk="gabrielwifi"
}

View File

@@ -0,0 +1,3 @@
#!/bin/sh
[ "$ACTION" = "add" ] || exit 0
usb_modeswitch -v 0bda -p 1a2b -c /usr/share/usb_modeswitch/0bda:1a2b &

View File

@@ -0,0 +1,13 @@
#!/bin/sh
case "$ACTION" in
bind)
[ -e /sys/class/net/wlan0 ] || exit 0
ifdown wlan0 2>/dev/null
killall wpa_supplicant 2>/dev/null
ifup wlan0
;;
remove|unbind)
ifdown wlan0 2>/dev/null
killall wpa_supplicant 2>/dev/null
;;
esac

View File

@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN91vSBSoQ6Xlvohjp6cu4IkL83KKEx//BLgQdvbukHR gabriel@gabriel-a65

View File

@@ -0,0 +1,10 @@
--- a/board/raspberrypi/rpi/rpi.env
+++ b/board/raspberrypi/rpi/rpi.env
@@ -75,6 +75,7 @@
scriptaddr=0x05400000
pxefile_addr_r=0x05500000
fdt_addr_r=0x05600000
+fdtoverlay_addr_r=0x056A0000
ramdisk_addr_r=0x05700000
boot_targets=mmc usb pxe dhcp

View File

@@ -1,34 +1,56 @@
BR2_arm=y
BR2_arm1176jzf_s=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_GLIBC_STABLE=y
BR2_GLOBAL_PATCH_DIR="board/raspberrypi/patches"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y
BR2_BINUTILS_VERSION_2_45_X=y
BR2_GCC_VERSION_15_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_HOST_GDB=y
BR2_GDB_VERSION_16=y
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt $(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/device_table.txt"
BR2_SYSTEM_DHCP="eth0"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi/post-build.sh"
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/rootfs-overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi/post-build.sh $(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,21b410140c47ffab5668399f6f143c7d7b935c8b)/linux-21b410140c47ffab5668399f6f143c7d7b935c8b.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi"
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.74"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/linux_defconfig"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2835-rpi-b-plus broadcom/bcm2708-rpi-b-plus"
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2835-rpi-b-plus broadcom/bcm2835-rpi-zero-w"
BR2_LINUX_KERNEL_CUSTOM_DTS_DIR="$(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/dtoverlay/"
BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_XZ=y
BR2_PACKAGE_GDB=y
BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI=y
BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_BT=y
BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_WIFI=y
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y
BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="$(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/config_common.txt"
BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE="$(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/cmdline_common.txt"
# BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS is not set
BR2_PACKAGE_USB_MODESWITCH_DATA=y
BR2_PACKAGE_LIBGPIOD2=y
BR2_PACKAGE_LIBGPIOD2_TOOLS=y
BR2_PACKAGE_IPERF3=y
BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA3=y
BR2_PACKAGE_HTOP=y
BR2_PACKAGE_KMOD=y
BR2_PACKAGE_KMOD_TOOLS=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_PATCH="$(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/uboot-patches/"
BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_RPI_COMMON_PATH)/board/raspberrypi/uboot_defconfig"
BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
@@ -37,3 +59,4 @@ BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_KMOD_XZ=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_GFXCANVAS=y

View File

@@ -0,0 +1,14 @@
config BR2_PACKAGE_GFXCANVAS
bool "gfxcanvas"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_13
help
Small C++ framebuffer graphics application that draws an
info screen (date/time, hostname, network addresses) on a
Linux framebuffer device. Intended for SSD1306-class OLEDs
exposed as /dev/fbN via fbtft.
https://git.gmlima.com/Gabriel/GfxCanvas
comment "gfxcanvas needs a toolchain w/ C++, gcc >= 13"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_13

View File

@@ -0,0 +1,60 @@
#!/bin/sh
#
# Start gfxcanvas info display
#
DAEMON="gfxcanvas"
DAEMON_PATH="/usr/bin/$DAEMON"
DAEMON_ARGS="/dev/fb1"
PIDFILE="/var/run/$DAEMON.pid"
start() {
printf 'Starting %s: ' "$DAEMON"
# shellcheck disable=SC2086
start-stop-daemon -S -q -m -b -p "$PIDFILE" \
-x "$DAEMON_PATH" -- $DAEMON_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
stop() {
printf 'Stopping %s: ' "$DAEMON"
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
rm -f "$PIDFILE"
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
restart() {
stop
sleep 1
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $?

View File

@@ -0,0 +1,20 @@
################################################################################
#
# gfxcanvas
#
################################################################################
GFXCANVAS_VERSION = 0.2
GFXCANVAS_SITE = https://git.gmlima.com/Gabriel/GfxCanvas.git
GFXCANVAS_SITE_METHOD = git
GFXCANVAS_LICENSE = GPL-3.0
GFXCANVAS_LICENSE_FILES = LICENSE
GFXCANVAS_CONF_OPTS = -DPROJECT_NAME=gfxcanvas
define GFXCANVAS_INSTALL_INIT_SYSV
$(INSTALL) -D -m 0755 $(GFXCANVAS_PKGDIR)/S99gfxcanvas \
$(TARGET_DIR)/etc/init.d/S99gfxcanvas
endef
$(eval $(cmake-package))