From 45a637034aaf11cb9ed6e81f832dbf2b9e7cf983 Mon Sep 17 00:00:00 2001 From: Lorenzooone Date: Tue, 26 May 2026 04:13:25 +0200 Subject: [PATCH] Improve rules installation script for Linux --- CMakeLists.txt | 20 ++++++++++---------- setup_scripts/install_usb_rules.sh | 26 +++++++++++++++++++++++++- setup_scripts/rpi_mono_setup_setup.sh | 2 +- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 27dcade..f8d72fd 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -815,16 +815,16 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") else() - install(FILES ${USB_RULES_DIR}/51-ftd3xx.rules DESTINATION .) - install(FILES ${USB_RULES_DIR}/95-usb3dscapture.rules DESTINATION .) - install(FILES ${USB_RULES_DIR}/95-usbdscapture.rules DESTINATION .) - install(FILES ${USB_RULES_DIR}/51-isnitro.rules DESTINATION .) - install(FILES ${USB_RULES_DIR}/51-istwl.rules DESTINATION .) - install(FILES ${USB_RULES_DIR}/50-ftd2xx.rules DESTINATION .) - install(FILES ${USB_RULES_DIR}/51-ftd2xx.rules DESTINATION .) - install(FILES ${USB_RULES_DIR}/51-nisetro.rules DESTINATION .) - install(FILES ${USB_RULES_DIR}/51-optimize.rules DESTINATION .) - install(FILES ${USB_RULES_DIR}/51-partnerctr.rules DESTINATION .) + install(FILES ${USB_RULES_DIR}/51-ftd3xx.rules DESTINATION "./usb_rules") + install(FILES ${USB_RULES_DIR}/95-usb3dscapture.rules DESTINATION "./usb_rules") + install(FILES ${USB_RULES_DIR}/95-usbdscapture.rules DESTINATION "./usb_rules") + install(FILES ${USB_RULES_DIR}/51-isnitro.rules DESTINATION "./usb_rules") + install(FILES ${USB_RULES_DIR}/51-istwl.rules DESTINATION "./usb_rules") + install(FILES ${USB_RULES_DIR}/50-ftd2xx.rules DESTINATION "./usb_rules") + install(FILES ${USB_RULES_DIR}/51-ftd2xx.rules DESTINATION "./usb_rules") + install(FILES ${USB_RULES_DIR}/51-nisetro.rules DESTINATION "./usb_rules") + install(FILES ${USB_RULES_DIR}/51-optimize.rules DESTINATION "./usb_rules") + install(FILES ${USB_RULES_DIR}/51-partnerctr.rules DESTINATION "./usb_rules") install(FILES ${SETUP_SCRIPTS_DIR}/install_usb_rules${SCRIPT_EXTENSION} DESTINATION .) endif() diff --git a/setup_scripts/install_usb_rules.sh b/setup_scripts/install_usb_rules.sh index 79a8e92..8863dd6 100755 --- a/setup_scripts/install_usb_rules.sh +++ b/setup_scripts/install_usb_rules.sh @@ -1,3 +1,27 @@ -cp *.rules /etc/udev/rules.d/ +#!/bin/sh + +if [ "$(id -u)" -ne "0" ]; then + echo "This script shoud be run as root!"; + exit 1; +fi + +cd -P -- "$(dirname -- "$0")" + +# Default... +RULES_DIR=. + +if [ -d "usb_rules" ]; then + # Handle releases + RULES_DIR=usb_rules +elif [ -d "../usb_rules" ]; then + # Handle people self-compiling + RULES_DIR=../usb_rules +fi + +REAL_PATH_RULES=$(realpath $RULES_DIR) +echo "Looking inside $REAL_PATH_RULES for *.rules files..." + +cp -vf $RULES_DIR/*.rules /etc/udev/rules.d/ + udevadm control --reload-rules udevadm trigger diff --git a/setup_scripts/rpi_mono_setup_setup.sh b/setup_scripts/rpi_mono_setup_setup.sh index 27dd194..1b08239 100755 --- a/setup_scripts/rpi_mono_setup_setup.sh +++ b/setup_scripts/rpi_mono_setup_setup.sh @@ -10,7 +10,7 @@ mkdir -p ${RPI_SETUP_FOLDER}/files/usr/lib/udev/rules.d cp ${EXTRACTION_FOLDER}32/cc3dsfs ${MAIN_FILES_RPI_SETUP}/cc3dsfs_versions/cc3dsfs_32 cp ${EXTRACTION_FOLDER}64/cc3dsfs ${MAIN_FILES_RPI_SETUP}/cc3dsfs_versions/cc3dsfs_64 cp -r "${EXTRACTION_FOLDER}32/other licenses" "${MAIN_FILES_RPI_SETUP}/other licenses" -cp ${EXTRACTION_FOLDER}32/*.rules ${RPI_SETUP_FOLDER}/files/usr/lib/udev/rules.d +cp ${EXTRACTION_FOLDER}32/usb_rules/*.rules ${RPI_SETUP_FOLDER}/files/usr/lib/udev/rules.d cp ${EXTRACTION_FOLDER}32/LICENSE ${MAIN_FILES_RPI_SETUP} cp ${EXTRACTION_FOLDER}32/README.md ${MAIN_FILES_RPI_SETUP} $(cd ${RPI_SETUP_FOLDER} ; zip -qry ${BASE_LOCATION}/${RPI_FINAL_ZIP_NAME} ./*)