Pci devices power on: Power On By PCI Devices

Содержание

Power on by pci devices в биосе

Опция Power On By PCIE Devices позволяет выполнить включение ПК при появлении сигнала на шине PCI Express.

Disabled – запретить включение ПК при появлении сигнала на шине PCI Express;

Enabled – разрешить включение ПК при появлении сигнала на шине PCI Express.

Опция также может иметь другие названия:

PCI Express PME

Resume By PCI-E PME

Resume by PCIE PME

Wakeup on PCI Express

Примечание 1. PCI Express, (или PCIe, или PCI-E) – это компьютерная шина расширения, предназначена для подключения периферийных устройств к системной плате персонального компьютера. PCI Express реализовывает программную модель интерфейса PCI и протокол последовательной передачи данных.

Более подробно о том, что такое шина PCI Express, Вы можете прочитать здесь.

Сетевым администраторам и пользователям конечно порой хочется ощутить себя хоть немного богами компьютерных сетей, управлять своими системам удаленно. И не обязательно держать всё свою компьютерную технику включенной, чтобы получить к ней доступ. Выход из этой ситуации есть — технология включения по сети

Wake on Lan.

Для этого надо посмотреть инструкцию о Вашей материнской платы. Поддерживает ли она такой режим удаленного включения.

Материнская плата + eth (Wi-Fi) + утилита.

В БИОСе нужно включить поддержку Wake-On-LAN.

Для включения режима Wake On Lan необходимо установить пункт «Power On By PCI Devices» в «Enabled«.

На всякий случай, значение остальных опций:

Restore on AC Power Loss — поведение системы при пропадании электропитания.

Значение Power Off — система останется в выключенном состоянии, Power On — будет выполнено включение компьютера, как только электропитание будет восстановлено.

Power On By RTC Alarm — включение электропитания по внутренним часам компьютера (аналог будильника).

Power On By External Modems — включение электропитания будет выполняться при входящем звонке на внешний модем, подключенный к последовательному порту.

Power On By PCIE Devices — разрешает включение компьютера от устройств на шине PCI-E. Если ваша сетевая карта использует шину PCI-E, а не PCI, то для включения режима Wake On Lan нужно установить эту опцию в «Enable».

Power On By PS/2 Keyboard — разрешает включение электропитания от клавиатуры, подключенной к разъему PS/2

Далее проверьте свойства сетевой карты, (правой кнопкой мыши на иконке «Мой компьютер«, выберите Управление -> «Диспетчер устройств«). В «Диспетчере устройств» откройте свойства вашей «Сетевой карты» и выберите закладку «Управление электропитанием

«. Опции включения питания должны быть включены как показано на картинке ниже.

По умолчанию для WOL пакета используются порты 7 и 9 (протокол UDP).

Вариант №1 под Windows:

Требуются следующие утилиты и комп должен быть подключен к сети.

В батнике mc-wol.bat прописываем

mc-wol 20:CF:30:3C:30:9C

, где mac — mac-адресс компьютера.

Включить компьютер в локальной сети с MAC= 20:CF:30:3C:30:9C

wol.exe 20:CF:30:3C:30:9C:

  • Включить компьютер с использованием IP=212.248.111.222 и MAC=20:CF:30:3C:30:9C: wol.exe 212.248.111.222- 20:CF:30:3C:30:9C

Вариант №2 под Ubuntu:

1) определяем mac адрес сетевой карты

$ ifconfig | grep HWaddr

eth0 Link encap:Ethernet HWaddr 00:24:1d:82:1b:74

$ apt-cache search wakeonlan

$ sudo apt-get install wakeonlan

wakeonlan — посылает ‘магические пакеты’ для включения хостов через Wake-on-Lan.

00:25:22:83:33:25 – mac адрес домашнего пк.

Посылаем волшебный пакет на домашний комп.

sudo wakeonlan -i 192.168.1.255 00:25:22:83:33:25 (где мой мас-адресс mac адресс домашнего пк.)

Sending magic packet to 192.168.1.255:9 with 00:25:22:83:33:25

И Вуаля наш компьютер оживает, видим идет процесс загрузки система, и наконец загруженная система. Работает…

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще 🙂

Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Статья представляет собой пошаговую инструкцию по настройке удалённого включения компьютера через Интернет с помощью технологии Wake-on-LAN.

Wake-on-LAN (WOL) — технология, позволяющая удалённо включить компьютер посредством отправки через локальную сеть специальной последовательности байтов — пакета данных (так называемого «magic packet» — «волшебного пакета»).

При активации WOL в BIOS на сетевую карту подается минимальное питание, достаточное, чтобы принять «magic packet» и включить компьютер.

Для настройки технологии Wake-on-LAN (прим. далее – WOL) потребуется:

1. Поддержка WOL материнской платой компьютера;

2. Поддержка WOL сетевой картой компьютера;

3. Wi-Fi роутер;

4. Любое приложение WOL.

I. Настройка BIOS

1. Необходимо зайти в BIOS (прим. обычно для этого достаточно нажать F2 или DEL при появлении первых строчек на экране

) и определить, поддерживает ли материнская плата WOL. У различных производителей материнских плат WOL может называться по разному. Вот список названий функции для различных производителей материнских плат: Wakeup option; Wake On LAN; MAC Resume From S3/S4; MACPME Power Up Control; Power On By Onboard LAN; Power Up By Onboard LAN; Power On By PCI Devices; Resume on PCI Event; Resume by LAN; Resume By WOL; Resume on LAN; Resume on LAN/PME#; Wake on LAN from S5; Wake Up On LAN; WakeUp by Onboard LAN; WOL (PME#) From Soft-Off; PME Events Wake Up; Resume by PME# Function; Resume On PME#; Wake On PME; Wake Up On PME.

После того как вы зашли в UEFI (BIOS) необходимо выбрать Advanced Mode (прим. — Расширенный режим/Дополнительно) (Рис.1).

2. В открывшемся окне нажимаем ОК (Рис.2).

3. Переходим на вкладку Advanced (прим. — Дополнительно

) и выбираем APM (Рис.3).

4. В строке Power On By PCIE/PCI (прим. — Включение посредством PCIE) выбираем Enabled (прим. — Включено). Обратите внимание, справа в описании написано, что данная настройка отвечает за Wake-on-LAN (Рис.4).

5. Нажимаем Exit (прим. — Выход) и в появившемся окне выбираем Save Changes & Reset (прим. — Сохранить изменения и выйти) (Рис.5).

II. Настройка сетевой карты

1. Для настройки сетевой карты необходимо перейти в настройки параметров адаптера:

Пуск > Панель управления > Центр управления сетями и общим доступом > Изменение параметров адаптера

2. Дважды кликните на иконке нужного нам адаптера (прим. который подключен к роутеру «витой парой»

), в появившемся окне нажмите Сведения (Рис.9).

3. В окне Сведения о сетевом подключении вы увидите строчку Физический адрес. Внимательно перепишите адрес, который у вас указан (прим. он потребуется позже для дальнейшей настройки), затем нажмите Закрыть (Рис.10).

4. Теперь в окне Состояние выберите Свойства (Рис.11).

5. В Свойствах перейдите на вкладку Дополнительно и установите значение Включено (Вкл.) в строках, которые выделены на Рис.12 и значение Выключено (Выкл.) в строке, которая выделена на Рис.13.

6. Перейдите на вкладку Управление электропитанием и поставьте галочки как это показано на Рис.14, затем нажмите ОК.

III. Получение динамического DNS (DDNS)

Динамический DNS необходим для того, чтобы присвоить постоянное доменное имя Wi-Fi роутеру.

1. Перейдите на сайт https://www.noip.com/ . На сайте нажмите SingUp (Рис.15).

2. На сайте, в соответствующих строчках, введите: e-mail, имя пользователя, пароль, hostname, а затем нажмите Create My Free Account (Рис.16).

3. На указанный вами при регистрации e-mail придёт письмо с необходимостью подтверждения аккаунта. Нажмите Confirm Account (Рис.17).

4. Перейдите в созданный вами аккаунт, в соответствующей строке придумайте и введите hostname и domain, затем нажмите Add Hostname (Рис.18).

5. После создания DDNS ещё раз перейдите в раздел Active (Рис.19).

6. Вы увидите созданный вами DDNS, запомните его (

прим. он потребуется в дальнейшем при настройке) (Рис.20).

IV. Настройка Wi-Fi роутера

1. Для настройки Wi-Fi роутера — введите адрес вашего роутера (прим. как правило это 192.168.0.1 или 192.168.1.1) и зайдите в меню (Рис.21).

В меню перейдите на вкладку Dynamic DNS (Динамический DNS)., в поле Service Provider (Провайдер сервиса) выбираем NoIP. В полях User name (Имя пользователя) и Password (Пароль) — укажите данные (прим. e-mail и пароль), которые вы использовали при регистрации на сайте noip.com. В поле Domain name (Доменное имя) введите доменное имя, которое вы регистрировали на сайте noip.com (прим. в примере это primer.ddns.net). Поставьте галочку напротив Enabled DDNS (Включить DDNS). Нажмите Login (

Войти). Если все правильно сделано, то в поле Connection Status (Статус подключения) вы увидите надпись Succeeded! (Успешно!). Нажмите Save (Сохранить) (Рис.21).

2. Перейдите на вкладку DHCP Settings (Настройки DHCP). В строке DHCP-server (DHCP-сервер) установите состояние Enabled (Включено). Запомните диапазон ваших IP-адресов (прим. на примере это от 192.168.0.1 до 192.168.0.199, на вашем роутере они могут быть другие). Нажмите Save (Сохранить) (Рис.22).

3. Перейдите на вкладку Address Reservation (Резервирование адресов) и нажмите Add (Добавить) (Рис.23).

4. Введите в соответствующие поля MAC Address (MAC-адрес) — это физический адрес вашего компьютера (прим. вы должны были его записать, см. Рис.10)., Reserved Address (Зарезервированный IP-адрес) — введите любой IP-адрес из диапазона IP адресов вашего роутера (прим. например, если диапазон вашего роутера от 192.168.0.1 до 192.168.0.199, то ваш адрес должен быть 192.168.0.X, где X — любое число от 3 до 198)., в строке Status (Состояние) установите Enabled (Включено), затем нажмите Save (Сохранить) (Рис.24).

5. Перейдите на вкладку Binding Settings (Параметры привязки). Установите галочку напротив Bind (Связать). Введите в соответствующие поля MAC Address (MAC-адрес) — это физический адрес вашего компьютера (прим. вы должны были его записать, см. Рис.10)., IP Address (IP-адрес) — тот, который вы выбрали из диапазона IP-адресов вашего роутера (прим. тот, который вы вводили уже ранее, см. Рис.24), затем нажмите Save (Сохранить) (Рис.25).

6. Перейдите на вкладку Virtual Servers (Виртуальные серверы). В полях Service Port (Порт сервиса) и Internal Port (Внутренний порт) установите значение 9 (прим. вообще можно выбрать любой порт, но для WOL принято устанавливать порты 7 или 9). В поле IP Address (IP-адрес) введите тот, который вы выбрали из диапазона IP-адресов вашего роутера (прим. тот, который вы вводили уже ранее, см. Рис.24). В поле Protocol (Протокол) установите состояние UDP. В поле Status (Состояние) установите Enabled (Включено), затем нажмите Save (Сохранить) (Рис.26).

V. Включение удалённого компьютера через Интернет с помощью Android (проверка работоспособности)

1. Запустите скачанное из Play Market любое приложение для WOL (прим. в примере будет рассмотрено включение удалённого компьютера на примере приложения Wake on LAN).

2. Открыв приложение Wake on LAN нажмите «+» как это показано на Рис.27.

3. В открывшемся меню в поле Host name вы можете ввести любое название для соединения (прим. поменять его потом нельзя)., Поставьте галочку напротив more details., В поле Address введите адрес, который вы регистрировали на noip.com (прим. который вы вводили на Рис.24)., В поле Port (Порт) введите порт, который вы указали ранее (прим. Рис.26)., В поле MAC Address (MAC-адрес) — это физический адрес вашего компьютера (прим. вы должны были его записать, см. Рис.10), затем нажмите Save (Рис.28).

4. После сохранения настроек вы увидите созданное вами соединение. Выключите компьютер, а затем нажмите на своём смартфоне область выделенную на Рис.29, если вы всё сделали правильно — компьютер автоматически включится.

Настройка удалённого включения компьютера через интернет с помощью технологии Wake-on-LAN завершена!

linux — как интерпретировать /sys /bus /pci /devices / /ресурс

я пытаюсь выяснить, как интерпретировать resource и файлы resource<number> по PCI . Давайте посмотрим на конкретный пример.

Вот что я получаю, когда запускаю lspci -tvvv

-[0000:00]-+-00.0  Intel Corporation 440FX - 82441FX PMC [Natoma]
           +-01.0  Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
           +-01.1  Intel Corporation 82371AB/EB/MB PIIX4 IDE
           +-02.0  InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
           +-03.0  Intel Corporation 82540EM Gigabit Ethernet Controller
           +-04.0  InnoTek Systemberatung GmbH VirtualBox Guest Service
           +-05.0  Intel Corporation 82801AA AC'97 Audio Controller
           +-06.0  Apple Inc. KeyLargo/Intrepid USB
           +-07.0  Intel Corporation 82371AB/EB/MB PIIX4 ACPI
           \-0d.0  Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode]

Когда я запускаю tree /sys/bus/pci/devices/0000\:00\:00.0/ я получаю следующее:

/sys/bus/pci/devices/0000:00:00.0/
├── broken_parity_status
├── class
├── config
├── consistent_dma_mask_bits
├── d3cold_allowed
├── device
├── dma_mask_bits
├── driver_override
├── enable
├── firmware_node -> ../../LNXSYSTM:00/LNXSYBUS:00/PNP0A03:00/PNP8390:00
├── irq
├── local_cpulist
├── local_cpus
├── modalias
├── msi_bus
├── numa_node
├── power
│   ├── async
│   ├── autosuspend_delay_ms
│   ├── control
│   ├── runtime_active_kids
│   ├── runtime_active_time
│   ├── runtime_enabled
│   ├── runtime_status
│   ├── runtime_suspended_time
│   └── runtime_usage
├── remove
├── rescan
├── resource
├── subsystem -> ../../../bus/pci
├── subsystem_device
├── subsystem_vendor
├── uevent
└── vendor

Когда я запускаю tree /sys/bus/pci/devices/0000\:00\:03.0 я получаю следующее:

