Bug 80322
Summary: | DHCP always fails on my SIS900 | ||
---|---|---|---|
Product: | [Retired] Red Hat Public Beta | Reporter: | Bernd Bartmann <bernd.bartmann> |
Component: | initscripts | Assignee: | Bill Nottingham <notting> |
Status: | CLOSED RAWHIDE | QA Contact: | Brock Organ <borgan> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | phoebe | CC: | bengt, dbaggett, dowdle, john, jroyse, ltroan, rvokal, trondeg |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2003-01-14 01:24:09 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 79578 |
Description
Bernd Bartmann
2002-12-24 13:13:33 UTC
What sorts of error messages do you get? In german: IP-Informationen werden fuer eth0 bestimmt... fehlgeschlagen; keine Verbindung vorhanden. Kabel pruefen? In english this would be something like: Getting IP-information for eth0... no answer; no connection. Check cable? (from both the dhcp client, and the kernel) Bill, in case your last comment was meant as an addtional question: I only see the error message at boot time or when running "ifup eth0". Nothing unusual in /var/log/messages. The sis900 kernel module is loaded correctly and I even can get network up and running when manually running "ifconfig". *** Bug 80351 has been marked as a duplicate of this bug. *** Oddly enough, running dhclient by hand works. Something is odd with the init scripts. Running the graphical network config tool... and attempting to "activate" device causes the net-config program to crash with a runtime error. As a work around, I'm putting /sbin/dhclient in the rc.local. Hmmm, maybe I'm talking-out-my-ass here... but this stuff seems to be related to trying to pass a hostname to dhclient? I don't know. Whatever I do to try and automate getting an IP address via DHCP (adding it to rc.local, or willy-nilly editing the /sbin/ifup script to just run dhclient without any parameters)... sure, it gets and address and networking works... but something about the environment doesn't get set right and I can't login to X. Sucks. Yeah, I know.. I provided no details. What is a proper workaround to this problem? Oh, well... betas are for fixing stuff. In any event, it's definitely something in the /sbin/ifup script. There's stuff in the initscript (see the network-functions file) that checks for a link before starting dhcp, because it's somewhat silly to sit waiting on dhcp when there's no cable. Apparently, this code isn't working right on sis900 cards for some reason. I did some poking around and this is what I have found out. 1. the initscript works IF you "ifconfig eth0 up" first 2. The problems seem to be in /etc/sysconfig/network-scripts/network-functions shell library. Within the function check_link_down there is an IF branch that has a preceding not (!) operator looking to see if LC_ALL is set to "C". Problem is in the same function library the is_available function does LC_ALL= LANG= ip -o link | grep -q $1 Which results in LC_ALL being set to nothing. So, when the check_link_down function runs with the following logic (excuse the echos, that is from me trying to find out what is going on) echo "function start" if [ -x /sbin/mii-tool ]; then echo "branch executed" echo $LC_ALL if ! LC_ALL=C ip link show $1 2>/dev/null| grep -q UP ; then ip link set $1 up >/dev/null 2>&1 echo "Check link up" ifconfig eth0 timeout=0 while [ $timeout -le 20 ]; do LC_ALL=C ip link show $1 2>/dev/null | grep -q UP && break usleep 500000 timeout=$((timeout+1)) done fi The second if block does not get executed as it should. I've been able to fix the problem by taking out the "!". I don't consider myself an expert shell programmer. There seems to be something in the way that the SIS adapter reports text within "ip -o link" that does not set the LC_ALL variable to "C". What it is I cannot say because that is the only adapter I have. Anyhow, that's my analysis. BTW...what the the LC_ALL variable for anyhow? Err.... I think I may have the logic in my analysis reversed when talking about the "!". I hate thinking about reverse logic. That's what I get for looking at this thing on a late sunday night after 3 beers. Anyhow. I hope that clears any confusion *** Bug 80731 has been marked as a duplicate of this bug. *** this bug happens in my RedHat 8.0 version (the one that is avaliable to download but is not the beta one). My card is a 3Com 3C905B. This but is not only for SIS cards - I think all NICs a affected. And is not only in the BETA PHOEBE, for shure! Manually running the dhcpclient solves the problem! I got this same EXACT BUG! sorry for my VERY BAD English, I'm from Brazil and it's 2:38 of the morning. =] Fwiw, on the systems I use, they all work on RHL 8.0. Including the SiS one. With the phoebe beta, all systems except the SiS one work. Will be fixed in 7.03-1. Fix confirmed. Indeed, fix confirmed for me under Phoebe2 too. *** Bug 83010 has been marked as a duplicate of this bug. *** |