Unsupported driver 'roboswitch' on RT-N16

Hi guys!
I recently bought Asus's router RT-N16 which has those 2 chips:
ETH chip1: BCM4718A1
Switch: BCM53115S
I bought it with intention to connect it to wired 802.1x network in our student's dorm. I flashed it and installed OpenWRT, installed wpa_supplicant, created a config file... so far, so good. But when I want to run wpa_supplicant with the following command:
wpa_supplicant -i eth0.1 -D roboswitch -p multicast_only=1 -c etc/config/wpa.conf
I get an error, saying:

Successfully initialized wpa_supplicant
eth0: Unsupported driver 'roboswitch'

I read some articles, that roboswitch might no longer be supported with switch's version, so I ran the following command to start it too:

wpa_supplicant -i eth0.1 -c etc/config/wpa.conf

which returned me this error:

Successfully initialized wpa_supplicant
n180211: Could not configure driver mode
n180211: deinit ifname=eth0 disabled_lib_rates=0
eth0: Failed to initialize driver interface

I read this ticket too: https://dev.archive.openwrt.org/ticket/14374.html . It was posted 4 years ago, so I have a question, if 802.1x is already supported on my chip? Another question: if it's not supported, is there a way to get this router up and running on 802.1x or did I throw my money away on this router?
If you need any additional config files etc., I'm ready to provide them.

Is there a reason you're not using UCI configuration, netifd, and procd to manage the networking?

1 Like

Sorry, but I'm completly new to OpenWRT. I SSHed to the router, installed wpa-supplicant, made a wpa.conf file with the following configuration in the directory /etc/config:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=0
network={
        key_mgmt=IEEE8021X
        eap=TTLS
        identity="mymail@domain.com"
        anonymous_identity="anonymous@domain.com"
        password="mypassword"
        phase2="auth=PAP"
}

I know that LuCI is the web GUI for management. Is UCI any different?

Edit: Looks like 802.1X authentication may not be supported on the OP's Broadcom switch with current drivers (TBD). As such, the following may not help

netifd manages the network configuration, based on the config files in /etc/config/. Those files are in "UCI" format. It will create and manage the wireless and wired networking based on those files, including spawning and managing hostapd, wpa_supplicant, and the like, including their run-time config files. netifd is sort of, very loosely, the equivalent of the run-time portions of NetworkManager on Ubuntu or the like.

LuCI is a web-based interface to this underlying structure that simplifies router management for common configurations (and a few uncommon ones too). You can use LuCI to "edit" the config files, you can manually edit those files (as I do), or you can go "completely off the rails" and write your own management scripts.

My suggestion would be to stick with the well-tested and very functional operation of netifd and either configure through LuCI or the files in /etc/config/


https://openwrt.org/docs/guide-user/base-system/basic-networking

https://openwrt.org/docs/guide-user/network/wifi/basic


From 2011: http://lists.shmoo.com/pipermail/hostap/2011-March/022871.html

IMHO to make wpa_supplicant work on this link I need either BCM53115
linux driver with working multicast joining support or patch for
wpa_supplicant to make the roboswitch driver to initialize BCM53115
correctly.

From 2016: https://patchwork.ozlabs.org/patch/633472/

This patch adds support for Broadcom's BCM53xx switch family, also known
as RoboSwitch. Some of these switches are ubiquituous, found in home
routers, Wi-Fi routers, DSL and cable modem gateways and other
networking related products.

This drivers adds the library driver (b53_common.c) as well as a few bus
glue drivers for MDIO, SPI, Switch Register Access Block (SRAB) and
memory-mapped I/O into a SoC's address space (Broadcom BCM63xx/33xx).

Basic operations are supported to bring the Layer 1/2 up and running,
but not much more at this point, subsequent patches add the remaining
features.

OpenWrt source present in ./target/linux/generic/files/drivers/net/phy/b53 shows continuing work on this driver.

Thanks for all the information! I appriciate it very much!
If I understand correctly, are you then recommending pushing this patch from Ozlabs to my router's firmware?

Those patches are, as far as I know, already in "upstream" Linux, as well as in OpenWrt. There have been several OpenWrt commits related to that driver since 2016, from what I could tell.

I'd first try configuring the 802.1X through UCI (either directly in /etc/config/network or the like, or, if possible and you prefer, through LuCI).


Here's a compact log of changes in the OpenWrt master branch for that directory:

