PDA

View Full Version : Scheda di rete Attansic /Atheros L1 integrata e linux 2.4.18


giando76
01-05-2023, 23:29
Salve a tutti,
ho la necessità di utilizzare la scheda in oggetto in Debian Woody 3.0 con kernel 2.4.18. non risco a trovare nulla a riguardo e i driver che ho scaricato danno errore di compilazione.
La scheda di rete in oggetto è una scheda di rete integrata sulla scheda madre Asus P5L-MX.
La compilazione produce il risultato seguente:


RetroPCDX:/home/retrouser/downloads/Attansic_L1/src# make install

make
make[1]: Entering directory `/home/retrouser/downloads/Attansic_L1/src'
gcc -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -I/usr/src/kernel-headers-2.4.18-bf2.4/include -I. -DMODVERSIONS -DEXPORT_SYMTAB -include /usr/src/kernel-headers-2.4.18-bf2.4/include/linux/modversions.h -c -o at_main.o at_main.c
In file included from /usr/src/kernel-headers-2.4.18-bf2.4/include/asm/semaphore.h:39,
from /usr/src/kernel-headers-2.4.18-bf2.4/include/linux/fs.h:200,
from /usr/src/kernel-headers-2.4.18-bf2.4/include/linux/capability.h:17,
from /usr/src/kernel-headers-2.4.18-bf2.4/include/linux/binfmts.h:5,
from /usr/src/kernel-headers-2.4.18-bf2.4/include/linux/sched.h:9,
from /usr/src/kernel-headers-2.4.18-bf2.4/include/linux/mm.h:4,
from at.h:15,
from at_main.c:1:
/usr/src/kernel-headers-2.4.18-bf2.4/include/asm/system.h: In function `__set_64bit_var':
/usr/src/kernel-headers-2.4.18-bf2.4/include/asm/system.h:185: warning: dereferencing type-punned pointer will break strict-aliasing rules
/usr/src/kernel-headers-2.4.18-bf2.4/include/asm/system.h:185: warning: dereferencing type-punned pointer will break strict-aliasing rules
at_main.c: In function `at_suspend':
at_main.c:494: warning: dereferencing type-punned pointer will break strict-aliasing rules
at_main.c:495: warning: dereferencing type-punned pointer will break strict-aliasing rules
at_main.c: In function `at_setup_mac_ctrl':
at_main.c:1001: error: structure has no member named `vlgrp'
at_main.c: In function `at_via_workaround':
at_main.c:2971: error: `PCI_COMMAND_INTX_DISABLE' undeclared (first use in this function)
at_main.c:2971: error: (Each undeclared identifier is reported only once
at_main.c:2971: error: for each function it appears in.)
make[1]: *** [at_main.o] Error 1
make[1]: Leaving directory `/home/retrouser/downloads/Attansic_L1/src'
make: *** [default] Error 2
RetroPCDX:/home/retrouser/downloads/Attansic_L1/src#


Da cosa può dipendere?

Grazie
G.

Kaya
02-05-2023, 09:04
Probabilmente stai compilando qualcosa che non va bene con la versione di kernel in uso.
Dai un occhio se una versione più datata funziona: https://sourceforge.net/projects/atl1/files/atl1/atl1-2.0.3/

Hai anche dato un occhio qua? https://atl1.sourceforge.net/
If you run a kernel older than 2.6.21 (except for Centos 5.2), we recommend you use the current vendor driver above. For Centos 5.2, use the prebuilt RPMs below.

Se non risolvi, ti consiglio di usare un altra scheda di rete, compatibile con quella versione del kernel

giando76
02-05-2023, 17:32
Probabilmente stai compilando qualcosa che non va bene con la versione di kernel in uso.
Dai un occhio se una versione più datata funziona: https://sourceforge.net/projects/atl1/files/atl1/atl1-2.0.3/

Hai anche dato un occhio qua? https://atl1.sourceforge.net/


Se non risolvi, ti consiglio di usare un altra scheda di rete, compatibile con quella versione del kernel

Ho a portata di mano una scheda PCIExpress RTL8168E e sono riuscito a far funzionare questa. Ovviamente preferirei utilizzare quella integrata.

Kaya
02-05-2023, 21:08
Ho a portata di mano una scheda PCIExpress RTL8168E e sono riuscito a far funzionare questa. Ovviamente preferirei utilizzare quella integrata.

Sembra che non importi quanto previsto in pci_regs.h (PCI_COMMAND_INTX_DISABLE è definito in questo header)

Dai un occhio qua https://stackoverflow.com/questions/7561509/how-to-add-include-and-lib-paths-to-configure-make-cycle per capire come aggiungerli al compilatore

giando76
03-05-2023, 19:38
Sembra che non importi quanto previsto in pci_regs.h (PCI_COMMAND_INTX_DISABLE è definito in questo header)

Dai un occhio qua https://stackoverflow.com/questions/7561509/how-to-add-include-and-lib-paths-to-configure-make-cycle per capire come aggiungerli al compilatore

Il file pci_regs.h non lo trovo ..

Kaya
03-05-2023, 20:34
Eh allora ti manca di installare (o scaricar vedi tu) tutti i sorgenti/headers del kernel 2.4.18 (essendo che cmq stai compilando un driver, ha bisogno di tutto quello che fa riferimento al kernel per potersi integrare..)

giando76
03-05-2023, 22:47
Eh allora ti manca di installare (o scaricar vedi tu) tutti i sorgenti/headers del kernel 2.4.18 (essendo che cmq stai compilando un driver, ha bisogno di tutto quello che fa riferimento al kernel per potersi integrare..)

kernel-source e kernel-headers che corrispondono alla versione del mio lernel li avevo già installati.

Kaya
04-05-2023, 08:13
Non ho molto per indagare, ma sembra che quell'header sia stato spostato
https://elixir.bootlin.com/linux/v3.19.8/source/include/uapi/linux

Dai un occhio se trovi quel file, altrimenti ti manca qualcosa dai sorgenti, alché ti consiglio di scaricare il kernel source specifico della versione e passargli al compilatore l'altra directory

giando76
04-05-2023, 11:58
Non ho molto per indagare, ma sembra che quell'header sia stato spostato
https://elixir.bootlin.com/linux/v3.19.8/source/include/uapi/linux

Dai un occhio se trovi quel file, altrimenti ti manca qualcosa dai sorgenti, alché ti consiglio di scaricare il kernel source specifico della versione e passargli al compilatore l'altra directory

Il link che hai fornito è per la versione 3.19.8 dove è resente pci_regs.h, mentre sono andato a vedere per la 2.4.18 e quel file pci_regs.h non esiste.

Kaya
04-05-2023, 12:06
Il link che hai fornito è per la versione 3.19.8 dove è resente pci_regs.h, mentre sono andato a vedere per la 2.4.18 e quel file pci_regs.h non esiste.

Allora quei driver lì non sono compatibili con quel kernel per cui stai cercando di compilare.
Se guardi infatti uno degli errori di compilazione è:
at_main.c:2971: error: `PCI_COMMAND_INTX_DISABLE' undeclared (first use in this function)

Solo che quella costante è definitia in pci_regs.h che non esiste in quell versione del kernel
https://elixir.bootlin.com/linux/2.4.18/A/ident/PCI_COMMAND_INTX_DISABLE

Tuttavia ho notato che nella 2.4.26 fa la sua comparsa ( https://elixir.bootlin.com/linux/2.4.26/A/ident/PCI_COMMAND_INTX_DISABLE )
Potresti provare con quella versione come ultimo tentativo.
Dopodichè o resti con la scheda di rete aggiuntiva come stai facendo, oppure cambi scheda madre .

giando76
05-05-2023, 08:30
Allora quei driver lì non sono compatibili con quel kernel per cui stai cercando di compilare.
Se guardi infatti uno degli errori di compilazione è:
at_main.c:2971: error: `PCI_COMMAND_INTX_DISABLE' undeclared (first use in this function)

Solo che quella costante è definitia in pci_regs.h che non esiste in quell versione del kernel
https://elixir.bootlin.com/linux/2.4.18/A/ident/PCI_COMMAND_INTX_DISABLE

Tuttavia ho notato che nella 2.4.26 fa la sua comparsa ( https://elixir.bootlin.com/linux/2.4.26/A/ident/PCI_COMMAND_INTX_DISABLE )
Potresti provare con quella versione come ultimo tentativo.
Dopodichè o resti con la scheda di rete aggiuntiva come stai facendo, oppure cambi scheda madre .

Infatti, il 2.4.27 presente in Debian Sarge 3.1 lo compila e funziona benissimo.
Mi sa che col 2.4.18 debba arrendermi e continuare ad usare la scheda aggiuntiva che ho messo.