LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 04-12-2009, 12:54 PM   #1
unclejed613
Member
 
Registered: Mar 2009
Posts: 352

Rep: Reputation: 32
linux comes up with eth0 disabled


after doing a "slackpkg upgrade all", linux now comes up with the eth0 interface disabled. using the kde control center and setting the "activate when computer starts" just results in "eth_up command not found"

looking in messages.1 i find this happening after the upgrade"

Apr 1 17:18:36 localhost logger: /etc/rc.d/rc.inet1: /sbin/ifconfig lo 127.0.0.1
Apr 1 17:18:36 localhost logger: /etc/rc.d/rc.inet1: /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
Apr 1 17:18:36 localhost logger: /etc/rc.d/rc.inet1: /sbin/ifconfig eth0 192.168.0.9 broadcast 192.168.0.255 netmask 255.255.255.0
Apr 1 17:18:36 localhost kernel: e100: eth0: e100_watchdog: link up, 10Mbps, half-duplex
Apr 1 17:18:40 localhost logger: /etc/rc.d/rc.inet1: /sbin/route add default gw 192.168.0.1 metric 1
Apr 1 17:18:41 localhost kernel: NET: Registered protocol family 10
Apr 1 17:18:41 localhost kernel: lo: Disabled Privacy Extensions
Apr 1 17:18:41 localhost sshd[2478]: Server listening on :: port 22.
Apr 1 17:18:41 localhost sshd[2478]: Server listening on 0.0.0.0 port 22.
Apr 1 17:19:12 localhost kernel: ADDRCONF(NETDEV_UP): eth0: link is not ready
Apr 1 17:19:12 localhost kernel: e100: eth0: e100_watchdog: link up, 10Mbps, half-duplex
Apr 1 17:19:12 localhost kernel: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Apr 1 17:19:14 localhost /usr/sbin/gpm[2614]: *** info [startup.c(95)]:
Apr 1 17:19:14 localhost /usr/sbin/gpm[2614]: Started gpm successfully. Entered daemon mode.
Apr 1 17:19:14 localhost /usr/sbin/gpm[2614]: *** info [mice.c(1766)]:
Apr 1 17:19:14 localhost /usr/sbin/gpm[2614]: imps2: Auto-detected intellimouse PS/2
Apr 1 17:20:41 localhost kernel: ADDRCONF(NETDEV_UP): eth0: link is not ready
Apr 1 17:20:41 localhost kernel: e100: eth0: e100_watchdog: link up, 10Mbps, half-duplex
Apr 1 17:20:41 localhost kernel: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Apr 1 17:21:07 localhost kernel: ADDRCONF(NETDEV_UP): eth0: link is not ready
Apr 1 17:21:07 localhost kernel: e100: eth0: e100_watchdog: link up, 10Mbps, half-duplex
Apr 1 17:21:07 localhost kernel: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Apr 1 17:38:35 localhost -- MARK --
_______________________________________________


i can go into control center and turn the card on manually.

here's an extract from dmesg:

e100: Intel(R) PRO/100 Network Driver, 3.5.23-k4-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
PCI: setting IRQ 10 as level-triggered
e100 0000:00:11.0: found PCI INT A -> IRQ 10
e100 0000:00:11.0: PME# disabled
e100: eth0: e100_probe: addr 0xf4100000, irq 10, MAC addr 00:90:27:59:01:c7

___________________________________________________

and an extract fron debug:

Apr 12 10:59:04 linbox kernel: eth0: no IPv6 routers present
Apr 12 10:59:27 linbox dhcpcd[2611]: Broadcasting DHCP_DISCOVER
Apr 12 10:59:37 linbox kernel: eth0: no IPv6 routers present
Apr 12 11:07:58 linbox kernel: eth0: no IPv6 routers present

inet1.conf:

# /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.9"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

# Config information for eth1:
IPADDR[1]=""
NETMASK[1]=""
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]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=96389dc66eaf7e6efd5b5523ae43c7925ff4df2f8b7099495192d44a774fda16"
#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]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=thekey"
# 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 (separated with the pipe (|)
# character, see the example).

__________________________________________________


it's not critical since i can turn it on manually, but it's not normal, and i'd like to fix it.


slackbook says there should be a rc.netdev file, and there isn't one





__________________________________________

Last edited by unclejed613; 04-12-2009 at 12:56 PM.
 
Old 04-12-2009, 02:25 PM   #2
dive
Senior Member
 
Registered: Aug 2003
Location: UK
Distribution: Slackware
Posts: 3,467

Rep: Reputation: Disabled
What happens if you do /etc/rc.d/rc.inet1 start?

Any errors?
 
Old 04-12-2009, 03:47 PM   #3
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 8,559

Rep: Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106
Quote:
Originally Posted by unclejed613 View Post
after doing a "slackpkg upgrade all", linux now comes up with the eth0 interface disabled. using the kde control center and setting the "activate when computer starts" just results in "eth_up command not found"
Are you running a somewhat older version of Slackware?
The KDE network tools used to think they knew better how Slackware's network scripts work. When you try to administer your network using KDE, KDE would modify /etc/rc.d/rc.inet1.
This modification breaks the rc.inet1 script because KDE replaces parts of it with an old incompatible function "eth_up" which is no longer being used.

