From 85f25e902fcfc72e97ee541b0a7c06c3e3f5c5e9 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Sat, 2 May 2026 14:25:00 -0700 Subject: [PATCH] rm the rest --- userspace/root/etc/udev/rules.d/50-log.rules | 5 - .../root/etc/udev/rules.d/93-input.rules | 2 - .../root/etc/udev/rules.d/94-backlight.rules | 10 -- userspace/root/etc/udev/rules.d/95-gpu.rules | 3 - userspace/root/etc/udev/rules.d/96-i2c.rules | 1 - .../root/etc/udev/rules.d/98-panda.rules | 4 - .../root/lib/systemd/system/fs_setup.service | 2 +- .../lib/systemd/system/permissions.service | 11 ++ .../root/usr/comma/{ => boot}/fs_setup.sh | 0 userspace/root/usr/comma/boot/permissions.sh | 116 ++++++++++++++++++ userspace/services.sh | 1 + 11 files changed, 129 insertions(+), 26 deletions(-) delete mode 100644 userspace/root/etc/udev/rules.d/50-log.rules delete mode 100644 userspace/root/etc/udev/rules.d/93-input.rules delete mode 100644 userspace/root/etc/udev/rules.d/94-backlight.rules delete mode 100644 userspace/root/etc/udev/rules.d/95-gpu.rules delete mode 100644 userspace/root/etc/udev/rules.d/96-i2c.rules delete mode 100644 userspace/root/etc/udev/rules.d/98-panda.rules create mode 100644 userspace/root/lib/systemd/system/permissions.service rename userspace/root/usr/comma/{ => boot}/fs_setup.sh (100%) create mode 100755 userspace/root/usr/comma/boot/permissions.sh diff --git a/userspace/root/etc/udev/rules.d/50-log.rules b/userspace/root/etc/udev/rules.d/50-log.rules deleted file mode 100644 index e2c7018..0000000 --- a/userspace/root/etc/udev/rules.d/50-log.rules +++ /dev/null @@ -1,5 +0,0 @@ -KERNEL=="binder", MODE="0666" -KERNEL=="log_main", SUBSYSTEM=="misc", NAME="log/main", MODE="0644" -KERNEL=="log_radio", SUBSYSTEM=="misc", NAME="log/radio", MODE="0644" -KERNEL=="log_system", SUBSYSTEM=="misc", NAME="log/system", MODE="0644" -KERNEL=="log_events", SUBSYSTEM=="misc", NAME="log/events", MODE="0644" diff --git a/userspace/root/etc/udev/rules.d/93-input.rules b/userspace/root/etc/udev/rules.d/93-input.rules deleted file mode 100644 index a90c05c..0000000 --- a/userspace/root/etc/udev/rules.d/93-input.rules +++ /dev/null @@ -1,2 +0,0 @@ -ACTION=="add|change", KERNEL=="event[0-9]*", ENV{ID_SEAT}="seat0" -SUBSYSTEM=="input", MODE="666" diff --git a/userspace/root/etc/udev/rules.d/94-backlight.rules b/userspace/root/etc/udev/rules.d/94-backlight.rules deleted file mode 100644 index 243d472..0000000 --- a/userspace/root/etc/udev/rules.d/94-backlight.rules +++ /dev/null @@ -1,10 +0,0 @@ -ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="panel0-backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness" -ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="panel0-backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness" -ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="panel0-backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/bl_power" -ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="panel0-backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/bl_power" -ACTION=="add", SUBSYSTEM=="platform", KERNEL=="soc:qcom,dsi-display@0", RUN+="/bin/chgrp video /sys/devices/platform/soc/%k/max_brightness_percent" -ACTION=="add", SUBSYSTEM=="platform", KERNEL=="soc:qcom,dsi-display@0", RUN+="/bin/chmod g+w /sys/devices/platform/soc/%k/max_brightness_percent" -ACTION=="add", SUBSYSTEM=="leds", KERNEL=="led:torch_2", RUN+="/bin/chgrp video /sys/class/leds/%k/brightness" -ACTION=="add", SUBSYSTEM=="leds", KERNEL=="led:torch_2", RUN+="/bin/chmod g+w /sys/class/leds/%k/brightness" -ACTION=="add", SUBSYSTEM=="leds", KERNEL=="led:switch_2", RUN+="/bin/chgrp video /sys/class/leds/%k/brightness" -ACTION=="add", SUBSYSTEM=="leds", KERNEL=="led:switch_2", RUN+="/bin/chmod g+w /sys/class/leds/%k/brightness" diff --git a/userspace/root/etc/udev/rules.d/95-gpu.rules b/userspace/root/etc/udev/rules.d/95-gpu.rules deleted file mode 100644 index 9663bab..0000000 --- a/userspace/root/etc/udev/rules.d/95-gpu.rules +++ /dev/null @@ -1,3 +0,0 @@ -KERNEL=="kgsl-3d0", GROUP="gpu", MODE="0660" -KERNEL=="ion", GROUP="gpu", MODE="0660" -SUBSYSTEM=="drm", GROUP="gpu", MODE="0660" diff --git a/userspace/root/etc/udev/rules.d/96-i2c.rules b/userspace/root/etc/udev/rules.d/96-i2c.rules deleted file mode 100644 index 1772a98..0000000 --- a/userspace/root/etc/udev/rules.d/96-i2c.rules +++ /dev/null @@ -1 +0,0 @@ -KERNEL=="i2c-[0-9]*", GROUP="gpio", MODE="0660" diff --git a/userspace/root/etc/udev/rules.d/98-panda.rules b/userspace/root/etc/udev/rules.d/98-panda.rules deleted file mode 100644 index cc720fb..0000000 --- a/userspace/root/etc/udev/rules.d/98-panda.rules +++ /dev/null @@ -1,4 +0,0 @@ -SUBSYSTEM=="usb", ATTRS{idVendor}=="bbaa", ATTRS{idProduct}=="ddee", MODE="0666" -SUBSYSTEM=="usb", ATTRS{idVendor}=="bbaa", ATTRS{idProduct}=="ddcc", MODE="0666" -SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0666" -SUBSYSTEM=="spidev", MODE="0666" diff --git a/userspace/root/lib/systemd/system/fs_setup.service b/userspace/root/lib/systemd/system/fs_setup.service index 9b68650..27f5c7d 100644 --- a/userspace/root/lib/systemd/system/fs_setup.service +++ b/userspace/root/lib/systemd/system/fs_setup.service @@ -5,7 +5,7 @@ DefaultDependencies=no [Service] Type=oneshot -ExecStart=/usr/comma/fs_setup.sh +ExecStart=/usr/comma/boot/fs_setup.sh [Install] WantedBy=multi-user.target diff --git a/userspace/root/lib/systemd/system/permissions.service b/userspace/root/lib/systemd/system/permissions.service new file mode 100644 index 0000000..e547bbc --- /dev/null +++ b/userspace/root/lib/systemd/system/permissions.service @@ -0,0 +1,11 @@ +[Unit] +Description=Device permissions +After=fs_setup.service +Before=comma.service + +[Service] +Type=oneshot +ExecStart=/usr/comma/boot/permissions.sh + +[Install] +WantedBy=multi-user.target diff --git a/userspace/root/usr/comma/fs_setup.sh b/userspace/root/usr/comma/boot/fs_setup.sh similarity index 100% rename from userspace/root/usr/comma/fs_setup.sh rename to userspace/root/usr/comma/boot/fs_setup.sh diff --git a/userspace/root/usr/comma/boot/permissions.sh b/userspace/root/usr/comma/boot/permissions.sh new file mode 100755 index 0000000..f21b5d1 --- /dev/null +++ b/userspace/root/usr/comma/boot/permissions.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +set -e + +PATH=/usr/sbin:/usr/bin:/sbin:/bin + +shopt -s nullglob + +log() { + echo "permissions[$$]: $(cut -d' ' -f1 /proc/uptime) $*" > /dev/kmsg +} + +set_mode() { + local mode="$1" + shift + + for path in "$@"; do + if [[ -e "$path" ]]; then + chmod "$mode" "$path" + fi + done +} + +set_group_mode() { + local group="$1" + local mode="$2" + shift 2 + + for path in "$@"; do + if [[ -e "$path" ]]; then + chgrp "$group" "$path" + chmod "$mode" "$path" + fi + done +} + +set_group_writable() { + local group="$1" + shift + + for path in "$@"; do + if [[ -e "$path" ]]; then + chgrp "$group" "$path" + chmod g+w "$path" + fi + done +} + +set_usb_mode() { + local vendor="$1" + local product="$2" + local mode="$3" + local devdir devnode + + for devdir in /sys/bus/usb/devices/*; do + [[ -f "$devdir/idVendor" && -f "$devdir/idProduct" ]] || continue + [[ "$(< "$devdir/idVendor")" == "$vendor" ]] || continue + [[ "$(< "$devdir/idProduct")" == "$product" ]] || continue + [[ -f "$devdir/busnum" && -f "$devdir/devnum" ]] || continue + + printf -v devnode "/dev/bus/usb/%03d/%03d" "$(< "$devdir/busnum")" "$(< "$devdir/devnum")" + if [[ -e "$devnode" ]]; then + chmod "$mode" "$devnode" + else + log "missing $devnode for usb $vendor:$product" + fi + done +} + +create_touch_input_link() { + local event name + + mkdir -p /dev/input/by-path + for event in /sys/class/input/event*; do + [[ -f "$event/device/name" ]] || continue + name="$(< "$event/device/name")" + if [[ "$name" == "fts_ts" ]]; then + ln -sf "../$(basename "$event")" /dev/input/by-path/platform-894000.i2c-event + return 0 + fi + done + + log "missing fts_ts input event" +} + +log "start" + +# 50-log.rules +set_mode 666 /dev/binder +set_mode 644 /dev/log_main /dev/log_radio /dev/log_system /dev/log_events + +# 93-input.rules plus the by-path link openpilot uses. +set_mode 666 /dev/input/event* /dev/input/mice /dev/input/mouse* +create_touch_input_link + +# 94-backlight.rules +set_group_writable video \ + /sys/class/backlight/panel0-backlight/brightness \ + /sys/class/backlight/panel0-backlight/bl_power \ + /sys/devices/platform/soc/soc:qcom,dsi-display@0/max_brightness_percent \ + /sys/class/leds/led:torch_2/brightness \ + /sys/class/leds/led:switch_2/brightness + +# 95-gpu.rules +set_group_mode gpu 660 /dev/kgsl-3d0 /dev/ion /dev/dri/card* /dev/dri/controlD* /dev/dri/renderD* + +# 96-i2c.rules +set_group_mode gpio 660 /dev/i2c-[0-9]* + +# 98-panda.rules +set_usb_mode bbaa ddee 666 +set_usb_mode bbaa ddcc 666 +set_usb_mode 0483 df11 666 +set_mode 666 /dev/spidev* + +log "done" diff --git a/userspace/services.sh b/userspace/services.sh index c05916f..f29cb5d 100755 --- a/userspace/services.sh +++ b/userspace/services.sh @@ -2,6 +2,7 @@ # Enable our services systemctl enable fs_setup.service +systemctl enable permissions.service systemctl enable serial-hostname.service systemctl enable comma.service systemctl enable agnos-debug.service