j

Tematy związane z oprogramowaniem, instalacją, konfiguracją
I.L.O.
Posty: 49
Rejestracja: 17 października 2008, 14:16

jądro i moduły nie większe niŻ 100MB jak to zrobić?

Post autor: I.L.O. »

Cześć.
Powiedzmy, że już wiem jak skompilować i zainstalować jądro. Problem jest taki, że z modułami ma ono jakieś 1,2GB. Jest to stanowczo za dużo, docelowo chcę by wszystko nie zajmowało 100MB, pewnie i tak by było gdybym kompilował go dla swojej platformy. Niestety to jądro ma obsługiwać dość dużą ilość sprzętu. Chcę by przynajmniej te najczęściej spotykane urządzenia obsługiwało, bez tych wszystkich staroci jakie są na rynku.

Co muszę obowiązkowo dodać do jądra a co mogę wyrzucić? I czy to w ogóle wykonalne by zejść do 100MB?
Może zastosuje jakiś inny rodzaj jądra?
LiTE
Beginner
Posty: 208
Rejestracja: 25 marca 2008, 13:22
Lokalizacja: Nowa Ruda

Post autor: LiTE »

Kod: Zaznacz cały

-rw-r--r--  1 root root 4,2M 02-25 18:09 initrd.img-2.6.32.8-lite
-rw-r--r--  1 root root 3,1M 02-16 17:19 vmlinuz-2.6.32.8-lite

Kod: Zaznacz cały

lite@lite-debian:/lib/modules$ du -h | grep lite | tail -1
44M	./2.6.32.8-lite
Da się i to raczej całkiem normalne rozmiary ;-)
I.L.O.
Posty: 49
Rejestracja: 17 października 2008, 14:16

Post autor: I.L.O. »

[quote="LiTE"]

Kod: Zaznacz cały

-rw-r--r--  1 root root 4,2M 02-25 18:09 initrd.img-2.6.32.8-lite
-rw-r--r--  1 root root 3,1M 02-16 17:19 vmlinuz-2.6.32.8-lite

Kod: Zaznacz cały

lite@lite-debian:/lib/modules$ du -h | grep lite | tail -1
44M	./2.6.32.8-lite
Da się i to raczej całkiem normalne rozmiary ]
Zdradź mi swój sekret :->
Jak tego dokonałeś?
Awatar użytkownika
raven18
Beginner
Posty: 134
Rejestracja: 12 maja 2009, 11:29
Lokalizacja: /home

Post autor: raven18 »

1.2 Giga to całkiem sporo, zważywszy, że paczki z repozytorium mają po około 25MB. W drzewku kernel hacking odznacz kernel debugging.
I.L.O.
Posty: 49
Rejestracja: 17 października 2008, 14:16

Post autor: I.L.O. »

W drzewku ,,kernel hacking'' odznacz ,,kernel debugging''.
Wpadłem też na pomysł by pozbyć się wszystkich systemów plików, których nie używam, zostawię tylko ext3 i ext4.

[ Dodano: |4 Mar 2010|, 2010 14:35 ]
LiTE a możesz pożyczyć mi swojego config-a do kernela?
tmy123
Beginner
Posty: 144
Rejestracja: 18 kwietnia 2008, 19:43

Post autor: tmy123 »

¦ciągasz stąd odchudzony plik .config z podstawową konfiguracją i dodajesz tylko sprzęt.
LiTE
Beginner
Posty: 208
Rejestracja: 25 marca 2008, 13:22
Lokalizacja: Nowa Ruda

Post autor: LiTE »

I.L.O. pisze: [ Dodano: |4 Mar 2010|, 2010 14:35 ]
LiTE a możesz pożyczyć mi swojego config-a do kernela?
http://lite.rootnode.net/upload/upload_ ... .32.8-lite
Awatar użytkownika
ryba84
Beginner
Posty: 340
Rejestracja: 08 lipca 2007, 14:55
Lokalizacja: LDZ

Post autor: ryba84 »

I to da się sporo mniej.

Kod: Zaznacz cały

ryba@lapek /lib/modules $ ls -lh /boot/ | grep zen12
-rw-r--r-- 1 root root 2,1M 02-07 20:18 gentoo-2.6.31-zen12-rr-1
-rw-r--r-- 1 root root 4,3M 02-07 20:20 initramfs-2.6.31-zen12-rr-1
ryba@lapek /lib/modules $ du -h | grep zen12 | tail -1
6,5M	./2.6.31-zen12-rr-1
Co prawda to jądro z Gentoo, ale debianowe jądro też tak małe może być. Musisz okroić go z niepotrzebnych sterowników. To już da sporo. Ale uważaj, bo jak Ci braknie czegoś to może się skończyć:

Kod: Zaznacz cały

kernel panic
Initramfs nie byłby potrzebny gdyby nie startowanie z szyfrowanej partycji root i używanie fbsplash i fbcondecor.

Edycja:
Aż z ciekawości sprawdziłem ile zajmuje na pendrivie z Debianem:

Kod: Zaznacz cały

ryba@lapek /media/disk-1 $ ls -lh | grep 2.6.31
-rw-r--r-- 1 root root 6,5M 02-20 16:58 initrd.img-2.6.31.12-190210
-rw-r--r-- 1 root root 2,2M 02-19 21:08 vmlinuz-2.6.31.12-190210
ryba@lapek /media/disk-2/lib/modules $ du -h | grep 2.6.31 | tail -1
72M	./2.6.31.12-190210
Jadro co prawda kompilowany własnoręcznie ale z oryginalnymi ustawieniami Debiana. Wykonałem:

Kod: Zaznacz cały

make oldconfig
po skopiowaniu ustawień debianowego jądra i zmieniłem tylko jedną opcje. Więc nie wiem skąd Ty wziąłeś takie wyniki. No chyba, że liczysz źródła po kompilacji. Zrób:

Kod: Zaznacz cały

make clean
to Ci się zmniejszą, a jak robiłeś sposobem z Debiana to:

Kod: Zaznacz cały

 make-kpkg clean
i zostaną czyste źródła. O ile się nie mylę jak je zostawisz to nie potrzebne Ci będą pliki nagłówkowe. Tylko nie wykonuj:

Kod: Zaznacz cały

make mrproper
bo powrócisz do zupełnie czystych źródeł tak jak po rozpakowaniu. Nawet nie będzie konfiguracji tej, z którą kompilowałeś pierwszy raz.

¬ródła po kompilacji:

Kod: Zaznacz cały

ryba@lapek /usr/src $ du -h | grep zen12 | tail -1 
568M	./linux-2.6.31-zen12
I.L.O.
Posty: 49
Rejestracja: 17 października 2008, 14:16

Post autor: I.L.O. »

Mój konfig pochodzi z systemu, który obecnie posiadam. To system pochodny Ubuntu, tu prawie wszystkie opcje w jądrze były zaznaczone jako moduły.
Kiedyś instalowałem czystego Debiana i Ubuntu, oba bez środowiska graficznego. Jeden zajmował 500MB, a drugi 1500MB, ten 1GB różnicy to chyba moduły.
ryba84 pisze:

Kod: Zaznacz cały

make clean
to Ci się zmniejszą, a jak robiłeś sposobem z Debiana to:
A mam to zrobić po konfiguracji jądra, czy może przed?
Awatar użytkownika
ryba84
Beginner
Posty: 340
Rejestracja: 08 lipca 2007, 14:55
Lokalizacja: LDZ

Post autor: ryba84 »

To polecenie wykonaj po kompilacji lub przed kolejną próbą. Usuwa ono wszystkie śmieci powstałe podczas kompilacji i pozwala na wykonanie kolejnej.

Ps. pokaż wyniki poleceń:

Kod: Zaznacz cały

cd /boot && ls -lh
i wynik:

Kod: Zaznacz cały

cd /lib/modules && du -h | grep `uname -r` | tail -1
Po drugim poleceniu dowiesz się ile zajmują Ci moduły w jądrze którego używasz.
ODPOWIEDZ