/sys/bus/pci/devices/0000:00:03.0
├── broken_parity_status
├── class
├── config
├── consistent_dma_mask_bits
├── d3cold_allowed
├── device
├── dma_mask_bits
├── driver -> ../../../bus/pci/drivers/e1000
├── driver_override
├── enable
├── irq
├── local_cpulist
├── local_cpus
├── modalias
├── msi_bus
├── net
│   └── eth0
│       ├── addr_assign_type
│       ├── address
│       ├── addr_len
│       ├── broadcast
│       ├── carrier
│       ├── carrier_changes
│       ├── device -> ../../../0000:00:03.0
│       ├── dev_id
│       ├── dev_port
│       ├── dormant
│       ├── duplex
│       ├── flags
│       ├── gro_flush_timeout
│       ├── ifalias
│       ├── ifindex
│       ├── iflink
│       ├── link_mode
│       ├── mtu
│       ├── name_assign_type
│       ├── netdev_group
│       ├── operstate
│       ├── phys_port_id
│       ├── phys_switch_id
│       ├── power
│       │   ├── async
│       │   ├── autosuspend_delay_ms
│       │   ├── control
│       │   ├── runtime_active_kids
│       │   ├── runtime_active_time
│       │   ├── runtime_enabled
│       │   ├── runtime_status
│       │   ├── runtime_suspended_time
│       │   └── runtime_usage
│       ├── queues
│       │   ├── rx-0
│       │   │   ├── rps_cpus
│       │   │   └── rps_flow_cnt
│       │   └── tx-0
│       │       ├── byte_queue_limits
│       │       │   ├── hold_time
│       │       │   ├── inflight
│       │       │   ├── limit
│       │       │   ├── limit_max
│       │       │   └── limit_min
│       │       ├── tx_timeout
│       │       └── xps_cpus
│       ├── speed
│       ├── statistics
│       │   ├── collisions
│       │   ├── multicast
│       │   ├── rx_bytes
│       │   ├── rx_compressed
│       │   ├── rx_crc_errors
│       │   ├── rx_dropped
│       │   ├── rx_errors
│       │   ├── rx_fifo_errors
│       │   ├── rx_frame_errors
│       │   ├── rx_length_errors
│       │   ├── rx_missed_errors
│       │   ├── rx_over_errors
│       │   ├── rx_packets
│       │   ├── tx_aborted_errors
│       │   ├── tx_bytes
│       │   ├── tx_carrier_errors
│       │   ├── tx_compressed
│       │   ├── tx_dropped
│       │   ├── tx_errors
│       │   ├── tx_fifo_errors
│       │   ├── tx_heartbeat_errors
│       │   ├── tx_packets
│       │   └── tx_window_errors
│       ├── subsystem -> ../../../../../class/net
│       ├── tx_queue_len
│       ├── type
│       └── uevent
├── numa_node
├── power
│   ├── async
│   ├── autosuspend_delay_ms
│   ├── control
│   ├── runtime_active_kids
│   ├── runtime_active_time
│   ├── runtime_enabled
│   ├── runtime_status
│   ├── runtime_suspended_time
│   └── runtime_usage
├── remove
├── rescan
├── reset
├── resource
├── resource0
├── resource2
├── subsystem -> ../../../bus/pci
├── subsystem_device
├── subsystem_vendor
├── uevent
└── vendor

Что такое ресурсы, то есть resource , resource0 , resource2? Эти регистры BAR? Если они являются числом в имени, то есть 2 в resource2 будет означать BAR2. В этом случае, что представляет resource?

Любая помощь приветствуется.

Как сбросить / отключить питание устройства PCIe?

Сброс в PCI Express немного сложен. Существует два основных типа сброса: обычный сброс и сброс на уровне функций. Есть также два типа обычных сбросов: фундаментальные и неосновные. См. Спецификацию PCI Express для всех деталей.

«Холодный сброс» — это фундаментальный сброс, который происходит после подачи питания на устройство PCIe. Похоже, не существует стандартного способа холодного сброса, за исключением выключения и повторного включения системы. На моих машинах /sys/bus/pci/slotsкаталог пуст.

«Теплый сброс» — это основной сброс, который запускается без отключения питания устройства. Похоже, не существует стандартного способа запуска «горячего» сброса.

«Горячий сброс» — это обычный сброс, который запускается по каналу PCI Express. Горячий сброс запускается, когда канал принудительно переключается в электрический режим, или путем отправки упорядоченных наборов TS1 и TS2 с установленным битом горячего сброса. Программное обеспечение может инициировать «горячий» сброс, установив, а затем сбросив бит сброса вторичной шины в регистре управления мостом в пространстве конфигурации PCI порта моста перед устройством.

«Сброс на уровне функций» (FLR) — это сброс, который влияет только на одну функцию устройства PCI Express. Он не должен сбрасывать все устройство PCIe. Реализация сброса на уровне функций не требуется в спецификации PCIe. Сброс на уровне функций инициируется установкой бита инициализации сброса на уровне функций в регистре управления устройством функции в структуре возможностей PCI Express в пространстве конфигурации PCI.

Linux предоставляет функциональность сброса на уровне функций в форме /sys/bus/pci/devices/$dev/reset. Запись 1 в этот файл инициирует сброс уровня функции для соответствующей функции. Обратите внимание, что это влияет только на эту конкретную функцию устройства, а не на все устройство, и устройства не обязаны выполнять сброс на уровне функций согласно спецификации PCIe.

Я не знаю ни одного «хорошего» метода для запуска «горячего» сброса (для этого нет записи sysfs). Однако для этого можно использовать setpci:

#!/bin/bash

dev=$1

if [ -z "$dev" ]; then
    echo "Error: no device specified"
    exit 1
fi

if [ ! -e "/sys/bus/pci/devices/$dev" ]; then
    dev="0000:$dev"
fi

if [ ! -e "/sys/bus/pci/devices/$dev" ]; then
    echo "Error: device $dev not found"
    exit 1
fi

port=$(basename $(dirname $(readlink "/sys/bus/pci/devices/$dev")))

if [ ! -e "/sys/bus/pci/devices/$port" ]; then
    echo "Error: device $port not found"
    exit 1
fi

echo "Removing $dev..."

echo 1 > "/sys/bus/pci/devices/$dev/remove"

echo "Performing hot reset of port $port..."

bc=$(setpci -s $port BRIDGE_CONTROL)

echo "Bridge control:" $bc

setpci -s $port BRIDGE_CONTROL=$(printf "%04x" $(("0x$bc" | 0x40)))
sleep 0.01
setpci -s $port BRIDGE_CONTROL=$bc
sleep 0.5

echo "Rescanning bus..."

echo 1 > "/sys/bus/pci/devices/$port/rescan"

Убедитесь, что все подключенные драйверы выгружены перед запуском этого скрипта. Этот сценарий попытается удалить устройство PCIe, затем подать команду на порт вышестоящего коммутатора для выполнения горячего сброса, а затем попытаться выполнить повторное сканирование шины PCIe. Этот сценарий также был протестирован только на устройствах с одной функцией, поэтому может потребоваться доработка для устройств с несколькими функциями.

Отключение Wake-on-LAN на компьютере

В некоторых случаях пользователи цифрового телевидения становятся свидетелями ситуации, когда при выключенном компьютере на экране телевизора появляются помехи. При отключении компьютера от электропитания помехи пропадают. Дело в том, что большинство современных ПК и роутеров поддерживает функцию Wake-on-LAN.

Wake-on-LAN (WOL) — это технология, позволяющая удалённо включить компьютер посредством отправки через сеть специальным образом сформированного пакета данных. Современные компьютеры обеспечивают поступление электропитания на материнскую плату даже в выключенном состоянии. Именно этот режим работы сетевой карты может быть источником помех, которые наблюдаются при просмотре цифрового телевидения.

