Drivers for RTL8192SE - OpenSUSE 11.3 - Shuttle XPC XS35 - won't compile

I am struggling to get a makefile to run properly on my machine.
Shuttle XPC XS35
RealTek RTL8192SE wifi PCI board
OpenSUSE 11.3 running kernel 2.6.34.7-0.3

I have the latest drivers - both the ones from their web portal, and the slightly different version that was emailed to me by their FAE.

My challenge is that the makefile doesn’t get past ground zero. It either fails because it can’t find the target for the variable ‘modules’, or if I place the make file it is search for in the target directory - it spawns an endless loop make events (i.e. the primary make file calls the 2nd one, and that in turn tries to make using the primary as a reference … and around we go).

I have ‘make -d’ output from both scenarios … but I didn’t know if it was bad form to paste it directly into this thread.

Customer support from Realtek and Shuttle have been absolutely no help whatsoever – they are breaking their arms pointing at each other.

Any suggested courses of action would be appreciated.

Hello rladams65, welcome to the friendly forums.

I recall that RealTek is publishing useful sourcecode for their drivers. It seems that you have some trouble to compile it. To get the best help here please tell us what source you are compiling (can you give a link?) and what the log output is. Please wrap any code output in

 tags, available when you switch to the "Go Advanced" posting mode and then apply the "#" option to selected text. This will make it readable (preserve spacing).

It is no bad form to paste output into your thread. To the contrary: it is most welcome. People here are a bit technical; they like output (=hard facts) instead of fluffy descriptions. You may still cut out irrelevant parts, to keep it as short as possible. So, go ahead. Everyone will try to help you.

The source tar-ball is located here.
Realtek

Ultimately, the RealTek guys emailed me version “rtl8192se_linux_2.6.0017.0705.2010.tar.gz” which is slightly newer than that link, but as you summarized - my problem is not the driver, but the fact that I can’t compile it. I am not making far enough to know if the driver is a problem.

So - if I follow the directions in the ‘readme’, this is the output from [make -d] (hopefully I did not cut anything crucial out of the 50K output file):


Trying implicit prerequisite `makefile.w'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `makefile.c,v'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `RCS/makefile.c,v'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `RCS/makefile.c'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `s.makefile.c'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `SCCS/s.makefile.c'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.y'.
    Looking for a rule with intermediate file `makefile.y'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `makefile.y,v'.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `RCS/makefile.y,v'.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `RCS/makefile.y'.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `s.makefile.y'.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `SCCS/s.makefile.y'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.l'.
    Looking for a rule with intermediate file `makefile.l'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `makefile.l,v'.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `RCS/makefile.l,v'.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `RCS/makefile.l'.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `s.makefile.l'.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `SCCS/s.makefile.l'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.w'.
    Looking for a rule with intermediate file `makefile.w'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.

So … it basically repeats that sequence with just about every letter of the alphabet, then when we get way down to the bottom we end up with this for awhile:


  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.c'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.cc'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.C'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.cpp'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.p'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.f'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.F'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.r'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.s'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.S'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.mod'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.sh'.
  Looking for a rule with intermediate file `makefile.sh'.

And then we get output that looks like this for awhile:


  No implicit rule found for `Makefile'.
  Finished prerequisites of target file `Makefile'.
 Must remake target `Makefile'.
 Failed to remake target file `Makefile'.
Updating goal targets....
Considering target file `modules'.
 File `modules' does not exist.
 Looking for an implicit rule for `modules'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.o'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.c'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.cc'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.C'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.cpp'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.p'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.f'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.F'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.r'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.s'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.S'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.mod'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.sh'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules,v'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `RCS/modules,v'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `RCS/modules'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `s.modules'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `SCCS/s.modules'.
 Trying pattern rule with stem `modules'.
 Trying implicit prerequisite `modules.o'.
 Looking for a rule with intermediate file `modules.o'.
  Avoiding implicit rule recursion.

Followed by this for the big finale:


  Avoiding implicit rule recursion.
  Trying pattern rule with stem `modules.sh'.
  Trying implicit prerequisite `modules.sh,v'.
  Trying pattern rule with stem `modules.sh'.
  Trying implicit prerequisite `RCS/modules.sh,v'.
  Trying pattern rule with stem `modules.sh'.
  Trying implicit prerequisite `RCS/modules.sh'.
  Trying pattern rule with stem `modules.sh'.
  Trying implicit prerequisite `s.modules.sh'.
  Trying pattern rule with stem `modules.sh'.
  Trying implicit prerequisite `SCCS/s.modules.sh'.
 No implicit rule found for `modules'.
 Finished prerequisites of target file `modules'.
Must remake target `modules'.
make[1]: Entering directory `/lib/modules/2.6.34.7-0.3-desktop/build'
make[1]: *** No rule to make target `modules'.  Stop.
make[1]: Leaving directory `/lib/modules/2.6.34.7-0.3-desktop/build'
Reaping losing child 0x006450f0 PID 6841 
make: *** [all] Error 2
Removing child 0x006450f0 PID 6841 from chain.
linux-i2aw:/usr/src/Realtek/rtl8192se_linux_2.6.0017.0705.2010 # 

Here is the ‘primary’ makefile:


LINUX_KSRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/
RTL819x_DIR = $(shell pwd)
KVER  = $(shell uname -r)
KSRC = /lib/modules/$(KVER)/build
RTL819x_FIRM_DIR = $(RTL819x_DIR)/firmware
HAL_SUB_DIR = rtl8192
MODULE_FILE = $(RTL819x_DIR)/rtllib/Module.symvers
SCRIPT_FOLDER = /etc/realtek

export LINUX_KSRC_MODULE_DIR RTL819x_FIRM_DIR

all: 
ifeq ($(shell uname -r|cut -d. -f1,2), 2.4)
#	@make -C $(RTL819x_DIR)/rtllib
	@make -C $(RTL819x_DIR)/HAL/$(HAL_SUB_DIR) 
	@make -C $(RTL819x_DIR)/wapi_supplicant
else	
#	@make -C $(KSRC) SUBDIRS=$(RTL819x_DIR)/rtllib modules 
#	@test -f $(MODULE_FILE) && cp $(MODULE_FILE) $(RTL819x_DIR)/HAL/$(HAL_SUB_DIR) || echo > /dev/null 
	@make -C $(KSRC) SUBDIRS=$(RTL819x_DIR)/HAL/$(HAL_SUB_DIR) modules 
#	@make -C $(RTL819x_DIR)/wapi_supplicant
endif
install: all
	@grep r8192_pci.ko /lib/modules/$(shell uname -r)/modules.dep && rm -fr /lib/modules/$(shell uname -r)/kernel/drivers/staging/rtl8192e/ || echo > /dev/null
	@grep r8192se_pci.ko /lib/modules/$(shell uname -r)/modules.dep && rm -fr /lib/modules/$(shell uname -r)/kernel/ubuntu/rtl8192se/* || echo > /dev/null
	@rm -f /etc/acpi/wireless-rtl-ac-dc-power.sh
	@rm -f /etc/acpi/events/RadioPower.sh
	@cp -fr realtek/ /etc
	@make -C HAL/$(HAL_SUB_DIR)/ install
#	@cp $(RTL819x_DIR)/wapi_supplicant/wapi_supplicant /usr/bin/
uninstall:
	@make -C HAL/$(HAL_SUB_DIR)/ uninstall
	@rm -fr $(SCRIPT_FOLDER)
	@rm -f /usr/bin/wapi_supplicant
clean:
	@make -C HAL/$(HAL_SUB_DIR)/ clean
	@make -C rtllib/ clean
	@test -r mshclass/ && make -C mshclass/ clean|| echo > /dev/null 
	@test -r wapi_supplicant/ && make -C wapi_supplicant/ clean|| echo > /dev/null 
	@rm -fr Modules.symvers
	@rm -fr Module.symvers
	@rm -fr Module.markers
	@rm -fr modules.order
	@rm -fr .tmp_versions
	@rm -fr *~
	@rm -f tags

Here is the make file from the directory being called by ‘modules’:


NIC_SELECT = RTL8192SE

CC = gcc
KVER  := $(shell uname -r)
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/

ifeq ($(shell uname -r|cut -d. -f1,2), 2.6)
###################### KERNEL 2.6 ################################
ifeq ($(NIC_SELECT),RTL8192CE)
sub_folder = rtl8192c
EXTRA_CFLAGS = -DRTL8192CE
EXTRA_CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 		\
		-DRTL8192SU_DISABLE_CCK_RATE=0 		\
		-DDISABLE_BB_RF=0 			\
		-DRTL92SE_FPGA_VERIFY=0	 		\
		-DSIMULATE_ETHERNET=0 			\
		-DSUPERMAC_92D_ENABLE=0			\
		-DEARLYMODE_ENABLE_FOR_92D=0 		\
		-DRTL8192S_DISABLE_FW_DM=0 		\
		-DMP_CCK_WORKAROUND=0			\
		-DRTL8192SE_DISABLE_MGNT_QUEUE=0	\
		-DRTL8190_Download_Firmware_From_Header=1 \
		-DMUTUAL_AUTHENTICATION=1		\
		-DFOR_QMI=0				\
		-DCONFIG_PM_RTL 			\
		-DCONFIG_PM 				\
		-DENABLE_IPS 				\
		-DENABLE_LPS 				\
		-DCONFIG_ASPM_OR_D3 			\
		-DENABLE_GPIO_RADIO_CTL 		\
		-DMP_DRIVER=0				\
		-DENABLE_DOT11D				\
		#					\
		-DENABLE_TKIP11N 			\
		-D_ENABLE_SW_BEACON 			\
		-DUSE_FW_SOURCE_IMG_FILE 		\
		-DEFUSE_REPG_WORKAROUND			\
		-DENABLE_AMSDU 				\
		-DADHOC_11N 				\
		-DFOR_ANDROID_X86			\
		-DCONFIG_64BIT_DMA			\
		-DCONFIG_BT_30				\
		#
endif


KSRC := /lib/modules/$(KVER)/build
INSTALL_PREFIX :=
IMG_DIR := /lib/firmware/
all: modules

modules:
	$(MAKE) -C $(KSRC) M=$(PWD) CC=$(CC) modules
install: modules

ifeq ($(NIC_SELECT),RTL8192SE)
	install -p -m 644 r8192se_pci.ko $(MODDESTDIR)
endif



I untarred rtl8192se_linux_2.6.0017.0705.2010.tar.gz, changed into the directory, then typed

make

(as ordinary user) and it did compile ok with just one single warning. The end of my compile output is:

  CC [M]  /home/tsp/programs/rtl8192/rtl8192se_linux_2.6.0017.0705.2010/HAL/rtl8192/../../rtllib/wapi.o
  CC [M]  /home/tsp/programs/rtl8192/rtl8192se_linux_2.6.0017.0705.2010/HAL/rtl8192/../../rtllib/wapi_interface.o
  LD [M]  /home/tsp/programs/rtl8192/rtl8192se_linux_2.6.0017.0705.2010/HAL/rtl8192/r8192se_pci.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/tsp/programs/rtl8192/rtl8192se_linux_2.6.0017.0705.2010/HAL/rtl8192/r8192se_pci.mod.o
  LD [M]  /home/tsp/programs/rtl8192/rtl8192se_linux_2.6.0017.0705.2010/HAL/rtl8192/r8192se_pci.ko
make[1]: Leaving directory `/usr/src/linux-2.6.34-12-obj/i386/desktop'
vodoo@host:~/programs/rtl8192/rtl8192se_linux_2.6.0017.0705.2010>

wpa_supplicant-0.6.9 compiles as well, following the instructions. Make sure that you have installed the kernel-source with yast. You need it.

kernel-source … that was my problem. It compiled and I was able to install it.

I have to search outside of the packages already ‘available’ to add kernel-source to my list of repositories in YaST. Once I did that, I was able to install the source.

And that made the directories which the makefile could not find … I did have one compile error.

Thanks a ton.

(PS – I can’t get it to actually configure … but that is a different thread. I appreciate the help)