├── .github ├── FUNDING.yml ├── auto-merge.yml ├── dependabot.yml ├── release-template.md └── workflows │ ├── ci.yml │ ├── release.yml │ └── snapshot.yml ├── .gitignore ├── .markdownlint.yml ├── .yamllint ├── CODE_OF_CONDUCT.md ├── LICENSE ├── Makefile ├── README.md ├── buildroot-external ├── Buildroot.config ├── Busybox.config ├── Config.ext.in ├── Config.in ├── board │ ├── generic-x86_64 │ │ ├── kernel.config │ │ ├── post-build.sh │ │ ├── post-image.sh │ │ ├── post-release.sh │ │ └── users_table.txt │ ├── rpi3 │ │ ├── boot.cmd │ │ ├── bootEnv.txt │ │ ├── cmdline.txt │ │ ├── config.txt │ │ ├── genimage.cfg │ │ ├── kernel-patches │ │ ├── kernel.config │ │ ├── post-build.sh │ │ ├── post-image.sh │ │ ├── post-release.sh │ │ ├── uboot.config │ │ └── users_table.txt │ ├── rpi4 │ │ ├── boot.cmd │ │ ├── bootEnv.txt │ │ ├── cmdline.txt │ │ ├── config.txt │ │ ├── genimage.cfg │ │ ├── kernel-patches │ │ │ ├── 0001-ARM-dts-bcm283x-add-compatible-picked-up-by-U-Boot.patch │ │ │ └── 0002-USB-storage-Increase-maximum-length-of-the-quirks-st.patch │ │ ├── kernel.config │ │ ├── post-build.sh │ │ ├── post-image.sh │ │ ├── post-release.sh │ │ ├── uboot.config │ │ └── users_table.txt │ ├── rpi5 │ │ ├── boot.cmd │ │ ├── bootEnv.txt │ │ ├── cmdline.txt │ │ ├── config.txt │ │ ├── genimage.cfg │ │ ├── kernel-patches │ │ ├── kernel.config │ │ ├── post-build.sh │ │ ├── post-image.sh │ │ ├── post-release.sh │ │ ├── uboot.config │ │ └── users_table.txt │ └── tinkerboard │ │ ├── boot.cmd │ │ ├── bootEnv.txt │ │ ├── cmdline.txt │ │ ├── genimage.cfg │ │ ├── kernel-patches │ │ ├── 0001-Revert-ARM-dts-rockchip-use-DMA-channels-for-UARTs-f.patch │ │ ├── 0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch │ │ ├── 0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch │ │ ├── 0004-RK3288-DTSI-rk3288.dtsi-Add-missing-SPI2-pinctrl.patch │ │ ├── 0005-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch │ │ ├── 0006-drivers-mmc-dw-mci-rockchip-Handle-ASUS-Tinkerboard-.patch │ │ ├── 0007-ARM-dts-rockchip-Add-Bluetooth-to-rk3288-tinker.patch │ │ └── 0008-usb-audio-add-ASUS-TinkerBoard-s-ALC4040.patch │ │ ├── kernel.config │ │ ├── kernel_defconfig │ │ ├── post-build.sh │ │ ├── post-image.sh │ │ ├── post-release.sh │ │ ├── uboot.config │ │ └── users_table.txt ├── bootloader │ └── uboot.config ├── configs │ ├── generic-x86_64.config │ ├── rpi3.config │ ├── rpi4.config │ ├── rpi5.config │ └── tinkerboard.config ├── external.desc ├── external.mk ├── kernel │ ├── 6.12 │ │ ├── device-support-pci.config │ │ ├── device-support.config │ │ ├── global.config │ │ ├── security-arm32.config │ │ ├── security-arm64.config │ │ ├── security-x86_32.config │ │ ├── security-x86_64.config │ │ └── security.config │ └── 6.6 │ │ ├── device-support-pci.config │ │ ├── device-support.config │ │ ├── global.config │ │ ├── security-arm32.config │ │ ├── security-arm64.config │ │ ├── security-x86_32.config │ │ ├── security-x86_64.config │ │ └── security.config ├── package │ ├── hotkeyd │ │ ├── Config.in │ │ └── hotkeyd.mk │ ├── multilib32 │ │ ├── Config.in │ │ ├── external │ │ │ ├── Buildroot.config │ │ │ ├── Config.ext.in │ │ │ ├── Config.in │ │ │ ├── configs │ │ │ │ ├── multilib32_arm_a53-64k.config │ │ │ │ ├── multilib32_arm_a53.config │ │ │ │ ├── multilib32_arm_a72.config │ │ │ │ ├── multilib32_arm_a76-16k.config │ │ │ │ ├── multilib32_arm_a76.config │ │ │ │ └── multilib32_i686.config │ │ │ ├── external.desc │ │ │ └── external.mk │ │ └── multilib32.mk │ ├── numlockx │ │ ├── Config.in │ │ └── numlockx.mk │ ├── phodav │ │ ├── Config.in │ │ └── phodav.mk │ ├── qt-kiosk-browser │ │ ├── Config.in │ │ └── qt-kiosk-browser.mk │ ├── qt-webengine-kiosk │ │ ├── 0001-webengine-fix.patch │ │ ├── Config.in │ │ └── qt-webengine-kiosk.mk │ ├── qutselect │ │ ├── Config.in │ │ ├── qutselect.hash │ │ └── qutselect.mk │ ├── remmina │ │ ├── Config.in │ │ ├── remmina.hash │ │ └── remmina.mk │ ├── rpi-eeprom │ │ ├── Config.in │ │ ├── rpi-eeprom.hash │ │ └── rpi-eeprom.mk │ ├── spice-gtk │ │ ├── Config.in │ │ └── spice-gtk.mk │ ├── thinlinc │ │ ├── Config.in │ │ ├── thinlinc.hash │ │ └── thinlinc.mk │ ├── virt-viewer │ │ ├── Config.in │ │ └── virt-viewer.mk │ ├── xprintidle │ │ ├── Config.in │ │ └── xprintidle.mk │ └── yoe-kiosk-browser │ │ ├── Config.in │ │ └── yoe-kiosk-browser.mk ├── patches │ ├── linux-headers │ │ └── linux-headers.hash │ ├── linux │ │ └── linux.hash │ ├── psplash │ │ ├── 0001-colors.patch │ │ ├── 0002-bar.patch │ │ ├── 0003-multiline.patch │ │ ├── logo-hzdr.png │ │ └── logo-thinroot.png │ ├── rpi-firmware │ │ └── rpi-firmware.hash │ └── webkitgtk │ │ └── 0001-ARM-NEON-fix.patch ├── rootfs-overlay │ ├── bin │ │ ├── bash │ │ ├── idle-check.sh │ │ ├── pa-udev-update-sink.sh │ │ ├── pa-update-default-sink.sh │ │ ├── qutselect-disconnect.sh │ │ ├── qutselect-lock.sh │ │ ├── qutselect-startup.sh │ │ ├── umounter.sh │ │ └── wm-startup.sh │ ├── etc │ │ ├── X11 │ │ │ ├── Xsession │ │ │ ├── Xsession.d │ │ │ │ ├── 00-xrandr-setup │ │ │ │ ├── 80numlock-setup │ │ │ │ ├── 90qt-a11y │ │ │ │ ├── 95dbus_update-activation-env │ │ │ │ ├── 96pulseaudio │ │ │ │ └── 99x11-common_start │ │ │ ├── Xsession.options │ │ │ └── xorg.conf.d │ │ │ │ ├── 00-keyboard.conf │ │ │ │ ├── 00-modules.conf │ │ │ │ ├── 01-mouse.conf │ │ │ │ ├── 10-evdev.conf │ │ │ │ ├── 10-serverlayout.conf │ │ │ │ ├── 12-screen.conf │ │ │ │ ├── 15-dri.conf │ │ │ │ ├── 20-intel.conf │ │ │ │ ├── 50-vmmouse.conf │ │ │ │ ├── 70-synaptics.conf │ │ │ │ └── 90-input.conf │ │ ├── default │ │ │ └── nodm │ │ ├── dhcpcd.conf │ │ ├── fstab │ │ ├── hotkeyd.conf │ │ ├── init.d │ │ │ ├── S42LoadNetFiles │ │ │ ├── S49chronyd │ │ │ ├── S60hotkeyd │ │ │ ├── S98crond │ │ │ ├── S99SetupLEDs │ │ │ ├── rcK │ │ │ └── rcS │ │ ├── inittab │ │ ├── ld.so.cache │ │ ├── ld.so.conf │ │ ├── network │ │ │ └── interfaces │ │ ├── profile.d │ │ │ ├── 0000-default-locale.sh │ │ │ ├── aliases.sh │ │ │ └── envdir.sh │ │ ├── pulse │ │ │ ├── client.conf │ │ │ ├── daemon.conf │ │ │ ├── default.pa │ │ │ └── system.pa │ │ ├── sysctl.conf │ │ ├── usbmount │ │ │ ├── mount.d │ │ │ │ └── 00_create_model_symlink │ │ │ ├── umount.d │ │ │ │ └── 00_remove_model_symlink │ │ │ └── usbmount.conf │ │ └── xdg │ │ │ └── openbox │ │ │ └── rc.xml │ ├── lib │ │ ├── dhcpcd │ │ │ └── dhcpcd-run-hooks │ │ └── udev │ │ │ └── rules.d │ │ │ ├── 99-truser-rights.rules │ │ │ ├── 99-usbnet-persist.rules │ │ │ └── usbmount.rules │ └── usr │ │ └── share │ │ └── usbmount │ │ └── usbmount └── scripts │ ├── check-dotconfig.py │ └── kconfiglib.py ├── buildroot-patches ├── 0001-openbox.patch ├── 0001-openbox │ └── buildroot │ │ └── package │ │ └── openbox │ │ ├── openbox.mk │ │ └── openbox.mk.orig ├── 0002-linux-firmware.patch ├── 0002-linux-firmware │ └── buildroot │ │ └── package │ │ └── linux-firmware │ │ ├── Config.in │ │ ├── Config.in.orig │ │ ├── linux-firmware.mk │ │ └── linux-firmware.mk.orig ├── 0003-dhcpcd-glibc241-fix.patch ├── 0003-dhcpcd-glibc241-fix │ └── buildroot │ │ └── package │ │ └── dhcpcd │ │ ├── dhcpcd.hash │ │ ├── dhcpcd.hash.orig │ │ ├── dhcpcd.mk │ │ └── dhcpcd.mk.orig ├── 0004-ARM-16k-pagesize.patch ├── 0004-ARM-16k-pagesize │ └── buildroot │ │ └── arch │ │ ├── Config.in.arm │ │ ├── Config.in.arm.orig │ │ ├── arch.mk │ │ └── arch.mk.orig ├── 0007-psplash.patch ├── 0007-psplash │ └── buildroot │ │ └── package │ │ └── psplash │ │ ├── psplash.mk │ │ └── psplash.mk.orig ├── 0008-rpi-firmware.patch ├── 0008-rpi-firmware │ └── buildroot │ │ └── package │ │ └── rpi-firmware │ │ ├── Config.in │ │ ├── Config.in.orig │ │ ├── rpi-firmware.mk │ │ └── rpi-firmware.mk.orig ├── 0009-qt6base-xcb-cursor.patch ├── 0009-qt6base-xcb-cursor │ └── buildroot │ │ └── package │ │ └── qt6 │ │ └── qt6base │ │ ├── Config.in │ │ ├── Config.in.orig │ │ ├── qt6base.mk │ │ └── qt6base.mk.orig ├── 0010-lib32-integration.patch ├── 0010-lib32-integration │ └── buildroot │ │ ├── Makefile │ │ ├── Makefile.orig │ │ ├── support │ │ └── scripts │ │ │ ├── check-bin-arch │ │ │ └── check-bin-arch.orig │ │ ├── system │ │ ├── Config.in │ │ ├── Config.in.orig │ │ ├── system.mk │ │ └── system.mk.orig │ │ └── toolchain │ │ └── toolchain-external │ │ ├── pkg-toolchain-external.mk │ │ └── pkg-toolchain-external.mk.orig ├── 0014-qt5webengine-py311-fix.patch ├── 0014-qt5webengine-py311-fix │ └── buildroot │ │ └── package │ │ └── qt5 │ │ └── qt5webengine-chromium │ │ ├── 0003-python311-fixes.patch │ │ └── 0003-python311-fixes.patch.orig ├── 0018-linux-intree-overlays.patch ├── 0018-linux-intree-overlays │ └── buildroot │ │ └── linux │ │ ├── Config.in │ │ ├── Config.in.orig │ │ ├── linux.mk │ │ └── linux.mk.orig ├── 0019-qt5webkit-fixes.patch ├── 0019-qt5webkit-fixes │ └── buildroot │ │ └── package │ │ └── qt5 │ │ └── qt5webkit │ │ ├── 0009-uint32-fixes-gcc13.patch │ │ ├── 0009-uint32-fixes-gcc13.patch.orig │ │ ├── qt5webkit.mk │ │ └── qt5webkit.mk.orig ├── 0021-webkitgtk-minibrowser.patch ├── 0021-webkitgtk-minibrowser │ └── buildroot │ │ └── package │ │ └── webkitgtk │ │ ├── 0000-minibrowser-zoom-level.patch │ │ └── 0000-minibrowser-zoom-level.patch.orig ├── 0022-webkitgtk-fixes.patch ├── 0022-webkitgtk-fixes │ └── buildroot │ │ └── package │ │ └── webkitgtk │ │ ├── 0000-mediasourceprivategstreamer.patch │ │ └── 0000-mediasourceprivategstreamer.patch.orig └── create_patches.sh ├── release └── .gitempty ├── scripts ├── update-buildroot.sh ├── update-kernel-upstream.sh ├── update-qutselect.sh ├── update-rpi-eeprom.sh ├── update-rpi-firmware.sh ├── update-rpi-kernel.sh └── update-thinlinc.sh └── tftpboot ├── Boot\x64\wdsmgfw.efi ├── Boot\x64\wdsmgfw.efi� ├── README.md ├── boot ├── menu-main.ipxe ├── net.cfg ├── net.ipxe ├── net.theme └── pxe-banner.png ├── clonezilla └── README.md ├── ipxe.i386.efi ├── ipxe.lkrn ├── ipxe.pxe ├── ipxe.x86_64.efi ├── ldlinux.c32 ├── libcom32.c32 ├── libutil.c32 ├── lpxelinux.0 ├── memdisk ├── memtest └── README.md ├── menu.c32 ├── pxeboot.0 ├── pxechn.c32 ├── pxelinux.0 ├── pxelinux.cfg ├── 01-94-c6-91-10-97-81 ├── 01-d4-5d-df-04-d9-c8 ├── default ├── localboot ├── menu │ ├── admin.cfg │ ├── global-pxe.cfg │ ├── ipxe.cfg │ ├── localboot.cfg │ ├── main.cfg │ ├── thinroot-beta.cfg │ └── thinroot.cfg └── thinroot ├── sysrescue └── README.md └── thinroot ├── README.md ├── conf ├── qutselect.default.slist ├── qutselect.groupA.slist ├── qutselect.motd ├── qutselect.slist ├── thinroot.conf-HOSTNAME ├── thinroot.conf-c03fd56a426c ├── thinroot.conf.group-A ├── thinroot.conf.group-B ├── thinroot.conf.group-noblank ├── thinroot.conf.group-noidle ├── thinroot.conf.network └── thinroot.hosts ├── overlay.pkg ├── overlay ├── etc │ ├── dropbear │ │ ├── dropbear_ecdsa_host_key │ │ └── dropbear_ed25519_host_key │ ├── shadow │ └── ssh_known_hosts └── root │ └── .ssh │ ├── authorized_keys │ └── known_hosts ├── overlay_gen.sh ├── pkgs ├── chrome-getLatest.sh ├── chrome.pkg └── zoom.pkg ├── thinroot-beta.img └── thinroot.img /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | --- 3 | github: jens-maus # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | ko_fi: jensmaus 5 | custom: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RAQSDY9YNZVCL 6 | -------------------------------------------------------------------------------- /.github/auto-merge.yml: -------------------------------------------------------------------------------- 1 | # Configure here which dependency updates should be merged automatically. 2 | # The recommended configuration is the following: 3 | --- 4 | - match: 5 | # Only merge patches for production dependencies 6 | dependency_type: production 7 | update_type: "semver:patch" 8 | - match: 9 | # Except for security fixes, here we allow minor patches 10 | dependency_type: production 11 | update_type: "security:minor" 12 | - match: 13 | # and development dependencies can have a minor update, too 14 | dependency_type: development 15 | update_type: "semver:minor" 16 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | --- 2 | version: 2 3 | updates: 4 | # Maintain dependencies for GitHub Actions 5 | - package-ecosystem: "github-actions" 6 | directory: "/" 7 | schedule: 8 | interval: "daily" 9 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | # thinRoot Continious Integration Check Workflow 2 | # yamllint disable rule:truthy 3 | --- 4 | name: CI Build 5 | 6 | on: 7 | push: 8 | paths-ignore: 9 | - '**.md' 10 | pull_request: 11 | paths-ignore: 12 | - '**.md' 13 | 14 | # default read-only permission 15 | permissions: 16 | contents: read 17 | 18 | jobs: 19 | skip_check: 20 | name: Duplicate Check 21 | runs-on: ubuntu-24.04 22 | outputs: 23 | should_skip: ${{ steps.check.outputs.should_skip }} 24 | steps: 25 | - id: check 26 | uses: fkirc/skip-duplicate-actions@v5.3.1 27 | with: 28 | skip_after_successful_duplicate: 'true' 29 | concurrent_skipping: 'same_content_newer' 30 | 31 | linter: 32 | name: Linter Checks 33 | needs: skip_check 34 | if: ${{ needs.skip_check.outputs.should_skip != 'true' }} 35 | runs-on: ubuntu-24.04 36 | 37 | steps: 38 | - name: Checkout Code 39 | uses: actions/checkout@v4 40 | 41 | - name: Check shell scripts 42 | uses: ludeeus/action-shellcheck@2.0.0 43 | with: 44 | ignore_paths: >- 45 | buildroot-patches/0010-lib32-integration/buildroot/support/scripts 46 | env: 47 | SHELLCHECK_OPTS: -e SC3010 -e SC3014 -e SC3057 -e SC3036 -e SC3028 -e SC3020 48 | 49 | - name: Check yaml files 50 | uses: frenck/action-yamllint@v1.5 51 | 52 | - name: Check markdown files 53 | uses: avto-dev/markdown-lint@v1 54 | with: 55 | ignore: '**/node_modules/** **/codemirror/README.md' 56 | 57 | - name: Check Package consistency 58 | run: | 59 | pip install flake8 60 | make check 61 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | ._.DS_Store 3 | /build-*/ 4 | /buildroot-????.??* 5 | /download 6 | /release/*.zip 7 | /release/*.img 8 | /release/*.sha256 9 | /release/*.mf 10 | -------------------------------------------------------------------------------- /.markdownlint.yml: -------------------------------------------------------------------------------- 1 | # markdownlint YAML configuration 2 | --- 3 | 4 | # Default state for all rules 5 | default: true 6 | 7 | # ignored rules 8 | line-length: false 9 | no-inline-html: false 10 | first-line-h1: false 11 | no-emphasis-as-header: false 12 | -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | extends: default 3 | ignore: | 4 | /build-* 5 | /buildroot-* 6 | /download 7 | 8 | rules: 9 | line-length: disable 10 | -------------------------------------------------------------------------------- /buildroot-external/Config.ext.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/buildroot-external/Config.ext.in -------------------------------------------------------------------------------- /buildroot-external/Config.in: -------------------------------------------------------------------------------- 1 | # External packages 2 | source "$BR2_EXTERNAL_THINROOT_PATH/Config.ext.in" 3 | 4 | menu "Additional software" 5 | source "$BR2_EXTERNAL_THINROOT_PATH/package/qutselect/Config.in" 6 | source "$BR2_EXTERNAL_THINROOT_PATH/package/thinlinc/Config.in" 7 | source "$BR2_EXTERNAL_THINROOT_PATH/package/hotkeyd/Config.in" 8 | source "$BR2_EXTERNAL_THINROOT_PATH/package/numlockx/Config.in" 9 | source "$BR2_EXTERNAL_THINROOT_PATH/package/xprintidle/Config.in" 10 | source "$BR2_EXTERNAL_THINROOT_PATH/package/remmina/Config.in" 11 | source "$BR2_EXTERNAL_THINROOT_PATH/package/virt-viewer/Config.in" 12 | source "$BR2_EXTERNAL_THINROOT_PATH/package/spice-gtk/Config.in" 13 | source "$BR2_EXTERNAL_THINROOT_PATH/package/phodav/Config.in" 14 | source "$BR2_EXTERNAL_THINROOT_PATH/package/rpi-eeprom/Config.in" 15 | source "$BR2_EXTERNAL_THINROOT_PATH/package/qt-webengine-kiosk/Config.in" 16 | source "$BR2_EXTERNAL_THINROOT_PATH/package/qt-kiosk-browser/Config.in" 17 | source "$BR2_EXTERNAL_THINROOT_PATH/package/multilib32/Config.in" 18 | source "$BR2_EXTERNAL_THINROOT_PATH/package/yoe-kiosk-browser/Config.in" 19 | endmenu 20 | -------------------------------------------------------------------------------- /buildroot-external/board/generic-x86_64/post-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # create VERSION file 4 | echo "VERSION=${PRODUCT_VERSION}" >"${TARGET_DIR}/VERSION" 5 | echo "PRODUCT=${PRODUCT}" >>"${TARGET_DIR}/VERSION" 6 | echo "PLATFORM=generic-x86_64" >>"${TARGET_DIR}/VERSION" 7 | 8 | # remove /etc/dbus-1/system.d/pulseaudio-system.conf 9 | rm -f "${TARGET_DIR}/etc/dbus-1/system.d/pulseaudio-system.conf" 10 | rm -f "${TARGET_DIR}/usr/share/dbus-1/system.d/pulseaudio-system.conf" 11 | 12 | # remove /etc/init.d/S40xorg as not needed 13 | rm -f "${TARGET_DIR}/etc/init.d/S40xorg" 14 | 15 | # remove /lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf as it is systemd only 16 | rm -f "${TARGET_DIR}/lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf" 17 | 18 | # remove unnecessary /etc/init.d/fuse3 19 | rm -f "${TARGET_DIR}/etc/init.d/fuse3" 20 | -------------------------------------------------------------------------------- /buildroot-external/board/generic-x86_64/post-image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | -------------------------------------------------------------------------------- /buildroot-external/board/generic-x86_64/post-release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Stop on error 4 | set -e 5 | 6 | #BOARD_DIR=${1} 7 | PRODUCT=${2} 8 | PRODUCT_VERSION=${3} 9 | #BOARD=$(echo "${PRODUCT}" | cut -d'_' -f2-) 10 | 11 | # change into release dir 12 | cd ./release 13 | 14 | # copy the bzImage and create checksum 15 | cp -a "../build-${PRODUCT}/images/bzImage" "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" 16 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256" 17 | 18 | # create manifest file with checksum+sizes 19 | rm -f "thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 20 | 21 | # shellcheck disable=SC2129 22 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 23 | -------------------------------------------------------------------------------- /buildroot-external/board/generic-x86_64/users_table.txt: -------------------------------------------------------------------------------- 1 | truser 1000 truser 1000 * /home/truser /bin/sh video,audio,input,tty thinRoot main user 2 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/boot.cmd: -------------------------------------------------------------------------------- 1 | # modify bootargs, load kernel and boot it 2 | # fallback defaults 3 | setenv load_addr ${ramdisk_addr_r} 4 | setenv console "tty2" 5 | setenv loglevel "0" 6 | setenv bootfs 1 7 | setenv kernel_img "thinroot-Image" 8 | setenv initrd "thinroot-initrd" 9 | setenv usbstoragequirks "174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u,174c:55aa:u" 10 | 11 | # output where we are booting from 12 | itest.b ${devnum} == 0 && echo "U-boot loaded from SD" 13 | itest.b ${devnum} == 1 && echo "U-boot loaded from eMMC" 14 | 15 | # import environment from /boot/bootEnv.txt 16 | if test -e ${devtype} ${devnum}:${bootfs} bootEnv.txt; then 17 | load ${devtype} ${devnum}:${bootfs} ${load_addr} bootEnv.txt 18 | env import -t ${load_addr} ${filesize} 19 | fi 20 | 21 | # load devicetree 22 | fdt addr ${fdt_addr} 23 | fdt get value bootargs /chosen bootargs 24 | 25 | # set bootargs 26 | setenv rootfs_str "/dev/ram0" 27 | setenv bootargs "dwc_otg.lpm_enable=0 sdhci_bcm2708.enable_llm=0 console=${console} root=${rootfs_str} ro noswap rootfstype=ext4 fsck.repair=yes rootwait rootdelay=5 consoleblank=120 logo.nologo quiet loglevel=${loglevel} init_on_alloc=1 init_on_free=1 slab_nomerge iomem=relaxed net.ifnames=0 usb-storage.quirks=${usbstoragequirks} ${extraargs} ${bootargs}" 28 | 29 | if env exists bootserver; then 30 | echo "==== NETWORK BOOT ====" 31 | 32 | # init network 33 | dhcp 34 | setenv serverip ${bootserver} 35 | 36 | # load initramfs 37 | tftp ${load_addr} ${initrd} 38 | setenv initrd_addr_r ${load_addr} 39 | 40 | # load kernel 41 | tftp ${kernel_addr_r} ${kernel_img} 42 | else 43 | echo "==== LOCAL BOOT ====" 44 | # load initramfs 45 | load ${devtype} ${devnum}:${bootfs} ${load_addr} ${initrd} 46 | setenv initrd_addr_r ${load_addr} 47 | 48 | # load kernel 49 | setenv kernelfs ${bootfs} 50 | load ${devtype} ${devnum}:${kernelfs} ${kernel_addr_r} ${kernel_img} 51 | fi 52 | 53 | # boot kernel 54 | booti ${kernel_addr_r} ${initrd_addr_r} ${fdt_addr} 55 | 56 | echo "Boot failed, resetting..." 57 | reset 58 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/bootEnv.txt: -------------------------------------------------------------------------------- 1 | #bootserver=192.168.74.30 2 | #kernel_img=thinroot/thinroot-rpi3-kernel.img 3 | #initrd=thinroot/thinroot-rpi3.img 4 | #extraargs=BASE_PATH=http://192.168.74.30/thinroot 5 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/cmdline.txt: -------------------------------------------------------------------------------- 1 | empty 2 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/config.txt: -------------------------------------------------------------------------------- 1 | # enable aarch64 bit support 2 | arm_64bit=1 3 | 4 | # make sure to use less memory for the GPU and 5 | # all total memory available 6 | gpu_mem=128 7 | #dtoverlay=vc4-kms-v3d 8 | 9 | # Disable overscan assuming the display supports displaying the full resolution 10 | # If the text shown on the screen disappears off the edge, comment this out 11 | disable_overscan=1 12 | 13 | # enable i2c and spi 14 | dtparam=i2c_arm=on 15 | dtparam=i2c1=on 16 | dtparam=spi=on 17 | 18 | # enable the UART 19 | #enable_uart=1 20 | 21 | # switch the bluetooth UART to the miniuart 22 | # for basic bluetooth support and fix core_freq 23 | #dtoverlay=miniuart-bt 24 | #core_freq=250 25 | 26 | # for disabling bluetooth alltogether 27 | # you can uncomment the following two lines 28 | dtoverlay=disable-bt 29 | dtparam=uart1=off 30 | 31 | # disable the splash screen 32 | disable_splash=1 33 | 34 | # activating the hardware watchdog 35 | dtparam=watchdog=on 36 | 37 | # Uncomment to disable continous SD-card poll (for USB SSD) 38 | #dtparam=sd_poll_once=on 39 | 40 | # start with heartbeat on PWR led and mmc0 on ACT led 41 | dtparam=pwr_led_trigger=timer,act_led_trigger=mmc0 42 | 43 | # use fixed names for start.elf/fixup.dat 44 | start_file=start.elf 45 | fixup_file=fixup.dat 46 | 47 | # lets u-boot take over the boot process 48 | kernel=u-boot.bin 49 | 50 | # user config options shoule be put in 51 | # /boot/extraconfig.txt 52 | include extraconfig.txt 53 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/genimage.cfg: -------------------------------------------------------------------------------- 1 | image boot.vfat { 2 | vfat { 3 | extraargs = "-n bootfs" 4 | 5 | files = { 6 | "VERSION", 7 | "bcm2710-rpi-3-b.dtb", 8 | "bcm2710-rpi-3-b-plus.dtb", 9 | "bcm2710-rpi-2-b.dtb", 10 | "bcm2710-rpi-cm3.dtb", 11 | "bcm2710-rpi-zero-2.dtb", 12 | "bcm2710-rpi-zero-2-w.dtb", 13 | "cmdline.txt", 14 | "config.txt", 15 | "bootEnv.txt", 16 | "rpi-firmware/bootcode.bin", 17 | "rpi-firmware/fixup.dat", 18 | "rpi-firmware/start.elf", 19 | "overlays", 20 | "u-boot.bin", 21 | "boot.scr" 22 | } 23 | 24 | file thinroot-Image { 25 | image = "Image" 26 | } 27 | 28 | file thinroot-initrd { 29 | image = "rootfs.cpio.uboot" 30 | } 31 | } 32 | size = 512M 33 | } 34 | 35 | image sdcard.img { 36 | hdimage { 37 | disk-signature = 0xDEEDBEEF 38 | partition-table-type = "mbr" 39 | } 40 | 41 | partition boot { 42 | partition-type = 0xC 43 | bootable = "true" 44 | image = "boot.vfat" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/kernel-patches: -------------------------------------------------------------------------------- 1 | ../rpi4/kernel-patches -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/kernel.config: -------------------------------------------------------------------------------- 1 | # disable old framebuffer for video display to work 2 | # CONFIG_FB_BCM2708 is not set 3 | 4 | # disable video camera support 5 | # CONFIG_VIDEO_BCM2835_UNICAM is not set 6 | 7 | # disable touchscreen 8 | # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set 9 | 10 | # disable simple framebuffer support 11 | # CONFIG_FB_SIMPLE is not set 12 | 13 | # enable mmc support 14 | CONFIG_MMC_BCM2835=y 15 | 16 | # use pl011 serial as a kernel module and 17 | # disable serial console on amba 18 | CONFIG_SERIAL_AMBA_PL011=m 19 | # CONFIG_SERIAL_AMBA_PL011_CONSOLE is not set 20 | 21 | # disable backlight support 22 | # CONFIG_BACKLIGHT_RPI is not set 23 | 24 | # enable DRM 25 | CONFIG_DRM=y 26 | CONFIG_DRM_V3D=y 27 | CONFIG_DRM_VC4=y 28 | CONFIG_DRM_SIMPLEDRM=y 29 | 30 | # enable SND 31 | CONFIG_SOUND=y 32 | CONFIG_SND=y 33 | CONFIG_SND_SOC=y 34 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/post-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Stop on error 4 | set -e 5 | 6 | # create VERSION file 7 | echo "VERSION=${PRODUCT_VERSION}" >"${TARGET_DIR}/VERSION" 8 | echo "PRODUCT=${PRODUCT}" >>"${TARGET_DIR}/VERSION" 9 | echo "PLATFORM=rpi3" >>"${TARGET_DIR}/VERSION" 10 | 11 | # link VERSION in /boot on rootfs 12 | mkdir -p "${TARGET_DIR}/boot" 13 | ln -sf ../VERSION "${TARGET_DIR}/boot/VERSION" 14 | 15 | # remove /etc/dbus-1/system.d/pulseaudio-system.conf 16 | rm -f "${TARGET_DIR}/etc/dbus-1/system.d/pulseaudio-system.conf" 17 | rm -f "${TARGET_DIR}/usr/share/dbus-1/system.d/pulseaudio-system.conf" 18 | 19 | # remove /etc/init.d/S40xorg as not needed 20 | rm -f "${TARGET_DIR}/etc/init.d/S40xorg" 21 | 22 | # remove /etc/X11/xorg.conf.d/20-intel.conf as it will not work on rpi 23 | rm -f "${TARGET_DIR}/etc/X11/xorg.conf.d/20-intel.conf" 24 | 25 | # remove /lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf as it is systemd only 26 | rm -f "${TARGET_DIR}/lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf" 27 | 28 | # remove unnecessary /etc/init.d/fuse3 29 | rm -f "${TARGET_DIR}/etc/init.d/fuse3" 30 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/post-image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Stop on error 4 | set -e 5 | 6 | BOARD_DIR="$(dirname "$0")" 7 | #BOARD_NAME="$(basename "${BOARD_DIR}")" 8 | 9 | # Use our own cmdline.txt+config.txt 10 | cp "${BOARD_DIR}/cmdline.txt" "${BINARIES_DIR}/" 11 | cp "${BOARD_DIR}/config.txt" "${BINARIES_DIR}/" 12 | cp "${BOARD_DIR}/bootEnv.txt" "${BINARIES_DIR}/" 13 | 14 | # README needs to be present, otherwise os_prefix is not 15 | # prepended implicitly to the overlays' path, see: 16 | # https://www.raspberrypi.com/documentation/computers/config_txt.html#overlay_prefix 17 | touch "${BINARIES_DIR}/overlays/README" 2>/dev/null || true 18 | 19 | # VERSION File 20 | cp "${TARGET_DIR}/boot/VERSION" "${BINARIES_DIR}" 21 | 22 | # create *.img file using genimage 23 | support/scripts/genimage.sh -c "${BOARD_DIR}/genimage.cfg" 24 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/post-release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Stop on error 4 | set -e 5 | 6 | #BOARD_DIR=${1} 7 | PRODUCT=${2} 8 | PRODUCT_VERSION=${3} 9 | #BOARD=$(echo "${PRODUCT}" | cut -d'_' -f2-) 10 | 11 | # change into release dir 12 | cd ./release 13 | 14 | # copy the bzImage and create checksum 15 | cp -a "../build-${PRODUCT}/images/Image" "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img" 16 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img.sha256" 17 | cp -a "../build-${PRODUCT}/images/rootfs.cpio.uboot" "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" 18 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256" 19 | cp -a "../build-${PRODUCT}/images/sdcard.img" "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img" 20 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img.sha256" 21 | 22 | # create manifest file with checksum+sizes 23 | rm -f "thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 24 | 25 | # shellcheck disable=SC2129 26 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 27 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 28 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 29 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/uboot.config: -------------------------------------------------------------------------------- 1 | # keep serial enabled 2 | CONFIG_SERIAL_PRESENT=y 3 | 4 | CONFIG_USB_GADGET=y 5 | CONFIG_USB_GADGET_MANUFACTURER="RaspberryPi" 6 | CONFIG_USB_GADGET_VENDOR_NUM=0x0a5c 7 | CONFIG_USB_GADGET_PRODUCT_NUM=0x000e 8 | CONFIG_USB_GADGET_DOWNLOAD=y 9 | 10 | CONFIG_CMD_NVME=y 11 | 12 | CONFIG_USB_STORAGE=y 13 | CONFIG_USB_FUNCTION_MASS_STORAGE=y 14 | CONFIG_USB_EHCI_HCD=y 15 | CONFIG_USB_EHCI_GENERIC=y 16 | CONFIG_USB_OHCI_HCD=y 17 | 18 | CONFIG_USB_XHCI_BRCM=y 19 | 20 | CONFIG_NVME=y 21 | CONFIG_NVME_PCI=y 22 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi3/users_table.txt: -------------------------------------------------------------------------------- 1 | truser -1 truser -1 * /home/truser /bin/sh video,audio,input,tty thinRoot main user 2 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/boot.cmd: -------------------------------------------------------------------------------- 1 | # modify bootargs, load kernel and boot it 2 | # fallback defaults 3 | setenv load_addr ${ramdisk_addr_r} 4 | setenv console "tty2" 5 | setenv loglevel "0" 6 | setenv bootfs 1 7 | setenv kernel_img "thinroot-Image" 8 | setenv initrd "thinroot-initrd" 9 | setenv usbstoragequirks "174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u,174c:55aa:u" 10 | 11 | # output where we are booting from 12 | itest.b ${devnum} == 0 && echo "U-boot loaded from SD" 13 | itest.b ${devnum} == 1 && echo "U-boot loaded from eMMC" 14 | 15 | # import environment from /boot/bootEnv.txt 16 | if test -e ${devtype} ${devnum}:${bootfs} bootEnv.txt; then 17 | load ${devtype} ${devnum}:${bootfs} ${load_addr} bootEnv.txt 18 | env import -t ${load_addr} ${filesize} 19 | fi 20 | 21 | # load devicetree 22 | fdt addr ${fdt_addr} 23 | fdt get value bootargs /chosen bootargs 24 | 25 | # set bootargs 26 | setenv rootfs_str "/dev/ram0" 27 | setenv bootargs "dwc_otg.lpm_enable=0 sdhci_bcm2708.enable_llm=0 console=${console} root=${rootfs_str} ro noswap rootfstype=ext4 fsck.repair=yes rootwait rootdelay=5 consoleblank=120 logo.nologo quiet loglevel=${loglevel} init_on_alloc=1 init_on_free=1 slab_nomerge iomem=relaxed net.ifnames=0 usb-storage.quirks=${usbstoragequirks} ${extraargs} ${bootargs}" 28 | 29 | if env exists bootserver; then 30 | echo "==== NETWORK BOOT ====" 31 | 32 | # init network 33 | dhcp 34 | setenv serverip ${bootserver} 35 | 36 | # load initramfs 37 | tftp ${load_addr} ${initrd} 38 | setenv initrd_addr_r ${load_addr} 39 | 40 | # load kernel 41 | tftp ${kernel_addr_r} ${kernel_img} 42 | else 43 | echo "==== LOCAL BOOT ====" 44 | # load initramfs 45 | load ${devtype} ${devnum}:${bootfs} ${load_addr} ${initrd} 46 | setenv initrd_addr_r ${load_addr} 47 | 48 | # load kernel 49 | setenv kernelfs ${bootfs} 50 | load ${devtype} ${devnum}:${kernelfs} ${kernel_addr_r} ${kernel_img} 51 | fi 52 | 53 | # boot kernel 54 | booti ${kernel_addr_r} ${initrd_addr_r} ${fdt_addr} 55 | 56 | echo "Boot failed, resetting..." 57 | reset 58 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/bootEnv.txt: -------------------------------------------------------------------------------- 1 | #bootserver=192.168.74.30 2 | #kernel_img=thinroot/thinroot-rpi4-kernel.img 3 | #initrd=thinroot/thinroot-rpi4.img 4 | #extraargs=BASE_PATH=http://192.168.74.30/thinroot 5 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/cmdline.txt: -------------------------------------------------------------------------------- 1 | empty 2 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/config.txt: -------------------------------------------------------------------------------- 1 | # enable aarch64 bit support 2 | arm_64bit=1 3 | 4 | # enable vc4/v3d GPU dtoverlay 5 | dtoverlay=vc4-fkms-v3d 6 | 7 | # Disable overscan assuming the display supports displaying the full resolution 8 | # If the text shown on the screen disappears off the edge, comment this out 9 | disable_overscan=1 10 | 11 | # enable i2c and spi 12 | dtparam=i2c_arm=on 13 | dtparam=i2c1=on 14 | dtparam=spi=on 15 | 16 | # enable the UART 17 | #enable_uart=1 18 | 19 | # switch the bluetooth UART to the miniuart 20 | # for basic bluetooth support and fix core_freq 21 | #dtoverlay=miniuart-bt 22 | 23 | # for disabling bluetooth alltogether 24 | # you can uncomment the following two lines 25 | #dtoverlay=disable-bt 26 | #dtparam=uart1=off 27 | 28 | # disable the splash screen 29 | disable_splash=1 30 | 31 | # activating the hardware watchdog 32 | dtparam=watchdog=on 33 | 34 | # Uncomment to disable continous SD-card poll (for USB SSD) 35 | #dtparam=sd_poll_once=on 36 | 37 | # start with heartbeat on PWR led and mmc0 on ACT led 38 | dtparam=pwr_led_trigger=timer,act_led_trigger=mmc0 39 | 40 | # Enable boost from 1.5Ghz to 1.8Ghz on compatible models 41 | [pi4] 42 | arm_boost=1 43 | 44 | # special device tree options for Compute Module 4 45 | [cm4] 46 | dtoverlay=dwc2 47 | dtparam=i2c_vc=on 48 | dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi 49 | 50 | # reset to apply to all platforms 51 | [all] 52 | 53 | # use fixed names for start.elf/fixup.dat 54 | start_file=start.elf 55 | fixup_file=fixup.dat 56 | 57 | # lets u-boot take over the boot process 58 | kernel=u-boot.bin 59 | 60 | # user config options shoule be put in 61 | # /boot/extraconfig.txt 62 | include extraconfig.txt 63 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/genimage.cfg: -------------------------------------------------------------------------------- 1 | image boot.vfat { 2 | vfat { 3 | extraargs = "-n bootfs" 4 | 5 | files = { 6 | "VERSION", 7 | "bcm2711-rpi-4-b.dtb", 8 | "bcm2711-rpi-400.dtb", 9 | "bcm2711-rpi-cm4.dtb", 10 | "cmdline.txt", 11 | "config.txt", 12 | "bootEnv.txt", 13 | "overlays", 14 | "rpi-eeprom/pieeprom.upd", 15 | "rpi-eeprom/pieeprom.sig", 16 | "u-boot.bin", 17 | "boot.scr" 18 | } 19 | 20 | file fixup.dat { 21 | image = "rpi-firmware/fixup4.dat" 22 | } 23 | 24 | file start.elf { 25 | image = "rpi-firmware/start4.elf" 26 | } 27 | 28 | file thinroot-Image { 29 | image = "Image" 30 | } 31 | 32 | file thinroot-initrd { 33 | image = "rootfs.cpio.uboot" 34 | } 35 | } 36 | size = 512M 37 | } 38 | 39 | image sdcard.img { 40 | hdimage { 41 | disk-signature = 0xDEEDBEEF 42 | partition-table-type = "mbr" 43 | } 44 | 45 | partition boot { 46 | partition-type = 0xC 47 | bootable = "true" 48 | image = "boot.vfat" 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/kernel-patches/0002-USB-storage-Increase-maximum-length-of-the-quirks-st.patch: -------------------------------------------------------------------------------- 1 | From 8b7bfad7fda35949975f359c7e207bc57bc765db Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= 3 | Date: Mon, 15 Apr 2024 14:07:34 +0200 4 | Subject: [PATCH] USB: storage: Increase maximum length of the quirks string 5 | MIME-Version: 1.0 6 | Content-Type: text/plain; charset=UTF-8 7 | Content-Transfer-Encoding: 8bit 8 | 9 | Maximum length of the quirks string is 127 characters which is not sufficient 10 | for the already long list of quirky controllers in HAOS. Increase the size of 11 | the quirks variable to allow up to 255 characters. 12 | 13 | Signed-off-by: Jan Čermák 14 | --- 15 | drivers/usb/storage/usb.c | 2 +- 16 | 1 file changed, 1 insertion(+), 1 deletion(-) 17 | 18 | diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c 19 | index 7b36a3334fb34..9691e6b9fe5aa 100644 20 | --- a/drivers/usb/storage/usb.c 21 | +++ b/drivers/usb/storage/usb.c 22 | @@ -71,7 +71,7 @@ static unsigned int delay_use = 1; 23 | module_param(delay_use, uint, S_IRUGO | S_IWUSR); 24 | MODULE_PARM_DESC(delay_use, "seconds to delay before using a new device"); 25 | 26 | -static char quirks[128]; 27 | +static char quirks[256]; 28 | module_param_string(quirks, quirks, sizeof(quirks), S_IRUGO | S_IWUSR); 29 | MODULE_PARM_DESC(quirks, "supplemental list of device IDs and their quirks"); 30 | 31 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/kernel.config: -------------------------------------------------------------------------------- 1 | # disable old framebuffer for video display to work 2 | # CONFIG_FB_BCM2708 is not set 3 | 4 | # disable video camera support 5 | # CONFIG_VIDEO_BCM2835_UNICAM is not set 6 | 7 | # disable touchscreen 8 | # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set 9 | 10 | # disable simple framebuffer support 11 | # CONFIG_FB_SIMPLE is not set 12 | 13 | # enable mmc support 14 | CONFIG_MMC_BCM2835=y 15 | 16 | # use pl011 serial as a kernel module and 17 | # disable serial console on amba 18 | CONFIG_SERIAL_AMBA_PL011=m 19 | # CONFIG_SERIAL_AMBA_PL011_CONSOLE is not set 20 | 21 | # nvme support 22 | CONFIG_NVME_CORE=y 23 | CONFIG_BLK_DEV_NVME=y 24 | 25 | # disable backlight support 26 | # CONFIG_BACKLIGHT_RPI is not set 27 | 28 | # enable DRM 29 | CONFIG_DRM=y 30 | CONFIG_DRM_V3D=y 31 | CONFIG_DRM_VC4=y 32 | # CONFIG_DRM_SIMPLEDRM is not set 33 | 34 | # enable SND 35 | CONFIG_SOUND=y 36 | CONFIG_SND=y 37 | CONFIG_SND_SOC=y 38 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/post-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Stop on error 4 | set -e 5 | 6 | # create VERSION file 7 | echo "VERSION=${PRODUCT_VERSION}" >"${TARGET_DIR}/VERSION" 8 | echo "PRODUCT=${PRODUCT}" >>"${TARGET_DIR}/VERSION" 9 | echo "PLATFORM=rpi4" >>"${TARGET_DIR}/VERSION" 10 | 11 | # link VERSION in /boot on rootfs 12 | mkdir -p "${TARGET_DIR}/boot" 13 | ln -sf ../VERSION "${TARGET_DIR}/boot/VERSION" 14 | 15 | # remove /etc/dbus-1/system.d/pulseaudio-system.conf 16 | rm -f "${TARGET_DIR}/etc/dbus-1/system.d/pulseaudio-system.conf" 17 | rm -f "${TARGET_DIR}/usr/share/dbus-1/system.d/pulseaudio-system.conf" 18 | 19 | # remove /etc/init.d/S40xorg as not needed 20 | rm -f "${TARGET_DIR}/etc/init.d/S40xorg" 21 | 22 | # remove /etc/X11/xorg.conf.d/20-intel.conf as it will not work on rpi 23 | rm -f "${TARGET_DIR}/etc/X11/xorg.conf.d/20-intel.conf" 24 | 25 | # remove /lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf as it is systemd only 26 | rm -f "${TARGET_DIR}/lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf" 27 | 28 | # remove unnecessary /etc/init.d/fuse3 29 | rm -f "${TARGET_DIR}/etc/init.d/fuse3" 30 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/post-image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Stop on error 4 | set -e 5 | 6 | BOARD_DIR="$(dirname "$0")" 7 | #BOARD_NAME="$(basename "${BOARD_DIR}")" 8 | 9 | # Use our own cmdline.txt+config.txt 10 | cp "${BOARD_DIR}/cmdline.txt" "${BINARIES_DIR}/" 11 | cp "${BOARD_DIR}/config.txt" "${BINARIES_DIR}/" 12 | cp "${BOARD_DIR}/bootEnv.txt" "${BINARIES_DIR}/" 13 | 14 | # README needs to be present, otherwise os_prefix is not 15 | # prepended implicitly to the overlays' path, see: 16 | # https://www.raspberrypi.com/documentation/computers/config_txt.html#overlay_prefix 17 | touch "${BINARIES_DIR}/overlays/README" 2>/dev/null || true 18 | 19 | # VERSION File 20 | cp "${TARGET_DIR}/boot/VERSION" "${BINARIES_DIR}" 21 | 22 | # create *.img file using genimage 23 | support/scripts/genimage.sh -c "${BOARD_DIR}/genimage.cfg" 24 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/post-release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Stop on error 4 | set -e 5 | 6 | #BOARD_DIR=${1} 7 | PRODUCT=${2} 8 | PRODUCT_VERSION=${3} 9 | #BOARD=$(echo "${PRODUCT}" | cut -d'_' -f2-) 10 | 11 | # change into release dir 12 | cd ./release 13 | 14 | # copy the bzImage and create checksum 15 | cp -a "../build-${PRODUCT}/images/Image" "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img" 16 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img.sha256" 17 | cp -a "../build-${PRODUCT}/images/rootfs.cpio.uboot" "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" 18 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256" 19 | cp -a "../build-${PRODUCT}/images/sdcard.img" "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img" 20 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img.sha256" 21 | 22 | # create manifest file with checksum+sizes 23 | rm -f "thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 24 | 25 | # shellcheck disable=SC2129 26 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 27 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 28 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 29 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/uboot.config: -------------------------------------------------------------------------------- 1 | # keep serial enabled 2 | CONFIG_SERIAL_PRESENT=y 3 | 4 | CONFIG_CMD_NVME=y 5 | 6 | CONFIG_USB_STORAGE=y 7 | CONFIG_USB_FUNCTION_MASS_STORAGE=y 8 | CONFIG_USB_EHCI_HCD=y 9 | CONFIG_USB_EHCI_GENERIC=y 10 | CONFIG_USB_OHCI_HCD=y 11 | 12 | CONFIG_NVME=y 13 | CONFIG_NVME_PCI=y 14 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi4/users_table.txt: -------------------------------------------------------------------------------- 1 | truser -1 truser -1 * /home/truser /bin/sh video,audio,input,tty thinRoot main user 2 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/boot.cmd: -------------------------------------------------------------------------------- 1 | # modify bootargs, load kernel and boot it 2 | # fallback defaults 3 | setenv load_addr ${ramdisk_addr_r} 4 | setenv console "tty2" 5 | setenv loglevel "0" 6 | setenv bootfs 1 7 | setenv kernel_img "thinroot-Image" 8 | setenv initrd "thinroot-initrd" 9 | setenv usbstoragequirks "174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u,174c:55aa:u" 10 | 11 | # output where we are booting from 12 | itest.b ${devnum} == 0 && echo "U-boot loaded from SD" 13 | itest.b ${devnum} == 1 && echo "U-boot loaded from eMMC" 14 | 15 | # import environment from /boot/bootEnv.txt 16 | if test -e ${devtype} ${devnum}:${bootfs} bootEnv.txt; then 17 | load ${devtype} ${devnum}:${bootfs} ${load_addr} bootEnv.txt 18 | env import -t ${load_addr} ${filesize} 19 | fi 20 | 21 | # load devicetree 22 | fdt addr ${fdt_addr} 23 | fdt get value bootargs /chosen bootargs 24 | 25 | # set bootargs 26 | setenv rootfs_str "/dev/ram0" 27 | setenv bootargs "dwc_otg.lpm_enable=0 sdhci_bcm2708.enable_llm=0 console=${console} root=${rootfs_str} ro noswap rootfstype=ext4 fsck.repair=yes rootwait rootdelay=5 consoleblank=120 logo.nologo quiet loglevel=${loglevel} init_on_alloc=1 init_on_free=1 slab_nomerge iomem=relaxed net.ifnames=0 usb-storage.quirks=${usbstoragequirks} ${extraargs} ${bootargs}" 28 | 29 | if env exists bootserver; then 30 | echo "==== NETWORK BOOT ====" 31 | 32 | # init network 33 | dhcp 34 | setenv serverip ${bootserver} 35 | 36 | # load initramfs 37 | tftp ${load_addr} ${initrd} 38 | setenv initrd_addr_r ${load_addr} 39 | 40 | # load kernel 41 | tftp ${kernel_addr_r} ${kernel_img} 42 | else 43 | echo "==== LOCAL BOOT ====" 44 | # load initramfs 45 | load ${devtype} ${devnum}:${bootfs} ${load_addr} ${initrd} 46 | setenv initrd_addr_r ${load_addr} 47 | 48 | # load kernel 49 | setenv kernelfs ${bootfs} 50 | load ${devtype} ${devnum}:${kernelfs} ${kernel_addr_r} ${kernel_img} 51 | fi 52 | 53 | # boot kernel 54 | booti ${kernel_addr_r} ${initrd_addr_r} ${fdt_addr} 55 | 56 | echo "Boot failed, resetting..." 57 | reset 58 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/bootEnv.txt: -------------------------------------------------------------------------------- 1 | #bootserver=192.168.74.30 2 | #kernel_img=thinroot/thinroot-rpi5-kernel.img 3 | #initrd=thinroot/thinroot-rpi5.img 4 | #extraargs=BASE_PATH=http://192.168.74.30/thinroot 5 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/cmdline.txt: -------------------------------------------------------------------------------- 1 | empty 2 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/config.txt: -------------------------------------------------------------------------------- 1 | # enable aarch64 bit support 2 | arm_64bit=1 3 | 4 | # enable vc4/v3d GPU dtoverlay 5 | dtoverlay=vc4-kms-v3d 6 | 7 | # Disable overscan assuming the display supports displaying the full resolution 8 | # If the text shown on the screen disappears off the edge, comment this out 9 | disable_overscan=1 10 | 11 | # Enable DRM VC4 V3D driver 12 | dtoverlay=vc4-kms-v3d 13 | max_framebuffers=1 14 | 15 | # enable i2c and spi 16 | dtparam=i2c_arm=on 17 | dtparam=i2c1=on 18 | dtparam=spi=on 19 | 20 | # enable the UART 21 | #enable_uart=1 22 | 23 | # for disabling bluetooth alltogether 24 | # you can uncomment the following two lines 25 | #dtoverlay=disable-bt 26 | #dtparam=uart1=off 27 | 28 | # disable the splash screen 29 | disable_splash=1 30 | 31 | # activating the hardware watchdog 32 | dtparam=watchdog=on 33 | 34 | # Uncomment to disable continous SD-card poll (for USB SSD) 35 | #dtparam=sd_poll_once=on 36 | 37 | # start with heartbeat on PWR led and mmc0 on ACT led 38 | dtparam=pwr_led_trigger=timer,act_led_trigger=mmc0 39 | 40 | # lets u-boot take over the boot process 41 | kernel=u-boot.bin 42 | 43 | # user config options shoule be put in 44 | # /boot/extraconfig.txt 45 | include extraconfig.txt 46 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/genimage.cfg: -------------------------------------------------------------------------------- 1 | image boot.vfat { 2 | vfat { 3 | extraargs = "-n bootfs" 4 | 5 | files = { 6 | "VERSION", 7 | "bcm2712-rpi-5-b.dtb", 8 | "bcm2712d0-rpi-5-b.dtb", 9 | "bcm2712-rpi-500.dtb", 10 | "bcm2712-rpi-cm5-cm4io.dtb", 11 | "bcm2712-rpi-cm5-cm5io.dtb", 12 | "bcm2712-rpi-cm5l-cm4io.dtb", 13 | "bcm2712-rpi-cm5l-cm5io.dtb", 14 | "cmdline.txt", 15 | "config.txt", 16 | "bootEnv.txt", 17 | "overlays", 18 | "rpi-eeprom/pieeprom.upd", 19 | "rpi-eeprom/pieeprom.sig", 20 | "u-boot.bin", 21 | "boot.scr" 22 | } 23 | 24 | file thinroot-Image { 25 | image = "Image" 26 | } 27 | 28 | file thinroot-initrd { 29 | image = "rootfs.cpio.uboot" 30 | } 31 | } 32 | size = 512M 33 | } 34 | 35 | image sdcard.img { 36 | hdimage { 37 | disk-signature = 0xDEEDBEEF 38 | partition-table-type = "mbr" 39 | } 40 | 41 | partition boot { 42 | partition-type = 0xC 43 | bootable = "true" 44 | image = "boot.vfat" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/kernel-patches: -------------------------------------------------------------------------------- 1 | ../rpi4/kernel-patches -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/kernel.config: -------------------------------------------------------------------------------- 1 | # disable old framebuffer for video display to work 2 | # CONFIG_FB_BCM2708 is not set 3 | 4 | # disable video camera support 5 | # CONFIG_VIDEO_BCM2835_UNICAM is not set 6 | 7 | # disable touchscreen 8 | # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set 9 | 10 | # disable simple framebuffer support 11 | # CONFIG_FB_SIMPLE is not set 12 | 13 | # enable mmc support 14 | CONFIG_MMC_BCM2835=y 15 | 16 | # use pl011 serial as a kernel module and 17 | # disable serial console on amba 18 | CONFIG_SERIAL_AMBA_PL011=m 19 | # CONFIG_SERIAL_AMBA_PL011_CONSOLE is not set 20 | 21 | # nvme support 22 | CONFIG_NVME_CORE=y 23 | CONFIG_BLK_DEV_NVME=y 24 | 25 | # disable backlight support 26 | # CONFIG_BACKLIGHT_RPI is not set 27 | 28 | # enable DRM 29 | CONFIG_DRM=y 30 | CONFIG_DRM_V3D=y 31 | CONFIG_DRM_VC4=y 32 | # CONFIG_DRM_SIMPLEDRM is not set 33 | 34 | # enable SND 35 | CONFIG_SOUND=y 36 | CONFIG_SND=y 37 | CONFIG_SND_SOC=y 38 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/post-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Stop on error 4 | set -e 5 | 6 | # create VERSION file 7 | echo "VERSION=${PRODUCT_VERSION}" >"${TARGET_DIR}/VERSION" 8 | echo "PRODUCT=${PRODUCT}" >>"${TARGET_DIR}/VERSION" 9 | echo "PLATFORM=rpi5" >>"${TARGET_DIR}/VERSION" 10 | 11 | # link VERSION in /boot on rootfs 12 | mkdir -p "${TARGET_DIR}/boot" 13 | ln -sf ../VERSION "${TARGET_DIR}/boot/VERSION" 14 | 15 | # remove /etc/dbus-1/system.d/pulseaudio-system.conf 16 | rm -f "${TARGET_DIR}/etc/dbus-1/system.d/pulseaudio-system.conf" 17 | rm -f "${TARGET_DIR}/usr/share/dbus-1/system.d/pulseaudio-system.conf" 18 | 19 | # remove /etc/init.d/S40xorg as not needed 20 | rm -f "${TARGET_DIR}/etc/init.d/S40xorg" 21 | 22 | # remove /etc/X11/xorg.conf.d/20-intel.conf as it will not work on rpi 23 | rm -f "${TARGET_DIR}/etc/X11/xorg.conf.d/20-intel.conf" 24 | 25 | # remove /lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf as it is systemd only 26 | rm -f "${TARGET_DIR}/lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf" 27 | 28 | # remove unnecessary /etc/init.d/fuse3 29 | rm -f "${TARGET_DIR}/etc/init.d/fuse3" 30 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/post-image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Stop on error 4 | set -e 5 | 6 | BOARD_DIR="$(dirname "$0")" 7 | #BOARD_NAME="$(basename "${BOARD_DIR}")" 8 | 9 | # Use our own cmdline.txt+config.txt 10 | cp "${BOARD_DIR}/cmdline.txt" "${BINARIES_DIR}/" 11 | cp "${BOARD_DIR}/config.txt" "${BINARIES_DIR}/" 12 | cp "${BOARD_DIR}/bootEnv.txt" "${BINARIES_DIR}/" 13 | 14 | # README needs to be present, otherwise os_prefix is not 15 | # prepended implicitly to the overlays' path, see: 16 | # https://www.raspberrypi.com/documentation/computers/config_txt.html#overlay_prefix 17 | touch "${BINARIES_DIR}/overlays/README" 2>/dev/null || true 18 | 19 | # VERSION File 20 | cp "${TARGET_DIR}/boot/VERSION" "${BINARIES_DIR}" 21 | 22 | # create *.img file using genimage 23 | support/scripts/genimage.sh -c "${BOARD_DIR}/genimage.cfg" 24 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/post-release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Stop on error 4 | set -e 5 | 6 | #BOARD_DIR=${1} 7 | PRODUCT=${2} 8 | PRODUCT_VERSION=${3} 9 | #BOARD=$(echo "${PRODUCT}" | cut -d'_' -f2-) 10 | 11 | # change into release dir 12 | cd ./release 13 | 14 | # copy the bzImage and create checksum 15 | cp -a "../build-${PRODUCT}/images/Image" "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img" 16 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img.sha256" 17 | cp -a "../build-${PRODUCT}/images/rootfs.cpio.uboot" "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" 18 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256" 19 | cp -a "../build-${PRODUCT}/images/sdcard.img" "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img" 20 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img.sha256" 21 | 22 | # create manifest file with checksum+sizes 23 | rm -f "thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 24 | 25 | # shellcheck disable=SC2129 26 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 27 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 28 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 29 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/uboot.config: -------------------------------------------------------------------------------- 1 | CONFIG_CMD_NVME=y 2 | 3 | CONFIG_USB_STORAGE=y 4 | CONFIG_USB_FUNCTION_MASS_STORAGE=y 5 | CONFIG_USB_EHCI_HCD=y 6 | CONFIG_USB_EHCI_GENERIC=y 7 | CONFIG_USB_OHCI_HCD=y 8 | 9 | CONFIG_MMC_SDHCI_BCMSTB=y 10 | CONFIG_SERIAL_PRESENT=y 11 | 12 | CONFIG_NVME=y 13 | CONFIG_NVME_PCI=y 14 | -------------------------------------------------------------------------------- /buildroot-external/board/rpi5/users_table.txt: -------------------------------------------------------------------------------- 1 | truser -1 truser -1 * /home/truser /bin/sh video,audio,input,tty thinRoot main user 2 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/bootEnv.txt: -------------------------------------------------------------------------------- 1 | #bootserver=192.168.74.30 2 | #kernel_img=thinroot/thinroot-tinkerboard-kernel.img 3 | #initrd=thinroot/thinroot-tinkerboard.img 4 | #extraargs=BASE_PATH=http://192.168.74.30/thinroot 5 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/cmdline.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/buildroot-external/board/tinkerboard/cmdline.txt -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/genimage.cfg: -------------------------------------------------------------------------------- 1 | image boot.vfat { 2 | vfat { 3 | extraargs = "-n bootfs" 4 | 5 | files = { 6 | "VERSION", 7 | "cmdline.txt", 8 | "rk3288-tinker.dtb", 9 | "rk3288-tinker-s.dtb", 10 | "boot.scr", 11 | "bootEnv.txt" 12 | } 13 | 14 | file thinroot-Image { 15 | image = "zImage" 16 | } 17 | 18 | file thinroot-initrd { 19 | image = "rootfs.cpio.uboot" 20 | } 21 | } 22 | size = 512M 23 | } 24 | 25 | image sdcard.img { 26 | hdimage { 27 | disk-signature = 0xDEEDBEEF 28 | } 29 | 30 | partition idbloader { 31 | in-partition-table = "no" 32 | image = "idbloader.img" 33 | offset = 32K 34 | } 35 | 36 | partition u-boot { 37 | in-partition-table = "no" 38 | image = "u-boot-dtb.img" 39 | offset = 256K 40 | } 41 | 42 | partition boot { 43 | partition-type = 0xC 44 | bootable = "true" 45 | image = "boot.vfat" 46 | offset = 1M 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/kernel-patches/0001-Revert-ARM-dts-rockchip-use-DMA-channels-for-UARTs-f.patch: -------------------------------------------------------------------------------- 1 | From b4d676729c5bee4b9adb85362f6f2e32f833b6c2 Mon Sep 17 00:00:00 2001 2 | From: Stefan Agner 3 | Date: Wed, 17 Feb 2021 19:55:41 +0100 4 | Subject: [PATCH] Revert "ARM: dts: rockchip: use DMA channels for UARTs for 5 | RK3288" 6 | 7 | This reverts commit 3425fe335c29310f6628faf9a7947d07f32d8962. 8 | --- 9 | arch/arm/boot/dts/rockchip/rk3288.dtsi | 8 -------- 10 | 1 file changed, 8 deletions(-) 11 | 12 | diff --git a/arch/arm/boot/dts/rockchip/rk3288.dtsi b/arch/arm/boot/dts/rockchip/rk3288.dtsi 13 | index cb9cdaddffd4..51f1273d6beb 100644 14 | --- a/arch/arm/boot/dts/rockchip/rk3288.dtsi 15 | +++ b/arch/arm/boot/dts/rockchip/rk3288.dtsi 16 | @@ -378,8 +378,6 @@ uart0: serial@ff180000 { 17 | reg-io-width = <4>; 18 | clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 19 | clock-names = "baudclk", "apb_pclk"; 20 | - dmas = <&dmac_peri 1>, <&dmac_peri 2>; 21 | - dma-names = "tx", "rx"; 22 | pinctrl-names = "default"; 23 | pinctrl-0 = <&uart0_xfer>; 24 | status = "disabled"; 25 | @@ -393,8 +391,6 @@ uart1: serial@ff190000 { 26 | reg-io-width = <4>; 27 | clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 28 | clock-names = "baudclk", "apb_pclk"; 29 | - dmas = <&dmac_peri 3>, <&dmac_peri 4>; 30 | - dma-names = "tx", "rx"; 31 | pinctrl-names = "default"; 32 | pinctrl-0 = <&uart1_xfer>; 33 | status = "disabled"; 34 | @@ -421,8 +417,6 @@ uart3: serial@ff1b0000 { 35 | reg-io-width = <4>; 36 | clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 37 | clock-names = "baudclk", "apb_pclk"; 38 | - dmas = <&dmac_peri 7>, <&dmac_peri 8>; 39 | - dma-names = "tx", "rx"; 40 | pinctrl-names = "default"; 41 | pinctrl-0 = <&uart3_xfer>; 42 | status = "disabled"; 43 | @@ -436,8 +430,6 @@ uart4: serial@ff1c0000 { 44 | reg-io-width = <4>; 45 | clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 46 | clock-names = "baudclk", "apb_pclk"; 47 | - dmas = <&dmac_peri 9>, <&dmac_peri 10>; 48 | - dma-names = "tx", "rx"; 49 | pinctrl-names = "default"; 50 | pinctrl-0 = <&uart4_xfer>; 51 | status = "disabled"; 52 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/kernel-patches/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch: -------------------------------------------------------------------------------- 1 | From 02c7d9bb23f497993d52f5a41341ed955e6a2745 Mon Sep 17 00:00:00 2001 2 | From: "Miouyouyou (Myy)" 3 | Date: Mon, 5 Nov 2018 22:15:14 +0100 4 | Subject: [PATCH] ARM: DTS: rk3288-tinker: Defining the SPI interface 5 | 6 | Taken from, and tested by @TonyMac32 . 7 | 8 | Well, the original one was tested by him but I had to adapt the 9 | registers definitions to the new 64-bits LPAE-compliant syntax. 10 | 11 | Therefore that *might* break, along with a few other patches. 12 | 13 | Signed-off-by: Miouyouyou (Myy) 14 | [move change to rk3288-tinker.dtsi] 15 | Signed-off-by: Stefan Agner 16 | --- 17 | arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 19 +++++++++++++++++++ 18 | 1 file changed, 19 insertions(+) 19 | 20 | diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 21 | index 09618bb7d872..30430d2e64b9 100644 22 | --- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 23 | +++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 24 | @@ -483,6 +483,25 @@ &sdio0 { 25 | status = "okay"; 26 | }; 27 | 28 | +&spi2 { 29 | + max-freq = <50000000>; 30 | + status = "okay"; 31 | + 32 | + spidev@0 { 33 | + compatible = "rockchip,spi_tinker"; 34 | + reg = <0x0 0>; 35 | + spi-max-frequency = <50000000>; 36 | + spi-cpha = <1>; 37 | + }; 38 | + 39 | + spidev@1 { 40 | + compatible = "rockchip,spi_tinker"; 41 | + reg = <0x1>; 42 | + spi-max-frequency = <50000000>; 43 | + spi-cpha = <1>; 44 | + }; 45 | +}; 46 | + 47 | &tsadc { 48 | rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */ 49 | rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */ 50 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/kernel-patches/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch: -------------------------------------------------------------------------------- 1 | From bf7869033cf3caa50912cbdfa548428a6571c104 Mon Sep 17 00:00:00 2001 2 | From: Stefan Agner 3 | Date: Fri, 4 Sep 2020 21:57:55 +0200 4 | Subject: [PATCH] ARM: dts: rockchip: enable I2C1/4 on rk3288-tinker 5 | 6 | Enable I2C devices which are accessible via 40-pin header. 7 | 8 | Signed-off-by: Stefan Agner 9 | --- 10 | arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 8 ++++++++ 11 | 1 file changed, 8 insertions(+) 12 | 13 | diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 14 | index 30430d2e64b9..395afc2b2283 100644 15 | --- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 16 | +++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 17 | @@ -342,10 +342,18 @@ regulator-state-mem { 18 | }; 19 | }; 20 | 21 | +&i2c1 { 22 | + status = "okay"; 23 | +}; 24 | + 25 | &i2c2 { 26 | status = "okay"; 27 | }; 28 | 29 | +&i2c4 { 30 | + status = "okay"; 31 | +}; 32 | + 33 | &i2c5 { 34 | status = "okay"; 35 | }; 36 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/kernel-patches/0004-RK3288-DTSI-rk3288.dtsi-Add-missing-SPI2-pinctrl.patch: -------------------------------------------------------------------------------- 1 | From a0ef6a86e96920a9cf703d8c65d0126494037d37 Mon Sep 17 00:00:00 2001 2 | From: Myy Miouyouyou 3 | Date: Thu, 19 Oct 2017 21:24:47 +0200 4 | Subject: [PATCH] RK3288: DTSI: rk3288.dtsi: Add missing SPI2 pinctrl 5 | 6 | The spi2_cs1 pin reference is missing in the spi2 first pin control 7 | definition. 8 | 9 | This patch is taken from the patches provided by the ARMbian team. 10 | 11 | Signed-off-by: Myy Miouyouyou 12 | --- 13 | arch/arm/boot/dts/rockchip/rk3288.dtsi | 2 +- 14 | 1 file changed, 1 insertion(+), 1 deletion(-) 15 | 16 | diff --git a/arch/arm/boot/dts/rockchip/rk3288.dtsi b/arch/arm/boot/dts/rockchip/rk3288.dtsi 17 | index 51f1273d6beb..d8663928bfe2 100644 18 | --- a/arch/arm/boot/dts/rockchip/rk3288.dtsi 19 | +++ b/arch/arm/boot/dts/rockchip/rk3288.dtsi 20 | @@ -311,7 +311,7 @@ spi2: spi@ff130000 { 21 | dma-names = "tx", "rx"; 22 | interrupts = ; 23 | pinctrl-names = "default"; 24 | - pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>; 25 | + pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0 &spi2_cs1>; 26 | reg = <0x0 0xff130000 0x0 0x1000>; 27 | #address-cells = <1>; 28 | #size-cells = <0>; 29 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/kernel-patches/0005-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch: -------------------------------------------------------------------------------- 1 | From e828e0fc2be98e5ad20c93981681505fc97b063b Mon Sep 17 00:00:00 2001 2 | From: "Miouyouyou (Myy)" 3 | Date: Mon, 5 Nov 2018 20:16:05 +0100 4 | Subject: [PATCH] ARM: DTSI: rk3288-tinker: Improving the CPU max voltage 5 | 6 | Taken from the various patches provided by @TonyMac32 . 7 | 8 | Signed-off-by: Miouyouyou (Myy) 9 | --- 10 | arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 2 +- 11 | 1 file changed, 1 insertion(+), 1 deletion(-) 12 | 13 | diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 14 | index 395afc2b2283..c7e79e594720 100644 15 | --- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 16 | +++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 17 | @@ -184,7 +184,7 @@ vdd_cpu: DCDC_REG1 { 18 | regulator-always-on; 19 | regulator-boot-on; 20 | regulator-min-microvolt = <750000>; 21 | - regulator-max-microvolt = <1400000>; 22 | + regulator-max-microvolt = <1450000>; 23 | regulator-name = "vdd_arm"; 24 | regulator-ramp-delay = <6000>; 25 | regulator-state-mem { 26 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/kernel-patches/0007-ARM-dts-rockchip-Add-Bluetooth-to-rk3288-tinker.patch: -------------------------------------------------------------------------------- 1 | From 4e6c3d013c847f199664a3075934f5ca52d8cba4 Mon Sep 17 00:00:00 2001 2 | From: Stefan Agner 3 | Date: Tue, 10 May 2022 22:57:26 +0200 4 | Subject: [PATCH] ARM: dts: rockchip: Add Bluetooth to rk3288-tinker 5 | 6 | Enable Bluetooth support via UART0. Use the existing bindings 7 | for Realtek rtl8723bs Bluetooth device. 8 | 9 | Signed-off-by: Stefan Agner 10 | --- 11 | arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 26 +++++++++++++++++++ 12 | 1 file changed, 26 insertions(+) 13 | 14 | diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 15 | index c7e79e594720..5d261fae6e72 100644 16 | --- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 17 | +++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi 18 | @@ -386,6 +386,20 @@ bl_en: bl-en { 19 | }; 20 | }; 21 | 22 | + bluetooth { 23 | + bt_enable_pin: bt-enable-pin { 24 | + rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; 25 | + }; 26 | + 27 | + bt_device_wake_pin: bt-device-wake-pin { 28 | + rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 29 | + }; 30 | + 31 | + bt_host_wake_pin: bt-host-wake-pin { 32 | + rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; 33 | + }; 34 | + }; 35 | + 36 | buttons { 37 | pwrbtn: pwrbtn { 38 | rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 39 | @@ -518,6 +532,18 @@ &tsadc { 40 | 41 | &uart0 { 42 | status = "okay"; 43 | + pinctrl-names = "default"; 44 | + pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 45 | + uart-has-rtscts; 46 | + 47 | + bluetooth { 48 | + compatible = "realtek,rtl8723bs-bt"; 49 | + pinctrl-names = "default"; 50 | + pinctrl-0 = <&bt_device_wake_pin &bt_host_wake_pin &bt_enable_pin>; 51 | + enable-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>; 52 | + device-wake-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; 53 | + host-wake-gpios = <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>; 54 | + }; 55 | }; 56 | 57 | &uart1 { 58 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/kernel-patches/0008-usb-audio-add-ASUS-TinkerBoard-s-ALC4040.patch: -------------------------------------------------------------------------------- 1 | From f597ec583c262ed4c3264ddf661e22b503fb8a11 Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= 3 | Date: Wed, 10 Jan 2024 16:29:59 +0100 4 | Subject: [PATCH] usb-audio: add ASUS TinkerBoard's ALC4040 5 | 6 | Converted to git-series patch from the original plain git diff file 7 | buildroot-external/board/asus/tinker/patches/linux/3001_Tinkerboard-4.19-audio.patch 8 | 9 | Co-authored-by: Pascal Vizeli 10 | --- 11 | sound/usb/card.c | 8 ++++++++ 12 | 1 file changed, 8 insertions(+) 13 | 14 | diff --git a/sound/usb/card.c b/sound/usb/card.c 15 | index 1b2edc0fd2e9..3069ac5b6759 100644 16 | --- a/sound/usb/card.c 17 | +++ b/sound/usb/card.c 18 | @@ -521,6 +521,14 @@ static void usb_audio_make_shortname(struct usb_device *dev, 19 | } 20 | 21 | strim(card->shortname); 22 | + 23 | + /* Tinker Board ALC4040 CODEC */ 24 | + 25 | + if(USB_ID_VENDOR(chip->usb_id) == 0x0bda && 26 | + USB_ID_PRODUCT(chip->usb_id) == 0x481a) { 27 | + strlcat(card->shortname, " OnBoard", sizeof(card->shortname)); 28 | + } 29 | + 30 | } 31 | 32 | static void usb_audio_make_longname(struct usb_device *dev, 33 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/kernel.config: -------------------------------------------------------------------------------- 1 | CONFIG_KERNEL_LZ4=y 2 | # CONFIG_KERNEL_GZIP is not set 3 | 4 | CONFIG_MFD_RK8XX=y 5 | CONFIG_MFD_RK8XX_I2C=y 6 | CONFIG_DW_DMAC_CORE=m 7 | CONFIG_DW_DMAC=m 8 | 9 | # disable simple framebuffer support 10 | # CONFIG_FB_SIMPLE is not set 11 | 12 | # CONFIG_WERROR is not set 13 | CONFIG_DRM=y 14 | CONFIG_DRM_ROCKCHIP=y 15 | CONFIG_ROCKCHIP_DW_HDMI=y 16 | CONFIG_DRM_PANEL_SIMPLE=m 17 | 18 | CONFIG_DW_WATCHDOG=y 19 | CONFIG_CPUFREQ_DT=y 20 | CONFIG_CPUFREQ_DT_PLATDEV=y 21 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/post-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Stop on error 4 | set -e 5 | 6 | # create VERSION file 7 | echo "VERSION=${PRODUCT_VERSION}" >"${TARGET_DIR}/VERSION" 8 | echo "PRODUCT=${PRODUCT}" >>"${TARGET_DIR}/VERSION" 9 | echo "PLATFORM=tinkerboard" >>"${TARGET_DIR}/VERSION" 10 | 11 | # link VERSION in /boot on rootfs 12 | mkdir -p "${TARGET_DIR}/boot" 13 | ln -sf ../VERSION "${TARGET_DIR}/boot/VERSION" 14 | 15 | # remove /etc/dbus-1/system.d/pulseaudio-system.conf 16 | rm -f "${TARGET_DIR}/etc/dbus-1/system.d/pulseaudio-system.conf" 17 | rm -f "${TARGET_DIR}/usr/share/dbus-1/system.d/pulseaudio-system.conf" 18 | 19 | # remove /etc/init.d/S40xorg as not needed 20 | rm -f "${TARGET_DIR}/etc/init.d/S40xorg" 21 | 22 | # remove /etc/X11/xorg.conf.d/20-intel.conf as it will not work on rpi 23 | rm -f "${TARGET_DIR}/etc/X11/xorg.conf.d/20-intel.conf" 24 | 25 | # remove /lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf as it is systemd only 26 | rm -f "${TARGET_DIR}/lib/dhcpcd/dhcpcd-hooks/50-timesyncd.conf" 27 | 28 | # remove unnecessary /etc/init.d/fuse3 29 | rm -f "${TARGET_DIR}/etc/init.d/fuse3" 30 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/post-image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Stop on error 4 | set -e 5 | 6 | BOARD_DIR="$(dirname "$0")" 7 | #BOARD_NAME="$(basename "${BOARD_DIR}")" 8 | 9 | # bootEnv.txt file 10 | cp "${BOARD_DIR}/bootEnv.txt" "${BINARIES_DIR}/" 11 | 12 | # Use our own cmdline.txt 13 | cp "${BOARD_DIR}/cmdline.txt" "${BINARIES_DIR}/" 14 | 15 | # VERSION File 16 | cp "${TARGET_DIR}/boot/VERSION" "${BINARIES_DIR}" 17 | 18 | # create *.img file using genimage 19 | support/scripts/genimage.sh -c "${BOARD_DIR}/genimage.cfg" 20 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/post-release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Stop on error 4 | set -e 5 | 6 | #BOARD_DIR=${1} 7 | PRODUCT=${2} 8 | PRODUCT_VERSION=${3} 9 | #BOARD=$(echo "${PRODUCT}" | cut -d'_' -f2-) 10 | 11 | # change into release dir 12 | cd ./release 13 | 14 | # copy the bzImage and create checksum 15 | cp -a "../build-${PRODUCT}/images/zImage" "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img" 16 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img.sha256" 17 | cp -a "../build-${PRODUCT}/images/rootfs.cpio.uboot" "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" 18 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256" 19 | cp -a "../build-${PRODUCT}/images/sdcard.img" "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img" 20 | sha256sum "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img" >"thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img.sha256" 21 | 22 | # create manifest file with checksum+sizes 23 | rm -f "thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 24 | 25 | # shellcheck disable=SC2129 26 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 27 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}-kernel.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 28 | echo "$(stat -c %s "./thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img") $(cat "thinroot-${PRODUCT_VERSION}-${PRODUCT}-sdcard.img.sha256")" >>"thinroot-${PRODUCT_VERSION}-${PRODUCT}.mf" 29 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/uboot.config: -------------------------------------------------------------------------------- 1 | CONFIG_ENV_SIZE=0x1f000 2 | CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x200 3 | CONFIG_OF_LIBFDT_OVERLAY=y 4 | 5 | CONFIG_USB_GADGET=y 6 | CONFIG_USB_GADGET_MANUFACTURER="ASUS" 7 | CONFIG_USB_GADGET_VENDOR_NUM=0x0b05 8 | CONFIG_USB_GADGET_PRODUCT_NUM=0x7820 9 | CONFIG_USB_GADGET_DOWNLOAD=y 10 | 11 | # CONFIG_USB_STORAGE is not set 12 | -------------------------------------------------------------------------------- /buildroot-external/board/tinkerboard/users_table.txt: -------------------------------------------------------------------------------- 1 | truser -1 truser -1 * /home/truser /bin/sh video,audio,input,tty thinRoot main user 2 | -------------------------------------------------------------------------------- /buildroot-external/bootloader/uboot.config: -------------------------------------------------------------------------------- 1 | # CONFIG_LOCALVERSION_AUTO is not set 2 | CONFIG_DISTRO_DEFAULTS=y 3 | CONFIG_EXPERT=y 4 | # CONFIG_DISPLAY_CPUINFO is not set 5 | # CONFIG_DISPLAY_BOARDINFO is not set 6 | CONFIG_BOOTDELAY=-2 7 | CONFIG_SYS_PROMPT="ThinRoot> " 8 | CONFIG_DOS_PARTITION=y 9 | # CONFIG_ISO_PARTITION is not set 10 | # CONFIG_EFI_PARTITION is not set 11 | CONFIG_FS_EXT4=y 12 | CONFIG_FS_FAT=y 13 | # CONFIG_ENV_IS_IN_FAT is not set 14 | # CONFIG_ENV_IS_IN_EXT4 is not set 15 | # CONFIG_ENV_IS_IN_MMC is not set 16 | CONFIG_ENV_IS_NOWHERE=y 17 | # CONFIG_EFI_LOADER is not set 18 | CONFIG_CMD_SETEXPR=y 19 | CONFIG_AUTOBOOT_KEYED=y 20 | CONFIG_AUTOBOOT_PROMPT="Hit to stop autoboot in %2ds\n" 21 | CONFIG_AUTOBOOT_DELAY_STR="\x18" 22 | CONFIG_BOOT_RETRY=y 23 | CONFIG_BOOT_RETRY_TIME=20 24 | CONFIG_RESET_TO_RETRY=y 25 | CONFIG_SILENT_CONSOLE=y 26 | CONFIG_SPL_SILENT_CONSOLE=y 27 | CONFIG_TPL_SILENT_CONSOLE=y 28 | CONFIG_SILENT_U_BOOT_ONLY=y 29 | CONFIG_DISPLAY_BOARDINFO=y 30 | # CONFIG_REQUIRE_SERIAL_CONSOLE is not set 31 | # CONFIG_SERIAL_PRESENT is not set 32 | CONFIG_USB_EHCI_HCD=y 33 | CONFIG_USB_EHCI_GENERIC=y 34 | CONFIG_USB_OHCI_HCD=y 35 | # CONFIG_VIDEO_LOGO is not set 36 | CONFIG_USB_FUNCTION_MASS_STORAGE=y 37 | CONFIG_ERRNO_STR=y 38 | CONFIG_LZ4=y 39 | -------------------------------------------------------------------------------- /buildroot-external/external.desc: -------------------------------------------------------------------------------- 1 | name: THINROOT 2 | -------------------------------------------------------------------------------- /buildroot-external/external.mk: -------------------------------------------------------------------------------- 1 | include $(sort $(wildcard $(BR2_EXTERNAL_THINROOT_PATH)/package/*/*.mk)) 2 | 3 | .PHONY: linux-check-dotconfig 4 | linux-check-dotconfig: linux-check-configuration-done 5 | CC=$(TARGET_CC) LD=$(TARGET_LD) srctree=$(LINUX_SRCDIR) \ 6 | ARCH=$(if $(BR2_x86_64),x86,$(if $(BR2_aarch64),arm64,$(ARCH))) \ 7 | SRCARCH=$(if $(BR2_x86_64),x86,$(if $(BR2_aarch64),arm64,$(ARCH))) \ 8 | $(BR2_EXTERNAL_THINROOT_PATH)/scripts/check-dotconfig.py \ 9 | $(BR2_CHECK_DOTCONFIG_OPTS) \ 10 | --src-kconfig $(LINUX_SRCDIR)Kconfig \ 11 | --actual-config $(LINUX_SRCDIR).config \ 12 | $(shell echo $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE) $(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES)) 13 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.12/device-support-pci.config: -------------------------------------------------------------------------------- 1 | CONFIG_IGB=y 2 | CONFIG_IGC=m 3 | 4 | CONFIG_NET_VENDOR_ATHEROS=y 5 | CONFIG_ATL2=m 6 | CONFIG_ATL1=m 7 | CONFIG_ATL1C=m 8 | CONFIG_ATL1E=m 9 | CONFIG_ALX=m 10 | 11 | CONFIG_NET_VENDOR_BROADCOM=y 12 | CONFIG_B44=m 13 | CONFIG_BCMGENET=m 14 | CONFIG_BNX2=m 15 | CONFIG_TIGON3=m 16 | CONFIG_BNX2X=m 17 | CONFIG_BNXT=m 18 | 19 | CONFIG_BROADCOM_PHY=m 20 | 21 | CONFIG_NET_VENDOR_STMICRO=y 22 | CONFIG_STMMAC_ETH=m 23 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.12/security-arm32.config: -------------------------------------------------------------------------------- 1 | # cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings 2 | 3 | # Disallow allocating the first 32k of memory (cannot be 64k due to ARM loader). 4 | CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 5 | 6 | # For maximal userspace memory area (and maximum ASLR). 7 | CONFIG_VMSPLIT_3G=y 8 | 9 | # Make sure PXN/PAN emulation is enabled. 10 | CONFIG_CPU_SW_DOMAIN_PAN=y 11 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.12/security-arm64.config: -------------------------------------------------------------------------------- 1 | # cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings 2 | 3 | # Disallow allocating the first 32k of memory (cannot be 64k due to ARM loader). 4 | CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 5 | 6 | # Randomize position of kernel (requires UEFI RNG or bootloader support for /chosen/kaslr-seed DT property). 7 | CONFIG_RANDOMIZE_BASE=y 8 | 9 | # Make sure PAN emulation is enabled. 10 | CONFIG_ARM64_SW_TTBR0_PAN=y 11 | 12 | # Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. 13 | CONFIG_UNMAP_KERNEL_AT_EL0=y 14 | 15 | # Software Shadow Stack or PAC 16 | CONFIG_SHADOW_CALL_STACK=y 17 | 18 | # Pointer authentication (ARMv8.3 and later). If hardware actually supports it, one can 19 | # turn off CONFIG_STACKPROTECTOR_STRONG with this enabled. 20 | CONFIG_ARM64_PTR_AUTH=y 21 | CONFIG_ARM64_PTR_AUTH_KERNEL=y 22 | 23 | # Available in ARMv8.5 and later. 24 | CONFIG_ARM64_BTI=y 25 | #CONFIG_ARM64_BTI_KERNEL=y 26 | CONFIG_ARM64_MTE=y 27 | #CONFIG_KASAN=y 28 | #CONFIG_KASAN_HW_TAGS=y 29 | CONFIG_ARM64_E0PD=y 30 | 31 | # Available in ARMv8.7 and later. 32 | CONFIG_ARM64_EPAN=y 33 | 34 | ## Enable Control Flow Integrity 35 | #CONFIG_CFI_CLANG=y 36 | ## CONFIG_CFI_PERMISSIVE is not set 37 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.12/security-x86_32.config: -------------------------------------------------------------------------------- 1 | # cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings 2 | 3 | # On 32-bit kernels, require PAE for NX bit support. 4 | # CONFIG_M486 is not set 5 | # CONFIG_HIGHMEM4G is not set 6 | CONFIG_HIGHMEM64G=y 7 | CONFIG_X86_PAE=y 8 | 9 | # Disallow allocating the first 64k of memory. 10 | CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 11 | 12 | # Disable Model-Specific Register writes. 13 | # CONFIG_X86_MSR is not set 14 | 15 | # Randomize position of kernel. 16 | CONFIG_RANDOMIZE_BASE=y 17 | 18 | # Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. 19 | CONFIG_PAGE_TABLE_ISOLATION=y 20 | 21 | # Enable chip-specific IOMMU support. 22 | CONFIG_INTEL_IOMMU=y 23 | CONFIG_INTEL_IOMMU_DEFAULT_ON=y 24 | 25 | # Don't allow for 16-bit program emulation and associated LDT tricks. 26 | # CONFIG_MODIFY_LDT_SYSCALL is not set 27 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.12/security-x86_64.config: -------------------------------------------------------------------------------- 1 | # cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings 2 | 3 | # Full 64-bit means PAE and NX bit. 4 | CONFIG_X86_64=y 5 | 6 | # Disallow allocating the first 64k of memory. 7 | CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 8 | 9 | # Disable Model-Specific Register writes. 10 | # CONFIG_X86_MSR is not set 11 | 12 | # Randomize position of kernel and memory. 13 | CONFIG_RANDOMIZE_BASE=y 14 | CONFIG_RANDOMIZE_MEMORY=y 15 | 16 | # Modern libc no longer needs a fixed-position mapping in userspace, remove it as a possible target. 17 | # CONFIG_X86_VSYSCALL_EMULATION is not set 18 | CONFIG_LEGACY_VSYSCALL_NONE=y 19 | 20 | # Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. 21 | CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y 22 | 23 | # Enable chip-specific IOMMU support. 24 | CONFIG_INTEL_IOMMU=y 25 | CONFIG_INTEL_IOMMU_DEFAULT_ON=y 26 | CONFIG_INTEL_IOMMU_SVM=y 27 | CONFIG_AMD_IOMMU=y 28 | 29 | # Straight-Line-Speculation 30 | CONFIG_MITIGATION_SLS=y 31 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.6/device-support-pci.config: -------------------------------------------------------------------------------- 1 | CONFIG_IGB=y 2 | CONFIG_IGC=m 3 | 4 | CONFIG_NET_VENDOR_ATHEROS=y 5 | CONFIG_ATL2=m 6 | CONFIG_ATL1=m 7 | CONFIG_ATL1C=m 8 | CONFIG_ATL1E=m 9 | CONFIG_ALX=m 10 | 11 | CONFIG_NET_VENDOR_BROADCOM=y 12 | CONFIG_B44=m 13 | CONFIG_BCMGENET=m 14 | CONFIG_BNX2=m 15 | CONFIG_TIGON3=m 16 | CONFIG_BNX2X=m 17 | CONFIG_BNXT=m 18 | 19 | CONFIG_BROADCOM_PHY=m 20 | 21 | CONFIG_NET_VENDOR_STMICRO=y 22 | CONFIG_STMMAC_ETH=m 23 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.6/security-arm32.config: -------------------------------------------------------------------------------- 1 | # cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings 2 | 3 | # Disallow allocating the first 32k of memory (cannot be 64k due to ARM loader). 4 | CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 5 | 6 | # For maximal userspace memory area (and maximum ASLR). 7 | CONFIG_VMSPLIT_3G=y 8 | 9 | # Make sure PXN/PAN emulation is enabled. 10 | CONFIG_CPU_SW_DOMAIN_PAN=y 11 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.6/security-arm64.config: -------------------------------------------------------------------------------- 1 | # cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings 2 | 3 | # Disallow allocating the first 32k of memory (cannot be 64k due to ARM loader). 4 | CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 5 | 6 | # Randomize position of kernel (requires UEFI RNG or bootloader support for /chosen/kaslr-seed DT property). 7 | CONFIG_RANDOMIZE_BASE=y 8 | 9 | # Make sure PAN emulation is enabled. 10 | CONFIG_ARM64_SW_TTBR0_PAN=y 11 | 12 | # Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. 13 | CONFIG_UNMAP_KERNEL_AT_EL0=y 14 | 15 | # Software Shadow Stack or PAC 16 | CONFIG_SHADOW_CALL_STACK=y 17 | 18 | # Pointer authentication (ARMv8.3 and later). If hardware actually supports it, one can 19 | # turn off CONFIG_STACKPROTECTOR_STRONG with this enabled. 20 | CONFIG_ARM64_PTR_AUTH=y 21 | CONFIG_ARM64_PTR_AUTH_KERNEL=y 22 | 23 | # Available in ARMv8.5 and later. 24 | CONFIG_ARM64_BTI=y 25 | #CONFIG_ARM64_BTI_KERNEL=y 26 | CONFIG_ARM64_MTE=y 27 | #CONFIG_KASAN=y 28 | #CONFIG_KASAN_HW_TAGS=y 29 | CONFIG_ARM64_E0PD=y 30 | 31 | # Available in ARMv8.7 and later. 32 | CONFIG_ARM64_EPAN=y 33 | 34 | ## Enable Control Flow Integrity 35 | #CONFIG_CFI_CLANG=y 36 | ## CONFIG_CFI_PERMISSIVE is not set 37 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.6/security-x86_32.config: -------------------------------------------------------------------------------- 1 | # cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings 2 | 3 | # On 32-bit kernels, require PAE for NX bit support. 4 | # CONFIG_M486 is not set 5 | # CONFIG_HIGHMEM4G is not set 6 | CONFIG_HIGHMEM64G=y 7 | CONFIG_X86_PAE=y 8 | 9 | # Disallow allocating the first 64k of memory. 10 | CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 11 | 12 | # Disable Model-Specific Register writes. 13 | # CONFIG_X86_MSR is not set 14 | 15 | # Randomize position of kernel. 16 | CONFIG_RANDOMIZE_BASE=y 17 | 18 | # Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. 19 | CONFIG_PAGE_TABLE_ISOLATION=y 20 | 21 | # Enable chip-specific IOMMU support. 22 | CONFIG_INTEL_IOMMU=y 23 | CONFIG_INTEL_IOMMU_DEFAULT_ON=y 24 | 25 | # Don't allow for 16-bit program emulation and associated LDT tricks. 26 | # CONFIG_MODIFY_LDT_SYSCALL is not set 27 | -------------------------------------------------------------------------------- /buildroot-external/kernel/6.6/security-x86_64.config: -------------------------------------------------------------------------------- 1 | # cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings 2 | 3 | # Full 64-bit means PAE and NX bit. 4 | CONFIG_X86_64=y 5 | 6 | # Disallow allocating the first 64k of memory. 7 | CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 8 | 9 | # Disable Model-Specific Register writes. 10 | # CONFIG_X86_MSR is not set 11 | 12 | # Randomize position of kernel and memory. 13 | CONFIG_RANDOMIZE_BASE=y 14 | CONFIG_RANDOMIZE_MEMORY=y 15 | 16 | # Modern libc no longer needs a fixed-position mapping in userspace, remove it as a possible target. 17 | # CONFIG_X86_VSYSCALL_EMULATION is not set 18 | CONFIG_LEGACY_VSYSCALL_NONE=y 19 | 20 | # Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. 21 | CONFIG_PAGE_TABLE_ISOLATION=y 22 | 23 | # Enable chip-specific IOMMU support. 24 | CONFIG_INTEL_IOMMU=y 25 | CONFIG_INTEL_IOMMU_DEFAULT_ON=y 26 | CONFIG_INTEL_IOMMU_SVM=y 27 | CONFIG_AMD_IOMMU=y 28 | CONFIG_AMD_IOMMU_V2=y 29 | 30 | # Straight-Line-Speculation 31 | CONFIG_SLS=y 32 | -------------------------------------------------------------------------------- /buildroot-external/package/hotkeyd/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_HOTKEYD 2 | bool "hotkeyd" 3 | help 4 | Uber-small hotkey daemon for GNU/Linux 5 | 6 | https://github.com/vflyson/hotkeyd 7 | -------------------------------------------------------------------------------- /buildroot-external/package/hotkeyd/hotkeyd.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # hotkeyd 4 | # 5 | # https://github.com/vflyson/hotkeyd 6 | # 7 | ################################################################################ 8 | 9 | HOTKEYD_VERSION = 0.4.5 10 | HOTKEYD_TAG = e94e4ab50346e01ff1dcbf0f9d95bfe94a348b01 11 | HOTKEYD_SITE = $(call github,jens-maus,hotkeyd,$(HOTKEYD_TAG)) 12 | HOTKEYD_LICENSE = GPL-3.0 13 | HOTKEYD_LICENSE_FILES = LICENSE 14 | 15 | define HOTKEYD_BUILD_CMDS 16 | $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" CFLAGS="$(TARGET_CFLAGS)" -C $(@D) all 17 | endef 18 | 19 | define HOTKEYD_INSTALL_TARGET_CMDS 20 | $(INSTALL) -D -m 0755 $(@D)/hotkeyd $(TARGET_DIR)/bin/ 21 | endef 22 | 23 | $(eval $(generic-package)) 24 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_MULTILIB32 2 | bool "On a 64bit systems this package allows recompile the used toolchain for 32bit systems and stores the created libraries to /lib32,/usr/lib32 accordingly" 3 | 4 | config BR2_PACKAGE_MULTILIB32_CONFIG_FRAGMENT_FILE 5 | string "kconfig fragment file" 6 | depends on BR2_PACKAGE_MULTILIB32 7 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/Buildroot.config: -------------------------------------------------------------------------------- 1 | BR2_CCACHE=y 2 | BR2_DL_DIR="$(TOPDIR)/../download" 3 | BR2_ENABLE_LTO=y 4 | BR2_GNU_MIRROR="http://ftp.gnu.org/pub/gnu" 5 | BR2_KERNEL_HEADERS_5_15=y 6 | BR2_KERNEL_MIRROR="https://www.kernel.org/pub" 7 | BR2_OPTIMIZE_2=y 8 | BR2_RELRO_PARTIAL=y 9 | BR2_TOOLCHAIN_BUILDROOT_CXX=y 10 | 11 | # packages required as 32bit versions 12 | #BR2_PACKAGE_C_ARES=y 13 | #BR2_PACKAGE_FILE=y 14 | #BR2_PACKAGE_FONTCONFIG=y 15 | #BR2_PACKAGE_LIBGLIB2=y 16 | #BR2_PACKAGE_LIBUSB=y 17 | #BR2_PACKAGE_LIBUSB_COMPAT=y 18 | #BR2_PACKAGE_LIBUV=y 19 | #BR2_PACKAGE_LIBXMLPARSER=y 20 | #BR2_PACKAGE_LIBXMLRPCXX=y 21 | #BR2_PACKAGE_PCRE=y 22 | #BR2_PACKAGE_READLINE=y 23 | BR2_PACKAGE_OPENSSL=y 24 | BR2_PACKAGE_PCSC_LITE=y 25 | BR2_PACKAGE_PULSEAUDIO=y 26 | BR2_PACKAGE_XORG7=y 27 | BR2_PACKAGE_XLIB_LIBX11=y 28 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/Config.ext.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/buildroot-external/package/multilib32/external/Config.ext.in -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/Config.in: -------------------------------------------------------------------------------- 1 | # External packages 2 | source "$BR2_EXTERNAL_MULTILIB32_PATH/Config.ext.in" 3 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/configs/multilib32_arm_a53-64k.config: -------------------------------------------------------------------------------- 1 | BR2_arm=y 2 | BR2_cortex_a53=y 3 | BR2_ARM_PAGE_SIZE_64K=y 4 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/configs/multilib32_arm_a53.config: -------------------------------------------------------------------------------- 1 | BR2_arm=y 2 | BR2_cortex_a53=y 3 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/configs/multilib32_arm_a72.config: -------------------------------------------------------------------------------- 1 | BR2_arm=y 2 | BR2_cortex_a72=y 3 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/configs/multilib32_arm_a76-16k.config: -------------------------------------------------------------------------------- 1 | BR2_arm=y 2 | BR2_cortex_a76=y 3 | BR2_ARM_PAGE_SIZE_16K=y 4 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/configs/multilib32_arm_a76.config: -------------------------------------------------------------------------------- 1 | BR2_arm=y 2 | BR2_cortex_a76=y 3 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/configs/multilib32_i686.config: -------------------------------------------------------------------------------- 1 | BR2_x86_i686=y 2 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/external.desc: -------------------------------------------------------------------------------- 1 | name: MULTILIB32 2 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/external/external.mk: -------------------------------------------------------------------------------- 1 | include $(sort $(wildcard $(BR2_EXTERNAL_THINROOT_PATH)/package/*/*.mk)) 2 | -------------------------------------------------------------------------------- /buildroot-external/package/multilib32/multilib32.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # Multlib32 Package 4 | # 5 | ################################################################################ 6 | 7 | MULTILIB32_VERSION = 1.3.0 8 | MULTILIB32_SOURCE = 9 | 10 | define MULTILIB32_BUILD_CMDS 11 | mkdir -p $(@D)/output 12 | $(MAKE) O=$(@D)/output -C $(TOPDIR) HOSTCXX="$(HOSTCXX_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" BR2_EXTERNAL=$(MULTILIB32_PKGDIR)/external alldefconfig 13 | (cd $(@D)/output && HOSTCXX="$(HOSTCXX_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" BR2_EXTERNAL=$(MULTILIB32_PKGDIR)/external $(TOPDIR)/support/kconfig/merge_config.sh $(MULTILIB32_PKGDIR)/external/Buildroot.config $(MULTILIB32_PKGDIR)/external/configs/$(BR2_PACKAGE_MULTILIB32_CONFIG_FRAGMENT_FILE)) 14 | $(MAKE) O=$(@D)/output -C $(TOPDIR) HOSTCXX="$(HOSTCXX_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" BR2_EXTERNAL=$(MULTILIB32_PKGDIR)/external 15 | endef 16 | 17 | define MULTILIB32_INSTALL_TARGET_CMDS 18 | tar xvf $(@D)/output/images/rootfs.tar --transform='s/.\/lib\//lib32\//' -C $(TARGET_DIR)/ --wildcards --show-transformed-names "./lib/*.so*" 19 | tar xvf $(@D)/output/images/rootfs.tar --transform='s/.\/usr\/lib\//usr\/lib32\//' -C $(TARGET_DIR)/ --wildcards --show-transformed-names "./usr/lib/*.so*" 20 | mkdir -p $(TARGET_DIR)/etc/ld.so.conf.d 21 | echo -e "/lib32\n/usr/lib32\n/usr/local/lib32" >$(TARGET_DIR)/etc/ld.so.conf.d/lib32.conf 22 | if [[ $(BR2_ARCH) == "x86_64" ]]; then ln -sf ../lib32/ld-linux.so.2 $(TARGET_DIR)/lib/ ; fi 23 | if [[ $(BR2_ARCH) == "aarch64" ]]; then ln -sf ../lib32/ld-linux-armhf.so.3 $(TARGET_DIR)/lib/ ; fi 24 | endef 25 | 26 | $(eval $(generic-package)) 27 | -------------------------------------------------------------------------------- /buildroot-external/package/numlockx/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_NUMLOCKX 2 | bool "numlockx" 3 | help 4 | This little thingy allows you to start X with NumLock 5 | turned on 6 | 7 | https://github.com/rg3/numlockx 8 | -------------------------------------------------------------------------------- /buildroot-external/package/numlockx/numlockx.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # numlockx 4 | # 5 | # https://github.com/rg3/numlockx 6 | # 7 | ################################################################################ 8 | 9 | NUMLOCKX_VERSION = 1.2 10 | NUMLOCKX_TAG = 1.2 11 | NUMLOCKX_SITE = $(call github,rg3,numlockx,$(NUMLOCKX_TAG)) 12 | NUMLOCKX_LICENSE = MIT 13 | NUMLOCKX_LICENSE_FILES = LICENSE 14 | 15 | define NUMLOCKX_BUILD_CMDS 16 | $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" CFLAGS="$(TARGET_CFLAGS)" -C $(@D) all 17 | endef 18 | 19 | define NUMLOCKX_INSTALL_TARGET_CMDS 20 | $(INSTALL) -D -m 0755 $(@D)/numlockx $(TARGET_DIR)/bin/ 21 | endef 22 | 23 | $(eval $(autotools-package)) 24 | -------------------------------------------------------------------------------- /buildroot-external/package/phodav/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_PHODAV 2 | bool "phodav" 3 | select BR2_PACKAGE_LIBSOUP3 4 | help 5 | minimal WebDAV server implementation using 6 | GNOME libsoup (RFC 4918) 7 | 8 | https://gitlab.gnome.org/GNOME/phodav 9 | -------------------------------------------------------------------------------- /buildroot-external/package/phodav/phodav.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # phodav 4 | # 5 | # https://gitlab.gnome.org/GNOME/phodav 6 | # 7 | ################################################################################ 8 | 9 | PHODAV_VERSION = v3.0 10 | PHODAV_SITE = https://github.com/GNOME/phodav.git 11 | PHODAV_SITE_METHOD = git 12 | PHODAV_LICENSE = LGPL-2.1 13 | PHODAV_LICENSE_FILES = COPYING 14 | PHODAV_INSTALL_STAGING = YES 15 | 16 | PHODAV_DEPENDENCIES = libsoup3 17 | 18 | define PHODAV_TARBALL_VERSION 19 | echo $(PHODAV_VERSION) | tr -d v >$(@D)/.tarball-version 20 | endef 21 | PHODAV_POST_PATCH_HOOKS += PHODAV_TARBALL_VERSION 22 | 23 | $(eval $(meson-package)) 24 | -------------------------------------------------------------------------------- /buildroot-external/package/qt-kiosk-browser/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_QT_KIOSK_BROWSER 2 | bool "qt-kiosk-browser" 3 | select BR2_PACKAGE_QT5WEBENGINE 4 | select BR2_PACKAGE_QT5VIRTUALKEYBOARD 5 | help 6 | Simple Qt-based kiosk browser 7 | -------------------------------------------------------------------------------- /buildroot-external/package/qt-kiosk-browser/qt-kiosk-browser.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # qt-kiosk-browser 4 | # 5 | ################################################################################ 6 | 7 | QT_KIOSK_BROWSER_VERSION = 9ebcb0956179d5f671abc5f713aef81da12d852a 8 | QT_KIOSK_BROWSER_SITE = https://github.com/OSSystems/qt-kiosk-browser.git 9 | QT_KIOSK_BROWSER_SITE_METHOD = git 10 | QT_KIOSK_BROWSER_DEPENDENCIES = qt5webengine qt5virtualkeyboard 11 | QT_KIOSK_BROWSER_LICENSE = LGPL-3.0 12 | QT_KIOSK_BROWSER_LICENSE_FILES = doc/lgpl.html 13 | 14 | define QT_KIOSK_BROWSER_CONFIGURE_CMDS 15 | (cd $(@D); $(TARGET_MAKE_ENV) $(QT5_QMAKE) PREFIX=/usr) 16 | endef 17 | 18 | define QT_KIOSK_BROWSER_BUILD_CMDS 19 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) 20 | endef 21 | 22 | define QT_KIOSK_BROWSER_INSTALL_TARGET_CMDS 23 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f Makefile \ 24 | INSTALL_ROOT=$(TARGET_DIR) \ 25 | install_target 26 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ 27 | INSTALL_ROOT=$(TARGET_DIR) 28 | endef 29 | 30 | $(eval $(generic-package)) 31 | -------------------------------------------------------------------------------- /buildroot-external/package/qt-webengine-kiosk/0001-webengine-fix.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/qt-webengine-kiosk.pro b/src/qt-webengine-kiosk.pro 2 | Signed-off-by: Jens Maus 3 | 4 | Upstream: n/a 5 | 6 | index b760a9c..0b38e9b 100644 7 | --- a/src/qt-webengine-kiosk.pro 8 | +++ b/src/qt-webengine-kiosk.pro 9 | @@ -4,7 +4,7 @@ 10 | # 11 | #------------------------------------------------- 12 | 13 | -QT = core gui network widgets printsupport multimedia testlib webenginewidgets 14 | +QT = core gui network widgets printsupport multimedia testlib webenginewidgets webengine 15 | 16 | CONFIG += console link_pkgconfig c++11 17 | TARGET = qt-webengine-kiosk 18 | -------------------------------------------------------------------------------- /buildroot-external/package/qt-webengine-kiosk/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_QT_WEBENGINE_KIOSK 2 | bool "qt-webengine-kiosk" 3 | select BR2_PACKAGE_QT5WEBENGINE 4 | select BR2_PACKAGE_QT5MULTIMEDIA 5 | help 6 | Simple Qt Webengine browser 7 | -------------------------------------------------------------------------------- /buildroot-external/package/qt-webengine-kiosk/qt-webengine-kiosk.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # qt-webengine-kiosk 4 | # 5 | ################################################################################ 6 | 7 | QT_WEBENGINE_KIOSK_VERSION = 917641d337df18f751a0c2e951b7daebc6276198 8 | QT_WEBENGINE_KIOSK_SITE = https://github.com/mobileoverlord/qt-webengine-kiosk 9 | QT_WEBENGINE_KIOSK_SITE_METHOD = git 10 | QT_WEBENGINE_KIOSK_DEPENDENCIES = qt5webengine qt5multimedia 11 | QT_WEBENGINE_KIOSK_LICENSE = LGPL-3.0 12 | QT_WEBENGINE_KIOSK_LICENSE_FILES = doc/lgpl.html 13 | 14 | define QT_WEBENGINE_KIOSK_CONFIGURE_CMDS 15 | (cd $(@D); $(TARGET_MAKE_ENV) $(QT5_QMAKE) PREFIX=/usr) 16 | endef 17 | 18 | define QT_WEBENGINE_KIOSK_BUILD_CMDS 19 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) 20 | endef 21 | 22 | define QT_WEBENGINE_KIOSK_INSTALL_TARGET_CMDS 23 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src -f Makefile.qt-webengine-kiosk \ 24 | INSTALL_ROOT=$(TARGET_DIR) \ 25 | install_target 26 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ 27 | INSTALL_ROOT=$(TARGET_DIR) 28 | endef 29 | 30 | $(eval $(generic-package)) 31 | -------------------------------------------------------------------------------- /buildroot-external/package/qutselect/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_QUTSELECT 2 | bool "qutselect" 3 | select BR2_PACKAGE_QT6 4 | select BR2_PACKAGE_QT6BASE 5 | select BR2_PACKAGE_QT6BASE_GUI 6 | select BR2_PACKAGE_QT6BASE_XCB 7 | select BR2_PACKAGE_QT6X11EXTRAS 8 | select BR2_PACKAGE_QT6BASE_FONTCONFIG 9 | select BR2_PACKAGE_QT6BASE_PNG 10 | select BR2_PACKAGE_QT6BASE_WIDGETS 11 | select BR2_PACKAGE_QT6BASE_NETWORK 12 | select BR2_PACKAGE_JQ 13 | select BR2_PACKAGE_LIBCURL 14 | select BR2_PACKAGE_LIBCURL_CURL 15 | help 16 | A Qt-based (unix) terminal server selection tool 17 | 18 | https://github.com/hzdr/qutselect 19 | -------------------------------------------------------------------------------- /buildroot-external/package/qutselect/qutselect.hash: -------------------------------------------------------------------------------- 1 | # Locally computed 2 | sha256 f1b76ea0fa840d6bf504f8420384a8304afda142433be2b0f6a4be550284f445 qutselect-3.13.tar.gz 3 | -------------------------------------------------------------------------------- /buildroot-external/package/qutselect/qutselect.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # qutselect 4 | # 5 | ################################################################################ 6 | 7 | QUTSELECT_VERSION = 3.13 8 | QUTSELECT_SITE = $(call github,hzdr,qutselect,$(QUTSELECT_VERSION)) 9 | QUTSELECT_LICENSE = LGPL-3.0 10 | QUTSELECT_LICENSE_FILES = LICENSE 11 | QUTSELECT_DEPENDENCIES = qt6base jq libcurl 12 | QUTSELECT_CONF_OPTS = -DCMAKE_INSTALL_PREFIX:PATH=/ 13 | 14 | define QUTSELECT_INSTALL_TARGET_CMDS 15 | $(INSTALL) -D -m 0755 $(@D)/bin/qutselect-$(QUTSELECT_VERSION) $(TARGET_DIR)/bin/qutselect 16 | #$(INSTALL) -D -m 0644 $(@D)/qutselect.slist $(TARGET_DIR)/bin/ 17 | #$(INSTALL) -D -m 0644 $(@D)/qutselect.motd $(TARGET_DIR)/bin/ 18 | cp -R $(@D)/scripts $(TARGET_DIR)/bin/ 19 | endef 20 | 21 | $(eval $(cmake-package)) 22 | -------------------------------------------------------------------------------- /buildroot-external/package/remmina/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_REMMINA 2 | bool "remmina" 3 | select BR2_PACKAGE_CAIRO_ZLIB 4 | # select BR2_PACKAGE_AVAHI 5 | select BR2_PACKAGE_LIBGTK3 6 | select BR2_PACKAGE_LIBVNCSERVER 7 | select BR2_PACKAGE_LIBSODIUM 8 | select BR2_PACKAGE_JSON_GLIB 9 | select BR2_PACKAGE_LIBSOUP 10 | select BR2_PACKAGE_LIBRSVG 11 | select BR2_PACKAGE_HICOLOR_ICON_THEME 12 | select BR2_PACKAGE_ADWAITA_ICON_THEME 13 | select BR2_PACKAGE_SHARED_MIME_INFO 14 | help 15 | Remmina is a remote desktop client written in GTK+, aiming 16 | to be useful for system administrators and travellers, who 17 | need to work with lots of remote computers in front of either 18 | large monitors or tiny netbooks. 19 | 20 | Remmina supports multiple network protocols in an integrated 21 | and consistent user interface. 22 | 23 | Currently RDP, VNC, NX, XDMCP and SSH are supported. 24 | 25 | https://gitlab.com/Remmina/Remmina 26 | -------------------------------------------------------------------------------- /buildroot-external/package/remmina/remmina.hash: -------------------------------------------------------------------------------- 1 | sha256 d5cff95a5b25950091205099e97fd504d4c3bf3a2787f9d991599e9c0ed789db Remmina-v1.4.18.tar.gz 2 | -------------------------------------------------------------------------------- /buildroot-external/package/remmina/remmina.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # remmina 4 | # 5 | # https://gitlab.com/Remmina/Remmina 6 | # 7 | ################################################################################ 8 | 9 | REMMINA_VERSION = v1.4.18 10 | REMMINA_SOURCE = Remmina-$(REMMINA_VERSION).tar.gz 11 | REMMINA_SITE = https://gitlab.com/Remmina/Remmina/-/archive/$(REMMINA_VERSION) 12 | REMMINA_LICENSE = GPLv2+ with OpenSSL exception 13 | REMMINA_LICENSE_FILES = COPYING LICENSE LICENSE.OpenSSL 14 | 15 | REMMINA_CONF_OPTS = \ 16 | -DWITH_ICON_CACHE=ON \ 17 | -DWITH_CUPS=OFF \ 18 | -DWITH_SPICE=OFF \ 19 | -DWITH_WAYLAND=OFF \ 20 | -DWITH_PULSE=ON \ 21 | -DWITH_AVAHI=OFF \ 22 | -DWITH_APPINDICATOR=OFF \ 23 | -DWITH_GNOMEKEYRING=OFF \ 24 | -DWITH_TELEPATHY=OFF \ 25 | -DWITH_GCRYPT=OFF \ 26 | -DWITH_LIBSSH=OFF \ 27 | -DWITH_WAYLAND=OFF \ 28 | -DWITH_VTE=OFF \ 29 | -DWITH_LIBSECRET=OFF 30 | 31 | ifeq ($(call qstrip,$(BR2_ARCH)),x86_64) 32 | REMMINA_CONF_OPTS += -DWITH_SSE2=ON 33 | else ifeq ($(call qstrip,$(BR2_ARCH)),i686) 34 | REMMINA_CONF_OPTS += -DWITH_SSE2=ON 35 | endif 36 | 37 | REMMINA_DEPENDENCIES = \ 38 | libgtk3 libvncserver freerdp \ 39 | xlib_libX11 xlib_libXext xlib_libxkbfile 40 | 41 | ifeq ($(BR2_NEEDS_GETTEXT),y) 42 | REMMINA_DEPENDENCIES += gettext 43 | 44 | define REMMINA_POST_PATCH_FIXINTL 45 | $(SED) 's/$${GTK_LIBRARIES}/$${GTK_LIBRARIES} -lintl/' \ 46 | $(@D)/remmina/CMakeLists.txt 47 | endef 48 | 49 | REMMINA_POST_PATCH_HOOKS += REMMINA_POST_PATCH_FIXINTL 50 | endif 51 | 52 | $(eval $(cmake-package)) 53 | -------------------------------------------------------------------------------- /buildroot-external/package/rpi-eeprom/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_RPI_EEPROM 2 | bool "rpi-eeprom" 3 | help 4 | EEPROM bootloader firmware for Raspberry Pi 4 and Pi 5 5 | 6 | https://github.com/raspberrypi/rpi-eeprom 7 | 8 | if BR2_PACKAGE_RPI_EEPROM 9 | 10 | choice 11 | prompt "For Target" 12 | default BR2_PACKAGE_RPI_EEPROM_RPI4 13 | 14 | config BR2_PACKAGE_RPI_EEPROM_RPI4 15 | bool "Raspberry Pi 4" 16 | help 17 | For the Raspberry Pi 4 18 | 19 | config BR2_PACKAGE_RPI_EEPROM_RPI5 20 | bool "Raspberry Pi 5" 21 | help 22 | For the Raspberry Pi 5 23 | 24 | endchoice 25 | 26 | endif 27 | -------------------------------------------------------------------------------- /buildroot-external/package/rpi-eeprom/rpi-eeprom.hash: -------------------------------------------------------------------------------- 1 | # Locally computed 2 | sha256 8070f30d450f10fa9253e7a254cd3877fa4b973eb437b94d8c03e2fabc64c916 LICENSE 3 | sha256 74dc46174620ee56ab83b42c2662a679efad80c66ecd38428d21b11a0bbe080e rpi-eeprom-6c2e2d6833df14134463ea8968151f031950a21e.tar.gz 4 | -------------------------------------------------------------------------------- /buildroot-external/package/rpi-eeprom/rpi-eeprom.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # rpi-eeprom 4 | # 5 | ################################################################################ 6 | 7 | RPI_EEPROM_VERSION = 6c2e2d6833df14134463ea8968151f031950a21e 8 | RPI_EEPROM_SITE = $(call github,raspberrypi,rpi-eeprom,$(RPI_EEPROM_VERSION)) 9 | RPI_EEPROM_LICENSE = BSD-3-Clause 10 | RPI_EEPROM_LICENSE_FILES = LICENSE 11 | RPI_EEPROM_INSTALL_IMAGES = YES 12 | 13 | ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI4),y) 14 | # Raspberry Pi 4 15 | RPI_EEPROM_FIRMWARE_PATH = firmware-2711/stable/pieeprom-2025-02-11.bin 16 | else ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI5),y) 17 | # Raspberry Pi 5 18 | RPI_EEPROM_FIRMWARE_PATH = firmware-2712/stable/pieeprom-2025-03-19.bin 19 | endif 20 | 21 | define RPI_EEPROM_BUILD_CMDS 22 | $(@D)/rpi-eeprom-config $(@D)/$(RPI_EEPROM_FIRMWARE_PATH) --out $(@D)/default.conf 23 | (cat $(@D)/default.conf | grep -v ^$$; echo HDMI_DELAY=0) > $(@D)/boot.conf 24 | $(@D)/rpi-eeprom-config $(@D)/$(RPI_EEPROM_FIRMWARE_PATH) --config $(@D)/boot.conf --out $(@D)/pieeprom.upd 25 | sha256sum $(@D)/pieeprom.upd | awk '{ print $$1 }' > $(@D)/pieeprom.sig 26 | echo "ts: $$(date -u +%s)" >> $(@D)/pieeprom.sig 27 | endef 28 | 29 | define RPI_EEPROM_INSTALL_IMAGES_CMDS 30 | $(INSTALL) -D -m 0644 $(@D)/pieeprom.sig $(BINARIES_DIR)/rpi-eeprom/pieeprom.sig 31 | $(INSTALL) -D -m 0644 $(@D)/pieeprom.upd $(BINARIES_DIR)/rpi-eeprom/pieeprom.upd 32 | endef 33 | 34 | $(eval $(generic-package)) 35 | -------------------------------------------------------------------------------- /buildroot-external/package/spice-gtk/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_SPICE_GTK 2 | bool "spice-gtk" 3 | select BR2_PACKAGE_SPICE_PROTOCOL 4 | select BR2_PACKAGE_HOST_PYTHON_SIX 5 | select BR2_PACKAGE_HOST_PYTHON_PYPARSING 6 | select BR2_PACKAGE_JPEG 7 | select BR2_PACKAGE_LIBJPEG 8 | select BR2_PACKAGE_JSON_GLIB 9 | select BR2_PACKAGE_GSTREAMER1 10 | select BR2_PACKAGE_GST1_PLUGINS_BASE 11 | select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OPUS 12 | select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP 13 | select BR2_PACKAGE_GST1_PLUGINS_GOOD 14 | select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE 15 | select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUTODETECT 16 | select BR2_PACKAGE_GST1_PLUGINS_BAD 17 | select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPUS 18 | select BR2_PACKAGE_LIBCAP_NG 19 | select BR2_PACKAGE_LIBUSB 20 | select BR2_PACKAGE_USBREDIR 21 | select BR2_PACKAGE_USBUTILS 22 | select BR2_PACKAGE_LZ4 23 | select BR2_PACKAGE_PHODAV 24 | select BR2_PACKAGE_OPUS 25 | help 26 | SPICE Client library using GLib and GTK+ 27 | 28 | https://gitlab.freedesktop.org/spice/spice-gtk 29 | -------------------------------------------------------------------------------- /buildroot-external/package/spice-gtk/spice-gtk.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # spice-gtk 4 | # 5 | # https://gitlab.freedesktop.org/spice/spice-gtk 6 | # 7 | ################################################################################ 8 | 9 | SPICE_GTK_VERSION = 0.42 10 | SPICE_GTK_SOURCE = spice-gtk-$(SPICE_GTK_VERSION).tar.xz 11 | SPICE_GTK_SITE = https://www.spice-space.org/download/gtk 12 | SPICE_GTK_LICENSE = GPL-2.0 13 | SPICE_GTK_LICENSE_FILES = COPYING 14 | SPICE_GTK_INSTALL_STAGING = YES 15 | 16 | SPICE_GTK_DEPENDENCIES = \ 17 | spice-protocol \ 18 | host-python-six \ 19 | host-python-pyparsing \ 20 | jpeg \ 21 | json-glib \ 22 | gstreamer1 \ 23 | gst1-plugins-good \ 24 | gst1-plugins-bad \ 25 | gst1-plugins-base \ 26 | libcap-ng \ 27 | usbredir \ 28 | usbutils \ 29 | phodav \ 30 | opus 31 | 32 | SPICE_GTK_CONF_OPTS += -Dusb-ids-path=/usr/share/hwdata/usb.ids 33 | 34 | $(eval $(meson-package)) 35 | -------------------------------------------------------------------------------- /buildroot-external/package/thinlinc/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_THINLINC 2 | bool "thinlinc" 3 | help 4 | A X11 Remote Desktop client 5 | 6 | https://www.cendio.com/thinlinc 7 | -------------------------------------------------------------------------------- /buildroot-external/package/thinlinc/thinlinc.hash: -------------------------------------------------------------------------------- 1 | # Locally computed 2 | sha256 7d37b31a19f45044844113eb1d855935ca65578f306f95ffc6aa6521f2d12c00 tl-4.18.0-3768-client-linux-dynamic-x86_64.tar.gz 3 | sha256 cd35be934574a197cc01399e7c3a2a9e5451e42215b0aab7ea9f29771927a643 tl-4.18.0-3768-client-linux-dynamic-armhf.tar.gz 4 | -------------------------------------------------------------------------------- /buildroot-external/package/thinlinc/thinlinc.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # thinlinc 4 | # 5 | # https://www.cendio.com/thinlinc 6 | # 7 | ################################################################################ 8 | 9 | THINLINC_VERSION = 4.18.0-3768 10 | THINLINC_SITE = https://www.cendio.com/downloads/clients 11 | 12 | ifeq ($(call qstrip,$(BR2_ARCH)),x86_64) 13 | THINLINC_SOURCE = tl-$(THINLINC_VERSION)-client-linux-dynamic-x86_64.tar.gz 14 | else ifeq ($(call qstrip,$(BR2_ARCH)),aarch64) 15 | THINLINC_SOURCE = tl-$(THINLINC_VERSION)-client-linux-dynamic-armhf.tar.gz 16 | else ifeq ($(call qstrip,$(BR2_ARCH)),arm) 17 | THINLINC_SOURCE = tl-$(THINLINC_VERSION)-client-linux-dynamic-armhf.tar.gz 18 | endif 19 | 20 | define THINLINC_INSTALL_TARGET_CMDS 21 | cp -R $(@D)/bin/* $(TARGET_DIR)/bin/ 22 | cp -R $(@D)/etc/* $(TARGET_DIR)/etc/ 23 | cp -R $(@D)/lib/* $(TARGET_DIR)/lib/ 24 | ln -sf /bin/tlclient $(TARGET_DIR)/usr/bin/thinlinc 25 | endef 26 | 27 | $(eval $(generic-package)) 28 | -------------------------------------------------------------------------------- /buildroot-external/package/virt-viewer/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_VIRT_VIEWER 2 | bool "virt-viewer" 3 | select BR2_PACKAGE_CAIRO_ZLIB 4 | select BR2_PACKAGE_LIBGTK3 5 | select BR2_PACKAGE_SPICE_GTK 6 | help 7 | The virtual machine console viewer 8 | 9 | https://gitlab.com/virt-viewer/virt-viewer 10 | -------------------------------------------------------------------------------- /buildroot-external/package/virt-viewer/virt-viewer.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # virt-viewer 4 | # 5 | # https://gitlab.com/virt-viewer/virt-viewer 6 | # 7 | ################################################################################ 8 | 9 | #VIRT_VIEWER_VERSION = v11.0 10 | VIRT_VIEWER_VERSION = 82dbca46b605685ab354bf8cea7f2a2615132b39 11 | VIRT_VIEWER_SITE = https://gitlab.com/virt-viewer/virt-viewer.git 12 | VIRT_VIEWER_SITE_METHOD = git 13 | #VIRT_VIEWER_DEPENDENCIES = xlib_libXScrnSaver 14 | VIRT_VIEWER_LICENSE = GPL-2.0 15 | VIRT_VIEWER_LICENSE_FILES = COPYING 16 | 17 | VIRT_VIEWER_DEPENDENCIES = libgtk3 spice-gtk 18 | 19 | define VIRT_VIEWER_INSTALL_TARGET_CMDS 20 | $(INSTALL) -D -m 0755 $(@D)/build/src/remote-viewer $(TARGET_DIR)/bin/ 21 | endef 22 | 23 | $(eval $(meson-package)) 24 | -------------------------------------------------------------------------------- /buildroot-external/package/xprintidle/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_XPRINTIDLE 2 | bool "xprintidle" 3 | select BR2_PACKAGE_XLIB_LIBXSCRNSAVER 4 | help 5 | a utility that queries the X server for the user's idle time 6 | and prints it to stdout 7 | 8 | https://github.com/g0hl1n/xprintidle 9 | -------------------------------------------------------------------------------- /buildroot-external/package/xprintidle/xprintidle.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # xprintidle 4 | # 5 | # https://github.com/g0hl1n/xprintidle 6 | # 7 | ################################################################################ 8 | 9 | XPRINTIDLE_VERSION = 0.2.5 10 | XPRINTIDLE_SITE = $(call github,g0hl1n,xprintidle,$(XPRINTIDLE_VERSION)) 11 | XPRINTIDLE_DEPENDENCIES = xlib_libXScrnSaver 12 | XPRINTIDLE_LICENSE = GPL-2.0 13 | XPRINTIDLE_LICENSE_FILES = COPYING 14 | 15 | define XPRINTIDLE_INSTALL_TARGET_CMDS 16 | $(INSTALL) -D -m 0755 $(@D)/build/xprintidle $(TARGET_DIR)/bin/ 17 | endef 18 | 19 | $(eval $(meson-package)) 20 | -------------------------------------------------------------------------------- /buildroot-external/package/yoe-kiosk-browser/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_YOE_KIOSK_BROWSER 2 | bool "yoe-kiosk-browser" 3 | select BR2_PACKAGE_HOST_QT6TOOLS 4 | select BR2_PACKAGE_QT6WEBENGINE 5 | select BR2_PACKAGE_QT6MULTIMEDIA 6 | select BR2_PACKAGE_QT6DECLARATIVE 7 | select BR2_PACKAGE_QT6DECLARATIVE_QUICK 8 | select BR2_PACKAGE_QT6SHADERTOOLS 9 | select BR2_PACKAGE_QT6VIRTUALKEYBOARD 10 | help 11 | Simple Qt Webengine browser 12 | -------------------------------------------------------------------------------- /buildroot-external/package/yoe-kiosk-browser/yoe-kiosk-browser.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # yoe-kiosk-browser 4 | # 5 | ################################################################################ 6 | 7 | YOE_KIOSK_BROWSER_VERSION = 47846c7a62aea8317070f4a79b80cd26ded74bdd 8 | YOE_KIOSK_BROWSER_SITE = https://github.com/YoeDistro/yoe-kiosk-browser 9 | YOE_KIOSK_BROWSER_SITE_METHOD = git 10 | YOE_KIOSK_BROWSER_DEPENDENCIES = qt6base qt6declarative qt6virtualkeyboard 11 | YOE_KIOSK_BROWSER_LICENSE = LGPL-3.0 12 | 13 | #define QT_WEBENGINE_KIOSK_CONFIGURE_CMDS 14 | # (cd $(@D); $(TARGET_MAKE_ENV) $(QT5_QMAKE) PREFIX=/usr) 15 | #endef 16 | # 17 | #define QT_WEBENGINE_KIOSK_BUILD_CMDS 18 | # $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) 19 | #endef 20 | # 21 | #define QT_WEBENGINE_KIOSK_INSTALL_TARGET_CMDS 22 | # $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src -f Makefile.qt-webengine-kiosk \ 23 | # INSTALL_ROOT=$(TARGET_DIR) \ 24 | # install_target 25 | # $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ 26 | # INSTALL_ROOT=$(TARGET_DIR) 27 | #endef 28 | 29 | $(eval $(cmake-package)) 30 | -------------------------------------------------------------------------------- /buildroot-external/patches/linux-headers/linux-headers.hash: -------------------------------------------------------------------------------- 1 | sha256 4f57f762991ca6455476f2ad9902595abaff1ddd600892c7f0797ecbe2cd1f37 fc20eb4e650bf793bd6b3d804a63b67085c55f08.tar.gz 2 | sha256 f26e1a7fb1f01005767792706dae81db6de8ee7b8b01881224a1a9a44c277ebb stable_20250127.tar.gz 3 | sha256 230e89b07b0ab82e74f07ecc1bee3105dca81d0ef4a97f900929c407249b6ac7 linux-6.12.20.tar.xz 4 | -------------------------------------------------------------------------------- /buildroot-external/patches/linux/linux.hash: -------------------------------------------------------------------------------- 1 | sha256 4f57f762991ca6455476f2ad9902595abaff1ddd600892c7f0797ecbe2cd1f37 fc20eb4e650bf793bd6b3d804a63b67085c55f08.tar.gz 2 | sha256 f26e1a7fb1f01005767792706dae81db6de8ee7b8b01881224a1a9a44c277ebb stable_20250127.tar.gz 3 | sha256 230e89b07b0ab82e74f07ecc1bee3105dca81d0ef4a97f900929c407249b6ac7 linux-6.12.20.tar.xz 4 | -------------------------------------------------------------------------------- /buildroot-external/patches/psplash/0001-colors.patch: -------------------------------------------------------------------------------- 1 | --- psplash/psplash-colors.h.orig 2016-11-22 21:20:11.487892676 +0100 2 | +++ psplash/psplash-colors.h 2016-11-22 21:21:54.269520652 +0100 3 | @@ -20,15 +20,15 @@ 4 | #define _HAVE_PSPLASH_COLORS_H 5 | 6 | /* This is the overall background color */ 7 | -#define PSPLASH_BACKGROUND_COLOR 0xec,0xec,0xe1 8 | +#define PSPLASH_BACKGROUND_COLOR 0x00,0x00,0x00 9 | 10 | /* This is the color of any text output */ 11 | -#define PSPLASH_TEXT_COLOR 0x6d,0x6d,0x70 12 | +#define PSPLASH_TEXT_COLOR 0xff,0xff,0xff 13 | 14 | /* This is the color of the progress bar indicator */ 15 | -#define PSPLASH_BAR_COLOR 0x6d,0x6d,0x70 16 | +#define PSPLASH_BAR_COLOR 0xff,0xff,0xff 17 | 18 | /* This is the color of the progress bar background */ 19 | -#define PSPLASH_BAR_BACKGROUND_COLOR 0xec,0xec,0xe1 20 | +#define PSPLASH_BAR_BACKGROUND_COLOR 0x00,0x00,0x00 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /buildroot-external/patches/psplash/0002-bar.patch: -------------------------------------------------------------------------------- 1 | --- psplash/psplash-bar-img.h.orig 2020-06-03 08:33:45.849878036 +0200 2 | +++ psplash/psplash-bar-img.h 2020-04-20 06:11:43.130260837 +0200 3 | @@ -0,0 +1,23 @@ 4 | +/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ 5 | + 6 | +#define BAR_IMG_ROWSTRIDE (920) 7 | +#define BAR_IMG_WIDTH (230) 8 | +#define BAR_IMG_HEIGHT (28) 9 | +#define BAR_IMG_BYTES_PER_PIXEL (4) /* 3:RGB, 4:RGBA */ 10 | +#define BAR_IMG_RLE_PIXEL_DATA ((uint8*) \ 11 | + "\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377" \ 12 | + "\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377" \ 13 | + "\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377" \ 14 | + "\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377" \ 15 | + "\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0" \ 16 | + "\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377" \ 17 | + "\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377" \ 18 | + "\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377" \ 19 | + "\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377" \ 20 | + "\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0" \ 21 | + "\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377" \ 22 | + "\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377" \ 23 | + "\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377" \ 24 | + "\377\377\0\332\377\377\377\0") 25 | + 26 | + 27 | -------------------------------------------------------------------------------- /buildroot-external/patches/psplash/0003-multiline.patch: -------------------------------------------------------------------------------- 1 | --- psplash.orig/psplash.c 2020-01-22 00:23:44.000000000 +0100 2 | +++ psplash/psplash.c 2021-05-04 13:49:10.412613144 +0200 3 | @@ -176,7 +176,7 @@ 4 | cmd = command; 5 | do { 6 | int cmdlen; 7 | - char *cmdend = memchr(cmd, '\n', length); 8 | + char *cmdend = memchr(cmd, '\t', length); 9 | 10 | /* Replace newlines with string termination */ 11 | if (cmdend) 12 | -------------------------------------------------------------------------------- /buildroot-external/patches/psplash/logo-hzdr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/buildroot-external/patches/psplash/logo-hzdr.png -------------------------------------------------------------------------------- /buildroot-external/patches/psplash/logo-thinroot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/buildroot-external/patches/psplash/logo-thinroot.png -------------------------------------------------------------------------------- /buildroot-external/patches/rpi-firmware/rpi-firmware.hash: -------------------------------------------------------------------------------- 1 | # Locally calculated 2 | sha256 0a2d395f454fc0b4e1c639db57258abb53ca0d9ecd596bd8c836f2a50d6a49f3 rpi-firmware-1.20211118.tar.gz 3 | -------------------------------------------------------------------------------- /buildroot-external/patches/webkitgtk/0001-ARM-NEON-fix.patch: -------------------------------------------------------------------------------- 1 | --- webkitgtk-2.44.2/Source/WTF/wtf/PlatformCPU.h.orig 2024-03-16 07:45:49.640672700 +0100 2 | +++ webkitgtk-2.44.2/Source/WTF/wtf/PlatformCPU.h 2025-01-31 15:55:46.125450373 +0100 3 | @@ -254,9 +254,9 @@ 4 | # error "Cannot use both of WTF_CPU_ARM_TRADITIONAL and WTF_CPU_ARM_THUMB2 platforms" 5 | #endif /* !defined(WTF_CPU_ARM_TRADITIONAL) && !defined(WTF_CPU_ARM_THUMB2) */ 6 | 7 | -#if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && !defined(WTF_CPU_ARM_NEON) 8 | -#define WTF_CPU_ARM_NEON 1 9 | -#endif 10 | +//#if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && !defined(WTF_CPU_ARM_NEON) 11 | +//#define WTF_CPU_ARM_NEON 1 12 | +//#endif 13 | 14 | #if (defined(__VFP_FP__) && !defined(__SOFTFP__)) 15 | #define WTF_CPU_ARM_VFP 1 16 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/bin/bash: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec /bin/sh "$@" 3 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/bin/pa-udev-update-sink.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # This script is executed by a udev rule and will make 4 | # sure that the pa-update-default-sink script is executed 5 | # as 'tsuser' and also in a subshell 6 | # 7 | 8 | (/bin/su - truser -c /bin/pa-update-default-sink.sh) & 9 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/bin/qutselect-disconnect.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # kill all qutselect related sessions and return to the qutselect GUI 4 | # 5 | pkill "tlclient.bin|xfreerdp|rdesktop|vncviewer|remote-viewer|chrome" 6 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/bin/qutselect-lock.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash 3 | # 4 | # Small script which uses 'xdotool' to send keyboard shortcuts to the root window 5 | # and thus will try to lock a session correctly. 6 | # 7 | 8 | # check if tlclient.bin is running, if yes send Ctrl+Alt+L to lock 9 | # the screen 10 | if /usr/bin/pgrep "tlclient.bin" >/dev/null 2>&1; then 11 | /bin/su - truser -c "DISPLAY=:0.0 /usr/bin/xdotool keydown Control_L keydown Alt_L key l keyup Alt_L keyup Control_L" & 12 | else 13 | # otherwise we check for xfreerdp or rdesktop and then use Windows+L to lock 14 | # the windows session 15 | if /usr/bin/pgrep "xfreerdp|rdesktop|vncviewer|remote-viewer" >/dev/null 2>&1; then 16 | /bin/su - truser -c "DISPLAY=:0.0 /usr/bin/xdotool keydown Super_L key l keyup Super_L" & 17 | else 18 | # bring the system into standby mode 19 | echo "standby" >/sys/power/state 20 | fi 21 | fi 22 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/bin/qutselect-startup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash 3 | # 4 | # shell script that starts qutselect after having setup all necessary 5 | # configuration files 6 | 7 | get_qutselect_files() 8 | { 9 | # make sure we have a qutselect config dir in the user home 10 | if [ ! -d "${HOME}/.qutselect" ] ; then 11 | mkdir -p "${HOME}/.qutselect" 12 | fi 13 | 14 | # get the .slist file 15 | if [ -n "${SESSION_0_QUTSELECT_SLIST}" ]; then 16 | /usr/bin/wget -q "${BASE_PATH}/conf/${SESSION_0_QUTSELECT_SLIST}" -O "${HOME}/.qutselect/qutselect.slist" 17 | fi 18 | 19 | # get the .motd file 20 | if [ -n "${SESSION_0_QUTSELECT_MOTD}" ]; then 21 | /usr/bin/wget -q "${BASE_PATH}/conf/${SESSION_0_QUTSELECT_MOTD}" -O "${HOME}/.qutselect/qutselect.motd" 22 | fi 23 | 24 | return 0 25 | } 26 | 27 | # get the slist and motd files 28 | get_qutselect_files 29 | 30 | if [ -z "${SESSION_0_QUTSELECT_CMD}" ]; then 31 | SESSION_0_QUTSELECT_CMD="/bin/qutselect -dtlogin -nouser -keep" 32 | fi 33 | 34 | # start qutselect 35 | ${SESSION_0_QUTSELECT_CMD} 36 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/bin/umounter.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | grep /media/usb /proc/mounts | awk '{ print $2 }' | while read -r MNTPATH; do 3 | /bin/umount "${MNTPATH}" 4 | done 5 | grep /usbmount /proc/mounts | awk '{ print $2 }' | while read -r BINDPATH; do 6 | /bin/umount "${BINDPATH}" 7 | /bin/rmdir "${BINDPATH}" 8 | done 9 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/Xsession.d/00-xrandr-setup: -------------------------------------------------------------------------------- 1 | # -*- sh -*- 2 | # Xsession.d script to setup multi-monitor support using xrandr 3 | # 4 | # This file is sourced by Xsession(5), not executed. 5 | 6 | if [[ -e /usr/bin/xrandr ]]; then 7 | 8 | if [[ -z "${XRANDR_OPTIONS}" ]] && [[ -n "${SCREEN_RESOLUTION}" ]]; then 9 | XRANDR_OPTIONS="-s ${SCREEN_RESOLUTION}" 10 | elif [[ "$XRANDR_OPTIONS" == "dualscreen" ]]; then 11 | scrns=$(/usr/bin/xrandr -q | grep " connected" | cut -d " " -f1) 12 | numscrns=$(echo $scrns | wc -w) 13 | if [[ ${numscrns} -gt 1 ]]; then 14 | left=$(echo $scrns | cut -d " " -f1) 15 | right=$(echo $scrns | cut -d " " -f2) 16 | if [[ -n "${SCREEN_RESOLUTION}" ]]; then 17 | XRANDR_OPTIONS="--output ${left} --mode ${SCREEN_RESOLUTION} --left-of ${right} --primary --output ${right} --mode ${SCREEN_RESOLUTION}" 18 | else 19 | XRANDR_OPTIONS="--output ${left} --left-of ${right} --primary" 20 | fi 21 | elif [[ -n "${SCREEN_RESOLUTION}" ]]; then 22 | XRANDR_OPTIONS="-s ${SCREEN_RESOLUTION}" 23 | else 24 | XRANDR_OPTIONS="" 25 | fi 26 | fi 27 | 28 | if [[ -n "${XRANDR_OPTIONS}" ]]; then 29 | /usr/bin/xrandr ${XRANDR_OPTIONS} &>/dev/null 30 | fi 31 | 32 | fi 33 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/Xsession.d/80numlock-setup: -------------------------------------------------------------------------------- 1 | # -*- sh -*- 2 | # Xsession.d script to set the numlock 3 | # 4 | # This file is sourced by Xsession(5), not executed. 5 | 6 | if [[ -x /bin/numlockx ]]; then 7 | /bin/numlockx ${X_NUMLOCK} 8 | fi 9 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/Xsession.d/90qt-a11y: -------------------------------------------------------------------------------- 1 | # -*- sh -*- 2 | # Xsession.d script to set the env variables to enable accessibility for Qt 3 | # 4 | # This file is sourced by Xsession(5), not executed. 5 | 6 | QT_ACCESSIBILITY=1 7 | 8 | export QT_ACCESSIBILITY 9 | 10 | if [ -x "/usr/bin/dbus-update-activation-environment" ]; then 11 | dbus-update-activation-environment --verbose QT_ACCESSIBILITY QT_LINUX_ACCESSIBILITY_ALWAYS_ON 12 | fi 13 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/Xsession.d/95dbus_update-activation-env: -------------------------------------------------------------------------------- 1 | # vim:set ft=sh sw=2 sts=2 et: 2 | 3 | if [ -n "$DBUS_SESSION_BUS_ADDRESS" ] && \ 4 | [ -x "/usr/bin/dbus-update-activation-environment" ]; then 5 | # subshell so we can unset environment variables 6 | ( 7 | # unset login-session-specifics 8 | unset XDG_SEAT 9 | unset XDG_SESSION_ID 10 | unset XDG_VTNR 11 | 12 | # tell dbus-daemon --session (and systemd --user, if running) 13 | # to put the Xsession's environment in activated services' 14 | # environments 15 | dbus-update-activation-environment --verbose --all 16 | ) 17 | fi 18 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/Xsession.d/96pulseaudio: -------------------------------------------------------------------------------- 1 | /usr/bin/pulseaudio --start --log-target=syslog 2 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/Xsession.d/99x11-common_start: -------------------------------------------------------------------------------- 1 | # $Id: 99x11-common_start 305 2005-07-03 18:51:43Z dnusinow $ 2 | 3 | # start windows manager and topmost app not exiting at all. 4 | exec /bin/wm-startup.sh 5 | 6 | # vim:set ai et sts=2 sw=2 tw=80: 7 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/Xsession.options: -------------------------------------------------------------------------------- 1 | # $Id: Xsession.options 189 2005-06-11 00:04:27Z branden $ 2 | # 3 | # configuration options for /etc/X11/Xsession 4 | # See Xsession.options(5) for an explanation of the available options. 5 | allow-failsafe 6 | allow-user-resources 7 | allow-user-xsession 8 | use-ssh-agent 9 | use-session-dbus 10 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/00-keyboard.conf: -------------------------------------------------------------------------------- 1 | Section "InputClass" 2 | Identifier "Keyboard Defaults" 3 | MatchIsKeyboard "on" 4 | Option "XkbModel" "pc105" 5 | Option "XkbVariant" "nodeadkeys" 6 | Option "XkbLayout" "de,us" 7 | Option "XkbOptions" "grp:sclk_toggle,grp_led:scroll" 8 | Option "AutoRepeat" "500 30" 9 | EndSection 10 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/00-modules.conf: -------------------------------------------------------------------------------- 1 | Section "Module" 2 | Load "fb" 3 | Load "fbdevhw" 4 | Load "wfb" 5 | Load "int10" 6 | Load "vbe" 7 | Load "vgahw" 8 | Load "shadow" 9 | Load "shadowfb" 10 | Load "exa" 11 | EndSection 12 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/01-mouse.conf: -------------------------------------------------------------------------------- 1 | Section "InputClass" 2 | Identifier "Mouse Defaults" 3 | MatchIsPointer "on" 4 | Option "Resolution" "800" 5 | EndSection 6 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/10-evdev.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Catch-all evdev loader for udev-based systems 3 | # We don't simply match on any device since that also adds accelerometers 4 | # and other devices that we don't really want to use. The list below 5 | # matches everything but joysticks. 6 | 7 | Section "InputClass" 8 | Identifier "evdev pointer catchall" 9 | MatchIsPointer "on" 10 | MatchDevicePath "/dev/input/event*" 11 | Driver "evdev" 12 | EndSection 13 | 14 | Section "InputClass" 15 | Identifier "evdev keyboard catchall" 16 | MatchIsKeyboard "on" 17 | MatchDevicePath "/dev/input/event*" 18 | Driver "evdev" 19 | EndSection 20 | 21 | Section "InputClass" 22 | Identifier "evdev touchpad catchall" 23 | MatchIsTouchpad "on" 24 | MatchDevicePath "/dev/input/event*" 25 | Driver "evdev" 26 | EndSection 27 | 28 | Section "InputClass" 29 | Identifier "evdev tablet catchall" 30 | MatchIsTablet "on" 31 | MatchDevicePath "/dev/input/event*" 32 | Driver "evdev" 33 | EndSection 34 | 35 | Section "InputClass" 36 | Identifier "evdev touchscreen catchall" 37 | MatchIsTouchscreen "on" 38 | MatchDevicePath "/dev/input/event*" 39 | Driver "evdev" 40 | EndSection 41 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/10-serverlayout.conf: -------------------------------------------------------------------------------- 1 | Section "ServerLayout" 2 | Identifier "TS Configured" 3 | Screen 0 "Screen0" 0 0 4 | Option "BlankTime" "15" 5 | Option "StandbyTime" "30" 6 | Option "SuspendTime" "60" 7 | Option "OffTime" "120" 8 | Option "DontVTSwitch" "TRUE" 9 | Option "DontZap" "TRUE" 10 | Option "Xinerama" "0" 11 | EndSection 12 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/12-screen.conf: -------------------------------------------------------------------------------- 1 | Section "Screen" 2 | Identifier "Screen0" 3 | Device "Card0" 4 | Monitor "Monitor0" 5 | SubSection "Display" 6 | Viewport 0 0 7 | Depth 1 8 | EndSubSection 9 | SubSection "Display" 10 | Viewport 0 0 11 | Depth 4 12 | EndSubSection 13 | SubSection "Display" 14 | Viewport 0 0 15 | Depth 8 16 | EndSubSection 17 | SubSection "Display" 18 | Viewport 0 0 19 | Depth 15 20 | EndSubSection 21 | SubSection "Display" 22 | Viewport 0 0 23 | Depth 16 24 | EndSubSection 25 | SubSection "Display" 26 | Viewport 0 0 27 | Depth 24 28 | EndSubSection 29 | SubSection "Display" 30 | Viewport 0 0 31 | Depth 32 32 | EndSubSection 33 | EndSection 34 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/15-dri.conf: -------------------------------------------------------------------------------- 1 | Section "Dri" 2 | Mode 0660 3 | EndSection 4 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/20-intel.conf: -------------------------------------------------------------------------------- 1 | Section "Device" 2 | Identifier "Intel Graphics" 3 | Driver "intel" 4 | Option "AccelMethod" "sna" 5 | Option "DRI" "iris" 6 | EndSection 7 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/50-vmmouse.conf: -------------------------------------------------------------------------------- 1 | Section "InputClass" 2 | Identifier "vmmouse" 3 | MatchIsPointer "on" 4 | MatchTag "vmmouse" 5 | Driver "vmmouse" 6 | EndSection 7 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/70-synaptics.conf: -------------------------------------------------------------------------------- 1 | # Example xorg.conf.d snippet that assigns the touchpad driver 2 | # to all touchpads. See xorg.conf.d(5) for more information on 3 | # InputClass. 4 | # DO NOT EDIT THIS FILE, your distribution will likely overwrite 5 | # it when updating. Copy (and rename) this file into 6 | # /etc/X11/xorg.conf.d first. 7 | # Additional options may be added in the form of 8 | # Option "OptionName" "value" 9 | # 10 | Section "InputClass" 11 | Identifier "touchpad catchall" 12 | Driver "synaptics" 13 | MatchIsTouchpad "on" 14 | # This option is recommend on all Linux systems using evdev, but cannot be 15 | # enabled by default. See the following link for details: 16 | # http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html 17 | # MatchDevicePath "/dev/input/event*" 18 | EndSection 19 | 20 | Section "InputClass" 21 | Identifier "touchpad ignore duplicates" 22 | MatchIsTouchpad "on" 23 | MatchOS "Linux" 24 | MatchDevicePath "/dev/input/mouse*" 25 | Option "Ignore" "on" 26 | EndSection 27 | 28 | # This option enables the bottom right corner to be a right button on clickpads 29 | # and the right and middle top areas to be right / middle buttons on clickpads 30 | # with a top button area. 31 | # This option is only interpreted by clickpads. 32 | Section "InputClass" 33 | Identifier "Default clickpad buttons" 34 | MatchDriver "synaptics" 35 | Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0" 36 | Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%" 37 | EndSection 38 | 39 | # This option disables software buttons on Apple touchpads. 40 | # This option is only interpreted by clickpads. 41 | Section "InputClass" 42 | Identifier "Disable clickpad buttons on Apple touchpads" 43 | MatchProduct "Apple|bcm5974" 44 | MatchDriver "synaptics" 45 | Option "SoftButtonAreas" "0 0 0 0 0 0 0 0" 46 | EndSection 47 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/X11/xorg.conf.d/90-input.conf: -------------------------------------------------------------------------------- 1 | Section "ServerFlags" 2 | Option "AutoAddDevices" "true" 3 | Option "AutoEnableDevices" "true" 4 | Option "AllowEmptyInput" "true" 5 | Option "IgnoreABI" "true" 6 | EndSection 7 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/default/nodm: -------------------------------------------------------------------------------- 1 | NODM_USER=truser 2 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/dhcpcd.conf: -------------------------------------------------------------------------------- 1 | # A sample configuration for dhcpcd. 2 | # See dhcpcd.conf(5) for details. 3 | 4 | # Allow users of this group to interact with dhcpcd via the control socket. 5 | #controlgroup wheel 6 | 7 | # Inform the DHCP server of our hostname for DDNS. 8 | #hostname 9 | 10 | # Use the hardware address of the interface for the Client ID. 11 | clientid 12 | # or 13 | # Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361. 14 | # Some non-RFC compliant DHCP servers do not reply with this set. 15 | # In this case, comment out duid and enable clientid above. 16 | #duid 17 | 18 | # Persist interface configuration when dhcpcd exits. 19 | persistent 20 | 21 | # Rapid commit support. 22 | # Safe to enable by default because it requires the equivalent option set 23 | # on the server to actually work. 24 | option rapid_commit 25 | 26 | # A list of options to request from the DHCP server. 27 | option domain_name_servers, domain_name, domain_search, host_name 28 | option classless_static_routes 29 | # Respect the network MTU. This is applied to DHCP routes. 30 | option interface_mtu 31 | 32 | # Most distributions have NTP support. 33 | option ntp_servers 34 | 35 | # A ServerID is required by RFC2131. 36 | require dhcp_server_identifier 37 | 38 | # Generate SLAAC address using the Hardware Address of the interface 39 | #slaac hwaddr 40 | # OR generate Stable Private IPv6 Addresses based from the DUID 41 | slaac private 42 | 43 | # wait for a valid IPv4 address to appear 44 | waitip 4 45 | timeout 60 46 | 47 | # don't allow ipv4ll 48 | noipv4ll 49 | 50 | # make sure dhcpcd is requesting the hostname 51 | # from the DHCP server and set it accordingly. 52 | env force_hostname=YES 53 | env hostname_fqdn=false 54 | 55 | # setup NTP to use chrony 56 | env NTP_CONF=/etc/chrony.conf 57 | 58 | # allow specific interfaces (eth*, wlan*) only 59 | allowinterfaces eth* wlan* 60 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/fstab: -------------------------------------------------------------------------------- 1 | # 2 | /dev/root / ext2 rw,noauto 0 1 3 | LABEL=bootfs /boot vfat rw,noauto 0 0 4 | proc /proc proc defaults 0 0 5 | devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 6 | tmpfs /dev/shm tmpfs mode=1777 0 0 7 | tmpfs /tmp tmpfs mode=1777 0 0 8 | tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 9 | tmpfs /opt tmpfs mode=1777,size=90% 0 0 10 | sysfs /sys sysfs defaults 0 0 11 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/hotkeyd.conf: -------------------------------------------------------------------------------- 1 | ## hotkeyd.conf for use with hotkeyd 2 | ## format: 3 | ## can be a list of keys seperated by + 4 | ## You can use "hotkeyd --test" to probe the key names 5 | ## NOTE: The order of the keys matters 6 | 7 | # lock session hotkey 8 | PAUSE /bin/qutselect-lock.sh & 9 | 10 | # session disconnect hotkeys 11 | LEFTSHIFT+PAUSE /bin/qutselect-disconnect.sh & 12 | RIGHTSHIFT+PAUSE /bin/qutselect-disconnect.sh & 13 | STOP /bin/qutselect-disconnect.sh & 14 | 15 | # system reboot hotkeys 16 | LEFTCTRL+PAUSE /sbin/reboot & 17 | RIGHTCTRL+PAUSE /sbin/reboot & 18 | 19 | # system USB umount hotkeys 20 | LEFTALT+F10 /bin/umounter.sh & 21 | RIGHTALT+F10 /bin/umounter.sh & 22 | LEFTALT+FN+F10 /bin/umounter.sh & 23 | RIGHTALT+FN+F10 /bin/umounter.sh & 24 | 25 | # SUN keyboard settings 26 | COPY /bin/su - truser -c "DISPLAY=:0.0 /bin/xdotool keydown Control_L key Insert keyup Control_L" & 27 | PASTE /bin/su - truser -c "DISPLAY=:0.0 /bin/xdotool keydown Shift_L key Insert keyup Shift_L" & 28 | CUT /bin/su - truser -c "DISPLAY=:0.0 /bin/xdotool keydown Shift_L key Delete 'keyup Shift_L" & 29 | UNDO /bin/su - truser -c "DISPLAY=:0.0 /bin/xdotool keydown Control_L key z keyup Control_L" & 30 | 31 | # audo control hotkeys 32 | VOLUMEUP /bin/su - truser -c "/usr/bin/amixer sset Master 5%+" & 33 | VOLUMEDOWN /bin/su - truser -c "/usr/bin/amixer sset Master 5%-" & 34 | MUTE /bin/su - truser -c "/usr/bin/amixer sset Master toggle" & 35 | LEFTALT+KPPLUS /bin/su - truser -c "/usr/bin/amixer sset Master 5%+" & 36 | RIGHTALT+KPPLUS /bin/su - truser -c "/usr/bin/amixer sset Master 5%+" & 37 | LEFTALT+KPMINUS /bin/su - truser -c "/usr/bin/amixer sset Master 5%-" & 38 | RIGHTALT+KPMINUS /bin/su - truser -c "/usr/bin/amixer sset Master 5%-" & 39 | LEFTALT+KPASTERISK /bin/su - truser -c "/usr/bin/amixer sset Master toggle" & 40 | RIGHTALT+KPASTERISK /bin/su - truser -c "/usr/bin/amixer sset Master toggle" & 41 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/init.d/S49chronyd: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash disable=SC2169,SC3010 3 | 4 | NAME=chrony 5 | DAEMON=/usr/sbin/chronyd 6 | CLIENT=/usr/bin/chronyc 7 | 8 | # Gracefully exit if the package has been removed. 9 | test -x $DAEMON || exit 0 10 | 11 | init() { 12 | # retrieve NTPSERVERS from chrony.conf 13 | if [[ -e /etc/chrony.conf ]]; then 14 | NTPSERVERS=$(grep -e "^server " /etc/chrony.conf | cut -d' ' -f2 | xargs echo) 15 | fi 16 | 17 | # make sure /var/lib/chrony exists so that the drift file 18 | # can be saved later on 19 | mkdir -p /var/lib/${NAME} 20 | chown chrony:chrony /var/lib/${NAME} 21 | } 22 | 23 | case "$1" in 24 | start) 25 | init 26 | echo -n "Starting $NAME: " 27 | 28 | # get current clock from rtc 29 | hwclock -s -u 30 | 31 | # call ntpdate to perform a single sync to the servers 32 | if [[ -n "${NTPSERVERS}" ]]; then 33 | # shellcheck disable=SC2086 34 | /usr/bin/ntpdate -b -s -u ${NTPSERVERS} 35 | fi 36 | 37 | # start daemon 38 | if start-stop-daemon -S -q -x ${DAEMON}; then 39 | ${CLIENT} -a "burst 3/5" >/dev/null 2>&1 40 | ${CLIENT} -a makestep >/dev/null 2>&1 41 | echo "OK" 42 | else 43 | echo "FAIL" 44 | fi 45 | ;; 46 | stop) 47 | echo -n "Stopping $NAME: " 48 | if start-stop-daemon -K -q -p /var/run/chrony/chronyd.pid; then 49 | echo "OK" 50 | else 51 | echo "FAIL" 52 | fi 53 | 54 | # set current time to rtc 55 | hwclock -w -u 56 | 57 | ;; 58 | restart|reload) 59 | echo "Restarting $NAME: " 60 | $0 stop 61 | sleep 1 62 | $0 start 63 | ;; 64 | *) 65 | echo "Usage: $0 {start|stop|restart|reload}" >&2 66 | exit 1 67 | ;; 68 | esac 69 | 70 | exit 0 71 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/init.d/S60hotkeyd: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash 3 | # 4 | # start/stop hotkey daemon 5 | # 6 | 7 | start() { 8 | echo -n "Starting hotkeyd: " 9 | start-stop-daemon -S -q -b -m -p /var/run/hotkeyd.pid --exec /bin/hotkeyd -- -q 10 | echo "OK" 11 | } 12 | 13 | stop () { 14 | echo -n "Stopping hotkeyd: " 15 | start-stop-daemon -K -q -p /var/run/hotkeyd.pid 16 | echo "OK" 17 | } 18 | 19 | restart() { 20 | stop 21 | sleep 1 22 | start 23 | } 24 | 25 | case "$1" in 26 | start) 27 | start 28 | ;; 29 | stop) 30 | stop 31 | ;; 32 | restart|reload) 33 | restart 34 | ;; 35 | *) 36 | echo "Usage: $0 {start|stop|restart}" 37 | exit 1 38 | esac 39 | 40 | exit $? 41 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/init.d/S98crond: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash disable=SC2169 3 | # 4 | # start/stop cron daemon 5 | # 6 | 7 | # function to update the crontab file and 8 | # make sure that it is up to date 9 | init() { 10 | 11 | # make sure /var/spool/cron/crontabs exists 12 | if [ ! -d /var/spool/cron/crontabs ]; then 13 | mkdir -p /var/spool/cron/crontabs 14 | chmod 775 /var/spool/cron/crontabs 15 | fi 16 | 17 | # make sure our system-wide crontab is taken for 18 | # being merged with the user configuration crontab 19 | if [ -e /etc/crontab ]; then 20 | cp -a /etc/crontab /var/spool/cron/crontabs/root 21 | fi 22 | } 23 | 24 | start() { 25 | echo -n "Starting crond: " 26 | init 27 | start-stop-daemon -S -q -b -m -p /var/run/crond.pid --exec /usr/sbin/crond -- -f -l 9 28 | echo "OK" 29 | } 30 | 31 | stop () { 32 | echo -n "Stopping crond: " 33 | start-stop-daemon -K -q -p /var/run/crond.pid 34 | echo "OK" 35 | } 36 | 37 | restart() { 38 | stop 39 | sleep 1 40 | start 41 | } 42 | 43 | case "$1" in 44 | start) 45 | start 46 | ;; 47 | stop) 48 | stop 49 | ;; 50 | restart|reload) 51 | restart 52 | ;; 53 | *) 54 | echo "Usage: $0 {start|stop|restart}" 55 | exit 1 56 | esac 57 | 58 | exit $? 59 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/init.d/S99SetupLEDs: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash disable=SC2169,SC3010 source=/dev/null 3 | # 4 | # start script to setup the board leds correctly once the 5 | # system finished booting 6 | # 7 | 8 | # source all data from /var/hm_mode 9 | [[ -r /VERSION ]] && . /VERSION 10 | 11 | # if we are using an RaspberryPi/Tinkerboard we set the onboard 12 | # leds accordingly 13 | case "${PLATFORM}" in 14 | rpi*) 15 | if grep -q "Pi 400" /proc/device-tree/model 2>/dev/null; then 16 | LED_GREEN="/sys/class/leds/PWR" 17 | LED_RED= 18 | else 19 | LED_GREEN="/sys/class/leds/ACT" 20 | LED_RED="/sys/class/leds/PWR" 21 | fi 22 | ;; 23 | tinkerboard*) 24 | LED_GREEN="/sys/class/leds/led-0" 25 | LED_RED="/sys/class/leds/led-2" 26 | ;; 27 | esac 28 | 29 | start() { 30 | echo -n "Setup onboard LEDs: " 31 | 32 | # green LED 33 | if [[ -f "${LED_GREEN}/trigger" ]]; then 34 | echo "heartbeat" >"${LED_GREEN}/trigger" 35 | fi 36 | # red LED 37 | if [[ -f "${LED_RED}/trigger" ]]; then 38 | echo "mmc0" >"${LED_RED}/trigger" 39 | fi 40 | 41 | echo "booted, OK" 42 | } 43 | 44 | restart() { 45 | stop 46 | start 47 | } 48 | 49 | stop() { 50 | echo -n "Setup onboard LEDs: " 51 | 52 | # green LED 53 | if [[ -f "${LED_GREEN}/trigger" ]]; then 54 | echo "none" >"${LED_GREEN}/trigger" 55 | fi 56 | # red LED 57 | if [[ -f "${LED_RED}/trigger" ]]; then 58 | echo "timer" >"${LED_RED}/trigger" 59 | fi 60 | 61 | echo "shutdown, OK" 62 | } 63 | 64 | case "$1" in 65 | start) 66 | start 67 | ;; 68 | stop) 69 | stop 70 | ;; 71 | restart|reload) 72 | restart 73 | ;; 74 | *) 75 | echo "Usage: $0 {start|stop|restart}" 76 | exit 1 77 | esac 78 | 79 | exit $? 80 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/init.d/rcK: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash disable=SC2169 source=/dev/null 3 | # 4 | # Stop all init scripts in /etc/init.d 5 | # executing them in reversed numerical order. 6 | 7 | # shellcheck disable=SC2045 8 | for i in $(ls -r /etc/init.d/S??*) ;do 9 | 10 | # Ignore dangling symlinks (if any). 11 | [[ ! -f "${i}" ]] && continue 12 | 13 | # make sure psplash is running 14 | if ! pgrep -n /usr/bin/psplash >/dev/null 2>&1; then 15 | /usr/bin/psplash -n 2>/dev/null & 16 | fi 17 | 18 | # put the psplash progess bar to the 19 | # corresponding level 20 | name=${i##*/} 21 | num=${name:1:2} 22 | /usr/bin/psplash-write "MSG Stopping ${name:3}..." 23 | /usr/bin/psplash-write "PROGRESS $((100-${num#0}))" 24 | 25 | case "$i" in 26 | *.sh) 27 | # Source shell script for speed. 28 | ( 29 | trap - INT QUIT TSTP 30 | set stop 31 | . "${i}" 32 | ) 33 | ;; 34 | *) 35 | # No sh extension, so fork subprocess. 36 | ${i} stop 37 | ;; 38 | esac 39 | done 40 | 41 | # make sure psplash is running 42 | if ! pgrep -n /usr/bin/psplash >/dev/null 2>&1; then 43 | /usr/bin/psplash -n 2>/dev/null & 44 | fi 45 | 46 | /usr/bin/psplash-write "MSG Rebooting..." 47 | /usr/bin/psplash-write "PROGRESS 0" 48 | 49 | # quit psplash 50 | /usr/bin/psplash-write "QUIT" 51 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/init.d/rcS: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash disable=SC2169 source=/dev/null 3 | # 4 | # Start all init scripts in /etc/init.d 5 | # executing them in numerical order. 6 | 7 | # make sure we have a secure umask 8 | umask 0002 9 | 10 | # mount all filesystems 11 | /bin/mount -a 12 | 13 | # create /var/run, /var/cache and /run/lock 14 | /bin/mkdir -p /var/run /var/cache /run/lock 15 | 16 | # create ld.so.cache file 17 | /sbin/ldconfig -C /var/cache/ld.so.cache 18 | 19 | for i in /etc/init.d/S??* ;do 20 | 21 | # Ignore dangling symlinks (if any). 22 | [[ ! -f "${i}" ]] && continue 23 | 24 | # make sure psplash is running 25 | if ! pgrep -n /usr/bin/psplash >/dev/null 2>&1; then 26 | /usr/bin/psplash -n 2>/dev/null & 27 | fi 28 | 29 | # put the psplash progess bar to the 30 | # corresponding level 31 | name=${i##*/} 32 | num=${name:1:2} 33 | /usr/bin/psplash-write "MSG Starting ${name:3}..." 34 | /usr/bin/psplash-write "PROGRESS $((${num#0}+1))" 35 | 36 | case "${i}" in 37 | *.sh) 38 | # Source shell script for speed. 39 | ( 40 | trap - INT QUIT TSTP 41 | set start 42 | . "${i}" 43 | ) 44 | ;; 45 | *) 46 | # No sh extension, so fork subprocess. 47 | ${i} start 48 | ;; 49 | esac 50 | done 51 | 52 | # make sure psplash is running 53 | if ! pgrep -n /usr/bin/psplash >/dev/null 2>&1; then 54 | /usr/bin/psplash -n 2>/dev/null & 55 | fi 56 | 57 | /usr/bin/psplash-write "PROGRESS 100" 58 | 59 | [[ -r /VERSION ]] && . /VERSION 60 | 61 | echo "Finished Boot: thinRoot ${VERSION} (${PRODUCT})" 62 | 63 | # quit psplash after 5 seconds 64 | (sleep 5; /usr/bin/psplash-write "QUIT") & 65 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/inittab: -------------------------------------------------------------------------------- 1 | # /etc/inittab 2 | # 3 | # Copyright (C) 2001 Erik Andersen 4 | # 5 | # Note: BusyBox init doesn't support runlevels. The runlevels field is 6 | # completely ignored by BusyBox init. If you want runlevels, use 7 | # sysvinit. 8 | # 9 | # Format for each entry: ::: 10 | # 11 | # id == tty to run on, or empty for /dev/console 12 | # runlevels == ignored 13 | # action == one of sysinit, respawn, askfirst, wait, and once 14 | # process == program to run 15 | 16 | # Init the system 17 | tty2::sysinit:/bin/mount /proc 18 | tty2::sysinit:/bin/mount /sys 19 | tty2::sysinit:/bin/mount /tmp 20 | tty2::sysinit:/bin/mkdir -p /dev/pts /dev/shm 21 | 22 | # run any rc scripts (start) and move boot.log 23 | ::sysinit:/etc/init.d/rcS 2>&1 | /usr/bin/tee -a /tmp/boot.log 24 | ::sysinit:/bin/mv /tmp/boot.log /var/log/boot.log 25 | 26 | # Put a getty on tty2 27 | tty2::askfirst:/sbin/getty -L tty2 0 vt100 28 | 29 | # Stuff to do for the 3-finger salute 30 | ::ctrlaltdel:/sbin/reboot 31 | 32 | # Stuff to do before rebooting 33 | ::shutdown:/etc/init.d/rcK 34 | tty2::shutdown:/bin/umount -a -r -f >/dev/null 35 | tty2::shutdown:/sbin/swapoff -a 36 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/ld.so.cache: -------------------------------------------------------------------------------- 1 | /var/cache/ld.so.cache -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/ld.so.conf: -------------------------------------------------------------------------------- 1 | include /etc/ld.so.conf.d/*.conf 2 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/network/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto wlan0 5 | iface wlan0 inet manual 6 | 7 | auto eth0 8 | iface eth0 inet manual 9 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/profile.d/0000-default-locale.sh: -------------------------------------------------------------------------------- 1 | # shellcheck shell=dash 2 | export LANG=en_US.UTF-8 3 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/profile.d/aliases.sh: -------------------------------------------------------------------------------- 1 | # shellcheck shell=dash 2 | alias ls='ls --color=auto' 3 | alias ll='ls -alF' 4 | alias la='ls -A' 5 | alias l='ls -CF' 6 | alias vim='vi' 7 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/profile.d/envdir.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash disable=SC1090 3 | 4 | # Load up all .env files in /etc/env.d 5 | set -o allexport 6 | for i in /etc/env.d/*.env; do 7 | [ -e "${i}" ] || break 8 | . "${i}" 9 | done 10 | set +o allexport 11 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/pulse/client.conf: -------------------------------------------------------------------------------- 1 | # This file is part of PulseAudio. 2 | # 3 | # PulseAudio is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU Lesser General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # PulseAudio is distributed in the hope that it will be useful, but 9 | # WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | # General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU Lesser General Public License 14 | # along with PulseAudio; if not, see . 15 | 16 | ## Configuration file for PulseAudio clients. See pulse-client.conf(5) for 17 | ## more information. Default values are commented out. Use either ; or # for 18 | ## commenting. 19 | 20 | ; default-sink = 21 | ; default-source = 22 | ; default-server = 23 | ; default-dbus-server = 24 | 25 | autospawn = yes 26 | daemon-binary = /usr/bin/pulseaudio 27 | extra-arguments = --log-target=syslog 28 | 29 | ; cookie-file = 30 | 31 | ; enable-shm = yes 32 | ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB 33 | 34 | ; auto-connect-localhost = no 35 | ; auto-connect-display = no 36 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/pulse/system.pa: -------------------------------------------------------------------------------- 1 | #!/usr/bin/pulseaudio -nF 2 | # 3 | # This file is part of PulseAudio. 4 | # 5 | # PulseAudio is free software; you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published by 7 | # the Free Software Foundation; either version 2 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # PulseAudio is distributed in the hope that it will be useful, but 11 | # WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public License 16 | # along with PulseAudio; if not, see . 17 | 18 | # This startup script is used only if PulseAudio is started in system 19 | # mode. 20 | 21 | ### Automatically restore the volume of streams and devices 22 | load-module module-device-restore 23 | load-module module-stream-restore 24 | load-module module-card-restore 25 | 26 | ### Automatically load driver modules depending on the hardware available 27 | .ifexists module-udev-detect.so 28 | load-module module-udev-detect 29 | .else 30 | ### Use the static hardware detection module (for systems that lack udev/hal support) 31 | load-module module-detect 32 | .endif 33 | 34 | ### Load several protocols 35 | .ifexists module-esound-protocol-unix.so 36 | load-module module-esound-protocol-unix 37 | .endif 38 | load-module module-native-protocol-unix 39 | 40 | ### Automatically restore the default sink/source when changed by the user 41 | ### during runtime 42 | ### NOTE: This should be loaded as early as possible so that subsequent modules 43 | ### that look up the default sink/source get the right value 44 | load-module module-default-device-restore 45 | 46 | ### Automatically move streams to the default sink if the sink they are 47 | ### connected to dies, similar for sources 48 | load-module module-rescue-streams 49 | 50 | ### Make sure we always have a sink around, even if it is a null sink. 51 | load-module module-always-sink 52 | 53 | ### Automatically suspend sinks/sources that become idle for too long 54 | load-module module-suspend-on-idle 55 | 56 | ### Enable positioned event sounds 57 | load-module module-position-event-sounds 58 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/sysctl.conf: -------------------------------------------------------------------------------- 1 | # Try to keep kernel address exposures out of various /proc files (kallsyms, modules, etc). (There is no CONFIG for the changing the initial value.) 2 | kernel.kptr_restrict = 1 3 | 4 | # Avoid kernel memory address exposures via dmesg (this value can also be set by CONFIG_SECURITY_DMESG_RESTRICT). 5 | kernel.dmesg_restrict = 1 6 | 7 | # Block non-uid-0 profiling (needs distro patch, otherwise this is the same as "= 2") 8 | kernel.perf_event_paranoid = 3 9 | 10 | # Avoid non-ancestor ptrace access to running processes and their credentials. 11 | kernel.yama.ptrace_scope = 1 12 | 13 | # Disable User Namespaces, as it opens up a large attack surface to unprivileged users. 14 | user.max_user_namespaces = 0 15 | 16 | # increase netfilter conntrack maximum hash table size to 256K 17 | net.netfilter.nf_conntrack_buckets = 65536 18 | net.netfilter.nf_conntrack_max = 262144 19 | 20 | # Since multicast is rather popular increate the default 20 memberships 21 | net.ipv4.igmp_max_memberships = 1024 22 | 23 | # Increase maximum receive and send buffer size 24 | net.core.rmem_max = 4194304 25 | net.core.wmem_max = 4194304 26 | 27 | # use fq_codel net scheduler 28 | net.core.default_qdisc = fq_codel 29 | 30 | # reduce swappiness 31 | vm.swappiness = 10 32 | 33 | # increase frequency of disk syncing (for more frequent USB data syncing) 34 | vm.dirty_expire_centisecs = 500 35 | vm.dirty_writeback_centisecs = 500 36 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/usbmount/mount.d/00_create_model_symlink: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck shell=dash 3 | # 4 | # This script creates the model name symlink in /var/run/usbmount. 5 | # Copyright (C) 2005 Martin Dickopp 6 | # 7 | # This file is free software; the copyright holder gives unlimited 8 | # permission to copy and/or distribute it, with or without 9 | # modifications, as long as this notice is preserved. 10 | # 11 | # This file is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 14 | # PARTICULAR PURPOSE. 15 | # 16 | set -e 17 | 18 | # Replace spaces with underscores, remove special characters in vendor 19 | # and model name. 20 | UM_VENDOR=$(echo "${UM_VENDOR}" | sed 's/ /_/g; s/[^0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._-]//g') 21 | UM_MODEL=$(echo "${UM_MODEL}" | sed 's/ /_/g; s/[^0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._-]//g') 22 | 23 | # Build symlink name. 24 | if test -z "${UM_VENDOR}" && test -z "${UM_MODEL}"; then 25 | name="$(basename "${UM_MOUNTPOINT}")" 26 | elif test -n "${UM_VENDOR}" && test -n "${UM_MODEL}"; then 27 | name="${UM_VENDOR}_${UM_MODEL}" 28 | else 29 | name="${UM_VENDOR}${UM_MODEL}" 30 | fi 31 | 32 | # Append partition number, if any, to the symlink name. 33 | partition=$(echo "${UM_DEVICE}" | sed 's/^.*[^0123456789]\([0123456789]*\)/\1/') 34 | if test -n "${partition}"; then 35 | name="${name}_${partition}" 36 | fi 37 | 38 | # If the symlink does not yet exist, create it. 39 | test -e "/var/run/usbmount/${name}" || (mkdir "/var/run/usbmount/${name}"; mount --bind "${UM_MOUNTPOINT}" "/var/run/usbmount/${name}") 40 | 41 | exit 0 42 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/etc/usbmount/umount.d/00_remove_model_symlink: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellecheck shell=dash 3 | # 4 | # This script removes the model name symlink in /var/run/usbmount. 5 | # Copyright (C) 2005 Martin Dickopp 6 | # 7 | # This file is free software; the copyright holder gives unlimited 8 | # permission to copy and/or distribute it, with or without 9 | # modifications, as long as this notice is preserved. 10 | # 11 | # This file is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 14 | # PARTICULAR PURPOSE. 15 | # 16 | set -e 17 | 18 | MOUNTNAME=$(grep "${UM_DEVICE}" /proc/mounts | grep /usbmount | awk '{print $2}') 19 | if [ -n "${MOUNTNAME}" ]; then 20 | /bin/umount "${MOUNTNAME}" 21 | /bin/rmdir "${MOUNTNAME}" 22 | fi 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/lib/udev/rules.d/99-truser-rights.rules: -------------------------------------------------------------------------------- 1 | SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664", GROUP="truser" 2 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/lib/udev/rules.d/99-usbnet-persist.rules: -------------------------------------------------------------------------------- 1 | # USB device 085f:2230 (CANBERRA DSA-LX / cdc_ether) 2 | SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:00:af:02:d7:64", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="usb99" 3 | -------------------------------------------------------------------------------- /buildroot-external/rootfs-overlay/lib/udev/rules.d/usbmount.rules: -------------------------------------------------------------------------------- 1 | # Rules for USBmount -*- conf -*- 2 | 3 | # Do not auto mount our own (deedbeef) system partitions 4 | ENV{ID_PART_TABLE_UUID}=="deedbeef", GOTO="END" 5 | ENV{ID_FS_LABEL}=="bootfs", GOTO="END" 6 | ENV{ID_FS_LABEL}=="rootfs", GOTO="END" 7 | ENV{ID_FS_LABEL}=="userfs", GOTO="END" 8 | 9 | KERNEL=="sd*", DRIVERS=="sbp2", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" 10 | KERNEL=="sd*", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" 11 | KERNEL=="ub*", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" 12 | KERNEL=="mmcblk*", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" 13 | KERNEL=="sd*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove" 14 | KERNEL=="ub*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove" 15 | KERNEL=="mmcblk*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove" 16 | 17 | LABEL="END" 18 | -------------------------------------------------------------------------------- /buildroot-patches/0001-openbox.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/package/openbox/openbox.mk.orig 2 | +++ buildroot/package/openbox/openbox.mk 3 | @@ -37,12 +37,12 @@ 4 | OPENBOX_CONF_OPTS += --disable-session-management 5 | endif 6 | 7 | -ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) 8 | -OPENBOX_CONF_OPTS += --enable-xinerama 9 | -OPENBOX_DEPENDENCIES += xlib_libXinerama 10 | -else 11 | +#ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) 12 | +#OPENBOX_CONF_OPTS += --enable-xinerama 13 | +#OPENBOX_DEPENDENCIES += xlib_libXinerama 14 | +#else 15 | OPENBOX_CONF_OPTS += --disable-xinerama 16 | -endif 17 | +#endif 18 | 19 | ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) 20 | OPENBOX_CONF_OPTS += --enable-xrandr 21 | -------------------------------------------------------------------------------- /buildroot-patches/0001-openbox/buildroot/package/openbox/openbox.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # openbox 4 | # 5 | ################################################################################ 6 | 7 | OPENBOX_VERSION = 3.6.1 8 | OPENBOX_SOURCE = openbox-$(OPENBOX_VERSION).tar.xz 9 | OPENBOX_SITE = http://openbox.org/dist/openbox 10 | OPENBOX_LICENSE = GPL-2.0+ 11 | OPENBOX_LICENSE_FILES = COPYING 12 | 13 | OPENBOX_CONF_OPTS = \ 14 | --x-includes=$(STAGING_DIR)/usr/include/X11 \ 15 | --x-libraries=$(STAGING_DIR)/usr/lib 16 | 17 | OPENBOX_DEPENDENCIES = xlib_libX11 libxml2 libglib2 pango host-pkgconf 18 | 19 | ifeq ($(BR2_PACKAGE_IMLIB2_X),y) 20 | OPENBOX_CONF_OPTS += --enable-imlib2 21 | OPENBOX_DEPENDENCIES += imlib2 22 | else 23 | OPENBOX_CONF_OPTS += --disable-imlib2 24 | endif 25 | 26 | ifeq ($(BR2_PACKAGE_STARTUP_NOTIFICATION),y) 27 | OPENBOX_CONF_OPTS += --enable-startup-notification 28 | OPENBOX_DEPENDENCIES += startup-notification 29 | else 30 | OPENBOX_CONF_OPTS += --disable-startup-notification 31 | endif 32 | 33 | ifeq ($(BR2_PACKAGE_XLIB_LIBSM),y) 34 | OPENBOX_CONF_OPTS += --enable-session-management 35 | OPENBOX_DEPENDENCIES += xlib_libSM 36 | else 37 | OPENBOX_CONF_OPTS += --disable-session-management 38 | endif 39 | 40 | #ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) 41 | #OPENBOX_CONF_OPTS += --enable-xinerama 42 | #OPENBOX_DEPENDENCIES += xlib_libXinerama 43 | #else 44 | OPENBOX_CONF_OPTS += --disable-xinerama 45 | #endif 46 | 47 | ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) 48 | OPENBOX_CONF_OPTS += --enable-xrandr 49 | OPENBOX_DEPENDENCIES += xlib_libXrandr 50 | else 51 | OPENBOX_CONF_OPTS += --disable-xrandr 52 | endif 53 | 54 | ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) 55 | OPENBOX_DEPENDENCIES += xlib_libXcursor 56 | OPENBOX_CONF_OPTS += --enable-xcursor 57 | else 58 | OPENBOX_CONF_OPTS += --disable-xcursor 59 | endif 60 | 61 | $(eval $(autotools-package)) 62 | -------------------------------------------------------------------------------- /buildroot-patches/0001-openbox/buildroot/package/openbox/openbox.mk.orig: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # openbox 4 | # 5 | ################################################################################ 6 | 7 | OPENBOX_VERSION = 3.6.1 8 | OPENBOX_SOURCE = openbox-$(OPENBOX_VERSION).tar.xz 9 | OPENBOX_SITE = http://openbox.org/dist/openbox 10 | OPENBOX_LICENSE = GPL-2.0+ 11 | OPENBOX_LICENSE_FILES = COPYING 12 | 13 | OPENBOX_CONF_OPTS = \ 14 | --x-includes=$(STAGING_DIR)/usr/include/X11 \ 15 | --x-libraries=$(STAGING_DIR)/usr/lib 16 | 17 | OPENBOX_DEPENDENCIES = xlib_libX11 libxml2 libglib2 pango host-pkgconf 18 | 19 | ifeq ($(BR2_PACKAGE_IMLIB2_X),y) 20 | OPENBOX_CONF_OPTS += --enable-imlib2 21 | OPENBOX_DEPENDENCIES += imlib2 22 | else 23 | OPENBOX_CONF_OPTS += --disable-imlib2 24 | endif 25 | 26 | ifeq ($(BR2_PACKAGE_STARTUP_NOTIFICATION),y) 27 | OPENBOX_CONF_OPTS += --enable-startup-notification 28 | OPENBOX_DEPENDENCIES += startup-notification 29 | else 30 | OPENBOX_CONF_OPTS += --disable-startup-notification 31 | endif 32 | 33 | ifeq ($(BR2_PACKAGE_XLIB_LIBSM),y) 34 | OPENBOX_CONF_OPTS += --enable-session-management 35 | OPENBOX_DEPENDENCIES += xlib_libSM 36 | else 37 | OPENBOX_CONF_OPTS += --disable-session-management 38 | endif 39 | 40 | ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) 41 | OPENBOX_CONF_OPTS += --enable-xinerama 42 | OPENBOX_DEPENDENCIES += xlib_libXinerama 43 | else 44 | OPENBOX_CONF_OPTS += --disable-xinerama 45 | endif 46 | 47 | ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) 48 | OPENBOX_CONF_OPTS += --enable-xrandr 49 | OPENBOX_DEPENDENCIES += xlib_libXrandr 50 | else 51 | OPENBOX_CONF_OPTS += --disable-xrandr 52 | endif 53 | 54 | ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) 55 | OPENBOX_DEPENDENCIES += xlib_libXcursor 56 | OPENBOX_CONF_OPTS += --enable-xcursor 57 | else 58 | OPENBOX_CONF_OPTS += --disable-xcursor 59 | endif 60 | 61 | $(eval $(autotools-package)) 62 | -------------------------------------------------------------------------------- /buildroot-patches/0003-dhcpcd-glibc241-fix.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/package/dhcpcd/dhcpcd.hash.orig 2 | +++ buildroot/package/dhcpcd/dhcpcd.hash 3 | @@ -1,4 +1,4 @@ 4 | -# sha256 from https://github.com/NetworkConfiguration/dhcpcd/releases/tag/v10.1.0 5 | -sha256 abc307c63853da3199baa5c1e15fd5ede9d68d068b2a59ca14c5a6768e9cc3b7 dhcpcd-10.1.0.tar.xz 6 | +# sha256 from https://github.com/NetworkConfiguration/dhcpcd/releases/tag/v10.2.2 7 | +sha256 5f257b02f874b3b8cb031e5be79c99cf9cbd4f65eae2a50c9b1beddafb3f51bc dhcpcd-10.2.2.tar.xz 8 | # Locally calculated 9 | sha256 224b37cd1ef1365bd2ac9eaec9f32fee94e85dd40f95461ebcb21e758357ac1f LICENSE 10 | --- buildroot/package/dhcpcd/dhcpcd.mk.orig 11 | +++ buildroot/package/dhcpcd/dhcpcd.mk 12 | @@ -4,7 +4,7 @@ 13 | # 14 | ################################################################################ 15 | 16 | -DHCPCD_VERSION = 10.1.0 17 | +DHCPCD_VERSION = 10.2.2 18 | DHCPCD_SOURCE = dhcpcd-$(DHCPCD_VERSION).tar.xz 19 | DHCPCD_SITE = https://github.com/NetworkConfiguration/dhcpcd/releases/download/v$(DHCPCD_VERSION) 20 | DHCPCD_DEPENDENCIES = host-pkgconf 21 | -------------------------------------------------------------------------------- /buildroot-patches/0003-dhcpcd-glibc241-fix/buildroot/package/dhcpcd/dhcpcd.hash: -------------------------------------------------------------------------------- 1 | # sha256 from https://github.com/NetworkConfiguration/dhcpcd/releases/tag/v10.2.2 2 | sha256 5f257b02f874b3b8cb031e5be79c99cf9cbd4f65eae2a50c9b1beddafb3f51bc dhcpcd-10.2.2.tar.xz 3 | # Locally calculated 4 | sha256 224b37cd1ef1365bd2ac9eaec9f32fee94e85dd40f95461ebcb21e758357ac1f LICENSE 5 | -------------------------------------------------------------------------------- /buildroot-patches/0003-dhcpcd-glibc241-fix/buildroot/package/dhcpcd/dhcpcd.hash.orig: -------------------------------------------------------------------------------- 1 | # sha256 from https://github.com/NetworkConfiguration/dhcpcd/releases/tag/v10.1.0 2 | sha256 abc307c63853da3199baa5c1e15fd5ede9d68d068b2a59ca14c5a6768e9cc3b7 dhcpcd-10.1.0.tar.xz 3 | # Locally calculated 4 | sha256 224b37cd1ef1365bd2ac9eaec9f32fee94e85dd40f95461ebcb21e758357ac1f LICENSE 5 | -------------------------------------------------------------------------------- /buildroot-patches/0003-dhcpcd-glibc241-fix/buildroot/package/dhcpcd/dhcpcd.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # dhcpcd 4 | # 5 | ################################################################################ 6 | 7 | DHCPCD_VERSION = 10.2.2 8 | DHCPCD_SOURCE = dhcpcd-$(DHCPCD_VERSION).tar.xz 9 | DHCPCD_SITE = https://github.com/NetworkConfiguration/dhcpcd/releases/download/v$(DHCPCD_VERSION) 10 | DHCPCD_DEPENDENCIES = host-pkgconf 11 | DHCPCD_LICENSE = BSD-2-Clause 12 | DHCPCD_LICENSE_FILES = LICENSE 13 | DHCPCD_CPE_ID_VALID = YES 14 | 15 | DHCPCD_CONFIG_OPTS = \ 16 | --libexecdir=/lib/dhcpcd \ 17 | --os=linux \ 18 | --privsepuser=dhcpcd 19 | 20 | DHCPCD_MAKE_OPTS = \ 21 | BINMODE=755 22 | 23 | ifeq ($(BR2_PACKAGE_DHCPCD_ENABLE_PRIVSEP),y) 24 | DHCPCD_CONFIG_OPTS += --enable-privsep 25 | else 26 | DHCPCD_CONFIG_OPTS += --disable-privsep 27 | endif 28 | 29 | ifeq ($(BR2_PACKAGE_HAS_UDEV),y) 30 | DHCPCD_CONFIG_OPTS += --with-udev 31 | DHCPCD_DEPENDENCIES += udev 32 | else 33 | DHCPCD_CONFIG_OPTS += --without-udev 34 | endif 35 | 36 | ifeq ($(BR2_STATIC_LIBS),y) 37 | DHCPCD_CONFIG_OPTS += --enable-static 38 | endif 39 | 40 | ifeq ($(BR2_USE_MMU),) 41 | DHCPCD_CONFIG_OPTS += --disable-fork 42 | endif 43 | 44 | define DHCPCD_CONFIGURE_CMDS 45 | (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(DHCPCD_CONFIG_OPTS)) 46 | endef 47 | 48 | define DHCPCD_BUILD_CMDS 49 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(DHCPCD_MAKE_OPTS) all 50 | endef 51 | 52 | define DHCPCD_INSTALL_TARGET_CMDS 53 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(DHCPCD_MAKE_OPTS) install DESTDIR=$(TARGET_DIR) 54 | endef 55 | 56 | # When network-manager is enabled together with dhcpcd, it will use 57 | # dhcpcd as a DHCP client, and will be in charge of running, so we 58 | # don't want the init script or service file to be installed. 59 | ifeq ($(BR2_PACKAGE_NETWORK_MANAGER),) 60 | define DHCPCD_INSTALL_INIT_SYSV 61 | $(INSTALL) -m 755 -D package/dhcpcd/S41dhcpcd \ 62 | $(TARGET_DIR)/etc/init.d/S41dhcpcd 63 | endef 64 | 65 | define DHCPCD_INSTALL_INIT_SYSTEMD 66 | $(INSTALL) -D -m 0644 package/dhcpcd/dhcpcd.service \ 67 | $(TARGET_DIR)/usr/lib/systemd/system/dhcpcd.service 68 | endef 69 | endif 70 | 71 | define DHCPCD_USERS 72 | dhcpcd -1 dhcpcd -1 * - - - dhcpcd user 73 | endef 74 | 75 | # NOTE: Even though this package has a configure script, it is not generated 76 | # using the autotools, so we have to use the generic package infrastructure. 77 | 78 | $(eval $(generic-package)) 79 | -------------------------------------------------------------------------------- /buildroot-patches/0003-dhcpcd-glibc241-fix/buildroot/package/dhcpcd/dhcpcd.mk.orig: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # dhcpcd 4 | # 5 | ################################################################################ 6 | 7 | DHCPCD_VERSION = 10.1.0 8 | DHCPCD_SOURCE = dhcpcd-$(DHCPCD_VERSION).tar.xz 9 | DHCPCD_SITE = https://github.com/NetworkConfiguration/dhcpcd/releases/download/v$(DHCPCD_VERSION) 10 | DHCPCD_DEPENDENCIES = host-pkgconf 11 | DHCPCD_LICENSE = BSD-2-Clause 12 | DHCPCD_LICENSE_FILES = LICENSE 13 | DHCPCD_CPE_ID_VALID = YES 14 | 15 | DHCPCD_CONFIG_OPTS = \ 16 | --libexecdir=/lib/dhcpcd \ 17 | --os=linux \ 18 | --privsepuser=dhcpcd 19 | 20 | DHCPCD_MAKE_OPTS = \ 21 | BINMODE=755 22 | 23 | ifeq ($(BR2_PACKAGE_DHCPCD_ENABLE_PRIVSEP),y) 24 | DHCPCD_CONFIG_OPTS += --enable-privsep 25 | else 26 | DHCPCD_CONFIG_OPTS += --disable-privsep 27 | endif 28 | 29 | ifeq ($(BR2_PACKAGE_HAS_UDEV),y) 30 | DHCPCD_CONFIG_OPTS += --with-udev 31 | DHCPCD_DEPENDENCIES += udev 32 | else 33 | DHCPCD_CONFIG_OPTS += --without-udev 34 | endif 35 | 36 | ifeq ($(BR2_STATIC_LIBS),y) 37 | DHCPCD_CONFIG_OPTS += --enable-static 38 | endif 39 | 40 | ifeq ($(BR2_USE_MMU),) 41 | DHCPCD_CONFIG_OPTS += --disable-fork 42 | endif 43 | 44 | define DHCPCD_CONFIGURE_CMDS 45 | (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(DHCPCD_CONFIG_OPTS)) 46 | endef 47 | 48 | define DHCPCD_BUILD_CMDS 49 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(DHCPCD_MAKE_OPTS) all 50 | endef 51 | 52 | define DHCPCD_INSTALL_TARGET_CMDS 53 | $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(DHCPCD_MAKE_OPTS) install DESTDIR=$(TARGET_DIR) 54 | endef 55 | 56 | # When network-manager is enabled together with dhcpcd, it will use 57 | # dhcpcd as a DHCP client, and will be in charge of running, so we 58 | # don't want the init script or service file to be installed. 59 | ifeq ($(BR2_PACKAGE_NETWORK_MANAGER),) 60 | define DHCPCD_INSTALL_INIT_SYSV 61 | $(INSTALL) -m 755 -D package/dhcpcd/S41dhcpcd \ 62 | $(TARGET_DIR)/etc/init.d/S41dhcpcd 63 | endef 64 | 65 | define DHCPCD_INSTALL_INIT_SYSTEMD 66 | $(INSTALL) -D -m 0644 package/dhcpcd/dhcpcd.service \ 67 | $(TARGET_DIR)/usr/lib/systemd/system/dhcpcd.service 68 | endef 69 | endif 70 | 71 | define DHCPCD_USERS 72 | dhcpcd -1 dhcpcd -1 * - - - dhcpcd user 73 | endef 74 | 75 | # NOTE: Even though this package has a configure script, it is not generated 76 | # using the autotools, so we have to use the generic package infrastructure. 77 | 78 | $(eval $(generic-package)) 79 | -------------------------------------------------------------------------------- /buildroot-patches/0004-ARM-16k-pagesize.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/arch/Config.in.arm.orig 2 | +++ buildroot/arch/Config.in.arm 3 | @@ -795,6 +795,35 @@ 4 | default "16K" if BR2_ARM64_PAGE_SIZE_16K 5 | default "64K" if BR2_ARM64_PAGE_SIZE_64K 6 | 7 | +choice 8 | + prompt "MMU Page Size" 9 | + default BR2_ARM_PAGE_SIZE_4K 10 | + depends on BR2_arm || BR2_armeb 11 | + help 12 | + The default is 4KB, and you should probably keep this unless 13 | + you know what you are doing. In particular, the kernel 14 | + configuration must match this choice. If your kernel is 15 | + built by Buildroot, the kernel configuration is 16 | + automatically adjusted, but not if you built your kernel 17 | + outside of Buildroot. 18 | + 19 | +config BR2_ARM_PAGE_SIZE_4K 20 | + bool "4KB" 21 | + 22 | +config BR2_ARM_PAGE_SIZE_16K 23 | + bool "16KB" 24 | + 25 | +config BR2_ARM_PAGE_SIZE_64K 26 | + bool "64KB" 27 | + 28 | +endchoice 29 | + 30 | +config BR2_ARM_PAGE_SIZE 31 | + string 32 | + default "4K" if BR2_ARM_PAGE_SIZE_4K 33 | + default "16K" if BR2_ARM_PAGE_SIZE_16K 34 | + default "64K" if BR2_ARM_PAGE_SIZE_64K 35 | + 36 | config BR2_ARCH 37 | default "arm" if BR2_arm 38 | default "armeb" if BR2_armeb 39 | --- buildroot/arch/arch.mk.orig 40 | +++ buildroot/arch/arch.mk 41 | @@ -19,13 +19,13 @@ 42 | GCC_TARGET_MODE := $(call qstrip,$(BR2_GCC_TARGET_MODE)) 43 | 44 | # Explicitly set LD's "max-page-size" instead of relying on some defaults 45 | -ifeq ($(BR2_ARC_PAGE_SIZE_4K)$(BR2_ARM64_PAGE_SIZE_4K),y) 46 | +ifeq ($(BR2_ARC_PAGE_SIZE_4K)$(BR2_ARM64_PAGE_SIZE_4K)$(BR2_ARM_PAGE_SIZE_4K),y) 47 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 48 | else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y) 49 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192 -Wl,-z,common-page-size=8192 50 | -else ifeq ($(BR2_ARC_PAGE_SIZE_16K)$(BR2_ARM64_PAGE_SIZE_16K),y) 51 | +else ifeq ($(BR2_ARC_PAGE_SIZE_16K)$(BR2_ARM64_PAGE_SIZE_16K)$(BR2_ARM_PAGE_SIZE_16K),y) 52 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384 53 | -else ifeq ($(BR2_ARM64_PAGE_SIZE_64K),y) 54 | +else ifeq ($(BR2_ARM64_PAGE_SIZE_64K)$(BR2_ARM_PAGE_SIZE_64K),y) 55 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=65536 -Wl,-z,common-page-size=65536 56 | endif 57 | 58 | -------------------------------------------------------------------------------- /buildroot-patches/0004-ARM-16k-pagesize/buildroot/arch/arch.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # Architecture-specific definitions 4 | # 5 | ################################################################################ 6 | 7 | # Allow GCC target configuration settings to be optionally 8 | # overwritten by architecture specific makefiles. 9 | 10 | # Makefiles must use the GCC_TARGET_* variables below instead 11 | # of the BR2_GCC_TARGET_* versions. 12 | GCC_TARGET_ARCH := $(call qstrip,$(BR2_GCC_TARGET_ARCH)) 13 | GCC_TARGET_ABI := $(call qstrip,$(BR2_GCC_TARGET_ABI)) 14 | GCC_TARGET_NAN := $(call qstrip,$(BR2_GCC_TARGET_NAN)) 15 | GCC_TARGET_FP32_MODE := $(call qstrip,$(BR2_GCC_TARGET_FP32_MODE)) 16 | GCC_TARGET_CPU := $(call qstrip,$(BR2_GCC_TARGET_CPU)) 17 | GCC_TARGET_FPU := $(call qstrip,$(BR2_GCC_TARGET_FPU)) 18 | GCC_TARGET_FLOAT_ABI := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI)) 19 | GCC_TARGET_MODE := $(call qstrip,$(BR2_GCC_TARGET_MODE)) 20 | 21 | # Explicitly set LD's "max-page-size" instead of relying on some defaults 22 | ifeq ($(BR2_ARC_PAGE_SIZE_4K)$(BR2_ARM64_PAGE_SIZE_4K)$(BR2_ARM_PAGE_SIZE_4K),y) 23 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 24 | else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y) 25 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192 -Wl,-z,common-page-size=8192 26 | else ifeq ($(BR2_ARC_PAGE_SIZE_16K)$(BR2_ARM64_PAGE_SIZE_16K)$(BR2_ARM_PAGE_SIZE_16K),y) 27 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384 28 | else ifeq ($(BR2_ARM64_PAGE_SIZE_64K)$(BR2_ARM_PAGE_SIZE_64K),y) 29 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=65536 -Wl,-z,common-page-size=65536 30 | endif 31 | 32 | # Include any architecture specific makefiles. 33 | -include $(sort $(wildcard arch/arch.mk.*)) 34 | -------------------------------------------------------------------------------- /buildroot-patches/0004-ARM-16k-pagesize/buildroot/arch/arch.mk.orig: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # Architecture-specific definitions 4 | # 5 | ################################################################################ 6 | 7 | # Allow GCC target configuration settings to be optionally 8 | # overwritten by architecture specific makefiles. 9 | 10 | # Makefiles must use the GCC_TARGET_* variables below instead 11 | # of the BR2_GCC_TARGET_* versions. 12 | GCC_TARGET_ARCH := $(call qstrip,$(BR2_GCC_TARGET_ARCH)) 13 | GCC_TARGET_ABI := $(call qstrip,$(BR2_GCC_TARGET_ABI)) 14 | GCC_TARGET_NAN := $(call qstrip,$(BR2_GCC_TARGET_NAN)) 15 | GCC_TARGET_FP32_MODE := $(call qstrip,$(BR2_GCC_TARGET_FP32_MODE)) 16 | GCC_TARGET_CPU := $(call qstrip,$(BR2_GCC_TARGET_CPU)) 17 | GCC_TARGET_FPU := $(call qstrip,$(BR2_GCC_TARGET_FPU)) 18 | GCC_TARGET_FLOAT_ABI := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI)) 19 | GCC_TARGET_MODE := $(call qstrip,$(BR2_GCC_TARGET_MODE)) 20 | 21 | # Explicitly set LD's "max-page-size" instead of relying on some defaults 22 | ifeq ($(BR2_ARC_PAGE_SIZE_4K)$(BR2_ARM64_PAGE_SIZE_4K),y) 23 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 24 | else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y) 25 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192 -Wl,-z,common-page-size=8192 26 | else ifeq ($(BR2_ARC_PAGE_SIZE_16K)$(BR2_ARM64_PAGE_SIZE_16K),y) 27 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384 28 | else ifeq ($(BR2_ARM64_PAGE_SIZE_64K),y) 29 | ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=65536 -Wl,-z,common-page-size=65536 30 | endif 31 | 32 | # Include any architecture specific makefiles. 33 | -include $(sort $(wildcard arch/arch.mk.*)) 34 | -------------------------------------------------------------------------------- /buildroot-patches/0007-psplash.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/package/psplash/psplash.mk.orig 2 | +++ buildroot/package/psplash/psplash.mk 3 | @@ -20,13 +20,13 @@ 4 | endif 5 | 6 | ifeq ($(BR2_PACKAGE_PSPLASH_PROGRESS_BAR),y) 7 | -PSPLASH_CONF_OPTS += --enable-progress-bar 8 | +PSPLASH_CONF_OPTS += 9 | else 10 | PSPLASH_CONF_OPTS += --disable-progress-bar 11 | endif 12 | 13 | ifeq ($(BR2_PACKAGE_PSPLASH_STARTUP_MSG),y) 14 | -PSPLASH_CONF_OPTS += --enable-startup-msg 15 | +PSPLASH_CONF_OPTS += 16 | else 17 | PSPLASH_CONF_OPTS += --disable-startup-msg 18 | endif 19 | -------------------------------------------------------------------------------- /buildroot-patches/0007-psplash/buildroot/package/psplash/psplash.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # psplash 4 | # 5 | ################################################################################ 6 | 7 | PSPLASH_VERSION = 44afb7506d43cca15582b4c5b90ba5580344d75d 8 | PSPLASH_SITE = https://git.yoctoproject.org/psplash 9 | PSPLASH_SITE_METHOD = git 10 | PSPLASH_LICENSE = GPL-2.0+ 11 | PSPLASH_LICENSE_FILES = COPYING 12 | PSPLASH_AUTORECONF = YES 13 | PSPLASH_DEPENDENCIES = host-gdk-pixbuf host-pkgconf 14 | 15 | ifeq ($(BR2_PACKAGE_SYSTEMD),y) 16 | PSPLASH_DEPENDENCIES += systemd 17 | PSPLASH_CONF_OPTS += --with-systemd 18 | else 19 | PSPLASH_CONF_OPTS += --without-systemd 20 | endif 21 | 22 | ifeq ($(BR2_PACKAGE_PSPLASH_PROGRESS_BAR),y) 23 | PSPLASH_CONF_OPTS += 24 | else 25 | PSPLASH_CONF_OPTS += --disable-progress-bar 26 | endif 27 | 28 | ifeq ($(BR2_PACKAGE_PSPLASH_STARTUP_MSG),y) 29 | PSPLASH_CONF_OPTS += 30 | else 31 | PSPLASH_CONF_OPTS += --disable-startup-msg 32 | endif 33 | 34 | PSPLASH_IMAGE = $(call qstrip,$(BR2_PACKAGE_PSPLASH_IMAGE)) 35 | 36 | ifneq ($(PSPLASH_IMAGE),) 37 | define PSPLASH_COPY_IMAGE 38 | cp $(PSPLASH_IMAGE) $(@D)/base-images/psplash-poky.png 39 | endef 40 | 41 | PSPLASH_POST_EXTRACT_HOOKS += PSPLASH_COPY_IMAGE 42 | endif 43 | 44 | define PSPLASH_INSTALL_INIT_SYSTEMD 45 | $(INSTALL) -D -m 644 package/psplash/psplash-start.service \ 46 | $(TARGET_DIR)/usr/lib/systemd/system/psplash-start.service 47 | 48 | $(INSTALL) -D -m 644 package/psplash/psplash-systemd.service \ 49 | $(TARGET_DIR)/usr/lib/systemd/system/psplash-systemd.service 50 | endef 51 | 52 | $(eval $(autotools-package)) 53 | -------------------------------------------------------------------------------- /buildroot-patches/0007-psplash/buildroot/package/psplash/psplash.mk.orig: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # psplash 4 | # 5 | ################################################################################ 6 | 7 | PSPLASH_VERSION = 44afb7506d43cca15582b4c5b90ba5580344d75d 8 | PSPLASH_SITE = https://git.yoctoproject.org/psplash 9 | PSPLASH_SITE_METHOD = git 10 | PSPLASH_LICENSE = GPL-2.0+ 11 | PSPLASH_LICENSE_FILES = COPYING 12 | PSPLASH_AUTORECONF = YES 13 | PSPLASH_DEPENDENCIES = host-gdk-pixbuf host-pkgconf 14 | 15 | ifeq ($(BR2_PACKAGE_SYSTEMD),y) 16 | PSPLASH_DEPENDENCIES += systemd 17 | PSPLASH_CONF_OPTS += --with-systemd 18 | else 19 | PSPLASH_CONF_OPTS += --without-systemd 20 | endif 21 | 22 | ifeq ($(BR2_PACKAGE_PSPLASH_PROGRESS_BAR),y) 23 | PSPLASH_CONF_OPTS += --enable-progress-bar 24 | else 25 | PSPLASH_CONF_OPTS += --disable-progress-bar 26 | endif 27 | 28 | ifeq ($(BR2_PACKAGE_PSPLASH_STARTUP_MSG),y) 29 | PSPLASH_CONF_OPTS += --enable-startup-msg 30 | else 31 | PSPLASH_CONF_OPTS += --disable-startup-msg 32 | endif 33 | 34 | PSPLASH_IMAGE = $(call qstrip,$(BR2_PACKAGE_PSPLASH_IMAGE)) 35 | 36 | ifneq ($(PSPLASH_IMAGE),) 37 | define PSPLASH_COPY_IMAGE 38 | cp $(PSPLASH_IMAGE) $(@D)/base-images/psplash-poky.png 39 | endef 40 | 41 | PSPLASH_POST_EXTRACT_HOOKS += PSPLASH_COPY_IMAGE 42 | endif 43 | 44 | define PSPLASH_INSTALL_INIT_SYSTEMD 45 | $(INSTALL) -D -m 644 package/psplash/psplash-start.service \ 46 | $(TARGET_DIR)/usr/lib/systemd/system/psplash-start.service 47 | 48 | $(INSTALL) -D -m 644 package/psplash/psplash-systemd.service \ 49 | $(TARGET_DIR)/usr/lib/systemd/system/psplash-systemd.service 50 | endef 51 | 52 | $(eval $(autotools-package)) 53 | -------------------------------------------------------------------------------- /buildroot-patches/0008-rpi-firmware.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/package/rpi-firmware/Config.in.orig 2 | +++ buildroot/package/rpi-firmware/Config.in 3 | @@ -11,6 +11,10 @@ 4 | 5 | if BR2_PACKAGE_RPI_FIRMWARE 6 | 7 | +config BR2_PACKAGE_RPI_FIRMWARE_VERSION 8 | + string "Custom firmware version" 9 | + default "83dafbc92c0e63f76ca2ecdd42462d56489d1c77" 10 | + 11 | config BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN 12 | bool "rpi 0/1/2/3 bootcode.bin" 13 | help 14 | --- buildroot/package/rpi-firmware/rpi-firmware.mk.orig 15 | +++ buildroot/package/rpi-firmware/rpi-firmware.mk 16 | @@ -4,7 +4,7 @@ 17 | # 18 | ################################################################################ 19 | 20 | -RPI_FIRMWARE_VERSION = 5476720d52cf579dc1627715262b30ba1242525e 21 | +RPI_FIRMWARE_VERSION = $(call qstrip,$(BR2_PACKAGE_RPI_FIRMWARE_VERSION)) 22 | RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION)) 23 | RPI_FIRMWARE_LICENSE = BSD-3-Clause 24 | RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom 25 | -------------------------------------------------------------------------------- /buildroot-patches/0009-qt6base-xcb-cursor.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/package/qt6/qt6base/Config.in.orig 2 | +++ buildroot/package/qt6/qt6base/Config.in 3 | @@ -65,6 +65,7 @@ 4 | select BR2_PACKAGE_XCB_UTIL_KEYSYMS 5 | select BR2_PACKAGE_XCB_UTIL_RENDERUTIL 6 | select BR2_PACKAGE_XCB_UTIL_WM 7 | + select BR2_PACKAGE_XCB_UTIL_CURSOR 8 | select BR2_PACKAGE_LIBXKBCOMMON 9 | 10 | comment "X.org XCB backend available if X.org is enabled" 11 | --- buildroot/package/qt6/qt6base/qt6base.mk.orig 12 | +++ buildroot/package/qt6/qt6base/qt6base.mk 13 | @@ -207,6 +207,7 @@ 14 | xcb-util-image \ 15 | xcb-util-keysyms \ 16 | xcb-util-renderutil \ 17 | + xcb-util-cursor \ 18 | xlib_libX11 19 | else 20 | QT6BASE_CONF_OPTS += -DFEATURE_xcb=OFF 21 | -------------------------------------------------------------------------------- /buildroot-patches/0014-qt5webengine-py311-fix.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/package/qt5/qt5webengine-chromium/0003-python311-fixes.patch.orig 2 | +++ buildroot/package/qt5/qt5webengine-chromium/0003-python311-fixes.patch 3 | @@ -0,0 +1,31 @@ 4 | +--- a/chromium/tools/metrics/ukm/ukm_model.py.orig 2023-03-02 12:27:03.725118730 +0100 5 | ++++ b/chromium/tools/metrics/ukm/ukm_model.py 2021-12-15 17:09:27.000000000 +0100 6 | +@@ -42,7 +42,7 @@ 7 | + _STATISTICS_TYPE = models.ObjectNodeType( 8 | + 'statistics', 9 | + attributes=[ 10 | +- ('export', str, r'^(?i)(|true|false)$'), 11 | ++ ('export', str, r'(?i)^(|true|false)$'), 12 | + ], 13 | + children=[ 14 | + models.ChildType(_QUANTILES_TYPE.tag, _QUANTILES_TYPE, multiple=False), 15 | +@@ -94,7 +94,7 @@ 16 | + 'event', 17 | + attributes=[ 18 | + ('name', str, r'^[A-Za-z0-9.]+$'), 19 | +- ('singular', str, r'^(?i)(|true|false)$'), 20 | ++ ('singular', str, r'(?i)^(|true|false)$'), 21 | + ], 22 | + alphabetization=[ 23 | + (_OBSOLETE_TYPE.tag, _KEEP_ORDER), 24 | +--- a/chromium/tools/grit/grit/util.py.orig 2021-12-15 17:09:27.000000000 +0100 25 | ++++ b/chromium/tools/grit/grit/util.py 2023-03-02 14:21:33.655159542 +0100 26 | +@@ -211,7 +211,7 @@ 27 | + mode = 'rb' 28 | + encoding = None 29 | + else: 30 | +- mode = 'rU' 31 | ++ mode = 'r' 32 | + 33 | + with io.open(abs(filename), mode, encoding=encoding) as f: 34 | + return f.read() 35 | -------------------------------------------------------------------------------- /buildroot-patches/0014-qt5webengine-py311-fix/buildroot/package/qt5/qt5webengine-chromium/0003-python311-fixes.patch: -------------------------------------------------------------------------------- 1 | --- a/chromium/tools/metrics/ukm/ukm_model.py.orig 2023-03-02 12:27:03.725118730 +0100 2 | +++ b/chromium/tools/metrics/ukm/ukm_model.py 2021-12-15 17:09:27.000000000 +0100 3 | @@ -42,7 +42,7 @@ 4 | _STATISTICS_TYPE = models.ObjectNodeType( 5 | 'statistics', 6 | attributes=[ 7 | - ('export', str, r'^(?i)(|true|false)$'), 8 | + ('export', str, r'(?i)^(|true|false)$'), 9 | ], 10 | children=[ 11 | models.ChildType(_QUANTILES_TYPE.tag, _QUANTILES_TYPE, multiple=False), 12 | @@ -94,7 +94,7 @@ 13 | 'event', 14 | attributes=[ 15 | ('name', str, r'^[A-Za-z0-9.]+$'), 16 | - ('singular', str, r'^(?i)(|true|false)$'), 17 | + ('singular', str, r'(?i)^(|true|false)$'), 18 | ], 19 | alphabetization=[ 20 | (_OBSOLETE_TYPE.tag, _KEEP_ORDER), 21 | --- a/chromium/tools/grit/grit/util.py.orig 2021-12-15 17:09:27.000000000 +0100 22 | +++ b/chromium/tools/grit/grit/util.py 2023-03-02 14:21:33.655159542 +0100 23 | @@ -211,7 +211,7 @@ 24 | mode = 'rb' 25 | encoding = None 26 | else: 27 | - mode = 'rU' 28 | + mode = 'r' 29 | 30 | with io.open(abs(filename), mode, encoding=encoding) as f: 31 | return f.read() 32 | -------------------------------------------------------------------------------- /buildroot-patches/0014-qt5webengine-py311-fix/buildroot/package/qt5/qt5webengine-chromium/0003-python311-fixes.patch.orig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/buildroot-patches/0014-qt5webengine-py311-fix/buildroot/package/qt5/qt5webengine-chromium/0003-python311-fixes.patch.orig -------------------------------------------------------------------------------- /buildroot-patches/0018-linux-intree-overlays.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/linux/Config.in.orig 2 | +++ buildroot/linux/Config.in 3 | @@ -434,6 +434,12 @@ 4 | Choose this option to support Device Tree overlays 5 | on the target system. 6 | 7 | +config BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS 8 | + bool "Deploy in-tree Device Tree overlays" 9 | + help 10 | + Deploy in-tree device tree overlays stored in 11 | + the architectures device tree directory overlays/. 12 | + 13 | endif 14 | 15 | config BR2_LINUX_KERNEL_INSTALL_TARGET 16 | --- buildroot/linux/linux.mk.orig 17 | +++ buildroot/linux/linux.mk 18 | @@ -459,6 +459,14 @@ 19 | ) 20 | endef 21 | endif # BR2_LINUX_KERNEL_APPENDED_DTB 22 | +ifeq ($(BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS),y) 23 | +define LINUX_INSTALL_OVERLAYS 24 | + $(foreach ovldtb,$(wildcard $(LINUX_ARCH_PATH)/boot/dts/overlays/*.dtbo), \ 25 | + $(INSTALL) -D -m 0644 $(ovldtb) $(1)/overlays/$(notdir $(ovldtb)) 26 | + ) 27 | + $(INSTALL) -D -m 0644 $(LINUX_ARCH_PATH)/boot/dts/overlays/overlay_map.dtb $(1)/overlays/ 28 | +endef 29 | +endif # BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS 30 | endif # BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT 31 | endif # BR2_LINUX_KERNEL_DTS_SUPPORT 32 | 33 | @@ -529,6 +537,7 @@ 34 | define LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET 35 | $(call LINUX_INSTALL_IMAGE,$(TARGET_DIR)/boot) 36 | $(call LINUX_INSTALL_DTB,$(TARGET_DIR)/boot) 37 | + $(call LINUX_INSTALL_OVERLAYS,$(TARGET_DIR)/boot) 38 | endef 39 | endif 40 | 41 | @@ -543,6 +552,7 @@ 42 | define LINUX_INSTALL_IMAGES_CMDS 43 | $(call LINUX_INSTALL_IMAGE,$(BINARIES_DIR)) 44 | $(call LINUX_INSTALL_DTB,$(BINARIES_DIR)) 45 | + $(call LINUX_INSTALL_OVERLAYS,$(BINARIES_DIR)) 46 | endef 47 | 48 | ifeq ($(BR2_STRIP_strip),y) 49 | -------------------------------------------------------------------------------- /buildroot-patches/0019-qt5webkit-fixes.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/package/qt5/qt5webkit/0009-uint32-fixes-gcc13.patch.orig 2 | +++ buildroot/package/qt5/qt5webkit/0009-uint32-fixes-gcc13.patch 3 | @@ -0,0 +1,10 @@ 4 | +--- a/Source/ThirdParty/ANGLE/src/common/mathutil.h 2020-03-04 18:16:37.000000000 +0100 5 | ++++ b/Source/ThirdParty/ANGLE/src/common/mathutil.h 2025-01-21 15:37:53.686866005 +0100 6 | +@@ -16,6 +16,7 @@ 7 | + #include 8 | + #include 9 | + #include 10 | ++#include 11 | + 12 | + namespace gl 13 | + { 14 | --- buildroot/package/qt5/qt5webkit/qt5webkit.mk.orig 15 | +++ buildroot/package/qt5/qt5webkit/qt5webkit.mk 16 | @@ -27,6 +27,8 @@ 17 | ifeq ($(BR2_PACKAGE_QT5BASE_OPENGL),y) 18 | QT5WEBKIT_CONF_OPTS += \ 19 | -DENABLE_OPENGL=ON \ 20 | + -DQt5Gui_OPENGL_LIBRARIES="GL" \ 21 | + -DQt5Gui_EGL_LIBRARIES="EGL" \ 22 | -DENABLE_WEBKIT2=ON 23 | else 24 | QT5WEBKIT_CONF_OPTS += \ 25 | @@ -57,4 +59,24 @@ 26 | -DSHARED_CORE=ON \ 27 | -DUSE_LIBHYPHEN=OFF 28 | 29 | +define QT5WEBKIT_INSTALL_STAGING_FIX_INCLUDES 30 | + rm -rf $(STAGING_DIR)/usr/include/qt5/QtWebKit 31 | + mv -v $(STAGING_DIR)/usr/include/QtWebKit $(STAGING_DIR)/usr/include/qt5/QtWebKit 32 | + rm -rf $(STAGING_DIR)/usr/include/qt5/QtWebKitWidgets 33 | + mv -v $(STAGING_DIR)/usr/include/QtWebKitWidgets $(STAGING_DIR)/usr/include/qt5/QtWebKitWidgets 34 | +endef 35 | +QT5WEBKIT_POST_INSTALL_STAGING_HOOKS += QT5WEBKIT_INSTALL_STAGING_FIX_INCLUDES 36 | +define QT5WEBKIT_INSTALL_STAGING_FIX_MKSPECS 37 | + sed -i 's/\/usr\/include/$$$$QT_MODULE_INCLUDE_BASE/g' $(STAGING_DIR)/usr/mkspecs/modules/qt_lib*.pri 38 | + sed -i 's/\/usr\/lib/$$$$QT_MODULE_LIB_BASE/g' $(STAGING_DIR)/usr/mkspecs/modules/qt_lib*.pri 39 | + sed -i 's/\/usr\/bin/$$$$QT_MODULE_BIN_BASE/g' $(STAGING_DIR)/usr/mkspecs/modules/qt_lib*.pri 40 | + mv -v $(STAGING_DIR)/usr/mkspecs/modules/qt_lib*.pri $(HOST_DIR)/usr/mkspecs/modules/ 41 | +endef 42 | +QT5WEBKIT_POST_INSTALL_STAGING_HOOKS += QT5WEBKIT_INSTALL_STAGING_FIX_MKSPECS 43 | + 44 | +define QT5WEBKIT_INSTALL_TARGET_CMDS 45 | + cp -av $(@D)/lib/* $(TARGET_DIR)/usr/lib/ 46 | + cp -av $(@D)/imports/* $(TARGET_DIR)/usr/qml/ 47 | +endef 48 | + 49 | $(eval $(cmake-package)) 50 | -------------------------------------------------------------------------------- /buildroot-patches/0019-qt5webkit-fixes/buildroot/package/qt5/qt5webkit/0009-uint32-fixes-gcc13.patch: -------------------------------------------------------------------------------- 1 | --- a/Source/ThirdParty/ANGLE/src/common/mathutil.h 2020-03-04 18:16:37.000000000 +0100 2 | +++ b/Source/ThirdParty/ANGLE/src/common/mathutil.h 2025-01-21 15:37:53.686866005 +0100 3 | @@ -16,6 +16,7 @@ 4 | #include 5 | #include 6 | #include 7 | +#include 8 | 9 | namespace gl 10 | { 11 | -------------------------------------------------------------------------------- /buildroot-patches/0019-qt5webkit-fixes/buildroot/package/qt5/qt5webkit/0009-uint32-fixes-gcc13.patch.orig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/buildroot-patches/0019-qt5webkit-fixes/buildroot/package/qt5/qt5webkit/0009-uint32-fixes-gcc13.patch.orig -------------------------------------------------------------------------------- /buildroot-patches/0019-qt5webkit-fixes/buildroot/package/qt5/qt5webkit/qt5webkit.mk.orig: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # qt5webkit 4 | # 5 | ################################################################################ 6 | 7 | QT5WEBKIT_VERSION = 5.212.0-alpha4 8 | QT5WEBKIT_SITE = https://github.com/qtwebkit/qtwebkit/releases/download/qtwebkit-$(QT5WEBKIT_VERSION) 9 | QT5WEBKIT_SOURCE = qtwebkit-$(QT5WEBKIT_VERSION).tar.xz 10 | QT5WEBKIT_DEPENDENCIES = \ 11 | host-bison host-flex host-gperf host-python3 host-ruby gstreamer1 \ 12 | gst1-plugins-base icu leveldb jpeg libpng libxml2 libxslt qt5location \ 13 | openssl qt5sensors qt5webchannel sqlite webp woff2 14 | QT5WEBKIT_INSTALL_STAGING = YES 15 | 16 | QT5WEBKIT_LICENSE_FILES = Source/WebCore/LICENSE-LGPL-2 Source/WebCore/LICENSE-LGPL-2.1 17 | 18 | QT5WEBKIT_LICENSE = LGPL-2.1+, BSD-3-Clause, BSD-2-Clause 19 | # Source files contain references to LGPL_EXCEPTION.txt but it is not included 20 | # in the archive. 21 | QT5WEBKIT_LICENSE_FILES += LICENSE.LGPLv21 22 | 23 | ifeq ($(BR2_MIPS_CPU_MIPS32R6),y) 24 | QT5WEBKIT_CONF_OPTS += -DENABLE_JIT=OFF 25 | endif 26 | 27 | ifeq ($(BR2_PACKAGE_QT5BASE_OPENGL),y) 28 | QT5WEBKIT_CONF_OPTS += \ 29 | -DENABLE_OPENGL=ON \ 30 | -DENABLE_WEBKIT2=ON 31 | else 32 | QT5WEBKIT_CONF_OPTS += \ 33 | -DENABLE_OPENGL=OFF \ 34 | -DENABLE_WEBKIT2=OFF 35 | endif 36 | 37 | ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y) 38 | QT5WEBKIT_DEPENDENCIES += xlib_libXcomposite xlib_libXext xlib_libXrender 39 | endif 40 | 41 | ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) 42 | QT5WEBKIT_DEPENDENCIES += qt5declarative 43 | endif 44 | 45 | ifeq ($(BR2_PACKAGE_LIBEXECINFO),y) 46 | QT5WEBKIT_DEPENDENCIES += libexecinfo 47 | endif 48 | 49 | ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) 50 | QT5WEBKIT_CONF_OPTS += -DENABLE_SAMPLING_PROFILER=OFF 51 | endif 52 | 53 | QT5WEBKIT_CONF_OPTS += \ 54 | -DENABLE_TOOLS=OFF \ 55 | -DPORT=Qt \ 56 | -DPYTHON_EXECUTABLE=$(HOST_DIR)/bin/python3 \ 57 | -DSHARED_CORE=ON \ 58 | -DUSE_LIBHYPHEN=OFF 59 | 60 | $(eval $(cmake-package)) 61 | -------------------------------------------------------------------------------- /buildroot-patches/0021-webkitgtk-minibrowser.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/package/webkitgtk/0000-minibrowser-zoom-level.patch.orig 2 | +++ buildroot/package/webkitgtk/0000-minibrowser-zoom-level.patch 3 | @@ -0,0 +1,29 @@ 4 | +--- a/Tools/MiniBrowser/gtk/main.c 2024-08-19 08:28:40.315243700 +0200 5 | ++++ b/Tools/MiniBrowser/gtk/main.c 2025-03-22 18:35:45.248938849 +0100 6 | +@@ -70,6 +70,7 @@ 7 | + static const char *cookiesFile; 8 | + static const char *cookiesPolicy; 9 | + static const char *proxy; 10 | ++static gdouble zoomLevel = 0.0; 11 | + static gboolean darkMode; 12 | + static char* timeZone; 13 | + static gboolean enableITP; 14 | +@@ -120,6 +121,10 @@ 15 | + if (editorMode) 16 | + webkit_web_view_set_editable(webView, TRUE); 17 | + 18 | ++ // set zoom/scale level if wanted 19 | ++ if (zoomLevel > 0.0) 20 | ++ webkit_web_view_set_zoom_level(webView, zoomLevel); 21 | ++ 22 | + browser_window_append_view(window, webView); 23 | + return webView; 24 | + } 25 | +@@ -166,6 +171,7 @@ 26 | + { "session-file", 's', 0, G_OPTION_ARG_FILENAME, &sessionFile, "Session file", "FILE" }, 27 | + { "geometry", 'g', 0, G_OPTION_ARG_STRING, &geometry, "Unused. Kept for backwards-compatibility only", "GEOMETRY" }, 28 | + { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullScreen, "Set the window to full-screen mode", NULL }, 29 | ++ { "zoom", 'z', 0, G_OPTION_ARG_DOUBLE, &zoomLevel, "Set the window zoom level upon start", NULL }, 30 | + { "private", 'p', 0, G_OPTION_ARG_NONE, &privateMode, "Run in private browsing mode", NULL }, 31 | + { "automation", 0, 0, G_OPTION_ARG_NONE, &automationMode, "Run in automation mode", NULL }, 32 | + { "cookies-file", 'c', 0, G_OPTION_ARG_FILENAME, &cookiesFile, "Persistent cookie storage database file", "FILE" }, 33 | -------------------------------------------------------------------------------- /buildroot-patches/0021-webkitgtk-minibrowser/buildroot/package/webkitgtk/0000-minibrowser-zoom-level.patch: -------------------------------------------------------------------------------- 1 | --- a/Tools/MiniBrowser/gtk/main.c 2024-08-19 08:28:40.315243700 +0200 2 | +++ b/Tools/MiniBrowser/gtk/main.c 2025-03-22 18:35:45.248938849 +0100 3 | @@ -70,6 +70,7 @@ 4 | static const char *cookiesFile; 5 | static const char *cookiesPolicy; 6 | static const char *proxy; 7 | +static gdouble zoomLevel = 0.0; 8 | static gboolean darkMode; 9 | static char* timeZone; 10 | static gboolean enableITP; 11 | @@ -120,6 +121,10 @@ 12 | if (editorMode) 13 | webkit_web_view_set_editable(webView, TRUE); 14 | 15 | + // set zoom/scale level if wanted 16 | + if (zoomLevel > 0.0) 17 | + webkit_web_view_set_zoom_level(webView, zoomLevel); 18 | + 19 | browser_window_append_view(window, webView); 20 | return webView; 21 | } 22 | @@ -166,6 +171,7 @@ 23 | { "session-file", 's', 0, G_OPTION_ARG_FILENAME, &sessionFile, "Session file", "FILE" }, 24 | { "geometry", 'g', 0, G_OPTION_ARG_STRING, &geometry, "Unused. Kept for backwards-compatibility only", "GEOMETRY" }, 25 | { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullScreen, "Set the window to full-screen mode", NULL }, 26 | + { "zoom", 'z', 0, G_OPTION_ARG_DOUBLE, &zoomLevel, "Set the window zoom level upon start", NULL }, 27 | { "private", 'p', 0, G_OPTION_ARG_NONE, &privateMode, "Run in private browsing mode", NULL }, 28 | { "automation", 0, 0, G_OPTION_ARG_NONE, &automationMode, "Run in automation mode", NULL }, 29 | { "cookies-file", 'c', 0, G_OPTION_ARG_FILENAME, &cookiesFile, "Persistent cookie storage database file", "FILE" }, 30 | -------------------------------------------------------------------------------- /buildroot-patches/0021-webkitgtk-minibrowser/buildroot/package/webkitgtk/0000-minibrowser-zoom-level.patch.orig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/buildroot-patches/0021-webkitgtk-minibrowser/buildroot/package/webkitgtk/0000-minibrowser-zoom-level.patch.orig -------------------------------------------------------------------------------- /buildroot-patches/0022-webkitgtk-fixes.patch: -------------------------------------------------------------------------------- 1 | --- buildroot/package/webkitgtk/0000-mediasourceprivategstreamer.patch.orig 2 | +++ buildroot/package/webkitgtk/0000-mediasourceprivategstreamer.patch 3 | @@ -0,0 +1,16 @@ 4 | +--- a/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h 2024-11-26 10:32:28.891127800 +0100 5 | ++++ b/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h 2025-03-22 23:38:07.716515423 +0100 6 | +@@ -94,12 +94,12 @@ 7 | + Ref m_logger; 8 | + const void* m_logIdentifier; 9 | + uint64_t m_nextSourceBufferID { 0 }; 10 | ++#endif 11 | + 12 | + // Stores known track IDs, so we can work around ID collisions between multiple source buffers. 13 | + // The registry is placed here to enforce ID uniqueness specifically by player, not by process, 14 | + // since its not an issue if multiple players use the same ID, and we want to preserve IDs as much as possible. 15 | + HashSet, WTF::UnsignedWithZeroKeyHashTraits> m_trackIdRegistry; 16 | +-#endif 17 | + }; 18 | + 19 | + } // namespace WebCore 20 | -------------------------------------------------------------------------------- /buildroot-patches/0022-webkitgtk-fixes/buildroot/package/webkitgtk/0000-mediasourceprivategstreamer.patch: -------------------------------------------------------------------------------- 1 | --- a/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h 2024-11-26 10:32:28.891127800 +0100 2 | +++ b/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h 2025-03-22 23:38:07.716515423 +0100 3 | @@ -94,12 +94,12 @@ 4 | Ref m_logger; 5 | const void* m_logIdentifier; 6 | uint64_t m_nextSourceBufferID { 0 }; 7 | +#endif 8 | 9 | // Stores known track IDs, so we can work around ID collisions between multiple source buffers. 10 | // The registry is placed here to enforce ID uniqueness specifically by player, not by process, 11 | // since its not an issue if multiple players use the same ID, and we want to preserve IDs as much as possible. 12 | HashSet, WTF::UnsignedWithZeroKeyHashTraits> m_trackIdRegistry; 13 | -#endif 14 | }; 15 | 16 | } // namespace WebCore 17 | -------------------------------------------------------------------------------- /buildroot-patches/0022-webkitgtk-fixes/buildroot/package/webkitgtk/0000-mediasourceprivategstreamer.patch.orig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/buildroot-patches/0022-webkitgtk-fixes/buildroot/package/webkitgtk/0000-mediasourceprivategstreamer.patch.orig -------------------------------------------------------------------------------- /buildroot-patches/create_patches.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # This helper script will create/recreate our 0000-XXXXXX.patch 4 | # patchset files by generating diff output of orig<>real file differences in 5 | # all the 0000-XXXX folders 6 | 7 | export LC_ALL=C 8 | 9 | patchdirs=$(find . -maxdepth 1 -type d -regex "\\./[0-9][0-9][0-9][0-9]-.*" | sort) 10 | 11 | rm -f ./*.patch 12 | 13 | for dir in ${patchdirs}; do 14 | ( 15 | cd "${dir}" || exit 1 16 | origfiles=$(find buildroot -name "*.orig" -type f -print | sort) 17 | rm -f "../${dir}.patch" 18 | for file in ${origfiles}; do 19 | diff -u --label="${file}" --label="${file%.orig}" "${file}" "${file%.orig}" >>"../${dir}.patch" 20 | done 21 | ) 22 | done 23 | -------------------------------------------------------------------------------- /release/.gitempty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/release/.gitempty -------------------------------------------------------------------------------- /scripts/update-buildroot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | ID=${1} 5 | PACKAGE_NAME="buildroot" 6 | PROJECT_URL="https://github.com/buildroot/buildroot" 7 | ARCHIVE_URL="${PROJECT_URL}/archive/${ID}/${PACKAGE_NAME}-${ID}.tar.gz" 8 | 9 | if [[ -z "${ID}" ]]; then 10 | echo "tag name or commit sha required (see ${URL})" 11 | exit 1 12 | fi 13 | 14 | # download archive for hash update 15 | ARCHIVE_HASH=$(wget --passive-ftp -nd -t 3 -O - "${ARCHIVE_URL}" | sha256sum | awk '{ print $1 }') 16 | if [[ -n "${ARCHIVE_HASH}" ]]; then 17 | # update package info 18 | sed -i "s/BUILDROOT_VERSION=.*/BUILDROOT_VERSION=$1/g" "Makefile" 19 | # update package hash 20 | sed -i "s/BUILDROOT_SHA256=.*/BUILDROOT_SHA256=${ARCHIVE_HASH}/g" "Makefile" 21 | fi 22 | -------------------------------------------------------------------------------- /scripts/update-kernel-upstream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | ID=${1} 5 | PACKAGE_NAME="linux" 6 | PROJECT_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x" 7 | #ARCHIVE_URL="${PROJECT_URL}/${PACKAGE_NAME}-${ID}.tar.xz" 8 | CHECKSUM_URL="${PROJECT_URL}/sha256sums.asc" 9 | 10 | if [[ -z "${ID}" ]]; then 11 | echo "Need a kernel version!" 12 | exit 1 13 | fi 14 | 15 | # extract sha256 checksum 16 | ARCHIVE_HASH=$(wget --passive-ftp -nd -t 3 -O - "${CHECKSUM_URL}" | grep "${PACKAGE_NAME}-${ID}.tar.xz" | awk '{ print $1 }') 17 | if [[ -z "${ARCHIVE_HASH}" ]]; then 18 | echo "no hash found for ${PACKAGE_NAME}-${ID}.tar.xz" 19 | exit 1 20 | fi 21 | 22 | # update kconfig file 23 | sed -i "s/BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE=\".*\"/BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE=\"${ID}\"/g" buildroot-external/configs/{generic-x86_64,tinkerboard}.config 24 | 25 | # update hash files 26 | sed -i "/${PACKAGE_NAME}-.*\.tar\.xz/d" "buildroot-external/patches/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 27 | echo "sha256 ${ARCHIVE_HASH} ${PACKAGE_NAME}-${ID}.tar.xz" >>"buildroot-external/patches/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 28 | sed -i "/${PACKAGE_NAME}-.*\.tar\.xz/d" "buildroot-external/patches/${PACKAGE_NAME}-headers/${PACKAGE_NAME}-headers.hash" 29 | echo "sha256 ${ARCHIVE_HASH} ${PACKAGE_NAME}-${ID}.tar.xz" >>"buildroot-external/patches/${PACKAGE_NAME}-headers/${PACKAGE_NAME}-headers.hash" 30 | -------------------------------------------------------------------------------- /scripts/update-qutselect.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | ID=${1} 5 | PACKAGE_NAME="qutselect" 6 | PROJECT_URL="https://github.com/hzdr/qutselect" 7 | ARCHIVE_URL="${PROJECT_URL}/archive/${ID}/${PACKAGE_NAME}-${ID}.tar.gz" 8 | 9 | if [[ -z "${ID}" ]]; then 10 | echo "Need qutselect version (3.4)" 11 | exit 1 12 | fi 13 | 14 | # download archive for hash update 15 | ARCHIVE_HASH=$(wget --passive-ftp -nd -t 3 -O - "${ARCHIVE_URL}" | sha256sum | awk '{ print $1 }') 16 | if [[ -n "${ARCHIVE_HASH}" ]]; then 17 | # update package info 18 | BR_PACKAGE_NAME=${PACKAGE_NAME^^} 19 | BR_PACKAGE_NAME=${BR_PACKAGE_NAME//-/_} 20 | sed -i "s/${BR_PACKAGE_NAME}_VERSION = .*/${BR_PACKAGE_NAME}_VERSION = ${ID}/g" "buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.mk" 21 | # update package hash 22 | sed -i "$ d" "buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 23 | echo "sha256 ${ARCHIVE_HASH} ${PACKAGE_NAME}-${ID}.tar.gz" >>"buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 24 | fi 25 | -------------------------------------------------------------------------------- /scripts/update-rpi-eeprom.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | ID=${1} 5 | PACKAGE_NAME="rpi-eeprom" 6 | PROJECT_URL="https://github.com/raspberrypi/rpi-eeprom" 7 | ARCHIVE_URL="${PROJECT_URL}/archive/${ID}/${PACKAGE_NAME}-${ID}.tar.gz" 8 | 9 | if [[ -z "${ID}" ]]; then 10 | echo "tag name or commit sha required (see ${URL})" 11 | exit 1 12 | fi 13 | 14 | RPI_FIRMWARE_PATH=${2} 15 | if [[ -z "${RPI_FIRMWARE_PATH}" ]]; then 16 | echo "Need rpi-eeprom version (pieeprom-2021-04-29.bin)" 17 | exit 1 18 | fi 19 | 20 | # download archive for hash update 21 | ARCHIVE_HASH=$(wget --passive-ftp -nd -t 3 -O - "${ARCHIVE_URL}" | sha256sum | awk '{ print $1 }') 22 | if [[ -n "${ARCHIVE_HASH}" ]]; then 23 | # update package info 24 | BR_PACKAGE_NAME=${PACKAGE_NAME^^} 25 | BR_PACKAGE_NAME=${BR_PACKAGE_NAME//-/_} 26 | sed -i "s/${BR_PACKAGE_NAME}_VERSION = .*/${BR_PACKAGE_NAME}_VERSION = ${ID}/g" "buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.mk" 27 | sed -i "s/${BR_PACKAGE_NAME}_FIRMWARE_PATH = .*/${BR_PACKAGE_NAME}_FIRMWARE_PATH = firmware\/stable\/${RPI_FIRMWARE_PATH}/g" "buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.mk" 28 | # update package hash 29 | sed -i "$ d" "buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 30 | echo "sha256 ${ARCHIVE_HASH} ${PACKAGE_NAME}-${ID}.tar.gz" >>"buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 31 | fi 32 | -------------------------------------------------------------------------------- /scripts/update-rpi-firmware.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | ID=${1} 5 | PACKAGE_NAME="rpi-firmware" 6 | PROJECT_URL="https://github.com/raspberrypi/firmware" 7 | ARCHIVE_URL="${PROJECT_URL}/archive/${ID}/${ID}.tar.gz" 8 | 9 | if [[ -z "${ID}" ]]; then 10 | echo "tag name or commit sha required (see ${URL})" 11 | exit 1 12 | fi 13 | 14 | # download archive for hash update 15 | ARCHIVE_HASH=$(wget --passive-ftp -nd -t 3 -O - "${ARCHIVE_URL}" | sha256sum | awk '{ print $1 }') 16 | if [[ -n "${ARCHIVE_HASH}" ]]; then 17 | 18 | # update package info 19 | sed -i "s|BR2_PACKAGE_RPI_FIRMWARE_VERSION=\".*\"|BR2_PACKAGE_RPI_FIRMWARE_VERSION=\"${ID}\"|g" buildroot-external/configs/rpi* 20 | 21 | # update hash files 22 | sed -i "/rpi-firmware/d" "buildroot-external/patches/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 23 | echo "sha256 ${ARCHIVE_HASH} ${PACKAGE_NAME}-${ID}.tar.gz" >>"buildroot-external/patches/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 24 | fi 25 | -------------------------------------------------------------------------------- /scripts/update-rpi-kernel.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | ID=${1} 5 | PACKAGE_NAME="linux" 6 | PROJECT_URL="https://github.com/raspberrypi/linux" 7 | ARCHIVE_URL="${PROJECT_URL}/archive/${ID}/${ID}.tar.gz" 8 | 9 | if [[ -z "${ID}" ]]; then 10 | echo "tag name or commit sha required (see ${URL})" 11 | exit 1 12 | fi 13 | 14 | # download archive for hash update 15 | ARCHIVE_HASH=$(wget --passive-ftp -nd -t 3 -O - "${ARCHIVE_URL}" | sha256sum | awk '{ print $1 }') 16 | if [[ -n "${ARCHIVE_HASH}" ]]; then 17 | 18 | # get old stable version 19 | OLD_PACKAGE=$(sed -n 's/BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="\(.*\)"/\1/p' buildroot-external/configs/rpi* | head -1 | xargs basename) 20 | 21 | # update package info 22 | sed -i "s|BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION=\"${PROJECT_URL}/.*\"|BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION=\"${PROJECT_URL}/archive/${ID}.tar.gz\"|g" buildroot-external/configs/rpi* 23 | 24 | # update hash files 25 | sed -i "/${OLD_PACKAGE}/d" "buildroot-external/patches/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 26 | echo "sha256 ${ARCHIVE_HASH} ${ID}.tar.gz" >>"buildroot-external/patches/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 27 | sed -i "/${OLD_PACKAGE}/d" "buildroot-external/patches/${PACKAGE_NAME}-headers/${PACKAGE_NAME}-headers.hash" 28 | echo "sha256 ${ARCHIVE_HASH} ${ID}.tar.gz" >>"buildroot-external/patches/${PACKAGE_NAME}-headers/${PACKAGE_NAME}-headers.hash" 29 | fi 30 | -------------------------------------------------------------------------------- /scripts/update-thinlinc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | ID=${1} 5 | PACKAGE_NAME="thinlinc" 6 | PROJECT_URL="https://www.cendio.com/downloads/clients" 7 | ARCHIVE_URL="${PROJECT_URL}/tl-${ID}-client-linux-dynamic-CPU.tar.gz" 8 | 9 | if [[ -z "${ID}" ]]; then 10 | echo "tag name or commit sha required (see ${URL})" 11 | exit 1 12 | fi 13 | 14 | # function to download archive hash for certain CPU 15 | function updateHash() { 16 | local cpu=${1} 17 | # download archive for hash update 18 | ARCHIVE_HASH=$(wget --passive-ftp -nd -t 3 -O - "${ARCHIVE_URL/CPU/${cpu}}" | sha256sum | awk '{ print $1 }') 19 | if [[ -n "${ARCHIVE_HASH}" ]]; then 20 | sed -i "/-${cpu}\.tar.gz/d" "buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 21 | echo "sha256 ${ARCHIVE_HASH} tl-${ID}-client-linux-dynamic-${cpu}.tar.gz" >>"buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.hash" 22 | fi 23 | } 24 | 25 | # update package info 26 | BR_PACKAGE_NAME=${PACKAGE_NAME^^} 27 | BR_PACKAGE_NAME=${BR_PACKAGE_NAME//-/_} 28 | sed -i "s/${BR_PACKAGE_NAME}_VERSION = .*/${BR_PACKAGE_NAME}_VERSION = ${ID}/g" "buildroot-external/package/${PACKAGE_NAME}/${PACKAGE_NAME}.mk" 29 | 30 | # update package hashes 31 | updateHash x86_64 32 | updateHash armhf 33 | -------------------------------------------------------------------------------- /tftpboot/Boot\x64\wdsmgfw.efi: -------------------------------------------------------------------------------- 1 | ipxe.x86_64.efi -------------------------------------------------------------------------------- /tftpboot/Boot\x64\wdsmgfw.efi�: -------------------------------------------------------------------------------- 1 | ipxe.x86_64.efi -------------------------------------------------------------------------------- /tftpboot/README.md: -------------------------------------------------------------------------------- 1 | ## TFTPBOOT PXE+TFTP/HTTP+DHCP example 2 | 3 | This directory contains a basic example set of configuration and setup files for a PXE+TFTP/HTTP+DHCP bootable environment. 4 | -------------------------------------------------------------------------------- /tftpboot/boot/net.cfg: -------------------------------------------------------------------------------- 1 | #!ipxe 2 | 3 | cpuid --ext 29 && set arch x64 || set arch x32 4 | cpuid --ext 29 && set archl amd64 || set archl i386 5 | 6 | set boot-proto http:// 7 | set boot-server 192.168.74.30 8 | set boot-dir boot/ 9 | 10 | set boot-url ${boot-proto}${boot-server}/ 11 | set boot-menu ${boot-url}${boot-dir}menu-main.ipxe 12 | -------------------------------------------------------------------------------- /tftpboot/boot/net.ipxe: -------------------------------------------------------------------------------- 1 | #!ipxe 2 | 3 | # wait for space keypress and show menu if pressed 4 | prompt --timeout 4000 --key 0x20 Loading... Please wait or press SPACE for BootMenu && set showmenu 1 || 5 | 6 | # global variables used in our scripts 7 | chain --autofree net.cfg || 8 | 9 | # my theme for this boot-config 10 | isset ${showmenu} && chain --autofree ${boot-url}${boot-dir}net.theme || 11 | 12 | # Boot //mac-010203040506.ipxe if script is present 13 | chain --replace --autofree ${boot-url}${boot-dir}mac-${mac:hexraw}.ipxe || 14 | 15 | # Boot /menu.ipxe script if all other options have been exhausted 16 | chain --replace --autofree ${boot-menu} || 17 | -------------------------------------------------------------------------------- /tftpboot/boot/net.theme: -------------------------------------------------------------------------------- 1 | #!ipxe 2 | 3 | console --x 1024 --y 768 --picture ${boot-url}${boot-dir}pxe-banner.png --keep --left 40 --right 290 --top 32 --bottom 48 4 | colour --rgb 0xf5f219 7 5 | colour --rgb 0x75f658 6 6 | -------------------------------------------------------------------------------- /tftpboot/boot/pxe-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/boot/pxe-banner.png -------------------------------------------------------------------------------- /tftpboot/clonezilla/README.md: -------------------------------------------------------------------------------- 1 | put PXE bootable clonezilla binaries here 2 | See https://clonezilla.org/livepxe.php 3 | -------------------------------------------------------------------------------- /tftpboot/ipxe.i386.efi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/ipxe.i386.efi -------------------------------------------------------------------------------- /tftpboot/ipxe.lkrn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/ipxe.lkrn -------------------------------------------------------------------------------- /tftpboot/ipxe.pxe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/ipxe.pxe -------------------------------------------------------------------------------- /tftpboot/ipxe.x86_64.efi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/ipxe.x86_64.efi -------------------------------------------------------------------------------- /tftpboot/ldlinux.c32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/ldlinux.c32 -------------------------------------------------------------------------------- /tftpboot/libcom32.c32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/libcom32.c32 -------------------------------------------------------------------------------- /tftpboot/libutil.c32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/libutil.c32 -------------------------------------------------------------------------------- /tftpboot/lpxelinux.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/lpxelinux.0 -------------------------------------------------------------------------------- /tftpboot/memdisk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/memdisk -------------------------------------------------------------------------------- /tftpboot/memtest/README.md: -------------------------------------------------------------------------------- 1 | put PXE bootable memtest binaries here 2 | See https://www.memtest.org/ 3 | -------------------------------------------------------------------------------- /tftpboot/menu.c32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/menu.c32 -------------------------------------------------------------------------------- /tftpboot/pxeboot.0: -------------------------------------------------------------------------------- 1 | pxelinux.0 -------------------------------------------------------------------------------- /tftpboot/pxechn.c32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/pxechn.c32 -------------------------------------------------------------------------------- /tftpboot/pxelinux.0: -------------------------------------------------------------------------------- 1 | lpxelinux.0 -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/01-94-c6-91-10-97-81: -------------------------------------------------------------------------------- 1 | thinroot -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/01-d4-5d-df-04-d9-c8: -------------------------------------------------------------------------------- 1 | localboot -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/default: -------------------------------------------------------------------------------- 1 | thinroot -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/localboot: -------------------------------------------------------------------------------- 1 | INCLUDE pxelinux.cfg/menu/main.cfg 2 | INCLUDE pxelinux.cfg/menu/localboot.cfg 3 | MENU DEFAULT 4 | INCLUDE pxelinux.cfg/menu/thinroot.cfg 5 | INCLUDE pxelinux.cfg/menu/thinroot-beta.cfg 6 | MENU SEPARATOR 7 | INCLUDE pxelinux.cfg/menu/global-pxe.cfg 8 | INCLUDE pxelinux.cfg/menu/admin.cfg 9 | -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/menu/admin.cfg: -------------------------------------------------------------------------------- 1 | MENU BEGIN 2 | 3 | MENU TITLE Administration 4 | TEXT HELP 5 | Allows to perform Admin tasks (BIOS update, Memory tests, etc.) 6 | ENDTEXT 7 | MENU PASSWD ADMIN 8 | 9 | LABEL memtest 10 | MENU LABEL ^Memtest86+ 11 | KERNEL memtest/mt86plus 12 | TEXT HELP 13 | Allows to perform memory tests 14 | ENDTEXT 15 | 16 | LABEL clonezilla 17 | MENU LABEL ^Clonezilla 18 | KERNEL clonezilla/live/vmlinuz 19 | APPEND initrd=clonezilla/live/initrd.img boot=live config noswap nolocales edd=on nomodeset vga=788 nosplash noprompt fetch=http://192.168.74.30/clonezilla/live/filesystem.squashfs locales=en_US.UTF-8 keyboard-layouts=de 20 | TEXT HELP 21 | Allows to clone/backup an operating system 22 | ENDTEXT 23 | 24 | LABEL sysrescue 25 | MENU LABEL ^SystemRescueCD 26 | KERNEL sysrescue/sysresccd/boot/x86_64/vmlinuz 27 | ;INITRD sysrescue/sysresccd/boot/intel_ucode.img,sysrescue/sysresccd/boot/amd_ucode.img,sysrescue/sysresccd/boot/x86_64/sysresccd.img 28 | APPEND initrd=sysrescue/sysresccd/boot/x86_64/sysresccd.img ip=dhcp dodhcp setkmap=de dostartx archisobasedir=sysresccd ip=dhcp archiso_http_srv=http://192.168.74.30/sysrescue/ checksum 29 | TEXT HELP 30 | SystemRescueCD 31 | ENDTEXT 32 | 33 | INCLUDE pxelinux.cfg/menu/ipxe.cfg 34 | 35 | MENU SEPARATOR 36 | LABEL - 37 | MENU LABEL ^Back 38 | MENU EXIT 39 | 40 | MENU END 41 | -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/menu/global-pxe.cfg: -------------------------------------------------------------------------------- 1 | LABEL global-pxe 2 | MENU LABEL ^Switch to global PXE 3 | KERNEL pxechn.c32 4 | APPEND 192.168.4.59::pxelinux.0 5 | TEXT HELP 6 | Switch to global PXE environment 7 | ENDTEXT 8 | -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/menu/ipxe.cfg: -------------------------------------------------------------------------------- 1 | LABEL iPXE 2 | MENU LABEL ^Switch to iPXE 3 | KERNEL pxechn.c32 4 | APPEND /ipxe.pxe 5 | #KERNEL ipxe.lkrn 6 | #APPEND dhcp && chain http://192.168.74.30/ipxe.pxe 7 | TEXT HELP 8 | Switch to iPXE environment 9 | ENDTEXT 10 | -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/menu/localboot.cfg: -------------------------------------------------------------------------------- 1 | LABEL localboot 2 | MENU LABEL ^Boot from Local System 3 | LOCALBOOT 0 4 | TEXT HELP 5 | Boots the local operating system (if any installed) 6 | ENDTEXT 7 | -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/menu/main.cfg: -------------------------------------------------------------------------------- 1 | DEFAULT menu.c32 2 | ALLOWOPTIONS 0 3 | PROMPT 0 4 | TIMEOUT 20 5 | TOTALTIMEOUT 1000 6 | 7 | MENU TITLE Please select your operating system 8 | MENU HIDDEN 9 | MENU AUTOBOOT # 10 | -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/menu/thinroot-beta.cfg: -------------------------------------------------------------------------------- 1 | LABEL thinroot-debug 2 | MENU LABEL ^thinRoot (stable+debug) 3 | KERNEL http://192.168.74.30/thinroot/thinroot.img 4 | APPEND console=tty1 noswap noinitrd init_on_alloc=1 init_on_free=0 slab_nomerge net.ifnames=0 intel_iommu=igfx_off loglevel=8 debug 5 | TEXT HELP 6 | Our thinRoot Environment (DEBUG) 7 | ENDTEXT 8 | 9 | LABEL thinroot-beta 10 | MENU LABEL ^thinRoot (beta) 11 | KERNEL http://192.168.74.30/thinroot/thinroot-beta.img 12 | APPEND console=tty2 noswap noinitrd consoleblank=120 init_on_alloc=1 init_on_free=0 slab_nomerge net.ifnames=0 intel_iommu=igfx_off quiet loglevel=0 13 | TEXT HELP 14 | Our thinRoot Environment (BETA) 15 | ENDTEXT 16 | 17 | LABEL thinroot-betadbg 18 | MENU LABEL ^thinRoot (beta+debug) 19 | KERNEL http://192.168.74.30/thinroot/thinroot-beta.img 20 | APPEND console=tty1 noswap noinitrd init_on_alloc=1 init_on_free=0 slab_nomerge net.ifnames=0 intel_iommu=igfx_off loglevel=8 debug 21 | TEXT HELP 22 | Our thinRoot Environment (BETA+DEBUG) 23 | ENDTEXT 24 | -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/menu/thinroot.cfg: -------------------------------------------------------------------------------- 1 | LABEL thinroot 2 | MENU LABEL ^thinRoot (stable) 3 | KERNEL http://192.168.74.30/thinroot/thinroot.img 4 | APPEND console=tty2 noswap noinitrd consoleblank=120 init_on_alloc=1 init_on_free=0 slab_nomerge net.ifnames=0 intel_iommu=igfx_off quiet loglevel=0 5 | TEXT HELP 6 | Our thinRoot Environment 7 | ENDTEXT 8 | -------------------------------------------------------------------------------- /tftpboot/pxelinux.cfg/thinroot: -------------------------------------------------------------------------------- 1 | INCLUDE pxelinux.cfg/menu/main.cfg 2 | INCLUDE pxelinux.cfg/menu/thinroot.cfg 3 | MENU DEFAULT 4 | INCLUDE pxelinux.cfg/menu/thinroot-beta.cfg 5 | MENU SEPARATOR 6 | INCLUDE pxelinux.cfg/menu/localboot.cfg 7 | INCLUDE pxelinux.cfg/menu/global-pxe.cfg 8 | INCLUDE pxelinux.cfg/menu/admin.cfg 9 | -------------------------------------------------------------------------------- /tftpboot/sysrescue/README.md: -------------------------------------------------------------------------------- 1 | put PXE bootable sysrescuecd environment here. 2 | See https://www.system-rescue.org/manual/PXE_network_booting/ 3 | -------------------------------------------------------------------------------- /tftpboot/thinroot/README.md: -------------------------------------------------------------------------------- 1 | This directory contains basic config/env files for a PXE-based thinRoot installation environment. 2 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/qutselect.default.slist: -------------------------------------------------------------------------------- 1 | # Serverlist for qutselect 2 | # 3 | # DISPLAYNAME HOSTNAME DOMAIN TYPE OS DESCRIPTION PWPRMPT SCRIPT 4 | # --------------------------------------------------------------------------------------------------------------------------- 5 | Linux ; ubuntu ; ; TLINC ; Linux ; Linux-Terminalserver ; TRUE ; scripts/qutselect_connect_tlinc.sh 6 | Windows ; kronos ; DOMAIN ; RDP ; Windows 2019 ; Public Terminal Server Farm ; TRUE ; scripts/qutselect_connect_rdp.sh 7 | === 8 | BigBlueButton ; bbb ; ; APP ; bbb.domain.de ; Local Video Conferencing ; FALSE; scripts/qutselect_connect_app.sh 9 | Zoom ; zoom ; ; APP ; Zoom Workplace ; Local Zoom Video Conferencing ; FALSE; scripts/qutselect_connect_app.sh 10 | Google Chrome ; chrome ; ; APP ; Google Chrome ; Local Webbrowser ; FALSE; scripts/qutselect_connect_app.sh 11 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/qutselect.groupA.slist: -------------------------------------------------------------------------------- 1 | # Serverlist for qutselect 2 | # 3 | # DISPLAYNAME HOSTNAME DOMAIN TYPE OS DESCRIPTION PWPRMPT SCRIPT 4 | # --------------------------------------------------------------------------------------------------------------------------- 5 | Linux ; ubuntu ; ; TLINC ; Linux ; Linux-Terminalserver ; TRUE ; scripts/qutselect_connect_tlinc.sh 6 | Windows ; kronos ; DOMAIN ; RDP ; Windows 2019 ; Public Terminal Server Farm ; TRUE ; scripts/qutselect_connect_rdp.sh 7 | === 8 | System1 ; vncsys ; ; VNC ; VNC-Server ; Server with VNC running ; TRUE ; scripts/qutselect_connect_vnc.sh 9 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/qutselect.motd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
Global Keyboard Shortcuts:thinRoot 20250207
PAUSELock Screen© 2019-2025 Jens Maus, hzdr.de
SHIFT+PAUSE/STOPDisconnect Session
CTRL+PAUSEReboot System
ALT+F10Eject/Umount all USB drives
ALT+KEYPAD-PLUSVolume Up
ALT+KEYPAD-MINUSVolume Down
ALT+KEYPAD-XMute/Unmute
SCROLL-LOCKSwitch Keyboard Layout (de/en)
12 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/qutselect.slist: -------------------------------------------------------------------------------- 1 | qutselect.default.slist -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/thinroot.conf-HOSTNAME: -------------------------------------------------------------------------------- 1 | SESSION_0_XSTARTUP="eval VNC_PASSWORD='mypassword' /lib/tlclient/vncviewer -shared -menukey= -fullscreen -fullscreensystemkeys 192.168.4.4" 2 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/thinroot.conf-c03fd56a426c: -------------------------------------------------------------------------------- 1 | XKBLAYOUT="us,de,cz,fr" 2 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/thinroot.conf.group-A: -------------------------------------------------------------------------------- 1 | SESSION_0_QUTSELECT_SLIST=qutselect.groupA.slist 2 | NET_TIME_SERVER=ntp.example.com 3 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/thinroot.conf.group-B: -------------------------------------------------------------------------------- 1 | SESSION_0_QUTSELECT_SLIST=qutselect.groupB.slist 2 | XKBLAYOUT="us,de" 3 | SESSION_0_XSTARTUP="eval echo mypassword\! | /bin/scripts/qutselect_connect_pve.sh 0 PVE true 0 0 0 0 pve.example.com:443 user@pve vm13 && while pgrep remote-viewer >/dev/null; do sleep 1; done" 4 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/thinroot.conf.group-noblank: -------------------------------------------------------------------------------- 1 | SCREEN_BLANK_TIME=0 2 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/thinroot.conf.group-noidle: -------------------------------------------------------------------------------- 1 | SHUTDOWN_IDLE_TIME=0 2 | SHUTDOWN_IDLE_MAX_UPTIME=0 3 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/thinroot.conf.network: -------------------------------------------------------------------------------- 1 | AUDIO_LEVEL=50 2 | MIC_LEVEL=100 3 | XRANDR_OPTIONS="dualscreen" 4 | XKBLAYOUT="de,us" 5 | XKBOPTIONS="grp:sclk_toggle,grp_led:scroll" 6 | SESSION_0_THINLINC_CONFIG_SOUND_ENABLED=1 7 | SESSION_0_THINLINC_CONFIG_REMOVE_CONFIGURATION=0 8 | SESSION_0_THINLINC_CONFIG_SOUND_SYSTEM=AUTO 9 | SESSION_0_THINLINC_CONFIG_NFS_SERVER_ENABLED=1 10 | SESSION_0_THINLINC_CONFIG_NFS_EXPORTS=/run/usbmount,rw 11 | SESSION_0_THINLINC_CONFIG_LOWERCASE_LOGIN_NAME=1 12 | SESSION_0_THINLINC_CONFIG_JPEG_COMPRESSION=0 13 | SESSION_0_THINLINC_CONFIG_HOST_ALIASES= 14 | SESSION_0_THINLINC_CONFIG_OPTIONS_POPUP_KEY= 15 | SESSION_0_THINLINC_CONFIG_ALLOW_HOSTKEY_UPDATE=0 16 | SESSION_0_THINLINC_CONFIG_UPDATE_ENABLED=0 17 | SESSION_0_THINLINC_CONFIG_FULL_SCREEN_MODE=1 18 | SESSION_0_THINLINC_CONFIG_FULL_SCREEN_MONITOR_MODE=all 19 | SESSION_0_QUTSELECT_CMD="qutselect -dtlogin -nouser -keep" 20 | SESSION_0_QUTSELECT_SLIST=qutselect.slist 21 | SESSION_0_QUTSELECT_MOTD=qutselect.motd 22 | SESSION_0_FIREFOX_HOMEPAGE=http://www.google.de/ 23 | DONT_VT_SWITCH_STATE=TRUE 24 | DONT_ZAP_STATE=TRUE 25 | MOUSE_RESOLUTION=800 26 | SCREEN_BLANK_TIME=15 27 | SCREEN_STANDBY_TIME=30 28 | SCREEN_SUSPEND_TIME=60 29 | SCREEN_OFF_TIME=120 30 | SHUTDOWN_IDLE_INTERVAL=5 31 | SHUTDOWN_IDLE_TIME=86400 32 | SHUTDOWN_IDLE_HOUR=3 33 | SHUTDOWN_IDLE_MAX_UPTIME=432000 34 | SHUTDOWN_IDLE_MAX_UPTIME_WDAY="Sat|Sun|Mon" 35 | X_NUMLOCK=on 36 | PKG_PREFIX=pkg 37 | -------------------------------------------------------------------------------- /tftpboot/thinroot/conf/thinroot.hosts: -------------------------------------------------------------------------------- 1 | # You can have any amount of spaces/tabs between names 2 | # HOST MAC GROUPS COMMENTS 3 | # 4 | # Group A 5 | pc1 - groupA noblank # PC1 groupA and no screen blanking 6 | pc2 - groupA noidle # PC2 groupA and no idle shutdown 7 | pc3 ec:a8:6b:ff:6d:e3 groupA # PC3 with dedicated MAC 8 | # Group B 9 | pc4 - groupB noblank noidle # PC4 groupB, no blank and no idle 10 | pc5 - groupB # PC5 groupB 11 | -------------------------------------------------------------------------------- /tftpboot/thinroot/overlay.pkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jens-maus/thinRoot/ac33404bbcba0d4c9aa9730341e4f76e79599486/tftpboot/thinroot/overlay.pkg -------------------------------------------------------------------------------- /tftpboot/thinroot/overlay/etc/dropbear/dropbear_ecdsa_host_key: -------------------------------------------------------------------------------- 1 | PUT HOSTKEY HERE 2 | -------------------------------------------------------------------------------- /tftpboot/thinroot/overlay/etc/dropbear/dropbear_ed25519_host_key: -------------------------------------------------------------------------------- 1 | PUT YOUR ED25519 HOST KEY HERE 2 | -------------------------------------------------------------------------------- /tftpboot/thinroot/overlay/etc/shadow: -------------------------------------------------------------------------------- 1 | root:$6$PUT-PASSWORD-HASH-HERE:26051:::::: 2 | daemon:*::::::: 3 | bin:*::::::: 4 | sys:*::::::: 5 | sync:*::::::: 6 | mail:*::::::: 7 | www-data:*::::::: 8 | operator:*::::::: 9 | nobody:*::::::: 10 | dbus:*::::::: 11 | truser:*::::::: 12 | -------------------------------------------------------------------------------- /tftpboot/thinroot/overlay/etc/ssh_known_hosts: -------------------------------------------------------------------------------- 1 | thinlinc-host,192.168.74.18 ssh-ed25519 AAAAZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 2 | -------------------------------------------------------------------------------- /tftpboot/thinroot/overlay/root/.ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2 | -------------------------------------------------------------------------------- /tftpboot/thinroot/overlay/root/.ssh/known_hosts: -------------------------------------------------------------------------------- 1 | thinlinc-host ssh-ed25519 AAAAzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2 | -------------------------------------------------------------------------------- /tftpboot/thinroot/overlay_gen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | tar -C overlay -cvJf overlay.pkg --owner=root --group=root . 4 | chmod a+r overlay.pkg 5 | -------------------------------------------------------------------------------- /tftpboot/thinroot/pkgs/chrome-getLatest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | LATEST=$(curl "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2FLAST_CHANGE?alt=media") 3 | wget -O chrome-linux.zip "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${LATEST}%2Fchrome-linux.zip?alt=media" 4 | -------------------------------------------------------------------------------- /tftpboot/thinroot/pkgs/chrome.pkg: -------------------------------------------------------------------------------- 1 | chrome_1359306_x86_64.tar.xz -------------------------------------------------------------------------------- /tftpboot/thinroot/pkgs/zoom.pkg: -------------------------------------------------------------------------------- 1 | zoom_6.2.0_x86_64.tar.xz -------------------------------------------------------------------------------- /tftpboot/thinroot/thinroot-beta.img: -------------------------------------------------------------------------------- 1 | thinroot-YYYYMMDD-generic-x86_64.img -------------------------------------------------------------------------------- /tftpboot/thinroot/thinroot.img: -------------------------------------------------------------------------------- 1 | thinroot-YYYYMMDD-generic-x86_64.img --------------------------------------------------------------------------------