 |
 |
 |
 |
| Hardware & Laptops Help with your hardware, including laptop issues |

24th October 2012, 01:18 PM
|
|
Registered User
|
|
Join Date: Oct 2012
Location: Charlotte
Posts: 6

|
|
|
Having trouble installing the driver for a USB to Ethernet adapter
Hello all,
I am new to the forums, and fairly new to Linux, I am having an issue installing a USB to Ethernet driver on my Fedora 17 machine.
SY-ADA24024] <-- This is the model.
They have Linux drivers included on their software download page, after downloading the drivers and attempting to install them, I am receiving an error message, and since I'm fairly new to Linux, I was hoping to get some help here.
There is a readme file in the downloads, unfortunately it's almost entirely in Chinese, here is the translation thanks to Google.
Quote:
1, the build environment:
1.1 If the host platform such as X86, MIPS, make sure that the compiler environment has been ok.
1.2 If the ARM target platform, make sure that the cross-compiler environment ok.
(NOTE: the general kernel can compile environment default have been ok)
2, confirm the linux kernel source tree
2.1 Please kernel code in the compiler environment.
2.2 kernel has been verified against the driver code in version 2.6.28 and 2.6.29
3, confirm the driver needs kernel compile options (make menuconfig)
<Note:
1, if the cross-compiler, please confirm CROSS_COMPILE = xxx
Such as xxx mips little-endian mode: mipsel-linux-
Arm under: elf-linux-or arm-linux-such as.
2, this CROSS_COMPILE = mipsel-linux-can on the make menuconfig = mipsel-linux-
*Can also be placed in the source code of the Makefile.
>
3.1 determine the file mii.c be included into the kernel code, pictures mii-specific process, such as attachments 1, 2, 3, 4
3.2 determine file usbnet.c of have to be included into the kernel code, specific processes such as the attached picture usbnet-1, 2, 3, 4
4, compile the kernel code
cd $ (KERNEL_DIR) /;; here is to the linux kernel source tree directory
make
5, compiled qf9700 drive
5.1 Go to driver code directory: cd qf9700 /
5.2 in accordance with the actual situation of the driver in the Makefile to modify the parameters
KERNEL_DIR: = This needs to be modified according to the actual situation of the location of the kernel source code the: / root/linux-2.6.28-test /
KERNEL_VERSION: = This needs to be modified in accordance with the actual situation for the version of the kernel source code, such as: 2.6.28-15
Version of the name of the upper left to see is make menuconfig
5.3 to compile the driver
make
6, install the kernel and driver
6.1 install kernel drivers to the kernel code tree, as root, type:
make modules_install
6.2 added the driver
cp qf9700.ko / lib / modules / $ (KERNEL_VERSION) / kernel / drivers / net / usb /
6.2 compiled kernel and driver
Kernel: $ (KERNEL_DIR) / vmlinux
All drives can be used in: / lib / modules / $ (KERNEL_VERSION) /.
7, other
a kernel related resources used by the driver the mii.c and usbnet.c two files, all need to be compiled into the kernel or incorporated into the module
b, drive on the target platform or host platform will qf9700.ko appear in the appropriate platform to see the correct driver loaded by lsmod.
|
Quote:
[sdaniels@sdaniels-fedora ~]$ cd Downloads/SY-ADA24024/WN001/Linux/
[sdaniels@sdaniels-fedora Linux]$ sudo make
[sudo] password for sdaniels:
Building QF9700 USB2NET chip driver...
make[1]: Entering directory `/usr/src/kernels/3.6.2-4.fc17.x86_64'
CC [M] /home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.o
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c: In function ‘qf_read’:
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:36:2: error: implicit declaration of function ‘devdbg’ [-Werror=implicit-function-declaration]
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c: In function ‘qf_write_async_helper’:
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:115:3: error: implicit declaration of function ‘deverr’ [-Werror=implicit-function-declaration]
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c: In function ‘qf9700_set_multicast’:
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:356:45: error: ‘struct net_device’ has no member named ‘mc_count’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:358:16: error: ‘struct net_device’ has no member named ‘mc_count’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:359:36: error: ‘struct net_device’ has no member named ‘mc_list’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:362:22: error: ‘struct net_device’ has no member named ‘mc_count’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:362:56: error: dereferencing pointer to incomplete type
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:363:14: error: dereferencing pointer to incomplete type
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c: In function ‘qf9700_bind’:
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:380:10: error: ‘struct net_device’ has no member named ‘do_ioctl’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:381:10: error: ‘struct net_device’ has no member named ‘set_multicast_list’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c: In function ‘qf9700_rx_fixup’:
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:443:25: error: ‘struct usbnet’ has no member named ‘stats’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:444:25: error: ‘struct usbnet’ has no member named ‘stats’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:445:25: error: ‘struct usbnet’ has no member named ‘stats’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:446:25: error: ‘struct usbnet’ has no member named ‘stats’
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:447:25: error: ‘struct usbnet’ has no member named ‘stats’
cc1: some warnings being treated as errors
make[2]: *** [/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.o] Error 1
make[1]: *** [_module_/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.6.2-4.fc17.x86_64'
make: *** [all] Error 2
[sdaniels@sdaniels-fedora Linux]$
|
Honestly, I am not sure where to go from here. Thanks in advance for any assistance.
-Scott
|

25th October 2012, 11:30 AM
|
|
Registered User
|
|
Join Date: Dec 2006
Posts: 1,718

|
|
|
Re: Having trouble installing the driver for a USB to Ethernet adapter
|

25th October 2012, 02:58 PM
|
|
Registered User
|
|
Join Date: Oct 2012
Location: Charlotte
Posts: 6

|
|
|
Re: Having trouble installing the driver for a USB to Ethernet adapter
I managed to get the patch to apply to the qf9700.c file, but not the qf9700.h file.
When I run make, I now get this
Quote:
[root@sdaniels-fedora Linux]# make
Building QF9700 USB2NET chip driver...
make[1]: Entering directory `/usr/src/kernels/3.6.2-4.fc17.x86_64'
CC [M] /home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.o
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:391:2: error: unknown field ‘ndo_set_multicast_list’ specified in initializer
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:391:2: warning: initialization from incompatible pointer type [enabled by default]
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:391:2: warning: (near initialization for ‘qf9700_netdev_ops.ndo_set_config’) [enabled by default]
make[2]: *** [/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.o] Error 1
make[1]: *** [_module_/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.6.2-4.fc17.x86_64'
make: *** [all] Error 2
[root@sdaniels-fedora Linux]#
|
When I tried the statement that was in the comments of his blog 'depmod -a && modprobe qf9700' I get this:
Quote:
[root@sdaniels-fedora Linux]# depmod -a && modprobe qf9700
ERROR: could not insert 'qf9700': Exec format error
[root@sdaniels-fedora Linux]#
|
Thanks for the link, but unfortunately, I am still stuck
|

27th October 2012, 09:42 AM
|
|
Registered User
|
|
Join Date: Dec 2006
Posts: 1,718

|
|
|
Re: Having trouble installing the driver for a USB to Ethernet adapter
Quote:
|
qf9700.c:391:2: error: unknown field ‘ndo_set_multicast_list’
|
Try to change line 391 of qf9700.c like this:
Code:
// .ndo_set_multicast_list = qf9700_set_multicast,
.ndo_set_rx_mode = qf9700_set_multicast,
You might also have to change some large udelays to mdelays:
Code:
/* power up and reset phy */
qf_write_reg(dev, PRR, 1);
//udelay(20 * 1000); // at least 10ms, here 20ms for safe
mdelay (20); // at least 10ms, here 20ms for safe
qf_write_reg(dev, PRR, 0);
//udelay(2 * 1000); // at least 1ms, here 2ms for reading right register
mdelay (2); // at least 1ms, here 2ms for reading right register
Now the module should compile with kernel 3.4.11 ;-)
|

29th October 2012, 01:36 PM
|
|
Registered User
|
|
Join Date: Oct 2012
Location: Charlotte
Posts: 6

|
|
|
Re: Having trouble installing the driver for a USB to Ethernet adapter
Unfortunately, I'm still having issues. I tried editing the qf9700.c file, like you suggested, and I got this when I tried to compile.
Quote:
[sdaniels@sdaniels-fedora Linux]$ sudo make
Building QF9700 USB2NET chip driver...
make[1]: Entering directory `/usr/src/kernels/3.6.2-4.fc17.x86_64'
CC [M] /home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.o
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:391:2: error: unknown field ‘ndo_set_multicast_list’ specified in initializer
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:391:2: warning: initialization from incompatible pointer type [enabled by default]
/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c:391:2: warning: (near initialization for ‘qf9700_netdev_ops.ndo_set_config’) [enabled by default]
make[2]: *** [/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.o] Error 1
make[1]: *** [_module_/home/sdaniels/Downloads/SY-ADA24024/WN001/Linux] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.6.2-4.fc17.x86_64'
make: *** [all] Error 2
|
Thank you for your assistance, I appreciate it.
|

30th October 2012, 02:00 PM
|
|
Registered User
|
|
Join Date: Dec 2006
Posts: 1,718

|
|
|
Re: Having trouble installing the driver for a USB to Ethernet adapter
You haven't edited line 391 of /home/sdaniels/Downloads/SY-ADA24024/WN001/Linux/qf9700.c yet.
Replace ".ndo_set_multicast_list" with ".ndo_set_rx_mode"
Then these errors will disappear ;-)
|

30th October 2012, 02:22 PM
|
|
Registered User
|
|
Join Date: Oct 2012
Location: Charlotte
Posts: 6

|
|
|
Re: Having trouble installing the driver for a USB to Ethernet adapter
Oh, I misunderstood your post, my apologies, I will give it another go. Thanks.
---------- Post added at 09:22 AM ---------- Previous post was at 09:07 AM ----------
It compiled! Thanks so much. Now all that is left is for me to install the driver, correct? I've looked at so much stuff on this issue, and honestly, I have confused myself. Thanks again, for all your assistance.
|
| Thread Tools |
Search this Thread |
|
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
Current GMT-time: 14:55 (Thursday, 23-05-2013)
|
|
 |
 |
 |
 |
|
|