ULi M920x firmware: Difference between revisions
m (M920x firmware moved to ULi M920x firmware: name) |
m (add links) |
||
Line 7: | Line 7: | ||
it down so that it doesn't cause traffic in logs. |
it down so that it doesn't cause traffic in logs. |
||
[[ULi M920x|M920x]] firmware consists of a number of 64 byte long usb control |
|||
messages. After these control messages you will see another control |
messages. After these control messages you will see another control |
||
message with request, value, index of M9206_CORE(0x22), 0x01, |
message with request, value, index of M9206_CORE(0x22), 0x01, |
||
Line 28: | Line 28: | ||
== Usbsnoop == |
== Usbsnoop == |
||
First with parser.pl and then with |
First with parser.pl and then with [[ULi M920x parse|M920x parse]] |
||
(arguments -i us -m fw) |
(arguments -i us -m fw) |
||
Line 48: | Line 48: | ||
You need to replug your device after removing ehci_hcd module so your device sees the change. Look at /proc/bus/usb/devices to find in which bus you device is in. |
You need to replug your device after removing ehci_hcd module so your device sees the change. Look at /proc/bus/usb/devices to find in which bus you device is in. |
||
cat /sys/kernel/debug/usbmon/<b>n</b>t to a file (n is the bus number). |
cat /sys/kernel/debug/usbmon/<b>n</b>t to a file (n is the bus number). |
||
Finally pass this file to |
Finally pass this file to [[ULi M920x parse|M920x parse]] (arguments -i um -m fw) |
||
== Snoopypro == |
== Snoopypro == |
||
[[ULi M920x sp firmware|M920x sp firmware]] can only read data in this format: |
|||
http://www.roback.cc/projects/iRiver/howto/snoopypro/wordpad_saved.png |
http://www.roback.cc/projects/iRiver/howto/snoopypro/wordpad_saved.png |
||
== Useful scripts == |
== Useful scripts == |
||
*[[ULi |
*[[ULi M920x parse]] |
||
*[[ULi |
*[[ULi M920x sp firmware]] |
||
*[[Usbmon2usbsnoop]] |
*[[Usbmon2usbsnoop]] |
Revision as of 03:02, 16 August 2007
You can get it either with usbsnoop or snoopypro under Windows. See http://www.linuxtv.org/pipermail/linux-dvb/2006-November/014682.html if you want to use usbmon with vmware player.
Firmware will be sent as soon as you plug in the device, so you should not start any programs. Sticks with remote controller might have program called Uremote.exe (or similar) running. If you do, please shut it down so that it doesn't cause traffic in logs.
M920x firmware consists of a number of 64 byte long usb control messages. After these control messages you will see another control message with request, value, index of M9206_CORE(0x22), 0x01, M9206_FW_GO(0xff69), respectively.
After usb device receives this message, it will disconnect itself from the bus and appear again with (possibly) different idVendor and idProduct. These new ids are known as warm ids. At very least you will see your device having new endpoints that will be used to transmit data.
It's important to have Usbsnoop or Snoopypro installed and logging before you plug in the device. It might take several attempts to get a dump where this firmware is visible.
After acquiring a log with firmware, you will need to process it with various tools.
Usbsnoop
First with parser.pl and then with M920x parse (arguments -i us -m fw)
Usbmon
Recompile your kernel with CONFIG_USB_DEVICEFS, CONFIG_USB_MON and CONFIG_DEBUG_FS selected in your kernel config. Then patch linux/drivers/usb/mon/mon_text.c with http://www.rasterburn.org/~aet/m920x/usbmon_ext.diff. Finally make sure that CONFIG_USB_EHCI_HCD is set to m and not y. After rebooting your new kernel, install vmware player and get everything ready on that front. See http://software.newsforge.com/article.pl?sid=06/05/16/1940214 for more details on this.
You will probably need these: (look up with google if interested)
# remove usb 2.0 support. vmware might freak out your computer otherwise rmmod ehci_hcd mount -t debugfs none_debugs /sys/kernel/debug modprobe usbmon mount -t usbfs none /proc/bus/usb # needed by vmware chmod -R a+rw /proc/bus/usb (needed by vmware. security!!)
You need to replug your device after removing ehci_hcd module so your device sees the change. Look at /proc/bus/usb/devices to find in which bus you device is in. cat /sys/kernel/debug/usbmon/nt to a file (n is the bus number). Finally pass this file to M920x parse (arguments -i um -m fw)
Snoopypro
M920x sp firmware can only read data in this format: http://www.roback.cc/projects/iRiver/howto/snoopypro/wordpad_saved.png