Portál AbcLinuxu, 7. května 2025 03:49
Ahoj,
potřebuji zkompilovat kernel modul který je v kernelu již obsažen ale nevím jak na to.
Jedná se o modul VT6655
root@alix:/usr/src/linux-source-3.2# modinfo vt6655_stage
ERROR: Module vt6655_stage not found.
root@alix:/usr/src/linux-source-3.2# ls /usr/src/linux-source-3.2/drivers/staging/vt6655
aes_ccmp.c card.c device.h channel.h iwctl.c Makefile power.c rxtx.h tether.h vntconfiguration.dat wmgr.c wpa2.h
aes_ccmp.h card.h device_main.c IEEE11h.c iwctl.h mib.c power.h srom.c tkip.c vntwifi.c wmgr.h wroute.c
baseband.c country.h dpc.c IEEE11h.h Kconfig mib.h rc4.c srom.h tkip.h vntwifi.h wpa.c wroute.h
baseband.h datarate.c dpc.h iocmd.h key.c michael.c rc4.h tcrc.c tmacro.h wcmd.c wpactl.c 80211hdr.h
bssdb.c datarate.h hostap.c ioctl.c key.h michael.h rf.c tcrc.h TODO wcmd.h wpactl.h 80211mgr.c
bssdb.h desc.h hostap.h ioctl.h mac.c modules.order rf.h test ttype.h wctl.c wpa.h 80211mgr.h
built-in.o device_cfg.h channel.c iowpa.h mac.h Module.symvers rxtx.c tether.c upc.h wctl.h wpa2.c
zkoušel sem v make menuconfig povolit VT6655 jako modul , pak dal make prepare , make modules_prepare
a prostě nevim jak tento konkrétní modul kompilovat.
Zkoušel sem místo něj použít ndiswrapper ale nefunguje to jak má viz:
root@alix:/usr/src/linux-source-3.2# iwconfig wlan2
wlan2 No such device
root@alix:/usr/src/linux-source-3.2# modprobe ndiswrapper
root@alix:/usr/src/linux-source-3.2# iwconfig wlan2
wlan2 IEEE 802.11g ESSID:off/any
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s
RTS thr:2347 B Fragment thr:2346 B
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
root@alix:/usr/src/linux-source-3.2# iwconfig wlan2 essid "Net"
root@alix:/usr/src/linux-source-3.2# iwconfig wlan2
wlan2 IEEE 802.11g ESSID:off/any
Mode:Managed Frequency:2.442 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s
RTS thr:2347 B Fragment thr:2346 B
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
root@alix:/usr/src/linux-source-3.2#
[207750.341505] ndiswrapper version 1.57 loaded (smp=no, preempt=no)
[207750.376723] ndiswrapper: driver oem4 (VNT,03/28/2008,2.13.00.0000) loaded
[207750.377538] ndiswrapper 0000:00:0e.0: PCI INT A -> Link[LNKC] -> GSI 10 (level, low) -> IRQ 10
[207750.381722] ndiswrapper: using IRQ 10
[207750.692283] wlan1: ethernet device 00:12:7b:42:23:b4 using NDIS driver: oem4, version: 0x2000d, NDIS version: 0x500, vendor: 'VIA Networking Technologies PCI-Cardbus Wireless LAN Adapter ', 1106:3253.5.conf
[207750.692368] wlan1: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2-PSK; AES/CCMP with WPA, WPA2, WPA2-PSK
Takže sem ndiswrapper zase zakázal protože funguje naprd a nevím jak zkompilovat ten modul VT6655_stage.ko
Děkuji za radu.
PS: driver ze stránek VIA nejde kompilovat s hláškou : Makefile:116: *** Linux kernel source not configured - missing config.h. Stop.
Po chvíľke googlenia som našiel tento postup. Stačí použiť daný príkaz a mať nastavení adresár /usr/src/zdroj jadra. Do SUBDIRS treba dať cestu bez prvého lomítka. Nie absolútnu cestu a relatívnu.
Na debiane to fungovalo, možno to pôjde aj na ubuntu.
To ubuntu neni , to je debian whezzy a výsledek je
root@alix:/usr/src/linux-source-3.2# make SUBDIRS=drivers/staging/vt6655/ modules
WARNING: Symbol version dump /usr/src/linux-source-3.2/Module.symvers
is missing; modules will have no dependencies and modversions.
Building modules, stage 2.
MODPOST 0 modules
Čítal si odkaz, ktorý som poslal ?
Podobá sa tebou zadaní príkaz na toto make modules SUBDIRS=drivers/the_module_directory
?
Samozřejmě že četl ale ty asi ne
make modules SUBDIRS=*
je totéž jako
make SUBDIRS=* modules
samozřejmě že na oba případy to dělá totéž.
V kernelu ho máš taky tak to vyzkoušej zkompilovat ať se nehádáš.
OK. Neskontroloval som čo to presne robí. Našiel som spôsob ako to urobiť a vyzerá, že to funguje. Link na návod
cd /usr/src/linux-source-3.2/drivers/staging/vt6655/
make -C /lib/modules/`uname -r`/build M=$PWD modules
To mi nejde
root@alix:/usr/src/linux-source-3.2/drivers/staging/vt6655# make -C /lib/modules/`uname -r`/build M=$PWD modules
make: Entering directory `/usr/src/linux-headers-3.2.0-3-486'
Building modules, stage 2.
MODPOST 0 modules
vyzkoušel sem ale modul hned pod tim
root@alix:/usr/src/linux-source-3.2/drivers/staging/vt6655# cd ..
root@alix:/usr/src/linux-source-3.2/drivers/staging# cd vt6656
root@alix:/usr/src/linux-source-3.2/drivers/staging/vt6656# make -C /lib/modules/`uname -r`/build M=$PWD modules
make: Entering directory `/usr/src/linux-headers-3.2.0-3-486'
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/main_usb.o
/usr/src/linux-source-3.2/drivers/staging/vt6656/main_usb.c: In function ‘device_ioctl’:
/usr/src/linux-source-3.2/drivers/staging/vt6656/main_usb.c:2065:1: warning: the frame size of 1868 bytes is larger than 1024 bytes [-Wframe-larger-than=]
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/card.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/mac.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/baseband.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/wctl.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/80211mgr.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/wcmd.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/wmgr.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/bssdb.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/wpa2.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/rxtx.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/dpc.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/power.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/datarate.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/mib.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/rc4.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/tether.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/tcrc.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/ioctl.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/hostap.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/wpa.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/key.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/tkip.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/michael.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/rf.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/iwctl.o
/usr/src/linux-source-3.2/drivers/staging/vt6656/iwctl.c: In function ‘iwctl_giwaplist’:
/usr/src/linux-source-3.2/drivers/staging/vt6656/iwctl.c:787:1: warning: the frame size of 1288 bytes is larger than 1024 bytes [-Wframe-larger-than=]
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/wpactl.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/aes_ccmp.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/usbpipe.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/channel.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/control.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/firmware.o
CC [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/int.o
LD [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/vt6656_stage.o
Building modules, stage 2.
MODPOST 1 modules
CC /usr/src/linux-source-3.2/drivers/staging/vt6656/vt6656_stage.mod.o
LD [M] /usr/src/linux-source-3.2/drivers/staging/vt6656/vt6656_stage.ko
make: Leaving directory `/usr/src/linux-headers-3.2.0-3-486'
root@alix:/usr/src/linux-source-3.2/drivers/staging/vt6656#
a ten kompilovat takto lze takže problém neni v postupu ale něčem jiném.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.