LinuxQuestions.org
LinuxAnswers - the LQ Linux tutorial section.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices

Reply
 
Search this Thread
Old 05-22-2006, 03:07 PM   #1
darkalien_fc5
LQ Newbie
 
Registered: May 2006
Posts: 7

Rep: Reputation: 0
How to install Realtek RTL8180 Drivers


Hey everyone,

not too long ago, I posted a thread regarding ndiswrapper for the RTL8180 chipset. By heading over the the Realtek website, I saw they have a kernel 2.6.x drivers.

So I downloaded it, and extracted it.

I did the make command, and it gave me this:

Code:
[root@localhost rtl8180]# make
make -C /lib/modules/2.6.16-1.2111_FC5/build SUBDIRS=/root/Desktop/rtl8180 MODVERDIR=/root/Desktop/rtl8180 modules
make[1]: Entering directory `/usr/src/kernels/2.6.16-1.2111_FC5-x86_64'
  CC [M]  /root/Desktop/rtl8180/r8180_pci_init.o
/root/Desktop/rtl8180/r8180_pci_init.c: In function ‘rtl8180_pci_probe’:
/root/Desktop/rtl8180/r8180_pci_init.c:146: error: ‘struct pci_dev’ has no member n amed ‘slot_name’
/root/Desktop/rtl8180/r8180_pci_init.c:150: error: ‘struct pci_dev’ has no member n amed ‘slot_name’
make[2]: *** [/root/Desktop/rtl8180/r8180_pci_init.o] Error 1
make[1]: *** [_module_/root/Desktop/rtl8180] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.16-1.2111_FC5-x86_64'
make: *** [modules] Error 2
By doing some searching, I found that this error was due to the "if" script in the r8180_pci_init.c file.
Here's what I did to fix it:

Original code:
Code:
	//-----------------------------------------------------------------------------
	// PCI resources: including PCI configuration space and IRQ number.
	//-----------------------------------------------------------------------------
#ifdef RTL_IO_MAP

	pio_start = (unsigned long)pci_resource_start (pdev, 0);
	pio_len = (unsigned long)pci_resource_len (pdev, 0);
	pio_flags = (unsigned long)pci_resource_flags (pdev, 0);

	if (!(pio_flags & IORESOURCE_IO)) {
		DPRINTK_OUTINFO("%s: region #0 not a PIO resource, aborting\n", pdev->slot_name);
		goto fail;
	}
	else{
		DPRINTK_OUTINFO("%s: region #0 IS a PIO resource!\n", pdev->slot_name);
	}

	DPRINTK_OUTINFO("request_region(0x%08lx,0x%08lx) !\n", pio_start,pio_len );
	if( ! request_region( pio_start, pio_len, rtl8180_driver_name ) ){
		DPRINTK_OUTINFO("request_region failed!\n");
		goto fail;
	}

	ioaddr = pio_start;
	dev->base_addr = ioaddr; // device I/O address

#else
	pmem_start = pci_resource_start(pdev, 1);
	pmem_len = pci_resource_len(pdev, 1);
	pmem_flags = pci_resource_flags (pdev, 1);

	if (!(pmem_flags & IORESOURCE_MEM)) {
		DPRINTK_OUTINFO("%s: region #1 not a MMIO resource, aborting\n", pdev->slot_name);
		goto fail;
	}
	else{
		DPRINTK_OUTINFO("%s: region #0 IS a MMIO resource!\n", pdev->slot_name);
	}

	DPRINTK_OUTINFO("request_mem_region(0x%08lx,0x%08lx) !\n", pmem_start,pmem_len );
	if( ! request_mem_region( pmem_start, pmem_len, rtl8180_driver_name ) ) {
		DPRINTK_OUTINFO("request_mem_region failed!\n");
		goto fail;
	}
Mine:

Code:
//-----------------------------------------------------------------------------
	// PCI resources: including PCI configuration space and IRQ number.
	//-----------------------------------------------------------------------------
#ifdef RTL_IO_MAP

	pio_start = (unsigned long)pci_resource_start (pdev, 0);
	pio_len = (unsigned long)pci_resource_len (pdev, 0);
	pio_flags = (unsigned long)pci_resource_flags (pdev, 0);

	//if (!(pio_flags & IORESOURCE_IO)) {
		//DPRINTK_OUTINFO("%s: region #0 not a PIO resource, aborting\n", pdev->slot_name);
		//goto fail;
	//}
	//else{
		//DPRINTK_OUTINFO("%s: region #0 IS a PIO resource!\n", pdev->slot_name);
	//}

	DPRINTK_OUTINFO("request_region(0x%08lx,0x%08lx) !\n", pio_start,pio_len );
	if( ! request_region( pio_start, pio_len, rtl8180_driver_name ) ){
		DPRINTK_OUTINFO("request_region failed!\n");
		goto fail;
	}

	ioaddr = pio_start;
	dev->base_addr = ioaddr; // device I/O address

#else
	pmem_start = pci_resource_start(pdev, 1);
	pmem_len = pci_resource_len(pdev, 1);
	pmem_flags = pci_resource_flags (pdev, 1);

	//if (!(pmem_flags & IORESOURCE_MEM)) {
		//DPRINTK_OUTINFO("%s: region #1 not a MMIO resource, aborting\n", pdev->slot_name);
		//goto fail;
	//}
	//else{
		//DPRINTK_OUTINFO("%s: region #0 IS a MMIO resource!\n", pdev->slot_name);
	//}

	DPRINTK_OUTINFO("request_mem_region(0x%08lx,0x%08lx) !\n", pmem_start,pmem_len );
	if( ! request_mem_region( pmem_start, pmem_len, rtl8180_driver_name ) ) {
		DPRINTK_OUTINFO("request_mem_region failed!\n");
		goto fail;
	}
What I did is disable the if scripts.
Now when I do "make", here's what I get:

Code:
[root@localhost rtl8180]# make
make -C /lib/modules/2.6.16-1.2111_FC5/build SUBDIRS=/root/Desktop/rtl8180 MODVERDIR=/root/Desktop/rtl8180 modules
make[1]: Entering directory `/usr/src/kernels/2.6.16-1.2111_FC5-x86_64'
  CC [M]  /root/Desktop/rtl8180/r8180_pci_init.o
  LD [M]  /root/Desktop/rtl8180/open8180.o
  Building modules, stage 2.
  MODPOST
