Uci - hostapd (openwrt): Unterschied zwischen den Versionen
Tesla (Diskussion | Beiträge) Die Seite wurde neu angelegt: „Openwrt nutzt das zentrale Konfigurationssystem uci. Hier wird am Beispiel vom hostapd die Funktionsweise von uci kurz näher erläutert.“ |
Tesla (Diskussion | Beiträge) |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Openwrt nutzt das zentrale Konfigurationssystem uci. Hier wird am Beispiel vom hostapd die Funktionsweise von uci kurz näher erläutert. | Openwrt nutzt das zentrale Konfigurationssystem uci. Hier wird am Beispiel vom hostapd die Funktionsweise von uci kurz näher erläutert. | ||
= Allgemein = | |||
==== Woher bekomme ich uci? ==== | |||
git clone git://nbd.name/uci.git | |||
An der angegeben Adresse ist uci für eigene Projekte separat erhältlich. Mit Openwrt wird es bereits mitgeliefert. | |||
==== Wie benutze ich uci? ==== | |||
Auf der Kommandozeile des Wlan-Routers mit uci installiert folgendes eingeben: | |||
uci show | |||
-> die gesamte Konfiguration wird ausgegeben. | |||
uci set ... | |||
-> Eintrag einfügen/ändern. | |||
uci commit | |||
-> dauerhaft speichern | |||
= Aufbau und Funktion = | |||
Die uci-Einträge werden in einer uci-Konfigurationsdatei in Klartext gespeichert. | |||
Die Kommandozeilenbefehle greifen auf die uci eigenene Konfigurationsdateien zu. Diese haben das von uci vorgegebene Format. Die Programme haben aber aus historischen gründen ihre eigenen Konfigurationsformate. D. h. es wird ein Script benutzt, welches das Format umwandelt, z. B. netifd.sh. | |||
Das Script muss das uci-Format nicht kennen. Es sucht nicht in den uci-files, sondern nutzt eine vom uci-System bereitgestellte Datenbankschnittstelle, welche die Daten im Json-Format zurückgibt. | |||
Datenstrom: | |||
uci show, uci commit <--uci--> /etc/config/wireless --uci--netifd.sh--> /var/run/hostapd-phy1.conf | |||
Sucht man auf dem Router nach der netifd.sh, wird man feststellen, dass sie nicht existiert. Sie ist nur im Build-System vorhanden, unter: | |||
./openwrt/package/network/services/hostapd/files/netifd.sh | |||
Im fertig erzeugten System können mehrere unterschiedliche Instanzen davon existieren, z. B.: | |||
/lib/netifd/hostapd.sh | |||
/lib/netifd/netifd-proto.sh | |||
/lib/netifd/netifd-wireless.sh | |||
Achtung hostapd.sh ist hier etwas anderes als die hostapd.sh im Build-System. |
Aktuelle Version vom 17. Mai 2014, 17:45 Uhr
Openwrt nutzt das zentrale Konfigurationssystem uci. Hier wird am Beispiel vom hostapd die Funktionsweise von uci kurz näher erläutert.
Allgemein
Woher bekomme ich uci?
git clone git://nbd.name/uci.git
An der angegeben Adresse ist uci für eigene Projekte separat erhältlich. Mit Openwrt wird es bereits mitgeliefert.
Wie benutze ich uci?
Auf der Kommandozeile des Wlan-Routers mit uci installiert folgendes eingeben:
uci show
-> die gesamte Konfiguration wird ausgegeben.
uci set ...
-> Eintrag einfügen/ändern.
uci commit
-> dauerhaft speichern
Aufbau und Funktion
Die uci-Einträge werden in einer uci-Konfigurationsdatei in Klartext gespeichert.
Die Kommandozeilenbefehle greifen auf die uci eigenene Konfigurationsdateien zu. Diese haben das von uci vorgegebene Format. Die Programme haben aber aus historischen gründen ihre eigenen Konfigurationsformate. D. h. es wird ein Script benutzt, welches das Format umwandelt, z. B. netifd.sh.
Das Script muss das uci-Format nicht kennen. Es sucht nicht in den uci-files, sondern nutzt eine vom uci-System bereitgestellte Datenbankschnittstelle, welche die Daten im Json-Format zurückgibt.
Datenstrom:
uci show, uci commit <--uci--> /etc/config/wireless --uci--netifd.sh--> /var/run/hostapd-phy1.conf
Sucht man auf dem Router nach der netifd.sh, wird man feststellen, dass sie nicht existiert. Sie ist nur im Build-System vorhanden, unter:
./openwrt/package/network/services/hostapd/files/netifd.sh
Im fertig erzeugten System können mehrere unterschiedliche Instanzen davon existieren, z. B.:
/lib/netifd/hostapd.sh /lib/netifd/netifd-proto.sh /lib/netifd/netifd-wireless.sh
Achtung hostapd.sh ist hier etwas anderes als die hostapd.sh im Build-System.