Для отключения этой функции проделываем следующую последовательность действий:

  1. Нажимаем правой кнопкой мыши значок Мой компьютер, выбираем из контекстного меню Управление, далее Диспетчер устройств;
  2. Находим в списке устройств сетевую карту, открываем свойства сетевой карты, выбираем вкладку Управление электропитанием и снимаем все флаги на данной вкладке.
  3. Выбираем вкладку Дополнительно. В поле Свойство выделим пункт Wake From Shutdown, а в поле Значение — значение Выкл. Нажимаем на кнопку Ок.

  4. После этого функция WOL будет отключена. Однако, существуют случаи, когда отключения WOL в операционной системе недостаточно. Тогда функцию следует отключить в BIOS.

Опции в BIOS отвечающие за отключение WOL, могут иметь следующие названия:

  • MACPME Power Up Control;
  • Power On By Onboard LAN;
  • Power Up By Onboard LAN;
  • Power On By PCI Devices;
  • Resume on PCI Event;
  • Resume by LAN; Resume By WOL;
  • Wakeup option;
  • Wake On LAN;
  • MAC Resume From S3/S4;
  • Resume on LAN;
  • Wake on LAN from S5;
  • Wake Up On LAN;
  • Resume on LAN/PME;
  • PME Events Wake Up;
  • WakeUp by Onboard LAN;
  • Wake Up On PME;
  • Wake On PME.

devices — Как перезагрузить /перевести питание на устройство PCIe?

Сбросы в PCI Express немного сложны. Существует два основных типа сброса: обычный сброс и сброс уровня функции. Существуют также два типа обычных сбросов, основные сбросы и не-фундаментальные сбросы. См. Спецификацию PCI Express для всех деталей.

«Холодный сброс» представляет собой фундаментальный сброс, который происходит после подачи питания на устройство PCIe. Кажется, нет стандартного способа запуска холодного сброса, за исключением того, что система выключается и снова включается. На моих машинах каталог /sys/bus/pci/slots пуст.

«Сброс тепла» — это базовый сброс, который запускается без отключения питания от устройства. Кажется, нет стандартного способа запуска теплого сброса.

«Горячий сброс» — это обычный сброс, который запускается по каналу PCI Express. Горячий сброс срабатывает либо при принудительном соединении, либо при отправке упорядоченных наборов TS1 и TS2 с установленным битом горячего сброса. Программное обеспечение может инициировать горячий сброс, установив и затем очистив бит сброса дополнительной шины в регистре управления мостом на мостовом порту перед устройством в конфигурационном пространстве PCI.

«Сброс функционального уровня» (FLR) — это сброс, который влияет только на одну функцию устройства PCI Express. Он не должен перезагружать все устройство PCIe. Внедрение сброса уровня функции не требуется по спецификации PCIe. Сброс функционального уровня инициируется установкой бит сброса начального уровня функции в регистре управления устройством функции в структуре возможностей PCI Express в конфигурационном пространстве PCI.

Linux предоставляет функциональные возможности сброса функционального уровня в виде /sys/bus/pci/devices/$dev/reset. Запись 1 в этот файл будет инициировать сброс на уровне функции соответствующей функции. Обратите внимание, что это влияет только на определенную функцию устройства, а не на все устройство, и устройствам не требуется выполнять сброс уровня функции в соответствии со спецификацией PCIe.

Мне не известно о каком-либо «хорошем» методе запуска горячего сброса. Однако для этого можно использовать setpci:

#!/bin/bash

dev=$1

if [ -z "$dev" ]; then
    echo "Error: no device specified"
    exit 1
fi

if [ ! -e "/sys/bus/pci/devices/$dev" ]; then
    dev="0000:$dev"
fi

if [ ! -e "/sys/bus/pci/devices/$dev" ]; then
    echo "Error: device $dev not found"
    exit 1
fi

port=$(basename $(dirname $(readlink "/sys/bus/pci/devices/$dev")))

if [ ! -e "/sys/bus/pci/devices/$port" ]; then
    echo "Error: device $port not found"
    exit 1
fi

echo "Removing $dev..."

echo 1 > "/sys/bus/pci/devices/$dev/remove"

echo "Performing hot reset of port $port..."

bc=$(setpci -s $port BRIDGE_CONTROL)

echo "Bridge control:" $bc

setpci -s $port BRIDGE_CONTROL=$(printf "%04x" $(("0x$bc" | 0x40)))
sleep 0.01
setpci -s $port BRIDGE_CONTROL=$bc
sleep 0.5

echo "Rescanning bus..."

echo 1 > "/sys/bus/pci/devices/$port/rescan"

Перед запуском этого сценария убедитесь, что все подключенные драйверы выгружены. Этот скрипт попытается удалить устройство PCIe, а затем запрограммировать восходящий порт коммутатора для сброса горячего сброса, а затем попытаться выполнить повторное сканирование шины PCIe. Этот скрипт также тестировался только на устройствах с одной функцией, поэтому может потребоваться некоторая переработка для устройств с несколькими функциями.

Что такое питание по PCIe? — Mvorganizing.org

Что такое питание через PCIe?

Включение от устройств PCI / PCIe Также известное как «Wake-On-LAN», это наиболее полезно для пробуждения вашего ПК при обнаружении сетевой активности. Настройте все правильно, и вы даже можете запустить свой компьютер через Интернет.

Как запустить пробуждение по локальной сети?

Откройте меню «Пуск», введите «Диспетчер устройств» и откройте диспетчер устройств. Разверните «Сетевые адаптеры», щелкните правой кнопкой мыши сетевой адаптер (обычно Intel) и выберите «Свойства».Щелкните вкладку «Питание» или «Управление питанием» и убедитесь, что WOL включен. Щелкните ОК, чтобы сохранить.

Как вы просыпаетесь от волшебного пакета?

Откройте Диспетчер устройств и разверните раздел «Сетевые адаптеры». Щелкните правой кнопкой мыши свою сетевую карту и перейдите в «Свойства», затем перейдите на вкладку «Дополнительно». Прокрутите список вниз, найдите «Wake on Magic Packet» и измените значение на «Включено». Остальные настройки «Пробуждение» можно оставить без изменений.

Как работает волшебный пакет WOL?

WoL работает путем отправки пакета данных, называемого Magic Packet ™, на целевую машину.Когда пакет получен, сетевой интерфейс целевой машины пробуждает остальную часть компьютера.

Стоит ли отключать пробуждение по волшебному пакету?

В режиме ожидания он может получить волшебный пакет, небольшой объем данных, относящийся к MAC-адресу сетевой карты, и ответит на это включением системы. Это очень полезно для удаленного управления, однако вы можете отключить эти функции без каких-либо негативных последствий.

Может ли AnyDesk пробуждаться по локальной сети?

Wake-On-LAN Конечно, вы можете попросить коллегу включить его устройство.Или теперь вы можете пойти более простым путем и использовать новую функцию AnyDesk Wake-On-LAN! Название уже говорит вам все, что вам нужно знать: вы просто будите спящее устройство.

Может ли LogMeIn разбудить спящий компьютер?

Откройте панель управления LogMeIn и перейдите в «Параметры»> «Настройки»> «Дополнительные настройки». В разделе Wake On LAN выберите Enable ‘Wake On LAN’ from sleep and power off.

Что лучше AnyDesk или TeamViewer?

AnyDesk и TeamViewer бесплатны для личного использования, RemotePC имеет ценность для однопользовательских планов, а AnyDesk предлагает лучшие цены для многопользовательских планов с неограниченным количеством устройств, поэтому в целом AnyDesk немного уступает ему в ценовом отделе.

