Skip to content
Open
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
35 changes: 6 additions & 29 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ subdir-ccflags-$(CONFIG_VIDEO_INTEL_IPU6_ISYS_RESET) += -DCONFIG_VIDEO_INTEL_IPU
LINUXINCLUDE := -I$(src)/include $(LINUXINCLUDE)

ccflags-y := -I$(src)/include
ifneq (,$(filter 1,$(KERNEL_EQ_6_17) $(KERNEL_EQ_6_18) $(KERNEL_EQ_7_0)))
# IPU7 driver configs
export CONFIG_VIDEO_INTEL_IPU7=m
export CONFIG_VIDEO_INTEL_IPU6=m
Expand All @@ -97,43 +96,21 @@ subdir-ccflags-y += -DIPU8_INSYS_NEW_ABI
subdir-ccflags-y += -DCONFIG_VIDEO_INTEL_IPU7
subdir-ccflags-y += -DCONFIG_VIDEO_INTEL_IPU6

ifneq (,$(filter 1,$(KERNEL_EQ_6_17) $(KERNEL_EQ_6_18) $(KERNEL_EQ_7_0)))
# Build IPU7 drivers from submodule
obj-m += ipu7-drivers/drivers/media/pci/intel/ipu7/
endif

# Build IPU6 drivers from submodule
obj-m += ipu6-drivers/drivers/media/pci/intel/ipu6/

# Select extracted kernel tree based on running kernel
ifeq ($(KERNEL_EQ_7_0),1)
KERNEL_MEDIA_TREE := 7.0.0
else ifeq ($(KERNEL_EQ_6_18),1)
KERNEL_MEDIA_TREE := 6.18.0
else
KERNEL_MEDIA_TREE := 6.17.0
endif

# Build V4L2 core module
obj-m += $(KERNEL_MEDIA_TREE)/drivers/media/v4l2-core/
obj-m += $(KERNEL_MEDIA_TREE)/drivers/media/mc/
LINUXINCLUDE := -I$(src)/$(KERNEL_MEDIA_TREE)/include/uapi -I$(src)/$(KERNEL_MEDIA_TREE)/include $(LINUXINCLUDE)
obj-m += $(KERNEL_VERSION)/drivers/media/v4l2-core/
obj-m += $(KERNEL_VERSION)/drivers/media/mc/
LINUXINCLUDE := -I$(src)/$(KERNEL_VERSION)/include/uapi -I$(src)/$(KERNEL_VERSION)/include $(LINUXINCLUDE)

# Build ipu-bridge module
obj-m += $(KERNEL_MEDIA_TREE)/drivers/media/pci/intel/

else ifeq ($(KERNEL_EQ_6_12),1)
# IPU6 driver configs
export CONFIG_VIDEO_INTEL_IPU6=m
export CONFIG_VIDEO_INTEL_IPU6_ISYS_RESET=y

subdir-ccflags-y += -DCONFIG_VIDEO_INTEL_IPU6

# Build IPU6 drivers from submodule
obj-m += ipu6-drivers/drivers/media/pci/intel/ipu6/

# Build ipu-bridge module
obj-m += 6.12.0/drivers/media/pci/intel/

endif
obj-m += $(KERNEL_VERSION)/drivers/media/pci/intel/

obj-y += drivers/media/platform/intel/
obj-m += drivers/media/i2c/
Expand Down
94 changes: 49 additions & 45 deletions dkms-kernel-source.sh
Original file line number Diff line number Diff line change
@@ -1,49 +1,53 @@
#!/bin/bash

if [[ -z "${kernelver:-}" ]]; then
kernelver="$(uname -r)"
fi

major=$(echo "$kernelver" | cut -d- -f1| cut -d. -f1)
minor=$(echo "$kernelver" | cut -d- -f1| cut -d. -f2)
patch=$(echo "$kernelver" | cut -d- -f1| cut -d. -f3)

if ! [[ "$major" =~ ^[0-9]+$ ]]; then major=0; fi
if ! [[ "$minor" =~ ^[0-9]+$ ]]; then minor=0; fi
if ! [[ "$patch" =~ ^[0-9]+$ ]]; then patch=0; fi

echo "Downloading major $major minor $minor patch $patch"
if (( patch != 0 )); then
kernelprefix="linux-$major.$minor.$patch"
else
kernelprefix="linux-$major.$minor"
fi

tarball="${kernelprefix}.tar.xz"
url="https://mirrors.edge.kernel.org/pub/linux/kernel/v${major}.x/${tarball}"

need_dl=1
if [[ -s "$tarball" ]] && xz -t "$tarball" 2>/dev/null; then
local_size=$(stat -c %s "$tarball")
remote_size=$(curl -fsSLI "$url" 2>/dev/null \
| awk 'BEGIN{IGNORECASE=1} /^content-length:/ {gsub("\r",""); print $2}' \
| tail -1)
if [[ -n "$remote_size" && "$local_size" == "$remote_size" ]]; then
echo "dkms-kernel-source.sh: reusing cached ${tarball} (${local_size} bytes)"
need_dl=0
KVERS=("6.12.0" "6.17.0" "6.18.0" "7.0.0")

for KVER in "${KVERS[@]}"; do

[[ -d $KVER ]] && continue

major=$(echo "$KVER" | cut -d- -f1| cut -d. -f1)
minor=$(echo "$KVER" | cut -d- -f1| cut -d. -f2)
patch=$(echo "$KVER" | cut -d- -f1| cut -d. -f3)

if ! [[ "$major" =~ ^[0-9]+$ ]]; then major=0; fi
if ! [[ "$minor" =~ ^[0-9]+$ ]]; then minor=0; fi
if ! [[ "$patch" =~ ^[0-9]+$ ]]; then patch=0; fi

echo "Downloading major $major minor $minor patch $patch"
if (( patch != 0 )); then
kernelprefix="linux-$major.$minor.$patch"
else
kernelprefix="linux-$major.$minor"
fi

tarball="${kernelprefix}.tar.xz"
url="https://mirrors.edge.kernel.org/pub/linux/kernel/v${major}.x/${tarball}"

need_dl=1
if [[ -s "$tarball" ]] && xz -t "$tarball" 2>/dev/null; then
local_size=$(stat -c %s "$tarball")
remote_size=$(curl -fsSLI "$url" 2>/dev/null \
| awk 'BEGIN{IGNORECASE=1} /^content-length:/ {gsub("\r",""); print $2}' \
| tail -1)
if [[ -n "$remote_size" && "$local_size" == "$remote_size" ]]; then
echo "dkms-kernel-source.sh: reusing cached ${tarball} (${local_size} bytes)"
need_dl=0
fi
fi

if (( need_dl )); then
echo "Downloading $url"
wget --no-check-certificate -q --show-progress -N "$url" -O "$tarball" || {
echo "dkms-kernel-source.sh: failed to download ${url}" >&2
return 1
}
echo $@
for arg in "$@"; do
echo "Extracting: $kernelprefix/$arg"
tar -xvf "$kernelprefix.tar.xz" "$kernelprefix/$arg" \
--xform="s,^${kernelprefix//./\\.}/,$major.$minor.0/,"
done
rm -rf "$kernelprefix.tar.xz"
fi
fi

if (( need_dl )); then
echo "Downloading $url"
wget --no-check-certificate -q --show-progress -N "$url" -O "$tarball" || {
echo "dkms-kernel-source.sh: failed to download ${url}" >&2
return 1
}
fi

for arg in "$@"; do
echo "Extracting: $kernelprefix/$arg"
tar -xvf "$kernelprefix.tar.xz" "$kernelprefix/$arg" \
--xform="s,^${kernelprefix//./\\.}/,$major.$minor.0/,"
done
Loading