openwrt/target/linux/generic/files/drivers/net/phy/b53$ git log '--pretty=format:%h %ci %s' .
6680fab947 2018-11-23 21:45:51 +0000 kernel: b53: register switch on probe
bfc6514e94 2018-03-21 10:54:14 +0100 kernel: b53: fix compilation on BCM47XX
0de2213eea 2018-03-21 06:56:43 +0100 kernel: b53: look for NVRAM's "robo_reset" entry on every platform
9004fc3c76 2018-03-13 12:01:36 +0100 kernel: b53: drop support for old location of bcm47xx_nvram.h
b3f95490b9 2017-12-16 22:11:19 +0100 kernel: generic: Add kernel 4.14 support
3056d09b40 2017-09-01 09:30:35 +0200 generic: provide get_port_stats() on b53 switches
5df15c06cc 2017-06-10 12:40:38 +0200 b53: allow configuration through device tree
b008357960 2017-02-06 11:28:54 +0100 kernel: port b53 to use kernel 4.5+ API
8072223347 2016-09-08 23:03:46 +0200 kernel: b53: force BCM531x5 port 5 link state if enabled
846eca673f 2016-07-24 06:38:30 +0200 b53: allow ports with higher numbers than CPU port
cf6d9d97fb 2016-06-20 08:00:14 +0200 kernel: rename B53 symbols to avoid upstream kernel conflict
6831bac31f 2016-02-03 09:33:56 +0000 b53: support setting port link
b3c3542515 2016-02-03 09:33:50 +0000 b53: provide PHY access to swconfig
2b3b4c95f1 2016-01-18 10:46:47 +0000 b53: update header register difinitions
d0aca89c18 2015-07-03 23:27:21 +0000 kernel: b53: fix build with brcm47xx
5c809ecfe7 2015-06-21 21:06:09 +0000 b53: Allow using all 8 ports on BCM53011
9fbd6d0ba0 2015-06-10 09:21:36 +0000 b53: fix memory out of bounds access on 64 bit targets
d24d5412ff 2015-06-10 09:21:31 +0000 b53: widen stp state mask to 3 bits (instead of 2)
e93c68eedd 2015-05-12 13:18:53 +0000 b53: Allow using all ports on BCM53012
06ac2f5c74 2015-04-12 20:00:42 +0000 b53: improve overriding CPU port state on BCM5301X
4e826d8303 2015-04-10 10:29:04 +0000 b53: clean up code to match kernel style better
61885f95f0 2015-04-10 10:28:46 +0000 b53: define registers available and needed on BCM5301X
87568ebeac 2015-03-18 10:44:15 +0000 b53: reverse duplex bit meaning for IMP state override register
085b8e0014 2015-03-15 14:19:28 +0000 b53: global config is part of the management page, not the control page
d75cd5be37 2015-02-27 17:40:17 +0000 b53: fix mmap register read/writes > 32 bit
ed0dc1c97e 2014-07-06 11:40:51 +0000 b53: hardcode reset GPIO for Linksys WRT300N 1.1
c1f397e1e1 2014-02-22 11:16:58 +0000 b53: Make b53_switch_init static
9eb60826f2 2014-02-22 11:16:56 +0000 b53: Add BCM53128 switch support
1f4e6394ed 2014-01-20 20:01:22 +0000 b53: use drvdata to store driver data
de266cd1c1 2014-01-20 19:07:18 +0000 b53: make b53_switch_reset_gpio() static
0cdab0237d 2013-11-13 18:04:39 +0000 kernel: b53: fix untagged shift for BCM5365
72b47e69c4 2013-11-10 23:29:59 +0000 kernel: b53: add initial support for switches in BCM5301X
53a2c19c69 2013-10-06 22:35:28 +0000 kernel: b53: add switch name into printk when it fails.
c75a970337 2013-09-25 21:44:28 +0000 kernel: b53: add Register Access Bridge Registers (SRAB) interface
f5989e7f59 2013-09-15 13:30:49 +0000 kernel: b53: detect revision of BCM5325
49d7c57fd1 2013-09-15 13:29:14 +0000 kernel: b53: fix vlan write for BCM5325 revison 3+
cde1d53625 2013-09-14 16:17:36 +0000 kernel: b53: use hard coded switch reset gpio on some boards.
2da56b4ebc 2013-09-14 16:14:02 +0000 kernel: b53: add soft reset for BCM539x switches
4b0655500a 2013-09-05 20:30:34 +0000 kernel: b53: support phy ids for BCM5365
4eced13a37 2013-09-04 16:15:10 +0000 kernel: b53: allow access the MIB counters on BCM5365
8966b86067 2013-08-01 20:46:56 +0000 kernel: b53: use devm_gpio_request_one() to request gpio
e1127aca07 2013-08-01 19:05:34 +0000 kernel: b53: add support for GPIO reset
f8d55e7541 2013-07-14 14:11:17 +0000 brcm47xx: use b53 phy driver for the switch in kernel 3.10
0b161c6f9e 2013-05-09 20:01:58 +0000 kernel: b53: use correct oops for bcm5365 switch
3010a0b616 2013-02-21 11:45:38 +0000 generic: b53: clear SM_SW_FWD_MODE unconditionally when enabling VLAN
23e71c56ba 2013-02-21 11:45:36 +0000 generic: b53: remove empty spaces
eedc3554fe 2013-02-10 12:31:36 +0000 generic: b53: fix reverted error check in probe
a9175c90cf 2013-01-27 21:39:53 +0000 kernel: b53: the b53 spi driver depends on spi
721bf97863 2013-01-27 17:48:48 +0000 kernel: remove __devinit, __devexit and __devexit_p for kernel 3.8
bb0118c66f 2013-01-23 10:12:33 +0000 generic: add b53 swconfig switch driver

Okay, I now understand what you meant with UCI :slight_smile: Would you please help me with finishing the config?
I really don't know what to change to add wpa supplicant... This is my first ever try to change something over SSH that much... :confused: Sorry..

I've never tried wired 802.1X authentication and a quick search of the forum here wasn't very helpful. Setting Up Wired 802.1X, for example.

There may be some clues for you at

If that doesn't help (and even if it does), you might want to edit the title of your thread to include "wired 802.1X access" or the like, to attract the attention of someone who may have further insight.