Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dkms: Fix and simplify build #7

Merged
merged 2 commits into from
Jan 12, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 13 additions & 16 deletions .github/workflows/image-builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,15 @@ name: Build Image
on:
push:
workflow_dispatch:
inputs:
disable_dkms:
description: 'Disable DKMS support'
default: false
required: true

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
env:
SCRIPT_PATH: 'https://raw.githubusercontent.com/awawa-dev/P010_for_V4L2/refs/heads/dkms'
SCRIPT_PATH: 'https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/dkms'
OS_IMAGE: 'https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2024-10-28/2024-10-22-raspios-bookworm-arm64-lite.img.xz'
DISABLE_DKMS: '${{ github.event.inputs.disable_dkms || false }}'

steps:

Expand Down Expand Up @@ -69,15 +63,18 @@ jobs:
echo '&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hyperhdr.public.apt.gpg.key] https://awawa-dev.github.io $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/hyperhdr.list > /dev/null \' >> start_chroot_script
echo '&& sudo apt update \' >> start_chroot_script
echo '&& sudo apt install hyperhdr -y' >> start_chroot_script
echo 'sudo apt install -y dkms git bc bison flex libssl-dev bc make' >> start_chroot_script
echo 'sudo mkdir -p /usr/src/v4l2_p010-1.0' >> start_chroot_script
echo 'sudo wget ${{env.SCRIPT_PATH}}/dkms/p10_dkms.patch -O /usr/src/v4l2_p010-1.0/p10_dkms.patch' >> start_chroot_script
echo 'sudo wget ${{env.SCRIPT_PATH}}/dkms/dkms.conf -O /usr/src/v4l2_p010-1.0/dkms.conf' >> start_chroot_script
echo 'sudo wget ${{env.SCRIPT_PATH}}/dkms/dkms-patchmodule.sh -O /usr/src/v4l2_p010-1.0/dkms-patchmodule.sh && sudo chmod +x /usr/src/v4l2_p010-1.0/dkms-patchmodule.sh' >> start_chroot_script
echo 'sudo dkms add -m v4l2_p010 -v 1.0' >> start_chroot_script
echo 'sudo dkms build -m v4l2_p010 -v 1.0' >> start_chroot_script
echo 'sudo dkms install -m v4l2_p010 -v 1.0' >> start_chroot_script
echo 'sudo apt clean -y' >> start_chroot_script
echo 'sudo apt-get install --no-install-recommends -y dkms build-essential bc' >> start_chroot_script
echo 'sudo mkdir -p /usr/src/v4l2-p010-1.0' >> start_chroot_script
echo 'sudo wget ${{env.SCRIPT_PATH}}/dkms/p10_dkms.patch -O /usr/src/v4l2-p010-1.0/p10_dkms.patch' >> start_chroot_script
echo 'sudo wget ${{env.SCRIPT_PATH}}/dkms/dkms.conf -O /usr/src/v4l2-p010-1.0/dkms.conf' >> start_chroot_script
echo 'sudo wget ${{env.SCRIPT_PATH}}/dkms/dkms-patchmodule.sh -O /usr/src/v4l2-p010-1.0/dkms-patchmodule.sh && sudo chmod +x /usr/src/v4l2-p010-1.0/dkms-patchmodule.sh' >> start_chroot_script
echo 'sudo dkms add -m v4l2-p010 -v 1.0' >> start_chroot_script
echo 'sudo wget ${{env.SCRIPT_PATH}}/rpi-source/rpi-source -O /usr/local/bin/rpi-source && sudo chmod +x /usr/local/bin/rpi-source && /usr/local/bin/rpi-source -q --tag-update --processor 4' >> start_chroot_script
echo 'KERNELS=$(ls -d /usr/lib/linux-image* | sed -E "s/.*linux-image-([0-9\.]+.*)/\1/")' >> start_chroot_script
echo 'for KERNEL in $KERNELS' >> start_chroot_script
echo 'do' >> start_chroot_script
echo 'sudo dkms install -m v4l2-p010/1.0 -k $KERNEL -a arm64' >> start_chroot_script
echo 'done' >> start_chroot_script
echo 'touch /boot/ssh' >> start_chroot_script
echo "echo -n 'pi:' > /boot/userconf" >> start_chroot_script
echo "echo 'raspberry' | openssl passwd -6 -stdin >> /boot/userconf" >> start_chroot_script
Expand Down
2 changes: 1 addition & 1 deletion dkms/dkms-patchmodule.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ if dpkg -s raspberrypi-bootloader &>/dev/null; then
exit 2
fi

/usr/local/bin/rpi-source -q --download-only --skip-update --dest .
/usr/local/bin/rpi-source -q --download-only --processor 4 --default-config --skip-update --dest .

echo "Extracting original source"
tar --wildcards --one-top-level=src --strip-components 1 -xf linux-*.tar.* linux-*/drivers/media/common linux-*/drivers/media/usb/uvc
Expand Down
5 changes: 3 additions & 2 deletions dkms/dkms.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
PACKAGE_NAME="v4l2_p010"
PACKAGE_NAME="v4l2-p010"
PACKAGE_VERSION="1.0"

BUILT_MODULE_NAME[0]="uvc"
Expand All @@ -15,4 +15,5 @@ CLEAN[0]="rm -f $dkms_tree/$PACKAGE_NAME/$PACKAGE_VERSION/build/src/drivers/medi

AUTOINSTALL="yes"
PRE_BUILD="dkms-patchmodule.sh"
BUILD_EXCLUSIVE_KERNEL="^(6\.[5-9]+\.|6\.[1-9]+[0-9]+\.|[7-9]+\.|[1-9]+[0-9]+\.)"
# reject any kernel <= 6.2
BUILD_EXCLUSIVE_KERNEL="^(([^0-6]|[0-9]{2,})\..*|6\.([^0-2]|[0-9]{2,})\..*)"
10 changes: 5 additions & 5 deletions rpi-source/rpi-source
Original file line number Diff line number Diff line change
Expand Up @@ -401,14 +401,14 @@ if not args.skip_gcc:

check_bc()

debianlog = "/usr/share/doc/raspberrypi-bootloader/changelog.Debian.gz"
debianlog = "/usr/share/doc/raspi-firmware/changelog.Debian.gz"
if not os.path.exists(debianlog):
debianlog = "/usr/share/doc/raspi-firmware/changelog.Debian.gz"
debianlog = "/usr/share/doc/raspberrypi-bootloader/changelog.Debian.gz"

if os.path.exists(firmware_revision_path):
kernel = rpi_update_method(args.uri)
elif os.path.exists(debianlog):
if os.path.exists(debianlog):
kernel = debian_method(debianlog)
elif os.path.exists(firmware_revision_path):
kernel = rpi_update_method(args.uri)
else:
fail("Can't find a source for this kernel")

Expand Down