OpenWRT Onion Omega2 - WiFi should act as AP with DHCP

Hello,
I'm using an Onion Omega 2+ for a small railroad application.

LAN Port can be connected to my home network, sometimes it is diconnected.
IP Range: 192.168.178.x/24
Fixed IP: 192.168.178.57

WiFi should act as AP with own DHCP server.
IP Range: 192.168.0.x/24
Fixed IP: 192.168.0.1

This works fine as long as LAN is connected to my local network. But when I disconnect the LAN cable, the WiFi doesn't accept WiFi connections anymore.

I have LAN and WLAN configured, br-lan is active. DHCP is enabled for WLAN and disabled for LAN.

What do I wrong?

The only way for us to help determine what is wrong is to see your config.

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button (red circle; this works best in the 'Markdown' composer view in the blue oval):

Screenshot 2025-10-20 at 8.14.14 PM

Remember to redact passwords, VPN keys, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall

Hi psherman,

Here is the output. Thanks for Your support!

root@Gleisbox:~# ubus call system board
{
        "kernel": "5.4.238",
        "hostname": "Gleisbox",
        "system": "MediaTek MT7688 ver:1 eco:2",
        "model": "Onion Omega2+",
        "board_name": "onion,omega2p",
        "release": {
                "distribution": "OpenWrt",
                "version": "21.02-SNAPSHOT",
                "revision": "r16881-4a1d8ef55c",
                "target": "ramips/mt76x8",
                "description": "OpenWrt 21.02-SNAPSHOT r16881-4a1d8ef55c"
        }
}
root@Gleisbox:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd71:e0c3:9a6e::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'
        option ipv6 '0'
        option bridge_empty '1'

config interface 'lan'
        option proto 'static'
        option ipaddr '192.168.178.57'
        option netmask '255.255.255.0'
        option device 'br-lan'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '0'

config interface 'WiFi'
        option proto 'static'
        option delegate '0'
        option gateway '192.168.178.1'
        list ipaddr '192.168.10.1/24'
        option device 'bridge'

config device
        option name 'wlan0'
        option ipv6 '0'
        option multicast_router '2'
        option multicast_to_unicast '1'

config device
        option name 'eth0'
        option ipv6 '0'
        option multicast_router '2'

config device
        option type 'bridge'
        option name 'bridge'
        option bridge_empty '1'

root@Gleisbox:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option band '2g'
        option htmode 'HT20'
        option cell_density '0'
        option channel 'auto'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option mode 'ap'
        option ssid 'SRSEII'
        option encryption 'psk2'
        option key 'passphrase'
        option network 'WiFi lan'

root@Gleisbox:~# cat /etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option expandhosts '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option localservice '1'
        option ednspacket_max '1232'
        option domain 'SRSE2LAN'
        list server '192.168.178.1'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ignore '1'
        option dynamicdhcp '0'
        list ra_flags 'none'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

config dhcp 'WiFi'
        option interface 'WiFi'
        option limit '150'
        option leasetime '12h'
        option force '1'
        option start '1'
        list ra_flags 'none'

root@Gleisbox:~# cat /etc/config/firewall

config defaults
        option syn_flood '1'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'
        list network 'wan6'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config rule
        option name 'Support-UDP-Traceroute'
        option src 'wan'
        option dest_port '33434:33689'
        option proto 'udp'
        option family 'ipv4'
        option target 'REJECT'
        option enabled 'false'

config include
        option path '/etc/firewall.user'



Start by upgrading to the latest official openwrt. What you have installed appears to be the vendor firmware which is not supported here.

Do not keep settings when you run the upgrade - the old config is not compatible with the new firmware.

but with 64MB RAM, it isn't a great the device for openwrt -

Hello psherman,
the firmware I use is from the developer of the specific railroad software. I need to use this one.

Regards,
Moritz

Then we can't help you.


It appears you are using firmware that is not from the official OpenWrt project.

When using forks/offshoots/vendor-specific builds that are "based on OpenWrt", there may be many differences compared to the official versions (hosted by OpenWrt.org). Some of these customizations may fundamentally change the way that OpenWrt works. You might need help from people with specific/specialized knowledge about the firmware you are using, so it is possible that advice you get here may not be useful.

You may find that the best options are:

  1. Install an official version of OpenWrt, if your device is supported (see https://firmware-selector.openwrt.org).
  2. Ask for help from the maintainer(s) or user community of the specific firmware that you are using.
  3. Provide the source code for the firmware so that users on this forum can understand how your firmware works (OpenWrt forum users are volunteers, so somebody might look at the code if they have time and are interested in your issue).

If you believe that this specific issue is common to generic/official OpenWrt and/or the maintainers of your build have indicated as such, please feel free to clarify.

1 Like

In that case, please reach out to the developer of the version you are using. Only official openwrt is supported here.

Hello,
I got it running.

The service dnsmasq wasn't activated.

Now, WLAN Clients receive an IP from the WIFI network, the LAN IP is a static IP, the WiFi AP has a static IP, too.

The Internet is routed from WiFi clients through the LAN to the FritzBox.

I have documented the use case and the solution on my (sorry for German) blog:

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.