Following this post, I updated the bootloader and installed
onion_omega2-22.03.3-20230414.binfirmware, all went well, except for wifi. I got these errors:
[ 15.938003] Loading modules backported from Linux version v5.15.81-0-ge4a7232c917c [ 15.945786] Backport generated by backports.git v5.15.81-1-0-ge1867d55 [ 15.972919] urngd: v1.0.2 started. [ 16.342096] mt76_wmac 10300000.wmac: ASIC revision: 76280001 [ 16.373835] mt76_wmac 10300000.wmac: Invalid MAC address, using random address d6:4a:ff:28:98:df [ 16.710818] random: crng init done [ 16.714394] random: 24 urandom warning(s) missed due to ratelimiting [ 17.409003] mt76_wmac 10300000.wmac: Firmware Version: 20151201 [ 17.415105] mt76_wmac 10300000.wmac: Build Time: 20151201183641 [ 17.435654] mt76_wmac 10300000.wmac: firmware init done [ 17.756946] PPP generic driver version 2.4.2 [ 17.771593] NET: Registered protocol family 24 [ 17.805561] kmodloader: done loading kernel modules from /etc/modules.d/* [ 18.183984] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 26.468868] do_page_fault(): sending SIGSEGV to utpl for invalid read access from 73d3c36d [ 26.477337] epc = 77de84d0 in libc.so[77db7000+a9000] [ 26.482513] ra = 77de8a38 in libc.so[77db7000+a9000] [ 26.798120] do_page_fault(): sending SIGSEGV to utpl for invalid read access from 73e3a8a0 [ 26.806588] epc = 77d720c7 in libucode.so.20220812[77d5a000+2f000] [ 26.812924] ra = 77d7235f in libucode.so.20220812[77d5a000+2f000] [ 27.090992] do_page_fault(): sending SIGSEGV to S19wpad for invalid read access from 73e3971c [ 27.099723] epc = 00415301 in busybox[400000+4f000] [ 27.104717] ra = 004153e7 in busybox[400000+4f000] [ 27.144897] do_page_fault(): sending SIGSEGV to S20network for invalid write access to 0041f6d7 [ 27.153798] epc = 0041edb9 in busybox[400000+4f000] [ 27.158772] ra = 0041edbf in busybox[400000+4f000] [ 27.212537] do_page_fault(): sending SIGSEGV to S35odhcpd for invalid read access from 73e2071c [ 27.221376] epc = 00415301 in busybox[400000+4f000] [ 27.226397] ra = 004153e7 in busybox[400000+4f000] [ 27.519687] do_page_fault(): sending SIGSEGV to cron for invalid write access to 01f2471c [ 27.528081] epc = 77df20f4 in libc.so[77dc0000+a9000] [ 27.533258] ra = 77df2478 in libc.so[77dc0000+a9000] [ 27.608937] do_page_fault(): sending SIGSEGV to S80blockd for invalid read access from 73dbcb60 [ 27.617850] epc = 00418e2b in busybox[400000+4f000] [ 27.622850] ra = 00418e33 in busybox[400000+4f000] [ 28.101612] do_page_fault(): sending SIGSEGV to jsonfilter for invalid read access from 73d2d3f6 [ 28.110610] epc = 77df4b9c in libc.so[77d61000+a9000] [ 28.115785] ra = 77df4b9c in libc.so[77d61000+a9000] [ 28.140546] do_page_fault(): sending SIGSEGV to gpio_switch for invalid read access from 7bb86df0 [ 28.149629] epc = 77dd9120 in libc.so[77dc6000+a9000] [ 28.154799] ra = 00422697 in busybox[400000+4f000] [ 28.181766] do_page_fault(): sending SIGSEGV to ubus for invalid read access from 73d2c840 [ 28.190237] epc = 77e01b9c in libc.so[77d6e000+a9000] [ 28.195412] ra = 77e01b9c in libc.so[77d6e000+a9000] [ 34.064589] __do_page_fault: 5 callbacks suppressed [ 34.064603] do_page_fault(): sending SIGSEGV to ujail for invalid read access from 73d91990 [ 34.078110] epc = 77ebcd30 in libc.so[77e2b000+a9000] [ 34.083279] ra = 77ebcfcc in libc.so[77e2b000+a9000]
my config is
root@Omega-1007:/# uci show wireless wireless.radio0=wifi-device wireless.radio0.type='mac80211' wireless.radio0.path='platform/10300000.wmac' wireless.radio0.band='2g' wireless.radio0.channel='auto' wireless.radio0.htmode='HT40' wireless.radio0.disabled='0' wireless.default_radio0=wifi-iface wireless.default_radio0.device='radio0' wireless.default_radio0.mode='ap' wireless.default_radio0.ifname='ra0' wireless.default_radio0.network='wlan' wireless.default_radio0.ssid='Omega-fb1f' wireless.default_radio0.encryption='psk2' wireless.default_radio0.key='12345678' wireless.client=wifi-iface wireless.client.device='radio0' wireless.client.network='wwan' wireless.client.mode='sta' wireless.client.ssid='MySSID' wireless.client.key='MyKey' wireless.client.encryption='psk2' wireless.client.ifname='apcli0' wireless.client.disabled='1'
Disabling radio0 by setting
wireless.radio0.disabled="1"reduces the number of errors, but how can I get wireless to work? I tried OpenWrt-21.05 firmware and wireless worked fine there.
Unfortunately, none of the firmware labeled
omega2-vX.Xworked for me, and the firmware from the openwrt site does not have some of the necessary interfaces (like i2c) working for me
Judging by the
[ 16.373835] mt76_wmac 10300000.wmac: Invalid MAC address, using random address d6:4a:ff:28:98:dfline, it looks like the MAC address can't be read from the
This partition is programmed at manufacturing time with the unique mac addresses for the device and wifi radio configuration. It's not changed when firmware is updated but it looks like your device's factory partition has been modified or corrupted somehow. It's conceivable that invalid wifi radio configuration would cause the warp core and mt76 wifi drivers to crash.
I would try using a different Omega2 to confirm this suspicion.
Once that's confirmed, we can think about using the new device to restore the factory partition on this one that's not working.
@Lazar-Demin yes, it's the same device. Unfortunately I don't have another device, I bought this about 6 years ago, tried it and put it aside, I think there were problems with it then too. But, when I use openwrt-21.05 firmware, then wireless network and AP go up without errors
@Ilya-Mordasov are you booting from USB? Please remove the USB device.
But, when I use openwrt-21.05 firmware, then wireless network and AP go up without errors
With invalid data in the factory partition for the wifi radio configuration, I expect the wifi driver to behave in an undefined way. It's possible it will work in some instances - like in openwrt 21.05 - but will most likely crash in all others.
It's safe to conclude the issues you're seeing are caused by the invalid data in the factory partition.
My recommendation is to buy a new Omega2 device. From there, you will have a 100% working device, and can copy the factory partition to your existing device to bring it back to life.
Let us know how it goes.
I had this problem once, after updating the Firmare, the wifi stopped working. The procedure that worked for me was to factory reset it a couple of times.
5- If the Wi-Fi does not start, redo the procedure.
It worked for me after the third try.
@crispyoz No, I was booting from system, which was installed from usb
@kamiloade Thanks, I've seen this solution and tried it, I guess this is an attempt in the hope to get the same MAC address, which the system will accept as its. But it's about 16^12 combinations, you are lucky to get it so fast
@Lazar-Demin yes, that seems to be the problem, because only the wireless is not working, I tried i2c and spidev, everything is fine. And how can I extract the factory partition from the live chip? Do I need to connect wires to the chip? Do I only need to know the factory MAC address or do I need to have access to the whole chip?
yes, that seems to be the problem, because only the wireless is not working, I tried i2c and spidev, everything is fine.
Yeah, only the wifi driver relies on the data in the factory partition. So it makes sense that everything else works.
Do I only need to know the factory MAC address or do I need to have access to the whole chip?
My guess is that you'll need a whole new copy of the factory partition - it looks like the wifi driver in openwrt 22.03 has a workaround for invalid MAC addresses but still crashes because of the rest of the invalid configuration.
Do I need to connect wires to the chip?
No need to connect wires, you can do it from Linux.
And how can I extract the factory partition from the live chip?
To copy the factory partition from one device to another, it's actually super similar to the steps in the post linked by @crispyoz:
- install the
- dump the factory partition to hex:
xxd /dev/mtd2 > factory.hex
- create a backup just in case
- edit the two mac addresses (can use vi)
- convert the edited hex file to binary:
xxd -r factory-new.hex > factory.bin
- write the binary file to the factory partition:
mtd -r write factory.bin factory
Do steps 1 to 5 on a working device, and step 6 on your current device.
(You'll probably need to reinstall whichever firmware was successfully booting on your current device in order to get to Linux)
- install the