Может ли AnyDesk работать без интернета?

Да. Ни настроенные клиенты AnyDesk, ни сервер устройства не обмениваются ни одним байтом с нашими серверами. Проверка лицензии выполняется криптографически и в автономном режиме. Следовательно, он также может работать в локальных сетях без доступа в Интернет.

Как мне получить доступ к AnyDesk без разрешения?

Подключение к удаленному устройству Просто подключитесь и дождитесь появления диалогового окна пароля. Установите флажок «С этого момента входить в систему автоматически» и введите правильный пароль.Вам больше не нужно будет вводить пароль для будущих подключений к той же машине. Эта функция не сохраняет сам пароль.

Можно ли взломать AnyDesk?

Нет, после удаления приложения AnyDesk со своего телефона никто не сможет получить к нему доступ. Но всегда помните одну вещь, которая никогда не позволяет никому получать удаленный доступ к вашему телефону с помощью каких-либо приложений с удаленным доступом. Будьте в курсе и держитесь подальше от мошенников.

Работает ли SSH без интернета?

Подключение к Интернету по SSH на вашем устройстве не требуется, если только вы не пытаетесь сделать это через Интернет!

Можно ли использовать ssh на MAC-адрес?

подключиться через ssh с использованием MAC-адреса. Вместо того, чтобы искать правильный IP-адрес, просто выберите любой адрес, который вам нравится, и установите статическое сопоставление IP-адресов.

Как подключить Raspberry Pi без Интернета?

Подключитесь к Raspberry Pi через Ethernet. Наиболее очевидный вариант такого подключения — через кабель Ethernet. Все компьютеры Raspberry Pi (за исключением Pi Zero) имеют порты Ethernet, поэтому этот вариант работает лучше всего.

Работает ли SSH только в одной сети?

Да, это возможно. Обычно для этого используется переадресация портов (для разных домашних маршрутизаторов способ переадресации портов может отличаться).Однако есть одна проблема. Большинство интернет-провайдеров не позволяют вам этого делать.

Как использовать SSH через Интернет?

Для подключения к серверу через Интернет по SSH:

  1. На вашем компьютере: вам нужно открыть порт 22 в брандмауэре.
  2. На маршрутизаторе: вам необходимо перенаправить порт 22 на 192.168.0.1. X.X.
  3. Если ваш внешний IP-адрес не является статическим (это зависит от вашего интернет-провайдера), вам нужно будет дать вашему маршрутизатору имя DNS.

Как включить SSH-соединения?

Включение SSH в Ubuntu

  1. Откройте терминал с помощью сочетания клавиш Ctrl + Alt + T или щелкнув значок терминала и установите пакет openssh-server, набрав: sudo apt update sudo apt install openssh-server.
  2. После завершения установки служба SSH запустится автоматически.

Как подключиться по SSH к другому компьютеру в моей сети?

Как подключиться через SSH

  1. Откройте SSH-терминал на своем компьютере и выполните следующую команду: ssh [email protected] _ip_address Если имя пользователя на вашем локальном компьютере совпадает с именем пользователя на сервере, к которому вы пытаетесь подключиться, вы можете просто ввести: ssh host_ip_address.
  2. Введите свой пароль и нажмите Enter.

Как узнать, работает ли SSH?

Работает ли SSH?

  1. Чтобы проверить состояние вашего демона SSH, запустите:
  2. Если команда сообщает о том, что служба запущена, просмотрите раздел «Работает ли SSH на нестандартном порте?»
  3. Если команда сообщает, что служба не запущена, попробуйте перезапустить ее:
  4. Проверьте статус услуги еще раз.

Как узнать, работает ли SSH в Windows?

Вы можете проверить, включена ли эта функция в вашей версии Windows 10, открыв Параметры Windows, перейдя в Приложения> Дополнительные функции и убедившись, что отображается Открыть SSH-клиент.Если он не установлен, вы можете сделать это, щелкнув Добавить компонент.

Могу ли я войти в Windows по SSH?

Клиент SSH является частью Windows 10, но это «дополнительная функция», которая не устанавливается по умолчанию. Чтобы установить его, перейдите в «Настройки»> «Приложения» и нажмите «Управление дополнительными функциями» в разделе «Приложения и функции». Windows 10 также предлагает сервер OpenSSH, который вы можете установить, если хотите запустить SSH-сервер на своем ПК.

Что такое AWS ssh?

Об Amazon EC2 Instance Connect Самым распространенным инструментом для подключения к серверам Linux является Secure Shell (SSH).Он был создан в 1995 году и сейчас устанавливается по умолчанию почти во всех дистрибутивах Linux. При подключении к хостам через SSH пары ключей SSH часто используются для индивидуальной авторизации пользователей.

Как включить SSH в Windows?

Чтобы установить OpenSSH, запустите «Настройки», затем выберите «Приложения»> «Приложения и функции»> «Управление дополнительными функциями». Просмотрите этот список, чтобы увидеть, установлен ли уже клиент OpenSSH. Если нет, то вверху страницы выберите «Добавить компонент», затем: Чтобы установить клиент OpenSSH, найдите «Клиент OpenSSH», затем нажмите «Установить».

Могу ли я использовать ssh из командной строки?

Вы можете включить SSH, используя командную строку, чтобы обеспечить безопасность соединения и данных.

Могу ли я подключиться к серверу Linux из Windows без PuTTY?

При первом подключении к компьютеру Linux вам будет предложено принять ключ хоста. Затем введите свой пароль для входа в систему. После входа в систему вы можете запускать команды Linux для выполнения административных задач. Обратите внимание: если вы хотите вставить пароль в окно PowerShell, вам нужно щелкнуть правой кнопкой мыши и нажать Enter.

Где находится файл конфигурации SSH в Windows?

Конфигурация OpenSSH и ключевые файлы (включая config, known_hosts, authorized_keys, id_rsa и т. Д.), Которые в * nix идут в ~ /. ssh, в Win32-OpenSSH они идут в% USERPROFILE% \. ssh.

Как мне найти свою конфигурацию SSH?

Программа ssh на хосте получает свою конфигурацию либо из командной строки, либо из файлов конфигурации ~ /. ssh / config и / etc / ssh / ssh_config.

Как изменить каталог по умолчанию в SSH?

Вы можете поместить директиву SendEnv в ~ /.ssh / config, поэтому вам не нужно включать его в командную строку. Затем он автоматически изменит каталог на тот, который указан в переменной среды при входе в систему, если он указан и если это каталог.

Что такое файл конфигурации SSH?

Расположение файла конфигурации SSH Клиентский файл конфигурации OpenSSH называется config и хранится в каталоге. ssh в домашнем каталоге пользователя. Каталог ~ / .ssh создается автоматически, когда пользователь запускает команду ssh в первый раз.

Как настроить удаленный компьютер для Wake On Lan

Wake-on-LAN обычно необходимо включить в разделе «Управление питанием» BIOS материнской платы. Название элемента включения WOL может отличаться в зависимости от производителя BIOS (Wake On LAN, Wake Up by LAN, Wake Up On LAN, Power On LAN, Power Up by LAN, Power On by PCI Devices, Power On by PCIE Devices, Resume On Событие PCI, возобновление по локальной сети, возобновление по WOL, возобновление по локальной сети, возобновление по локальной сети / PME #, пробуждение по локальной сети с S5, WOL (PME #) из мягкого отключения, пробуждение по событиям PME, возобновление с помощью функции PME #, возобновление On PME #, Wake On PME, Wake Up On PME, MAC Resume from S3 / S4, MACPME Power Up Control и т. Д.). Чтобы получить подробную информацию о том, как включить WOL в BIOS материнской платы, обратитесь к Руководству пользователя материнской платы или к производителю системы.

Материнская плата должна быть в спящем режиме (состояние питания системы G1-S1, G1-S2 или G1-S3), в спящем режиме (состояние питания системы G1-S4) или выключена (состояние питания системы G2-S5). Механическое выключение (состояние питания системы G3) не поддерживается, это означает, что адаптер переменного тока не был отключен после последнего выключения.

Второе требование — включение функции Wake on LAN в настройках сетевого адаптера операционной системы.Это можно сделать в свойствах сетевого адаптера в диспетчере устройств. Выполните следующие действия, чтобы включить Wake on LAN для Microsoft Windows:

1. Откройте «Диспетчер устройств».
2. В открывшемся окне разверните узел «Сетевые адаптеры».
3. Выберите адаптер, который вы хотите настроить для получения пакетов WOL, щелкните его правой кнопкой мыши и выберите в раскрывающемся меню пункт «Свойства».

4. В открывшемся диалоге перейдите на вкладку «Дополнительно».
5.Измените свойство «Пробуждение по локальной сети при выключении» или «Пробуждение по локальной сети после выключения» или «Пробуждение от выключения» на «Включено».

6. Измените свойство «Wake on Magic Packet» на «Enabled» или для свойства «Wake-Up Capabilities» выберите значение Magic Packet.

7. В открывшемся диалоге перейдите на вкладку «Управление питанием»
8. Установите флажок «Разрешить этому устройству выводить компьютер из спящего режима» и снимите флажок «Разрешить компьютеру выключать это устройство для экономии энергии».

9.Установите флажок «Разрешить только волшебный пакет для пробуждения компьютера», чтобы убедиться, что он не просыпается при каждой сетевой активности, которая происходит.

10. Нажмите кнопку «ОК», чтобы продолжить.

Перейти на страницу продукта

Настройки управления питанием — BIOS для начинающих

Настройки управления питанием

Эта область BIOS кажется наиболее неправильно понятой. Если эти параметры не настроены должным образом, результатом может быть некорректное завершение работы системы, неправильный переход или выход из режима ожидания или гибернации.Поскольку Windows имеет встроенное управление питанием, вам нужно отключить все управление питанием в BIOS. В противном случае они будут сражаться друг с другом, и ни один из них не работает должным образом. Производители материнских плат не предполагают, что все используют Windows, поэтому многие из этих настроек существуют для пользователей, отличных от Windows.

ACPI Suspend to RAM : ACPI означает Advanced Configuration and Power Interface — не путать с APIC или IPCA, которые некоторые люди могут найти в качестве опций в своих программах настройки BIOS.Функция Suspend to RAM, иногда называемая S3 / STR, позволяет ПК экономить больше энергии в режиме ожидания, но все устройства внутри или подключенные к компьютеру должны быть совместимы с ACPI. Некоторые BIOS предлагают вариант S1 / POS для этого сценария. Если при включении этой функции возникают проблемы с режимом ожидания, просто вернитесь в BIOS и отключите его.

Метод отключения видео : Параметр DPMS (система управления питанием дисплея) позволяет BIOS управлять платой видеодисплея, если она поддерживает функцию DPMS.Параметр «Пустой экран» просто очищает экран — используйте его для мониторов без функций управления питанием или «зеленых» функций. Параметр V / H SYNC Blank закрывает экран и отключает вертикальное и горизонтальное сканирование. Если ваш компьютер и монитор были созданы в течение последних четырех лет, я рекомендую установить для этого параметра DPMS.

HDD Down In Suspend : Эта функция определяет, будет ли жесткий диск автоматически отключаться, когда компьютер переходит в режим ожидания. Хотя большинство настроек питания этого типа контролируются в Windows, если вы обнаружите, что жесткий диск не выключается, когда компьютер переходит в режим ожидания (при условии, что ваш компьютер даже поддерживает режимы ожидания и гибернации), включите эту опцию.В противном случае рекомендуемая настройка — Отключено.

Кнопка PWR <4 секунд : По умолчанию все компьютеры ATX выключаются после удерживания кнопки питания более четырех секунд. Этот параметр сообщает компьютеру, что делать, если кнопка питания удерживается менее четырех секунд. Возможны следующие варианты: выключить систему или перейти в режим ожидания. Эта настройка зависит от вас.

Включение питания на устройстве PCI : если вы используете Wake-On-LAN — обычно применяемый в больших офисных средах для включения компьютеров для удаленного администрирования — вам нужно, чтобы этот параметр был включен.В противном случае я рекомендую вам установить его на Disabled.

Пробуждение / включение при внеш. Модем : этот параметр указывает компьютеру включаться, когда телефонная линия, подключенная к его модему, звонит. Еще раз, это используется для удаленного администрирования. Для других сред — другими словами, для большинства пользователей — я рекомендую установить для этого параметра значение Отключено.

Автоматическое включение питания : Эта функция, если она включена, позволяет вам назначать определенное время каждый день, когда ПК будет включаться. Если это полезно для вас, установите для него значение Включено.В противном случае я рекомендую Disabled.

Время (чч: мм: сс) будильника : В этом поле задается время для автоматического включения питания на основе военных / 24-часовых часов. Для использования этой функции необходимо включить поле «Автоматическое включение питания».

Перезапуск при потере питания переменного тока : этот параметр позволяет указать компьютеру, что делать при восстановлении питания после неожиданного отключения питания. Disabled оставляет систему выключенной, а Enabled перезагружает систему. Предыдущее состояние возвращает систему в состояние, в котором она находилась до отключения питания.Я рекомендую вам установить это значение на Disabled.

Включение с помощью мыши PS / 2 : Если эта функция включена, эта функция позволяет использовать мышь PS / 2 (не USB) для включения системы. Рекомендуется отключить, чтобы случайно не включить компьютер.

Включение с помощью клавиатуры PS / 2 : если эта функция включена, эта функция позволяет использовать определенные клавиши на клавиатуре PS / 2 для включения системы. Рекомендуется отключить, так как большинство людей раздражается, когда они случайно нажимают не ту клавишу.

linux — отключить конкретное устройство PCI при загрузке

Недавно я столкнулся с этой проблемой при настройке своего xen-бокса с несколькими USB-устройствами. Я хотел, чтобы один использовался Dom-0, а другой — виртуальной машиной, поэтому мне нужно, чтобы устройство было доступно для xen-pciback. Однако драйвер USB был встроен в мое ядро, поэтому я не мог просто занести драйвер в черный список. Мое решение состояло в том, чтобы создать собственный сценарий initramfs, который отключает привязку к конкретному порту pci в самом начале процесса загрузки.

Это Ubuntu 2016.04, но он должен работать в более ранних версиях.

Речь идет о трех файлах. Я назвал их для своего конкретного случая использования, но ymmv:

Первый файл с именем / etc / unbindpci file, который представляет собой простой CSV-файл номера устройства pci и драйвера (настройте как необходимо здесь):

  0000: 08: 00.0, xhci_hcd
0000: 03: 00.0, Radeon
  

Второй файл / etc / initramfs-tools / hooks / xenfiles , который копирует вышеуказанную конфигурацию в файл initramfs.

  #! / bin / bash

если [-f / etc / unbindpci]; тогда
  cp -pP / etc / unbindpci $ DESTDIR / etc / unbindpci
фи
  

Третий файл — это то, что работает во время загрузки, я поместил его в / etc / initramfs-tools / scripts / init-top / unbind-early-pci :

  #! / Bin / sh

PREREQ = ""
prereqs ()
{
        эхо "$ PREREQ"
}
футляр $ 1 в
# получить предварительные условия
предварительные условия)
        предварительные требования
        выход 0
        ;;
