LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Networking
User Name
Password
Linux - Networking This forum is for any issue related to networks or networking.
Routing, network cards, OSI, etc. Anything is fair game.

Notices


Reply
  Search this Thread
Old 01-06-2007, 02:11 PM   #16
WillyW
Member
 
Registered: Dec 2006
Posts: 47

Original Poster
Rep: Reputation: 15

Quote:
Originally Posted by MasterC

- - -
What you are looking for when comparing 2 distros. First thing I'd check is the difference in loaded modules. They very likely won't be in order, but doing an "/sbin/lsmod > lsmod.output" comparison from the 2 distros might help you track down what one distro has that the other doesn't. You could then test your theory pretty easily doing a:
Code:
modprobe -r module-in-question
to see what happens. If you lose your network on your working system, it might lead you down the road that answers your question of "what module do I need to get my hardware working".
Yep. Removing sundance from Puppy killed the ethernet stuff.
But I need to double check that - it has been a while since I did that.


Quote:
Hopefully that makes it a little clearer than mud. So post up that output from lspci and we'll go from there.

Cool
Thanks again.

This is all very interesting, even knowing that we are not on the most efficient path, and we probably will find that it is beyond me to able to get it going.
Your perception of what I am thinking is amazing.
 
Old 01-06-2007, 06:33 PM   #17
WillyW
Member
 
Registered: Dec 2006
Posts: 47

Original Poster
Rep: Reputation: 15
Updating:

Quote:
Originally Posted by MasterC

- - -
The Realtek driver for instance is probably supporting a couple thousand varieties of NICs, you may want to give it a blind shot by typing "modprobe 8139too" to just see if your device happens to be one of them).
Tried it.
Installed with modprobe -v 8139too .
ifconfig -a , and no eth0 reported.
ifconfig eth0, and 'device not found'.

Nothing ventured, nothing gained.
 
Old 01-06-2007, 06:38 PM   #18
WillyW
Member
 
Registered: Dec 2006
Posts: 47

Original Poster
Rep: Reputation: 15
Quote:
Originally Posted by MasterC

- - -

Simlarly to how you got that dmesg bit from redirecting dmesg output, try that with lspci:
Code:
/sbin/lspci -v > lspci.output
And post that up here in the forums. Not knowing what you are looking for, as you've noted a couple times, really makes it difficult to do a "google" for it

Once you do that, I'll talk you through what I am doing with the info you post up so you can see how to "google it" in the future.

00:00.0 Host bridge: ALi Corporation M1541 (rev 04)
00:01.0 PCI bridge: ALi Corporation M1541 PCI to AGP Controller (rev 04)
00:02.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)
00:07.0 ISA bridge: ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV] (rev c3)
00:0f.0 IDE interface: ALi Corporation M5229 IDE (rev c1)
00:14.0 Ethernet controller: Sundance Technology Inc: Unknown device 0200 (rev 31)
01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage IIC AGP (rev 7a)
 
Old 01-06-2007, 06:45 PM   #19
WillyW
Member
 
Registered: Dec 2006
Posts: 47

Original Poster
Rep: Reputation: 15
While booted to Slax, modinfo sundance reports:

filename: /lib/modules/2.6.16/kernel/drivers/net/sundance.ko
author: Donald Becker <becker@scyld.com>
description: Sundance Alta Ethernet driver
license: GPL
vermagic: 2.6.16 486 gcc-3.4
depends: mii
alias: pci:v00001186d00001002sv00001186sd00001002bc*sc*i*
alias: pci:v00001186d00001002sv00001186sd00001003bc*sc*i*
alias: pci:v00001186d00001002sv00001186sd00001012bc*sc*i*
alias: pci:v00001186d00001002sv00001186sd00001040bc*sc*i*
alias: pci:v00001186d00001002sv*sd*bc*sc*i*
alias: pci:v000013F0d00000201sv*sd*bc*sc*i*
parm: flowctrl:Sundance Alta flow control [0|1] (int)
parm: media:array of charp
parm: rx_copybreak:Sundance Alta copy breakpoint for copy-only-tiny-frames (int)
parm: debug:Sundance Alta debug level (0-5) (int)




Just for the heck of it, while booted to Puppy, I did it again. modinfo sundance reports:


filename: /lib/modules/2.6.18.1/kernel/drivers/net/sundance.ko
author: Donald Becker <becker@scyld.com>
description: Sundance Alta Ethernet driver
license: GPL
vermagic: 2.6.18.1 mod_unload 486 gcc-3.4
depends: mii
alias: pci:v00001186d00001002sv00001186sd00001002bc*sc*i*
alias: pci:v00001186d00001002sv00001186sd00001003bc*sc*i*
alias: pci:v00001186d00001002sv00001186sd00001012bc*sc*i*
alias: pci:v00001186d00001002sv00001186sd00001040bc*sc*i*
alias: pci:v00001186d00001002sv*sd*bc*sc*i*
alias: pci:v000013F0d00000201sv*sd*bc*sc*i*
alias: pci:v000013F0d00000200sv*sd*bc*sc*i*
parm: flowctrl:Sundance Alta flow control [0|1] (int)
parm: media:array of charp
parm: rx_copybreak:Sundance Alta copy breakpoint for copy-only-tiny-frames (int)
parm: debug:Sundance Alta debug level (0-5) (int)
 
Old 01-06-2007, 06:48 PM   #20
WillyW
Member
 
Registered: Dec 2006
Posts: 47

Original Poster
Rep: Reputation: 15
Again, just for the heck of it, while booted to Puppy, I ran lspci. Here is the output:


00:00.0 Class 0600: 10b9:1541 (rev 04)
00:01.0 Class 0604: 10b9:5243 (rev 04)
00:02.0 Class 0c03: 10b9:5237 (rev 03)
00:07.0 Class 0601: 10b9:1533 (rev c3)
00:0f.0 Class 0101: 10b9:5229 (rev c1)
00:14.0 Class 0200: 13f0:0200 (rev 31)
01:00.0 Class 0300: 1002:475a (rev 7a)


Is there a command line switch to make it less cryptic?

or, should I be asking.... just what is going on?
 
Old 01-06-2007, 06:53 PM   #21
WillyW
Member
 
Registered: Dec 2006
Posts: 47

Original Poster
Rep: Reputation: 15
Lastly, for today:

While booted to Puppy, I ran:
modprobe -vr sundance

It definetly kills the ethernet.


But, I couldn't get it back.

Ran modprobe -v sundance , and it appeared to reinstall.

ifconfig eth0 up and it seemed to accept the command without errors.
Tried to ping google, and .. sorry, I forget the exact wording now, but it was obvious that the nic wasn't working.

I thought it might need 'waking up'.
Tried dhcpcd .
It responded that it was already running - again, I don't have the verbatim wording now.

There must be something that needs to be done to get it going again. Any hints for me?

Thanks
 
Old 01-17-2007, 01:18 AM   #22
MasterC
LQ Guru
 
Registered: Mar 2002
Location: Salt Lake City, UT - USA
Distribution: Gentoo ; LFS ; Kubuntu ; CentOS ; Raspbian
Posts: 12,613

Rep: Reputation: 69
Hello and sorry for the long delay! I was on vacation and I've started online courses, as well as my other busy day-to-day things, well, this was the first time I could get back and give a decent response

So, in reverse (it's easier to read from bottom up for a response):

modprobing a driver. When hardware is initialized, it doesn't necessarily mean it's "ready to go" in the sense that you should be online immediately afterwards. Best relation I can give is to cars. When you start a car, it can't immediately drive; you must do something else to make it go, put it into gear. So, putting your ethernet card into gear would be the equivilent of telling the dhcp server to give it a new IP. However, in your case, it didn't quite work right. Without exacts (and I realize you can't give exacts all the time since we are trying to get the NIC working, so just take that for what it's worth) it's hard to tell you what's wrong or what didn't happen.

modprobe sundance
this should load sundance and any required modules (mii) to get the card recognized by the kernel (dmesg will tell usually when something is recognized and intialized). However, this won't get you your connection to your router/ISP. That requires either a DHCP server response (typical setup) or a manual setup with the correct parameters (advanced or non-typical setup). Running:
dhcpcd eth0
Usually is enough to get the rest of the job done (putting the car in drive). Sometimes, something just doesn't work right, whether that be the DHCP server responding with "Hey, I already sent your MAC adress an IP and you ACK (acknowledged) it. Wait until it expires to get another" or some other problem in between the 2 devices. Taking the device down properly might make the problem pretty much go away, something like:
ifconfig eth0 down
modprobe -r sundance
modprobe sundance
ifconfig eth0 up
dhcpcd eth0
Might work.
Learning Linux, and learning networking, AND learning Linux networking all at once might be a bit daunting. Take my examples for what their worth, just pointers to help you figure this all out.

So, the cryptic info from Puppy is quite cryptic as you've noted, it's not the best info nor the info we'd hope to glean from lspci. Sometimes lspci can hate us, I'll usually just plop in a Knoppix CD at that point and see what I've actually got.

The modules look about the same. I'd guess that the problem may just be something really lame at this point, something as simple as eth1 being the devices instead of eth0. Try an:
Code:
/sbin/ifconfig -a
To see if there are other ethX devices listed. It may even just be your device is querky enough to not have good support with all distros "custom" kernels. The really really funny (well, to me because I'm on this side of a working ethernet card ) thing is that I (or anyone else really) can't even ssh into your system to take a look around and get a feel for what's going on and remotely get it working. Then feed you the steps, and point out what happened...

A LiveCD is, for the sake of simplicity, not meant to be tweaked. It's meant to work on the most amount of systems, with very little user interaction to get it working. In other words, with a LiveCD, if it doesn't work, it's going to be hell trying to get it to.
Now, how the kernel, modules, and compilers all come together:
The kernel source code contains thousands of .c programs. These programs are human readable, and need to be converted to machine readable. The compiler steps up the plate to do the conversion (binary) and the resulting file is a .o file (not 100% true, it's up to the developer, but is true in a lot of situations). Now, how this all fits into the different modules for different machines. Kernels (used here to also include kernel modules) are compiled for the CPU the system is using. Different CPUs are capable of different executions, and some are backwards compatible, but most are not foward compatible. So, loading a module for a CPU that is "lesser" or "different" than the CPU used to compile the module could cause the system to crash. You can build a module for a bunch of different systems, but then you add unnecessary bloat to that kernel, further slowing down a system (and for no reason at all). To add to all that, compilers are also finicky. Older compilers were created when older hardware existed. When new compilers come out, some of the previously compiled code may not work on newer hardware (and vise versa). In comes kernel module versioning. It keeps compiler versions (in the case of open source, typically GCC) used to compile modules, and hardware type used to compile modules, somewhat the same. It's in your kernel information:
Code:
uname -a
And
Code:
modinfo
You can see in your example above:
Code:
vermagic: 2.6.16 486 gcc-3.4
and
Code:
vermagic: 2.6.18.1 mod_unload 486 gcc-3.4
These were compiled for the kernel version 2.6.16 and 2.6.18.1 respectively, and both were for a 486-series CPU (or better), and both using the same version of gcc: gcc-3.4 So, in this example, the biggest difference is kernel version, and this is why you can't just copy a kernel from one distro to another. What I meant by "typically" is that depending on how the kernel source code is compiled, you actually can copy the module across distros, but it's really not a good idea to do it without an excellent reason; the system will very likely become unstable and it's very likely the module simply won't work anyway.

The kernel contains many (not all, but a good 90+%) modules (drivers) for various hardware. In some instances, you may need a newer kernel to support the newer hardware, but eventually, most driver code makes it's way into the kernel. It's a much easier way for you and I to find something we need to make our hardware work; one stop shopping. In rare instances (older kernels, rare hardware, new hardware, specialized hardware) we may need to go to the manufacturer, or some other location for a driver. In the case of non-open source drivers, we definitely have to go elsewhere as the kernel is released using the GPL. Nvidia is a prime example of this. It's an even better example because there are 2 types of drivers for NVidia graphic cards. There are open source drivers that are included as part of the xorg (xfree86) packages, and there are the closed source drivers from Nvidia.com that allow you to take advantage of special features of a card such as hardware video acceleration (XvMC), or using multiple monitors from the graphics card's multiple outputs.

Yes. Ha, to which point Yes, it's possible something changed after the 2.6.16 kernel was released that made it work better on the NIC you have. This would make sense to a point, especially when puppy's 2.6.18.1 kernel works. However, the code you received with the card should work with your hardware. But there are a slew of possible reasons it doesn't, and none of them are going to be easy to identify. Your best 'chance' of finding out where the ball got dropped would be by installing multiple distros with different kernel versions (the same distro would of course be the best scenario). This would allow you to test each kernel release to see where the problem occurs, or if it just lies in Slax specifically. If that becomes the case, it may just be a simple oversight (aka bug) and an email to the author with your findings is usually welcomed.

Doing a google on your hardware, sundance appears the way to go. You may just have to try out another kernel version and go from there. If you are dying to use Slax, you should read up on how to remaster a LiveCD. Get the new kernel working to your needs and replace it on the LiveCD and remaster your own. It's a lot work, but a lot knowledge is gained from the experience; the most helpful of which will be kernel compiling and option selecting.

Good luck!

Cool
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Slax live captain chaos Slackware 3 10-24-2006 12:04 PM
Slax live CD TigerLinux Slackware 1 10-03-2005 08:28 AM
Sound Blaster Live 24-bit detected, but device not found gangeskhan Linux - Hardware 14 12-07-2004 04:58 PM
sound Card not detected in slax abd_bela Slackware 1 03-07-2004 07:22 PM
Slax Live XPediTioN Slackware 2 01-03-2004 03:26 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Networking

All times are GMT -5. The time now is 01:24 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration