Страница 1 из 1
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 00:43
Белый Кролик
Приветствую всех форумчан. Столкнулся с проблемой при попытке перезаписать файл /sys/bus/serio/devices/serio1/protocol. Я могу внести изменения только от root'а, но после перезагрузки ноутбука файл возвращается в исходное состояние. Буду весьма признателен если кто-то подскажет как решить эту проблему.
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 01:07
slant
Если подразумевается "чтоб изменения сохранялись после перезагрузки" - ответ: никак. Это не физические файлы на диске.
https://it.wikireading.ru/1978
Если нужно, можно только обеспечить перезапись файла во время загрузки системы, с помощью автоматического запуска соответствующего скрипта, скажем.
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 01:36
Белый Кролик
slant писал(а): ↑01 июн 2019, 01:07
Если подразумевается "чтоб изменения сохранялись после перезагрузки" - ответ: никак. Это не физические файлы на диске.
https://it.wikireading.ru/1978
Если нужно, можно только обеспечить перезапись файла во время загрузки системы, с помощью автоматического запуска соответствующего скрипта, скажем.
Спасибо за ссылку, узнал для себя что-то новое.
Я создал .sh файл с таким содержимым:
!#bin/bash
echo -n "SynPS/2" > /sys/bus/serio/devices/serio1/protocol
Сделал его исполняемым и добавил в автозагрузку, но не сработало. Если пытаюсь запустить в ручную, то в терминале вижу сообщение:
строка 1: !#bin/bash: Нет такого файла или каталога
строка 2: /sys/bus/serio/devices/serio1/protocol: Отказано в доступе
Можете подсказать что я неправильно сделал? Я понял только что файл должен запускаться от root'а, но не знаю как это сделать.
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 02:14
Белый Кролик
Зашел под root'ом и добавил этот скрипт в автозагрузку. В сеансе root все заработало. Как бы теперь заставить скрипт выполняться в сессии пользователя?
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 07:00
vir0id
В этой строчке забыл слеш поставить
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 07:47
Griga211
И ещё ! И # местами поменять.
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 09:14
Белый Кролик
vir0id писал(а): ↑01 июн 2019, 07:00
В этой строчке забыл слеш поставить
И правда забыл, спасибо.
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 09:17
Белый Кролик
Griga211 писал(а): ↑01 июн 2019, 07:47
И ещё ! И # местами поменять.
Спасибо. Моя внимательность к двум часам ночи куда-то улетучилась.
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 09:22
Белый Кролик
В сеансе root все работает. В сеансе пользователя скрипт приходится выполнять в терминале вручную и вводить пароль администратора.
Наверное, чтоб не вводить пароль и автоматизировать запуск, нужно из под администратора прописать этот скрипт в автозагрузку пользователя?
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 10:03
Chocobo
Белый Кролик, Автозагрузка силами DE происходит от имени пользователя, разумеется он обламывается по правам.
накидай service-юнит вместо скрипта, для автоматичсекого выполнения от рута на стадии до запуска пользовательских сессий
заведи файлик
/lib/systemd/system/serio1-change.service
Код: Выделить всё
[Unit]
Description=change serio1 protocol onboot
[Service]
ExecStart=/usr/bin/bash -c '/usr/bin/echo -n "SynPS/2" > /sys/bus/serio/devices/serio1/protocol'
[Install]
WantedBy=multi-user.target
затем перечитать изменения
sudo systemctl daemon-reload
включить и добавить в автозагрузку
sudo systemctl start serio1-change.service
sudo systemctl enable serio1-change.service
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 10:15
Chocobo
Нашел еще одно прекрасное решение,
https://wiki.archlinux.org/index.php/Sy ... rary_files
У системды оказывается есть свой хендлер для обраюотки динамических файлов. где можно поменять права доступа, содержимое.
заводишь файлик в одну строчку
/usr/lib/tmpfiles.d/serio1-protocol.conf
Код: Выделить всё
# Path Mode UID GID Age Argument
w /sys/bus/serio/devices/serio1/protocol - - - - SynPS/2
А дальше системный менеджер при запуске сделает все сам.
лисапеды с echo вызываемые откуда только выозможно - уходят в небытие, какая прелесть

Правда сам еще не проверял

Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 11:10
Белый Кролик
Chocobo писал(а): ↑01 июн 2019, 10:03
Белый Кролик, Автозагрузка силами DE происходит от имени пользователя, разумеется он обламывается по правам.
накидай service-юнит вместо скрипта, для автоматичсекого выполнения от рута на стадии до запуска пользовательских сессий
заведи файлик
/lib/systemd/system/serio1-change.service
Код: Выделить всё
[Unit]
Description=change serio1 protocol onboot
[Service]
ExecStart=/usr/bin/bash -c '/usr/bin/echo -n "SynPS/2" > /sys/bus/serio/devices/serio1/protocol'
[Install]
WantedBy=multi-user.target
затем перечитать изменения
sudo systemctl daemon-reload
включить и добавить в автозагрузку
sudo systemctl start serio1-change.service
sudo systemctl enable serio1-change.service
Большое спасибо, теперь заработало!
Только пришлось изменить строку:
ExecStart=/usr/bin/bash -c '/usr/bin/echo -n "SynPS/2" > /sys/bus/serio/devices/serio1/protocol'
на:
ExecStart=/bin/bash -c 'echo -n "SynPS/2" > /sys/bus/serio/devices/serio1/protocol'
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 11:15
Белый Кролик
Chocobo писал(а): ↑01 июн 2019, 10:15
Нашел еще одно прекрасное решение,
https://wiki.archlinux.org/index.php/Sy ... rary_files
У системды оказывается есть свой хендлер для обраюотки динамических файлов. где можно поменять права доступа, содержимое.
заводишь файлик в одну строчку
/usr/lib/tmpfiles.d/serio1-protocol.conf
Код: Выделить всё
# Path Mode UID GID Age Argument
w /sys/bus/serio/devices/serio1/protocol - - - - SynPS/2
А дальше системный менеджер при запуске сделает все сам.
лисапеды с echo вызываемые откуда только выозможно - уходят в небытие, какая прелесть

Правда сам еще не проверял
Стоит попробовать и такой способ.
Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 12:01
Chocobo
Белый Кролик писал(а): ↑01 июн 2019, 11:10
Только пришлось изменить строку:
Под рукой только федора, с нее и взял путь к echo

Не сохраняются изменения в файле
Добавлено: 01 июн 2019, 14:16
Белый Кролик
Chocobo писал(а): ↑01 июн 2019, 12:01
Белый Кролик писал(а): ↑01 июн 2019, 11:10
Только пришлось изменить строку:
Под рукой только федора, с нее и взял путь к echo
У меня на ноутбуке опенсузе, пришлось импровизировать по ходу дела т.к. в сузе еще и файлик пришлось ложить в /usr/lib/systemd/system, а не в /lib/systemd/system. Очень помог советом, еще раз спасибо!
