I have migrate my home server from Fedora 11 to Fedora 25 with a new installation.
All work fine except the load firmware of the cxacru module (ADSL Modem USB) at boot time, after a poweroff and unplug/plug the AC power cable.
If I try reload the modules manually when the server is started I get the same error and the firmware is not loaded.
If I disconnect and reconnect modem USB when the server is on, the cxacru module load its firmware without problem and I can load the ppp interface property .
This is log message at boot time:
giu 28 09:11:18 igloo.home.solinos.it kernel: rt61pci 0000:05:00.0 wlp5s0: renamed from wlan0 giu 28 09:11:18 igloo.home.solinos.it crda[811]: setting regulatory domain to IT based on timezone (Europe/Rome) giu 28 09:11:19 igloo.home.solinos.it systemd[1]: Found device /dev/fedora/multimedia. giu 28 09:11:19 igloo.home.solinos.it kernel: cxacru 2-1.1:1.0: receive of cm 0x90 failed (-104) giu 28 09:11:19 igloo.home.solinos.it kernel: usbcore: registered new interface driver cxacru giu 28 09:11:19 igloo.home.solinos.it kernel: cxacru 2-1.1:1.0: found firmware cxacru-fw.bin giu 28 09:11:19 igloo.home.solinos.it kernel: cxacru 2-1.1:1.0: loading firmware giu 28 09:11:19 igloo.home.solinos.it kernel: cxacru 2-1.1:1.0: Firmware upload failed: -32 giu 28 09:11:19 igloo.home.solinos.it kernel: cxacru 2-1.1:1.0: send of cm 0x90 failed (-32) giu 28 09:11:19 igloo.home.solinos.it systemd[1]: Found device /dev/fedora/temp. giu 28 09:11:19 igloo.home.solinos.it systemd[1]: Found device /dev/mapper/fedora-var. giu 28 09:11:19 igloo.home.solinos.it systemd[1]: Found device /dev/mapper/fedora-home. giu 28 09:11:19 igloo.home.solinos.it systemd[1]: Found device /dev/fedora/lv_virt. giu 28 09:11:20 igloo.home.solinos.it lvm[775]: 9 logical volume(s) in volume group "fedora" now active
This is log message when all work fine:
giu 28 12:12:57 igloo.home.solinos.it kernel: usbcore: registered new interface driver cxacru giu 28 12:12:57 igloo.home.solinos.it kernel: cxacru 2-1.1:1.0: found firmware cxacru-fw.bin giu 28 12:12:57 igloo.home.solinos.it kernel: cxacru 2-1.1:1.0: loading firmware giu 28 12:12:58 igloo.home.solinos.it kernel: cxacru 2-1.1:1.0: starting device giu 28 12:12:59 igloo.home.solinos.it NetworkManager[1055]: <info> [1498644779.6061] manager: (cxacru0): new ADSL device (/org/freedesktop/NetworkManager/Devices/4) giu 28 12:12:59 igloo.home.solinos.it NetworkManager[1055]: <info> [1498644779.6064] device (cxacru0): state change: unmanaged -> unavailable (reason 'managed') [10 20 2] giu 28 12:12:59 igloo.home.solinos.it kernel: cxacru0: ADSL USB MODEM (usb-0000:00:1d.0-1.1) 00:04:ed:54:e2:53 giu 28 12:12:59 igloo.home.solinos.it kernel: ATM dev 0: ADSL state: running giu 28 12:12:59 igloo.home.solinos.it kernel: ATM dev 0: ADSL line: down giu 28 12:13:03 igloo.home.solinos.it kernel: ATM dev 0: ADSL line: attempting to activate giu 28 12:13:05 igloo.home.solinos.it kernel: ATM dev 0: ADSL line: down giu 28 12:13:07 igloo.home.solinos.it kernel: ATM dev 0: ADSL line: attempting to activate giu 28 12:13:09 igloo.home.solinos.it kernel: ATM dev 0: ADSL line: down giu 28 12:13:11 igloo.home.solinos.it kernel: ATM dev 0: ADSL line: attempting to activate giu 28 12:13:19 igloo.home.solinos.it kernel: ATM dev 0: ADSL line: training giu 28 12:13:21 igloo.home.solinos.it kernel: ATM dev 0: ADSL line: channel analysis giu 28 12:13:26 igloo.home.solinos.it kernel: ATM dev 0: ADSL line: up (800 kb/s down | 320 kb/s up) giu 28 12:13:29 igloo.home.solinos.it NetworkManager[1055]: <info> [1498644809.6502] device (cxacru0): link connected giu 28 12:13:29 igloo.home.solinos.it NetworkManager[1055]: <info> [1498644809.6505] device (cxacru0): state change: unavailable -> disconnected (reason 'carrier-changed') [20 30 40]
I have do a script to run after boot in order to load cxacru module and ppp0 interface. But I must unplug and reattach manually the usb cable before run this script
There is some way (command line) to simulate unplug/plug of Modem USB?
Someone have some suggest?
Many thanks
On Wed, 28 Jun 2017 14:39:28 +0200 Dario Lesca d.lesca@solinos.it wrote:
I have migrate my home server from Fedora 11 to Fedora 25 with a new installation.
All work fine except the load firmware of the cxacru module (ADSL Modem USB) at boot time, after a poweroff and unplug/plug the AC power cable.
If I try reload the modules manually when the server is started I get the same error and the firmware is not loaded.
If I disconnect and reconnect modem USB when the server is on, the cxacru module load its firmware without problem and I can load the ppp interface property .
[snip]
I have do a script to run after boot in order to load cxacru module and ppp0 interface. But I must unplug and reattach manually the usb cable before run this script
There is some way (command line) to simulate unplug/plug of Modem USB?
Someone have some suggest?
Is it possible you are running into this warning from the kernel documentation, cxacru-cf.py?
# Warning: cxacru-cf.bin with MD5 hash cdbac2689969d5ed5d4850f117702110 # contains mis-aligned values which will stop the modem from being able # to make a connection. If the first and last two bytes are removed then # the values become valid, but the modulation will be forced to ANSI # T1.413 only which may not be appropriate. # # The original binary format is a packed list of le32 values.
And this about a change in the firmware from cxacru.txt
Firmware is required for this device: http://accessrunner.sourceforge.net/
While it is capable of managing/maintaining the ADSL connection without the module loaded, the device will sometimes stop responding after unloading the driver and it is necessary to unplug/remove power to the device to fix this.
Note: support for cxacru-cf.bin has been removed. It was not loaded correctly so it had no effect on the device configuration. Fixing it could have stopped existing devices working when an invalid configuration is supplied.
There is a script cxacru-cf.py to convert an existing file to the sysfs form.
Detected devices will appear as ATM devices named "cxacru". In /sys/class/atm/ these are directories named cxacruN where N is the device number. A symlink named device points to the USB interface device's directory which contains several sysfs attribute files for retrieving device statistics:
I didn't look deep enough to determine what the error codes mean (-104), (-32). They could be because of the above.
This might answer your request to simulate unplug/plug.
To enable/disable ADSL, the following can be written to the adsl_state file: "start" "stop "restart" (stops, waits 1.5s, then starts) "poll" (used to resume status polling if it was disabled due to failure)
Il giorno mer, 28/06/2017 alle 07.56 -0700, stan ha scritto:
Is it possible you are running into this warning from the kernel documentation, cxacru-cf.py?
# Warning: cxacru-cf.bin with MD5 hash # bac2689969d5ed5d4850f117702110 # contains mis-aligned values which will stop the modem from being able # to make a connection.
Thank Stan, but this is not my case:
[lesca@igloo ~]$ md5sum /lib/firmware/cxacru-fw.bin 48071d47f119c9de550b6d446cf91589 /lib/firmware/cxacru-fw.bin
The problem occur only during the boot process, and only with Fedora 25, if I start old PC with Fedora11 all work fine.
And in Fedora 25 if I plug the modem after boot all work fine.
Some other suggest?
Many thanks
On Thu, 29 Jun 2017 11:14:54 +0200 Dario Lesca d.lesca@solinos.it wrote:
Il giorno mer, 28/06/2017 alle 07.56 -0700, stan ha scritto:
Is it possible you are running into this warning from the kernel documentation, cxacru-cf.py?
# Warning: cxacru-cf.bin with MD5 hash # bac2689969d5ed5d4850f117702110 # contains mis-aligned values which will stop the modem from being able # to make a connection.
Thank Stan, but this is not my case:
[lesca@igloo ~]$ md5sum /lib/firmware/cxacru-fw.bin 48071d47f119c9de550b6d446cf91589 /lib/firmware/cxacru-fw.bin
The problem occur only during the boot process, and only with Fedora 25, if I start old PC with Fedora11 all work fine.
I think this is why it doesn't work at boot, ...support for cxacru-cf.bin has been removed. So it doesn't load the binary blob, because it doesn't recognize it. I think the program cxacru-cf.py is meant to reformat the binary blob into a format that the kernel can recognize. At least that's how I read the description. The program is in the file in the kernel documentation, you should be able to find it online with a search on the name.
It is probable that the support for the firmware binary blob was still there in F11 kernels, which is why it works.
And in Fedora 25 if I plug the modem after boot all work fine.
I think that works because of this
...While it is capable of managing/maintaining the ADSL connection without the module loaded, the device will sometimes stop responding after unloading the driver and it is necessary to unplug/remove power to the device to fix this.
So, it seems that when the device fails to load the firmware, it will still work, but it can lock up. By plugging and unplugging you are resetting it, and allowing it to work without the firmware loaded.
Some other suggest?
...There is a script cxacru-cf.py to convert an existing file to the sysfs form.
I would try running the cxacru-cf.py program on the cxacru-fw.bin blob, to convert it to the sysfs form the kernel wants, and see if it will then load. If that doesn't work, you could try opening a bugzilla to see if a kernel maintainer can give you better ideas of how to work around this.
It might be possible to hack the kernel code to restore the functionality for this driver that was present in F11 kernels in the F25 kernel. Not an easy thing to do, I think.
Or, just resign yourself to your current workaround.