Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#26  2017-12-10 17:05:16

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: ( SOLVED ) Jak ustalic wersje Kernela zawierajaca brakujacy modul?

Wreszcie mniej więcej dobrze rozumujesz.

Kod:

np "cat /boot/config-`uname -r` | grep .... " juz tak.

To nie tyle fizyczne sterowniki co konfig ich w jądrze.
Są wkompilowane.Istnieją.

m to nie tyle edytowalne co mamy możliwośc ich załadowania lub wyładowania.
W koncu nie potrzeba w jądrze sterowników do sprzętu którego nie posiadamy.
Niektóre z nich możemy ładować z różnymi parametrami bo spełniają wiecej funkcji lub wiele modeli sprzętu obsługują.

To tak z grubsza.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#27  2017-12-10 17:12:58

  Novi-cjusz - Użytkownik

Novi-cjusz
Użytkownik
Zarejestrowany: 2013-03-05

Re: ( SOLVED ) Jak ustalic wersje Kernela zawierajaca brakujacy modul?

Sprawdzam:

Kod:

lsmod | grep cls_cgroup
cls_cgroup             16384  0

Twoje wyjasnienia pozwolily mi wyprostowac to co bylo do tej pory dla mnie "zamotane"
Duze jasne z piekna pianka.
Dziekuje i pozdrawiam.

Ps. Poniewczasie przyszly mi do glowy jeszcze 2 pytania:
- jezeli modul jest zaladowany to czy to automatycznie oznacza, ze jego wszystkie submoduly tez sa zaladowane ?
- jakim poleceniem sprawdzic, czy wybrany subsystem/submodul jest zaladowany ?

Ostatnio edytowany przez Novi-cjusz (2017-12-10 18:16:33)


------------------------------------------------------------------------------------
"Inveniam viam aut faciam" : I will either find a way, or I shall make one
"Złoto to pieniądz królów, srebro to pieniądz dżentelmenów, barter to pieniądz chłopów ale dług to pieniądz niewolników."

Offline

 

#28  2017-12-10 22:22:11

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: ( SOLVED ) Jak ustalic wersje Kernela zawierajaca brakujacy modul?

W zasadzie to różnica między funkcjonalnością kernela wkompilowaną na stałe i tą zbudowaną jako moduł sprowadza się do możliwości rekonfiguracji modułu podczas pracy systemu.

Dla przykładu, jeśli jest iptables i masz tam reguły, które wymagają pewnych rzeczy od kernela i te rzeczy są skompilowane jako moduł, to przed załadowaniem reguł iptables trzeba pierw załadować potrzebne moduły (zależności są dociągane automatycznie). To trochę spowalnia start systemu (czy kiedy ten moduł jest ładowany) ale z perspektywy człowieka to w ogóle nie ma żadnej różnicy. Jakby zamiast modułów, ta funkcjonalność kernela była wkompilowana na stałe, to ten krok ładowania modułów nie miałby miejsca -- bo już wszystko jest załadowane.

Jeśli teraz chciałbyś zmienić parametry modułu, to możesz wywalić reguły z iptables, wyładować moduł i zmienić jego konfiguracje, po czym załadować moduł i dodać reguły na nowo. A jak masz wkompilowane na stałe, to musisz jechać z linijki kernela w bootloaderze i resetować system. To jest taka najgłówniejsza różnica.

Idąc dalej, dany kernel może działać na całej masie sprzętu, bo sobie dynamicznie dobiera moduły do pracy. Każdy moduł zjada pamięć i załadowanie ich wszystkich (zakładając, że są wkompilowane na stałe) trochę by pamięci zjadało. Dlatego sporo rzeczy jest kompilowane jako moduł, bo się zwyczajnie nie przydaje większości (a część zupełnie koliduje ze sobą), a ci którzy potrzebują, mogą dodać wpis do odpowiedniej usługi ładującej moduły i te parę milisekund poczekać. xD

A zależności, to można sprawdzić np. tak:

Kod:

# modprobe --show-depends i915
insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/i2c/algos/i2c-algo-bit.ko
insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/gpu/drm/drm.ko
insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/gpu/drm/drm_kms_helper.ko
insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/acpi/button.ko
insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/acpi/video.ko
insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/gpu/drm/i915/i915.ko lvds_downclock=1 fastboot=1

Co odpowiada "used by" w:

Kod:

# lsmod | grep i915
Module                  Size  Used by
...
i915                 1347584  5
i2c_algo_bit           16384  1 i915
drm_kms_helper        163840  1 i915
video                  40960  1 i915
drm                   372736  6 i915,drm_kms_helper
button                 16384  1 i915

I by wyładować i915, trzeba by pierw wyładować wszystkie te, które widać wyżej o ile one nie mają jakichś zależności, i tak dalej.

Ostatnio edytowany przez morfik (2017-12-10 22:24:42)

Offline

 

#29  2017-12-11 10:10:39

  Novi-cjusz - Użytkownik

Novi-cjusz
Użytkownik
Zarejestrowany: 2013-03-05

Re: ( SOLVED ) Jak ustalic wersje Kernela zawierajaca brakujacy modul?

@morfik
Moj watek wziol sie z checi "ozenienia" iptables z cgroups, a tym samym totalnej kontroli ruchu na wyjsciu. Dwa lata wstecz "Jacekalex" wytlumaczyl mi wszystko i dzialalo perfekcyjnie, kilka miesiecy pozniej mialem przepiecie w sieci (jak to czesto bywa w nieduzych miejscowosciach) i stracilem zasilanie kompa i system plikow (na szczescie nic tam nie bylo) Teraz odbudowuje konfiguracje z pamieci i z Wasza pomoca.
Niezbedna jest moim zdaniem mozliwosc sprawdzenia kazdego modulu i jego submodulu czy jest: zainstalowany, zamontowany, zaladowany. Twoja odpowiedz byla nt ogolnych zasad a ja bardziej myslalem juz o praktycznej implementacji w dzialaniu i poprawnosci konfigu Kernela.
Takie zagadnienie wymaga bezblednej analizy stanu/statusu Kernela, jego modulow i submodulow, w szczegolnosci:
- cgroups v.1 ( https://morfikov.github.io/post/ograniczanie-zasobo … rzez-cgroups/ )
  - podsystemu net_cls
  - pozostale podsystemy.
- moduly Netfiltera
  - modul conntrack
  - inne
- modul iptables
  (konfiguracja - blokada wszystkiego na wejsciu, przepuszczam tylko np: loopback, DNS, DHCP,
   przegladarke ktora siedzi w cgroup 1)

Kod:

iptables -S | grep cgroup
-A OUTPUT -m cgroup --cgroup 1 -j ACCEPT
-A OUTPUT -m cgroup --cgroup 2 -j ACCEPT

Chce zrobic ogniomorek bardziej restrykcyjny niz przepuszczanie powiazanych i ustanowionych. Do Internetu ma dostep tylko ten komu na to pozwole.

Ostatnio edytowany przez Novi-cjusz (2017-12-11 10:48:29)


------------------------------------------------------------------------------------
"Inveniam viam aut faciam" : I will either find a way, or I shall make one
"Złoto to pieniądz królów, srebro to pieniądz dżentelmenów, barter to pieniądz chłopów ale dług to pieniądz niewolników."

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)