Intel Management Engine Interface mei Linux Treiber
Der Intel Management Engine Interface (mei) Linux Treiber dient zur Ansteuerung einer Intel Management Engine (ME). Er wurde mit Kernel Version 3.5 in den Linux Kernel aufgenommen (zuvor war er ab Kernel Version 3.0 im Staging Bereich[1] des Linux Kernels).
Management Engine
Die ME ist eine isolierte und geschützte Rechnerressource, die in bestimmten Intel Chipsets verbaut ist. Sie bietet eine Unterstützung von diversen Computer/IT Management Funktionen. Die jeweiligen genauen Funktionen sind vom jeweiligen Intel Chipset abhängig.[2][3][4]
Intel Management Engines finden Sie:
- bei Desktop Mainboards mit Intel Active Management Technology
- bei Server Mainboards mit Intel Node Management Unterstützung
Management Engine Interface
Das Intel Management Engine Interface (Intel MEI, früher bekannt als HECI) ist die Schnittstelle zwischen dem Host und der ME. Dieses Interface stellt sich dem Host gegenüber als PCI Device dar. Der Intel MEI Treiber steuert die Kommunikation zwischen einer Host Applikation und einer Intel ME Funktion. Er stellt dazu das Device /dev/mei bereit.[2]
mei Treiber
Der mei Treiber steht als Kernel Modul mei zur Verfügung.
modinfo mei
Die folgende Ausgabe stammt von einem System mit Ubuntu 12.04 LTS 64 Bit:
$ modinfo mei filename: /lib/modules/3.2.0-25-generic/kernel/drivers/staging/mei/mei.ko version: 7.1.20.1 license: GPL v2 description: Intel(R) Management Engine Interface author: Intel Corporation srcversion: 571E1B8D86E1BA0FD71F553 alias: pci:v00008086d00001DBAsv*sd*bc*sc*i* alias: pci:v00008086d00001CBAsv*sd*bc*sc*i* alias: pci:v00008086d00001E3Asv*sd*bc*sc*i* alias: pci:v00008086d00001D3Asv*sd*bc*sc*i* alias: pci:v00008086d00001C3Asv*sd*bc*sc*i* alias: pci:v00008086d00003B65sv*sd*bc*sc*i* alias: pci:v00008086d00003B64sv*sd*bc*sc*i* alias: pci:v00008086d00002E34sv*sd*bc*sc*i* alias: pci:v00008086d00002E24sv*sd*bc*sc*i* alias: pci:v00008086d00002E14sv*sd*bc*sc*i* alias: pci:v00008086d00002E04sv*sd*bc*sc*i* alias: pci:v00008086d00002A74sv*sd*bc*sc*i* alias: pci:v00008086d00002A64sv*sd*bc*sc*i* alias: pci:v00008086d00002A54sv*sd*bc*sc*i* alias: pci:v00008086d00002A44sv*sd*bc*sc*i* alias: pci:v00008086d000028F4sv*sd*bc*sc*i* alias: pci:v00008086d000028E4sv*sd*bc*sc*i* alias: pci:v00008086d000028D4sv*sd*bc*sc*i* alias: pci:v00008086d000028C4sv*sd*bc*sc*i* alias: pci:v00008086d000028B4sv*sd*bc*sc*i* alias: pci:v00008086d000029F4sv*sd*bc*sc*i* alias: pci:v00008086d000029E4sv*sd*bc*sc*i* alias: pci:v00008086d000029D4sv*sd*bc*sc*i* alias: pci:v00008086d000029C4sv*sd*bc*sc*i* alias: pci:v00008086d000029B4sv*sd*bc*sc*i* alias: pci:v00008086d00002A14sv*sd*bc*sc*i* alias: pci:v00008086d00002A04sv*sd*bc*sc*i* alias: pci:v00008086d000029A4sv*sd*bc*sc*i* alias: pci:v00008086d00002994sv*sd*bc*sc*i* alias: pci:v00008086d00002984sv*sd*bc*sc*i* alias: pci:v00008086d00002974sv*sd*bc*sc*i* depends: staging: Y intree: Y vermagic: 3.2.0-25-generic SMP mod_unload modversions
PCI Device Beispiel Thinkpad T410
Das folgende Beispiel zeigt das HECI PCI Device unter Ubuntu 12.04 LTS 64 Bit:
$ sudo lspci -vvv [...] 00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06) Subsystem: Lenovo Device 215f Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 43 Region 0: Memory at f2427800 (64-bit, non-prefetchable) [size=16] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee0f00c Data: 4181 Kernel driver in use: mei Kernel modules: mei [...] $ ls -l /dev/mei crw------- 1 root root 250, 1 Jun 22 07:28 /dev/mei
PCI Device Beispiel Intel DQ57TM Desktop Mainboard
Das folgende Beispiel zeigt das HECI PCI Device unter Ubuntu 12.04 LTS 64 Bit:
$ sudo lspci -vvv [...] 00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06) Subsystem: Intel Corporation 5 Series/3400 Series Chipset HECI Controller Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 42 Region 0: Memory at fe42a000 (64-bit, non-prefetchable) [size=16] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee00000 Data: 4079 Kernel driver in use: mei Kernel modules: mei [...]
Dateien in /sys
In /sys sind auf diesem System folgende Dateien zu finden:
root@ubuntu-12-04:/sys# find . | grep -i mei ./devices/virtual/mei ./devices/virtual/mei/mei ./devices/virtual/mei/mei/uevent ./devices/virtual/mei/mei/dev ./devices/virtual/mei/mei/subsystem ./devices/virtual/mei/mei/power ./devices/virtual/mei/mei/power/async ./devices/virtual/mei/mei/power/runtime_status ./devices/virtual/mei/mei/power/runtime_usage ./devices/virtual/mei/mei/power/runtime_active_kids ./devices/virtual/mei/mei/power/runtime_enabled ./devices/virtual/mei/mei/power/control ./devices/virtual/mei/mei/power/runtime_suspended_time ./devices/virtual/mei/mei/power/runtime_active_time ./devices/virtual/mei/mei/power/autosuspend_delay_ms ./bus/pci/drivers/mei ./bus/pci/drivers/mei/0000:00:16.0 ./bus/pci/drivers/mei/module ./bus/pci/drivers/mei/uevent ./bus/pci/drivers/mei/unbind ./bus/pci/drivers/mei/bind ./bus/pci/drivers/mei/new_id ./bus/pci/drivers/mei/remove_id ./class/mei ./class/mei/mei ./module/mei ./module/mei/holders ./module/mei/version ./module/mei/srcversion ./module/mei/initstate ./module/mei/uevent ./module/mei/refcnt ./module/mei/sections ./module/mei/sections/.note.gnu.build-id ./module/mei/sections/.text ./module/mei/sections/.devinit.text ./module/mei/sections/.text.unlikely ./module/mei/sections/.devexit.text ./module/mei/sections/.init.text ./module/mei/sections/.exit.text ./module/mei/sections/.rodata ./module/mei/sections/.rodata.str1.1 ./module/mei/sections/.rodata.str1.8 ./module/mei/sections/__mcount_loc ./module/mei/sections/__bug_table ./module/mei/sections/.smp_locks ./module/mei/sections/.devinit.rodata ./module/mei/sections/.data ./module/mei/sections/.gnu.linkonce.this_module ./module/mei/sections/.bss ./module/mei/sections/.symtab ./module/mei/sections/.strtab ./module/mei/notes ./module/mei/notes/.note.gnu.build-id ./module/mei/drivers ./module/mei/drivers/pci:mei
Einzelnachweise
- ↑ The Linux Staging Tree, what it is and is not. (www.kroah.com)
- ↑ 2,0 2,1 Documentation/misc-devices/mei/mei.txt (Dokumentation des Linux Kernels)
- ↑ Spekulationen um geheime Hintertüren in Intel-Chipsätzen (heise.de/ct, 27.09.2013)
- ↑ Das leistet die „Management Engine“ in Intel-Chipsätzen (c't 13/2014, Seite 138)
Weitere Informationen
- Intel Active Management Technology (Intel® AMT) 7.1.20 Release Linux Enablement Guide (May 2011, Revision 0.80, software.intel.com)
- staging/mei: Intel MEI Driver (Linux Kernel Mailing List, 27.04.2011)
- Connecting with the Intel MEI Driver (Intel AMT SDK Implementation and Reference Guide, software.intel.com)
- Download The Latest Intel® AMT Open Source Drivers (software.intel.com)
Autor: Werner Fischer Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.
|