Intel Management Engine Interface mei Linux Treiber

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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:

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

Weitere Informationen


Foto Werner Fischer.jpg

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.


Das könnte Sie auch interessieren

Linux Performance Auswertung mit kSar
Linux Verzeichnisbaum mit dem tree Kommando anzeigen
Vi Editor Tipps und Tricks