mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-07-04 19:43:11 +02:00
- Move all linux_configuration scripts into two semantic categories: - single_use/: scripts run once manually (fresh install, fixes, setup) - periodic_background/: scripts run by systemd timers or daemons - Preserve existing subdirectory structure within each category - Fix lib/common.sh source paths for new directory depths - Fix CONFIG_DIR depth in setup_periodic_system.sh and check_and_enable_services.sh - Update all references in tests, fresh-install/main.sh, nix modules, and docs - Fix check_polling_antipatterns.sh false positives (||, regex |, case patterns, jq strings) - Fix pre-existing mypy exclusion path and type annotations for moved tools/ directory - Rewrite check_polling_antipatterns.sh using awk (no bash regex loops); add require_serial: true
58 lines
1.5 KiB
Bash
Executable File
58 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Replace these with your device's vendor and product IDs
|
|
# Note: lsusb prints as VENDOR:PRODUCT (e.g., 046d:c24f for Logitech G29)
|
|
# sysfs expects idVendor=046d and idProduct=c24f
|
|
VENDOR_ID="046d"
|
|
PRODUCT_ID="c24f"
|
|
|
|
ACTION=$1
|
|
|
|
# Check if script is run as root
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "This script must be run as root. Please run with sudo."
|
|
exit 1
|
|
fi
|
|
|
|
# Check if action parameter is provided
|
|
if [[ $ACTION != "on" && $ACTION != "off" ]]; then
|
|
echo "Usage: $0 [on|off]"
|
|
exit 1
|
|
fi
|
|
|
|
DEVICE_PATH=""
|
|
|
|
# Find the device path in sysfs (robust scan)
|
|
for d in /sys/bus/usb/devices/*; do
|
|
if [[ -f "$d/idVendor" && -f "$d/idProduct" ]]; then
|
|
v=$(cat "$d/idVendor")
|
|
p=$(cat "$d/idProduct")
|
|
if [[ $v == "$VENDOR_ID" && $p == "$PRODUCT_ID" ]]; then
|
|
DEVICE_PATH="$d"
|
|
break
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Check if device was found
|
|
if [ -z "$DEVICE_PATH" ]; then
|
|
echo "Device with Vendor ID $VENDOR_ID and Product ID $PRODUCT_ID not found in /sys/bus/usb/devices."
|
|
echo "Tip: Run 'lsusb | grep ${VENDOR_ID}:${PRODUCT_ID}' to verify it's connected."
|
|
exit 1
|
|
fi
|
|
|
|
# Enable or disable the device
|
|
if [ ! -e "$DEVICE_PATH/authorized" ]; then
|
|
echo "The 'authorized' attribute is not present at $DEVICE_PATH."
|
|
echo "This device may not support toggling via 'authorized'."
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$ACTION" == "off" ]; then
|
|
echo '0' > "$DEVICE_PATH/authorized"
|
|
echo "Device at $(basename "$DEVICE_PATH") turned off."
|
|
elif [ "$ACTION" == "on" ]; then
|
|
echo '1' > "$DEVICE_PATH/authorized"
|
|
echo "Device at $(basename "$DEVICE_PATH") turned on."
|
|
fi
|