Tags Posts tagged with "kmod"

kmod

przez -
0 445
Linux Tux

Ogłoszono wydanie kmod 18, projektu który zapewnia innym programom elastyczność i łatwą kontrolę nad wstawianiem, usuwaniem, konfiguracją i wykazem modułów jądra Linux. Dzięki użyciu biblioteki, jest możliwa interakcja z modułami jądra, bez potrzeby polegania na innych narzędziach. Pojawiło się zabezpieczenie, przed nadpisaniem obecnego indeksu nowym, co powodowało problemy z uruchamianiem. Naprawiono sporo błędów. Dodano testy dla implementacji hashmapy.

przez -
1 379
Linux Tux

Ogłoszono wydanie kmod 16, projektu który zapewnia innym programom elastyczność i łatwą kontrolę nad wstawianiem, usuwaniem, konfiguracją i wykazem modułów jądra Linux. Dzięki użyciu biblioteki, jest możliwa interakcja z modułami jądra, bez potrzeby polegania na innych narzędziach. Udoskonalono kompatybilność z musl libc. Dodano zapasową implementację dla kompilatorów bez funkcji _Static_assert(). Pojawiły się drobne optymalizacje w tabeli hashującej. Jeżeli moduł posiada nieprawidłową specyfikację devname, to depmod pokazuje ostrzeżenie.

Dodano używanie atrybutu czyszczącego. Usunięto opcję z libkomd, aby móc oczekiwać na usunięcie modułu, który jest używany. Naprawiono znalezione błędy.

przez -
1 405
Linux Tux

Ogłoszono wydanie kmod 15, projektu który zapewnia innym programom elastyczność i łatwą kontrolę nad wstawianiem, usuwaniem, konfiguracją i wykazem modułów jądra Linux. Dzięki użyciu biblioteki, jest możliwa interakcja z modułami jądra, bez potrzeby polegania na innych narzędziach. Dodano uzupełnianie składni w narzędziu kmod. Binarka kmod linkuje statycznie do libkmod, a kmod static-nodes tworzą katalogi nadrzędne, jeżeli jest dana jest opcja -o.

przez -
0 397
Linux Tux

Ogłoszono wydanie kmod 13, projektu który zapewnia innym programom elastyczność i łatwą kontrolę nad wstawianiem, usuwaniem, konfiguracją i wykazem modułów jądra Linux. Dzięki użyciu biblioteki, jest możliwa interakcja z modułami jądra, bez potrzeby polegania na innych narzędziach. Dodano wsparcie dla modułu finit_module(2), moduł kmod_module_get_info() zwraca syngaturę, jeżeli moduł jest podpisanu i używa modinfo, oraz używane jest secure_getenv, jeżeli jest dostępne.

rmmod potrafi obsłużyć wbudowane moduły, tak jak modprobe. Udoskonalono kompatybilność z musl-libc. Testy jednostkowe kończą się poprawnie, jeżeli odebrany sygnał testów posiada status xfail. Naprawiono dwa błędy.

przez -
1 357
Linux Tux

Ogłoszono wydanie kmod 12, projektu który zapewnia innym programom elastyczność i łatwą kontrolę nad wstawianiem, usuwaniem, konfiguracją i wykazem modułów jądra Linux. Dzięki użyciu biblioteki, jest możliwa interakcja z modułami jądra, bez potrzeby polegania na innych narzędziach. Usunięto vermagic z modułu, podczas przymusowego ładowania modułu oraz sekcję __versions także podczas wymuszonego ładowania modułu. Poprawiono także problem z awariami modinfo, które występowały podczas ładowania modułu z pliku, gdzie ścieżka zawierała znak .ko.

przez -
2 293
Linux Tux

Ogłoszono wydanie kmod 11, projektu który zapewnia innym programom elastyczność i łatwą kontrolę nad wstawianiem, usuwaniem, konfiguracją i wykazem modułów jądra Linux. Dzięki użyciu biblioteki, jest możliwa interakcja z modułami jądra, bez potrzeby polegania na innych narzędziach. Udoskonalono procedury testujące. Biblioteka libkmod otrzymała możliwość trzymania otwartego pliku, po pierwszym wywołaniu kmod_module_get_{info,versions,symbols,dependency_symbols}. Zmniejsza to znacząco czas, w jakim wykonuje się narzędzie depmod.

Usunięto opcję --with-rootprefix z systemu budującego. Ukryto opcję –wait dla rmmod. Przebudowano monitoring wiadomości dla wszystkich narzędzi, dodając odpowiednie prefiksy, przekierowując wszystko do sysloga podczas zapytania itp. Naprawiono wyciek pamięci w implementacji hasha oraz dwa inne.

przez -
2 385
Linux Tux

Ogłoszono wydanie kmod 10, projektu który zapewnia innym programom elastyczność i łatwą kontrolę nad wstawianiem, usuwaniem, konfiguracją i wykazem modułów jądra Linux. Dzięki użyciu biblioteki, jest możliwa interakcja z modułami jądra, bez potrzeby polegania na innych narzędziach. W najnowszej wersji dodano wsparcie dla czytania wielkości jądra z /sys i flagę do kmod_module_probe_insert(), w celu akceptacji czarnej listy podczas próbkowania. Pojawiło się lepsze formatowanie stron pomocy man i możliwość ich wyłączenia, podczas budowania. Naprawiono błędy w testsuite i refactor, które są związane z bibliotekami LDPRELOAD. Zmieniono także licencję testsuite na LGPL.

przez -
0 432
Linux Tux

Lucas De Marchi i Gustavo Barbieri z ProFUSION opracowali bibliotekę libkmod i zestaw narzędzi kmod. Celem nowego projektu jest zaoferowanie innym programom potrzebnej elastyczności i łatwej kontroli nad wstawianiem, usuwaniem, konfiguracją i wykazem modułów jądra Linux. Dzięki użyciu biblioteki jest możliwa interakcja z modułami jądra bez potrzeby polegania na innych narzędziach. Takie narzędzia brakowała od dawna, i było to jedno z życzeń z listy Plumbera dla Linuksa.

Cytując go:

zapewnić odpowiednią bibliotekę libmodprobe.so z module-init-tools:
wczesne narzędzie uruchamiania, instalatorów, sterownika instalacji dysków i dostępu do nich
informacje nt dostępnych modułów, w celu optymalizacji obsługi uruchamiania

Programiści poszli o krok dalej, i nie tylko oferują API do ładowania i usuwania modułów jądra, ale również inne proste operacje. Pierwszym użytkownikiem API będzie udev, który jest odpowiedzialny za sprawdzanie dostępnego sprzętu, tworzeniu dowiązań do urządzeń w /dev i ładowaniu modułów jądra dla wykrytego sprzętu. W jądrze dystrybucji jest niezwykle prosto zrobić większość rzeczy, jako modułów. Udev czyta system plików /sys w celu sprawdzenia dostępnego sprzętu i próbuje załadować potrzebne moduły. Potem tłumaczy setki zapytań do programu modprobe, dzięki czemu wiadomo, które z nich są już załadowane, a które wbudowane w jądro. Dzięki kmod cała operacja jest wykonywana przy pomocy kilku linii kodu, bez potrzeby konfiguracji i indeksowania już otwartych i sprawdzonych modułów.

Były już także przeprowadzone rozmowy z Kay Sievers, odpowiedzialnym za udev, i Lennart Poettering, zajmującym się systemd, aby zaimplementować współpracę biblioteki z udev i systemd.

Przykładowy kod:
W celu dodania modułu z nazwą bez żadnych opcji i dziwnych konfiguracji, jest zalecane zrobienie tego w ten sposób:

struct kmod_ctx *ctx = kmod_new(NULL, NULL);
struct kmod_module *mod;
kmod_module_new_from_name(ctx, name, &mod);
kmod_module_insert_module(mod, 0, NULL);
kmod_module_unref(mod);
kmod_unref(ctx);

Narzędzia

Poza samą biblioteką, przeprojektowano narzędzia module-init-tools na bazie nowego API, które stworzono. W pierwszej wersji są zapewniane kompatybilne binarki dla lsmod, rmmod, insmod i modprobe (z pewnymi brakami funkcjonalności). Następna wersja ma zapewnić owe braki, a także dodać wsparcie dla depmod i modinfo.

Licencja

Całość jest wydawana na licencji GPLv2 i późniejsze.

Plan wydawniczy

kmod 2
Zapewnienie API do brakujących cech w kmod-modprobe, szczególnie: zrzut konfiguracji i indeksowanie, proste zależności, polecenia instalacji i usuwania. Nadal będzie brakować funkcjonalności manipulacji ELF, jednakże będą zapewnione wszystkie narzędzia dostępne w module-init-tools. Kilka z nich, jak depmod mogą być skopiowane z module-init-tools dla późniejszych konwersji

kmod 3
Ma zapewniać pojedyncze narzędzie kmod, które będzie emulowało wszystkie inne, akceptując komendy, takie jak kmod list, kmod remove, kmod insert. Dystrybucje mogą wtedy używać symlinków z dostępnych narzędzi, do programu kmod i będzie możliwe ubicie ‘kmod-*’, które zostało przedstawione w kmod 1.

Polecane

Prasa, Czasopismo

1 915
Ukazało się Linux Magazine – numer 161. Lipcowe wydanie magazynu zawiera analizę tworzenia bardziej czytelnych wyrażeń regularnych z Simple Regex Language, instrukcje zabezpieczania i...