Netgear X10 (R9000)

my optical sfp has never been recognized (Netgear X10 (R9000) - #638 by xavave) do you know some compatible ones ?

I don't think it's compatibility issue, I suspect the support is lacking in the OpenWRT build for R9000.

I tried for several months to get the SFP port to work with my ISP provided SFP module but it never worked in the R9000 SFP cage with OpenWRT fw. I should state that the module works in stock fw.

The same SFP module works nicely with OpenWRT X86 using Mellanox ConnectX3 and Intel X701 NICs.

the mono optical sfp provided by my ISP was not working with the stock firmware neither.
Does someone has some infos about R9000 compatible (or working) mono optical sfp? (my isp is SFR - France) maybe this? NETGEAR Compatible Module SFP 1000BASE-BX BiDi 1310nm-TX/1550nm-RX 10km DOM LC Simplex SMF

Good news: on the R9000 with OpenWrt SNAPSHOT r23555-475f38da30 (Linux 6.1.38) the SFP port works with optical, DAC and RJ45 module.

Tested and working SFP modules:
RJ45: Generic Compatible 10GBASE-T SFP+ Copper RJ-45 30m Optical Transceiver Module
DAC: 0.5m (2ft) Generic Compatible 10G SFP+ Passive Direct Attach Copper Twinax Cable
Optical: Generic Compatible 10GBASE-LR SFP+ 1310nm 10km DOM Duplex LC SMF Optical Transceiver

It seems that using Generic Compatible modules from FS is the beste choice for the R9000 SFP Port

Netgear R9000 works very well with this OpenWRT firmware. It should be added to the supported OpenWRT devices in the future.

Special thx to egorenar and everyone else involved

2 Likes

This is the DAC I have. Can confirm that it has worked for me with zero issues for the last several months.

I'm not from FS :slight_smile:;

It seems that using Generic Compatible modules from FS is the beste choice for the R9000 SFP Port

more correct:

It seems that using Generic Compatible modules is a good choice for the R9000 SFP Port

Hi,
Updated firmware compilation available on my NAS: Kernel version 6.1.42 (previous one was 6.1.38)
feel free to download and test it.
image
zip file: https://openwrt.avxt.fr/Linux6_v20230810.zip
directory browsing: https://openwrt.avxt.fr/Linux6_V20230810/

1 Like

Hi xavave,
thank you for the new image.
The new kernel 6.1.42 works on the R9000; SFP works, WiFi is fast.

1 Like

When you state SFP works, do you mean SFP with optical transceiver, DAC or RJ45 module?

Can you provide more details about the optical transceiver?

with SFP works I mean that I connect over SFP to a main router and the Internet.

Tested and working SFP modules:
RJ45: Generic Compatible 10GBASE-T SFP+ Copper RJ-45 30m Optical Transceiver Module
DAC: 0.5m (2ft) Generic Compatible 10G SFP+ Passive Direct Attach Copper Twinax Cable
Optical: Generic Compatible 10GBASE-LR SFP+ 1310nm 10km DOM Duplex LC SMF Optical Transceiver

I have three R9000 routers, one far away connected via optical fiber and SFP+, one connected to a switch with DAC SFP+ and one connected to a switch via 10GBASE-T SFP+

2 Likes

Hi Tony,
How is it going with your plex service? I am considering to invest a portable SSD to serve this purpose. Or is it better to set the plex server in a computer instead?
Thank you.
John

Updated firmware:

  • 10G SFP Port enabled on the LAN
  • 10G SFP LED enabled
  • CPU Load
  • CPU Temperatues

openwrt-alpine-generic-netgear_r9000-squashfs-factory_(Linux-v6.1.44_2023-08-16).img
MD5: dcb5bf6052de7aa98f1b9cfb251cde55

openwrt-alpine-generic-netgear_r9000-squashfs-sysupgrade_(Linux-v6.1.44_2023-08-16).bin
MD5: 77a4f0613f6cdd87dddbc38e32e16912

build-command for R9000

# >>>>>>>>>>>>>
# (1) Prepare
# >>>>>>>>>>>>>

git clone https://github.com/egorenar/openwrt.git R9000
cd R9000
git switch netgear-r9000

echo "src-git alpinefancontrol https://github.com/hurrian/openwrt-alpine-fan-control.git" >> feeds.conf.default
git clone --depth 1 --branch master --single-branch --no-tags --recurse-submodules https://github.com/fantastic-packages/packages package/fantastic-packages

# >>> add the 10G SFP Port (eth0) to the LAN; enable the LED of the 10G SFP Port <<<
echo "uci set network.@device[0].ports='eth0'; uci add_list network.@device[0].ports='eth1.1'; uci commit network" > target/linux/alpine/base-files/etc/uci-defaults/99-custom
echo "uci -q delete system.@led[0]; uci add system led; uci set system.@led[0].name='SFP'; uci set system.@led[0].sysfs='white:sfp'; uci set system.@led[0].trigger='netdev'; uci set system.@led[0].dev='eth0'; uci set system.@led[0].mode='link'; uci add_list system.@led[0].mode='tx'; uci add_list system.@led[0].mode='rx'; uci commit system;" >> target/linux/alpine/base-files/etc/uci-defaults/99-custom

./scripts/feeds update -a
./scripts/feeds install -a

echo "CONFIG_TARGET_alpine=y" >> .config
echo "CONFIG_TARGET_BOARD=alpine" >> .config

make menuconfig


# >>>>>>>>>>>>>>>>>>>>>>>>
# (2) Select in menuconfig
# >>>>>>>>>>>>>>>>>>>>>>>>

Utilities -> Shells -> bash
Utilities -> alpine-fan-control
LUCI -> Collections -> luci
LUCI -> 3. Applications -> luci-app-alpine-fan-control
LUCI -> 3. Applications -> luci-app-cpu-status-mini
LUCI -> 3. Applications -> luci-app-temp-status
Kernel modules -> Network Devices -> kmod-be2net
Kernel modules -> Network Devices -> kmod-macvlan
Kernel modules -> Network Devices -> kmod-sfp
Kernel modules -> Network Support -> kmod-nat46
Kernel modules -> Netfilter Extensions -> kmod-ipt-ipset
Kernel modules -> Netfilter Extensions -> kmod-ipt-nat
Network ->Firewall->iptables-mod-conntrack-extra
Network ->Firewall->iptables-mod-ipopt

#otional
#LUCI -> 2. Modules -> luci-mod-dashboard
#LUCI -> 3. Applications -> luci-app-argon-config
#LUCI -> 3. Applications -> luci-app-mwan3
#LuCI -> VPN -> OpenVPN
#LUCI -> Themes
#Kernel modules -> Network Support -> kmod-tun
#Network -> VPN -> openvpn-openssl
#Network -> Routing And Redirection -> mwan3
#Network -> Routing And Redirection ->vpn-policy-routing
#Kernel modules -> USB Support -> kmod-usb-net-aqc111
#Kernel modules -> USB Support -> kmod-usb-net-rtl8152


# >>>>>>>>>>>>>>>>>>>>>
# (3) Start compiling
# >>>>>>>>>>>>>>>>>>>>>

make V=sc -j$(($(nproc)+1))

ls -arl bin/targets/alpine/generic/

Hi,
thank you for your update,
could you please include your config file in order to know which paquets are inside?

the .config file for the r9000 Linux-v6.1.44_2023-08-16 firmware images

i didn't manage to add eth0 SFP to the lan bridge wih "/R9000/target/linux/alpine/base-files/etc/board.d/02_network"; Fortunately, it also works with uci-defaults/99-custom. :wink:

# >>> add the 10G SFP Port (eth0) to the LAN; enable the LED of the 10G SFP Port <<<
echo "uci set network.@device[0].ports='eth0'; uci add_list network.@device[0].ports='eth1.1'; uci commit network" > target/linux/alpine/base-files/etc/uci-defaults/99-custom
echo "uci -q delete system.@led[0]; uci add system led; uci set system.@led[0].name='SFP'; uci set system.@led[0].sysfs='white:sfp'; uci set system.@led[0].trigger='netdev'; uci set system.@led[0].dev='eth0'; uci set system.@led[0].mode='link'; uci add_list system.@led[0].mode='tx'; uci add_list system.@led[0].mode='rx'; uci commit system;" >> target/linux/alpine/base-files/etc/uci-defaults/99-custom

... to build the firmware I use Ubuntu 22.04 (on Oracle Virtual Box 7.0.10); it's fast and easy to setup

can you recommend an optical sfp+ single core not multi core as the one you mentioned, so i can connect my isp fiber cable directly to r9000 and bypass their supplied ont

Hi, you can try the Generic 1G BiDi SFP from of FS:

1G BiDi SFP

you have to chose the correct wavelength combinarion for TX and RX (ask the provider)

examples:
1000BASE-BX BiDi SFP 1550nm-TX/1310nm-RX
1000BASE-BX BiDi SFP 1310nm-TX/1490nm-RX
1000BASE-BX BiDi SFP 1490nm-TX/1310nm-RX

1 Like

Updated firmware: Linux 6.1.46

  • 10G SFP Port enabled on the LAN
  • 10G SFP LED enabled
  • CPU Load
  • CPU Temperatures
  • HTTPS (LUCI-SSL)

openwrt-alpine-generic-netgear_r9000-squashfs-factory_(Linux-v6.1.46_2023-08-23).img
MD5: 23a172bb98cdce8a9f7df90102ba2ff5

openwrt-alpine-generic-netgear_r9000-squashfs-sysupgrade_(Linux-v6.1.46_2023-08-23).bin
MD5: 1be1efc2c6230aecd8a735cacee54fef

.config_(r9000_Linux-v6.1.46_2023-08-23).zip

build-command for R9000

# >>>>>>>>>>>>>
# (1) Prepare
# >>>>>>>>>>>>>

git clone https://github.com/egorenar/openwrt.git R9000
cd R9000
git switch netgear-r9000

echo "src-git alpinefancontrol https://github.com/hurrian/openwrt-alpine-fan-control.git" >> feeds.conf.default
git clone --depth 1 --branch master --single-branch --no-tags --recurse-submodules https://github.com/fantastic-packages/packages package/fantastic-packages

# >>> add the 10G SFP Port (eth0) to the LAN; enable the LED of the 10G SFP Port <<<
echo "uci set network.@device[0].ports='eth0'; uci add_list network.@device[0].ports='eth1.1'; uci commit network" > target/linux/alpine/base-files/etc/uci-defaults/99-custom
echo "uci -q delete system.@led[0]; uci add system led; uci set system.@led[0].name='SFP'; uci set system.@led[0].sysfs='white:sfp'; uci set system.@led[0].trigger='netdev'; uci set system.@led[0].dev='eth0'; uci set system.@led[0].mode='link'; uci add_list system.@led[0].mode='tx'; uci add_list system.@led[0].mode='rx'; uci commit system;" >> target/linux/alpine/base-files/etc/uci-defaults/99-custom

./scripts/feeds update -a
./scripts/feeds install -a

echo "CONFIG_TARGET_alpine=y" >> .config
echo "CONFIG_TARGET_BOARD=alpine" >> .config

make menuconfig


# >>>>>>>>>>>>>>>>>>>>>>>>
# (2) Select in menuconfig
# >>>>>>>>>>>>>>>>>>>>>>>>

Utilities -> Shells -> bash
Utilities -> alpine-fan-control
LUCI -> Collections -> luci
LUCI -> Collections -> luci-ssl
LUCI -> 3. Applications -> luci-app-alpine-fan-control
LUCI -> 3. Applications -> luci-app-cpu-status-mini
LUCI -> 3. Applications -> luci-app-temp-status
Kernel modules -> Network Devices -> kmod-be2net
Kernel modules -> Network Devices -> kmod-macvlan
Kernel modules -> Network Devices -> kmod-sfp
Kernel modules -> Network Support -> kmod-nat46
Kernel modules -> Network Support -> kmod-tun
Kernel modules -> Netfilter Extensions -> kmod-ipt-ipset
Kernel modules -> Netfilter Extensions -> kmod-ipt-nat
Network ->Firewall->iptables-mod-conntrack-extra
Network ->Firewall->iptables-mod-ipopt

#otional
#LUCI -> 2. Modules -> luci-mod-dashboard
#LUCI -> 3. Applications -> luci-app-argon-config
#LUCI -> 3. Applications -> luci-app-mwan3
#LuCI -> VPN -> OpenVPN
#LUCI -> Themes
#Network -> VPN -> openvpn-openssl
#Network -> Routing And Redirection -> mwan3
#Network -> Routing And Redirection -> vpn-policy-routing
#Kernel modules -> USB Support -> kmod-usb-net-aqc111
#Kernel modules -> USB Support -> kmod-usb-net-rtl8152


# >>>>>>>>>>>>>>>>>>>>>
# (3) Start compiling
# >>>>>>>>>>>>>>>>>>>>>

make V=sc -j$(($(nproc)+1))

ls -arl bin/targets/alpine/generic/

.

In the last build the HTTPS support (LUCI-SSL) was missing. This build fix this security issue.
If the router is used in public, it should only be configured with SSH or web HTTPS.

1 Like

A few questions:

Is there a reliable download location for this firmware? The latest posted one continues to fail on download.

Can the SPF port be configured as WAN?

Updated firmware: Linux 6.1.46

  • 10G SFP Port enabled on the LAN, 10G SFP LED
  • CPU Load, CPU Temperatures, FAN Control
  • HTTPS (LUCI-SSL), OpenVPN
  • Ports Status, Advanced log
  • Speedtest (iperf3 Server, Ookla SpeedTest, librespeed)
  • Multi WAN Manager

openwrt-alpine-generic-netgear_r9000-squashfs-factory-(Linux-v6.1.46_25.08.2023).img.zip
MD5: b0c98b5bfd36585d6328df3e6dbfde95

openwrt-alpine-generic-netgear_r9000-squashfs-sysupgrade-(Linux-v6.1.46_25.08.2023).bin.zip
MD5: 4753e5fea58a3cf8d3d42d4da392950c

.config_r9000-(Linux-v6.1.46_25.08.2023).zip

.

build-command for R9000

# >>>>>>>>>>>>>
# (1) Prepare
# >>>>>>>>>>>>>

git clone https://github.com/egorenar/openwrt.git R9000
cd R9000
git switch netgear-r9000

echo "src-git alpinefancontrol https://github.com/hurrian/openwrt-alpine-fan-control.git" >> feeds.conf.default
git clone --depth 1 --branch master --single-branch --no-tags --recurse-submodules https://github.com/fantastic-packages/packages package/fantastic-packages

# >>> add the 10G SFP Port (eth0) to the LAN; enable the LED of the 10G SFP Port <<<
echo "uci set network.@device[0].ports='eth0'; uci add_list network.@device[0].ports='eth1.1'; uci commit network" > target/linux/alpine/base-files/etc/uci-defaults/99-custom
echo "uci -q delete system.@led[0]; uci add system led; uci set system.@led[0].name='SFP'; uci set system.@led[0].sysfs='white:sfp'; uci set system.@led[0].trigger='netdev'; uci set system.@led[0].dev='eth0'; uci set system.@led[0].mode='link'; uci add_list system.@led[0].mode='tx'; uci add_list system.@led[0].mode='rx'; uci commit system;" >> target/linux/alpine/base-files/etc/uci-defaults/99-custom

# >>> add Network Interfaces Ports Status <<<
printf "printf \"config global 'global'\\\n\\\toption default_additional_info '1'\\\n\\\toption default_h_mode '1'\\\n\\\toption hv_mode_switch_button '1'\\\n\\\n\" > /etc/config/luci_netports\n" >> target/linux/alpine/base-files/etc/uci-defaults/98-netports
printf "printf \"config port\\\n\\\toption ifname 'eth2.2'\\\n\\\toption name 'WAN'\\\n\\\toption type 'copper'\\\n\\\nconfig port\\\n\\\toption ifname 'eth0'\\\n\\\toption name 'SFP'\\\n\\\toption type 'sfp'\\\n\\\nconfig port\\\n\\\toption ifname 'eth1.1'\\\n\\\toption name 'LAN 1-6'\\\n\\\toption type 'copper'\\\n\\\n\" >> /etc/config/luci_netports\n" >> target/linux/alpine/base-files/etc/uci-defaults/98-netports
printf "printf \"config port\\\n\\\toption ifname 'radio0.network1'\\\n\\\toption name 'WLAN 6 GHz'\\\n\\\toption type 'wifi'\\\n\\\nconfig port\\\n\\\toption ifname 'phy1-ap0'\\\n\\\toption name 'WLAN 5 GHz'\\\n\\\toption type 'wifi'\\\n\\\nconfig port\\\n\\\toption ifname 'phy2-ap0'\\\n\\\toption name 'WLAN 2.4 GHz'\\\n\\\toption type 'wifi'\\\n\\\n\" >> /etc/config/luci_netports\n" >> target/linux/alpine/base-files/etc/uci-defaults/98-netports


./scripts/feeds update -a
./scripts/feeds install -a

echo "CONFIG_TARGET_alpine=y" >> .config
echo "CONFIG_TARGET_BOARD=alpine" >> .config

make menuconfig


# >>>>>>>>>>>>>>>>>>>>>>>>
# (2) Select in menuconfig
# >>>>>>>>>>>>>>>>>>>>>>>>

Utilities -> Shells -> bash
Languages -> Phython -> python3-speedtest-cli

LUCI -> Collections -> luci
LUCI -> Collections -> luci-ssl
LUCI -> 2. Moduls -> luci-compat
LUCI -> 3. Applications -> luci-app-alpine-fan-control
LUCI -> 3. Applications -> luci-app-cpu-status-mini
LUCI -> 3. Applications -> luci-app-log
LUCI -> 3. Applications -> luci-app-mwan3
LUCI -> 3. Applications -> luci-app-netspeedtest
LUCI -> 3. Applications -> luci-app-openvpn
LUCI -> 3. Applications -> luci-app-temp-status
LuCI -> 3. Applications -> luci-app-tn-netports

Kernel modules -> Network Devices -> kmod-be2net
Kernel modules -> Network Devices -> kmod-macvlan
Kernel modules -> Network Devices -> kmod-sfp
Kernel modules -> Network Support -> kmod-nat46
Kernel modules -> Network Support -> kmod-tun
Kernel modules -> Netfilter Extensions -> kmod-ipt-ipset
Kernel modules -> Netfilter Extensions -> kmod-ipt-nat
Network -> Firewall -> iptables-mod-conntrack-extra
Network -> Firewall -> iptables-mod-ipopt
Network -> VPN -> openvpn-openssl

#otional
#LUCI -> 2. Modules -> luci-mod-dashboard
#LUCI -> 3. Applications -> luci-app-argon-config
#LUCI -> Themes


# >>>>>>>>>>>>>>>>>>>>>
# (3) Start compiling
# >>>>>>>>>>>>>>>>>>>>>

make V=sc -j$(($(nproc)+1))

ls -arl bin/targets/alpine/generic/

Status Page on R9000


.

iperf3 Server running on Router R9000

Speedtest on client with 2.5GBit Ethernet Adapter

.

Port Status does not show if WAN (eth2.2) is unplugged; same on LAN1-6

Converting to DSA with dual switches ... could fix the problem
Has anyone found a way how to do the DSA configuration for the R9000 switches. Unfortunately I haven't gotten any further. The port configuration would then work much better and easier...

1 Like

Out of curiosity, how close is this to being out of "development" and into the mainstream of OpenWrt?