[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

2.6.x Kernel selber bauen



Hallo!


Wenn Ihr Euch die untere Mail durchlesst, dann seht Ihr, dass ich nen eigenen Kernel bauen muss. Doch hatte ich dies noch nie gemacht und wollte es eigentlich auch nie, auch wenn man es mal gemacht haben sollte ;)

Damit es nun auch funktioniert und weil ich wie gesagt mich noch nie dafür interessiert habe, wollte ich mal nach einer deutschen Anleitung speziell für Debian (unstable) fragen.

Hat jemand einen Link für mich? Oder ist es nicht so schwer wie ich denke?


Ralph

-------- Original Message --------
Subject: Re: 2.6.6 Kernel + Adaptec aic7890/91 = Kernel panic
Date: Wed, 04 Aug 2004 17:40:24 -0400
From: Luben Tuikov <luben_tuikov@adaptec.com>
To: Ralph Bergmann <ralph@dasralph.de>
CC: Justin T. Gibbs <gibbs@scsiguy.com>
References: <40C30644.2020307@dasralph.de> <166998953.1086771720@stonetable> <40C76B6F.3010103@dasralph.de> <123170000.1086819395@aslan.scsiguy.com> <41113ECF.3050506@dasralph.de>

Hi Ralph,

Can you please apply the attached patch?
It's against 2.6.7 kernel and you should apply it like this:

# cd /usr/src/linux-2.6.7
# patch -p0 < the_patch_file

then compile and run the kernel/module, and send
us the output.

Thanks.

Ralph Bergmann wrote:
Justin T. Gibbs wrote:

 >>Justin T. Gibbs wrote:
 >>
 >>
 >>>...  Can you provide the output of
 >>>"lspci -vv -n" which will indicate the PCI ID information of your
 >>>controller?
 >>
 >>
 >>yes of course
 >>
 >>0000:02:01.0 Class 0100: 9005:0010
 >>         Subsystem: 9005:a180
 >
 >
 > Hmm.  Those IDs should be supported in the driver.  Can you add
 > printk statements in aic7xxx_osm_pci.c just before each location
 > where the driver returns "-ENODEV".  This should help narrow down
 > why the driver is refusing to attach to the controller.  If I
 > had to guess, I would say that pci_enable_device() is failing for
 > some strange reason.
 >
 > --
 > Justin
 >

First of all I have to excuse, because you have to wait so long for my
answer. But I've got good news: the problem is partially fixed. I put
the scsi-adapter in another pci-slot (now a 32bit one in contradiction
to the 64bit one I used before), and now it's working. But I've got some
questions concerning this:

1. should it have worked, no matter, which kind of pci-slot I use? When
i used the 2.4 kernel, there were no error-messages, but when i switched
to 2.6 kernel, I run into trouble as you know... So is it a
kernel-problem or a hardware-thing?

2. And if you want to have the specific output nevertheless,  I would
prefer, that you send me the special adjusted file I have to use,
because I have no idea about kernel-programming at all...

Ralph


--
Luben Tuikov <luben_tuikov@adaptec.com>
Adaptec, Inc., RTP, 919-287-2071


--- drivers/scsi/aic7xxx/aic7xxx_osm_pci.c.old	2004-08-04 17:33:12.000000000 -0400
+++ drivers/scsi/aic7xxx/aic7xxx_osm_pci.c	2004-08-04 17:37:48.000000000 -0400
@@ -130,13 +130,17 @@
 	}
 	if (ahc != NULL) {
 		/* Skip duplicate. */
+		printk(KERN_NOTICE "%s: skip duplicate\n", __FUNCTION__);
 		return (-ENODEV);
 	}
 
 	dev = aic_pci_dev_to_dev(pdev);
 	entry = ahc_find_pci_device(dev);
-	if (entry == NULL)
+	if (entry == NULL) {
+		printk(KERN_NOTICE "%s: device not found in our tables\n",
+		       __FUNCTION__);
 		return (-ENODEV);
+	}
 
 	/*
 	 * Allocate a softc for this card and
@@ -148,16 +152,22 @@
 		aic_get_pci_slot(dev),
 		aic_get_pci_function(dev));
 	name = malloc(strlen(buf) + 1, M_DEVBUF, M_NOWAIT);
-	if (name == NULL)
+	if (name == NULL) {
+		printk(KERN_NOTICE "%s: out of memory\n", __FUNCTION__);
 		return (-ENOMEM);
+	}
 	strcpy(name, buf);
 	ahc = ahc_alloc(NULL, name);
-	if (ahc == NULL)
+	if (ahc == NULL) {
+		printk(KERN_NOTICE "%s: out of memory\n", __FUNCTION__);
 		return (-ENOMEM);
+	}
 	ahc->dev_softc = dev;
 
 	if (pci_enable_device(pdev)) {
 		ahc_free(ahc);
+		printk(KERN_NOTICE "%s: couldn't enable device\n",
+		       __FUNCTION__);
 		return (-ENODEV);
 	}
 	pci_set_master(pdev);
@@ -186,6 +196,8 @@
 	}
 	error = ahc_pci_config(ahc, entry);
 	if (error != 0) {
+		printk(KERN_NOTICE "%s: couldn't config the device (%d)\n",
+		       __FUNCTION__, error);
 		ahc_free(ahc);
 		return (-error);
 	}
@@ -199,6 +211,7 @@
 		return (-ENODEV);
 #endif
 	}
+	printk(KERN_NOTICE "%s: returns ok (0)\n", __FUNCTION__);
 	return (0);
 }
 


Reply to: