diff --git a/device/testing/device-raspberry-pi5/95-vchiq-permissions.rules b/device/testing/device-raspberry-pi5/95-vchiq-permissions.rules new file mode 100644 index 000000000..1237f5fed --- /dev/null +++ b/device/testing/device-raspberry-pi5/95-vchiq-permissions.rules @@ -0,0 +1 @@ +SUBSYSTEM=="vchiq", GROUP="video", MODE="0660" diff --git a/device/testing/device-raspberry-pi5/APKBUILD b/device/testing/device-raspberry-pi5/APKBUILD new file mode 100644 index 000000000..fb037c5c8 --- /dev/null +++ b/device/testing/device-raspberry-pi5/APKBUILD @@ -0,0 +1,68 @@ +# Maintainer: winbo-yml-exe +# Reference: +pkgname=device-raspberry-pi5 +pkgver=1 +pkgrel=0 +pkgdesc="Raspberry Pi 5" +url="https://postmarketos.org" +license="MIT" +arch="aarch64" +options="!check !archcheck" +depends="postmarketos-base raspberrypi-bootloader linux-rpi" +makedepends="devicepkg-dev" +subpackages=" + $pkgname-nonfree-firmware:nonfree_firmware + $pkgname-openrc + $pkgname-plasma-bigscreen:plasma_bigscreen + " +source=" + deviceinfo + modules-initfs + usercfg.txt + cmdline.txt + 95-vchiq-permissions.rules + enforce-platform.sh + " + +build() { + devicepkg_build $startdir $pkgname +} + +package() { + devicepkg_package $startdir $pkgname + install -Dm644 "$srcdir"/usercfg.txt "$pkgdir"/boot/usercfg.txt + install -Dm644 "$srcdir"/cmdline.txt "$pkgdir"/boot/cmdline.txt + install -Dm644 "$srcdir"/95-vchiq-permissions.rules \ + "$pkgdir"/etc/udev/rules.d/95-vchiq-permissions.rules + install -Dm755 "$srcdir"/enforce-platform.sh -t "$pkgdir"/etc/profile.d/ +} + +nonfree_firmware() { + pkgdesc="WiFi/Bluetooth firmware" + depends="linux-firmware-brcm" + mkdir "$subpkgdir" +} + +openrc() { + install_if="$pkgname=$pkgver-r$pkgrel openrc" + install="$subpkgname.post-install $subpkgname.post-upgrade" + + mkdir -p "$subpkgdir" +} + +plasma_bigscreen() { + pkgdesc="$pkgdesc (Plasma Bigscreen)" + install_if="$pkgname plasma-bigscreen" + + amove etc/profile.d +} + + +sha512sums=" +52a562c316e540a5f746f566f51cf6cc6455932c747606543c8a40b067b6add50348b9342b35d96ff0b0d0955bcabbe9b1d07c30a81ec82f118c39c1a5d08034 deviceinfo +e3515cf9f41807917eac1f7663e0131bd18783824facf15f2bb0381635bf6d9a0c334f3786b6fb76d01469de6449878c871f8b747f45e9e3cee77699905cf319 modules-initfs +4e832421e47dd0faf443a7a949aae83cc6d4a80fd816df5c6d9d72ac4ae23f803863b9b63903a14b18ae585e6abc5c8703376a003967b74dc30040dc544aa2e9 usercfg.txt +ae3de0b8fec07d3a283dc3c06bf8678eec1e65c9faf0b7f4fdc9fb92751e324d1f8e2fb224dbbf561b7e5a6fb34769bfa1657858375f74b101a130d78e0737e2 cmdline.txt +7e5505cb07d5b4a81bd28443d508336b5c547356538f1c06f91ed93ad0d7d456d4f74f1d24df5a2e08c17e74f0a66607352ac4874e967e9a91dfec9522d2d58d 95-vchiq-permissions.rules +5ebdd05414792b82073a6453517c19458863809cdfb25e7d8857030c1feb69cbebc02c5309e6a14373125d83e5e673a20f2006520a34148af17219fb1863dd95 enforce-platform.sh +" diff --git a/device/testing/device-raspberry-pi5/cmdline.txt b/device/testing/device-raspberry-pi5/cmdline.txt new file mode 100644 index 000000000..7603d36f8 --- /dev/null +++ b/device/testing/device-raspberry-pi5/cmdline.txt @@ -0,0 +1 @@ +modules=loop,squashfs,sd-mod,usb-storage quiet dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 diff --git a/device/testing/device-raspberry-pi5/device-raspberry-pi5-openrc.post-install b/device/testing/device-raspberry-pi5/device-raspberry-pi5-openrc.post-install new file mode 100644 index 000000000..2fc9041fc --- /dev/null +++ b/device/testing/device-raspberry-pi5/device-raspberry-pi5-openrc.post-install @@ -0,0 +1,3 @@ +#!/bin/sh + +rc-update add swclock boot diff --git a/device/testing/device-raspberry-pi5/device-raspberry-pi5-openrc.post-upgrade b/device/testing/device-raspberry-pi5/device-raspberry-pi5-openrc.post-upgrade new file mode 120000 index 000000000..a8afe9575 --- /dev/null +++ b/device/testing/device-raspberry-pi5/device-raspberry-pi5-openrc.post-upgrade @@ -0,0 +1 @@ +./device-raspberry-pi5-openrc.post-install \ No newline at end of file diff --git a/device/testing/device-raspberry-pi5/deviceinfo b/device/testing/device-raspberry-pi5/deviceinfo new file mode 100644 index 000000000..e936a5515 --- /dev/null +++ b/device/testing/device-raspberry-pi5/deviceinfo @@ -0,0 +1,22 @@ +# Reference: +# Please use double quotes only. You can source this file in shell scripts. + +deviceinfo_format_version="0" +deviceinfo_name="Raspberry Pi 5" +deviceinfo_manufacturer="Raspberry Pi" +deviceinfo_codename="raspberry-pi5" +deviceinfo_year="2023" +deviceinfo_arch="aarch64" + +# Device related +deviceinfo_gpu_accelerated="true" +deviceinfo_chassis="embedded" +deviceinfo_keyboard="true" +deviceinfo_external_storage="true" +deviceinfo_screen_width="1920" +deviceinfo_screen_height="1080" +deviceinfo_mesa_driver="vc4" + +# Bootloader related +deviceinfo_flash_method="none" +deviceinfo_boot_filesystem="fat16" diff --git a/device/testing/device-raspberry-pi5/enforce-platform.sh b/device/testing/device-raspberry-pi5/enforce-platform.sh new file mode 100644 index 000000000..8cd346bdd --- /dev/null +++ b/device/testing/device-raspberry-pi5/enforce-platform.sh @@ -0,0 +1 @@ +export BIGSCREEN_HARDWARE_PLATFORM=RPI5 diff --git a/device/testing/device-raspberry-pi5/modules-initfs b/device/testing/device-raspberry-pi5/modules-initfs new file mode 100644 index 000000000..848e31fd1 --- /dev/null +++ b/device/testing/device-raspberry-pi5/modules-initfs @@ -0,0 +1 @@ +vc4 diff --git a/device/testing/device-raspberry-pi5/usercfg.txt b/device/testing/device-raspberry-pi5/usercfg.txt new file mode 100644 index 000000000..6154a7e5b --- /dev/null +++ b/device/testing/device-raspberry-pi5/usercfg.txt @@ -0,0 +1,51 @@ +boot_delay=0 + +arm_control=0x200 + +kernel=vmlinuz-rpi +initramfs initramfs + +gpu_mem=256 + +# uncomment line to enable serial on ttyS0 +# NOTE: This fixes the core_freq to 250Mh +#enable_uart=1 + +# to take advantage of your high speed sd card +dtparam=sd_overclock=100 + +# use drm backend ( for weston and wayland ) +dtoverlay=vc4-kms-v3d + +# have a properly sized image +disable_overscan=1 + +# for sound over HDMI +hdmi_drive=2 + +# rotate the HDMI display +# 0 => no rotation +# 1 => 90 degrees clockwise +# 2 => 180 degrees clockwise +# 3 => 270 degrees clockwise +#display_hdmi_rotate=0 + +# Uncomment some or all of these to enable the optional hardware interfaces +#dtparam=i2c_arm=on +#dtparam=i2s=on +#dtparam=spi=on + +# Enable audio (loads snd_bcm2835) +dtparam=audio=on + +# custom CVT mode for HDMI +# see https://www.raspberrypi.org/documentation/configuration/config-txt/video.md +#hdmi_group=2 +#hdmi_mode=87 +#hdmi_cvt 800 480 60 6 0 0 0 + +# Automatically enable Bluetooth without having to use btattach +# Note that the Pi's Bluetooth interface is connected via hardware UART; +# if you intend to use it for other purposes (for example, serial debugging) +# comment out the line below. +dtparam=krnbt=on