Warning - Mikrotik has made some changes on the board and recently ordered units are no longer supported.
NOTE - A work around by compiling openwrt manually can be found here.
|Model||Version||SoC||CPU MHz||Flash MB||RAM MB||WLAN Hardware||WLAN2.4||WLAN5.0||100M ports||Gbit ports||Modem||USB|
|RB951G-2HnD||Atheros AR9344||600||128NAND||128||Atheros AR9344||b/g/n||-||-||5||-||1x 2.0|
|CPU||CPU Speed||RAM (MB)||NAND (MB)||Serial Flash||Ethernet Switch||PoE port||Wireless|
|AR9344||600 MHz||128 (2x W9751G6KB-25)||128 (1x TC58DVG02D5TA00-ND)||MX25L512E||Atheros AR8327 (10M/100M/1000M)||1-in (2000mA) (7w)||AR9344-DC3A|
For a very long time, the gigabit switch did not work properly in OpenWrt for some versions of the SoC (see History below).
The RB951G-2HnD differs from its sister board RB951Ui-2HnD in that it has 5 * GigE instead of 5 * FE ports. The 5 GigE ports are provided via an AR8327 GigE switch chip that is also used in larger routers such as the RB2011-UiAS-2HnD-IN. The 5 FE ports on the RB951Ui-2HnD are inside the AR9344 SOC, they are unused/not-conneced on the RB951G-2hnd. The GigE ports from the AR8327 do not only have the GigE speed benefit, but that chip also has better feature support than the FE ports on the AR9344. For example port mirroring and counters. See swconfig CLI command and Luci configuration in OpenWrt).
|Model||Version||Current Release||Firmware OpenWrt Install||Firmware OpenWrt Upgrade||Firmware OEM Stock|
Please refer to Common Procedures for Mikrotik RouterBoard Products.
/etc/config/network, add these lines to enable the switch, and create 2 vlan interfaces (eth1.11 and eth1.12). The first for ports 5 and 4, and the later for ports 3 and 2. Port 1 on the router is eth0.
config switch 'eth1' option enable '1' option enable_vlan '1' config switch_vlan option device 'eth1' option vlan '11' option vid '11' option ports '0t 1 2' config switch_vlan option device 'eth1' option vlan '12' option vid '12' option ports '0t 3 4'
This section is kept for historical interest, it is no longer relevant starting from OpenWrt 19.07.3 (May 2020)
03/2020: The issue is finally fixed and will be part of OpenWrt 19.07.3
04/2018: https://forum.lede-project.org/t/mikrotik-rb951g-2hnd/8652 suggests that the patch is still needed.
11/2015: If you have a Rev 3 of AR9344, booting OpenWrt (eg: from initramfs) will not bring up the GigE ports correctly.
router# dmesg | grep AR9344 [ 0.000000] SoC: Atheros AR9344 rev 3
The new version (rev 3, requires patch) can apparently be distinguished from the old version (rev 2, works out-of-the-box) by the MAC address:
If you happen to have rev 3, you need to compile and use a 14.07, 15.05 or trunk version of OpenWrt with the following patch applied:
The author of this wiki text recommends to use value
0x6f000000 instead of
0x3e000000 in the patch (throughput tests showed slightly higher values on the GigE ports with that value).
If after installing on a rev 2 device the switch seems to drop packets, you may be able to work around this by holding the reset button during power-on. This delays booting giving the switch more time to initialize. This issue is not noticed during a PXE boot, only after an install to flash.
A kernel module for OpenWRT 18.03.1 wich embeds the fixup code exists: https://github.com/fluciotto/openwrt-kmod-rb951g-2hnd-eth-fix/releases/download/18.03.1/rb951g-2hnd-eth-fix.ko
The source code is available here: https://github.com/fluciotto/openwrt-kmod-rb951g-2hnd-eth-fix
This kernel module permits to use the original (not patched) kernel from OpenWRT. The module can be transfered with the serial port of the router (soldering needed!).