You should not try to use KDE network configuration as this is totally unsupported (and as you found out it kills your network).

Eric
 
Old 04-12-2009, 04:28 PM   #4
unclejed613
Member
 
Registered: Mar 2009
Posts: 352

Original Poster
Rep: Reputation: 32
i've run netconfig since this started happening and no change. i have removed the eth_up from the rc.inet1 script.... i'll see what i can find in the script that might have been changed. i'm running slack 12.2 with the KDE that came with it.
 
Old 04-12-2009, 04:35 PM   #5
unclejed613
Member
 
Registered: Mar 2009
Posts: 352

Original Poster
Rep: Reputation: 32
here's the script rc.inet1 i'm not too well versed on shell scripts, so i'm not really sure what i'm looking for here....



#! /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=${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 -v "^#" | 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 "Polling for DHCP server on interface ${1}:"
# If you set a timeout, you get one, even if the kernel doesn't think that
# your device is connected, in case /sys isn't right (which it usually isn't
# except right after the device is loaded, when it usually is):
#### (start commented out)
# This is deactivated for now since the kernel has been returning incorrect
# results concerning whether the interface carrier is detected.
#if [ "${DHCP_TIMEOUT[$i]}" = "" ]; then
# ifconfig ${1} up && sleep 1
# CONNSTATUS="$(cat /sys/class/net/${1}/carrier 2> /dev/null)"
# ifconfig ${1} down
# if [ "$CONNSTATUS" = "0" ]; then
# # The kernel has just told us the cable isn't even plugged in, but we will
# # give any DHCP server a short chance to reply anyway:
# echo "No carrier detected on ${1}. Reducing DHCP timeout to 10 seconds."
# DHCP_TIMEOUT[$i]=10
# fi
#fi
#### (end commented out)
# 30 seconds should be a reasonable default DHCP timeout. 60 was too much. :-)
echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -d -t ${DHCP_TIMEOUT[$i]:-30} ${DHCP_OPTIONS} ${1}" | $LOGGER
/sbin/dhcpcd -d -t ${DHCP_TIMEOUT[$i]:-30} ${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:
start
esac

# End of /etc/rc.d/rc.inet1
 
Old 04-12-2009, 04:37 PM   #6
gegechris99
Senior Member
 
Registered: Oct 2005
Location: France
Distribution: Slackware 15.0 64bit
Posts: 1,160
Blog Entries: 5

Rep: Reputation: 392Reputation: 392Reputation: 392Reputation: 392
From which previous version did you upgrade? Was it 12.1?

Also post the result of command "iwconfig" to see which device eth* or wlan0 was automatically assigned to your wireless card.

If no device shows up, check that the kernel module of your wireless card is loaded by running "lsmod". (sorry I can't tell right now which one it is for your card)
 
Old 04-12-2009, 04:57 PM   #7
unclejed613
Member
 
Registered: Mar 2009
Posts: 352

Original Poster
Rep: Reputation: 32
it wasn't an upgrade from a previous version. and i don't have a wireless card installed. all i know is that it comes up with eth0 disabled and not a whole lot of info visible in the logs as to why. i did go into inet1.conf and turn debugging on to see if i could get more info, but not much info gets logged. i wonder if it would help to delete rc.inet1 and inet1.conf and run netconfig again (actually probably better to rename them....)?
 
Old 04-14-2009, 07:54 AM   #8
argon99
Member
 
Registered: Mar 2009
Posts: 37

Rep: Reputation: 16
Please don't use KDE to admin your network. Just go to /etc/rc.d as rot and run ./rc.inet1 restart. This should bring up your interface. But now that you have used KDE I suspect you scripts are hosed. You might want to concider reinstalling them from disk. (NOTE: you don't need to reinstall all of slackware only the init scripts)
 
Old 04-18-2009, 05:35 PM   #9
unclejed613
Member
 
Registered: Mar 2009
Posts: 352

Original Poster
Rep: Reputation: 32
any ones in particular? i tried that with inet1.rc, and that didn't help (although i do know kde did fudge that one). does KDE's web page have a list of such issues?
 
Old 04-18-2009, 05:51 PM   #10
unclejed613
Member
 
Registered: Mar 2009
Posts: 352

Original Poster
Rep: Reputation: 32
i checked, and apparently kde has a patch for the knetconfig scripts, but i am not sure a) how to install the patch, and 2) whether kde will then fix what it has broken....
 
  


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
2 Nics problem: Eth1 disabled Eth0 YAOMK Linux - Networking 5 11-30-2008 04:11 AM
eth0 strange behaviour - reports "disabled" but works with some functions. Keithj Linux - Networking 1 08-29-2008 05:14 PM
ndiswrapper error when eth0 disabled crAckZ Mandriva 0 03-23-2006 01:53 PM
"eth0" disabled itself. Stingreen Linux - Networking 1 11-13-2001 06:10 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 05:58 PM.

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