Jump to content

Lan drivers [solved]


xboxboy
 Share

Recommended Posts

Hi guys,

I have a fresh install of 2008.1 now, but I have no network. My motherboard cd has some linux drivers.

 

In the lan folder I have:

src folder

atl1e.7

copying

ldistrib.txt

readme

 

and in the src folder is:

at.h

at_ethtool.c

at_hw.c

at_hw.h

at_main.c

at_osdep.h

at_param.c

atl1e.mod.c

kcompat.c

kcompat.h

kcompat_ethtool.c

makefile

 

Where do I go from here?

Link to comment
Share on other sites

I suppose the wisest move is reading the "readme" file first.

Typically, "make" as user and "make install" as root should create the needed module. For that you will need the matching kernel-devel package, as well as GNU make and gcc installed.

For Mandriva 2009 you shouldn't need anything- the driver is included in the kernel (since 2.6.26, I think, but I may be wrong).

Link to comment
Share on other sites

I just don't get it.

 

I am connected to Bigpond ADSL via my LAN connection on the ADSL modem. I have never ever had to install anything to get ADSL up and running after doing the net connection setup during install or fiddle around afterwards.

 

John.

Link to comment
Share on other sites

Hi Aussie john. I dont get it either, I always am disconnected from the net/router when I install, normally I just plug in the cable and away I go. Im guessing as my board is fairly new that this is why.

Link to comment
Share on other sites

Some motherboards have an ethernet card that just don't simply have the module in the kernel. I had this problem with any distro that didn't have a 2.6.22 or higher kernel, and since I want to use Xen, which normally uses a 2.6.18 kernel, I couldn't use my onboard ethernet which is an Altansic chipset.

 

So while some people don't have problems and can just connect there hardware and get connected, others have problems and need to compile manually to get it working. The ones who had it working, had hardware that has been supported for ages in Linux, and thus the modules were in the kernel by default.

 

xboxboy, yes it's probably because your board is new like mine is, and has a weird chipset that hasn't been introduced into the kernel yet. It should be fine with newer distros though in the future I expect. Please post the results of:

 

lspci

 

so we can see what card you've got and help you accordingly. If you're gonna go with a PCI slot based ethernet card, go with any Intel based ones as this is what I generally use and they're pretty much guaranteed to work mostly. Either that or 3COM.

Link to comment
Share on other sites

  • 3 weeks later...

Hi Ian, sorry about slow reply, decided to redo the boot drive, so have been slow to resinstall 2008.1

 

The out put is:

 

root@localhost ~]# lspci

00:00.0 Host bridge: Intel Corporation Unknown device 2e20 (rev 03)

00:01.0 PCI bridge: Intel Corporation Unknown device 2e21 (rev 03)

00:1a.0 USB Controller: Intel Corporation USB UHCI Controller #4

00:1a.1 USB Controller: Intel Corporation USB UHCI Controller #5

00:1a.2 USB Controller: Intel Corporation USB UHCI Controller #6

00:1a.7 USB Controller: Intel Corporation USB EHCI Controller #2

00:1b.0 Audio device: Intel Corporation HD Audio Controller

00:1c.0 PCI bridge: Intel Corporation PCI Express Port 1

00:1c.4 PCI bridge: Intel Corporation PCI Express Port 5

00:1c.5 PCI bridge: Intel Corporation PCI Express Port 6

00:1d.0 USB Controller: Intel Corporation USB UHCI Controller #1

00:1d.1 USB Controller: Intel Corporation USB UHCI Controller #2

00:1d.2 USB Controller: Intel Corporation USB UHCI Controller #3

00:1d.7 USB Controller: Intel Corporation USB EHCI Controller #1

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 90)

00:1f.0 ISA bridge: Intel Corporation LPC Interface Controller

00:1f.2 RAID bus controller: Intel Corporation 82801 SATA RAID Controller

00:1f.3 SMBus: Intel Corporation SMBus Controller

