Rd9700 Linux Driver

0 views
Skip to first unread message

Abbey Synnott

unread,
Aug 3, 2024, 5:32:40 PM8/3/24
to matamoterc

The WiFi adapter works fine on Windows because CD-ROM pops up with appropriate drivers when it's plugged in. But on Arch Linux the driver doesn't show up as a network interface, but the device is recognized. I've tried modprobe'ing sr9700, dm9601 and installed usb_modeswitch and did whatever I could find relating to those but nothing works. The adapter Model No. is ky-rd9700-22

By "network connectivity" I mean connecting to a LAN/WLAN, so the devices can talk to each other, talk to other devices, and go to the Internet. E.g., after setup I should be able to wget stackexchange.com. I don't actually care whether it's WiFi or Ethernet, but I'm guessing that Ethernet should be faster and more reliable (just a guess).

One of the cheapest ways is to connect an Ethernet controller over the SPI bus. Such a controller could be for example ENC28J60 which is often being used for Ethernet connectivity for Arduino. Latest Linux kernels for Raspberry Pi have a driver with a device tree overlay. See for example

For me, the cheapest and easiest way to get Ethernet to the Zero was over USB to my host. I found the link here was the easiest and quickest, set a static IP for the USB0 network connection and it works perfectly for SSH to the Zero when plugged into USB on my laptop and desktop. On windows 10 it does come up as a USB serial port, you have to specify the Acer RDNIS driver but after that works great under windows as well. Windows 7 and 8 just saw it without even asking. Hopefully this helps. :)

However, it turns out that the ESP8266 is actually a ESP8089 IC just rebranded. The ESP8089 is a SDIO wifi chip for small tablets. If you do not pull down GPIO 15 on boot, as you would when running it as a microcontroller, it runs in SDIO mode and is basically an ESP8089 IC at that point.

This project is based on Hackaday.io RPi WiFi project. I have made some modifications to work with the new linux kernel in the new Raspbian and I have written a script to completely automate the process. To use this, you need an ESP-12E or ESP-12F module. The ESP-12F is recommended.

The 33 ohm resistors are necessary to achieve the SDIO speeds required, so please to not leave them out. It is also better to pull from the 5v rail and have a separate LDO for the ESP8266 module, but pulling directly from a 3.3v rail on the Raspberry pi should work fine.

You may want to spend a few more dollars and go with one of the higher end ESP8266 models. These higher end modules have a couple of additional benefits, while still costing less than $10, they contain an ADC something the Pi does not, they also breakout all of the pins from the ESP chip.

A (now) somewhat obvious answer is to get the Raspberry Zero W (Wireless), which on currently seems to retail for about 5 more than a normal Zero (9 to 10 currently on most UK retailers - w/o header pins and other accessories)

I'm late to the party, and you already have some very cheap options, but I reckon you may be able to do it for less - just a couple of resistors - if you have a PC with a spare serial port nearby. The hardware side is a little hacky, and the connection will be SLOW and you do say you want reasonably fast, but I thought it was worth a mention anyway.

I set up the sd card on a raspberry pi 1 because it was simpler to setup that way (I gave it a static ip by editing /etc/dhcpcd.conf)Then the Plugable adapter works with no extra work, you just plug it and the power in and everything works.

compat-drivers is the framework that pulls code from Linux kernel releases and strives to backport them automatically for usage on older Linux kernel releases. compat-drivers allows us to make releases of code from newer Linux kernel releases and get the latest drivers to users without having to recompile their entire kernel.

The kernel.org archive hosts all kernel releases. As the Linux kernel development moves on older kernels get deprecated and a few kernels remain supported. It is imperative that end users / system integrators / Linux distributions upgrade to newer supported kernels regularly otherwise they may end up being stuck on unsupported kernels. The compat-drivers project aims at always providing support of newer drivers down to at least all supported Linux kernel releases as listed on kernel.org. As it is though the project currently takes backporting further and it does support a large amount of older unsupported and deprecated Linux kernel releases. As it is right now all 21 older kernels are supported: 2.6.24 - 3.6.

There are two release types, linux-stable and linux-next releases, for details refer to the releases page. There are also modifications to releases and an extra set of flags are appended to releases depending on the series of types of patches applied to them. For details on these different type of patches that can be applied onto a release refer to the legend of additional patches section.

In order to compile and install modules from the compat-drivers releases you will need to have your kernel headers installed on your system. As you get new drivers though you may need to install newer firmware as well so be sure to always have in synch your /lib/firmware/ directly with the latest firmware from the linux-firmware.git tree.

Selecting your driver can reduce the amount of time to compile compat-drivers. It may also enable kernel compatibility down to older kernels. If you want to restore compat-drivers to enable all drivers again you can use:

We use the updates/ directory so your distribution's drivers are left intact. By default depmod will search for this directory first, but if you find that it does not then check that your depmod.conf file lists the search order correctly with updates appearing first (before built-in). the package should automatically detect this for you and deploy an update for you.

Before loading modules you must first unload your old subsystem modules. Read above how to do this. If you know what module you need you can simply load the module using modprobe. If you are not sure you can just reboot the box.

Please see the reporting bugs section. This cannot be stressed enough: to date we have only have identified 2 backport related bugs, all other reported bugs were real bugs in actual upstream code so be sure to report any bugs found ASAP!

This work is a subset of the Linux kernel as such we keep the kernel's Copyright practice. Some files have their own copyright and in those cases the license is mentioned in the file. All additional work made to building this package is licensed under the GPLv2.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages