Skip to content
Snippets Groups Projects
Select Git revision
  • 73ddf5b453908b4ac006925fb8611f4836aefb28
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-07-01
  • experimental-2025-07-01-base
  • experimental-2025-06-25
  • experimental-2025-06-25-base
  • experimental-2025-06-24
  • experimental-2025-06-24-base
  • experimental-2025-06-22
  • experimental-2025-06-22-base
  • v2023.2.5-ffs0.1
  • experimental-2025-06-08
  • experimental-2025-06-08-base
  • experimental-2025-06-06
  • experimental-2025-06-06-base
  • experimental-2025-05-27
  • experimental-2025-05-27-base
  • experimental-2025-05-18
  • experimental-2025-05-18-base
  • experimental-2025-05-15
  • experimental-2025-05-15-base
  • experimental-2025-05-13
41 results

ath79-generic

Blame
    • Sven Eckelmann's avatar
      73ddf5b4
      ath79-generic: Work around boot hang on Unifi AC-Mesh · 73ddf5b4
      Sven Eckelmann authored
      It looks like boot hangs on an AC-Mesh for unknown reasons. The last
      message seen on the console is:
      
          [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
      
      But interestingly, it seems like enabling AIO somehow works around this
      problem. Changing any off the following options seem to have the same
      effect at the moment for Linux 5.10.160+5.10.161
      
          # CONFIG_KERNEL_AIO is not set
          # CONFIG_KERNEL_CGROUPS is not set
          # CONFIG_KERNEL_FANOTIFY is not set
          # CONFIG_KERNEL_FHANDLE is not set
          # CONFIG_KERNEL_IO_URING is not set
          # CONFIG_KERNEL_IPV6_MROUTE is not set
          # CONFIG_KERNEL_IPV6_SEG6_LWTUNNEL is not set
          # CONFIG_KERNEL_IP_MROUTE is not set
          CONFIG_KERNEL_PROC_STRIPPED=y
      
      Just enable CONFIG_AIO until the actual problem was fixed.
      
      Link: https://github.com/freifunk-gluon/gluon/issues/2784
      
      (cherry picked from commit 536c771f)
      73ddf5b4
      History
      ath79-generic: Work around boot hang on Unifi AC-Mesh
      Sven Eckelmann authored
      It looks like boot hangs on an AC-Mesh for unknown reasons. The last
      message seen on the console is:
      
          [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
      
      But interestingly, it seems like enabling AIO somehow works around this
      problem. Changing any off the following options seem to have the same
      effect at the moment for Linux 5.10.160+5.10.161
      
          # CONFIG_KERNEL_AIO is not set
          # CONFIG_KERNEL_CGROUPS is not set
          # CONFIG_KERNEL_FANOTIFY is not set
          # CONFIG_KERNEL_FHANDLE is not set
          # CONFIG_KERNEL_IO_URING is not set
          # CONFIG_KERNEL_IPV6_MROUTE is not set
          # CONFIG_KERNEL_IPV6_SEG6_LWTUNNEL is not set
          # CONFIG_KERNEL_IP_MROUTE is not set
          CONFIG_KERNEL_PROC_STRIPPED=y
      
      Just enable CONFIG_AIO until the actual problem was fixed.
      
      Link: https://github.com/freifunk-gluon/gluon/issues/2784
      
      (cherry picked from commit 536c771f)
    ath79-generic 13.47 KiB
    -- modify kernel builds slightly to work around a boot hang on various device
    -- based on the QCA9563 SoC - especially the Unifi AC-* devices
    config('KERNEL_AIO', true)
    
    local ATH10K_PACKAGES_QCA9880 = {
    	'kmod-ath10k',
    	'-kmod-ath10k-ct',
    	'-kmod-ath10k-ct-smallbuffers',
    	'ath10k-firmware-qca988x',
    	'-ath10k-firmware-qca988x-ct',
    }
    
    local ATH10K_PACKAGES_QCA9887 = {
    	'kmod-ath10k',
    	'-kmod-ath10k-ct',
    	'-kmod-ath10k-ct-smallbuffers',
    	'ath10k-firmware-qca9887',
    	'-ath10k-firmware-qca9887-ct',
    }
    
    local ATH10K_PACKAGES_QCA9888 = {}
    
    -- ALFA NETWORK
    
    device('alfa-network-ap121f', 'alfa-network_ap121f', {
    	factory = false,
    })
    
    -- AVM
    
    device('avm-fritz-box-4020', 'avm_fritz4020', {
    	factory = false,
    })
    
    device('avm-fritz-wlan-repeater-300e', 'avm_fritz300e', {
    	factory = false,
    })
    
    device('avm-fritz-wlan-repeater-450e', 'avm_fritz450e', {
    	factory = false,
    })
    
    -- Buffalo
    
    device('buffalo-wzr-hp-ag300h', 'buffalo_wzr-hp-ag300h')
    device('buffalo-wzr-600dhp', 'buffalo_wzr-600dhp')
    
    device('buffalo-wzr-hp-g300nh-rtl8366s', 'buffalo_wzr-hp-g300nh-s', {
    	manifest_aliases = {
    		'buffalo-wzr-hp-g300nh', -- Upgrade from OpenWrt 19.07
    	},
    })
    
    -- devolo
    
    device('devolo-wifi-pro-1200e', 'devolo_dvl1200e', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    })
    
    device('devolo-wifi-pro-1200i', 'devolo_dvl1200i', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    })
    
    device('devolo-wifi-pro-1750c', 'devolo_dvl1750c', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    })
    
    device('devolo-wifi-pro-1750e', 'devolo_dvl1750e', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    })
    
    device('devolo-wifi-pro-1750i', 'devolo_dvl1750i', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    })
    
    device('devolo-wifi-pro-1750x', 'devolo_dvl1750x', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    })
    
    
    -- D-Link
    
    device('d-link-dap-1330-a1', 'dlink_dap-1330-a1')
    device('d-link-dap-1365-a1', 'dlink_dap-1365-a1')
    
    device('d-link-dap-2660-a1', 'dlink_dap-2660-a1', {
    	factory_ext = '.img',
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('d-link-dir-505', 'dlink_dir-505', {
    	factory = false,
    	manifest_aliases = {
    		'd-link-dir-505-rev-a1', -- Upgrade from OpenWrt 19.07
    		'd-link-dir-505-rev-a2', -- Upgrade from OpenWrt 19.07
    	},
    })
    
    device('d-link-dir825b1', 'dlink_dir-825-b1', {
    	factory = false,
    	class = 'tiny', -- Only 6M of usable Firmware space
    	manifest_aliases = {
    		'd-link-dir-825-rev-b1', -- Upgrade from OpenWrt 19.07
    	},
    })
    
    
    -- Enterasys
    
    device('enterasys-ws-ap3705', 'enterasys_ws-ap3705i', {
    	factory = false,
    })
    
    
    -- GL.iNet
    
    device('gl.inet-6416', 'glinet_6416', {
    	factory = false,
    	manifest_aliases = {
    		'gl-inet-6416a-v1', -- Upgrade from OpenWrt 19.07
    	},
    })
    
    device('gl.inet-gl-ar150', 'glinet_gl-ar150', {
    	factory = false,
    })
    
    device('gl.inet-gl-ar300m-lite', 'glinet_gl-ar300m-lite', {
    	factory = false,
    })
    
    device('gl.inet-gl-ar750', 'glinet_gl-ar750', {
    	factory = false,
    	packages = ATH10K_PACKAGES_QCA9887,
    })
    
    device('gl.inet-gl-usb150', 'glinet_gl-usb150', {
    	factory = false,
    })
    
    -- JOY-IT
    
    device('joy-it-jt-or750i', 'joyit_jt-or750i', {
    	packages = ATH10K_PACKAGES_QCA9887,
    	factory = false,
    })
    
    
    -- Netgear
    
    device('netgear-wndr3700', 'netgear_wndr3700', {
    	factory_ext = '.img',
    })
    
    device('netgear-wndr3700-v2', 'netgear_wndr3700-v2', {
    	manifest_aliases = {
    		'netgear-wndr3700v2', -- Upgrade from OpenWrt 19.07
    	},
    	factory_ext = '.img',
    })
    
    device('netgear-wndr3800', 'netgear_wndr3800', {
    	factory_ext = '.img',
    })
    
    device('netgear-wndr3800ch', 'netgear_wndr3800ch', {
    	factory_ext = '.img',
    	manifest_aliases = {'netgear-wndr3800chmychart'},  -- Upgrade from OpenWrt 19.07
    })
    
    device('netgear-wnr2200-8m', 'netgear_wnr2200-8m', {
    	manifest_aliases = {
    		'netgear-wnr2200', -- Upgrade from OpenWrt 19.07
    	},
    	factory_ext = '.img',
    })
    
    device('netgear-wnr2200-16m', 'netgear_wnr2200-16m', {
    	factory_ext = '.img',
    })
    
    
    -- OCEDO
    
    device('ocedo-koala', 'ocedo_koala', {
    	factory = false,
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('ocedo-raccoon', 'ocedo_raccoon', {
    	factory = false,
    })
    
    -- Onion
    
    -- modular/optional "ethernet expansion board" recommended for config mode
    -- setup via integrated (USB-)tty is possible as well
    device('onion-omega', 'onion_omega')
    
    
    -- OpenMesh
    
    device('openmesh-a40', 'openmesh_a40', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    })
    
    device('openmesh-a60', 'openmesh_a60', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    })
    
    device('openmesh-mr600-v1', 'openmesh_mr600-v1', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-mr600'},
    })
    
    device('openmesh-mr600-v2', 'openmesh_mr600-v2', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-mr600v2'},
    })
    
    device('openmesh-mr900-v1', 'openmesh_mr900-v1', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-mr900'},
    })
    
    device('openmesh-mr900-v2', 'openmesh_mr900-v2', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-mr900v2'},
    })
    
    device('openmesh-mr1750-v1', 'openmesh_mr1750-v1', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-mr1750'},
    })
    
    device('openmesh-mr1750-v2', 'openmesh_mr1750-v2', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-mr1750v2'},
    })
    
    device('openmesh-om2p-v1', 'openmesh_om2p-v1', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-om2p'},
    })
    
    device('openmesh-om2p-v2', 'openmesh_om2p-v2', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x; deacticated at the moment because
    	-- the physical ethernet port for this device changed between 19.07
    	-- and 21.02. And automated update could therefore "break" the
    	-- device until someone physically changed the ethernet cable.
    	-- See https://github.com/freifunk-gluon/gluon/pull/2325#issuecomment-940749284
    	--manifest_aliases = {'openmesh-om2pv2'},
    })
    
    device('openmesh-om2p-v4', 'openmesh_om2p-v4', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-om2pv4'},
    })
    
    device('openmesh-om2p-hs-v1', 'openmesh_om2p-hs-v1', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-om2p-hs'},
    })
    
    device('openmesh-om2p-hs-v2', 'openmesh_om2p-hs-v2', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-om2p-hsv2'},
    })
    
    device('openmesh-om2p-hs-v3', 'openmesh_om2p-hs-v3', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-om2p-hsv3'},
    })
    
    device('openmesh-om2p-hs-v4', 'openmesh_om2p-hs-v4', {
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-om2p-hsv4'},
    })
    
    device('openmesh-om2p-lc', 'openmesh_om2p-lc', {
    	factory = false,
    })
    
    device('openmesh-om5p', 'openmesh_om5p', {
    	factory = false,
    })
    
    device('openmesh-om5p-ac-v1', 'openmesh_om5p-ac-v1', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-om5p-ac'},
    })
    
    device('openmesh-om5p-ac-v2', 'openmesh_om5p-ac-v2', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    	-- old name from OpenWrt 19.07.x
    	manifest_aliases = {'openmesh-om5p-acv2'},
    })
    
    device('openmesh-om5p-an', 'openmesh_om5p-an', {
    	factory = false,
    })
    
    
    -- Plasma Cloud
    
    device('plasma-cloud-pa300', 'plasmacloud_pa300')
    
    device('plasma-cloud-pa300e', 'plasmacloud_pa300e')
    
    
    -- Siemens
    
    device('siemens-ws-ap3610', 'siemens_ws-ap3610', {
    	factory = false,
    })
    
    -- TP-Link
    
    device('tp-link-archer-a7-v5', 'tplink_archer-a7-v5', {
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('tp-link-archer-c2-v3', 'tplink_archer-c2-v3', {
    	packages = ATH10K_PACKAGES_QCA9887,
    	class = 'tiny',
    	broken = true,  -- 64M ath9k + ath10k
    })
    
    device('tp-link-archer-c25-v1', 'tplink_archer-c25-v1', {
    	packages = ATH10K_PACKAGES_QCA9887,
    	broken = true, -- OOM with 5GHz enabled in most environments
    	class = 'tiny', -- 64M ath9k + ath10k
    })
    
    device('tp-link-archer-c5-v1', 'tplink_archer-c5-v1', {
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('tp-link-archer-c58-v1', 'tplink_archer-c58-v1', {
    	packages = ATH10K_PACKAGES_QCA9888,
    	broken = true, -- OOM with 5GHz enabled in most environments
    	class = 'tiny', -- 64M ath9k + ath10k
    })
    
    device('tp-link-archer-c6-v2-eu-ru-jp', 'tplink_archer-c6-v2', {
    	packages = ATH10K_PACKAGES_QCA9888,
    	manifest_aliases = {
    		'tp-link-archer-c6-v2', -- Upgrade from OpenWrt 19.07
    	},
    })
    
    device('tp-link-archer-c60-v1', 'tplink_archer-c60-v1', {
    	packages = ATH10K_PACKAGES_QCA9888,
    	broken = true, -- OOM with 5GHz enabled in most environments
    	class = 'tiny', -- 64M ath9k + ath10k
    })
    
    device('tp-link-archer-c7-v2', 'tplink_archer-c7-v2', {
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('tp-link-archer-c7-v4', 'tplink_archer-c7-v4', {
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('tp-link-archer-c7-v5', 'tplink_archer-c7-v5', {
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('tp-link-archer-c59-v1', 'tplink_archer-c59-v1', {
    	packages = ATH10K_PACKAGES_QCA9888,
    })
    
    device('tp-link-archer-d50-v1', 'tplink_archer-d50-v1', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	factory = false,
    	broken = true, -- 64M ath9k + ath10k & power LED not working
    })
    
    device('tp-link-cpe210-v1', 'tplink_cpe210-v1', {
    	manifest_aliases = {
    		'tp-link-cpe210-v1.0', -- Upgrade from OpenWrt 19.07
    		'tp-link-cpe210-v1.1', -- Upgrade from OpenWrt 19.07
    	},
    })
    device('tp-link-cpe210-v2', 'tplink_cpe210-v2', {
    	manifest_aliases = {
    		'tp-link-cpe210-v2.0', -- Upgrade from OpenWrt 19.07
    	},
    })
    device('tp-link-cpe210-v3', 'tplink_cpe210-v3', {
    	manifest_aliases = {
    		'tp-link-cpe210-v3.0', -- Upgrade from OpenWrt 19.07
    		'tp-link-cpe210-v3.1', -- Upgrade from OpenWrt 19.07
    		'tp-link-cpe210-v3.20', -- Upgrade from OpenWrt 19.07
    	},
    })
    device('tp-link-cpe220-v3', 'tplink_cpe220-v3')
    device('tp-link-cpe510-v1', 'tplink_cpe510-v1', {
    	manifest_aliases = {
    		'tp-link-cpe510-v1.0', -- upgrade from OpenWrt 19.07
    		'tp-link-cpe510-v1.1', -- upgrade from OpenWrt 19.07
    	},
    })
    device('tp-link-cpe510-v2', 'tplink_cpe510-v2')
    device('tp-link-cpe510-v3', 'tplink_cpe510-v3')
    
    device('tp-link-cpe710-v1', 'tplink_cpe710-v1')
    
    device('tp-link-eap225-outdoor-v1', 'tplink_eap225-outdoor-v1', {
    	packages = ATH10K_PACKAGES_QCA9888,
    })
    
    device('tp-link-re355-v1', 'tplink_re355-v1', {
    	manifest_aliases = {
    		'tp-link-re355', -- upgrade from OpenWrt 19.07
    	},
    	packages = ATH10K_PACKAGES_QCA9880,
    	broken = true, -- OOM with 5GHz enabled in most environments if device is 64M RAM variant
    	class = 'tiny', -- Only 6M of usable Firmware space
    })
    
    device('tp-link-re450-v1', 'tplink_re450-v1', {
    	packages = ATH10K_PACKAGES_QCA9880,
    	manifest_aliases = {
    		'tp-link-re450', -- upgrade from OpenWrt 19.07
    	},
    	class = 'tiny', -- Only 6M of usable Firmware space
    })
    
    device('tp-link-tl-wdr3500-v1', 'tplink_tl-wdr3500-v1')
    device('tp-link-tl-wdr3600-v1', 'tplink_tl-wdr3600-v1')
    device('tp-link-tl-wdr4300-v1', 'tplink_tl-wdr4300-v1')
    
    device('tp-link-tl-wr810n-v1', 'tplink_tl-wr810n-v1')
    
    device('tp-link-tl-wr842n-v3', 'tplink_tl-wr842n-v3', {
    	manifest_aliases = {
    		'tp-link-tl-wr842n-nd-v3', -- upgrade from OpenWrt 19.07
    	},
    })
    
    device('tp-link-tl-wr902ac-v1', 'tplink_tl-wr902ac-v1', {
    	packages = ATH10K_PACKAGES_QCA9887,
    	broken = true, -- OOM with 5GHz enabled in most environments
    	class = 'tiny', -- 64M ath9k + ath10k
    })
    
    device('tp-link-tl-wr1043nd-v2', 'tplink_tl-wr1043nd-v2', {
    	manifest_aliases = {
    		'tp-link-tl-wr1043n-nd-v2', -- upgrade from OpenWrt 19.07
    	},
    })
    device('tp-link-tl-wr1043nd-v3', 'tplink_tl-wr1043nd-v3', {
    	manifest_aliases = {
    		'tp-link-tl-wr1043n-nd-v3', -- upgrade from OpenWrt 19.07
    	},
    })
    device('tp-link-tl-wr1043nd-v4', 'tplink_tl-wr1043nd-v4', {
    	manifest_aliases = {
    		'tp-link-tl-wr1043n-nd-v4', -- upgrade from OpenWrt 19.07
    	},
    })
    device('tp-link-tl-wr1043n-v5', 'tplink_tl-wr1043n-v5')
    
    device('tp-link-wbs210-v1', 'tplink_wbs210-v1', {
    	manifest_aliases = {
    		'tp-link-wbs210-v1.20', -- upgrade from OpenWrt 19.07
    	},
    })
    
    device('tp-link-wbs210-v2', 'tplink_wbs210-v2')
    
    device('tp-link-wbs510-v1', 'tplink_wbs510-v1', {
    	manifest_aliases = {
    		'tp-link-wbs510-v1.20', -- upgrade from OpenWrt 19.07
    	},
    })
    
    -- Ubiquiti
    
    device('ubiquiti-nanostation-loco-m-xw', 'ubnt_nanostation-loco-m-xw', {
    	manifest_aliases = {
    		'ubiquiti-loco-m-xw', -- upgrade from OpenWrt 19.07
    		'ubiquiti-nanostation-loco-m2-xw', -- upgrade from OpenWrt 19.07
    		'ubiquiti-nanostation-loco-m5-xw', -- upgrade from OpenWrt 19.07
    	},
    })
    
    device('ubiquiti-nanostation-m-xw', 'ubnt_nanostation-m-xw', {
    	manifest_aliases = {
    		'ubiquiti-nanostation-m2-xw', -- upgrade from OpenWrt 19.07
    		'ubiquiti-nanostation-m5-xw', -- upgrade from OpenWrt 19.07
    	},
    })
    
    device('ubiquiti-unifi-ac-lite', 'ubnt_unifiac-lite', {
    	factory = false,
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('ubiquiti-unifi-ac-lr', 'ubnt_unifiac-lr', {
    	factory = false,
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('ubiquiti-unifi-ac-mesh', 'ubnt_unifiac-mesh', {
    	factory = false,
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('ubiquiti-unifi-ac-mesh-pro', 'ubnt_unifiac-mesh-pro', {
    	factory = false,
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('ubiquiti-unifi-ac-pro', 'ubnt_unifiac-pro', {
    	factory = false,
    	packages = ATH10K_PACKAGES_QCA9880,
    })
    
    device('ubiquiti-unifi-ap', 'ubnt_unifi', {
    	aliases = {
    		'ubiquiti-unifi-ap-lr',
    	},
    	manifest_aliases = {
    		'ubiquiti-unifi',
    	},
    })
    
    device('ubiquiti-nanobeam-m5-xw', 'ubnt_nanobeam-m5-xw')
    
    device('ubiquiti-unifi-ap-outdoor+', 'ubnt_unifi-ap-outdoor-plus', {
    	manifest_aliases = {
    		'ubiquiti-unifiap-outdoor+', -- upgrade from OpenWrt 19.07
    	},
    })
    
    device('ubiquiti-unifi-ap-pro', 'ubnt_unifi-ap-pro')