Ethernet card found but not connected, new install

Here’s the link: 0.000000] Linux version 2 - Schrod - dmesg - 0Lgk30sp - Pastebin.com](http://pastebin.com/0Lgk30sp)

On 06/06/2010 04:16 AM, Schrod wrote:
>
> Here’s the link: ’ 0.000000] Linux version 2 - Schrod - dmesg -
> 0Lgk30sp - Pastebin.com’ (http://pastebin.com/0Lgk30sp)

In line 676 of the file, one sees


    4.051051] tg3 0000:02:00.0: (unregistered net_device): Problem
fetching invariants of chip, aborting

That is the reason for no network - your particular chip is different
than what the kernel can handle.

I recommend that you create an entry in the kernel bugzilla data base.
Be sure to put the above line and the ones above it that mention tg3,
and that you are using 2.6.34 from openSUSE 11.3 M7. That will get the
appropriate kernel guru involved. While that is happening, you should
install the kernel sources and the software needed to compile a kernel
module as whatever fixes that are generated will involve patches to the
current driver.

I have downloaded the file linux-3.105h.zip from the Broadcom site. Is
that the one you think is for your device? I will see if I can locate a
section that handles the special quirks of your unit.

I have created an entry in the kernel bugzilla data base as you suggested.

You have the Broadcom file that I thought might help.

Please will you advise on installing the kernel sources and the software needed to compile a kernel module. Can I do it on my old machine that has internet access and then transfer to the new machine or do I need to get rpm’s for the new machine? What do I need? (I’ve not done anything like this before so I need a bit of hand holding!)

Thanks again for your efforts, Schrod.

On 06/06/2010 11:56 AM, Schrod wrote:
>
> I have created an entry in the kernel bugzilla data base as you
> suggested.
>
> You have the Broadcom file that I thought might help.
>
> Please will you advise on installing the kernel sources and the
> software needed to compile a kernel module. Can I do it on my old
> machine that has internet access and then transfer to the new machine or
> do I need to get rpm’s for the new machine? What do I need? (I’ve not
> done anything like this before so I need a bit of hand holding!)

Do you have a DVD from which you did the install? If so, you should be
able to install what you need.

From YaST => Software Management, click on View and select Patterns.
Frpm “Base Development”, select gcc and make. From C/C++ development,
select patterns - openSUSE development_C_C++, and from Linux Kernel
Development, select Kernel-source, patchutils, patterns-openSUSE
development, and quilt. If any of these are not on the DVD, then we will
need to download the rpm files on the other system, and sneakernet them
to this machine.

The driver from the Broadcom site is V1.05 whereas the one in the kernel
is 1.10. In fact, their version will not build on the current kernel.

Once you have the sources and the utils on your machine, then you should
cd to /usr/src and change the ownership of the kernel source files, then
build the kernel. The commands are


sudo  chown -R <user>:users linux-2.6.34-8
cd  linux-2.6.34-8
cp  /proc/config.gz  config.gz
gunzip  config.gz
cp config  .config
make

In the chown command, replace <user> with your user name, which I think
is schrod. The remainder of the commands will get the configuration you
are now running and build that kernel. If you have more than one
processor, replace the “make” with “make -jN”, where N is one larger
than the number of CPUs, i.e. -j3 for a dual-processor system.

While you are doing the above, I will be looking at the routine that
reads the invariants to see what diagnostics we might get about the
reason for failure.

I have the installation DVD, all installed from it :slight_smile:

Then I went to the dentist :frowning:

This may be why I fell at the final hurdle and forgot to add -j5 to the make instruction. Will this matter and should I repeat with the correction?

Thanks for your excellent instructions.

On 06/07/2010 08:36 AM, Schrod wrote:
>
> I have the installation DVD, all installed from it :slight_smile:
>
> Then I went to the dentist :frowning:
>
> This may be why I fell at the final hurdle and forgot to add -j5 to the
> make instruction. Will this matter and should I repeat with the
> correction?
>
> Thanks for your excellent instructions.

No, the -j5 just speeds up the process by running compilations in
parallel. It ends up in the same place in the end. Once the compile is
finished, then there is one additional step:


sudo  make modules_install install

This installs the “new” kernel in GRUB. When you reboot, you will be
running the one you built. When you reach that step, I will have a patch
to tell us more info about why initialization is failing.

New kernel installed and it still works.

Looking forward to my next step.

On 06/07/2010 10:46 AM, Schrod wrote:
>
> New kernel installed and it still works.
>
> Looking forward to my next step.

Congratulations.

Here is a patch file to try:


Index: linux-2.6/drivers/net/tg3.c
===================================================================
--- linux-2.6.orig/drivers/net/tg3.c
+++ linux-2.6/drivers/net/tg3.c
@@ -13368,13 +13368,17 @@ static int __devinit tg3_get_invariants(
tp->tg3_flags3 |= TG3_FLG3_USE_PHYLIB;

err = tg3_mdio_init(tp);
-       if (err)
+       if (err) {
+               printk(KERN_ERR "tg3: mdio init failed
");
return err;
+       }

if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 &&
(tp->pci_chip_rev_id != CHIPREV_ID_5717_A0 ||
-                (tp->tg3_flags2 & TG3_FLG2_MII_SERDES)))
+                (tp->tg3_flags2 & TG3_FLG2_MII_SERDES))) {
+               printk(KERN_ERR "tg3: Chip not supported
");
return -ENOTSUPP;
+       }

/* Initialize data/descriptor byte/word swapping. */
val = tr32(GRC_MODE);

As posting here will likely mess up the white space, I also posted this
patch at http://uploading.com/files/9421m74f/diagnose_tg3/.

Copy that file to your souce directory (/usr/src/linux-2.6.34-8) as a
file named diagnose_tg3 and type the commands


patch  -p1  -i  diagnose_tg3
make
sudo make modules_install install

After you reboot, enter the command ‘dmesg | grep tg3’ and post the output.

I’m having problems getting through to your link with the page repeatedly telling me:

Parallel Download
Your IP address is currently downloading a file.
Please wait till the download process is completed.

But nothing was downloading or downloaded.

I tried copying the text that appeared here but it told me it was malformed - so I suppose the white space was incorrect as you said. My efforts to guess what was wrong did not succeed.

I will continue to try the download but if you have an alternative way to get the patch to me it might be quicker. Sorry about this.

On 06/07/2010 02:46 PM, Schrod wrote:
>
> I’m having problems getting through to your link with the page
> repeatedly telling me:
>> Parallel Download
>> Your IP address is currently downloading a file.
>> Please wait till the download process is completed.
>
> But nothing was downloading or downloaded.
>
> I tried copying the text that appeared here but it told me it was
> malformed - so I suppose the white space was incorrect as you said. My
> efforts to guess what was wrong did not succeed.
>
> I will continue to try the download but if you have an alternative way
> to get the patch to me it might be quicker. Sorry about this.

I did not try to download the file after I put it there. The site was
free, but a real ripoff.

Please send me a “private mail” on the openSUSE forums with your Email
address. I am assuming that you do not want to post it openly here.

“Private mail” on the openSUSE forums - sent with email address.

Thanks for the patch. Here are the results:

schrod@linux-92sd:~> dmesg | grep tg3
5.574611] tg3.c:v3.108 (February 17, 2010)
5.574626] tg3 0000:02:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
5.574633] tg3 0000:02:00.0: setting latency timer to 64
5.576674] tg3 mdio bus: probed
5.576677] tg3 0000:02:00.0: (unregistered net_device): No PHY devices
5.576693] tg3: mdio init failed
5.576733] tg3 0000:02:00.0: (unregistered net_device): Problem fetching invariants of chip, aborting
5.576835] tg3 0000:02:00.0: PCI INT A disabled
schrod@linux-92sd:~>

I hope they mean more to you than they do to me!

On 06/08/2010 10:26 AM, Schrod wrote:
>
> Thanks for the patch. Here are the results:
>
>> schrod@linux-92sd:~> dmesg | grep tg3
>> 5.574611] tg3.c:v3.108 (February 17, 2010)
>> 5.574626] tg3 0000:02:00.0: PCI INT A -> GSI 19 (level, low) ->
>> IRQ 19
>> 5.574633] tg3 0000:02:00.0: setting latency timer to 64
>> 5.576674] tg3 mdio bus: probed
>> 5.576677] tg3 0000:02:00.0: (unregistered net_device): No PHY
>> devices
>> 5.576693] tg3: mdio init failed
>> 5.576733] tg3 0000:02:00.0: (unregistered net_device): Problem
>> fetching invariants of chip, aborting
>> 5.576835] tg3 0000:02:00.0: PCI INT A disabled
>> schrod@linux-92sd:~>
>>
>
> I hope they mean more to you than they do to me!

I’m not sure what it means, but the “mdio init failed” is what we wanted
to know. I’ll send another patch to probe that failure.

Results of second patch:

schrod@linux-92sd:~> dmesg | grep tg3
5.585030] tg3.c:v3.108 (February 17, 2010)
5.585046] tg3 0000:02:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
5.585055] tg3 0000:02:00.0: setting latency timer to 64
5.587676] tg3 mdio bus: probed
5.587679] tg3 0000:02:00.0: (unregistered net_device): No PHY devices
5.587696] tg3: mdio init failed
5.587702] tg3 0000:02:00.0: (unregistered net_device): Problem fetching invariants of chip, aborting
5.587723] tg3 0000:02:00.0: PCI INT A disabled
schrod@linux-92sd:~>

Looks awfully similar to the last one to me.

My networking problems have now been resolved and here is what was needed.

I tried the beta distribution version openSUSE 11.3 Milestone 7 (64 bit) to see if a newer version of the kernel would work - it didn’t, but the bug was known about and a workaround found.

So I reinstalled Suse 11.2 and got an rpm of a newer kernel:

kernel-desktop-2.6.34-9.1.x86_64.rpm

This was implemented using:

sudo rpm -iv kernel-desktop-2.6.34-9.1.x86_64.rpm

On reboot and using Yast, I set up as much of the networking as I could but the option to configure the card was still not available.

Then I tried the following:

sudo /sbin/modprobe -rv tg3
sudo /sbin/modprobe -v broadcom
sudo /sbin/modprobe -v tg3

This then enabled Yast to let me edit the card configuration. This brought the network up and it restarts after rebooting too!

I have now installed lots of software and patches with only one hiccup and that was a patch relating to the kernel that I was not using so I ignored it.

I would like to thank Larry Finger for all his help in resolving this problem.

Schrod