SMC9452TX a kernel vyssi nez 2.4.2 - nelze prelozit ovladac...

Jirka Kosina jikos na jikos.cz
Pondělí Květen 6 13:42:07 CEST 2002


On Mon, 6 May 2002, Martin Duda wrote:

> http://www.smc.com/index.cfm?action=tech_support_drivers_downloads
> Po rozbaleni zdrojaku jsem zjistil podporu jader verze 2.2.x a 2.4.2. 
> Zkusil jsem tedy nejprve prelozit ovladace pro jadro 2.2.20 a bez 
> problemu, karta chodi. Potom jsem zkousel prelozit ovladace pro jadro 
> 2.4.2, take se povedlo. Ovsem problem nastal pri pokusu prelozit 
> ovladace pro 2.4.7 az 2.4.18 (cista jadra i jadra z RH distribuce). 
> Preklad vzdy konci nasledujici hlaskou
> >cc -D__KERNEL__ -DSMC_SMC94X2TX -DMODULE -DCLONE -D__NO_VERSION__ -D_DUMP -DSINGLE_PACKET -D_DP83820_ -DINTR_HOLDOFF -DMEMMAPPED_IO -D_DBG -DPHY_INTR -DFAILURE_MESSAGES -DSTATISTICS -DASSERTION -DCHECKSUM -DERRDEBUG -O -Wall -I. -I/usr/src/linux/include/ -g -w    -c -o sp.o sp.c
> >In file included from /usr/src/linux/include/linux/highmem.h:5,
> >                 from /usr/src/linux/include/linux/skbuff.h:27,
> >                 from /usr/src/linux/include/linux/netdevice.h:146,
> >                 from nsmtypes.h:22,
> >                 from sp.c:18:
> >/usr/src/linux/include/asm/pgalloc.h: In function `get_pgd_fast':
> >/usr/src/linux/include/asm/pgalloc.h:78: `boot_cpu_data_R0657d037' undeclared (first use in this function)
> Protoze nejsem zadny kernel guru, pouze se domnivam, ze tyto problemy 
> souviseji se zmenou memory managementu ktera probleha u jader 2.4.x?

Tuto sitovku jsem pred nejakou dobou take zprovoznoval s temi drivery z 
webu na ktery jste posilal URL, dostaval jsem presne stejnou chybu jako 
Vy.
Zmenou memory managementu to asi nebude, ta chyba je v datovych 
strukturach ktere se tykaji udaju o boot procesoru. 
Pamatuji si, ze jsem tenkrat nemel vubec cas to zkoumat (jak zdrojaky toho 
modulu, tak prislusne misto ve zdrojacich jadra), nicmene pomohlo tohle:

**

--- ./processor.h.old	Thu Apr 25 19:29:25 2002
+++ ./processor.h	Mon May  6 13:29:55 2002
@@ -80,6 +70,7 @@
  */

 extern struct cpuinfo_x86 boot_cpu_data;
+#define boot_cpu_data_R0657d037 boot_cpu_data
 extern struct tss_struct init_tss[NR_CPUS];

 #ifdef CONFIG_SMP

**

Vim ze je to desna prasarna, ale jako docasny workaround to pomohlo, modul 
se zkompiloval, a funguje. (nekde bych ho vyhrabal zkompilovany pro 
2.4.16, mate-li zajem). Ovsem chtelo by to 

1) najit cas a chut se podivat na to v cem je problem (tipoval bych na 
nejake zmateni linkeru, modversions, apod.)
2) dokopat autory modulu, aby s tim neco udelali


Ovsem uplne nejlepsi reseni je IMHO pouzit ns83820.o, ktery je primo 
zahrnut ve vanilla jadrech, a s touto sitovkou funguje. ;)

-- 
JiKos.




Další informace o konferenci Linux