esac

# Это выполняется, только если в xen Dom-0.
# Отредактируйте, если это не ваш вариант использования!
если [-f / sys / hypervisor / uuid -a -f / etc / unbindpci]; тогда
        если [$ (cat / sys / hypervisor / uuid) = "00000000-0000-0000-0000-000000000000"]; тогда
                echo "Отмена привязки портов pci... "
                IFS =,
                пока читал драйвер addr; делать
                        если [-f / sys / bus / pci / drivers / $ driver / unbind]; тогда
                                echo "Отмена привязки $ addr, device $ driver"
                                echo $ addr> / sys / bus / pci / drivers / $ driver / отвязать
                        фи
                сделано  

Наконец, запустите update-initramfs -k all -u и перезагрузитесь.

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

PCI Power Management и драйверы устройств - драйверы для Windows

  • 4 минуты на чтение

В этой статье

В этой статье проясняется некоторая путаница, с которой столкнулись поставщики в отношении того, как оборудование, соответствующее требованиям PCI Power Management (PCI-PM), взаимодействует с драйверами устройств в операционной системе и как PCI-PM интегрируется с ACPI.Для получения дополнительной информации см. Https://www.uefi.org/specifications

.

Драйверы устройств и управление питанием PCI

Это обсуждение предполагает, что вы знакомы с тем, как драйверы модели драйверов Windows (WDM) обрабатывают события управления питанием, как описано в текущем Windows DDK. В общем, обязанности драйверов устройств следующие:

  • Драйверы шины : Драйверы шины отвечают за перечисление, настройку и управление устройствами. Для PCI-PM драйвер PCI отвечает за чтение регистров PCI-PM для определения возможностей оборудования.Когда пакеты POWER IRP запрашивают изменение состояния питания, драйвер PCI записывает в регистры управления питанием PCI, чтобы установить оборудование в различные состояния Dx.

    Когда устройство активировано для пробуждения, драйвер PCI записывает в регистры PCI-PM, чтобы устройство могло запустить PME (ACPI также выполнит действие, см. Следующий раздел). Наконец, когда ACPI определяет, что шина PCI пробуждает систему, драйвер PCI сканирует конфигурационное пространство PCI в поисках того, какое устройство утверждает PME, отключает PME в этом устройстве и уведомляет драйвер этого устройства.

  • Драйвер устройства : конкретный драйвер устройства отвечает за сохранение и восстановление контекста устройства, а также за запрос изменений состояния питания в качестве владельца политики для устройства. Когда драйвер устройства получает POWER IRP с запросом на изменение состояния питания устройства с более низким энергопотреблением, драйвер устройства отвечает за сохранение любого проприетарного контекста устройства, необходимого для последующего включения устройства. В некоторых случаях спасать может не на чем.

Регистры PCI-PM являются строго прерогативой драйвера PCI - драйверу устройства IHV не требуется доступ ни к одному из этих регистров.В противном случае система не будет работать надежно. Драйвер устройства обязан выполнять только собственные действия.

Интеграция ACPI и PCI PM

Некоторым устройствам, особенно видеоустройствам материнских плат в портативных устройствах, может потребоваться как PCI Power Management, так и ACPI Source Language Assembler (ASL) для полного управления питанием устройства. Регистры управления питанием PCI будут контролировать внутреннее состояние устройства, такое как внутренние часы и плоскости питания. ASL будет управлять внешним состоянием, таким как внешние часы и схемы питания, или, в случае видеоконтроллеров, ASL будет управлять подсветкой видео.Обратите внимание, что ASL и PCI-PM можно комбинировать только на материнских платах.

Архитектура OnNow - это многоуровневая архитектура, естественным образом обеспечивающая интеграцию драйвера устройства, драйвера PCI и драйвера ACPI (и ASL). Следующие сценарии показывают порядок, в котором драйверы вызываются для работы с этими устройствами.

Примечание

Для того, чтобы описанные выше сценарии работали, как описано, драйвер WDM должен правильно пересылать пакеты IRP POWER, как описано в текущей версии Microsoft Windows DDK.

Сценарий 1. Выключение устройства

  1. Драйвер устройства : Сохраняет частное состояние устройства.
  2. Драйвер PCI : сохраняет конфигурацию Plug and Play, отключает устройство (прерывания и BAR) и помещает устройство в D3, используя регистры PCI-PM.
  3. Драйвер ACPI : Запускает код ASL (_PS3 и _OFF для ресурсов питания, которые больше не используются) для управления состоянием, внешним по отношению к микросхеме.

Сценарий 2: Управление питанием PCI и драйверы устройств

  1. Драйвер ACPI : Запускает код ASL (_PS0 и _ON для любых ресурсов питания, требуемых OnNow) для управления внешним по отношению к микросхеме состоянием.
  2. Драйвер PCI : помещает устройство в D0 с помощью регистров PCI-PM и восстанавливает конфигурацию Plug and Play (прерывания и полосы - они могут отличаться от того, на котором устройство было ранее).
  3. Драйвер устройства : восстанавливает частный контекст в устройстве.

Сценарий 3: Включение пробуждения

  1. Драйвер устройства : Устанавливает собственные регистры в микросхеме для включения пробуждения. Например, при пробуждении сети сопоставления шаблонов, это когда шаблоны будут запрограммированы в адаптер.
  2. Драйвер PCI : Устанавливает биты разрешения пробуждения в регистрах PCI PM, чтобы устройство могло подтверждать PME.
  3. Драйвер ACPI : Включает GPE в наборе микросхем, связанном с PME (как описано объектом _PRW, указанным в корневой шине PCI).

Сценарий 4: Пробуждение

  1. Драйвер ACPI : Пробуждает и сканирует биты состояния GPE на наличие событий пробуждения, отключает GPE для установки битов состояния GPE и запускает любые методы _Lxx или _Exx, связанные с установленными битами GPE.В ответ на уведомление о пробуждении на шине PCI драйвер ACPI завершит IRP WAIT_WAKE драйвера PCI, чтобы уведомить драйвер PCI о том, что он пробуждает систему.
  2. Драйвер PCI : сканирует конфигурационное пространство в поисках устройств с установленным битом состояния PME. Для каждого устройства он отключает PME и завершает IRP WAIT_WAKE для этого устройства, чтобы сообщить драйверу, что оно заявляет о пробуждении. Драйвер PCI прекращает сканирование устройств пробуждения, когда он полностью прошел через все устройства PCI, не обнаружив никаких подтверждающих PME, и когда PME перестает подтверждаться.
  3. Драйвер устройства : Запрашивает, чтобы устройство было помещено в D0 (см. Сценарий 2), и устанавливает все собственные регистры в микросхеме, необходимые для обработки события пробуждения.

Призыв к действию в отношении управления питанием PCI и драйверов устройств

Рекомендации по современному режиму ожидания

PCI | Документы Microsoft

  • 2 минуты на чтение

В этой статье

В этой статье будут рассмотрены соображения для разработчиков, которые включают PCI в современную резервную систему.

