-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathprompt.txt
More file actions
37 lines (27 loc) · 4.36 KB
/
prompt.txt
File metadata and controls
37 lines (27 loc) · 4.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
У меня ноутбук MSI, на котором установлен Linux Fedora. Для настройки некоторых функций, например, ограничение заряда батареи, используется фирменная утилита, которой нет для Linux. Для изменения настроек можно писать данные в Embedded Controller по пути "/sys/kernel/debug/ec/ec0/io". Напиши bash скрипты по моей документации, которые выполняют запись в память контроллера. Для каждой опции свой скрипт полностью. Принцип работы скриптов следующий: запускается скрипт, печатается его название, то есть, то, что он делает. Затем показываются варианты действий и запрашивается номер действия. Также скрипт должен иметь опцию выполнить действие без запроса, если он запущен с заранее выбранным параметром командной строки (я их перечислю для каждой опции). После окончания работы должно показываться уведомление о выполненном действии или ошибка, если она произошла. Вынеси все значения в переменные для того, чтобы код лучше читался. Моя версия bash - 5.2.32. Используй все возможности, не опасаясь старой версии bash.
Для записи нужно выполнить следующие команды от имени root:
1. Разрешить запись в EC
modprobe ec_sys write_support=1
2. Выполнить запись в соответствии с документацией
3. Выгрузить модуль EC и отменить возможность записи
modprobe -r ec_sys
4. Показать уведомление с результатом работы скрипта с помощью notify-send. В --app-name уведомления показывается название скрипта, в заголовке - статус (успешно/ошибка), а в теле - результат работы. Обрати внимание, что отправка уведомлений под рутом может быть проблемной, нужно отправлять уведомления от имени текущего пользователя. Также перед выховом уведомления замени в строках все символы "<" и ">" на "<" и ">" соответственно
Напиши скрипты таким образом, чтобы был главный скрипт "main", в котором содержится основной код, и остальные скрипты, которые объявляют специфические для каждого скрипта вещи.
Вот документация:
1. Battery Charge Threshold. Адрес = 0xD7
1. 100% - (значение: 0xE4, аргумент: --max)
2. Старт при <70%, стоп при >=80% - (значение: 0xD0, аргумент --med)
3. Старт при <50%, стоп при >= 60% - (значение: 0xBC, арумент --min)
2. Web Cam Control. Адрес = 0x2E
1. Включено - (значение: 0x0b, аргумент: --on)
2. Отключено - (значение: 0x09, аргумент: --off)
3. Mic Mute. Адрес = 0x2C
1. Включено - (значение: 0x00, аргумент: --on)
2. Отключено - (значение: 0x02, аргумент: --off)
4. Speaker Mute. Адрес = 0x2D
1. Включено - (значение: 0x00, аргумент: --on)
2. Отключено - (значение: 0x02, аргумент: --off)
5. Performance Mode. Адрес = 0xD2
1. Экономия заряда - (значение: 0xc2, аргумент: --pws)
2. Сбалансированный - (значение: 0xC1, аргумент: --bal)
3. Производительность - (значение: 0xC4, аргумент: --prf)