QLogix-Treiber unter Linux 2.6.*

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
christiankl
Beiträge: 2
Registriert: 10.12.2007 15:16:12

QLogix-Treiber unter Linux 2.6.*

Beitrag von christiankl » 10.12.2007 15:36:38

Hallo,

ich versuche gerade Qlogic-Treiber unter Linux 2.6.20 zu kompilieren, was leider nicht so ganz so einfach ist...
make -C /usr/src/linux O=/lib/modules/2.6.20-16-generic/build M=$PWD
liefert folgende Ausgabe:

Code: Alles auswählen

/opt/VMETRO/sas-x86-linux/fibre-channel-drivers/x86-linux/qla2xxx_80001/qla2xxx-8.00.01/qla2xxx_conf.c: In Funktion »conf_init«:
/opt/VMETRO/sas-x86-linux/fibre-channel-drivers/x86-linux/qla2xxx_80001/qla2xxx-8.00.01/qla2xxx_conf.c:41: Warnung: Implizite Deklaration der Funktion »inter_module_register«
/opt/VMETRO/sas-x86-linux/fibre-channel-drivers/x86-linux/qla2xxx_80001/qla2xxx-8.00.01/qla2xxx_conf.c: In Funktion »conf_exit«:
/opt/VMETRO/sas-x86-linux/fibre-channel-drivers/x86-linux/qla2xxx_80001/qla2xxx-8.00.01/qla2xxx_conf.c:47: Warnung: Implizite Deklaration der Funktion »inter_module_unregister«
WARNING: "inter_module_register" [/opt/VMETRO/sas-x86-linux/fibre-channel-drivers/x86-linux/qla2xxx_80001/qla2xxx-8.00.01/qla2xxx_conf.ko] undefined!
WARNING: "inter_module_unregister" [/opt/VMETRO/sas-x86-linux/fibre-channel-drivers/x86-linux/qla2xxx_80001/qla2xxx-8.00.01/qla2xxx_conf.ko] undefined!
inter_module_register und inter_module_unregister existieren im 2.6. Kernel ja nicht mehr und sind wohl durch EXPORT_SYMBOL und EXPORT_SYMBOL_GPL ersetzt worden. Ich vermute, daß das ganze deswegen nicht funktioniert. Kann ich den Code entsprechen anpassen, bzw. inter_module_register einfach durch EXPORT_SYMBOL ersetzen, oder ist das was komplizierter? Ich bin im Kernelbereich leider totaler Newbie und dankbar für alle Tipps und Hilfen.

Code: Alles auswählen

Das ist der Code:
/*
 *                  QLOGIC LINUX SOFTWARE
 *
 * QLogic ISP2x00 device driver for Linux 2.6.x
 * Copyright (C) 2003-2004 QLogic Corporation
 * (www.qlogic.com)
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2, or (at your option) any
 * later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 */
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/string.h>

/*
 * Extended configuration parameters
 */
#include "qla_opts.h"

MODULE_DESCRIPTION("QLogic Persistent Binding Data Module");
MODULE_AUTHOR("QLogic Corporation");
MODULE_LICENSE("GPL");

char *qla_persistent_str = NULL ;
CONFIG_BEGIN("qla2xxx_conf")
CONFIG_ITEM("OPTIONS", "")
CONFIG_END

static int conf_init(void)
{
	QLOPTS_CONFIGURE(qla_persistent_str);
	inter_module_register("qla2xxx_conf", THIS_MODULE, qla_persistent_str);
	return 0;
}

static void conf_exit (void)
{
	inter_module_unregister("qla2xxx_conf");
}

module_init(conf_init);
module_exit(conf_exit);
Danke und Gruß,
Christian

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 10.12.2007 16:38:33

Willkommen im Forum!
Das ganze ist wohl etwas komplizierter, jede Funktion muss einzeln mit EXPORT_SYMBOL(_GPL) exportiert werden. Siehe z.B.:
http://ezs.kr.hs-niederrhein.de/Treiber ... ing01.html
Hast du einen Link zu der Software, die du zu kompilieren versuchst?

christiankl
Beiträge: 2
Registriert: 10.12.2007 15:16:12

Beitrag von christiankl » 11.12.2007 07:25:36

Hallo,

mist, hab mir schon gedacht, daß das nicht so einfach wird...
Einen Link zu der Software hab ich leider nicht. Die Software wurde uns von der Firma WMetro zusammen mit der Hardware geliefert. Die schreiben in ihrem Manual, daß die Systemvoraussetzung Linux mit 2.6er Kernel sei und geben eine mehr oder weniger schlechte Installationsanleitung für SUSE Enterprise-Server 9 und Fedora 3. Also nicht gerade sehr Hilfreich. Da ich aber nicht mit einem total veralteten Fedora arbeiten will und sonst hier auch alles unter Debian/Ubuntu läuft, muss ich daß ganze jetzt hier unter Debian/Ubuntu ans laufen bringen. Es gibt sogar in den Sources einen Treiber qla2x00.deb, der aber leider nur für den 2.4er Kernel ist.

Gruß,
Christian

Antworten