5 przydatnych wskazówek podczas kompilowania własnego jądra systemu Linux
Jądro Linuksa to genialny kawałek inżynierii oprogramowania. Zawierający ponad milion linii kodu jest prawdopodobnie jednym z najbardziej złożonych programów, który nadal jest w fazie aktywnego rozwoju. Od końca lat 90. jądro Linuksa było używane zarówno w projektach wymagających dużej mocy obliczeniowej, jak i w aplikacjach wbudowanych typu barebone.
Treść
- Co to jest jądro i po co je konfigurować?
- 1. Skorzystaj z Systemu Pomocy
- 2. Wyłącz niepotrzebną obsługę HID
- 3. Wyłącz niepotrzebną obsługę systemu plików
- 4. Wyłącz niepotrzebne sterowniki graficzne
- 5. Zainstaluj sterowniki jako moduły
- Często Zadawane Pytania
Przeczytaj także: 5 najlepszych dystrybucji Linux-Libre zapewniających większe bezpieczeństwo
Co to jest jądro i po co je konfigurować?
Mimo to jądro Linuksa to tylko program, który służy jako łącznik pomiędzy sprzętem w Twoim komputerze a oprogramowaniem, z którego korzystasz na co dzień. To właśnie pozwala na wykorzystanie szerokiej gamy urządzeń do programów, z których korzystasz na co dzień.
Jednym z przykładów takiego powiązania sprzętu i oprogramowania jest zaawansowana architektura dźwięku Linux (ALSA). ALSA to struktura sterowników dźwięku wbudowana w jądro Linuksa. Pozwala między innymi łatwo zainstalować kartę dźwiękową i skonfigurować ją tak, aby natychmiast uruchamiała się z ulubionym programem.
Wiedząc o tym, jądro Linuksa jest programem w dużej mierze nieznanym zwykłemu użytkownikowi. W większości przypadków za każdym razem, gdy instalujesz dystrybucję, często otrzymujesz jądro, które będzie działać od razu po wyjęciu z pudełka. Może to być przydatne, jeśli chcesz po prostu sprawić, aby Twój system działał.
Jeśli jednak używasz dystrybucji takich jak Arch i Gentoo, możliwość skonfigurowania jądra jest korzystna na dłuższą metę. Na przykład włączenie tylko tych funkcji, które chcesz, może przyspieszyć czas uruchamiania.
W związku z tym ten artykuł ma na celu przedstawienie pięciu przydatnych wskazówek podczas kompilowania własnego jądra Linuksa.
Uwaga: zapoznaj się z tym artykułem, aby dowiedzieć się, jak rozpocząć kompilowanie własnego jądra.
1. Skorzystaj z Systemu Pomocy
Jedną z najbardziej przydatnych funkcji podczas konfigurowania jądra Linuksa jest system pomocy. Jest to wbudowana funkcja, do której można uzyskać dostęp w menu konfiguracji jądra. Dzięki temu możesz zobaczyć opis każdej funkcji i sterownika, który możesz zainstalować w swoim jądrze.
Aby skorzystać z tego systemu, wystarczy nacisnąć Shift + / podczas podświetlania określonej opcji jądra. Stamtąd menu konfiguracji wyświetli krótki slajd przedstawiający działanie tej funkcji. Na przykład mogę nacisnąć Shift + /, aby wybrać opcję „Obsługa PCI”, aby zobaczyć wszystkie opcje, które muszę włączyć, aby z niej korzystać.
Dzięki temu możesz także używać tego samego systemu pomocy do wyszukiwania informacji o poszczególnych funkcjach jądra. Może to być szczególnie przydatne, jeśli chcesz dowiedzieć się więcej o wszystkich opcjach wymaganych przez określoną funkcję.
Aby to zrobić, możesz nacisnąć / będąc w menu konfiguracji. Spowoduje to wyświetlenie małego monitu, w którym możesz wpisać nazwę konkretnej opcji. Na przykład mogę nacisnąć /, a następnie wpisać „PCI”, aby wyszukać opcje korzystające z flagi PCI.
Przeczytaj także: Czym jest Gentoo Linux i jak go zainstalować
2. Wyłącz niepotrzebną obsługę HID
Jądro Linuksa często reklamuje się jako oprogramowanie z niemal uniwersalną obsługą sprzętu. Dzięki temu często masz pewność, że będzie w stanie obsłużyć każde urządzenie, które do niego podłączysz.
Jednakże jednym problemem związanym z tym podejściem jest to, że uwzględnienie każdego fragmentu wsparcia zwiększa ogólny rozmiar i zajmowaną powierzchnię jądra. To z kolei może prowadzić do powolnych plików binarnych, które złośliwi hakerzy mogą łatwo wykorzystać i włamać się.
Jednym ze sposobów rozwiązania tego problemu jest usunięcie obsługi sprzętu, którego nie używasz na swoim komputerze. Na przykład jądro Linuksa zawiera obsługę Firewire w swojej domyślnej konfiguracji. Mimo to większość dzisiejszych komputerów nie jest domyślnie wyposażona w port Firewire.
Wiedząc o tym, jednym szybkim sposobem sprawdzenia, które urządzenia sprzętowe można wyłączyć, jest przejrzenie sekcji „Specjalne sterowniki HID”. Jest to kategoria, do której dostęp można uzyskać w sekcji „Sterowniki urządzeń” i „Wsparcie HID” w menu konfiguracji. Tutaj jądro wyświetli listę wszystkich rzadkich i nietypowych urządzeń, które może obsługiwać.
Dzięki temu możesz także użyć Shift + / i /, aby wyszukać każdą opcję wymienioną w tej sekcji. Na przykład mogę wybrać „Urządzenia ELECOM” i nacisnąć Shift + /, aby zobaczyć, co robi ta opcja.
Następnie możesz wybrać żądane urządzenia i nacisnąć N, aby wyłączyć ich funkcje. W moim przypadku wyłączę całą obsługę specjalnego HID, ponieważ nie korzystam z żadnego z tych urządzeń.
Przeczytaj także: 5 najlepszych dystrybucji Linuksa dla programistów i programistów
3. Wyłącz niepotrzebną obsługę systemu plików
Innym szybkim sposobem na zmniejszenie rozmiaru jądra jest usunięcie obsługi systemów plików, których nie używasz. Domyślnie jądro Linuksa jest zbudowane z opcjonalną obsługą większości typów systemów plików. Należą do nich stary BSD FFS, a także niektóre systemy o wysokiej wydajności, takie jak BTRFS.
W przeważającej części zwykły użytkownik tak naprawdę używa tylko kilku systemów plików do codziennego użytku. Na przykład system Linux zazwyczaj wykorzystuje systemy EXT2, EXT4, FAT32 i NTFS do przechowywania wszystkich danych. W związku z tym możliwe jest usunięcie obsługi innych systemów plików i uzyskanie rozsądnej ilości dodatkowej wydajności z jądra.
Aby usunąć w jądrze niepotrzebną obsługę systemów plików, wystarczy przejść do kategorii „Systemy plików”.
Następnie możesz wybrać systemy plików, które chcesz usunąć ze swojego systemu, zaznaczając je i naciskając N. W moim przypadku pozostawię obsługę tylko EXT2, EXT3, EXT4 i JFS.
4. Wyłącz niepotrzebne sterowniki graficzne
Oprócz wyłączenia obsługi specjalnego HID i systemów plików, możesz także użyć menu konfiguracji, aby usunąć wszelkie nieużywane sterowniki graficzne. Dzieje się tak, ponieważ jądro Linuksa obsługuje większość nowoczesnych urządzeń graficznych. Oznacza to, że nawet jeśli Twój komputer nie korzysta z karty graficznej, jądro będzie nadal działać tak, jakbyś ją posiadał.
Podobnie jak powyżej, skutkuje to plikiem binarnym jądra, który uruchamia funkcje, które niekoniecznie są potrzebne. To z kolei może stanowić problem, jeśli używasz Linuksa na starym lub słabym sprzęcie.
Aby usunąć niepotrzebną obsługę grafiki, należy najpierw przejść do sekcji „Sterowniki urządzeń” w menu konfiguracji. Następnie przewiń w dół i wybierz „Obsługa grafiki”.
Po zakończeniu jądro wyświetli listę całego sprzętu graficznego, dla którego udostępnia sterownik. W tym miejscu możesz następnie nacisnąć T lub N, aby włączyć lub wyłączyć konkretny sterownik.
W moim przypadku włączę tylko „Intel 8XX Graphics” i „Intel GMA500 Framebuffer”, ponieważ są to jedyne urządzenia graficzne obecne w moim laptopie.
Przeczytaj także: 8 najlepszych dystrybucji Linuksa dla użytkowników systemu Windows
5. Zainstaluj sterowniki jako moduły
Wreszcie, jedną z najlepszych cech jądra Linuksa jest jego zdolność do usuwania części samego siebie i ponownego ładowania ich jako modułów. Takie podejście nie tylko zmniejsza rozmiar jądra, ale także pozwala na elastyczność w zakresie funkcji jądra.
Na przykład możesz zamienić sterownik sieci bezprzewodowej w moduł, który umożliwi jego aktualizację bez konieczności ponownej kompilacji jądra. Jako takie moduły mogą być szczególnie przydatne dla użytkowników, którzy chcą mieć szybkie jądro, ale jednocześnie chcą zachować doskonałą kompatybilność sprzętową Linuksa.
Aby przekonwertować wbudowane funkcje na moduły, należy przejść do sekcji i opcji, którą chcemy przekonwertować na moduł. Na przykład, aby przekonwertować sterownik sieci bezprzewodowej, muszę przejść do sekcji „Obsługa sieci”, a następnie „Bezprzewodowa”.
Stamtąd mogę nacisnąć M na sterownikach „cfg80211”, aby przekonwertować je na moduł jądra.
Po zakończeniu możesz nacisnąć Esc sześć razy, aby wyjść z menu konfiguracji. To z kolei spowoduje wyświetlenie monitu z pytaniem, czy chcesz zapisać wprowadzone zmiany. W moim przypadku wybiorę opcję „Tak”.
Po wykonaniu tej czynności możesz teraz skompilować wersję jądra Linuksa z żądanymi funkcjami, uruchamiając następującą komendę:
make && make modules_install
make installPrzeczytaj także: 5 narzędzi do łatwego tworzenia niestandardowej dystrybucji Linuksa
Często Zadawane Pytania
Czy możliwe jest poznanie sterowników urządzeń potrzebnych mojemu jądru Linuksa?
Tak! Jedną z przeszkód dla użytkowników, którzy dopiero zaczynają kompilować własne jądro, jest znajomość dokładnego rodzaju sprzętu, którego używają. Chociaż może się to wydawać trudnym zadaniem, istnieje wiele programów, które można teraz wykorzystać, aby ułatwić ten proces.
Na przykład możesz użyć zarówno lspci, jak i lsusb, aby sprawdzić wszystkie podłączone urządzenia peryferyjne w komputerze. Ponadto możesz także uruchomić polecenie sudo dmesg, aby sprawdzić, czy jądro poprawnie odczytuje Twoje urządzenia.
Czy można przywrócić funkcję, którą usunąłem z jądra Linuksa?
Tak! Istnieje możliwość ponownej instalacji funkcji po usunięciu jej z jądra Linuksa. Aby to zrobić, musisz wrócić do Menu konfiguracji i nacisnąć Y lub M przy funkcji, którą chcesz ponownie włączyć. Wykonanie tej czynności poinformuje jądro, aby włączyło tę konkretną funkcję jako wbudowaną lub moduł.
Po wykonaniu tej czynności musisz ponownie skompilować jądro, aby utworzyć plik binarny ze wszystkimi nowymi funkcjami. W tym celu należy zapisać menu konfiguracyjne i wyjść z niego, naciskając sześciokrotnie Esc. Stamtąd możesz teraz rozpocząć rekompilację jądra, uruchamiając make.
Kiedy powinienem zainstalować funkcję jądra Linuksa jako moduł?
Instalowanie funkcji jako modułów będzie w dużej mierze zależeć od tego, czego potrzebujesz z jądra. Wiedząc o tym, dobrą zasadą jest to, że powinieneś tworzyć moduły tylko dla funkcji, które nie są krytyczne dla procesu uruchamiania.
Dzieje się tak dlatego, że w swej istocie jądro Linuksa opiera się na możliwości rozruchu z pojedynczego obrazu. Na przykład usunięcie krytycznych części, takich jak obsługa wielu procesorów, może prowadzić do sytuacji, w której nie będzie można uruchomić jądra.
Z tego powodu komponentami jądra, które zwykle stają się modułami, są albo sterowniki graficzne i inne sterowniki sprzętowe, albo interfejsy sieciowe.
Źródło obrazu: Unsplash



















