Nowe posty

Autor Wątek: Wake on LAN - ALX  (Przeczytany 2475 razy)

Offline Madzia_82

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 18
    • Zobacz profil
Wake on LAN - ALX
« dnia: 2015-12-14, 18:48:20 »
Pracuję na ubuntu. niestety jest problem ze sterownikiem ALX obsługującym moją kartę Qualcomm Atheros Killer E2201. Problem jest rozwiązany za pomocą patcha -  https://bugzilla.kernel.org/show_bug.cgi?id=61651#c12.
udało mi się prawidłowo skompilować go. podrzuciłam go do lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/. Kiedy ręcznie usunę alx (modprobe -r alx), i później go dodam (modprobe alx) - wszystko działa. Po zamknięciu systemu mogę uruchomić system przez WOL. Niestety po przeładowaniu systemu nie ładuje się mój sterownik (alx.ko) podrzucony do w/w katalogu z modułami, tylko ten obarczony błędem. Znowu muszę ręcznie usunąć moduł alx i dodać - wtedy załaduje się ten mój. Może ktoś mi pomoże i powie jak temu zaradzić - tak żeby ładował się spatchowany moduł alx przy starcie ubuntu.

Próbowałam nawet dodać do alx do /etc/modprobe.d - blacklist.conf. myślałam, że wtedy w ogóle żaden sterownik alx się nie załaduje, ale ładuje się i to ten niewłaściwy ;/ po restarcie i wpisaniu lsmod nadal figuruje alx. Nic już z tego nie rozumiem....

Offline marcin'82

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 285
    • Zobacz profil
Odp: Wake on LAN - ALX
« Odpowiedź #1 dnia: 2015-12-14, 21:02:23 »
Zajrzyj tutaj:
https://www.debian-administration.org/article/640/Rebuilding_a_single_kernel_module .

Na początek zmień nazwę oryginalnego modułu na nazwa.bak.

Jeśli po restarcie załaduje się prawidłowy moduł - dodaj go do pliku:
/etc/initramfs-tools/modules
Potem wykonaj:
update-initramfs -u -v -k all

Jeśli to nie pomoże - być można jeszcze spróbować przekompilować jądro, ale najpierw nałożyć łatkę dotyczącą tego modułu.
marcin82

Offline Madzia_82

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 18
    • Zobacz profil
Odp: Wake on LAN - ALX
« Odpowiedź #2 dnia: 2015-12-18, 20:47:13 »
To mam dramat teraz. zastosowałam się do tego co napisałeś i faktycznie nie ładuje się sterownik wcale - pokazuje brak urządzeń sieciowych. muszę załadować sterownik ręcznie po starcie systemu poleceniem modprobe alx. Wtedy sieć się załaduje ale i tak nie z tym sterownikiem co trzeba chyba że uruchomię modprobe w katalogu z moim skompilowanym sterownikiem....

Ratuj mnie, już nieważne jak sterownik byle siec startowała z rozpoczęciem pracy systemu.....

Offline marcin'82

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 285
    • Zobacz profil
Odp: Wake on LAN - ALX
« Odpowiedź #3 dnia: 2015-12-18, 20:52:14 »
Cytuj
Wtedy sieć się załaduje ale i tak nie z tym sterownikiem co trzeba chyba że uruchomię modprobe w katalogu z moim skompilowanym sterownikiem...

Przenieś skompilowany moduł tam, gdzie był oryginalny moduł (ten, którego nazwę zmieniłaś na *.bak).

Załaduj moduł - sprawdź czy prawidłowy i uaktualnij initramfs wg tego co podałem wyżej.

EDYCJA - DODANE:
Upewnij się, że moduł nie jest na żadnej "blackliście".
« Ostatnia zmiana: 2015-12-18, 20:55:27 wysłana przez marcin'82 »
marcin82

Offline Madzia_82

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 18
    • Zobacz profil
Odp: Wake on LAN - ALX
« Odpowiedź #4 dnia: 2015-12-18, 21:46:27 »
wrzuciłam plik alx. ko - właściwy do /lib/modules/3.13.0-73-generic/kernel/drivers/net/ethernet/atheros/alx
zamieniłam poprzednią wersje na alx.bak. Po restarcie pliki bez zmian. Uruchmiłam poleceniem modprobe alx - właściwy moduł. WON prawidłowo reaguje na polecenie ethtool -s eth0 wol g. Dodałam do /etc/initramfs-tools/modules wyraz "alx" i następnie update-initramfs -u -v -k all. Z 30 sekund tam wypisuje różne moduły z różnych wersji kernelu. Kończy. Reset. Sieci jak nie ma tak nie ma.

