Table of Contents
Komputer działa wolno?
W ciągu ostatnich kilku tygodni niektórzy z naszych nowych czytelników zgłaszali, że eksperymentowali z tworzeniem ważnego modułu jądra.
Zainstaluj większość programistów jądra, które pasują do twojego bezpośredniego jądra.Zainstaluj umowę dkms deal z repozytorium EPEL (zobacz Repozytoria).Utwórz stronę z katalogu /usr/src/
Czasami może być konieczne zebranie modułu jądra Linuksa, jeśli nie możesz przekompilować całego jądra.
Uwaga: Lepiej jest zastąpić jakiś istniejący, gdy moduł jest budowany, podczas gdy moduł (M), a nie zintegrowany z jądrem (y).
Środowisko budowania
Musisz najpierw zezwolić im na zainstalowanie zależności kompilacji, takich jak spersonalizowany kompilator (devel bazowy) i pliki nagłówkowe systemu Linux.
Następnie będziesz chciał wrócić, aby uzyskać źródło głównej wersji kodu, na którym chcesz oprzeć moduł. Możesz wypróbować inne źródła jądra, ale większość skompilowanych plików prawdopodobnie się nie załaduje.
Jeśli zamierzona wersja jądra jest zainstalowanym jądrem, sprawdź wersję swojego psa za pomocą
$ uname -r
Istnieją główne opcje kroku 2 pozyskiwania wymaganego źródła. Każda opcja ma nieco inne drzewo zastosowań i tytułów.
Skład TradingIndication
Zobacz Zobacz Kernel/traditional compilation#Load lower part kernel. Jeśli używasz Git, aby uzyskać dokładne najnowsze źródło, musisz pokazać wersję w tagu (na przykład v4.1).
System budowy łuków
Zajrzyj do sekcji ABS, aby zapoznać się z ogólnym przeglądem systemu Arch Build. Aby uzyskać informacje o wartości źródła jądra, strukturze katalogów i innych szczegółach, zobacz Kernel/Arch-System-Build.
Konfiguracja początkowa
Jeśli klienci mają kod źródłowy, spójrz na stronę przesyłania. Z powodu #Arch Build System, ten katalog będzie znajdował się w src/archlinux-linux/
poniżej miejsca, w którym znajduje się PKGBUILD.
Wyjście make
będzie dzięki temu lepsze. Zacznij rootować od
$mrproper
Które polecenie jest zwykle używane do budowy modułu?
System kbuild będzie wiedział o budowaniu modułu zewnętrznego dzięki określonemu parametrowi “M=
Uwaga: zdecydowanie usuń zarówno .config
, jak i .config.old
. Być może wyraźnie chcesz zapisać te pliki w innym miejscu, naprzeciw siebie, posprzątaj je.
Odpowiadający mu plik .config
jest teraz bez wątpienia wymagany. Jeśli nie widzisz najbliższego pliku konfiguracyjnego na rynku, być może z zupełnie nowego saved.config
i uważasz, że ogólnie wersja jądra jest zdecydowanie działającym jądrem, możesz sprawdzić, czy jest to plik konfiguracyjny:
$zcat /proc/config.gz > .config
Plik .File config
jest później konfigurowany w celu określenia wersji jądra. Umieszczając jądro dla źródeł, nie powinieneś rozumieć dokładnego bieżącego wpisu. Jednak w przypadku wersji innej niż początkowe jądro, możesz zostać zapytany o pewne produkty. W każdej sytuacji, dla opcji #Arch Build System, możesz przeanalizować funkcję pkgbuild::prepare()
.
Jeśli moduł, który chcesz skompilować, ma opcje kompilatora, takie jak ze względu na kompilację debugowania, ale nie był wcześniej kompilowany, Twoje potrzeby mogą również wymagać dostosowania układu jądra. Można to zrobić za pomocą jednego ze wszystkich celów konfiguracyjnych wymienionych w make help.
Uruchom
$oldconfig
Kompozycja modułów
Jak utworzyć moduł jądra?
Aby ostrożnie skompilować i zaimportować nasz moduł, musimy upewnić się, że znajdziesz typ wartości EXTRAVERSION funkcji mojego aktualnego numeru wersji jądra, tak aby mógł on dokładnie dopasować numer wersji przy użyciu najlepszego kodu źródłowego jądra . EXTRAVERSION jest rzeczywistą zmienną zdefiniowaną w pliku makefile najwyższego poziomu jądra, dodatkowo dla wszystkich plików makefile w waniliowym pożyczkodawcy jądra, EXTRAVERSION może być pusta; Jest instalowany, ponieważ jest tylko częścią procesu budowania jądra Arch. Jeśli jest obecny, najlepszą wartość współczesnego jądra EXTRAVERSION można znaleźć patrząc na dane wyjściowe polecenia uname -r
. Ogólnie rzecz biorąc, renderowanie to połączenie trzech składników. Mianowicie wersja fotografii cyfrowej, EKSTRAWERSJA i WERSJA LOKALNA. Sama opcja liczbowa to wielkie połączenie trzech statystyk. Jeśli LOCALVERSION została utworzona z listy PKGBUILD, wygląda na to, że została wyprowadzona ze wszystkich zmiennych prefiksu pkgrel
dzięki myślnikowi. A EXTRAVERSION pozostaje przyrostkiem pkgver
zmiennym, jeśli kropka po prawej stronie, powiązana z trzecią cyfrą numeru wersji, zostanie zastąpiona myślnikiem. Na przykład, biorąc pod uwagę cały pakiet Linuksa linux 5.5.8.arch1-1
, powiedziałbym, że LOCAVERSION to -1
. WERSJA MNIEJSZA to -arch1
. Wyjście uname -r
w tej sytuacji w punkcie to w rzeczywistości 5 be.5.8-arch1-1
.
Gdy typowa wartość EXTRAVERSION jest znana, przygotowujemy pożyczkodawcę zespołu modułów:
$ do EXTRAVERSION=modules_prepare
$ make Modules_prepare
Jak skompilować i wymienić moduł jądra?
Alternatywnie extraversion=-arch1 jeśli Naprawdę lubisz ładować moduły za pomocą modprobe, implementując naszą --force-vermagic< opcję/kod>, aby ignorować niespójności numerów wersji jądra, możesz uruchomić:
$ make modules_prepare
Uwaga. Użycie za EXTRAVERSION a jest zapisane w pliku makefile najwyższego poziomu, dzięki czemu można uniknąć ręcznego określania EXTRAVERSION a w tym wierszu poleceń, co może prowadzić do niezgodności metod. Proces budowania jądra często wykrywał to poprzez proces powodujący, że rzeczywisty znak +
został przeniesiony i dodany do parametru konfiguracyjnego LOCALVERSION. Przykład: 5.5.8-arch1-1+
.
Na koniec zaokrąglij żądany moduł, określając seminarium na temat jego nazewnictwa. Możesz znaleźć lokalizację dowolnego komponentu, w tym jego adres katalogu, za pomocą lub modinfo.
$ wymyśl M=fs/btrfs
W ostateczności, jeśli wszystko inne nie działa, możesz to zrobić
$ Utwórz moduły
Kompilowanie modułów poza drzewem
Jak zarządzać tworzeniem modułu jądra?
Zmodyfikuj sam plik makefile, zastępując każde wystąpienie helloWorld, a tym samym kernelRead, nazwami modułów, które chcesz zbudować.skompiluj moduły, uruchamiając be do katalogu, w którym znajdują się moduły.Zostań superużytkownikiem, więc wpisując.
Pobierz oficjalny kod źródłowy dla aktualnego jądra Treadmill Linux, zgodnie z opisem w tym systemie budowania jądra/archiwum:
Utwórz $ cd i mkdir$ lub netto ulepszyć linux$ asp Commander Linux
Następnie określ rzeczywisty kod źródłowy wyodrębniony podczas kompilowania tego modułu:
$ cd dvd build/mymod$ make -C ~/build/linux/trunk/src/archlinux-linux M=$Moduł-PWD
Instalowanie modułu
Teraz, gdy kompilacja przebiegła pomyślnie, musisz tylko skompresować gzip i skopiować go, aby uzyskać dostęp do bieżącego jądra.
Komputer działa wolno?
ASR Pro to najlepsze rozwiązanie dla potrzeb naprawy komputera! Nie tylko szybko i bezpiecznie diagnozuje i naprawia różne problemy z systemem Windows, ale także zwiększa wydajność systemu, optymalizuje pamięć, poprawia bezpieczeństwo i dostraja komputer w celu uzyskania maksymalnej niezawodności. Więc po co czekać? Zacznij już dziś!
Jeśli masz najnowszy moduł, musisz go wymienić (i pamiętaj, że ponowna instalacja systemów Linux zastąpi go jakimś domyślnym modułem).
Do czego służy moduł jądra?
$xz fs/btrfs/btrfs.ko# cp -f fs/btrfs/btrfs.ko.xz /usr/lib/modules/`uname -r`/kernel/fs/btrfs/
Lub możesz już umieścić zaktualizowany kurs w folderze aktualizacji (utwórz go, jeśli dom jeszcze nie istnieje).
$ clubpenguin fs/btrfs/btrfs.ko.xz /usr/lib/modules/`uname -r`/updates
Jednak zakładając, że dodasz nowy konkretny moduł, po prostu skopiujesz go do Extramodułu (zwróć uwagę, który będzie to tylko przykład, ponieważ btrfs może być załadowany niedaleko).
# cp fs/btrfs/btrfs.ko.xz /usr/lib/modules/`uname -r`/extramodules/
Aby korzystać z zainstalowanych modułów, konieczne jest przebudowanie zależności między modułami za pomocą mostka "depmod".
Jeżeli mogłeś ewentualnie zaktualizować konkretny moduł wcześnie ładujący się (np. moduł) skopiowany do initramfs, możesz po prostu pamiętać o jego przebudowie (w przeciwnym razie wydany moduł nie pojawi się załadowany).
# mkinitcpio -p linux
Możliwe błędy EKSTRAWERSJI
Jeśli mogą wystąpić następujące warunki.
Popraw szybkość swojego komputera już dziś, pobierając to oprogramowanie - rozwiąże ono problemy z komputerem.Co jest potrzebne do modułu jądra?
środowisko budowlane Najpierw musisz dopasować zależności kompilacji, podobnie jak kompilator (base-devel), a następnie nagłówki Linuksa. Następnie chcesz uzyskać kod źródłowy naszej wersji jądra, na którym będzie oferowany komponent. Możesz spróbować zastosować dodatkowe źródła jądra, ale skompilowana część również najprawdopodobniej się nie uruchomi.
Jak zainstalować moduł jądra Linux?
Aby załadować moduł jądra, uruchom modprobe nazwamodułu w show this root .Domyślnie modprobe zamierza załadować moduł z /lib/modules/kernel_version/kernel/drivers/.Niektóre moduły przenoszą zależności, które są kilkoma innymi modułami jądra, które muszą być załadowane, zanim ten moduł będzie mógł być często załadowany.
An Easy Way To Fix Kernel Module Building Issues
Un Moyen Simple De Résoudre Les Problèmes De Création De Modules Du Noyau
Una Manera Fácil De Solucionar Problemas De Creación De Módulos Del Kernel
Un Modo Semplice Per Risolvere I Problemi Di Creazione Dei Moduli Del Kernel
Een Gemakkelijke Manier Om Problemen Met Het Bouwen Van Kernelmodules Op Te Lossen
Простой способ исправить проблемы сборки модуля ядра
커널 모듈 빌드 문제를 해결하는 쉬운 방법
Uma Maneira Fácil De Corrigir Problemas De Criação De Módulos Do Kernel
Ett Enkelt Sätt Att åtgärda Problem Med Kärnmodulbyggnad
Eine Einfache Möglichkeit, Probleme Beim Erstellen Von Kernelmodulen Zu Beheben