Ethernet errors/crash using SiS integrated controller on 2.4.18

Ethernet errors/crash using SiS integrated controller on 2.4.18

Post by JeffKosow.. » Wed, 30 Oct 2002 22:36:25



Starting up ethernet on my system causes weird errors and spawns a
large number of unkillable processes which ultimately slow down and
crash my system.

I am running RH8/kernel 2.4.18 on an ASUS P4S8X board with a SiS963 SouthBridge
chipset which includes an integrated LAN controller.

dmesg yield the following relevant info:

sis900.c: v1.08.04 4/25/02
divert: allocating divert_blk for eth0
eth0: Error EERPOM read 0

Then when I run redhat-config-network, I get that it cannot activate
the eth0 controller followed by the spawning of multiple 'bash',
'grep', and 'awk' processes. These processes cannot be killed (even by
kill -9) and prevent system shutdown.

syslog then shows the following errors:
-----------------------
insmod: /lib/modules/2.4-18/kernel/drivrs/net/sis900.o: insmod eth0 failed
/etc/hotplug/net.agent: NET unregister event not supported
/etc/hotplug/net.agent: NET unregister event not supported
/etc/hotplug/net.agent: invoke ifup eth0
/etc/hotplug/net.agent: invoke ifup eth0
sis900.c: v1.08.04 4/25/02
kernel eth0: Error EERPOM read 0
/etc/hotplug/net.agent: NET unregister event not supported
/etc/hotplug/net.agent: invoke ifup eth0
sis900.c: v1.08.04 4/25/02
kernel eth0: Error EERPOM read 0
/etc/hotplug/net.agent: NET unregister event not supported
/etc/hotplug/net.agent: invoke ifup eth0
[This series of error messages then repeats endlessly]

also get a number of errors like:
insmod: /lib/modules/2.4-18/kernel/drivrs/net/sis900.o: init_module: No such device
insmod: Hint: insmod errors can be caused by incorrect module parameters...
----------------------

Any thoughts of what might be going on here?
I am dead in the water without ethernet connection.

Thanks,
Jeff

 
 
 

Ethernet errors/crash using SiS integrated controller on 2.4.18

Post by dav.. » Wed, 30 Oct 2002 22:40:28



> I am running RH8/kernel 2.4.18 on an ASUS P4S8X board with a SiS963
> SouthBridge chipset which includes an integrated LAN controller.
> kernel eth0: Error EERPOM read 0

It looks like your integrated network card is not supported or the
driver you are using is not good enough. You can try and look for a
better driver or disable that and use another (external) network card.

Davide

 
 
 

Ethernet errors/crash using SiS integrated controller on 2.4.18

Post by Andy Wende » Thu, 31 Oct 2002 01:36:37



>Starting up ethernet on my system causes weird errors and spawns a
>large number of unkillable processes which ultimately slow down and
>crash my system.

>I am running RH8/kernel 2.4.18 on an ASUS P4S8X board with a SiS963 SouthBridge
>chipset which includes an integrated LAN controller.

>dmesg yield the following relevant info:

>sis900.c: v1.08.04 4/25/02
>divert: allocating divert_blk for eth0
>eth0: Error EERPOM read 0

>Then when I run redhat-config-network, I get that it cannot activate
>the eth0 controller followed by the spawning of multiple 'bash',
>'grep', and 'awk' processes. These processes cannot be killed (even by
>kill -9) and prevent system shutdown.

>syslog then shows the following errors:
>-----------------------
>insmod: /lib/modules/2.4-18/kernel/drivrs/net/sis900.o: insmod eth0 failed
>/etc/hotplug/net.agent: NET unregister event not supported
>/etc/hotplug/net.agent: NET unregister event not supported
>/etc/hotplug/net.agent: invoke ifup eth0
>/etc/hotplug/net.agent: invoke ifup eth0
>sis900.c: v1.08.04 4/25/02
>kernel eth0: Error EERPOM read 0
>/etc/hotplug/net.agent: NET unregister event not supported
>/etc/hotplug/net.agent: invoke ifup eth0
>sis900.c: v1.08.04 4/25/02
>kernel eth0: Error EERPOM read 0
>/etc/hotplug/net.agent: NET unregister event not supported
>/etc/hotplug/net.agent: invoke ifup eth0
>[This series of error messages then repeats endlessly]

>also get a number of errors like:
>insmod: /lib/modules/2.4-18/kernel/drivrs/net/sis900.o: init_module: No such device
>insmod: Hint: insmod errors can be caused by incorrect module parameters...
>----------------------

>Any thoughts of what might be going on here?
>I am dead in the water without ethernet connection.

>Thanks,
>Jeff

Running the same chip set on a different MB with no issues, under
Mandrake 9.0.  Something you might want to try (I had to do this with
built in sound).  Re-boot, go to your CMOS setup, disable the network
device, reboot, re-start the network device, and go from there.
 
 
 

Ethernet errors/crash using SiS integrated controller on 2.4.18

Post by Witek Jachimczy » Thu, 31 Oct 2002 05:04:58


Hi,

This hack should do the trick for you as far as the network chip goes.

BTW. Did you get the sound to work? Try i810 driver (the only problem is
that I can't get the mixer to work, ie no volume control).

This is just a copy of my previous post:
===============================

Hi,

It's not a proper fix, but it will get you running.
In order to be included in the kernel, someone would
have to figure out how to search for the EEPROM
(contact SiS) or let the module for SiS900 take a
mac address (workaround). Any valunteers?

I hope this helps other people.  Send me an e-mail
if it worked for you (wi...@alum.wpi.edu).

This is an exchange I had with someone on this topic
(it explains what I did):

============================= from me
Hi Louis,

My name is Witek Jachimczyk.  I found your post on the web about sis900.

I just spent three days trying to figure out what was wrong with my Sis900
 and P4S8X.  Did you figure it out?

Well, I got something:

Try this:  edit  kernel file   <your linux src dir>/drivers/net/sis900.c
In this file, search for function sis900_get_mac_addr

and replace it with this:

static int __devinit sis900_get_mac_addr(struct pci_dev * pci_dev, struct
net_device *net_dev)
{
        long ioaddr = pci_resource_start(pci_dev, 0);
        u16 signature;
        int i;

        /* check to see if we have sane EEPROM */
        signature = (u16) read_eeprom(ioaddr, EEPROMSignature);

        signature = 1; /* fake it */

        if (signature == 0xffff || signature == 0x0000) {
                printk (KERN_INFO "%s: Error EEPROM read %x\n",
                        net_dev->name, signature);
                return 0;
        }

        /* get MAC address from EEPROM */
        /*
        for (i = 0; i < 3; i++)
            ((u16 *)(net_dev->dev_addr))[i] =
            read_eeprom(ioaddr, i+EEPROMMACAddr);
        */

        /* fake it */
        ((u16 *)(net_dev->dev_addr))[0] = 0xE000;
        ((u16 *)(net_dev->dev_addr))[1] = 0xA418;
        ((u16 *)(net_dev->dev_addr))[2] = 0x211F;

        return 1;

}

If you want your "real" MAC address then get the card MAC address from
windowz:

by typing ipconfig /all

then you can put this MAC address in the routine above.

Anyway, recompile the kernel after this, and restart your system.  Please
let
me know if this worked for you.  If it did, then we need to post it on the
web.  Somebody has to figure out how to read the proper address from the
EEPROM instead of doing what I did.....

If you could post a followup message to the one you wrote, that would also
be great.

Regards,
good luck,

Witek

PS.  My sis900 works great after this hack!

=====================  from Louise

Hiya!

Glad to see that you got your sis900 up and running!

I did some poking around, and came to the conclusion that there is no
driver available for the sis900 at this point.  I solved my problem by
buying a NIC and installing it.  I'm working from it now...

Your "hack" looks interesting.  I must admit that I am a complete novice
when it comes to firmware, device drivers, and kernel mods:  I'm happy
enough when I can get my standard development environments to work, much
less the environs for developing parts of the OS.  This, and a lack of
time, means that it may be some while before I can get around to testing
your fix.  OTOH, I do have some questions....   8-)

On Mon, 2002-10-28 at 05:34, Witek Jachimczyk wrote:
> Hi Louis,

> My name is Witek Jachimczyk.  I found your post on the web about sis900.

> I just spent three days trying to figure out what was wrong with my Sis900
>  and P4S8X.  Did you figure it out?

> Well, I got something:

> Try this:  edit  kernel file   <your linux src dir>/drivers/net/sis900.c
> In this file, search for function sis900_get_mac_addr

> and replace it with this:

> static int __devinit sis900_get_mac_addr(struct pci_dev * pci_dev, struct
> net_device *net_dev)
> {
>       long ioaddr = pci_resource_start(pci_dev, 0);
>       u16 signature;
>       int i;

This is the first area I'm tripping over...

>       /* check to see if we have sane EEPROM */
>       signature = (u16) read_eeprom(ioaddr, EEPROMSignature);

This first line seems to load 'signature' from the EEPROM.

>       signature = 1; /* fake it */

Then, we over-write the value that we just read?

>       if (signature == 0xffff || signature == 0x0000) {
>               printk (KERN_INFO "%s: Error EEPROM read %x\n",
>                       net_dev->name, signature);
>               return 0;
>       }

And test the over-written value?  Won't the results of this check always
be the same?

Am I missing some bit of hardware black magic here? (No pun intended...)

- Show quoted text -

>       /* get MAC address from EEPROM */
>       /*
>       for (i = 0; i < 3; i++)
>           ((u16 *)(net_dev->dev_addr))[i] =
>           read_eeprom(ioaddr, i+EEPROMMACAddr);
>       */

>       /* fake it */
>       ((u16 *)(net_dev->dev_addr))[0] = 0xE000;
>       ((u16 *)(net_dev->dev_addr))[1] = 0xA418;
>       ((u16 *)(net_dev->dev_addr))[2] = 0x211F;

>       return 1;
> }

> If you want your "real" MAC address then get the card MAC address from
> windowz:

> by typing ipconfig /all

> then you can put this MAC address in the routine above.

> Anyway, recompile the kernel after this, and restart your system.  
> Please let
> me know if this worked for you.  If it did, then we need to post it on the
> web.  Somebody has to figure out how to read the proper address from the
> EEPROM instead of doing what I did.....

> If you could post a followup message to the one you wrote, that would
> also be great.

> Regards,
> good luck,

> Witek

> PS.  My sis900 works great after this hack!

> -------------------------------------------------------

I definitely think that you should post this to the web. If folks are
running into this problem out there, then they need some sort of fix for
it other than the one that I employed.
I might add that my LAN situation appears to be a bit different than
yours:  I'm sitting behind a router here, and have control over those
aspects of my net that I know how to control.  I can get my real MAC
address from the router, for instance, if necessary.
OBTW:  do you get the "can't find the driver" error message when you
install your OS, or does it install a driver which simply doesn't work?

Thanks,

Louis

===================== my response

- Show quoted text -

> > net_device *net_dev)
> > {
> >     long ioaddr = pci_resource_start(pci_dev, 0);
> >     u16 signature;
> >     int i;

> This is the first area I'm tripping over...

> >     /* check to see if we have sane EEPROM */
> >     signature = (u16) read_eeprom(ioaddr, EEPROMSignature);

> This first line seems to load 'signature' from the EEPROM.

> >     signature = 1; /* fake it */

> Then, we over-write the value that we just read?

Exactly, might as well not call the read_eeprom.  I left it there just to
explicitly show what I am doing.  Basically, the linux driver exists, but
on P4S8X the eeprom must be in some other location and therefore
this routine fails.  I bypass it, so that the driver does not exit at this
point.

> >     if (signature == 0xffff || signature == 0x0000) {
> >             printk (KERN_INFO "%s: Error EEPROM read %x\n",
> >                     net_dev->name, signature);
> >             return 0;
> >     }

> And test the over-written value?  Won't the results of this check always
> be the same?

Same as before, just to show what it used to be.  This code is basically dead
after signature was hardcoded to 1.  

- Show quoted text -

> Am I missing some bit of hardware black magic here? (No pun intended...)

> >     /* get MAC address from EEPROM */
> >     /*
> >     for (i = 0; i < 3; i++)
> >         ((u16 *)(net_dev->dev_addr))[i] =
> >         read_eeprom(ioaddr, i+EEPROMMACAddr);
> >     */

> >     /* fake it */
> >     ((u16 *)(net_dev->dev_addr))[0] = 0xE000;
> >     ((u16 *)(net_dev->dev_addr))[1] = 0xA418;
> >     ((u16 *)(net_dev->dev_addr))[2] = 0x211F;

> >     return 1;
> > }

> > If you want your "real" MAC address then get the card MAC address from
> > windowz:

> > by typing ipconfig /all

> > then you can put this MAC address in the routine above.

> > Anyway, recompile the kernel after this, and restart your system.  Please
> > let me know if this worked for you.  If it did, then we need to post it
> > on the web.  Somebody has to figure out how to read the proper address
> > from the EEPROM instead of doing what I did.....

> > If you could post a followup message to the one you wrote, that would
> > also be great.

> > Regards,
> > good luck,

> > Witek

> > PS.  My sis900 works great after this hack!

> > -------------------------------------------------------

> I definitely think that you should post this to the web. If folks are
> running into this problem out there, then they need some sort of fix for
> it other than the one that I employed.

I should post our e-mails that will be easy.

> I might add that my LAN situation appears to be a bit different than
> yours:  I'm sitting behind a router here, and have control over those
> aspects of my net that I know how to control.  I can get my real MAC
> address from the router, for instance, if necessary.
> OBTW:  do you get the "can't find the driver" error message when you
> install your OS, or does it install a driver which simply doesn't work?

I run RH7.3 but it's nonstandard, because I modified it quite a bit.  It did
not attempt to load any drivers for my network chip.  I compiled the modules
and installed them myself.

Good luck,

Witek

- Show quoted text -

Florian Leitner <f...@chello.at> wrote:
> Hi everybody,
> I am using SuSE 8.0 Pro/Kernel 2.4.18-4GB on my new machine and can not
> install the sis900.o kernel module.
> I have an Asus P4S8X MB with the SiS963 S/B, which also supports a
> 10/100 PCI FastEthernet LAN. SuSE even can detect this

...

read more »

 
 
 

Ethernet errors/crash using SiS integrated controller on 2.4.18

Post by D. Stuss » Thu, 31 Oct 2002 08:54:17



Quote:>Starting up ethernet on my system causes weird errors and spawns a
>large number of unkillable processes which ultimately slow down and
>crash my system.

>I am running RH8/kernel 2.4.18 on an ASUS P4S8X board with a SiS963 SouthBridge
>chipset which includes an integrated LAN controller.

>dmesg yield the following relevant info:

>sis900.c: v1.08.04 4/25/02
>divert: allocating divert_blk for eth0
>eth0: Error EERPOM read 0

>Then when I run redhat-config-network, I get that it cannot activate
>the eth0 controller followed by the spawning of multiple 'bash',
>'grep', and 'awk' processes. These processes cannot be killed (even by
>kill -9) and prevent system shutdown.

>syslog then shows the following errors:
>-----------------------
>insmod: /lib/modules/2.4-18/kernel/drivrs/net/sis900.o: insmod eth0 failed
>/etc/hotplug/net.agent: NET unregister event not supported
>/etc/hotplug/net.agent: NET unregister event not supported
>/etc/hotplug/net.agent: invoke ifup eth0
>/etc/hotplug/net.agent: invoke ifup eth0
>sis900.c: v1.08.04 4/25/02
>kernel eth0: Error EERPOM read 0
>/etc/hotplug/net.agent: NET unregister event not supported
>/etc/hotplug/net.agent: invoke ifup eth0
>sis900.c: v1.08.04 4/25/02
>kernel eth0: Error EERPOM read 0
>/etc/hotplug/net.agent: NET unregister event not supported
>/etc/hotplug/net.agent: invoke ifup eth0
>[This series of error messages then repeats endlessly]

>also get a number of errors like:
>insmod: /lib/modules/2.4-18/kernel/drivrs/net/sis900.o: init_module: No such device
>insmod: Hint: insmod errors can be caused by incorrect module parameters...
>----------------------

>Any thoughts of what might be going on here?
>I am dead in the water without ethernet connection.

Obviously, you need to re-flash your EEPROM.