Offline Madzia_82

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 18
    • Zobacz profil
Odp: Wake on LAN - ALX
« Odpowiedź #5 dnia: 2015-12-18, 21:50:30 »
było na blackliście - już działa wszystko jak należy. Jesteś WIELKI!!!

Offline marcin'82

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 285
    • Zobacz profil
Odp: Wake on LAN - ALX
« Odpowiedź #6 dnia: 2015-12-18, 23:33:31 »
Fajnie, że działa ; ]

Jedyną komplikacją będzie nowa wersja jądra. Wszystkie czynności trzeba będzie powtórzyć. Trzeba by było sprawdzić czy można wszystko zalatwić przez utworzenie paczki dkms, która np. w preinstall zmieni nazwę "zlego" modułu, a potem zrobi swoje, czyli skompiluje moduł ze źródeł z łatką, a potem umieści go na swoim miejscu.

Orientacyjnie:
http://www.xkyle.com/building-linux-packages-for-kernel-drivers/ .

Na przyszlość - przed wszelkimi "grubszymi" zabawami radzę wykonać choćby prosty backup, na przykład:
https://wiki.archlinux.org/index.php/Full_system_backup_with_rsync .
Oczywiście dostosuj polecenie do ewentualnych różnic między dystrybucjami, czy swoich wymagań, itd.
« Ostatnia zmiana: 2015-12-18, 23:37:42 wysłana przez marcin'82 »
marcin82

Offline Madzia_82

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 18
    • Zobacz profil
Odp: Wake on LAN - ALX
« Odpowiedź #7 dnia: 2015-12-19, 13:32:53 »
Dziękuje za dobre rady i jeszcze raz za pomoc. jestem dosyć świeża w temacie linuksa możesz polecić z czego się uczyć systemu (jakiś podręcznik), tak żeby poznać zasady działania, strukturę systemu, bo jakoś sobie radzę ale to jest na zasadzie łatania dziur - tu doczytam jak załatwić problem tam doczytam, ale tak naprawdę nie zawsze rozumiem co się dzieje (np. nie wiem po co miałam dodać alx do initramfs-tools/modules).


Offline marcin'82

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 285
    • Zobacz profil
Odp: Wake on LAN - ALX
« Odpowiedź #8 dnia: 2015-12-19, 15:58:31 »
Przede wszystkim trzeba nabrać doświadczenia. Kluczem do każdej dystrybucji jest wiedza na temat:
- formatu pakietów oprogramowania (deb, rpm, pkg.tar.xz, inne)
- menedżera pakietów (apt/dpkg, rpm, pacman, inne) - przydatne zestawienie: Pacman/Rosetta
- demona inicjalizacji systemu (sysvinit, systemd)
- debugowania systemu (dmesg, syslog, journalctl)
- struktura katalogów

Cytuj
nie wiem po co miałam dodać alx do initramfs-tools/modules
Chodzi o to, żeby dany moduł jądra był ładowany na starcie systemu. Można to załatwić albo w pliku - bodajże w Debianie /etc/modules, albo dodając go bezpośrednio do obrazu initramfs (dawniej używane initrd):
https://en.wikipedia.org/wiki/Initramfs
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/initramfs.html
https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt .

Odnośnie podręczników - nie wiem nawet co konkretnego i całościowego polecić. Można szukać w ten sposób:
http://helion.pl/search?qa=3330&sent=1&sortby=wd&szukaj=linux&wsprzed=1
Zwróć jednak uwagę na to, że wiele pozycji jest nieaktualnych w momencie wydania. Część komponentów systemu, wydania, wersje jądra zmieniają się bardzo dynamicznie. Jeśli coś będziesz kupować - zwróć uwagę oczywiście na rok wydania.

Z czystym sumieniem nie poleciłbym jednego gniota, którego przez wiedzę o rażącej niekompetencji i niewiedzy autorah nie mogę nawet wymienić ...

To natomiast na pewno można polecić - The Linux Command Line:
http://linuxcommand.org/tlcl.php .

Ostatnia sprawa - Google twoim przyjacielem. Wiele rzeczy jest opisanych rzetelnie, ale jest też wiele pseudo-poradników. W pierwszej kolejności zaglądaj na wiki poszczególnych dystrybucji.

Powodzenia!
« Ostatnia zmiana: 2015-12-19, 16:06:14 wysłana przez marcin'82 »
marcin82