Asus U3100 Mini plus DVB-T

From LinuxTVWiki
Revision as of 20:14, 17 July 2010 by Olliv3r (Talk | contribs)

Jump to: navigation, search

This is just some thoughts and rambling about the Asus U3100 based on the AF9035 instead of the previous DiB models.

EzCap_DVB_T_Stick is the guide to be followed to get this stick working. Read both articles thoroughly and it should be able to get it working.

A hungarian forum post. They link an archive with an installer in it.

When running the shell script in this archive, setup is called which extracts data to /tmp. If the setup is canceled in any way, the temporary directory gets removed. Whats interesting is, that in this directory, is the full source for various tuners and for the af9035.

To get the Asus U3100 working with this source package, a few things need to be modified. Firstly, there is a syntax error. The defines (commented):

#define CRYSTAL_19.2_MHZ
#define CRYSTAL_20.48_MHZ

cannot have dots in them. Remove the dots with a find and replace to something without one, such like:

#define CRYSTAL_19_MHZ
#define CRYSTAL_20_MHZ

Then the USB ID for the U3100plus needs to be added to the kernels in drivers/media/dvb/dvb-usb/dvb-usb-ids.h Such like:

#define USB_PID_ASUS_U3100MINI                  0x1779

Then, the af903x driver needs to be told about this ID. This is done in af903x-devices.c Find the struct af903x_usb_id_table and add the ID's:

struct usb_device_id af903x_usb_id_table[] = {
                { USB_DEVICE(0x15A4,0x1000) },
                { USB_DEVICE(0x15A4,0x1001) },
                { USB_DEVICE(0x15A4,0x1002) },
                { USB_DEVICE(0x15A4,0x1003) },
                { USB_DEVICE(0x15A4,0x9035) },
                { USB_DEVICE(USB_VID_ASUS, USB_PID_ASUS_U3100MINI) },
                { 0},           /* Terminating entry */

And finally, add the struct to the device section listing the devices.

                .num_device_descs = 2,
                .devices =  {
                    {"ITEtech USB2.0 DVB-T Receiver",
                    }, {"Asus U3100MINI_PLUS/T/RC Receiver",
                    }, {

Don't know if this is ALL what is needed though.

USB Quircks are also needed for this device.

options usbhid quirks=0x0b05:0x1779:0x0004

dmesg output:

[   37.342184] usb 1-3.1: new high speed USB device using ehci_hcd and address 6
[   37.422512] usb 1-3.1: New USB device found, idVendor=0b05, idProduct=1779
[   37.422524] usb 1-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   37.422533] usb 1-3.1: Product: AF9035A USB Device
[   37.422541] usb 1-3.1: Manufacturer: Afa Technologies Inc.
[   37.422549] usb 1-3.1: SerialNumber: AF0102020700001
[   37.431790] input: Afa Technologies Inc. AF9035A USB Device as /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3.1/1-3.1:1.1/input/input8
[   37.432503] generic-usb 0003:0B05:1779.0002: input,hidraw1: USB HID v1.01 Keyboard [Afa Technologies Inc. AF9035A USB Device] on usb-0000:00:1d.7-3.1/input1
[   37.727056] AF903X: af903x_module_init
[   37.727110]         DRIVER_RELEASE_VERSION : v9.08.14.1
[   37.727117]         FW_RELEASE_VERSION     : v8_8_63_0
[   37.727125]         API_RELEASE_VERSION    : 200.20090402.0
[   38.248134] dvb-usb: found a 'Asus U3100MINI_PLUS/T/RC Receiver' in warm state.
[   38.346245] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[   38.346779] DVB: registering new adapter (Asus U3100MINI_PLUS/T/RC Receiver)
[   38.353203] DVB: registering adapter 0 frontend 0 (AF903X USB DVB-T)...
[   38.364856] dvb-usb: Asus U3100MINI_PLUS/T/RC Receiver successfully initialized and connected.
[   38.364946] usbcore: registered new interface driver dvb_usb_af903x

I can't figure out how to load or tell the af9035 what tuner to use. dvbscan doesn't do much either.

dvbscan /usr/share/dvb/dvb-t/nl-All
Unable to query frontend status

and adding -out vdr13 just waits for a long time. Leds don't go on.

Update. dvbscan just doesn't seem to work. I haven't tried scan yet, but w_scan seems to be working though! Generating a intial scan config makes scan work.

In the meantime, I have gotten it to work! Success, hurray. Suspend is utterly broken when running VDR though. Not sure if it is related to VDR or the module. Also, the module has some bug with it's register count, sometimes I see it showing up as a huge number, looking like it went from 0 -1 on an unsigned 32 bit int.