FDS/OS 1.0

This commit is contained in:
2026-09-21 22:29:23 +08:00
commit 99bc3d15c5
430 changed files with 34876 additions and 0 deletions
View File
+68
View File
@@ -0,0 +1,68 @@
# Native early userspace, immutable SYSTEM and DATA support.
CONFIG_LOCALVERSION="-fds1"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_RD_GZIP=y
CONFIG_RD_LZ4=y
CONFIG_RD_ZSTD=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_EFI_PARTITION=y
CONFIG_EROFS_FS=y
CONFIG_EROFS_FS_ZIP=y
CONFIG_EXT4_FS=y
CONFIG_FAT_FS=y
CONFIG_VFAT_FS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PCI=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_UAS=y
CONFIG_PCI=y
CONFIG_PCIE_BRCMSTB=y
CONFIG_PCI_MSI=y
CONFIG_MFD_RP1=y
CONFIG_PINCTRL_RP1=y
CONFIG_COMMON_CLK_RP1=y
CONFIG_BCM2712_IOMMU=y
CONFIG_BLK_DEV_NVME=y
CONFIG_HID=y
CONFIG_HID_GENERIC=y
CONFIG_USB_HID=y
CONFIG_INPUT_EVDEV=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_DRM=y
# VC4 requires these audio core interfaces even when sound devices are optional.
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_DRM_VC4=y
CONFIG_DRM_VC4_HDMI_CEC=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FW_LOADER=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
# The companion CH341 SPI interface must remain available to dasungd.
# CONFIG_SPI_CH341 is not set
# Generic ARM VM drivers let us test this build without pretending to emulate Pi firmware.
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_PCI_HOST_GENERIC=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BLK=y
# Avoid random module signing inputs and large development-only debug artifacts.
# Release authentication covers the complete immutable kernel/module image.
# CONFIG_MODULE_SIG is not set
CONFIG_DEBUG_INFO_NONE=y
# CONFIG_DEBUG_INFO_BTF is not set
+63
View File
@@ -0,0 +1,63 @@
# Based on rpi5-kernel at the pinned Void commit; upstream stays unchanged.
pkgname=fds-kernel
version=6.12.87
revision=1
_githash=ae4d75fb36deba0fe1a986d9bfae65755e082dd0
archs="aarch64"
wrksrc="linux-${_githash}"
hostmakedepends="perl kmod openssl-devel bc bison flex xz python3 cpio"
short_desc="FDS Raspberry Pi 5 kernel with built-in boot drivers"
maintainer="FDS/OS maintainers"
license="GPL-2.0-only"
homepage="https://github.com/raspberrypi/linux"
distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
checksum=432afe0cbb9370fc9329f67d44bdc892b8e2417a60dd33de8f0cd22e9c697c62
python_version=3
nodebug=yes
nostrip=yes
noverifyrdeps=yes
noshlibprovides=yes
export KBUILD_BUILD_TIMESTAMP="Thu Jan 1 00:00:00 UTC 1970"
export KBUILD_BUILD_USER=fds
export KBUILD_BUILD_HOST=fds-builder
_cross="CROSS_COMPILE=aarch64-linux-gnu-"
do_configure() {
make ARCH=arm64 ${_cross} bcm2712_defconfig
scripts/kconfig/merge_config.sh -m .config "${FILESDIR}/fds.config"
make ARCH=arm64 ${_cross} olddefconfig
# Kconfig can silently drop impossible requests. Verify every delta entry.
while IFS= read -r setting; do
case "$setting" in
CONFIG_*=*) grep -Fqx "$setting" .config || return 1 ;;
'# CONFIG_'*' is not set')
local symbol="${setting#\# }"
symbol="${symbol% is not set}"
! grep -Eq "^${symbol}=[ym]$" .config || return 1 ;;
esac
done <"${FILESDIR}/fds.config"
}
do_build() {
export LDFLAGS=
make ARCH=arm64 ${_cross} ${makejobs} Image modules dtbs
}
do_install() {
local release
release=$(make -s ARCH=arm64 ${_cross} kernelrelease)
vinstall arch/arm64/boot/Image 644 boot kernel_2712.img
vinstall .config 644 boot config-fds
vinstall System.map 644 boot System.map-fds
vmkdir boot/overlays
vcopy "arch/arm64/boot/dts/broadcom/bcm2712-*.dtb" boot
vcopy "arch/arm64/boot/dts/overlays/*.dtbo" boot/overlays
vinstall arch/arm64/boot/dts/overlays/README 644 boot/overlays
make ARCH=arm64 ${_cross} ${makejobs} INSTALL_MOD_PATH="${DESTDIR}/usr" \
INSTALL_MOD_STRIP=1 DEPMOD=true modules_install
rm -f "${DESTDIR}/usr/lib/modules/${release}/build" "${DESTDIR}/usr/lib/modules/${release}/source"
depmod -b "${DESTDIR}/usr" "$release"
vmkdir usr/share/fds
printf '%s\n' "$release" >"${DESTDIR}/usr/share/fds/kernel-release"
}