01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0641 (rev a 1)

02:00.0 Ethernet controller: Attansic Technology Corp. Unknown device 1026 (rev b0)

03:00.0 IDE interface: Marvell Technology Group Ltd. 88SE6121 SATA II Controller (rev b2)

05:03.0 FireWire (IEEE 1394): Agere Systems FW323 (rev 70)

 

 

I copied the driver files off the motherboard cd into the Downloads folders, changed to the src directory within that, and tried make install as the readme file said to, but it has a couple of errors.

 

The kernel dev files are installed, as I have installed the NVIDIA drivers already.

Link to comment
Share on other sites

[root@localhost AR8121-linux-ver1.0.0.7]# cd src
[root@localhost src]# make install
make -C /lib/modules/2.6.24.4-desktop586-1mnb/build SUBDIRS=/home/matthew/Download/AR8121-linux-ver1.0.0.7/src modules
make[1]: Entering directory `/usr/src/linux-2.6.24.4-desktop586-1mnb'
scripts/Makefile.build:46: *** CFLAGS was changed in "/home/matthew/Download/AR8121-linux-ver1.0.0.7/src/Makefile". Fix it to use EXTRA_CFLAGS.  Stop.
make[1]: *** [_module_/home/matthew/Download/AR8121-linux-ver1.0.0.7/src] Error	2
make[1]: Leaving directory `/usr/src/linux-2.6.24.4-desktop586-1mnb'
make: *** [default] Error 2
[root@localhost src]#

 

Where do I go from here?

Edited by xboxboy
Link to comment
Share on other sites

Im told I need to change CFLAGS to EXTRA_CFLAGS, but what part of makefile do I edit???

 

###########################################################################
# Copyright(c) 2007 Atheros Corporation. All rights reserved.
# Copyright(c) 2006 xiong huang <xiong.huang@atheros.com>
#
# Derived from Intel e1000 driver
# Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59
# Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
# There are a lot of defines in here that are unused and/or have cryptic
# names.  Please leave them alone, as they're the closest thing we have
# to a spec from Atheros at present. *ahem* -- CHS
#
###########################################################################
# Driver files

# core driver files
CFILES = at_main.c at_hw.c at_param.c at_ethtool.c kcompat.c  
HFILES = at.h at_hw.h at_osdep.h kcompat.h

ifeq (,$(BUILD_KERNEL))
BUILD_KERNEL=$(shell uname -r)
endif

###########################################################################
# Environment tests

