Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Eldric Leinenbach Geändert vor über 10 Jahren
1
19.05.2008hwsetup - Hardwareerkennung1 Hardwareerkennung und Konfiguration betreut duch Dirk von Suchodoletz Martin Bauer
2
19.05.2008hwsetup - Hardwareerkennung2 Inhaltsangabe Motivation Voraussetzungen Hardware Linux Kernel und Module hwsetup und kudzu Implementierung von hwsetup Zusammenfassung
3
19.05.2008hwsetup - Hardwareerkennung3 Motivation (1) Hardwareerkennung für Diskless Client System
4
19.05.2008hwsetup - Hardwareerkennung4 Bootvorgang Terminal DHCP/PXE der Netzwerkkarte tftp download des Kernel/initial RAM Disk Laden Kernel Laden Initrd (busybox) * rootfs per nfs einbinden Startvorgang init V * * Hardwareerkennung möglich
5
19.05.2008hwsetup - Hardwareerkennung5 Motivation (2) speichersparend und kompakt portabel und flexibel, damit universell einsetzbar einfache Implementierung für einfach Erweiterbarkeit auf Standards basierend, Vermeidung von Abhängigkeiten an Kernelpatchs oder Bibliotheken schnelle Erkennungsgeschwindigkeit
6
19.05.2008hwsetup - Hardwareerkennung6 Aufbau Hardware CPU PCI-Bus USB-Bus Geräte hängen an Bus Brücken verbinden Busse Baum- struktur
7
19.05.2008hwsetup - Hardwareerkennung7 Aufbau von Linux Kernel System.map Module modules.dep; Abhängigkeiten modules.pcimap; Zuordnung modules.usbmap; Geräte-Nr. Module modprobe
8
19.05.2008hwsetup - Hardwareerkennung8 Voraussetzung Kernel >= 2.6 hotplug udev hwsetup aus Knoppix basierend auf libkudzu
9
19.05.2008hwsetup - Hardwareerkennung9 hwsetup Erkennen und Laden von Modulen Nutzung von Funktionsaufrufen der kudzu Bibliothek Geräteerkennung Auflösen der PCI Gerätebezeichnung Erstellung einiger Gerätedateien (/dev/mouse) X System konfiguration
10
19.05.2008hwsetup - Hardwareerkennung10 libkudzu (1) Konfiguration von Hardware (modprobe) Ausgabe in Datenbank /etc/sysconfig/hwconfig leistungsfähige Ausnahmebehandlung Auflösung der PCI IDs pci.ids pcitable Cards
11
19.05.2008hwsetup - Hardwareerkennung11 libkudzu (2) Erkennung einer Vielzahl an Hardwareklassen PCI/USB/Firewire/ISAPNP/ IDE/SCSI/PCMCIA seriell/parallel/psaux/keyboards SBUS/DDC S390/VIO
12
19.05.2008hwsetup - Hardwareerkennung12 hotplug hotplug: Hardwarewechsel im laufenden Betrieb Module werden durch Kernel geladen Erkennung neu eingesteckter Hardware Unterstützung nicht für aller Busse verfügbar (nur sysfs)
13
19.05.2008hwsetup - Hardwareerkennung13 udev Konfiguration und Gerätedateihandling aus sysfs läuft im userspace regelbasierend bietet keine Hardwareerkennung (hwsetup/hotplugd)
14
19.05.2008hwsetup - Hardwareerkennung14 hwsetup + hotplug + udev
15
19.05.2008hwsetup - Hardwareerkennung15 Implementierung
16
19.05.2008hwsetup - Hardwareerkennung16
17
19.05.2008hwsetup - Hardwareerkennung17 Optimierungen (1) Verzicht auf libkudzu Nachbildung von struct device **deviceList; deviceList probeDevices(device); Zeiger auf Funktionen probeDevice = probeDeviceXXX // XXX={PCI,USB} erweiterbar durch weitere Geräteklassen (firewire..)
18
19.05.2008hwsetup - Hardwareerkennung18 Optimierung (2) Repräsentation eines Gerät als Struktur struct device { struct device* next;/* SLL */ enum deviceClass type;/* type of Device */ enum deviceBus bus;/* bus it's attached to */ char* module;/* driver name, else NULL */ char* desc;/* a description */ int vendorId; int deviceId; };
19
19.05.2008hwsetup - Hardwareerkennung19 Optimierungen (3) weiterer Verzicht auf: X Server Konfiguration Ausgabe in Datenbank /etc/sysconfig/hwconfig pcitable/Cards Erkennungsdatenbanken umfangreiche Ausnahmebehandlungen (IRQ/MEM)
20
19.05.2008hwsetup - Hardwareerkennung20 Optimierungen (4) Auflösen der Geräte IDs in Namen durch Methode getDescription(device) deviceID, vendorID -> Gerätename /usr/share/misc/pci.ids http://pciids.sf.net/pci.db /usr/share/misc/usb.ids http://linux-usb.sourceforge.net/usb.ids auch für Bildschirm/Grafikkarten erhältlich... für Hardwareerkennung nur optional
21
19.05.2008hwsetup - Hardwareerkennung21 Optimierungen (5) Steuerung von Verhalten durch: Kommandozeilenparameter Konfigurationsdatei modprobe.conf Syntax alias blacklist verbose
22
19.05.2008hwsetup - Hardwareerkennung22 Optimierungen (6) Lokalität der Daten in RAM-Speicher Einlesen der Datei modules.*map *={pci,usb} Einlesen der Geräte-ID in verketteten Listen Einlesen der Blacklist/Aliases aus Konfigurationsdatei Ziel: beschleunigter Lookup Nutzung von verketteten Listen
23
19.05.2008hwsetup - Hardwareerkennung23
24
19.05.2008hwsetup - Hardwareerkennung24
25
19.05.2008hwsetup - Hardwareerkennung25
26
19.05.2008hwsetup - Hardwareerkennung26 Quellen RedHat kudzu http://elvis.redhat.com/kudzu The PCI Utilities http://mj.ucw.cz/pciutils.shtml libusb Developers Guide http://libusb.sourceforge.net/ Linux Gerätetreiber, O'Reilly Allessandro Rubini, Jonathan Corbet Programmieren in C, ANSI C, Hanser Verlag Kernighan, Ritchie Die Netzstarter, Diskless Clients unter Linux, Linux Magazin 01/03 Dirk von Suchodoletz
27
19.05.2008hwsetup - Hardwareerkennung27 Zusammenfassung & Fragen Vielen Dank für die Aufmerksamkeit
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.