Рейтинг:3

Пользовательский обходной сценарий udev для ошибки гибернации/приостановки не работает

флаг cn

Итак, у меня работает старый ноутбук ASUS K46CM. Субунту 20.04, с работающим динамиком, но несуществующим аудиоразъемом. Я отключил звук из BIOS сейчас, чтобы справиться с этим.

Это представляет собой новую проблему: я больше не могу перевести этот ноутбук в спящий режим или приостановить работу. Он выдал ошибку, в которой говорилось:

0000:01:00.1: невозможно изменить состояние питания с D3cold на D0 (пространство конфигурации недоступно)

Я погуглил и нашел кого-то с похожей проблемой и рабочим решением: отключить устройство при загрузке с помощью пользовательского правила udev по этой ссылке ниже:

https://forums.developer.nvidia.com/t/kernel-5-6-system-freeze-when-resuming-from-suspend-or-hibernate/121630/21

Рассматриваемое правило udev:

кошка /etc/udev/rules.d/10-remove-nvidia-audio.rules
ACTION== "добавить", KERNEL=="0000:01:00.1", SUBSYSTEM=="pci", RUN+="/bin/sh -c"echo 1 > /sys/bus/pci/devices/0000:01:00.1/remove "

За исключением того, что это не сработало для меня.

Проблемное устройство:

01:00.1 Аудиоустройство: NVIDIA Corporation GF108 High Definition Audio Controller (rev ff)

... по-прежнему указан в моем выводе lspci после того, как я поместил этот обходной путь:

00:00.0 Хост-мост: процессор Intel Core 3-го поколения DRAM Controller (версия 09)
00:01.0 Мост PCI: процессор Intel Corporation Xeon E3-1200 v2/3rd Gen Core, корневой порт PCI Express (версия 09)
00:02.0 Контроллер, совместимый с VGA: графический контроллер процессора Intel Core 3-го поколения (версия 09)
00:04.0 Контроллер обработки сигналов: тепловая подсистема процессора Intel Core 3-го поколения (версия 09)
00:14.0 USB-контроллер: семейство наборов микросхем Intel Corporation 7 Series/C210 Series USB xHCI Host Controller (версия 04)
00:16.0 Коммуникационный контроллер: Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB-контроллер: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1c.0 Мост PCI: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.1 Мост PCI: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4)
00:1c.3 Мост PCI: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 4 (rev c4)
00:1d.0 USB-контроллер: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 Мост ISA: Intel Corporation HM76 Express Chipset LPC Controller (rev 04)
00:1f.2 Контроллер SATA: 6-портовый контроллер SATA семейства наборов микросхем Intel Corporation 7 Series [режим AHCI] (версия 04)
00:1f.3 SMBus: контроллер SMBus семейства наборов микросхем Intel Corporation 7 Series/C216 (версия 04)
00:1f.6 Контроллер обработки сигналов: контроллер управления температурным режимом семейства наборов микросхем Intel Corporation 7 Series/C210 Series (версия 04)
01:00.0 VGA-совместимый контроллер: NVIDIA Corporation GF108M [GeForce GT 635M] (rev a1)
01:00.1 Аудиоустройство: NVIDIA Corporation GF108 High Definition Audio Controller (rev ff)
03:00.0 Сетевой контроллер: беспроводной сетевой адаптер Qualcomm Atheros AR9485 (версия 01)
04:00.0 Неназначенный класс [ff00]: Realtek Semiconductor Co., Ltd. Устройство чтения карт PCI Express RTL8411 (версия 01)
04:00.2 Контроллер Ethernet: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 Контроллер PCI Express Gigabit Ethernet (версия 0a)

Возможно, я что-то пропустил? Честно говоря, я впервые сталкиваюсь с проблемой, связанной с правилами udev.

Заранее спасибо.

kanehekili avatar
флаг zw
Вам, вероятно, придется изменить это правило, так как человек, написавший это правило, имеет другой системный макет, чем у вас. Итак, что произойдет, если вы наберете терминал: `cat /sys/bus/pci/devices/0000:01:00.1/remove`, скорее всего, его не будет. Так что вам нужно искать правильный слот.
tezman avatar
флаг cn
@канехили Он есть, но ограничен. sudo cat /sys/bus/pci/devices/0000:01:00.1/удалить cat: '/sys/bus/pci/devices/0000:01:00.1/remove': Отказано в доступе Также таблица разрешений: --w--w---- 1 root root 4096 4 ноя 10:42 удалить
tezman avatar
флаг cn
Но это работает, когда я иду прямо к su и выполняю там команду echo. После этого lspci больше не отображает проблемное устройство. Но мне нужно сделать это при загрузке, чтобы изменение сохранялось, и я пока не знаю, как это сделать.
user.dz avatar
флаг ng
Проверьте с помощью `udevadm info -a /sys/bus/pci/devices/0000:01:00.1`, если вы хотите протестировать таргетинг по другим атрибутам, кроме адреса. Чтобы некоторые правила действовали при загрузке, необходимо обновить ramfs после изменения правил с помощью: `sudo update-initramfs -u`

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.