OPNsense Forum

Archive => 16.7 Legacy Series => Topic started by: kikko on October 29, 2016, 10:48:53 pm

Title: etherswitch/arswitch support
Post by: kikko on October 29, 2016, 10:48:53 pm
I have a board sporting two Intel NICs. em0 works fine but em1 is hidden behind an arswitch device, which is supported by FreeBSD since release 10.something. Unfortunately it seems etherswitch/arswitch support is not compiled into the default kernel shipped with opnsense. Is there any way I can compile these extra modules separately and add them to the board? Failing that, is there a sanctioned way to recompile a custom kernel to add support for those?
Thanks for helping!
Title: Re: etherswitch/arswitch support
Post by: franco on October 30, 2016, 11:05:41 am
Hi kikko,

The kernel config requires the following lines it seems:

device etherswitch
device miiproxy
device iicbus

I'd have do do some research on impact for our kernel if we include them. Generally we try to stay close to FreeBSD GENERIC, but if this is useful and harmless we can discuss inclusion.

You can recompile and apply a new kernel locally. You can even use this kernel for booting using /boot/loader.conf overrides without getting removed by firmware updates.

Build instructions are below, you need tools.git and src.git:


# cd /usr/src
# git checkout stable/16.7
# cd /usr/tools
# vi config/16.7/SMP
# make kernel

The new kernel is under /tmp/sets, and can be extracted using:

# cd /tmp/sets
# tar xf kernel-*.txz
# mv boot/kernel /boot/kernel.my

You should make sure the following is clear:

/boot/kernel -- the currently active opnsense kernel
/boot/kernel.old -- the previous opnsense kernel

These two kernels will be updated/removed on firmware upgrades so if you place your kernel in those directories your changes will be removed.

I hope that helps you to get started. :)

Title: Re: etherswitch/arswitch support
Post by: kikko on October 30, 2016, 06:14:48 pm
Hi Franco,

Thank you so much for taking the time to answer!

I installed a vanilla FreeBSD-11.0-release on the board, then recompiled a kernel, making sure etherswitch/miiproxy/iccbus were included. To no avail: the hardware still is not recognized by the new kernel. Seems the Atheros switch is hidden by the bios as a VIA device and the kernel cannot do anything out of it. Not sure there is a way I could convince the kernel to explicitly load a driver for an unknown device, and it is probably not recommended anyway.

So forget it: I will not invest more time into that board. No need to activate said modules in the default opnsense kernel, at least not for me :-) I have no idea whether these switches are popular or not. You can certainly find them in smaller TP-Link devices but they are not within your hardware targets I believe.

Thanks a lot for pointing out the build instructions! For some reason I had completely overlooked this page. Will certainly come in handy at some point.

Thanks again for all the efforts, very much appreciated
Title: Re: etherswitch/arswitch support
Post by: franco on October 30, 2016, 07:36:35 pm
Hi kikko,

It seems like a half-finished effort there: the etherswitch man page mentions arswitch, but it has no man page.

However, MIPS kernel configs indicate that the following is also needed:

device arswitch

Maybe worth one more try. :)