# Kernel Search Path
# All the places we look for kernel source
KSP :=  /lib/modules/$(BUILD_KERNEL)/build \
	/lib/modules/$(BUILD_KERNEL)/source \
	/usr/src/linux-$(BUILD_KERNEL) \
	/usr/src/linux-$($(BUILD_KERNEL) | sed 's/-.*//') \
	/usr/src/kernel-headers-$(BUILD_KERNEL) \
	/usr/src/kernel-source-$(BUILD_KERNEL) \
	/usr/src/linux-$($(BUILD_KERNEL) | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \
	/usr/src/linux

# prune the list down to only values that exist
# and have an include/linux sub-directory
test_dir = $(shell [ -e $(dir)/include/linux ] && echo $(dir))
KSP := $(foreach dir, $(KSP), $(test_dir))

# we will use this first valid entry in the search path
ifeq (,$(KSRC))
 KSRC := $(firstword $(KSP))
endif

ifeq (,$(KSRC))
 $(error Linux kernel source not found)
else
ifeq (/lib/modules/$(shell uname -r)/source, $(KSRC))
 KOBJ :=  /lib/modules/$(shell uname -r)/build
else
 KOBJ :=  $(KSRC)
endif
endif

# check for version.h and autoconf.h for running kernel in /boot (SUSE)
ifneq (,$(wildcard /boot/vmlinuz.version.h))
 VERSION_FILE := /boot/vmlinuz.version.h
 CONFIG_FILE  := /boot/vmlinuz.autoconf.h
 KVER := $(shell $(CC) $(CFLAGS) -E -dM $(VERSION_FILE) | \
	  grep UTS_RELEASE | awk '{ print $$3 }' | sed 's/\"//g')
 ifeq ($(KVER),$(shell uname -r))
# set up include path to override headers from kernel source
x:=$(shell rm -rf include)
x:=$(shell mkdir -p include/linux)
x:=$(shell cp /boot/vmlinuz.version.h include/linux/version.h)
x:=$(shell cp /boot/vmlinuz.autoconf.h include/linux/autoconf.h)
CFLAGS += -I./include
 else
ifneq (,$(wildcard $(KOBJ)/include/linux/utsrelease.h))
  VERSION_FILE := $(KOBJ)/include/linux/utsrelease.h
else
  VERSION_FILE := $(KOBJ)/include/linux/version.h
endif
CONFIG_FILE  := $(KSRC)/include/linux/autoconf.h
 endif
else
 ifneq (,$(wildcard $(KOBJ)/include/linux/utsrelease.h))
VERSION_FILE := $(KOBJ)/include/linux/utsrelease.h
 else
VERSION_FILE := $(KOBJ)/include/linux/version.h
 endif
 CONFIG_FILE  := $(KSRC)/include/linux/autoconf.h
endif

ifeq (,$(wildcard $(VERSION_FILE)))
 $(error Linux kernel source not configured - missing version.h)
endif

ifeq (,$(wildcard $(CONFIG_FILE)))
 $(error Linux kernel source not configured - missing autoconf.h)
endif

# pick a compiler
ifneq (,$(findstring egcs-2.91.66, $(shell cat /proc/version)))
 CC := kgcc gcc cc
else
 CC := gcc cc
endif
test_cc = $(shell $(cc) --version > /dev/null 2>&1 && echo $(cc))
CC := $(foreach cc, $(CC), $(test_cc))
CC := $(firstword $(CC))
ifeq (,$(CC))
 $(error Compiler not found)
endif

# we need to know what platform the driver is being built on
# some additional features are only built on Intel platforms
ARCH := $(shell uname -m | sed 's/i.86/i386/')
ifeq ($(ARCH),alpha)
 CFLAGS += -ffixed-8 -mno-fp-regs
endif
ifeq ($(ARCH),x86_64)
 CFLAGS += -mcmodel=kernel -mno-red-zone
endif
ifeq ($(ARCH),ppc)
 CFLAGS += -msoft-float
endif
ifeq ($(ARCH),ppc64)
 CFLAGS += -m64 -msoft-float
 LDFLAGS += -melf64ppc
endif

# standard flags for module builds
CFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -DDBG=0
CFLAGS += -I$(KSRC)/include -I.
CFLAGS += $(shell [ -f $(KSRC)/include/linux/modversions.h ] && \
		echo "-DMODVERSIONS -DEXPORT_SYMTAB \
			  -include $(KSRC)/include/linux/modversions.h")

CFLAGS += $(CFLAGS_EXTRA)

RHC := $(KSRC)/include/linux/rhconfig.h
ifneq (,$(wildcard $(RHC)))
 # 7.3 typo in rhconfig.h
 ifneq (,$(shell $(CC) $(CFLAGS) -E -dM $(RHC) | grep __module__bigmem))
CFLAGS += -D__module_bigmem
 endif
endif

# get the kernel version - we use this to find the correct install path
KVER := $(shell $(CC) $(CFLAGS) -E -dM $(VERSION_FILE) | grep UTS_RELEASE | \
	awk '{ print $$3 }' | sed 's/\"//g')

# assume source symlink is the same as build, otherwise adjust KOBJ
ifneq (,$(wildcard /lib/modules/$(KVER)/build))
ifneq ($(KSRC),$(shell cd /lib/modules/$(KVER)/build; pwd -P))
 KOBJ=/lib/modules/$(KVER)/build
endif
endif

KKVER := $(shell echo $(KVER) | \
	 awk '{ if ($$0 ~ /2\.[4-9]\./) print "1"; else print "0"}')
ifeq ($(KKVER), 0)
 $(error *** Aborting the build. \
	  *** This driver is not supported on kernel versions older than 2.4.0)
endif

# set the install path
INSTDIR := /lib/modules/$(KVER)/kernel/drivers/net/atl1e

# look for SMP in config.h
SMP := $(shell $(CC) $(CFLAGS) -E -dM $(CONFIG_FILE) | \
	 grep -w CONFIG_SMP | awk '{ print $$3 }')
ifneq ($(SMP),1)
 SMP := 0
endif

ifneq ($(SMP),$(shell uname -a | grep SMP > /dev/null 2>&1 && echo 1 || echo 0))
 $(warning ***)
 ifeq ($(SMP),1)
$(warning *** Warning: kernel source configuration (SMP))
$(warning *** does not match running kernel (UP))
 else
$(warning *** Warning: kernel source configuration (UP))
$(warning *** does not match running kernel (SMP))
 endif
 $(warning *** Continuing with build,)
 $(warning *** resulting driver may not be what you want)
 $(warning ***)
endif

ifeq ($(SMP),1)
 CFLAGS += -D__SMP__
endif

###########################################################################
# 2.4.x & 2.6.x Specific rules

K_VERSION:=$(shell uname -r | cut -c1-3 | sed 's/2\.[56]/2\.6/')

ifeq ($(K_VERSION), 2.6)

# Makefile for 2.6.x kernel
TARGET = atl1e.ko

# man page
MANSECTION = 7
MANFILE = $(TARGET:.ko=.$(MANSECTION))

ifneq ($(PATCHLEVEL),)
EXTRA_CFLAGS += $(CFLAGS_EXTRA)
obj-m += atl1e.o
atl1e-objs := $(CFILES:.c=.o)
else
default:
ifeq ($(KOBJ),$(KSRC))
$(MAKE) -C $(KSRC) SUBDIRS=$(shell pwd) modules
else
$(MAKE) -C $(KSRC) O=$(KOBJ) SUBDIRS=$(shell pwd) modules
endif
endif

else # ifeq ($(K_VERSION),2.6)

# Makefile for 2.4.x kernel
TARGET = atl1e.o

# man page
MANSECTION = 7
MANFILE = $(TARGET:.o=.$(MANSECTION))

# Get rid of compile warnings in kernel header files from SuSE
ifneq (,$(wildcard /etc/SuSE-release))
 CFLAGS += -Wno-sign-compare -fno-strict-aliasing
endif

# Get rid of compile warnings in kernel header files from fedora
ifneq (,$(wildcard /etc/fedora-release))
 CFLAGS += -fno-strict-aliasing
endif

.SILENT: $(TARGET)
$(TARGET): $(filter-out $(TARGET), $(CFILES:.c=.o))
$(LD) $(LDFLAGS) -r $^ -o $@
echo; echo
echo "**************************************************"
echo "** $(TARGET) built for $(KVER)"
echo -n "** SMP			   "
if [ "$(SMP)" = "1" ]; \
	then echo "Enabled"; else echo "Disabled"; fi
echo "**************************************************"
echo

$(CFILES:.c=.o): $(HFILES) Makefile
default:
$(MAKE)

endif # ifeq ($(K_VERSION),2.6)

ifeq (,$(MANDIR))
 # find the best place to install the man page
 MANPATH := $(shell (manpath 2>/dev/null || echo $MANPATH) | sed 's/:/ /g')
 ifneq (,$(MANPATH))
# test based on inclusion in MANPATH
test_dir = $(findstring $(dir), $(MANPATH))
 else
# no MANPATH, test based on directory existence
test_dir = $(shell [ -e $(dir) ] && echo $(dir))
 endif
 # our preferred install path
 # should /usr/local/man be in here ?
 MANDIR := /usr/share/man /usr/man
 MANDIR := $(foreach dir, $(MANDIR), $(test_dir))
 MANDIR := $(firstword $(MANDIR))
endif
ifeq (,$(MANDIR))
 # fallback to /usr/man
 MANDIR := /usr/man
endif

# depmod version for rpm builds
DEPVER := $(shell /sbin/depmod -V 2>/dev/null | \
	  awk 'BEGIN {FS="."} NR==1 {print $$2}')

###########################################################################
# Build rules

$(MANFILE).gz: ../$(MANFILE)
gzip -c $< > $@

install: default $(MANFILE).gz
# remove all old versions of the driver
find $(INSTALL_MOD_PATH)/lib/modules/$(KVER) -name $(TARGET) -exec rm -f {} \; || true
find $(INSTALL_MOD_PATH)/lib/modules/$(KVER) -name $(TARGET).gz -exec rm -f {} \; || true
install -D -m 644 $(TARGET) $(INSTALL_MOD_PATH)$(INSTDIR)/$(TARGET)
ifeq (,$(INSTALL_MOD_PATH))
/sbin/depmod -a || true
else
 ifeq ($(DEPVER),1 )
/sbin/depmod -r $(INSTALL_MOD_PATH) -a || true
 else
/sbin/depmod -b $(INSTALL_MOD_PATH) -a -n $(KVERSION) > /dev/null || true
 endif
endif
install -D -m 644 $(MANFILE).gz $(INSTALL_MOD_PATH)$(MANDIR)/man$(MANSECTION)/$(MANFILE).gz
man -c -P'cat > /dev/null' $(MANFILE:.$(MANSECTION)=) || true

uninstall:
if [ -e $(INSTDIR)/$(TARGET) ]; then \
	rm -f $(INSTDIR)/$(TARGET); \
fi
/sbin/depmod -a
if [ -e $(MANDIR)/man$(MANSECTION)/$(MANFILE).gz ]; then \
	rm -f $(MANDIR)/man$(MANSECTION)/$(MANFILE).gz; \
fi

.PHONY: clean install

clean:
rm -rf $(TARGET) $(TARGET:.ko=.o) $(TARGET:.ko=.mod.c) $(TARGET:.ko=.mod.o) $(CFILES:.c=.o) $(MANFILE).gz .*cmd .tmp_versions

Link to comment
Share on other sites

I was right :)

 

Yes, you even have the Attansic chipset that I have on my ASUS board! So unless you have a new kernel with the Attansic module in it, you'll have a hard job seeing the card. So it would require building the kernel, but check this link:

 

http://atl1.sourceforge.net/

 

and see if your model of board fits here - assuming you got an ASUS. Now, if the kernel is 2.6.21 or higher, then the module should already be there. However, I don't know if yours is an L1 or L2. Post an:

 

lspci -vvv

 

so we can see more info on your network card. Also, I don't know why you're trying to compile Atheros drivers for this card - or at least they look like Atheros ones! Your card isn't Atheros, so I doubt that would work.

 

Try:

 

modprobe atl1

 

and see if you get access to the ethernet card. Then:

 

lsmod | grep atl1

 

to see if it's loaded and possibly in use. Then check ifconfig to see if the interface exists.

Link to comment
Share on other sites

Hi Ian.

 

I found these instructions upon the net (Ubuntu forums actually).

 

copied the driver files/folders into /Downloads

cd into the src folder

 

ran sudo KBUILD_NOPEDANTIC=1 make

ran sudo KBUILD_NOPEDANTIC=1 make install

 

cd to lib//modules......./atl1e

then sudo insmod ./atl1e.ko

 

I have no idea what that KBUILD_NOPEDANTIC does, but that method works, as I'm writing this throug 2008.1! YAY

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...