I-Appliance BBS
The Official Source for Internet Appliance Upgrades and Mods

Click Here!
BBS Main List | Sign In | Sign Up | Search | Help | Linux-Hacker.netReply to Thread | Printer |

Home / Linux / Midori Linux General Board
Netgear FA-101 working in Midori. Probably useful to get other pegasus adapters working as well.

New MessageNetgear FA-101 working in Midori. Probably useful to get other pegasus adapters working as well. (modified 0 times) kschwab
Profile | Email
I posted this in the IA-1 area, but thought it might belong here too..

Took a while to figure this out, but I have an option for those of you with USB ethernet
adapters that aren't working in linux. In my case, I had a Netgear FA-101 adapter.
This is based on the pegasus chipset.
The problem with it is that the vendor id and device id weren't compiled into the
pegasus.o module until version 2.4.21 of Linux. The latest midori image I could
find was based on Linux 2.4.20.

The short story of what I did was to use a hex editor on the pegasus.o module to replace
the vendor id and device id of a supported 3com adapter with the vendor/device id of the
Netgear FA-101.

Long story:

1. Format a CF card with a FAT filesystem.
2. Boot the EA-1 with the CF card in it.
3. mkdir /tmp/cf
4. mount -t vfat /tmp/hdc1 /tmp/cf
5. cp /lib/modules/2.4.20/usb/pegasus.o /tmp/cf;sync
6. shutdown the EA-1 and remove the CF card
7. load the cf card somewhere where you can hex edit it. for me, it's a windows xp machine.
I used a hex editor called tiny hexer: http://www.mirkes.de/en/freeware/tinyhex.php
8. Within the pegasus.o file, the vendor id and device id's are together, but in reverse
byte order. In my case, I wanted to replace the vendor/device id for a 3com adapter.
The vendor id is 0x0506 and the device id is 0x4601. The numbers are byte swapped
in the device file so that they show up as 0605 and 0146. I needed to replace them
with the netgear id's of 0x0846 and 0x1020. Of course, the replacement numbers need
to be byte swapped as well. In short, use the search/replace function to replace the
hex value "06 05 01 46" with "46 08 20 10". It should make 2 replacements.
9. Save the modified file back the CF card.
10. repeat steps 1-4 to get the CF card mounted.
11. rmmod pegasus
12. modprobe /tmp/cf/pegasus.o
13. type "dmesg" and you should see evidence that the adapter was recognized as a 3com.
14. if you need dhcp, run "pump".

At this point, the adapter started working for me. To make this fix permanent, I used the
freeze/thaw to put the new pegasus.o into /tmp/config and modified the startup by removing
the "pegasus" driver from the script and replacing it with the modprobe /tmp/config/pegasus.o
command. A little quick and dirty, but easier than figuring out how to set up a midori build
environment.


I did try the other method of using a dos boot disk and an ADMtek utility to reburn new vendor
and device id's to the Netgear device. I got it somewhat working, but the utility to burn
the new id's gave a failure message.

11-24-2005 11:10:53

Reply to Thread | Printer |
All times are PSTPowered by UltraBoard v1.62



Copyright © 2000, Netmake Inc. All Rights Reserved.
See Terms and Conditions for more information.




i-opener opener laptop notebook computer help drivers dll free windows dos repair fix linux mac macintosh 2000 95 98 nt pc configure hardware software sound video netscape explorer network networking lan wan software cmos fat bios printer card mouse modem ide scsi cd rom controllers scanner tape hard drive cgi scripts source code mp3