OpenWRT Aruba AP-303

From FnordWiki
Jump to navigation Jump to search

The Aruba AP-303 hardware became supported by OpenWRT in its 21.02.0 release. Since I am all about free software wherever possible, and these are available at low prices on eBay, I have acquired a few.

Documentation of hardware, OpenWRT installation, and network configuration is here.

About the Hardware and low level things

This mostly lifted from the page describing the AP-303 at openwrt.org. The SoC is a Qualcomm IPQ4029. Marketing data sheet can be seen at https://www.qualcomm.com/content/dam/qcomm-martech/dm-assets/documents/ipq40x8ipq40x9-productbrief.pdf. But in short, it is a 4-core 32-bit ARMv7 system integrating 2.4GHz and 5GHz Wifi components. The AP-303 is equipped with 128MiB NAND Flash memory for persistent storage, and 512MiB of RAM for program code and data.

Serial Console

Serial console is attached to an external micro B style USB connector wired to the 3.3 Volt 2 wire serial. The HPE/Aruba cable with integrated FTDI USB to low voltage serial is sold under part number JY728A. Do not wire standard 12 Volt serial to this connector. Bad things are likely to happen.

Power up, boot loader, etc

Not having any of the Aruba power supplies, but having some Power Over Ethernet capable switches here...

  1. Connect console cable
  2. Set serial port to 9600bps, 8 data bits, no parity, 1 stop bit
  3. Apply power to Ethernet port
  4. Interrupt autoboot when the Hit <Enter> to stop autoboot: message appears.

Bootloader stuff and things

mfginfo will show hardware information including the access point's serial number:

 apboot> mfginfo
 Inventory:
 Card 0: System
       Wired MAC           : 90:4c:81:cb:f1:8c
       Wired MAC Count     : 2
       Serial              : CNG9K9T1HP
       Date Code           : 072418
       Country             : CCODE-US-8392f77e514e9c048d2d1e48520555e3ed355812
 Card 1: CPU
       Assembly            : 2010282C
       Serial              : MX87E0634
       Date Code           : 072418
       Major Rev           : 03
       Minor Rev/Variant   : 00
 apboot>

osinfo will show information about the OS images on the flash storage:

 apboot> osinfo
 Partition 0:
     image type: 0
   machine type: 48
           size: 22859904
        version: 8.7.1.0-8.7.1.0
   build string: ArubaOS version 8.7.1.0-8.7.1.0 for Ursa (p4build@pr-hpn-build09) (gcc version 4.6.3) #77203 SMP Wed Sep 23 00:55:22 UTC 2020
          flags: Instant preserve 
            oem: aruba
 
 Image is signed; verifying checksum... passed
 SHA2 Signature available
 Signer Cert OK
 Policy Cert OK
 RSA signature verified using SHA2.
 
 Partition 1:
     image type: 0
   machine type: 48
           size: 20639392
        version: 8.8.0.0-8.8.0.0
   build string: ArubaOS version 8.8.0.0-8.8.0.0 for Ursa (p4build@pr-hpn-build07) (gcc version 4.6.3) #79697 SMP Sat Mar 27 05:22:09 UTC 2021
          flags: Instant preserve 
            oem: aruba
 
 Image is signed; verifying checksum... passed
 SHA2 Signature available
 Signer Cert OK
 Policy Cert OK
 RSA signature verified using SHA2.
 apboot>

Clearing ArubaOS settings

factory_reset will wipe the AP's configuration. Execute like so:

 apboot> factory_reset
 Clearing state... 
 Checking OS image and flags
 
 Image is signed; verifying checksum... passed
 Preserving image partition 0
 Erasing flash sector @ 0x3a0000... OK
 Erasing UBIFS ...done
 
 Purging environment... 
 preserving os_partition (1)
 Erasing SPI flash...Writing to SPI flash...done
 Erasing SPI flash...Writing to SPI flash...done
 apboot>

Slowing down the autoboot process a bit

After the factory_reset command has been executed, the autoboot delay is only 2 seconds. Here we set it to 20 seconds and save that value to flash for the next power cycle event:

 apboot> setenv bootdelay 20
 apboot> saveenv
 Saving Environment to SPI Flash...
 Erasing SPI flash...Writing to SPI flash...done
 apboot>

Default admin credentials

ArubaOS's administrator user is admin. The default password is the access point's serial number. After wiping the AP's config with the factory_reset boot loader command (above), feel free to login with those on the console port and poke around. But we're not super interested in ArubaOS today, so let's move on to OpenWRT.

OpenWRT installation

OpenWRT installation image acquisition and related setup

OpenWRT is a free Linux distribution primarily designed for WiFi access points and similar devices. Its web home page is https://www.openwrt.org/.

OpenWRT's wiki page for the Aruba Networks AP-303 is https://openwrt.org/toh/aruba/ap-303. See that site for the most current information. But, for our purposes here:

  1. Acquire the OpenWRT installation image from https://downloads.openwrt.org/releases/24.10.0/targets/ipq40xx/generic/openwrt-24.10.0-ipq40xx-generic-aruba_ap-303-initramfs-uImage.itb
  2. Save this image to a location on a TFTP server that will be accessible to the AP and name it ipq40xx.ari. (Or whatever the bootfile variable is in the AP's bootloader.)
  3. Update DHCP server config to include the new AP, too.
    1. set next-server with the TFTP server's IP address
    2. set filename to the installation image file saved above. "openwrt-24.10.0-ipq40xx-generic-aruba_ap-303-initramfs-uImage.itb" for now.
  4. Configure the AP's network port appropriately on the switch side
    1. Boot loader does not know about tagged VLANs. So set primary VLAN as appropriate. And perhaps add some tagged VLANs that will be connected to wireless SSIDs
    2. PoE enabled for the access point to run

OpenWRT installation procedure

  1. Power on the AP, interrupt the autoboot process
  2. Tell the boot loader to get network config from a DHCP server:
    1. Interrupt bootloader at the Hit <Enter> to stop autoboot: message.
    2. Get network config from DHCP server: dhcp
  3. Some boot loader environment variables get set next:
 apboot> setenv bootargs_openwrt "setenv bootargs console=ttyMSM1,9600n8"
 apboot> setenv nandboot_openwrt "run bootargs_openwrt; ubi part aos1; ubi read 0x85000000 kernel; set fdt_high 0x87000000; bootm 0x85000000"
 apboot> setenv ramboot_openwrt "run bootargs_openwrt; setenv ipaddr 192.168.1.105; setenv serverip 192.168.1.75; netget; set fdt_high 0x87000000; bootm"
 apboot> setenv bootcmd "run nandboot_openwrt"
 apboot> saveenv
  1. And now the value of the ramboot_openwrt command is actually executed: apboot> run ramboot_openwrt. This will download the ipq40xx file from the TFTP server and run it. Any complaint about an invalid image format can be safely ignored.
  2. After the Linux kernel stops spewing messages to the console, send a newline (hit Enter), and be greeted with the astonishing ASCII art OpenWRT logo and a root shell prompt.
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 24.10.0, r28427-6df0e3d02a
 -----------------------------------------------------
 === WARNING! =====================================
 There is no root password defined on this device!
 Use the "passwd" command to set up a new password
 in order to prevent unauthorized SSH logins.
 --------------------------------------------------
 root@OpenWrt:~#
  1. Update network to use DHCP and restart it
    1. Change option proto 'static' to option proto 'dhcp' for the lan interface in /etc/config/network. (There is a small implementation of vi included in the installation image.)
    2. Restart all networking by running root@OpenWrt:~# service network restart.
  2. Fetch the OpenWRT sysupgrade image to /tmp on the AP: root@OpenWrt:~# cd /tmp; wget https://downloads.openwrt.org/releases/24.10.0/targets/ipq40xx/generic/openwrt-24.10.0-ipq40xx-generic-aruba_ap-303-squashfs-sysupgrade.bin.
  3. Clean up the flash. No more ArubaOS when this is done.
 root@OpenWrt:/tmp# ubidetach -p /dev/mtd1
 [ 1416.126100] ubi0: detaching mtd1
 [ 1416.126816] ubi0: mtd1 is detached
 root@OpenWrt:/tmp# ubiformat /dev/mtd1
 ubiformat: mtd1 (nand), size 33554432 bytes (32.0 MiB), 256 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
 libscan: scanning eraseblock 255 -- 100 % complete  
 ubiformat: 256 eraseblocks have valid erase counter, mean value is 2
 ubiformat: formatting eraseblock 255 -- 100 % complete  
 root@OpenWrt:/tmp#
  1. Apply the OpenWrt sysupgrade image:
 root@OpenWrt:/tmp# sysupgrade -n openwrt-24.10.0-ipq40xx-generic-aruba_ap-303-squashfs-sysupgrade.bin
 Sat Feb 22 04:12:30 UTC 2025 upgrade: Commencing upgrade. Closing all shell sessions.
 Watchdog handover: fd=3
 - watchdog -
 Watchdog did not previously reset the system
 Sat Feb 22 04:12:31 UTC 2025 upgrade: Sending TERM to remaining processes ...
 Sat Feb 22 04:12:31 UTC 2025 upgrade: Sending signal TERM to netifd (3025)
 Sat Feb 22 04:12:35 UTC 2025 upgrade: Sending KILL to remaining processes ...
 Sat Feb 22 04:12:35 UTC 2025 upgrade: Sending signal KILL to netifd (3025)
 [11388.891505] stage2 (3683): drop_caches: 3
 Sat Feb 22 04:12:44 UTC 2025 upgrade: Switching to ramdisk...
 Sat Feb 22 04:12:46 UTC 2025 upgrade: Performing system upgrade...
 verifying sysupgrade tar file integrity
 [11392.106885] ubi0: attaching mtd1
 [11392.439761] ubi0: scanning is finished
 [11392.453417] ubi0: attached mtd1 (name "ubi", size 32 MiB)
 [11392.471153] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
 [11392.536731] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
 [11392.617971] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
 [11392.700276] ubi0: good PEBs: 256, bad PEBs: 0, corrupted PEBs: 0
 [11392.781509] ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128
 [11392.856520] ubi0: max/mean erase counter: 8/3, WL threshold: 4096, image sequence number: 1647604229
 [11392.940952] ubi0: available PEBs: 232, total reserved PEBs: 24, PEBs reserved for bad PEB handling: 20
 [11393.052389] ubi0: background thread "ubi_bgt0d" started, PID 4405
 UBI device number 0, total 256 LEBs (32505856 bytes, 31.0 MiB), available 232 LEBs (29458432 bytes, 28.0 MiB), LEB size 126976 bytes (124.0 KiB)[11393.308786] block ubiblock0_1: created from ubi0:1(rootfs)
 
 Volume ID 0, size 28 LEBs (3555328 bytes, 3.3 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "kernel", alignment 1
 Volume ID 1, size 33 LEBs (4190208 bytes, 3.9 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "rootfs", alignment 1
 Set volume size to 21712896
 Volume ID 2, size 171 LEBs (21712896 bytes, 20.7 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "rootfs_data", alignment 1
 sysupgrade

Basic OpenWRT configuration

Wired Ethernet setup

After the OpenWrt installation has completed, the AP is lacking all configuration. Again /etc/config/network will need to be edited. Set it to DHCP mode and again run service network restart. Then wait patiently. 45 seconds may be needed for things to fully settle out.

The OpenWrt way of configuration

 root@OpenWrt:~# uci set network.lan.proto=dhcp
 root@OpenWrt:~# service network restart
 root@OpenWrt:~# sleep 60; ip addr list dev br-lan
 5: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
     link/ether 90:4c:81:cb:f1:8c brd ff:ff:ff:ff:ff:ff
     inet 172.16.10.40/24 brd 172.16.10.255 scope global br-lan
        valid_lft forever preferred_lft forever
     inet6 fe80::924c:81ff:fecb:f18c/64 scope link 
        valid_lft forever preferred_lft forever
 root@OpenWrt:~#

OS updates

 root@OpenWrt:~# opkg update
 Downloading https://downloads.openwrt.org/releases/24.10.0/targets/ipq40xx/generic/packages/Packages.gz
 Updated list of available packages in /var/opkg-lists/openwrt_core
 Downloading https://downloads.openwrt.org/releases/24.10.0/targets/ipq40xx/generic/packages/Packages.sig
 Signature check passed.
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/Packages.gz
 Updated list of available packages in /var/opkg-lists/openwrt_base
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/Packages.sig
 Signature check passed.
 Downloading https://downloads.openwrt.org/releases/24.10.0/targets/ipq40xx/generic/kmods/6.6.73-1-60aeaf7e722ca0f86e06f61157755da3/Packages.gz
 Updated list of available packages in /var/opkg-lists/openwrt_kmods
 Downloading https://downloads.openwrt.org/releases/24.10.0/targets/ipq40xx/generic/kmods/6.6.73-1-60aeaf7e722ca0f86e06f61157755da3/Packages.sig
 Signature check passed.
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/Packages.gz
 Updated list of available packages in /var/opkg-lists/openwrt_luci
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/Packages.sig
 Signature check passed.
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/packages/Packages.gz
 Updated list of available packages in /var/opkg-lists/openwrt_packages
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/packages/Packages.sig
 Signature check passed.
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/routing/Packages.gz
 Updated list of available packages in /var/opkg-lists/openwrt_routing
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/routing/Packages.sig
 Signature check passed.
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/telephony/Packages.gz
 Updated list of available packages in /var/opkg-lists/openwrt_telephony
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/telephony/Packages.sig
 Signature check passed.
 root@OpenWrt:~# opkg list-upgradable
 luci-mod-system - 24.336.49068~ef16778 - 25.049.66344~2b8e93c
 ucode-mod-uloop - 2024.07.22~b610860d-r3 - 2025.02.10~a8a11aea-r1
 ucode-mod-ubus - 2024.07.22~b610860d-r3 - 2025.02.10~a8a11aea-r1
 luci-theme-bootstrap - 24.357.59015~779ca14 - 25.049.66344~2b8e93c
 ucode-mod-uci - 2024.07.22~b610860d-r3 - 2025.02.10~a8a11aea-r1
 ucode-mod-math - 2024.07.22~b610860d-r3 - 2025.02.10~a8a11aea-r1
 luci-mod-status - 25.009.65022~20bf9a4 - 25.049.66344~2b8e93c
 luci-app-firewall - 25.014.06885~bd39c63 - 25.049.66344~2b8e93c
 ucode-mod-fs - 2024.07.22~b610860d-r3 - 2025.02.10~a8a11aea-r1
 luci-ssl - 24.328.43591~9e70c9a - 25.049.66344~2b8e93c
 ucode-mod-nl80211 - 2024.07.22~b610860d-r3 - 2025.02.10~a8a11aea-r1
 ucode - 2024.07.22~b610860d-r3 - 2025.02.10~a8a11aea-r1
 luci-app-package-manager - 24.341.02353~276fef8 - 25.049.66344~2b8e93c
 luci-proto-ppp - 25.009.71487~a88d4af - 25.049.66344~2b8e93c
 luci-mod-admin-full - 19.253.48496~3f93650 - 25.049.66344~2b8e93c
 luci-base - 25.014.55016~7046a1c - 25.049.66344~2b8e93c
 luci-proto-ipv6 - 24.350.69236~8d13ea4 - 25.049.66344~2b8e93c
 ucode-mod-rtnl - 2024.07.22~b610860d-r3 - 2025.02.10~a8a11aea-r1
 luci - 24.297.79519~bcd13b9 - 25.049.66344~2b8e93c
 luci-light - 23.024.33244~34dee82 - 25.049.66344~2b8e93c
 luci-mod-network - 25.021.30718~36b6107 - 25.049.66344~2b8e93c
 libucode20230711 - 2024.07.22~b610860d-r3 - 2025.02.10~a8a11aea-r1
 root@OpenWrt:~# opkg upgrade $(opkg list-upgradable | sort | cut -d' ' -f1)
 Upgrading libucode20230711 on root from 2024.07.22~b610860d-r3 to 2025.02.10~a8a11aea-r1...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/libucode20230711_2025.02.10~a8a11aea-r1_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading luci on root from 24.297.79519~bcd13b9 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-app-firewall on root from 25.014.06885~bd39c63 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-app-firewall_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-app-package-manager on root from 24.341.02353~276fef8 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-app-package-manager_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-base on root from 25.014.55016~7046a1c to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-base_25.049.66344~2b8e93c_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading luci-light on root from 23.024.33244~34dee82 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-light_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-mod-admin-full on root from 19.253.48496~3f93650 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-mod-admin-full_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-mod-network on root from 25.021.30718~36b6107 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-mod-network_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-mod-status on root from 25.009.65022~20bf9a4 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-mod-status_25.049.66344~2b8e93c_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading luci-mod-system on root from 24.336.49068~ef16778 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-mod-system_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-proto-ipv6 on root from 24.350.69236~8d13ea4 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-proto-ipv6_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-proto-ppp on root from 25.009.71487~a88d4af to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-proto-ppp_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-ssl on root from 24.328.43591~9e70c9a to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-ssl_25.049.66344~2b8e93c_all.ipk
 Upgrading luci-theme-bootstrap on root from 24.357.59015~779ca14 to 25.049.66344~2b8e93c...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/luci/luci-theme-bootstrap_25.049.66344~2b8e93c_all.ipk
 Upgrading ucode on root from 2024.07.22~b610860d-r3 to 2025.02.10~a8a11aea-r1...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/ucode_2025.02.10~a8a11aea-r1_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading ucode-mod-fs on root from 2024.07.22~b610860d-r3 to 2025.02.10~a8a11aea-r1...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/ucode-mod-fs_2025.02.10~a8a11aea-r1_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading ucode-mod-math on root from 2024.07.22~b610860d-r3 to 2025.02.10~a8a11aea-r1...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/ucode-mod-math_2025.02.10~a8a11aea-r1_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading ucode-mod-nl80211 on root from 2024.07.22~b610860d-r3 to 2025.02.10~a8a11aea-r1...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/ucode-mod-nl80211_2025.02.10~a8a11aea-r1_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading ucode-mod-rtnl on root from 2024.07.22~b610860d-r3 to 2025.02.10~a8a11aea-r1...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/ucode-mod-rtnl_2025.02.10~a8a11aea-r1_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading ucode-mod-ubus on root from 2024.07.22~b610860d-r3 to 2025.02.10~a8a11aea-r1...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/ucode-mod-ubus_2025.02.10~a8a11aea-r1_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading ucode-mod-uci on root from 2024.07.22~b610860d-r3 to 2025.02.10~a8a11aea-r1...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/ucode-mod-uci_2025.02.10~a8a11aea-r1_arm_cortex-a7_neon-vfpv4.ipk
 Upgrading ucode-mod-uloop on root from 2024.07.22~b610860d-r3 to 2025.02.10~a8a11aea-r1...
 Downloading https://downloads.openwrt.org/releases/24.10.0/packages/arm_cortex-a7_neon-vfpv4/base/ucode-mod-uloop_2025.02.10~a8a11aea-r1_arm_cortex-a7_neon-vfpv4.ipk
 Configuring libucode20230711.
 Configuring ucode.
 Configuring ucode-mod-fs.
 Configuring ucode-mod-nl80211.
 Configuring ucode-mod-rtnl.
 Configuring ucode-mod-ubus.
 Configuring ucode-mod-uloop.
 Configuring ucode-mod-uci.
 Configuring ucode-mod-math.
 Configuring luci-base.
 Configuring luci-mod-system.
 Configuring luci-theme-bootstrap.
 Configuring luci-mod-status.
 Configuring luci-app-firewall.
 Configuring luci-proto-ipv6.
 Configuring luci-mod-network.
 Configuring luci-mod-admin-full.
 Configuring luci-proto-ppp.
 Configuring luci-light.
 Configuring luci-app-package-manager.
 Configuring luci-ssl.
 Configuring luci.
 Collected errors:
  * resolve_conffiles: Existing conffile /etc/config/luci is different from the conffile in the new package. The new conffile will be placed at /etc/config/luci-opkg.
 root@OpenWrt:~#

Reboot and test functionality

 root@OpenWrt:~# reboot