Как правильно управлять устройствами USB на Linux? [Arch Linux]Linux

Ответить Пред. темаСлед. тема
Anonymous
 Как правильно управлять устройствами USB на Linux? [Arch Linux]

Сообщение Anonymous »

Я использую Arch Linux, KDE Plasma 6, Wayland. < /strong> < /p>

суммирование, моя реальная проблема: < /h2>
(заявил, что '1-1'-мое клавишное устройство) < /em>

может кто-нибудь объяснить мне Почему, если я запускаю < /strong>

echo '1-1' | sudo tee /sys/bus/usb/devices/1-1/driver/unbind


а затем

echo 'auto' | sudo tee /sys/bus/usb/devices/1-1/power/control

Я НЕ МОГУ наконец управлять подсветкой клавиатуры с помощью

echo 'auto' | sudo tee /sys/bus/usb/devices/1-1/power/control< /code> < /strong> < /em>

и < /strong>

echo 'on' | sudo tee /sys/bus/usb/devices/power/control< /code> < /strong> < /em>

команды? t. < /strong>
< /p>

tl; dr < /strong>
< /h2>
Я в настоящее время использую свой ноутбук, прикрепленный мой внешний монитор, но я скоро построю свой настольный компьютер. < /em>

Я получил свою клавиатуру Прикреплено к этому, именно это Rog Strix Scope RX, но вскоре я тоже его изменю. , Это плохо) Через две минуты бездействия я установил это таким образом. Затем, благодаря программе, которую я закодировал, даже если я нажимаю кнопку питания на моем мониторе, чтобы выключить ее, поведение совпадает с 2-минутной инактивностью. < /Strong>

< Strong> эта программа блокирует мою сеанс, закрывает вентиляторы ноутбука, отключите микрофон и должна отключить светодиодные огни моей клавиатуры. < /strong>

Я сказал: «должен», потому что на самом деле есть Проблема с этим, а не так, как я кодировал ... есть проблема с Linux, которую я не могу понять.

Я уже пытался использовать OpenRGB, чтобы отключить свет клавиатуры, но по какой -то причине он не может полностью их выключить, я также не могу их контролировать, и я вынужден отключить вручную отключить кабель клавиатуры и заменить его.
< /p>
Итак, после поиска в Интернете Я решил использовать эти команды: < /strong>
< /p>


[*] echo '1-1' | sudo tee /sys/bus/usb/devices/1-1/driver/unbind [/b]
в основном «подделка отключения» клавиатуры, потому что вы больше не можете печатать с ней, но она все еще связана, это не похоже на то, что вручную отключение ее ;
echo 'auto' | sudo tee /sys/bus/usb/devices/1-1/power/control Чтобы взаимодействовать с управлением питанием клавиатуры и установите свой режим питания в «Авто», это фактически отключает все свет. Вместо этого установите режим на «On», возвращается в состояние по умолчанию со всеми светильниками.
< /strong> < /li>
< /ul>
Проблема в том, что эти команды редко работают, они редко делают то, что мне нужно, поэтому способность Управляйте моими лампами клавиатуры только с помощью
'Auto' или 'on' < /em> на клавиатуре. /strong> 'Auto' и 'on' ,
Тогда я могу легко, все время контролировать его огни с этими командами. < /strong>
< /p>

Это ниже Это сценарий Bash, который я сделал, в котором есть комбинация вещей, которые я должен сделать, чтобы эти команды работали. Но все же иногда мне приходится запускать его дважды или даже еще раз.
< /p>
#!/bin/bash

DEVICE_PATH="/sys/bus/usb/devices/1-1"
PRODUCT_FILE="$DEVICE_PATH/product"
EXPECTED_PRODUCT_NAME="ROG STRIX SCOPE RX"
UNBIND_FILE="$DEVICE_PATH/driver/unbind"

# Function to read the product name
read_product_name() {
if [[ -f "$PRODUCT_FILE" ]]; then
cat "$PRODUCT_FILE" | tr -d '\n'
else
echo "ERROR: Unable to read product name." >&2
exit 1
fi
}

# Function to check if the device is connected
is_device_connected() {
if [[ -e "$DEVICE_PATH" ]]; then
return 0
else
return 1
fi
}

# Function for a countdown timer with moving caret
countdown() {
local seconds=$1
while [[ $seconds -gt 0 ]]; do
echo -ne "\r$seconds"
sleep 1
((seconds--))
done
echo -ne "\r \r"
}

# Check the product name
product_name=$(read_product_name)
if [[ "$product_name" != "$EXPECTED_PRODUCT_NAME" ]]; then
echo "Device product name mismatch. Expected: $EXPECTED_PRODUCT_NAME, Found: $product_name" >&2
exit 1
fi
echo "Device detected: $product_name"

# Wait for the device to disconnect
echo "Waiting for the device to disconnect..."
while is_device_connected; do
sleep 1
done
echo "Device disconnected. Waiting for it to reconnect..."

# Wait for the device to reconnect
while ! is_device_connected; do
sleep 1
done
echo "Device reconnected."

sleep 2

# Unbind the device
echo '1-1' | sudo tee /sys/bus/usb/devices/1-1/driver/unbind

sleep 1

# Set the device's power mode to 'auto'
echo 'auto' | sudo tee /sys/bus/usb/devices/1-1/power/control

sleep 2

countdown 5

# Wait for the device to disconnect
echo "Waiting for the device to disconnect..."
while is_device_connected; do
sleep 1
done
echo "Device disconnected."
countdown 5
echo "Waiting for it to reconnect..."

# Wait for the device to reconnect
while ! is_device_connected; do
sleep 1
done
echo "Device reconnected."

sleep 2

# Unbind the device
echo '1-1' | sudo tee /sys/bus/usb/devices/1-1/driver/unbind

sleep 1

countdown 5

# Wait for the device to disconnect
echo "Waiting for the device to disconnect..."
while is_device_connected; do
sleep 1
done
echo "Device disconnected."
countdown 5
echo "Waiting for it to reconnect..."

# Wait for the device to reconnect
while ! is_device_connected; do
sleep 1
done
echo "Device reconnected."

sleep 2

# Set the device's power mode to 'auto', then 'on'
echo 'auto' | sudo tee /sys/bus/usb/devices/1-1/power/control
sleep 2
echo "on" | sudo tee /sys/bus/usb/devices/1-1/power/control


Подробнее здесь: https://stackoverflow.com/questions/793 ... arch-linux
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»