-
Hi, Looks like this is a known issue.
https://patchwork.kernel.org/patch/49056/
Does any one if this patch is part of any of the upcoming Knoppix releases?
Thanks,
Krishnaprasad
-
Originally Posted by
krishnaprasadk
Hi, Please ignore my previous post.
i do see that DEVPATH is the Path under /sys at which this device's sysfs directory can be found. i saw the documentation inside Documentation/firmware_class as well. From there i understood the way kernel is calling the firmware and how it needs to be passed from the user end. per your advise, I've created a script /sbin/hotplug as below:-
#!/bin/sh
echo 1 > /sys/$DEVPATH/loading
cat /lib/firmware/bnx2/$FIRMWARE > /sys/class/firmware/data
echo 0 > /sys/$DEVPATH/loading
Now the firmware is read while loading the module and it fails with an error message as below
firmware 0000:05:00.0: firmware_loading_store: vmap() failed
bnx2: Can't load firmware file "bnx2/bnx2-mips-06-4.6.16.fw"
bnx2: probe of 0000:05:00.0 failed with error -2
I am checking bnx2 driver code on why this failure is seen.
Thanks,
Krishnaprasad
It looks like the issue that i am seeing ( i.e. while loading the bnx2 firmware, vmap() call is failed ) is a known issue. i do see the link as below and it exactly matches the error code that i am seeing.
patchwork.kernel.org/patch/49056/
vmap is called to load the firmware data stored in /lib/firmware/bnx2/$FIRMWARE to the kernel.
Looks like Knoppix is not yet included the fix mentioned in the above link in the kernel that they use. So i compiled ( Changed firmware_class.c in drivers/base ) and created a new bzImage using Live CD but still i face the same error. The error is as below
firmware 0000:05:00.0: firmware_loading_store: vmap() failed
bnx2: Can't load firmware file "bnx2/bnx2-mips-06-4.6.16.fw"
bnx2: probe of 0000:05:00.0 failed with error -2
Any one have faced an error like this? i am blocked my Knoppix Booting via PXE because of this issue .. any help will be highly appreciated !
Thank you all for your time !
- Krishnaprasad
-
Senior Member
registered user
Originally Posted by
krishnaprasadk
Now the firmware is read while loading the module and it fails with an error message as below
firmware 0000:05:00.0: firmware_loading_store: vmap() failed
bnx2: Can't load firmware file "bnx2/bnx2-mips-06-4.6.16.fw"
bnx2: probe of 0000:05:00.0 failed with error -2
I am checking bnx2 driver code on why this failure is seen.
Thanks,
Krishnaprasad
Try this improved script ( still not the best ) :-
Code:
#!/bin/sh
[ -z "$FIRMWARE" ] && exit
echo 1 > /sys/$DEVPATH/loading
cat /lib/firmware/$FIRMWARE > /sys/class/firmware/data
echo 0 > /sys/$DEVPATH/loading
Please, this is not ***NOT*** a kernel bug or something, this is
an ***EXPECTED*** behaviour.
Cheers.
-
Senior Member
registered user
Let me add one more note to this. Between you and a working system, it's just this shell script, how complicated it can be ?
Please don't look any further and it is not any more complicated than this.
-
Originally Posted by
kl522
Try this improved script ( still not the best ) :-
Code:
#!/bin/sh
[ -z "$FIRMWARE" ] && exit
echo 1 > /sys/$DEVPATH/loading
cat /lib/firmware/$FIRMWARE > /sys/class/firmware/data
echo 0 > /sys/$DEVPATH/loading
Please, this is not ***NOT*** a kernel bug or something, this is
an ***EXPECTED*** behaviour.
Cheers.
Hello,
Sorry if i took a wrong route. I tried the above change that you advised in /sbin/hotplug script, but still bnx2 fails to load the firmware file. I am still seeing the error message:-
firmware_loading_store: vmap() failed
As far as scripting is concerned, no difficulties are there.
since i saw a kernel forum thread which shows the exact error message, i thought of following that. Also in the 6.2 DVD, kernel source is available. There also inside drivers/base, firmware_class.c doesnt have the mutex fix that the forum is suggested to use. so I believed that i am facing the same issue.
Now that the loading of bnx2 firmware still fails with this updated script, could you please advise on how to move forward?
I really appreciate the help that you are providing in this issue !
- Krishnaprasad
-
Originally Posted by
kl522
Try this improved script ( still not the best ) :-
Code:
#!/bin/sh
[ -z "$FIRMWARE" ] && exit
echo 1 > /sys/$DEVPATH/loading
cat /lib/firmware/$FIRMWARE > /sys/class/firmware/data
echo 0 > /sys/$DEVPATH/loading
Please, this is not ***NOT*** a kernel bug or something, this is
an ***EXPECTED*** behaviour.
Cheers.
okay..my mistake.. instead of sending the bnx2 firmware data ( /path/$FIRMWARE ) to /sys/$DEVPATH/data, i was re-directing it to /sys/class/firmware/data.
Now i corrected that and bootup of Knoppix 6.2 from PXE is successful using NFS share... there is not even requited to check if $FIRMWARE exists or not.
Thanks for all your patience in helping me out on this.
Thank you !
Krishnaprasad
-
Senior Member
registered user
Did you notice that the script initially was
cat /lib/firmware/bnx/$FIRMWARE > /sys/class/firmware/data
and the new script was :-
cat /lib/firmware/$FIRMWARE > /sys/class/firmware/data
Did you try to debug the script by changing it to :-
#!/bin/sh
[ -z "$FIRMWARE" ] && exit
echo 1 > /sys/$DEVPATH/loading
echo "Loading firmware /lib/firmware/$FIRMWARE" >> /tmp/log
cat /lib/firmware/$FIRMWARE > /sys/class/firmware/data
echo 0 > /sys/$DEVPATH/loading
Did you check if there are indeed firmware files in your initrd.gz, which filenames are matching what are needed by the script (as appeared in /tmp/log ) ?
-
Originally Posted by
kl522
Did you notice that the script initially was
cat /lib/firmware/bnx/$FIRMWARE > /sys/class/firmware/data
and the new script was :-
cat /lib/firmware/$FIRMWARE > /sys/class/firmware/data
Did you try to debug the script by changing it to :-
#!/bin/sh
[ -z "$FIRMWARE" ] && exit
echo 1 > /sys/$DEVPATH/loading
echo "Loading firmware /lib/firmware/$FIRMWARE" >> /tmp/log
cat /lib/firmware/$FIRMWARE > /sys/class/firmware/data
echo 0 > /sys/$DEVPATH/loading
Did you check if there are indeed firmware files in your initrd.gz, which filenames are matching what are needed by the script (as appeared in /tmp/log ) ?
HI, not sure if you have seen the post that i posted before your reply. re-posting the required part.
instead of sending the bnx2 firmware data ( /path/$FIRMWARE ) to /sys/$DEVPATH/data, i was re-directing it to /sys/class/firmware/data.
Here is the final script
#!/bin/sh
#[ -z "$FIRMWARE" ] && exit
echo 1 > /sys/$DEVPATH/loading
cat /lib/firmware/$FIRMWARE > /sys/$DEVPATH/data
echo 0 > /sys/$DEVPATH/loading
I must thank you for your patience in guiding me for getting into a resolution. I really appreciate and sorry for the change in path that i took by seeing the kernel patch .. My bad analysis
Thanks much !
- Krishnaprasad
-
Senior Member
registered user
Haven't I told you between you and a working system is just this shell script ?
-
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
8 Ports Unmanaged Industrial Ethernet Switch Network Gigabit Ethernet Switch
$76.50
Cisco Meraki MS120-48LP 48 Port Blade Ethernet Switch UNCLAIMED
$799.00
Cisco SG110 8 Port Gigabit Ethernet Switch SG110D-08-UK
$39.00
InHand Networks 5/8 Port Industrial Unmanaged Fast Ethernet/Giga DIN-Rail Switch
$53.10
HP 2530-48G 48 Port Gigabit Ethernet Network Switch J9775A
$30.95
New Linksys SE3005 5-port Gigabit Ethernet Switch
$18.99
New 10/100 Mbps 8 Ports Fast Ethernet LAN Desktop RJ45 Network Switch Hub
$11.49
HP ProCurve 2530-24G J9776A 24 Port Gigabit Ethernet Managed Network Switch
$34.99
Juniper Networks EX3300-48P 48-Port PoE+ 4x SFP+ Network Switch w/ Power Cord
$43.95
HP Aruba 2530-8G-PoE+ 8x PoE+ RJ45 2x SFP Gigabit Switch J9774A No AC Adapter
$39.99