Problemy z instalowaniem sterowników linux z makefile


0

Ponieważ było to bardziej problem z oprogramowaniem / sterownikiem, zadałem pytanie na SuperUser, a nie na EE Exchange.

Szukałem trochę w sieci i znalazłem bardzo przydatne Konwerter USART na USB . CP2102 jest urządzeniem programowalnym z wieloma ustawieniami, jeśli chodzi o kadrowanie danych. W związku z tym sterownik urządzenia musi być używany do interfejsu i modyfikowania tych parametrów.

Na stronie Silabs znalazłem to sterownik dla Linuksa (jądro 3.14.4-1 na Arch Linux). Problem polega na tym kierowca to tylko jeden program C z zerową dokumentacją. Dołącz robić plik jest mniej więcej tak użyteczny, biorąc pod uwagę, że ma w nim jedną linię, która nie działa (dla mnie) w czasie wykonywania.

obj-m = cp210x.o
KVERSION = $(shell uname -r)
all:
    make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
    make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

Można znaleźć źródło sterownika tutaj .

Gdzie jest mój błąd

make -C /lib/modules/3.14.4-1-ARCH/build M=/home/branden/Desktop/Linux_3.x.x_VCP_Driver_Source modules

make[ 1 ]: Entering directory '/usr/lib/modules/3.14.4-1-ARCH/build'

make[ 1 ]: *** No rule to make target 'modules. Stop.

make[ 1 ]: Leaving directory '/usr/lib/modules/3.14.4-1-ARCH/build'

Makefile:4: recipe for target 'all' failed

make: *** [all] Error 2

Nie ma dokumentacji poza:

  1. make (twój sterownik cp210x)
  2. cp cp210x.ko do / lib / modules // jądro / drivers / usb / serial
  3. insmod / lib / modules /
  4. insmod cp210x.ko

Który jest właściwie skierowany do Ubuntu. System operacyjny, którego używam, to Arch Linux, więc zdaję sobie sprawę, że mogą istnieć pewne rozbieżności, ale nie jestem w stanie ich rozwiązać.

Czy ktokolwiek może udzielić wskazówek na temat kroków instalacji tego sterownika (a przynajmniej, gdzie szukać) i dlaczego jest taki brak dokumentacji? Czy istnieją tutaj założenia, których nie znam? Jak ktoś może to wykorzystać? Jeśli spojrzysz na źródło, zostaną użyte struktury jako argumenty dla funkcji, które nigdy nie są zdefiniowane tak daleko, jak potrafię. Być może są one częścią plików nagłówkowych znajdujących się na górze, ale nie mogłem też znaleźć niektórych z nich na moim komputerze.

Odpowiedzi:


1

Po prostu nie załadowałeś nagłówków linuksa:

 sudo pacman -S linux-headers

rozwiązuje twój problem. Twój komunikat o błędzie stwierdza, że ​​w / linux / modules / $ (uname -r) / build nie ma reguły tworzenia modułów. Jeśli zajrzysz do tego katalogu w tym momencie, znajdziesz albo plik vmlinux, albo plik vmlinux. Po aktualizacji za pomocą powyższego polecenia znajdziesz wszystkie potrzebne moduły.

Ten problem nie jest specyficzny dla Archa, jest wspólny dla wszystkich dystrybucji Linuksa.


Spróbuję tego teraz. Przeglądałem ten katalog jakiś czas temu i znalazłem tylko, jak powiedziałeś, vmlinux.
sherrellbc

0

Miałem ten sam problem podczas instalacji linux-headers. pacman zainstalowałem pakiet z nowszego jądra. Rozwiązałem problem, kompilując moduł zaraz po aktualizacji:

pacman -Syu && pacman -S linux-headers
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.