Quote:
Originally posted by ericpartington
Thanks for your post, just a question what version of slackware re you running? I have a 3com 3c509 ethernet card and I have had a bundle of trouble in configuring it to connect to the internet.
During the installation the card was detected properly but it did not load at startup. I then checked the ifconfig and only the loopback was listed there. So i then checked to the /et/c/rc.d/rc.modules to see if the card was listed , and i uncommented it (#) so that it was loaded at startup. I restarted but again it did not load and no connection listed in ifconfig. So i then used pnpdump and isapnp to configure the card, it was detected properly and initialized but againg after a restart the card failed to make a connection.
Apparently this is harder than i thought. I am a bit of a newbie for linux, any help on this would be appreciated. Just a bugger that i can't get on the net when the card is detected properly... must be something done out of order or missing a flag.
ERIC
|
I, too, had problems connecting to the 'Net with my 3C509B cards..........Eventually I got it working for the Internet, so I'm sharing this for others who may have a bit of a problem..........This is on Slackware 9.1...........
I ended up recompiling the kernel and compiled the driver into the kernel rather than load it as a module..........but that was not the problem, either.................At one point I got it working, but after rebooting, it stopped working..........Anyway, after compiling the driver into the kernel, I added the appropriate lines in LILO's config file, which is necessary if you have more than one ISA card (the kernel may see the first one, but may not see the second one unless you tell it it's there).......Note: This is for an old '95 Compaq Presario desktop pc I'm trying to setup as a firewall/proxy server/gateway machine, so my append line has some unusual settings:
Code:
append = "ide0=dma ide1=dma hdb=none hdc=cdrom ether=10,0x300,12,0x3c509,eth0 ether=11,0x280,12,0x3c509,eth1"
This is a global "append" line, placed at the top of the /etc/lilo.conf file............The parameter for the cards in are in bold...............I'm also forcing "Full-duplex mode" for the cards designated by the number "12" in the ether options, which seems to work for my internet connection, otherwise you might want to replace the "12" with a "0" for the kernel to autodetect the mode to use, or replace it with a "4" for the "Half-duplex mode" (twisted-pair cable using the RJ-45 connectors)..................
After getting the cards to be detected properly, I was finally able to figure out how to manually get the Internet connection working..........simply by running the '/sbin/dhcpcd -t 10 -d eth0' command manually, after the system was up and running (I'm on cable internet and using DHCP)............
But this should've been taken care of automatically by the /etc/rc.d/rc.inet1 script (in the "eth_up()" function).....................As it turns out, one of the checks performed in the script has a "bug" in it whcih checks to see if the eth0 device is up and running by checking ifconfig.................and if it's listed in ifconfig, then it assumes that an ip address is already assigned and skips the command to start /sbin/dhcpcd..............WHICH IS NOT ALWAYS THE CASE.............Or if it's assigned an ip address, it may be a temporary one, 0.0.0.0............
So I modified the check it does to look for the "inet addr:" line....................Here's the modification to the /etc/rc.d/rc.inet1 startup script I made to make it work (changes in bold):
Code:
######################
# ETHERNET FUNCTIONS #
######################
# Function to bring up an Ethernet interface. If the interface is
# already up or does not yet exist (perhaps because the kernel driver
# is not loaded yet), do nothing.
eth_up() {
# If the interface isn't in the kernel yet (but there's an alias for it in
# modules.conf), then it should be loaded first:
if ! grep eth${1}: /proc/net/dev 1> /dev/null ; then # no interface yet
if /sbin/modprobe -c | grep -w "alias eth${1}" | grep -vw "alias eth${1} off" > /dev/null ; then
/sbin/modprobe eth${1}
fi
fi
if grep eth${1}: /proc/net/dev 1> /dev/null ; then # interface exists
# if ! /sbin/ifconfig | grep "eth${1} " 1> /dev/null ; then # interface not up
if [ ! `/sbin/ifconfig | grep -A1 "eth${1} " | grep 'addr:0\.0\.0\.0'` ] ; then
# then interface not assigned an ip addr
The changes are the last three lines, where I commented out the original line and added the modification below it............So now, it not only checks for the interface in ifconfig, but also double-checks to see if it is missing an ip address or is merely assigned a temporary one, and acts accordingly.............This avoids the erroneous assumption that just because it is listed in ifconfig, it is assigned a valid ip address.............
I suppose for PCI cards, this is not a problem, but if you're using a legacy ISA card, this will hopefully make it a little less painful when setting one up..........