aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* ipq807x: prpl-haze: enable LED driver on device treeCheWei Chien2024-01-15
| | | | | | | Enable LED driver LP5562 on HAZE device tree and include its kernel module package on default package for HAZE. Signed-off-by: CheWei Chien <chewei.chien@wnc.com.tw>
* kernel: add kmod-leds-lp5562 and kmod-leds-lp55xx-commonCheWei Chien2024-01-15
| | | | | | | Add kernel module for lp5562 LED driver. The kmod-leds-lp5562 depends on kmod-leds-lp55xx-common. Signed-off-by: CheWei Chien <chewei.chien@wnc.com.tw>
* ipq806x: add support for Fortinet FAP-421EJinGen Lim2024-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware -------- SoC: Qualcomm IPQ8064 RAM: 235MB Flash: 128MB NAND (Micron MT29F1G08ABBDAH4) 32MB SPI-NOR (Spansion FL256SAIFRO) WLAN2: Qualcomm Atheros QCA9980 WLAN5: Qualcomm Atheros QCA9980 ETH: LAN1 - Atheros AR8035 LAN2 - Atheros AR8033 USB: USB-A, 2.0 LED: Power (yellow/amber) LAN1 (yellow/amber) LAN2 (yellow/amber) WLAN2G (yellow) WLAN5G (yellow) BTN: Reset Serial: RJ45 Port (9600 8n1) Cisco console cable, TTL voltage MAC Address: LAN1 (label) at APPSBL partition LAN2: label + 1 WLAN2: label + 8 WLAN5: label + 16 Installation ------------ Connect to the RJ45 console (TTL) Connect LAN1 to host, set host ip as 192.168.1.10 Start a tftp server to serve the initramfs image Open console connection (9600n8) Connect power through the DC jack `Hit any key to stop autoboot: 5`: press any key `Enter G,Q,or H:`: press `K` to access the hidden option `Enter password:`: `fap22b1!$` to access a limited u-boot console `(FAP) #`: `tftpboot your_initramfs_image_name.itb` `(FAP) #`: `bootm` Once OpenWrt has booted, install the firmware through sysupgrade Signed-off-by: JinGen Lim <openwrt@sn.sg>
* ipq807x: use devinfo MAC for Linksys MX4200Paweł Owoc2024-01-15
| | | | | | Some devices (MX42CF) have a wrong MAC address configuration. The correct one is located only on the devinfo partition. Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
* ipq807x: fix whitespace usagePaweł Owoc2024-01-15
| | | | | | Replace with tab and remove unused whitespaces Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
* imagebuilder: copy from buildroot only target/linux/generic and ↵a-gave2024-01-15
| | | | | | | | | | | | target/linux/<target> to reduce the size This reduces the size of a single imagebuilder by about 40MB In example for the target ath79 it would be the sum of generic and <target> directories, so about 16MB, instead of the whole size of the target directory, about 53MB: 11M target/linux/generic/ 3.9M target/linux/ath79/ Signed-off-by: a-gave <agave@dracaena.it>
* base-files: add support for rootfs mount options from cmdlineChristian Marangi2024-01-15
| | | | | | | | | | | | | | | | | | | Add support for configuring rootfs mount options from cmdline. Rootfs mount options can be passed by declaring in the kernel cmdline as much options as needed prefixed with "rootfs_mount_options." An example usage is with rootfs with F2FS filesystem to enable compress_algorithm to reduce flash wear by compressing the files before writing to flash. Example usage: "... rootfs_mount_options.compress_algorithm=zstd ..." To pass multiple options: "... rootfs_mount_options.compress_algorithm=zstd rootfs_mount_options.noinline_data ..." Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* fstools: update to Git HEAD (2024-01-15)Christian Marangi2024-01-15
| | | | | | | | | | | 97bacb70138a libfstools: query drivers by priority 41e619ed1352 block: recognize /dev/fit* block devices bc3b8cdd3de3 libfstools: add uImage.FIT fitblk driver 846302d09246 libfstools: partname: raise priority to 25 1a5695925ecf mount_root: add support for passing args to mount_root start 1858a492c300 mount_root: permit to pass mount options for rootfs mount Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* mediatek: TOTOLINK A8000RU: add missing usb3 packageChukun Pan2024-01-14
| | | | | | This device has a usb 3.0 port, so add it. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* mediatek: fixes typo for spi propertiesChukun Pan2024-01-14
| | | | | | Same as commit 3674689, correct 'buswidth' to 'bus-width'. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* mediatek: YunCore AX835: convert to nvmem-layoutChukun Pan2024-01-14
| | | | | | | The nvmem-cells is deprecated. Also simplify mac address settings. Fixes: b4086f4 ("mediatek: add support for YunCore AX835") Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* mediatek: Cudy WR3000: simplify mac address setupChukun Pan2024-01-14
| | | | | | | | The mac address of the network port under the switch is the same as the corresponding gmac by default, so there is no need to repeat the setting. Compile test only. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* mediatek: Cetron CT3003: move mac address setup to dtsChukun Pan2024-01-14
| | | | | | | It looks like we can put the mac address setting into the device tree. Compile test only. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* mediatek: filogic: refresh kernel configChukun Pan2024-01-14
| | | | | | | Refresh kernel config with 'make kernel_oldconfig'. Also disable the useless rtl8367s gsw driver. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* mediatek: mt7622: refresh kernel configChukun Pan2024-01-14
| | | | | | Refresh kernel config with 'make kernel_oldconfig'. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* realtek: rtl838x: add Netgear GS110TUP v1 supportJacob Potter2024-01-13
| | | | | | | | | | | | | | | | | | | | | | The GS110TUP v1 is a managed switch similar to the GS110TPP v1, but with port 10 as SFP instead of RJ-45 and a total budget of 240 watts. Ports 1-4 support 60-watt 802.3bt PoE and ports 5-8 support 30-watt 802.3at. The flash layout of the two switches are identical, and the U-Boot configurations are the same except for having a different magic number, so installation can be done via the same U-Boot method. The following command will be needed to enable the port LEDs as per https://forum.openwrt.org/t/72510/51 : fw_setenv bootcmd "rtk network on; boota" Additionally, port 9 (1000base-T from a separate QSGMII PHY) does not function without this. Port 10 was not tested as no SFP module was available. Signed-off-by: Jacob Potter <jacob@j4cbo.com> [rebase on merged flash layout] Signed-off-by: Sander Vanheule <sander@svanheule.net>
* realtek: rtl838x: join Netgear GSxxx flash layoutsSander Vanheule2024-01-13
| | | | | | | | | | Flash layouts for GS108Tv3, GS110TPPv1, GS308Tv1 and GS310TPv1 are almost identical, except for the uimage header magic. Move the flash layout to the common dtsi, and only place the magic value in the device dts files. Signed-off-by: Sander Vanheule <sander@svanheule.net>
* hostapd: add back missing function for updating wpa_supplicant macaddr listFelix Fietkau2024-01-13
| | | | | | | Make the call deferred instead of blocking to avoid deadlock issues Fixes: 3df9322771cc ("hostapd: make ubus calls to wpa_supplicant asynchronous") Signed-off-by: Felix Fietkau <nbd@nbd.name>
* hostapd: fix an exception in hostapd.uc on interface add failureFelix Fietkau2024-01-13
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* Revert "mac80211: rework interface setup, fix race condition"Felix Fietkau2024-01-13
| | | | | | | | This reverts commit b7f9742da82fa9b122e8d63e48a9a5c0dec298f2. There are several reports of regressions with this commit. Will be added back once I've figured out and fixed the cause Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: rework interface setup, fix race conditionFelix Fietkau2024-01-11
| | | | | | | Only tell netifd about vifs when the setup is complete and hostapd + wpa_supplicant have been notified Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211.sh: fix deadlock on configuring multiple PHYs simultaneouslyFelix Fietkau2024-01-11
| | | | | | | | When hitting a timing window where ubus configuration calls are hitting hostapd and wpa_supplicant simultaneously, they can deadlock waiting for each other. Fix this by using a lock around the ubus calls. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ci: no longer require real namePaul Spooren2024-01-11
| | | | | | | | | | This goes in accordance with the Linux Kernel: > using a known identity (sorry, no anonymous contributions.) https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?id=HEAD#n442 Signed-off-by: Paul Spooren <mail@aparcar.org>
* hostapd: make ubus calls to wpa_supplicant asynchronousFelix Fietkau2024-01-11
| | | | | | | | This fixes a deadlock issue where depending on the setup order, hostapd and wpa_supplicant could end up waiting for each other Reported-by: Michael-cy Lee (李峻宇) <Michael-cy.Lee@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ath79: read back reset registerDavid Bauer2024-01-11
| | | | | | | | | | | | | | | | | Read back the reset register in order to flush the cache. This fixes spurious reboot hangs on TP-Link TL-WDR3600 and TL-WDR4300 with Zentel DRAM chips. This issue was fixed in the past, but switching to the reset-driver specific implementation removed the cache barrier which was previously implicitly added by reading back the register in question. Link: https://github.com/freifunk-gluon/gluon/issues/2904 Link: https://github.com/openwrt/openwrt/issues/13043 Link: https://dev.archive.openwrt.org/ticket/17839 Link: f8a7bfe1cb2c ("MIPS: ath79: fix system restart") Signed-off-by: David Bauer <mail@david-bauer.net>
* uqmi: added timeouts in qmi.shUwe Niethammer2024-01-10
| | | | | | | | | | Modems which are using qmi do not reply on the 1st sync but they do on subsequent. Sometimes uqmi is hanging - even when using an early dummy access to unlock the modem. To always guarantee a proper initialisation, running or hanging uqmi processes must be stopped before. All uqmi calls have now a timeout option -t to avoid hanging. Signed-off-by: Uwe Niethammer <uwe@dr-niethammer.de>
* ramips: mt76x8: add support for TP-Link RE365 v1Tomasz Maciej Nowak2024-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TP-Link RE365 is a wireless range extender, hardware-wise resembles RE305 with slight changes regarding buttons and LEDs. Specification SoC: MediaTek MT7628AN RAM: 64 MiB DDR2 Flash: 8 MiB SPI NOR WiFi: 2.4 GHz 2T2R integrated 5 GHz 2T2R MediaTek MT7612EN conncted to PCIe lanes Ethernet: 1x 10/100 Mbps integrated LEDs: 6x GPIO controlled Buttons: 4x GPIO controlled UART: row of 4 holes marked on PCB as J1, starting count from white triangle 1. VCC (3.3V), 2. GND, 3. RX, 4. TX baud: 57600, parity: none, flow control: none Installation 1. Open web management interface. 2. Go to Settings > System Tools > Firmware upgrade. 3. Select "Browse" and select the OpenWrt image with factory.bin suffix. 4. After selecting "Upgrade" firmware writing process will start. 5. Wait till device reboots, power LED should stay solid when it's fully booted, then it's ready for configuration through LAN port. Additional information With how device manufacturer patrtitioned the flash memory, it's possible that with default packages set, initial factory.bin image won't be created. In such case, try to reduce packages amount or use older release for initial conversion to OpenWrt. Later You can use sysupgrade.bin image with full set of packages because OpenWrt uses unpartitioned flash memory space unused by vendor firmware. Reverting to vendor firmware involves converting firmware using tplink-safeloader with -z option (can be found in ImageBuilder or SDK) and forcibly applying converted firmware as sysupgrade. Known issues WARNING: after removing casing of the device one is exposed to high voltage and is in a risk of being electrocuted. Caution when interfacing whith bootloader, saving its environment either by issuing "saveenv" or selecting option "1: Load system code to SDRAM via TFTP." in boot menu, any of those will lead to overwriting part of kernel. This will lead to need of firmware recovery. The cause of this issue is bootloader having environment offset on flash at 0x40000, while kernel starts from 0x20000. Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com> [Wrap long line in DTS] Signed-off-by: Sander Vanheule <sander@svanheule.net>
* uhttpd: handle reload after uhttpd-mod-ubus installation using postinstRafał Miłecki2024-01-10
| | | | | | | | | | | | | | Use postinst script to reload service instead of uci-defaults hack. It's possible thanks to recent base-files change that executes postinst after uci-defaults. This fixes support for uhttpd customizations. It's possible (again) to adjust uhttpd config with custom uci-defaults before it gets started. Cc: Hauke Mehrtens <hauke@hauke-m.de> Fixes: d25d281fd668 ("uhttpd: Reload config after uhttpd-mod-ubus was added") Ref: b799dd3c705d ("base-files: execute package's "postinst" after executing uci-defaults") Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* rtl83xx: dsa: reset PVID to 1 instead of 0Harshal Gohel2024-01-09
| | | | | | | | | | | | | | | Before, PVID is reset for all ports and goes out of bounds. Also, PVID is later changed by dsa configuration by `ip link` and `bridge vlan` commands, this does not change the CPU port PVID and CPU PVID stays 0. It does not allow sending packets from OpenWrt to any connected devices unless default configuration is changed This change iterates up to and including cpu_port and sets default PVID to 1. For lan* ports PVID can be configured with `ip link` and `bridge vlan` commands Acked-by: Simon Wunderlich <sw@simonwunderlich.de> Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
* rtl93xx: dsa: Fix 802.1QinQ for trunk portsHarshal Gohel2024-01-09
| | | | | | | | | | | | | | | | | Fix incorrect register value being set for VLAN_PORT_FWD Before, the 0b1111 would be set for the register which means outgoing packets would receive an extra tag, corresponding to the PVID of the port. On untagged ports, this meant outgoing packets with a single tag. On tagged ports, this meant outgoing QinQ packets, where the inner tag was either the PVID of the untagged ingress port, or the already assigned original (single) tag. Acked-by: Simon Wunderlich <sw@simonwunderlich.de> Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
* rtl83xx: dsa: Clear duplex bit correctlyHarshal Gohel2024-01-09
| | | | | | | | Without this, luci shows 10M full duplex when there is no link. So explicitly set half duplex and unknown speed. Acked-by: Simon Wunderlich <sw@simonwunderlich.de> Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
* rtl930x: Rework per port LED configurationHarshal Gohel2024-01-09
| | | | | | | | | | | | | | | | Use led_setX to determine number of LEDs per port. Introduce macros to calculate register value and shift for particular LED in a particular set. Problem with previous implementation is that it uses is10G status to determine leds per port. However with usxgmii, driver sets 10g, 5g and 2.5g so even though there are only 2 leds per port it selects 4 leds per port This implementation relies on configured led_set node. Acked-by: Simon Wunderlich <sw@simonwunderlich.de> Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
* rtl83xx: dsa: Do nothing when vid 0Harshal Gohel2024-01-09
| | | | | | | Following other dsa drivers, vid 0 is no-op Acked-by: Simon Wunderlich <sw@simonwunderlich.de> Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
* rtl83xx: dsa: disable VLAN filtering on CPU portHarshal Gohel2024-01-09
| | | | | | | | | | | | Before driver code - enabled egress filter for cpu and non-cpu ports - enabled ingress filter for non-cpu ports This patch explicitly enables ingress and egress filtering for non-cpu ports and disables ingress and egress filtering for cpu port. Acked-by: Simon Wunderlich <sw@simonwunderlich.de> Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
* rtl838x: Enable jumbo frames by defaultHarshal Gohel2024-01-09
| | | | | | | | Increase DEFAULT_MTU and max-mtu size Increase truncate length on rx of jumbo frame Acked-by: Simon Wunderlich <sw@simonwunderlich.de> Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
* mediatek: fix BPI-R3 wifi mac addressFelix Fietkau2024-01-09
| | | | | | | | Setting/clearing bits on the first byte of the mac address causes collisions when using multiple SSIDs on both PHYs. Change the allocation to alter the last byte instead. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: do not emit VHT160 capabilities if channel width is less than 160 MHzFelix Fietkau2024-01-09
| | | | | | Fixes compatibility issues with VHT160 capable clients Signed-off-by: Felix Fietkau <nbd@nbd.name>
* hostapd: add missing NULL pointer check on radar notificationFelix Fietkau2024-01-09
| | | | | | Fixes a race condition that can lead to a hostapd crash Signed-off-by: Felix Fietkau <nbd@nbd.name>
* libubox: work around recent macOS linker changeFelix Fietkau2024-01-09
| | | | | | | | | rpath handling seems to be more restrictive now. To deal with this, link the libubox library from STAGING_DIR_HOST to STAGING_DIR_HOSTPKG, so that packages installed to STAGING_DIR_HOSTPKG can pick it up. This mainly affects ucode, but possibly other host builds as well Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek: disable btif for mt7622 devicesFelix Fietkau2024-01-09
| | | | | | It breaks built-in SoC WLAN. Can be re-enabled after we've figured out the cause Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek: add support for YunCore AX835Leon M. Busch-George2024-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware specification: SoC: MediaTek MT7981B 2x A53 Flash: 16MB NOR RAM: 256MB Ethernet: 2x 10/100/1000 Mbps Switch: MediaTek MT7531AE WiFi: MediaTek MT7976C Button: Reset Power: DC 12V 1A, PoE 802.3af 48V Flash instructions: Option #1 - SSH I was able to SSH into the stock firmware of my device. 1. Attach the router to the network 2. Use scp (-O) to copy the sysupgrade image 3. Connect using SSH and run `sysupgrade -n` Option #2 - U-Boot One way to use the bootloader for flashing is using TFTP: 1. Connect to the router using an ethernet cable 2 Spin up a TFTP server serving the sysupgrade file 3. Open the case and attach a UART 4. Attach power to the router and interrupt the countdown by pressing any key 5. Select option #2 (Upgrade firmware) 6. Enter IP address information and image name 7. Wait patiently Co-Authored-By: Enrique Rodríguez Valencia <enrique.rodriguez@galgus.net> Co-Authored-By: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
* mediatek: GL-MT6000: Add missing LED state definitionsHannu Nyman2024-01-09
| | | | | | | | | | | | | | | | | | | | Adjust LED names and provide the OpenWrt status indicator aliases to actually use LEDs by the OpenWrt boot & sysupgrade processes. * Name both LEDs clearly by the color * Add the missing OpenWrt LED status indicator aliases and remove the now unnecessary default status from blue LED After this commit, the LEDs are used as: * bootloader, really early Linux boot: blue LED is on * preinit/failsafe: white LED blinks rapidly * late boot: white LED blinks slowly * boot completed, running normally: blue LED is on * sysupgrade: white LED blinks Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* ipq-wifi: fix PKG_MIRROR_HASHManuel Fombuena2024-01-08
| | | | | | | Incorrect PKG_MIRROR_HASH introduced on #14356 Fixes: 934873f4514b ("ipq-wifi: bump version to 2024-01-06-71f45cff") Signed-off-by: Manuel Fombuena <mfombuena@innovara.co.uk>
* scripts: fix installed-size calculationPaul Spooren2024-01-08
| | | | | | | | | | Previously the script would calculate the size of the compressed archive which isn't the size installed in the overlayfs. This commit uses zcat in combination with wc to calculate the umcompressed size. Signed-off-by: Paul Spooren <mail@aparcar.org>
* packages: add PKG_URL variablePaul Spooren2024-01-08
| | | | | | | | Using PKG_URL one may set the URL for all sub packages, which is usually shared anyway. Future packages should only use PKG_URL instead of adding it per sub-package. Signed-off-by: Paul Spooren <mail@aparcar.org>
* packages: store URL in ManifestPaul Spooren2024-01-08
| | | | | | | | The manifest should provide as much information as possible about the package, including the project URL. With this commit the URL is stored as it's own attribute instead of at the end of the description. Signed-off-by: Paul Spooren <mail@aparcar.org>
* kernel: backport more NVMEM changes queued for v6.8Rafał Miłecki2024-01-08
| | | | Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* ipq-wifi: bump version to 2024-01-06-71f45cffManuel Fombuena2024-01-08
| | | | | | | | | | | 673662f ipq8074: add Wallys DR8072V01 BDF 7e8b237 ipq40xx: add ZyXEL WSQ50 QCA4019 BDF 831c1bd ipq40xx: add ZyXEL WSQ50 QCA9984 BDF f9ff251 ipq40xx: add ASUS MAP-AC2200 QCA9888 BDF 71f45cf ipq8074: Update MX4200 BDF Signed-off-by: Manuel Fombuena <mfombuena@innovara.co.uk> Reviewed-by: Robert Marko <robimarko@gmail.com>
* ath79: add support for UniFi UK-UltraDavid Bauer2024-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware -------- CPU: Qualcomm Atheros QCA9563 RAM: 128M DDR2 FLASH: 16MB SPI-NOR WiFi: Qualcomm Atheros QCA9563 2x2:2 802.11n 2.4GHz Qualcomm Atheros QCA9880 2x2:2 802.11ac 5GHz Antennas -------- The device features internal antennas as well as external antenna connectors. By default, the internal antennas are used. Two GPIOs are exported by name, which can be used to control the antenna-path mux. Writing a logical 0 enables the external antenna connectors. Installation ------------ 1. Download the OpenWrt sysupgrade image to the device. You can use scp for this task. The default username and password are "ubnt" and the device is reachable at 192.168.1.20. $ scp -O openwrt-sysupgrade.bin ubnt@192.168.1.20:/tmp/firmware.bin 2. Connect to the device using SSH. $ ssh ubnt@192.168.1.20 3. Disable the write-protect $ echo "5edfacbf" > /proc/ubnthal/.uf 4. Verify kernel0 and kernel1 match mtd2 and mtd3 $ cat /proc/mtd 5. Write the sysupgrade image to kernel0 and kernel1 $ dd if=/tmp/firmware.bin of=/dev/mtdblock2 $ dd if=/tmp/firmware.bin of=/dev/mtdblock3 6. Write the bootselect flag to boot from kernel0 $ dd if=/dev/zero bs=1 count=1 of=/dev/mtd4 7. Reboot the device $ reboot Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: move UniFi AC template into commonDavid Bauer2024-01-07
| | | | | | This allows us to embrace alphabetical sorting for the UK-Ultra. Signed-off-by: David Bauer <mail@david-bauer.net>