Skip to content
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# D457 MIPI on NVIDIA® Jetson AGX Xavier™ and AGX Orin™
The RealSense™ MIPI platform driver enables the user to control and stream RealSense™ 3D MIPI cameras.
The system shall include:
* NVIDIA® Jetson platform (Currently Supported JetPack versions are: 6.2, 6.1, 6.0, 5.1.2, 5.0.2, 4.6.1)
* NVIDIA® Jetson platform (Currently Supported JetPack versions are: 6.2.1, 6.2, 6.1, 6.0, 5.1.2, 5.0.2, 4.6.1)
* RealSense De-Serialize board (https://store.intelrealsense.com/buy-intel-realsense-des457.html)
* NVIDIA® Jetson AGX Orin™ Passive adapter board from [Leopard Imaging LI-JTX1-SUB-ADPT](https://leopardimaging.com/product/accessories/adapters-carrier-boards/for-nvidia-jetson/li-jtx1-sub-adpt/)
* RS MIPI camera (e.g. https://store.intelrealsense.com/buy-intel-realsense-depth-camera-d457.html)
Expand Down
1 change: 1 addition & 0 deletions README_JP6.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
The RealSense™ MIPI platform driver enables the user to control and stream RealSense™ 3D MIPI cameras.
The system shall include:
* NVIDIA® Jetson™ platform Supported JetPack versions are:
- [6.2.1 production release](https://developer.nvidia.com/embedded/jetpack-sdk-621)
- [6.2 production release](https://developer.nvidia.com/embedded/jetpack-sdk-62)
- [6.1 production release](https://developer.nvidia.com/embedded/jetpack-sdk-61)
- [6.0 production release](https://developer.nvidia.com/embedded/jetpack-sdk-60)
Expand Down
55 changes: 54 additions & 1 deletion apply_patches.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,12 @@ if [[ "$ACTION" == reset && -d "sources_$SOURCES_VERSION/hardware/nvidia/platfor
rm -rfv "sources_$SOURCES_VERSION/hardware/nvidia/platform/t19x/galen-industrial" > /dev/null
fi

# Create nvethernetrm symlink for JP 6.x (moved from source_sync_6.x.sh)
# JP 5.x handles nvethernetrm differently (full path clone, not a symlink)
if [[ "$ACTION" == reset ]] && [[ "$JETPACK_VERSION" =~ ^6\. ]]; then
ln -sf ../../../../../../nvethernetrm "sources_$SOURCES_VERSION/nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/nvethernetrm"
fi

apply_external_patches() {
git -C "sources_$SOURCES_VERSION/$3" status > /dev/null
if [[ "$1" == 'apply' ]]; then
Expand All @@ -62,14 +68,24 @@ apply_external_patches() {
fi
ls -Ld "${PWD}/$3/$2"
ls -Lw1 "${PWD}/$3/$2"
# Store the original commit hash before applying patches
ORIGINAL_COMMIT=$(git -C "sources_$SOURCES_VERSION/$3" rev-parse HEAD)
echo "$ORIGINAL_COMMIT" > "sources_$SOURCES_VERSION/$3/.realsense_patch_base"
git -C "sources_$SOURCES_VERSION/$3" apply "${PWD}/$3/$2"/*
elif [ "$1" = "reset" ]; then
if ! git -C "sources_$SOURCES_VERSION/$3" diff --quiet || ! git -C "sources_$SOURCES_VERSION/$3" diff --cached --quiet; then
read -p "Repo sources_$SOURCES_VERSION/$3 has changes that will be hard reset. Continue (y/N)? " confirm
[[ "$confirm" != "y" && "$confirm" != "Y" ]] && exit 1
fi
echo -n "$(ls -d "sources_$SOURCES_VERSION/$3"): "
git -C "sources_$SOURCES_VERSION/$3" reset --hard $4
# Reset to original commit if .realsense_patch_base exists, otherwise use L4T_VERSION
if [[ -f "sources_$SOURCES_VERSION/$3/.realsense_patch_base" ]]; then
RESET_TARGET=$(cat "sources_$SOURCES_VERSION/$3/.realsense_patch_base")
git -C "sources_$SOURCES_VERSION/$3" reset --hard "$RESET_TARGET"
rm -f "sources_$SOURCES_VERSION/$3/.realsense_patch_base"
else
git -C "sources_$SOURCES_VERSION/$3" reset --hard $4
fi
fi
}

Expand All @@ -91,4 +107,41 @@ if [[ "$ACTION" = "apply" ]]; then
else
cp "hardware/realsense/${JP5_D4XX_DTSI}" "sources_$SOURCES_VERSION/hardware/nvidia/platform/t19x/galen/kernel-dts/common/tegra194-camera-d4xx.dtsi"
fi

# Stage all modified files after patching
git -C "sources_$SOURCES_VERSION/$D4XX_SRC_DST" add -A
[[ -d "sources_$SOURCES_VERSION/$KERNEL_DIR" ]] && git -C "sources_$SOURCES_VERSION/$KERNEL_DIR" add -A
if [[ -d "sources_$SOURCES_VERSION/hardware/nvidia/t23x/nv-public" ]]; then
git -C "sources_$SOURCES_VERSION/hardware/nvidia/t23x/nv-public" add -A
elif [[ -d "sources_$SOURCES_VERSION/hardware/nvidia/platform/t19x/galen/kernel-dts" ]]; then
git -C "sources_$SOURCES_VERSION/hardware/nvidia/platform/t19x/galen/kernel-dts" add -A
fi

# Get author identity from root repo
GIT_AUTHOR_NAME=$(git config user.name)
GIT_AUTHOR_EMAIL=$(git config user.email)

# Update local git identity for subrepos
git -C "sources_$SOURCES_VERSION/$D4XX_SRC_DST" config user.name "$GIT_AUTHOR_NAME"
git -C "sources_$SOURCES_VERSION/$D4XX_SRC_DST" config user.email "$GIT_AUTHOR_EMAIL"
if [[ -d "sources_$SOURCES_VERSION/$KERNEL_DIR" ]]; then
git -C "sources_$SOURCES_VERSION/$KERNEL_DIR" config user.name "$GIT_AUTHOR_NAME"
git -C "sources_$SOURCES_VERSION/$KERNEL_DIR" config user.email "$GIT_AUTHOR_EMAIL"
fi
if [[ -d "sources_$SOURCES_VERSION/hardware/nvidia/platform/t19x/galen/kernel-dts" ]]; then
git -C "sources_$SOURCES_VERSION/hardware/nvidia/platform/t19x/galen/kernel-dts" config user.name "$GIT_AUTHOR_NAME"
git -C "sources_$SOURCES_VERSION/hardware/nvidia/platform/t19x/galen/kernel-dts" config user.email "$GIT_AUTHOR_EMAIL"
elif [[ -d "sources_$SOURCES_VERSION/hardware/nvidia/t23x/nv-public" ]]; then
git -C "sources_$SOURCES_VERSION/hardware/nvidia/t23x/nv-public" config user.name "$GIT_AUTHOR_NAME"
git -C "sources_$SOURCES_VERSION/hardware/nvidia/t23x/nv-public" config user.email "$GIT_AUTHOR_EMAIL"
fi

# Commit all staged files
git -C "sources_$SOURCES_VERSION/$D4XX_SRC_DST" commit -m "RS patched" || true
[[ -d "sources_$SOURCES_VERSION/$KERNEL_DIR" ]] && git -C "sources_$SOURCES_VERSION/$KERNEL_DIR" commit -m "RS patched" || true
if [[ -d "sources_$SOURCES_VERSION/hardware/nvidia/t23x/nv-public" ]]; then
git -C "sources_$SOURCES_VERSION/hardware/nvidia/t23x/nv-public" commit -m "RS patched" || true
elif [[ -d "sources_$SOURCES_VERSION/hardware/nvidia/platform/t19x/galen/kernel-dts" ]]; then
git -C "sources_$SOURCES_VERSION/hardware/nvidia/platform/t19x/galen/kernel-dts" commit -m "RS patched" || true
fi
fi
51 changes: 37 additions & 14 deletions build_all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,31 @@
set -e

if [[ $# < 1 || "$1" == "-h" ]]; then
echo "build_all.sh [--dev-dbg] JetPack_version [JetPack_Linux_source]"
echo "build_all.sh [--clean] [--dev-dbg] JetPack_version [JetPack_Linux_source]"
echo "build_all.sh -h"
exit 1
fi

CLEAN=0
DEVDBG=0
if [[ "$1" == "--dev-dbg" ]]; then
DEVDBG=1
shift
fi

# Parse optional flags
while [[ "$1" == --* ]]; do
case "$1" in
--clean)
CLEAN=1
shift
;;
--dev-dbg)
DEVDBG=1
shift
;;
*)
echo "Unknown option: $1"
exit 1
;;
esac
done

export DEVDIR=$(cd `dirname $0` && pwd)
NPROC=$(nproc)
Expand Down Expand Up @@ -40,6 +55,14 @@ fi

export LOCALVERSION=-tegra
export TEGRA_KERNEL_OUT="$DEVDIR/images/$1"

# Clean if requested
if [[ $CLEAN == 1 ]]; then
echo "Cleaning build artifacts for $1..."
rm -rf $TEGRA_KERNEL_OUT
rm -rf $SRCS/out
fi

mkdir -p $TEGRA_KERNEL_OUT
export KERNEL_MODULES_OUT=$TEGRA_KERNEL_OUT/modules

Expand Down Expand Up @@ -87,16 +110,16 @@ if [[ "$JETPACK_VERSION" == "6.x" ]]; then
KERNELVERSION=$(cat $KERNEL_HEADERS/include/config/kernel.release)
KERNEL_MODULES_OUT=$INSTALL_MOD_PATH/lib/modules/${KERNELVERSION}
mkdir -p $KERNEL_MODULES_OUT/extra
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/buffer/kfifo_buf.ko $KERNEL_MODULES_OUT/extra/
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/buffer/industrialio-triggered-buffer.ko $KERNEL_MODULES_OUT/extra/
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko $KERNEL_MODULES_OUT/extra/
cp $KERNEL_MODULES_OUT/kernel/drivers/hid/hid-sensor-hub.ko $KERNEL_MODULES_OUT/extra/
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/accel/hid-sensor-accel-3d.ko $KERNEL_MODULES_OUT/extra/
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/gyro/hid-sensor-gyro-3d.ko $KERNEL_MODULES_OUT/extra/
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/common/hid-sensors/hid-sensor-trigger.ko $KERNEL_MODULES_OUT/extra/
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/buffer/kfifo_buf.ko $KERNEL_MODULES_OUT/extra/ || true
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/buffer/industrialio-triggered-buffer.ko $KERNEL_MODULES_OUT/extra/ || true
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko $KERNEL_MODULES_OUT/extra/ || true
cp $KERNEL_MODULES_OUT/kernel/drivers/hid/hid-sensor-hub.ko $KERNEL_MODULES_OUT/extra/ || true
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/accel/hid-sensor-accel-3d.ko $KERNEL_MODULES_OUT/extra/ || true
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/gyro/hid-sensor-gyro-3d.ko $KERNEL_MODULES_OUT/extra/ || true
cp $KERNEL_MODULES_OUT/kernel/drivers/iio/common/hid-sensors/hid-sensor-trigger.ko $KERNEL_MODULES_OUT/extra/ || true
# RealSense cameras support
cp $KERNEL_MODULES_OUT/kernel/drivers/media/usb/uvc/uvcvideo.ko $KERNEL_MODULES_OUT/extra/
cp $KERNEL_MODULES_OUT/kernel/drivers/media/v4l2-core/videodev.ko $KERNEL_MODULES_OUT/extra/
cp $KERNEL_MODULES_OUT/kernel/drivers/media/usb/uvc/uvcvideo.ko $KERNEL_MODULES_OUT/extra/ || true
cp $KERNEL_MODULES_OUT/kernel/drivers/media/v4l2-core/videodev.ko $KERNEL_MODULES_OUT/extra/ || true
else
#jp4/5
cd $SRCS/$KERNEL_DIR
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
From a28c524638e88665f3757002703a7add3e95643b Mon Sep 17 00:00:00 2001
From: ejgoldik <ehud.joseph.goldik@intel.com>
Date: Sun, 8 Jun 2025 11:08:56 +0300
Subject: [PATCH] kernel: enable HID_SENSOR without USB impact

Signed-off-by: Ehud J. Goldik <ehud.joseph.goldik@intel.com>
---
arch/arm64/configs/defconfig | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 57e2a364e..8fffc0a60 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -862,9 +862,11 @@ CONFIG_SND_SOC_LPASS_WSA_MACRO=m
CONFIG_SND_SOC_LPASS_VA_MACRO=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD=m
+CONFIG_HID=m
CONFIG_HIDRAW=y
CONFIG_UHID=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_SENSOR_HUB=m
CONFIG_I2C_HID_ACPI=m
CONFIG_I2C_HID_OF=m
CONFIG_USB=y
@@ -1148,6 +1150,7 @@ CONFIG_EXTCON_USB_GPIO=y
CONFIG_EXTCON_USBC_CROS_EC=y
CONFIG_RENESAS_RPCIF=m
CONFIG_IIO=y
+CONFIG_HID_SENSOR_ACCEL_3D=m
CONFIG_BMI088_ACCEL=m
CONFIG_EXYNOS_ADC=y
CONFIG_MAX9611=m
@@ -1155,6 +1158,9 @@ CONFIG_QCOM_SPMI_ADC5=m
CONFIG_ROCKCHIP_SARADC=m
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_HID_SENSOR_IIO_COMMON=m
+CONFIG_HID_SENSOR_IIO_TRIGGER=m
+CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_BMG160=m
CONFIG_IIO_ST_LSM6DSX=m
CONFIG_IIO_CROS_EC_LIGHT_PROX=m
--
2.43.0

Loading
Loading