Для соответствия требованиям DRIPS обычно рекомендуется, чтобы драйверы PCI устройства выбирают поддержку D3Cold, когда это возможно. Для подключенных устройств внешне, например, через Thunderbolt ™, рекомендуется, чтобы драйвер поддерживайте D3Cold, чтобы система перешла в режим DRIPS.

Ниже приведен обзор стандартного управления питанием PCI и информация о Поддержка D3Cold. По вопросам, связанным с D3Cold, относящимся к классам устройств, пожалуйста, см. страницу отдельного устройства под Конструкция под конкретное устройство.

Обзор управления питанием PCI

Управление питанием PCI (PCI-PM) требует взаимодействия между драйвером шины и драйвер устройства. В PCI-PM драйвер шины PCI отвечает за чтение PCI-PM регистрирует и определяет возможности устройства. Это также будет изменить регистры PCI-PM, чтобы установить устройство в состояния Dx в ответ на соответствующие POWER IRP. Драйвер устройства отвечает за запрос изменение состояния питания устройства в качестве владельца политики питания.Он также должен спасти и восстановить контекст устройства при изменении состояния питания.

Некоторым устройствам на базе SoC также потребуется драйвер ACPI для участия в поток управления питанием, так как им нужен ACPI Source Language Assembler (ASL) для полностью управлять питанием устройства.

Для получения дополнительной информации об оборудовании, совместимом с PCI Power Management (PCI-PM). взаимодействует с драйверами устройств в операционной системе и о том, как PCI-PM интегрируется с ACPI, см. Управление питанием PCI и драйверы устройств.

Поддержка D3cold в драйвере

Рекомендуется, чтобы корневые порты поддерживали D3 (конечная точка для D3.cold с L2 / L3 готов). Также обычно рекомендуется, чтобы драйверы устройств использовали D3Cold. поддержка по возможности. В современной резервной системе устройство, которое не может бездействовать. в D3Cold может помешать другим устройствам переходить в состояния Dx с низким энергопотреблением и, таким образом, предотвратить попадание в систему DRIPS.

Драйвер устройства является владельцем политики электропитания устройства и отвечает за определение того, может ли его устройство поддерживать D3Cold.Перед включением D3Cold для устройство, драйвер устройства должен гарантировать, что его устройство все еще может работать правильно после входа в D3Cold. Например, если устройству требуется возможность пробуждения во время в D3Cold драйвер должен убедиться, что система имеет достаточную поддержку для что. Для получения дополнительной информации о том, как определить возможности D3Cold устройство, пожалуйста, обратитесь к Возможности устройства D3Cold.

Драйвер должен использовать следующий контрольный список для проверки поддержки платформы. и примите решение, следует ли включать поддержку D3cold для своего устройства:

  1. Если устройство не требует пробуждения из состояния D3Cold, это драйвер ответственность за определение того, поддерживает ли устройство D3Cold.
  2. Если устройству требуется пробуждение из состояния D3Cold, драйвер WDM должен вызвать Подпрограмма GetIdleWakeInfo для определения состояния питания устройства с наименьшим энергопотреблением из которого устройство может сигнализировать о событии пробуждения и решать, включать ли D3Cold соответственно. Драйвер KMDF должен вызвать WdfDeviceAssignS0IdleSettings, чтобы позволить устройству бездействовать в состояние питания устройства с наименьшим энергопотреблением, из которого устройство может сигнализировать о пробуждении мероприятие.

Для получения дополнительной информации о драйвере родительской шины и требованиях встроенного ПО ACPI. для поддержки пробуждения из состояний Dx см. следующий документ: Требования к прошивке для D3cold.Для получения более подробной информации о поддержке D3Cold в драйвере устройства, пожалуйста, Ссылаться на Поддержка D3Cold в драйвере.

Как сбросить / выключить питание устройства PCIe?

Сброс в PCI Express немного сложен. Существует два основных типа сброса - обычный сброс и сброс на функциональном уровне. Есть также два типа обычных сбросов: основной сброс и неосновной сброс. См. Все подробности в спецификации PCI Express.

«Холодный сброс» - это основной сброс, который происходит после подачи питания на устройство PCIe. Похоже, что не существует стандартного способа запуска холодного сброса, кроме выключения и повторного включения системы. На моих машинах каталог / sys / bus / pci / slots пуст.

«Горячий» сброс - это основной сброс, который запускается без отключения питания от устройства. Похоже, что стандартного способа запуска горячего сброса не существует.

«Горячий» сброс - это обычный сброс, который запускается по каналу PCI Express.Горячий сброс запускается либо когда канал принудительно переходит в состояние электрического холостого хода, либо путем отправки заказанных наборов TS1 и TS2 с установленным битом горячего сброса. Программное обеспечение может инициировать горячий сброс, установив, а затем сбросив бит сброса вторичной шины в регистре управления мостом в пространстве конфигурации PCI порта моста перед устройством.

«Сброс на уровне функций» (FLR) - это сброс, который влияет только на одну функцию устройства PCI Express. Он не должен сбрасывать все устройство PCIe.Реализация сброса на уровне функций не требуется спецификацией PCIe. Сброс функционального уровня инициируется установкой бита инициализации сброса функционального уровня в регистре управления устройством функции в структуре возможностей PCI Express в пространстве конфигурации PCI.

Linux предоставляет функцию сброса на уровне функций в виде / sys / bus / pci / devices / $ dev / reset . Запись 1 в этот файл инициирует сброс на уровне функции для соответствующей функции.Обратите внимание, что это влияет только на эту конкретную функцию устройства, а не на все устройство, и устройства не обязаны выполнять сброс на уровне функций в соответствии со спецификацией PCIe.

Я не знаю ни одного «хорошего» метода для запуска горячего сброса (для этого нет записи в sysfs). Однако для этого можно использовать setpci:

  #! / Bin / bash

dev = $ 1

если [-z "$ dev"]; тогда
    echo "Ошибка: не указано устройство"
    выход 1
фи

если [ ! -e "/ sys / bus / pci / devices / $ dev"]; тогда
    dev = "0000: $ dev"
фи

если [ ! -e "/ sys / bus / pci / devices / $ dev"]; тогда
    echo "Ошибка: устройство $ dev не найдено"
    выход 1
фи

порт = $ (базовое имя $ (имя каталога $ (ссылка для чтения "/ sys / bus / pci / devices / $ dev")))

если [ ! -e "/ sys / bus / pci / devices / $ port"]; тогда
    echo "Ошибка: устройство $ порт не найдено"
    выход 1
фи

echo "Удаление $ dev... "

echo 1> "/ sys / bus / pci / devices / $ dev / remove"

echo "Выполняется горячий сброс порта $ port ..."

bc = $ (setpci -s $ порт BRIDGE_CONTROL)

echo "Управление мостом:" $ bc

setpci -s $ port BRIDGE_CONTROL = $ (printf "% 04x" $ (("0x $ bc" | 0x40)))
сон 0,01
setpci -s $ порт BRIDGE_CONTROL = $ bc
спать 0,5

echo "Повторное сканирование автобуса ..."

echo 1> "/ sys / bus / pci / devices / $ port / rescan"
  

Перед запуском этого сценария убедитесь, что все подключенные драйверы выгружены. Этот сценарий попытается удалить устройство PCIe, затем подаст команду вышестоящему порту коммутатора на выполнение горячего сброса, а затем попытается повторно сканировать шину PCIe.Этот сценарий также был протестирован только на устройствах с одной функцией, поэтому может потребоваться некоторая доработка для устройств с несколькими функциями.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *