Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Ok, I'm having a weird problem here. I'll describe what has happened so far so you can have a picture of it...
New computer. Installed Slack 11 in one partition and Windows XP in another. Configured Slack's network. Configured Windows' network. Went back to slack, network was strangely not working.
I spent a long time trying to figure it out, since I couldn't configure network again under linux! Whatever I did, when I tried to ping my router (192.168.0.1), it would return "Destination unreachable". Routing table seems to be ok... destination 0.0.0.0 through gateway 192.168.0.1 up, but I could ping myself (duh) and broacast only. Couldn't resolve addresses either, even though resolv.conf has the proper DNSs... Using the SAME configuration as in Windows, it wouldn't work.
Since I have 2 network adapters, I tried configuring the other one, but no luck at all. No one could understand what was happening. So I left it alone and started using Windows for internet surfing, and Linux only for my other stuff.
Windows was properly configured on device eth1, and eth0 connection was disabled. I had a friend come over and he configured eth0 the same way I tried one hundred times, and it worked... I had internet access, tried to reboot and see if it wouldn't mess up and it didn't!
Then I went back to windows and configured network for eth0 so I wouldn't have to keep switching cables whenever I went from one OS to the other. As soon as I finished it, I went back to Linux and guess what? Yes... no internet AGAIN. I changed everything back to the way it was before (Windows's connection on the second ethernet adapter, eth1), but it was too late, I can't configure the network anymore... No one I talk to can even imagine what's going on.
Also /var/log/messages will be nice to have. Do not truncate.
Do you need to be connected to a proxy in order to connect to the internet?
Did you try to include either or both noapic, noapci, apci=off, apcioff at the boot line?
Is the firewall up?
Did you mess around with sysctl?
Is the card a PCI or wireless NIC?
Did you mess around with any DHCP config files?
If you are using ReiserFS, did you include notail as the mount option? If not may have to re-install a packages?
I'm gonna grab those files and post here asap.
I don't need proxy to connect to the internet.
I haven't tried noapic, noapci, apci=off, apcioff at boot line.
Firewall isn't blocking my access since I somehow got internet access for 1 day, and I have access through windows.
I haven't messed out with sysctl.
The card isn't PCI nor wireless, it's onboard. I have a ASUS M2N-SLi Deluxe with nForce chipset.
I haven't messed around with DHCP and I don't use DHCP either.
#
# networks This file describes a number of netname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
#
loopback 127.0.0.0
localnet 192.168.0.0
# End of networks.
/etc/netdevice:
I don't have such file.
/etc/rc.d/rc.inet1.conf
Code:
# /etc/rc.d/rc.inet1.conf
#
# This file contains the configuration settings for network interfaces.
# If USE_DHCP[interface] is set to "yes", this overrides any other settings.
# If you don't have an interface, leave the settings null ("").
# You can configure network interfaces other than eth0,eth1... by setting
# IFNAME[interface] to the interface's name. If IFNAME[interface] is unset
# or empty, it is assumed you're configuring eth<interface>.
# Several other parameters are available, the end of this file contains a
# comprehensive set of examples.
# =============================================================================
# Config information for eth0:
IPADDR[0]="192.168.0.120"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""
# Config information for eth1:
IPADDR[1]="192.168.0.121"
NETMASK[1]="255.255.255.0"
USE_DHCP[1]=""
DHCP_HOSTNAME[1]=""
# Config information for eth2:
IPADDR[2]=""
NETMASK[2]=""
USE_DHCP[2]=""
DHCP_HOSTNAME[2]=""
# Config information for eth3:
IPADDR[3]=""
NETMASK[3]=""
USE_DHCP[3]=""
DHCP_HOSTNAME[3]=""
# Default gateway IP address:
GATEWAY="192.168.0.1"
# Change this to "yes" for debugging output to stdout. Unfortunately,
# /sbin/hotplug seems to disable stdout so you'll only see debugging output
# when rc.inet1 is called directly.
DEBUG_ETH_UP="no"
## Example config information for wlan0. Uncomment the lines you need and fill
## in your info. (You may not need all of these for your wireless network)
#IFNAME[4]="wlan0"
#IPADDR[4]=""
#NETMASK[4]=""
#USE_DHCP[4]="yes"
#DHCP_HOSTNAME[4]="icculus-wireless"
#DHCP_KEEPRESOLV[4]="yes"
#DHCP_KEEPNTP[4]="yes"
#DHCP_KEEPGW[4]="yes"
#DHCP_IPADDR[4]=""
#WLAN_ESSID[4]=BARRIER05
#WLAN_MODE[4]=Managed
##WLAN_RATE[4]="54M auto"
##WLAN_CHANNEL[4]="auto"
##WLAN_KEY[4]="D5AD1F04ACF048EC2D0B1C80C7"
##WLAN_IWPRIV[4]="AuthMode=WPAPSK EncrypType=TKIP WPAPSK=7B1ABEEB5D197741923ED26727569C365E31212096A0EAFAD563B268BAD01CAF TxRate=0"
#WLAN_WPA[4]="wpa_supplicant"
#WLAN_WPADRIVER[4]="ndiswrapper"
## Some examples of additional network parameters that you can use.
## Config information for wlan0:
#IFNAME[4]="wlan0" # Use a different interface name nstead of
# the default 'eth4'
#HWADDR[4]="00:01:23:45:67:89" # Overrule the card's hardware MAC address
#MTU[4]="" # The default MTU is 1500, but you might need
# 1360 when you use NAT'ed IPSec traffic.
#DHCP_KEEPRESOLV[4]="yes" # If you dont want /etc/resolv.conf overwritten
#DHCP_KEEPNTP[4]="yes" # If you don't want ntp.conf overwritten
#DHCP_KEEPGW[4]="yes" # If you don't want the DHCP server to change
# your default gateway
#DHCP_IPADDR[4]="" # Request a specific IP address from the DHCP
# server
#WLAN_ESSID[4]=DARKSTAR # Here, you can override _any_ parameter
# defined in rc.wireless.conf, by prepending
# 'WLAN_' to the parameter's name. Useful for
# those with multiple wireless interfaces.
#WLAN_IWPRIV[4]="AuthMode=WPAPSK EncrypType=TKIP WPAPSK=thekey TxRate=0"
# Some drivers require a private ioctl to be
# set through the iwpriv command. If more than
# one is required, you can place them in the
# IWPRIV parameter (space-separated, see the
# example).
# eth_up 0
# eth_up 0
#! /bin/sh
# /etc/rc.d/rc.inet1
# This script is used to bring up the various network interfaces.
#
# @(#)/etc/rc.d/rc.inet1 10.2 Sun Jul 24 12:45:56 PDT 2005 (pjv)
############################
# READ NETWORK CONFIG FILE #
############################
# Get the configuration information from /etc/rc.d/rc.inet1.conf:
. /etc/rc.d/rc.inet1.conf
###########
# LOGGING #
###########
# If possible, log events in /var/log/messages:
if [ -f /var/run/syslogd.pid -a -x /usr/bin/logger ]; then
LOGGER=/usr/bin/logger
else # output to stdout/stderr:
LOGGER=/bin/cat
fi
############################
# DETERMINE INTERFACE LIST #
############################
# Compose a list of interfaces from /etc/rc.d/rc.inet1.conf (with a maximum
# of 6 interfaces, but you can easily enlarge the interface limit
# - send me a picture of such a box :-).
# If a value for IFNAME[n] is not set, we assume it is an eth'n' interface.
# This way, the new script is compatible with older rc.inet1.conf files.
# The IFNAME array will be used to determine which interfaces to bring up/down.
MAXNICS=6
i=0
while [ $i -lt $MAXNICS ];
do
IFNAME[$i]=${IFNAME[$i]:=eth${i}}
i=$(($i+1))
done
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: List of interfaces: '${IFNAME[@]}'" | $LOGGER
fi
######################
# LOOPBACK FUNCTIONS #
######################
# Function to bring up the loopback interface. If loopback is
# already up, do nothing.
lo_up() {
if grep lo: /proc/net/dev 1> /dev/null ; then
if ! /sbin/ifconfig | grep "^lo" 1> /dev/null ; then
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig lo 127.0.0.1" | $LOGGER
/sbin/ifconfig lo 127.0.0.1
echo "/etc/rc.d/rc.inet1: /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo" | $LOGGER
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
fi
fi
}
# Function to take down the loopback interface:
lo_down() {
if grep lo: /proc/net/dev 1> /dev/null ; then
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig lo down" | $LOGGER
/sbin/ifconfig lo down
fi
}
#######################
# INTERFACE FUNCTIONS #
#######################
# Function to bring up a network interface. If the interface is
# already up or does not yet exist (perhaps because the kernel driver
# is not loaded yet), do nothing.
if_up() {
# Determine position 'i' of this interface in the IFNAME array:
i=0
while [ $i -lt $MAXNICS ]; do
[ "${IFNAME[$i]}" = "${1}" ] && break
i=$(($i+1))
done
# 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 `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then # no interface yet
if /sbin/modprobe -c | grep -w "alias ${1}" | grep -vw "alias ${1} off" > /dev/null ; then
echo "/etc/rc.d/rc.inet1: /sbin/modprobe ${1}" | $LOGGER
/sbin/modprobe ${1}
fi
fi
if grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then # interface exists
if ! /sbin/ifconfig | grep -w "${1}" 1>/dev/null || ! /sbin/ifconfig ${1} | grep "inet addr" 1> /dev/null ; then # interface not up or not configured
if [ ! "${HWADDR[$i]}" = "" ]; then # Set hardware address _before_ the interface goes up:
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} hw ether ${HWADDR[$i]}" | $LOGGER
/sbin/ifconfig ${1} hw ether ${HWADDR[$i]}
fi
if [ ! "${MTU[$i]}" = "" ]; then # Set MTU to something else than 1500
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} mtu ${MTU[$i]}" | $LOGGER
/sbin/ifconfig ${1} mtu ${MTU[$i]}
fi
if [ -x /etc/rc.d/rc.wireless ]; then
. /etc/rc.d/rc.wireless ${1} start # Initialize any wireless parameters
fi
if [ "${USE_DHCP[$i]}" = "yes" ]; then # use DHCP to bring interface up
[ ${DHCP_HOSTNAME[$i]} ] && DHCP_OPTIONS="-h ${DHCP_HOSTNAME[$i]}"
[ "${DHCP_KEEPRESOLV[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -R"
[ "${DHCP_KEEPNTP[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -N"
[ "${DHCP_KEEPGW[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -G"
[ ${DHCP_IPADDR[$i]} ] && DHCP_OPTIONS="$DHCP_OPTIONS -s ${DHCP_IPADDR[$i]}"
echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -d -t ${DHCP_TIMEOUT[$i]:-60} ${DHCP_OPTIONS} ${1}" | $LOGGER
/sbin/dhcpcd -d -t ${DHCP_TIMEOUT[$i]:-60} ${DHCP_OPTIONS} ${1}
else # bring up interface using a static IP address
if [ ! "${IPADDR[$i]}" = "" ]; then # skip unconfigured interfaces
# Determine broadcast address from the IP address and netmask:
BROADCAST[$i]=`/bin/ipmask ${NETMASK[$i]} ${IPADDR[$i]}|cut -f1 -d' '`
# Set up the network card:
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} ${IPADDR[$i]} broadcast ${BROADCAST[$i]} netmask ${NETMASK[$i]}" | $LOGGER
/sbin/ifconfig ${1} ${IPADDR[$i]} broadcast ${BROADCAST[$i]} netmask ${NETMASK[$i]}
else
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: ${1} interface is not configured in /etc/rc.d/rc.inet1.conf" | $LOGGER
fi
fi
fi
else
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: ${1} is already up, skipping" | $LOGGER
fi
fi
else
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: ${1} interface does not exist (yet)" | $LOGGER
fi
fi
}
# Function to take down a network interface:
if_down() {
# Determine position 'i' of this interface in the IFNAME array:
i=0
while [ $i -lt $MAXNICS ]; do
[ "${IFNAME[$i]}" = "${1}" ] && break
i=$(($i+1))
done
if grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then
if [ "${USE_DHCP[$i]}" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -k -d ${1}" | $LOGGER
/sbin/dhcpcd -k -d ${1} 2> /dev/null || /sbin/ifconfig ${1} down
sleep 1
else
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} down" | $LOGGER
/sbin/ifconfig ${1} down
fi
if [ -x /etc/rc.d/rc.wireless ]; then
. /etc/rc.d/rc.wireless ${1} stop # Kill wireless daemons if any.
fi
fi
}
#####################
# GATEWAY FUNCTIONS #
#####################
# Function to bring up the gateway if there is not yet a default route:
gateway_up() {
if ! /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then
if [ ! "$GATEWAY" = "" ]; then
echo "/etc/rc.d/rc.inet1: /sbin/route add default gw ${GATEWAY} metric 1" | $LOGGER
/sbin/route add default gw ${GATEWAY} metric 1 2>&1 | $LOGGER
fi
fi
}
# Function to take down an existing default gateway:
gateway_down() {
if /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then
echo "/etc/rc.d/rc.inet1: /sbin/route del default" | $LOGGER
/sbin/route del default
fi
}
# Function to start the network:
start() {
lo_up
for i in ${IFNAME[@]} ; do
if_up $i
done
gateway_up
}
# Function to stop the network:
stop() {
gateway_down
for i in ${IFNAME[@]} ; do
if_down $i
done
lo_down
}
############
### MAIN ###
############
case "$1" in
'start') # "start" brings up all configured interfaces:
start
;;
'stop') # "stop" takes down all configured interfaces:
stop
;;
'restart') # "restart" restarts the network:
stop
start
;;
*_start) # Example: "eth1_start" will start the specified interface 'eth1'
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_up $INTERFACE
gateway_up
;;
*_stop) # Example: "eth0_stop" will stop the specified interface 'eth0'
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_down $INTERFACE
;;
*_restart) # Example: "wlan0_restart" will take 'wlan0' down and up again
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_down $INTERFACE
sleep 1
if_up $INTERFACE
gateway_up
;;
'up') # "up" does the same thing as "start"
start
;;
'down') # "down" does the same thing as "stop"
stop
;;
*_up) # "*_up" does the same thing as "*_start"
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_up $INTERFACE
gateway_up
;;
*_down) # "*_down" does the same thing as "*_stop"
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_down $INTERFACE
;;
*) # The default is to bring up all configured interfaces:
lo_up
for i in ${IFNAME[@]} ; do
if_up $i
done
# eth_up 0
gateway_up
esac
# End of /etc/rc.d/rc.inet1
/etc/rc.d/rc.inet2:
Code:
#!/bin/sh
#
# rc.inet2 This shell script boots up the entire network system.
# Note, that when this script is used to also fire
# up any important remote NFS disks (like the /usr
# directory), care must be taken to actually
# have all the needed binaries online _now_ ...
#
# Uncomment or comment out sections depending on which
# services your site requires.
#
# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
# Modified for Slackware by Patrick Volkerding <volkerdi@slackware.com>
# At this point, we are ready to talk to The World...
# Mount remote (NFS) filesystems:
if cat /etc/fstab | grep -v '^#' | grep -w nfs 1> /dev/null 2> /dev/null ; then
# Start rpc.portmap, /sbin/rpc.lockd, and /sbin/rpc.statd if we find NFS
# volumes defined in /etc/fstab since these will need to be running in order
# to mount them. If they are not running, attempting to mount an NFS
# partition will cause mount to hang, or at least result in unreliable
# operation. Keep this in mind if you plan to mount unlisted NFS
# partitions...
# If you have uncommented NFS partitions in your /etc/fstab, rc.rpc is run
# whether it is set as executable or not. If you don't want to run it,
# comment the NFS partitions out in /etc/fstab or erase/rename rc.rpc.
if [ -r /etc/rc.d/rc.rpc ]; then
sh /etc/rc.d/rc.rpc start
fi
echo "Mounting remote (NFS) file systems: /sbin/mount -a -t nfs"
/sbin/mount -a -t nfs # This may be our /usr runtime!
# Show the mounted volumes:
/sbin/mount -v -t nfs
fi
# If /etc/rc.d/rc.rpc is executable, run it to load rpc.portmap, rpc.lockd,
# and rpc.statd. This might be needed to mount NFS partitions that are not
# listed in /etc/fstab. Starting this twice won't hurt as the script will
# check if things are already running before trying to start them.
if [ -x /etc/rc.d/rc.rpc ]; then
sh /etc/rc.d/rc.rpc start
fi
# Mount remote (SMB) filesystems:
if cat /etc/fstab | grep -v '^#' | grep -w smbfs 1> /dev/null 2> /dev/null ; then
echo "Mounting remote (SMB) file systems: /sbin/mount -a -t smbfs"
/sbin/mount -a -t smbfs
# Show the mounted volumes:
/sbin/mount -v -t smbfs
fi
# Start the system logger if it is not already running (maybe because /usr
# is on a network partition).
if [ -x /etc/rc.d/rc.syslog -a -d /var/log -a ! -r /var/run/syslogd.pid ]; then
. /etc/rc.d/rc.syslog start
fi
# If there is a firewall script, run it before enabling packet forwarding.
# See the HOWTOs on http://www.netfilter.org/ for documentation on
# setting up a firewall or NAT on Linux. In some cases this might need to
# be moved past the section below dealing with IP packet forwarding.
if [ -x /etc/rc.d/rc.firewall ]; then
/etc/rc.d/rc.firewall start
fi
# Turn on IPv4 packet forwarding support.
if [ -x /etc/rc.d/rc.ip_forward ]; then
. /etc/rc.d/rc.ip_forward start
fi
# Start the inetd server:
if [ -x /etc/rc.d/rc.inetd ]; then
/etc/rc.d/rc.inetd start
fi
# Start the OpenSSH SSH daemon:
if [ -x /etc/rc.d/rc.sshd ]; then
echo "Starting OpenSSH SSH daemon: /usr/sbin/sshd"
/etc/rc.d/rc.sshd start
fi
# Start the BIND name server daemon:
if [ -x /etc/rc.d/rc.bind ]; then
/etc/rc.d/rc.bind start
fi
# Start NIS (the Network Information Service):
if [ -x /etc/rc.d/rc.yp ]; then
. /etc/rc.d/rc.yp start
fi
# Start the NFS server. Note that for this to work correctly, you'll
# need nfsd support in the kernel (the startup script will try to load
# the module for you).
# You'll also need to set up some shares in /etc/exports.
# Starting the NFS server:
if [ -x /etc/rc.d/rc.nfsd ]; then
/etc/rc.d/rc.nfsd start
fi
# Stuff you won't need follows. ;-)
# # Start the network routing daemon:
# if [ -x /usr/sbin/routed ]; then
# echo "Starting network routing daemon: /usr/sbin/routed"
# /usr/sbin/routed -g -s
# fi
# # Start the system status server:
# if [ -x /usr/sbin/rwhod ]; then
# echo "Starting system status server: /usr/sbin/rwhod"
# /usr/sbin/rwhod
# fi
# # Fire up the PC-NFS daemon(s). This is a primarily obsolete system, and may
# # not be very secure. It's not at all needed for normal NFS server support.
# # You probably should not run this.
# if [ -x /usr/sbin/rpc.pcnfsd ]; then
# echo "Starting PC-NFS daemons: /usr/sbin/rpc.pcnfsd /usr/sbin/rpc.bwnfsd"
# /usr/sbin/rpc.pcnfsd /var/spool/lpd
# fi
# if [ -x /usr/sbin/rpc.bwnfsd ]; then
# /usr/sbin/rpc.bwnfsd /var/spool/lpd
# fi
#!/bin/sh
# /etc/rc.d/rc.ip_forward: start/stop IP packet forwarding
#
# If you intend to run your Linux box as a router, i.e. as a
# computer that forwards and redistributes network packets, you
# will need to enable IP packet forwarding in your kernel.
#
# To activate IP packet forwarding at boot time, make this
# script executable: chmod 755 /etc/rc.d/rc.ip_forward
#
# To disable IP packet forwarding at boot time, make this
# script non-executable: chmod 644 /etc/rc.d/rc.ip_forward
# Start IP packet forwarding:
ip_forward_start() {
if [ -f /proc/sys/net/ipv4/ip_forward ]; then
echo "Activating IPv4 packet forwarding."
echo 1 > /proc/sys/net/ipv4/ip_forward
fi
# When using IPv4 packet forwarding, you will also get the
# rp_filter, which automatically rejects incoming packets if the
# routing table entry for their source address doesn't match the
# network interface they're arriving on. This has security
# advantages because it prevents the so-called IP spoofing,
# however it can pose problems if you use asymmetric routing
# (packets from you to a host take a different path than packets
# from that host to you) or if you operate a non-routing host
# which has several IP addresses on different interfaces. To
# turn rp_filter off, uncomment the lines below:
#if [ -r /proc/sys/net/ipv4/conf/all/rp_filter ]; then
# echo "Disabling rp_filter."
# echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
#fi
}
# Stop IP packet forwarding:
ip_forward_stop() {
if [ -f /proc/sys/net/ipv4/ip_forward ]; then
echo "Disabling IPv4 packet forwarding."
echo 0 > /proc/sys/net/ipv4/ip_forward
fi
}
# Restart IP packet forwarding:
ip_forward_restart() {
ip_forward_stop
sleep 1
ip_forward_start
}
case "$1" in
'start')
ip_forward_start
;;
'stop')
ip_forward_stop
;;
'restart')
ip_forward_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
/etc/rc.d/rc.wireless:
Code:
#!/bin/sh
# /etc/rc.d/rc.wireless
# $Id: rc.wireless,v 1.4 2006/08/15 13:09:01 eha Exp eha $
#
# Wireless network card setup.
#
# This script sets up PCI, USB, and 32-bit Cardbus wireless devices
# NOT 16-bit PCMCIA cards! Those are configured in /etc/pcmcia/.
# Single parameter to this script is the name of a network interface.
# Normally this script is called from rc.inet1 rather than run
# directly.
#
# This script is a modified '/etc/pcmcia/wireless' script
# 09/apr/2004 by Eric Hameleers
# 16/sep/2004 * Eric Hameleers * Fixed iwspy and iwpriv commands
# 08/apr/2005 * Eric Hameleers * Allow per-interface overrides of the wireless
# parameters (see /etc/rc.d/rc.inet1.conf)
# 11/apr/2005 * Eric Hameleers * Tune wpa_supplicant interactions.
# 23/apr/2005 * Eric Hameleers * First configure card with iwconfig,
# before starting wpa_supplicant
# 27/apr/2005 * Eric Hameleers * Multiple 'iwpriv $INTERFACE set' commands.
# 14/feb/2006 * Eric Hameleers * Better error messages; alternative way of
# getting HWADDR; parametrized WPA_WAIT value.
# Don't kill an already running wpa_supplicant.
# 29/apr/2006 * Pat Volkerding * Reverted HWADDR change, since it relies on
# a binary (macaddr) that is not built or
# installed by default since it is not
# compatible with all interfaces.
# 15/aug/2006 * Eric Hameleers * Added missing "" around $ESSID, which broke
# ESSIDs that contain a space character.
#
LOGGER=${LOGGER:-cat}
if [ -z $IFNAME ] ; then
echo "WARNING: The script 'rc.wireless' must be executed by 'rc.inet1'!" | $LOGGER
echo " You should run the command \"/etc/rc.d/rc.inet1 <your_interface>_start\" yourself." | $LOGGER
return 1 2> /dev/null || exit 1
fi
INTERFACE=$1
# Find the path where wireless tools are installed
for IWPATH in /usr/{bin,sbin} /usr/local/{bin,sbin} /sbin /bin ; do
if [ -x $IWPATH/iwconfig ] ; then break ; fi
done
# The same for wpa_supplicant (needed for WPA support)
for SUPPATH in /usr/{bin,sbin} /usr/local/{bin,sbin} /sbin /bin ; do
if [ -x $SUPPATH/wpa_supplicant ] ; then break ; fi
done
# Set all desired settings through the wireless tools
IWCOMMAND="$IWPATH/iwconfig ${INTERFACE}"
IWPRIVCMD="$IWPATH/iwpriv ${INTERFACE}"
IWSPYCMD="$IWPATH/iwspy ${INTERFACE}"
IFCOMMAND="/sbin/ifconfig ${INTERFACE}"
is_wireless_device ()
{
[ -x $IWPATH/iwconfig ] || return 1
LC_ALL=C $IWPATH/iwconfig $1 2>&1 | \
grep -Eiq "no wireless extensions|no such device" || return 0
return 1
}
###############
# EXIT POINTS #
###############
# Is the device wireless? If not, exit this script.
is_wireless_device ${INTERFACE} || return 0 2> /dev/null || exit 0
# If we stop a wireless interface using wpa_supplicant,
# we'll kill its wpa_supplicant daemon too and exit this script:
if [ "$2" = "stop" ]; then
WPAPID=`echo \`ps axww|grep wpa_supplicant |grep i${INTERFACE}\` |cut -f1 -d' '`
[ ${WPAPID} ] && kill ${WPAPID}
return 0
fi
# -----------------------------------------------------
# Continue with the script - bringing the interface UP.
# -----------------------------------------------------
# Bring interface up - for determining the HWADDR
$IFCOMMAND up
sleep 2
# Get the MAC address for the interface
HWADDR=`/sbin/ifconfig ${INTERFACE} | sed -ne 's/.*\(..:..:..:..:..:..\).*/\1/p'`
# Read the configuration information for the card with address $HWADDR
# from /etc/rc.d/rc.wireless.conf:
. /etc/rc.d/rc.wireless.conf
# Let any per-interface overrides (the WLAN_xxxx parameters) that are set
# in /etc/rc.d/rc.inet1.conf have precedence.
# The reason: you might have multiple wireless cards of the same brand, or
# connecting to multiple networks.
# Position 'i' of this interface in the IFNAME array was determined in rc.inet1
CHANNEL=${WLAN_CHANNEL[$i]:-${CHANNEL}}
ESSID=${WLAN_ESSID[$i]:-${ESSID}}
FREQ=${WLAN_FREQ[$i]:-${FREQ}}
FRAG=${WLAN_FRAG[$i]:-${FRAG}}
IWCONFIG=${WLAN_IWCONFIG[$i]:-${IWCONFIG}}
IWPRIV=${WLAN_IWPRIV[$i]:-${IWPRIV}}
IWSPY=${WLAN_IWSPY[$i]:-${IWSPY}}
KEY=${WLAN_KEY[$i]:-${KEY}}
MODE=${WLAN_MODE[$i]:-${MODE}}
NICKNAME=${WLAN_NICKNAME[$i]:-${NICKNAME}}
NWID=${WLAN_NWID[$i]:-${NWID}}
RATE=${WLAN_RATE[$i]:-${RATE}}
RTS=${WLAN_RTS[$i]:-${RTS}}
SENS=${WLAN_SENS[$i]:-${SENS}}
WPA=${WLAN_WPA[$i]:-${WPA}}
WPADRIVER=${WLAN_WPADRIVER[$i]:-${WPADRIVER}}
WPACONF=${WLAN_WPACONF[$i]:-${WPACONF}}
WPAWAIT=${WLAN_WPAWAIT[$i]:-${WPAWAIT}}
[ -n "$VERBOSE" -a -n "$INFO" ] && echo "$0: $1 is '$INFO'"
###################
# WIRELESS CONFIG #
###################
# Mode needs to be first : some settings apply only in a specific mode!
if [ -n "$MODE" ] ; then
echo "$0: $IWCOMMAND mode $MODE" | $LOGGER
$IWCOMMAND mode $MODE
fi
# This is a bit hackish, but should do the job right...
if [ ! -n "$NICKNAME" ] ; then
NICKNAME=`/bin/hostname`
fi
if [ -n "$ESSID" -o -n "$MODE" ] ; then
echo "$0: $IWCOMMAND nick $NICKNAME" | $LOGGER
$IWCOMMAND nick $NICKNAME
fi
# Regular stuff...
if [ -n "$NWID" ] ; then
echo "$0: $IWCOMMAND nwid $NWID" | $LOGGER
$IWCOMMAND nwid $NWID
fi
if [ -n "$FREQ" ] ; then
echo "$0: $IWCOMMAND freq $FREQ" | $LOGGER
$IWCOMMAND freq $FREQ
elif [ -n "$CHANNEL" ] ; then
echo "$0: $IWCOMMAND channel $CHANNEL" | $LOGGER
$IWCOMMAND channel $CHANNEL
fi
# WEP keys (non-WPA)
if [ -n "$KEY" -a ! -n "$WPA" ] ; then
if [ "$KEY" = "off" ]; then
echo "$0: $IWCOMMAND key open" | $LOGGER
$IWCOMMAND key open
echo "$0: $IWCOMMAND key off" | $LOGGER
$IWCOMMAND key off
else
echo "$0: $IWCOMMAND key restricted" | $LOGGER
$IWCOMMAND key restricted
echo "$0: $IWCOMMAND key ************" | $LOGGER
$IWCOMMAND key $KEY
fi
fi
if [ -n "$SENS" ] ; then
echo "$0: $IWCOMMAND sens $SENS" | $LOGGER
$IWCOMMAND sens $SENS
fi
if [ -n "$RATE" ] ; then
echo "$0: $IWCOMMAND rate $RATE" | $LOGGER
$IWCOMMAND rate $RATE
fi
if [ -n "$RTS" ] ; then
echo "$0: $IWCOMMAND rts $RTS" | $LOGGER
$IWCOMMAND rts $RTS
fi
if [ -n "$FRAG" ] ; then
echo "$0: $IWCOMMAND frag $FRAG" | $LOGGER
$IWCOMMAND frag $FRAG
fi
# More specific parameters
if [ -n "$IWCONFIG" ] ; then
echo "$0: $IWCOMMAND $IWCONFIG" | $LOGGER
$IWCOMMAND $IWCONFIG
fi
if [ -n "$IWSPY" ] ; then
echo "$0: $IWSPYCMD $IWSPY" | $LOGGER
$IWSPYCMD $IWSPY
fi
# The iwpriv can set one private IOCTL at the time, so if the $IWPRIV
# variable contqins multiple space separated settings, we split them here:
# WARNING: if your iwpriv commands contain a WEP/WPA key, these can be logged
# in /var/log/messages!
if [ -n "$IWPRIV" ] ; then
for iwi in $IWPRIV; do
echo "$0: $IWPRIVCMD set $iwi" | $LOGGER
$IWPRIVCMD set $iwi
done
fi
##################
# WPA_SUPPLICANT #
##################
# Support for WPA (wireless protected access) is provided by wpa_supplicant
# for those drivers that support it (and it looks like wpa_supplicant is
# the future for WPA support in Linux anyway)
if [ "$WPA" = "wpa_supplicant" ] || [ "$WPA" = "wpaxsupplicant" ] && [ -x ${SUPPATH}/wpa_supplicant ]; then
# Interface down, so wpa_supplicant can associate with the AP
$IFCOMMAND down
WPACONF=${WPACONF:-/etc/wpa_supplicant.conf}
WPA_OPTIONS=""
[ ${WPADRIVER} ] && WPA_OPTIONS="-D${WPADRIVER}" # specify the driver
[ ${WPA} = "wpaxsupplicant" ] && WPA_OPTIONS="${WPA_OPTIONS} -e" # Use external xsupplicant (disables the internal supplicant)
# We leave a running wpa_supplicant process in peace:
WPAPID=`echo \`ps axww|grep wpa_supplicant |grep i${INTERFACE}\` |cut -f1 -d' '`
if [ ${WPAPID} ]; then
echo "$0: wpa_supplicant found running already" | $LOGGER
else
echo "$0: wpa_supplicant -Bw -c${WPACONF} ${WPA_OPTIONS} -i$INTERFACE" | $LOGGER
${SUPPATH}/wpa_supplicant -Bw -c${WPACONF} ${WPA_OPTIONS} -i$INTERFACE
fi
# Buy wpa_supplicant some time to authenticate before bringing the
# interface back up... but we don't wait forever:
# You can increase this value in rc.inet1.conf (WLAN_WPAWAIT) or rc.wireless.conf (WPAWAIT)
# if your card takes longer to associate:
WPAWAIT=${WPAWAIT:-10}
wi=0
while [ $wi -lt $WPAWAIT ]; do
wi=$(($wi+1)); sleep 1
if (grep -q "^ctrl_interface=" ${WPACONF}); then
if (LC_ALL=C ${SUPPATH}/wpa_cli -i$INTERFACE status|grep -q "^wpa_state=COMPLETED"); then break; fi
else
if (LC_ALL=C ${IWCOMMAND}|grep -Eq "Encryption key:....-"); then break; fi
fi
done
if [ $wi -eq $WPAWAIT ]; then
echo "WPA authentication did not complete, try running '/etc/rc.d/rc.inet1 ${INTERFACE}_start' in a few seconds." | $LOGGER
fi
# Bring interface up to avoid 'not ready' errors when calling iwconfig
$IFCOMMAND up
sleep 1
else
# ESSID need to be last: most devices re-perform the scanning/discovery
# when this is set, and things like encryption keys had better be
# defined if we want to discover the right set of APs/nodes.
# NOTE: when automatic association does not work, but you manage to get
# an IP address by manually setting the ESSID and then calling dhcpcd,
# then the cause might be the incorrect definition of your ESSID="bla"
# parameter in rc.wireless.conf.
# Debug your wireless problems by running 'iwevent' while the card
# is being configured.
if [ -n "$ESSID" ] ; then
echo "$0: $IWCOMMAND essid \"$ESSID\"" | $LOGGER
$IWCOMMAND essid "$ESSID"
fi
fi
/etc/rc.d/rc.wireless.conf:
Code:
# Wireless LAN adapter configuration
#
# Theory of operation :
#
# The script attempts to match a block of settings to the specific wireless
# card inserted, the *first* block matching the card is used.
# The address format is "hwaddr", with * as a wildcard.
# 'hwaddr' is the unique MAC address identifier of the wireless card.
# The MAC address is usually printed on the card, or can be found via ifconfig.
# Some examples here use only half of the MAC address with a wildcard to
# match a whole family of cards...
#
# All the Wireless specific configuration is done through the Wireless
# Extensions, so we will just call 'iwconfig' with the right parameters
# defined below.
# Of course, you need to have iwconfig installled on your system.
# To download iwconfig, or for more info on Wireless Extensions :
# http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
#
# Note : you don't need to fill all parameters, leave them blank, in most
# cases the driver will initialise itself with sane defaults values or
# automatically figure out the value... And no drivers do support all
# possible settings...
#
# -- This is a modified '/etc/pcmcia/wireless.opts' script --
# -- I added sections for Prism/GT and Atheros based cards --
# -- (supported by the prism54 and madwifi drivers) --
# -- 16/sep/2004 * Eric Hameleers --
#
VERBOSE=1
case "$HWADDR" in
## NOTE : Comment out the following five lines to activate the samples below ...
## --------- START SECTION TO REMOVE -----------
## Pick up any Access Point, should work on most 802.11 cards
*)
INFO="Any ESSID"
ESSID="any"
;;
## ---------- END SECTION TO REMOVE ------------
# Here are a few examples with a few Wireless LANs supported...
# The matching is done on the first 3 bytes of the MAC address
# SMC2835W EZ Connect g 2.4GHz 54 Mbps Wireless Cardbus Adapter
00:04:E2:*)
INFO="SMC2835W EZ Connect g 2.4GHz 54 Mbps Wireless Cardbus Adapter"
# ESSID (extended network name) : My Network, any
ESSID="any"
# NWID/Domain (cell identifier) : 89AB, 100, off
NWID=""
# Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto
MODE="Managed"
# Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency)
FREQ=""
CHANNEL="7"
# Sensitivity (cell size + roaming speed) : 1, 2, 3 ; -70 (dBm)
SENS=""
# Bit rate : auto, 1M, 11M,54M
RATE="auto"
# Encryption key : 4567-89AB-CD, s:password
# Example for 40-bit encryption:
#KEY="883e-aa67-21 [1] key 5501-d0da-87 [2] key 91f5-3368-6b [3] key 2d73-31b7-96 [4]"
# Example for 104-bit encryption (aka 128-bit WEP):
#KEY="d5ad2f05abd048ecf10b1c80c7"
KEY=""
# RTS threshold : off, 500
RTS=""
# Fragmentation threshold : off, 1000
FRAG=""
# Other iwconfig parameters : power off, ap 01:23:45:67:89:AB
IWCONFIG=""
# iwspy parameters : + 01:23:45:67:89:AB
IWSPY=""
# iwpriv parameters : set_port 2, set_histo 50 60
IWPRIV=""
;;
# Multiband Atheros based 802.11a/b/g universal NIC cards
00:05:4E:*)
INFO="Multiband Atheros based 802.11a/b/g universal NIC"
# ESSID (extended network name) : My Network, any
ESSID=""
# Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto
MODE="Managed"
# Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency)
FREQ=""
CHANNEL="7"
# Bit rate : auto, 1M, 11M,54M
RATE="auto"
# Encryption key : 4567-89AB-CD, s:password
# Example for 40-bit encryption:
#KEY="883e-aa67-21 [1] key 5501-d0da-87 [2] key 91f5-3368-6b [3] key 2d73-31b7-96 [4]"
# Example for 104-bit encryption (aka 128-bit WEP):
#KEY="d5ad2f05abd048ecf10b1c80c7"
KEY=""
# Other iwconfig parameters : power off, ap 01:23:45:67:89:AB
IWCONFIG=""
# iwspy parameters : + 01:23:45:67:89:AB
IWSPY=""
# iwpriv parameters : set_port 2, set_histo 50 60
IWPRIV=""
;;
# Lucent Wavelan IEEE (+ Orinoco, RoamAbout and ELSA)
# Note : wvlan_cs driver only, and version 1.0.4+ for encryption support
00:60:1D:*|00:02:2D:*)
INFO="Wavelan IEEE example (Lucent default settings)"
ESSID="Wavelan Network"
MODE="Managed"
#RATE="auto"
KEY="s:secu1"
# To set all four keys, use :
#KEY="s:secu1 [1] key s:secu2 [2] key s:secu3 [3] key s:secu4 [4] key [1]"
# For the RG 1000 Residential Gateway: The ESSID is the identifier on
# the unit, and the default key is the last 5 digits of the same.
#ESSID="084d70"
#KEY="s:84d70"
;;
# Cisco/Aironet 4800/3x0
# Note : MPL driver only (airo/airo_cs), version 1.3 or later
00:40:96:*|00:02:8A:*)
INFO="Cisco/Aironet example (Cisco default settings)"
ESSID="any"
# To set all four ESSID, use iwconfig v21 and the same trick as above
MODE="Managed"
#RATE="11M auto"
#KEY="d5ad2f05abd048ecf10b1c80c7"
KEY="off"
;;
# Samsung MagicLan (+ some other PrismII cards)
# Note : Samsung binary library driver, version 1.20 or later
00:00:F0:*|00:02:78:*)
INFO="Samsung MagicLan example (Samsung default settings)"
ESSID="any"
MODE="Managed"
CHANNEL="4"
RATE="auto"
#KEY="883e-aa67-21 [1] key 5501-d0da-87 [2] key 91f5-3368-6b [3] key 2d73-31b7-96 [4]"
#IWCONFIG="power on"
;;
# Raytheon Raylink/WebGear Aviator2.4
# Note : doesn't work yet, please use for debugging only :-(
00:00:8F:*|00:00:F1:*)
INFO="Raylink/Aviator2.4 example (Aviator default ad-hoc setting)"
ESSID="ADHOC_ESSID"
MODE="Ad-Hoc"
RATE="auto"
IWPRIV="set_framing 1"
;;
# Old Lucent Wavelan
08:00:0E:*)
INFO="Wavelan example (Lucent default settings)"
NWID="0100"
MODE="Ad-Hoc"
FREQ="2.425G"
KEY="off"
;;
# Netwave (Xircom Netwave/Netwave Airsurfer)
00:80:C7:*)
INFO="Netwave example (Netwave default settings)"
NWID="100"
KEY="00"
;;
# Proxim RangeLan2/Symphony (what is the MAC address ???)
XX:XX:XX:*)
INFO="Proxim RangeLan2/Symphony example"
NWID="0"
MODE="Master"
CHANNEL="15"
IWPRIV="setsubchan 1"
;;
# No Wires Needed Swallow 550 and 1100 setting (what is the MAC address ???)
XX:XX:XX:*)
INFO="NWN Swallow example"
ESSID="session"
KEY="0000-0000-00 open"
;;
# Symbol Spectrum24 setting (what is the MAC address ???)
XX:XX:XX:*)
INFO="Symbol Spectrum24 example"
ESSID="Essid string"
;;
# Generic example (decribe all possible settings)
*)
INFO="Fill with your own settings..."
# ESSID (extended network name) : My Network, any
ESSID=""
# NWID/Domain (cell identifier) : 89AB, 100, off
NWID=""
# Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto
MODE=""
# Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency)
FREQ=""
CHANNEL=""
# Sensitivity (cell size + roaming speed) : 1, 2, 3 ; -70 (dBm)
SENS=""
# Bit rate : auto, 1M, 11M
RATE=""
# Encryption key : 4567-89AB-CD, s:password
KEY=""
# RTS threshold : off, 500
RTS=""
# Fragmentation threshold : off, 1000
FRAG=""
# Other iwconfig parameters : power off, ap 01:23:45:67:89:AB
IWCONFIG=""
# iwspy parameters : + 01:23:45:67:89:AB
IWSPY=""
# iwpriv parameters : set_port 2, set_histo 50 60
IWPRIV=""
;;
esac
/etc/rc.d/rc.wlan:
I don't have such file.
/etc/hosts:
Code:
#
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server. Just add the names, addresses
# and any aliases to this file...
#
# By the way, Arnt Gulbrandsen <agulbra@nvg.unit.no> says that 127.0.0.1
# should NEVER be named with the name of the machine. It causes problems
# for some (stupid) programs, irc and reputedly talk. :^)
#
# For loopbacking.
127.0.0.1 localhost
192.168.0.120 Aniki.Malditos Aniki
192.168.0.121 Aniki.Malditos Aniki
# End of hosts.
/etc/hosts.allow:
Code:
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided by
# the '/usr/sbin/tcpd' server.
#
# Version: @(#)/etc/hosts.allow 1.00 05/28/93
#
# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org
#
#
# End of hosts.allow.
/etc/hosts.deny:
Code:
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# Version: @(#)/etc/hosts.deny 1.00 05/28/93
#
# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org
#
#
# End of hosts.deny.
To me the config files looks alright. I think it is the poor Marvell NIC support in Linux that is giving you problems. I suggest use /sbin/modinfo for the Marvell modules. Then try to unload the modules and load them up using some options. Look up the man pages for modprobe.
Try upgrade the kernel to the latest stable version. If that does not work, I suggest buy a PCI or PCI Express NIC card.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.