Problem in changing PDR

Pavel Roskin proski at gnu.org
Fri Feb 13 18:28:32 EST 2004


On Fri, 13 Feb 2004, nondito wrote:

> [root<>mars hostap-utils-0.1.3]# iwpriv wlan0
> set_rid_word fd10 ff 3f
> Interface doesn't accept private ioctl...
> set_rid_word (8BEE): Invalid argument

I guess it's a way of saying that the RID fd10 is read-only.

> Can anyone suggest me why I can't change the value of the above PDR
> using the above tools. What I am missing, may be anything in the source
> (macro) needs to be enabled, or the firmware needs to be flashed after
> the PDR rewriting for it to show up ....

The permanent solution would be to get the PDA, convert it to an S-Record
by objcopy (make sure to set the starting address!), edit it and flash it.
Then flash the secondary firmware.  Something like this (untested, no
guarantee):

objcopy --input-format=binary --output-format=srec --srec-forceS3 \
 --change-addresses=0x7f0000 /proc/net/hostap/wlan0/pda pda.hex

remove S0 and S7 records, look for 0401FF, set next byte to 3f.

prism2_srec -f wlan0 pda.hex

Less radical solutions don't require reflashing the PDA.  You can patch
prism_srec to get PDA from a file and edit that file.  Or you can edit the
secondary firmware, remove the PDR from it and apply the change to the
firmware manually at the address that was pointed by the PDR.

I'm sorry if it sounds complicated.  This can be done by somebody with
some scripting skills, understanding of S-Record format and Prism chipset.
I hope prism2_srec will be modified to make it easier in the future.

-- 
Regards,
Pavel Roskin



More information about the HostAP mailing list