*** Warning: "rtl8180_remove" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_init" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_open" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl_register_netdev" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_get_stats" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_xmit" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl_alloc_wlandev" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl_unregister_netdev" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_close" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_ioctl" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_set_multicast_list" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "wlan_debug" [/root/Desktop/rtl8180/open8180.ko] undefined!
  LD [M]  /root/Desktop/rtl8180/open8180.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.16-1.2111_FC5-x86_64'
My question is this :
What do all these warnings mean?

Code:
*** Warning: "rtl8180_remove" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_init" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_open" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl_register_netdev" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_get_stats" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_xmit" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl_alloc_wlandev" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl_unregister_netdev" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_close" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_ioctl" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "rtl8180_set_multicast_list" [/root/Desktop/rtl8180/open8180.ko] undefined!
*** Warning: "wlan_debug" [/root/Desktop/rtl8180/open8180.ko] undefined!
Please help me, I'm fairly new at linux, and worst of all at the 64-bit architecture. Any help will be grealtly appreciated, the only reason I use Wshits XP is because my wireless card works there.

Last edited by darkalien_fc5; 05-22-2006 at 03:12 PM.
 
Old 05-24-2006, 10:36 AM   #2
kaz2100
Senior Member
 
Registered: Apr 2005
Location: Penguin land, with apple, no gates
Distribution: Debian testing woody(32) sarge etch lenny squeeze(+64) wheezy jessie
Posts: 1,455

Rep: Reputation: 84
These say several symbols are missing.

Try

http://rtl8180-sa2400.sourceforge.net/
or
http://www.fsf.org/resources/hw/net/wireless/cards.html

I had some trouble with RealTek dirver, but serialmonkey one works fine.
 
Old 05-25-2006, 12:54 AM   #3
darkalien_fc5
LQ Newbie
 
Registered: May 2006
Posts: 7

Original Poster
Rep: Reputation: 0
Ok, I have installed the opensource drivers from the first link you gave me.

Now, how do I set them to be used with my card?
 
Old 05-25-2006, 12:58 AM   #4
Nylex
LQ Addict
 
Registered: Jul 2003
Location: London, UK
Distribution: Slackware
Posts: 7,464

Rep: Reputation: Disabled
You probably need to load the module. Try running "modprobe rtl8180-sa2400" as root.
 
Old 05-25-2006, 08:47 AM   #5
kaz2100
Senior Member
 
Registered: Apr 2005
Location: Penguin land, with apple, no gates
Distribution: Debian testing woody(32) sarge etch lenny squeeze(+64) wheezy jessie
Posts: 1,455

Rep: Reputation: 84
If you are still in trouble, check following
dmesg, lspci, and syslog (/var/log/message or something like this)
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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
Realtek RTL8180 not working on Kanotix Linux ZippoTrickin Linux - Hardware 6 06-04-2005 01:40 PM
Install Realtek AC'97 drivers/modules Buck1 Linux - Hardware 3 04-15-2005 11:51 PM
Belkin F5D6020 Realtek RTL8180 wi-ft card on RH Linux 9.0 pvrbharg Linux - Wireless Networking 5 06-28-2004 10:52 AM
RealTek 81810 drivers ScepterXT Linux - Hardware 0 03-09-2004 03:50 PM
RTL8180 PCMCIA Wireless NIC install ? Finlay Slackware 1 12-10-2003 04:49 PM


All times are GMT -5. The time now is 10:39 AM.

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
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration