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