Jump to content


Photo

RTL2832U chipset support proposal

DVB-T

  • Please log in to reply
170 replies to this topic

#1 ambrosa

  • Senior Member
  • 161 posts

+35
Good

Posted 27 November 2011 - 16:26

About one week ago I've bought a DVB-T USB stick based on Realtek RTL2832U chipset.
I've found some driver for Ubuntu but they are old and someone has patched them introducing some wrong typecast in C code so they compile only for x86 64bit arch.

"Restart from scratch !" : I've emailed Realtek and they kindly give me their latest RTL2832 Linux driver rel 2.2.2. This driver is for kernel 2.6.x and V4L

I've started porting the code to kernel 3.x.x and I've made some code cleanup and minor bug correction.
My little project is here https://github.com/a...od_kernel-3.0.0 and you also can find in my GitHub repo the original RTL2832U 2.2.2 driver (two versions: full with 10 tuners and simplified with 3 tuner)

Since yesterday evening driver compile fine without any warning in Ubuntu 11.10 32bit and 64bit and device works fine.

And this morning compile fine also with OpenPLi for CT9x00 (based on 27-11-2011 repo)

These are some USB sticks RTL2832U based:
DIKOM USB-DVBT HD [ID 1b80:d394] (my own)
NILOX DVB-T Stick N15 [ID 1b80:d393]
TRUST 16738 [ID 0bda:2832]
TERRATEC Cinergy T Stick BLACK [ID 0ccd:00a9]
TX Hollywood DVTB [ID 1d19:1101]
DIGIVOX mini II v3.0 [ID 1d19:1101]

The driver "full" support:
Chipset 2832, 2836, 2840
DVB-T, DVB-C, DTMB
Tuners: E4000, FC0012 (most used), FC0013, FC2580, MAX3543, MX2063, MX2266, MXL5007T, TDA18272, TUA9001
All in one package: patch (see below) is about 2.5 MB

I've tested DIKOM USB-DVBT HD (USB2.0, RTL2832, FC0012, DVB-T) in my CT9100 with my driver and compared with Avermedia A867 stick:

Channels found (using Manual Scan, Tuner C, Complete, n, n, n; "Europe DVB-T" freq. set)
DIKOM: 312 (VHF ok), the same more or less than Avermedia A835
A867: 393 (VHF ok)

Zap time:
DIKOM: about 3-4 sec.
A867: about 1.5-2 sec.

Uptime after 10 minutes watching the same DVB-T HD channel:
DIKOM: 0.47
A867: 1.20

Signal quality feedback in E2:
DIKOM: none (no SNR, no AGC, no BER). I hope to fix in future.
A867: AGC, BER (no SNR)

Device temperature:
DIKOM: medium
A867: medium


The driver looks stable.


This is my local linux-etxx00_3.1.0.bb (made this morning) and I attach here my openembedded/recipes/linux/linux-etxx00/dvb-usb-rtl2832u.patch
I hope it can be included in OpenPli

DESCRIPTION = "Linux kernel for ${MACHINE}"
LICENSE = "GPL"
 
MACHINE_KERNEL_PR_append = ".7"
 
DEPENDS = "mtd-minimal-nand-utils"
RDEPENDS_kernel-image = "mtd-minimal-nand-utils"
 
SRC_URI += "http://www.et-view.com/download/linux-${PV}.tar.gz \
	file://${MACHINE}_defconfig \
	file://fix-proc-cputype.patch \
	file://dvb-usb-af9035.patch \
	file://dvb-usb-it9135.patch \
	file://tda18218-7mhz-lopass.patch \
	file://dvb-usb-a867.patch \
	file://PCTV-DVB-S2-stick-460e.patch \
	file://cxd2820r-enable-LNA-for-DVB-T.patch \
	file://cxd2820r-changed-condition-to-break-out-from-wait-lock-loop.patch \
	file://dvb-usb-smsdvb_fix_frontend.patch \
	file://dvb-usb-rtl2832u.patch \
	"
 
SRC_URI_append_et5x00 = " file://disable_early_fb.patch"
 
S = "${WORKDIR}/linux-${PV}"
 
inherit kernel
 
export OS = "Linux"
KERNEL_OBJECT_SUFFIX = "ko"
KERNEL_OUTPUT = "vmlinux"
KERNEL_IMAGETYPE = "vmlinux"
KERNEL_IMAGEDEST = "/tmp"
 
FILES_kernel-image = "/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}.gz"
 
do_configure_prepend() {
	oe_machinstall -m 0644 ${WORKDIR}/${MACHINE}_defconfig ${S}/.config
	oe_runmake oldconfig
}
 
kernel_do_install_append() {
	install -d ${D}/${KERNEL_IMAGEDEST}
	install -m 0755 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}
	gzip ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}
}
 
pkg_postinst_kernel-image () {
	if [ "x$D" == "x" ]; then
		if [ -f /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}.gz ] ; then
			flash_eraseall -j /dev/mtd1
			nandwrite -p /dev/mtd1 /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}.gz
			rm -f /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}.gz
		fi
	fi
	true
}
 

Attached Files


Edited by ambrosa, 27 November 2011 - 16:29.

STB: Clarke Tech ET9100
Mass storage: internal SATA-II HDD 1TB WD10EACS GreenPower 5400rpm
Mass storage: external USB pen drive 2GB
Firmware: OpenPLi kernel 3.x.x
Tuner A: AVL2108 (DVB-S2) HotBird 13E
Tuner B: AVL2108 (DVB-S2) HotBird 13E
Tuner C: AverMedia A867 (DVB-T HD) (AF9035 + MXL5007T)
TV: plasma PANASONIC GT30 fullHD
Audio: PCM through HDMI (no Dolby decoder)

Re: RTL2832U chipset support proposal #2 pieterg

  • PLi® Core member
  • 32,766 posts

+245
Excellent

Posted 27 November 2011 - 16:52

thanks, I'll add it

Re: RTL2832U chipset support proposal #3 ims

  • PLi® Core member
  • 13,949 posts

+215
Excellent

Posted 27 November 2011 - 17:18

This chipset is in my Digi VOX Micro HD too.
Will be for DM too ?
Kdo nic nedělá, nic nezkazí!

Re: RTL2832U chipset support proposal #4 ambrosa

  • Senior Member
  • 161 posts

+35
Good

Posted 27 November 2011 - 22:55

This chipset is in my Digi VOX Micro HD too.
Will be for DM too ?


1) if you give me the USB ID (lsusb output) I can check if it is supported

2) If driver will be included in official OpenPli, I suppose you can upgrade your Dreambox with OpenPli and driver should work fine as in every E2 OpenPli STB (more or less): ClarkeTech, Vu+, DMM .....
STB: Clarke Tech ET9100
Mass storage: internal SATA-II HDD 1TB WD10EACS GreenPower 5400rpm
Mass storage: external USB pen drive 2GB
Firmware: OpenPLi kernel 3.x.x
Tuner A: AVL2108 (DVB-S2) HotBird 13E
Tuner B: AVL2108 (DVB-S2) HotBird 13E
Tuner C: AverMedia A867 (DVB-T HD) (AF9035 + MXL5007T)
TV: plasma PANASONIC GT30 fullHD
Audio: PCM through HDMI (no Dolby decoder)

Re: RTL2832U chipset support proposal #5 ims

  • PLi® Core member
  • 13,949 posts

+215
Excellent

Posted 27 November 2011 - 23:07

lsusb:

Bus 002 Device 005: ID 1d19:1102 Dexatek Technology Ltd. DK mini DVB-T Dongle
Kdo nic nedělá, nic nezkazí!

Re: RTL2832U chipset support proposal #6 pieterg

  • PLi® Core member
  • 32,766 posts

+245
Excellent

Posted 27 November 2011 - 23:37

as both dmm and vu+ insist on using an ancient 2.6.18 kernel, somebody will have to backport the driver.

Re: RTL2832U chipset support proposal #7 Gennar1

  • Senior Member
  • 296 posts

+31
Good

Posted 28 November 2011 - 01:41

Nice work Ambrosa.
It is worth mentioning that someone else has posted a patch to add support for kernel 3.2-rc2 (the latest version) to your source tree:

http://www.mail-arch...g/msg39588.html

Maybe it's better to merge that patch too, so when there will be the next kernel upgrade the patch will be ready.

--- a/rtl2832u.c	    2011-11-27 11:05:03.587543422 +0100
+++ b/rtl2832u.c	    2011-11-27 10:47:19.329713097 +0100
@@ -689,7 +689,11 @@ error:

static int rtl2832u_frontend_attach(struct dvb_usb_adapter *adap)
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+	   adap->fe_adap[0].fe = rtl2832u_fe_attach(adap->dev);
+#else
	    adap->fe = rtl2832u_fe_attach(adap->dev);
+#endif
	    return 0;
}

@@ -835,9 +839,16 @@ static struct dvb_usb_device_properties
	    .adapter =
	    {
			    {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   .fe_ioctl_override = rtl2832u_ioctl_override,
+			   .num_frontends = 1,
+			   .fe = {{
+#endif
					    .streaming_ctrl = rtl2832u_streaming_ctrl,
					    .frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
					    .fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
					    //parameter for the MPEG2-data transfer
					    .stream =
					    {
@@ -852,6 +863,9 @@ static struct dvb_usb_device_properties
									    }
							    }
					    },
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   }},
+#endif
			    }
	    },

@@ -917,9 +931,16 @@ static struct dvb_usb_device_properties
	    .adapter =
	    {
			    {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   .fe_ioctl_override = rtl2832u_ioctl_override,
+			   .num_frontends = 1,
+			   .fe = {{
+#endif
					    .streaming_ctrl = rtl2832u_streaming_ctrl,
					    .frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
					    .fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
					    //parameter for the MPEG2-data transfer
					    .stream =
					    {
@@ -934,6 +955,9 @@ static struct dvb_usb_device_properties
									    }
							    }
					    },
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   }},
+#endif
			    }
	    },
	    //remote control
@@ -999,9 +1023,16 @@ static struct dvb_usb_device_properties
	    .adapter =
	    {
			    {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   .fe_ioctl_override = rtl2832u_ioctl_override,
+			   .num_frontends = 1,
+			   .fe = {{
+#endif
					    .streaming_ctrl = rtl2832u_streaming_ctrl,
					    .frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
					    .fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
					    //parameter for the MPEG2-data transfer
					    .stream =
					    {
@@ -1016,6 +1047,9 @@ static struct dvb_usb_device_properties
									    }
							    }
					    },
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   }},
+#endif
			    }
	    },

@@ -1087,9 +1121,16 @@ static struct dvb_usb_device_properties
	    .adapter =
	    {
			    {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   .fe_ioctl_override = rtl2832u_ioctl_override,
+			   .num_frontends = 1,
+			   .fe = {{
+#endif
					    .streaming_ctrl = rtl2832u_streaming_ctrl,
					    .frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
					    .fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
					    //parameter for the MPEG2-data transfer
					    .stream =
					    {
@@ -1104,6 +1145,9 @@ static struct dvb_usb_device_properties
									    }
							    }
					    },
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   }},
+#endif
			    }
	    },
	    //remote control
@@ -1176,9 +1220,16 @@ static struct dvb_usb_device_properties
	    .adapter =
	    {
			    {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   .fe_ioctl_override = rtl2832u_ioctl_override,
+			   .num_frontends = 1,
+			   .fe = {{
+#endif
					    .streaming_ctrl = rtl2832u_streaming_ctrl,
					    .frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
					    .fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
					    //parameter for the MPEG2-data transfer
					    .stream =
					    {
@@ -1193,6 +1244,9 @@ static struct dvb_usb_device_properties
									    }
							    }
					    },
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   }},
+#endif
			    }
	    },
	    //remote control
@@ -1265,9 +1319,16 @@ static struct dvb_usb_device_properties
	    .adapter =
	    {
			    {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   .fe_ioctl_override = rtl2832u_ioctl_override,
+			   .num_frontends = 1,
+			   .fe = {{
+#endif
					    .streaming_ctrl = rtl2832u_streaming_ctrl,
					    .frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
					    .fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
					    //parameter for the MPEG2-data transfer
					    .stream =
					    {
@@ -1282,6 +1343,9 @@ static struct dvb_usb_device_properties
									    }
							    }
					    },
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   }},
+#endif
			    }
	    },
		 /*remote control*/
@@ -1353,9 +1417,16 @@ static struct dvb_usb_device_properties
	    .adapter =
	    {
			    {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   .fe_ioctl_override = rtl2832u_ioctl_override,
+			   .num_frontends = 1,
+			   .fe = {{
+#endif
					    .streaming_ctrl = rtl2832u_streaming_ctrl,
					    .frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
					    .fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
					    //parameter for the MPEG2-data transfer
					    .stream =
					    {
@@ -1370,6 +1441,9 @@ static struct dvb_usb_device_properties
									    }
							    }
					    },
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   }},
+#endif
			    }
	    },
	    //remote control
@@ -1436,9 +1510,16 @@ static struct dvb_usb_device_properties
	    .adapter =
	    {
			    {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   .fe_ioctl_override = rtl2832u_ioctl_override,
+			   .num_frontends = 1,
+			   .fe = {{
+#endif
					    .streaming_ctrl = rtl2832u_streaming_ctrl,
					    .frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
					    .fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
					    //parameter for the MPEG2-data transfer
					    .stream =
					    {
@@ -1453,6 +1534,9 @@ static struct dvb_usb_device_properties
									    }
							    }
					    },
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   }},
+#endif
			    }
	    },
	    //remote control
@@ -1519,9 +1603,16 @@ static struct dvb_usb_device_properties
	    .adapter =
	    {
			    {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   .fe_ioctl_override = rtl2832u_ioctl_override,
+			   .num_frontends = 1,
+			   .fe = {{
+#endif
					    .streaming_ctrl = rtl2832u_streaming_ctrl,
					    .frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
					    .fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
					    //parameter for the MPEG2-data transfer
					    .stream =
					    {
@@ -1536,6 +1627,9 @@ static struct dvb_usb_device_properties
									    }
							    }
					    },
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+			   }},
+#endif
			    }
	    },
	    //remote control


Re: RTL2832U chipset support proposal #8 ambrosa

  • Senior Member
  • 161 posts

+35
Good

Posted 28 November 2011 - 12:56

lsusb:

Bus 002 Device 005: ID 1d19:1102 Dexatek Technology Ltd. DK mini DVB-T Dongle


Yes, your device is supported (well, its VID-PID is in devices list).
See here https://github.com/a....0.0/rtl2832u.h row 26 and 28
STB: Clarke Tech ET9100
Mass storage: internal SATA-II HDD 1TB WD10EACS GreenPower 5400rpm
Mass storage: external USB pen drive 2GB
Firmware: OpenPLi kernel 3.x.x
Tuner A: AVL2108 (DVB-S2) HotBird 13E
Tuner B: AVL2108 (DVB-S2) HotBird 13E
Tuner C: AverMedia A867 (DVB-T HD) (AF9035 + MXL5007T)
TV: plasma PANASONIC GT30 fullHD
Audio: PCM through HDMI (no Dolby decoder)

Re: RTL2832U chipset support proposal #9 ambrosa

  • Senior Member
  • 161 posts

+35
Good

Posted 28 November 2011 - 12:57

Nice work Ambrosa.
It is worth mentioning that someone else has posted a patch to add support for kernel 3.2-rc2 (the latest version) to your source tree:

http://www.mail-arch...g/msg39588.html

Maybe it's better to merge that patch too, so when there will be the next kernel upgrade the patch will be ready.


Many thanks
I will apply today to my GitHub
STB: Clarke Tech ET9100
Mass storage: internal SATA-II HDD 1TB WD10EACS GreenPower 5400rpm
Mass storage: external USB pen drive 2GB
Firmware: OpenPLi kernel 3.x.x
Tuner A: AVL2108 (DVB-S2) HotBird 13E
Tuner B: AVL2108 (DVB-S2) HotBird 13E
Tuner C: AverMedia A867 (DVB-T HD) (AF9035 + MXL5007T)
TV: plasma PANASONIC GT30 fullHD
Audio: PCM through HDMI (no Dolby decoder)

Re: RTL2832U chipset support proposal #10 ambrosa

  • Senior Member
  • 161 posts

+35
Good

Posted 28 November 2011 - 13:01

as both dmm and vu+ insist on using an ancient 2.6.18 kernel, somebody will have to backport the driver.


The original Realtek driver is made for 2.6.x kernel.

From 2.6.0 to latest 2.6.40 (or more) is it changed something about V4L structure and DVBAPI ?
If not, probably original driver can work for older kernel.

I can made some test about this issue.
I need suggestion about which image try to compile: Dm8000 ? Dm800SE ? VU+ Uno ? .....
Just for testing compile....
STB: Clarke Tech ET9100
Mass storage: internal SATA-II HDD 1TB WD10EACS GreenPower 5400rpm
Mass storage: external USB pen drive 2GB
Firmware: OpenPLi kernel 3.x.x
Tuner A: AVL2108 (DVB-S2) HotBird 13E
Tuner B: AVL2108 (DVB-S2) HotBird 13E
Tuner C: AverMedia A867 (DVB-T HD) (AF9035 + MXL5007T)
TV: plasma PANASONIC GT30 fullHD
Audio: PCM through HDMI (no Dolby decoder)

Re: RTL2832U chipset support proposal #11 ims

  • PLi® Core member
  • 13,949 posts

+215
Excellent

Posted 28 November 2011 - 13:09

dm800se
Kdo nic nedělá, nic nezkazí!

Re: RTL2832U chipset support proposal #12 ambrosa

  • Senior Member
  • 161 posts

+35
Good

Posted 28 November 2011 - 13:41

Chipset support also DAB/DAB+ but it depends on stick brand (as Realtek says to me).

Linux driver support DAB and one stick (thanks Gennar1) looks to be http://www.terratec....Data.pdf</span>

Other people says "Please note that the DVB part of the Noxon DAB Stick (USB ID 0ccd:00b3) is also supported by the Linux driver code"

It's a pity that Enigma2 doesn't support DAB.

Edited by ambrosa, 28 November 2011 - 13:41.

STB: Clarke Tech ET9100
Mass storage: internal SATA-II HDD 1TB WD10EACS GreenPower 5400rpm
Mass storage: external USB pen drive 2GB
Firmware: OpenPLi kernel 3.x.x
Tuner A: AVL2108 (DVB-S2) HotBird 13E
Tuner B: AVL2108 (DVB-S2) HotBird 13E
Tuner C: AverMedia A867 (DVB-T HD) (AF9035 + MXL5007T)
TV: plasma PANASONIC GT30 fullHD
Audio: PCM through HDMI (no Dolby decoder)

Re: RTL2832U chipset support proposal #13 ambrosa

  • Senior Member
  • 161 posts

+35
Good

Posted 29 November 2011 - 12:43

I've an of interesting info.

Every DVB-T USB stick based on RTL2832U and tuners FC0012 or FC0013 or FC2580 or E4000 IS DAB RADIO CAPABLE
It's only a player issue (tnx Realtek for info).

Tested (by Xgaz) with my DIKOM USB DVBT stick with Windows Terratec DAB player http://ftp.terratec....tup_4.0.092.zip and original DIKOM driver.
Well .... It works !!

Posted Image

Ok, Enigma2 doesn't support DAB :( :( :( :(

Anyone knows a Linux DAB Player ? I wish to test my stick .... but I've found nothing about Linux (Ubuntu) and DAB ...
STB: Clarke Tech ET9100
Mass storage: internal SATA-II HDD 1TB WD10EACS GreenPower 5400rpm
Mass storage: external USB pen drive 2GB
Firmware: OpenPLi kernel 3.x.x
Tuner A: AVL2108 (DVB-S2) HotBird 13E
Tuner B: AVL2108 (DVB-S2) HotBird 13E
Tuner C: AverMedia A867 (DVB-T HD) (AF9035 + MXL5007T)
TV: plasma PANASONIC GT30 fullHD
Audio: PCM through HDMI (no Dolby decoder)

Re: RTL2832U chipset support proposal #14 pieterg

  • PLi® Core member
  • 32,766 posts

+245
Excellent

Posted 29 November 2011 - 22:53

if there is a linux DAB standard, we could add support to e2, I don't think its that hard

Re: RTL2832U chipset support proposal #15 ambrosa

  • Senior Member
  • 161 posts

+35
Good

Posted 30 November 2011 - 07:31

if there is a linux DAB standard, we could add support to e2, I don't think its that hard



Ss suggested by Gennar1, one project is OpenDAB http://sourceforge.n...ojects/opendab/
I think that needs some reverse-engineering efforts..... but I'm not be able to do.
STB: Clarke Tech ET9100
Mass storage: internal SATA-II HDD 1TB WD10EACS GreenPower 5400rpm
Mass storage: external USB pen drive 2GB
Firmware: OpenPLi kernel 3.x.x
Tuner A: AVL2108 (DVB-S2) HotBird 13E
Tuner B: AVL2108 (DVB-S2) HotBird 13E
Tuner C: AverMedia A867 (DVB-T HD) (AF9035 + MXL5007T)
TV: plasma PANASONIC GT30 fullHD
Audio: PCM through HDMI (no Dolby decoder)

Re: RTL2832U chipset support proposal #16 Gennar1

  • Senior Member
  • 296 posts

+31
Good

Posted 30 November 2011 - 11:12

Technically, DAB audio tracks are coded as HE-AAC/AAC+ which are formats supported by the hardware decoder of the BCM7405. Those audio tracks are encapsulated into a classic MPEG2 Transport Stream, so if the Realtek driver is capable of passing the full transport stream to the application, it should be possible to add support in Enigma2 with little effort (at least for the audio part, the data/graphic part would need more work).

Some Australian guy has started some work on Linux support for DAB with RTL2832U chipset:

http://www.dtvforum....pic=85756&st=40

but the last message on that forum was over 1 year ago so probably the project has been dropped.

Re: RTL2832U chipset support proposal #17 old_codger

  • Member
  • 3 posts

0
Neutral

Posted 9 December 2011 - 22:21

Good work :)

I've hunted high and low for a driver I could get to compile for my 32-bit install of ubuntu 11.10, (kernel 3.0.0.X, but with no success. They all give a symbol error relating to umoddi3 and other, (presumably maths related), items.

After selecting the correct kernel version in the Makefile, yours compiles with no problem and I can run modprobe but it's there that I'm still getting a problem. It gives...

$ sudo modprobe dvb_usb_rtl2832u
FATAL: Error inserting dvb_usb_rtl2832u (/lib/modules/3.0.0-13-generic/kernel/drivers/media/dvb/dvb-usb/dvb-usb-rtl2832u.ko): Unknown symbol in module, or unknown parameter (see dmesg)

dmesg provides...

[ 239.716230] dvb_usb_rtl2832u: Unknown symbol dvb_usb_device_init (err 0)
[ 239.716248] dvb_usb_rtl2832u: Unknown symbol dvb_usb_device_exit (err 0)

Actually this, or a version of it with other leading digits, repeats a few times in the report.

I'm wondering if some of my previous attempts have installed additional, (and incorrect), kernel modules and if it's THEM that's confusing your version? If so, is there an easy way to remove them? I assume they should all be in the ...

/lib/modules/3.0.0-13-generic/kernel/drivers/media/dvb

directory?

Edit: I've just checked and it lists...

$ ls /lib/modules/3.0.0-13-generic/kernel/drivers/media/dvb
b2c2 ddbridge dvb-core firewire mantis pluto2 siano ttusb-budget
bt8xx dm1105 dvb-usb frontends ngene pt1 ttpci ttusb-dec

The dvb-usb directory now just lists the one entry for...

$ ls -l /lib/modules/3.0.0-13-generic/kernel/drivers/media/dvb/dvb-usb/
total 404
-rw-r--r-- 1 root root 411157 2011-12-09 20:57 dvb-usb-rtl2832u.ko

Does that look like a fresh install plus the one entry for the new, (and hopefully, correct;)), driver module? IOW has everyone else got those entries which are installed as 'dummy', (i.e. spaceholder), entries?

Anyway, regardless, good work and thanks for any/all help

Andy

Edited by old_codger, 9 December 2011 - 22:25.


Re: RTL2832U chipset support proposal #18 ambrosa

  • Senior Member
  • 161 posts

+35
Good

Posted 10 December 2011 - 06:59

I don't know what you are doing.
Anyway I've compiled JUST NOW the driver into my Xubuntu 11.10 with kernel 3.0.0-13 ans 3.2.0-RC4 whitout any problem (no warnings or errors) and usb sticks works fine with these kernels.

- Update your local git repo: I've made 2 days ago some changes due correct SNR output (as 16bit instead of dB)
- edit Makefile and remark include file about kernel 320
# Choose here wich include file to use: from kernel 3.0.0 (good for 3.1.0) or from kernel 3.2.0
 
# kernel 3.0.0 / 3.1.0
INCLUDE_EXTRA_DVB := include-300
 
# kernel 3.2.0
#INCLUDE_EXTRA_DVB := include-320
- make clean && make
ambrosa@tiger:~/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0$ make clean && make
rm -f  *.o  *.ko *.mod.c .*.o.cmd  .*.o.d  .*.ko.cmd Module.symvers Module.markers modules.order
rm -rf .tmp_versions
make -C /usr/src/linux-headers-`uname -r` SUBDIRS=/home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0 modules
make[1]: ingresso nella directory "/usr/src/linux-headers-3.0.0-13-generic"
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/demod_rtl2832.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/dvbt_demod_base.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/dvbt_nim_base.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/foundation.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/math_mpi.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_mxl5007t.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_fc2580.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_mt2266.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/rtl2832u.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/rtl2832u_fe.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/rtl2832u_io.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_mxl5007t.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_fc2580.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_mt2266.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_tua9001.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_tua9001.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_fc0012.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_fc0012.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/demod_rtl2836.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/dtmb_demod_base.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/dtmb_nim_base.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2836_fc2580.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2836_mxl5007t.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_e4000.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_e4000.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_mt2063.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/demod_rtl2840.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_max3543.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_mt2063.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_max3543.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2840_mt2063.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2840_max3543.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/qam_demod_base.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/qam_nim_base.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_tda18272.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_tda18272.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/rtl2832u_ioctl.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_fc0013.o
  CC [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/tuner_fc0013.o
  LD [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/dvb-usb-rtl2832u.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC	  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/dvb-usb-rtl2832u.mod.o
  LD [M]  /home/ambrosa/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0/dvb-usb-rtl2832u.ko
make[1]: uscita dalla directory "/usr/src/linux-headers-3.0.0-13-generic"
ambrosa@tiger:~/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0$

- sudo make install
ambrosa@tiger:~/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0$ sudo make install
[sudo] password for ambrosa:
cp dvb-usb-rtl2832u.ko /lib/modules/`uname -r`/kernel/drivers/media/dvb/dvb-usb/
depmod -a
ambrosa@tiger:~/GIT/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/RTL2832-2.2.2_kernel-3.0.0$
ambrosa@tiger:~$ ls -la /lib/modules/3.0.0-13-generic/kernel/drivers/media/dvb/dvb-usb/
totale 1860
drwxr-xr-x  2 root root   4096 2011-12-01 17:32 ./
drwxr-xr-x 17 root root   4096 2011-11-22 17:10 ../
-rw-r--r--  1 root root 596537 2011-12-10 05:42 dvb-usb-rtl2832u.ko
As you can see my driver is bigger than yours.
Probably you made something wrong during compile.

Edited by ambrosa, 10 December 2011 - 07:01.

STB: Clarke Tech ET9100
Mass storage: internal SATA-II HDD 1TB WD10EACS GreenPower 5400rpm
Mass storage: external USB pen drive 2GB
Firmware: OpenPLi kernel 3.x.x
Tuner A: AVL2108 (DVB-S2) HotBird 13E
Tuner B: AVL2108 (DVB-S2) HotBird 13E
Tuner C: AverMedia A867 (DVB-T HD) (AF9035 + MXL5007T)
TV: plasma PANASONIC GT30 fullHD
Audio: PCM through HDMI (no Dolby decoder)

Re: RTL2832U chipset support proposal #19 old_codger

  • Member
  • 3 posts

0
Neutral

Posted 11 December 2011 - 16:17

ambrosa@tiger:~$ ls -la /lib/modules/3.0.0-13-generic/kernel/drivers/media/dvb/dvb-usb/
totale 1860
drwxr-xr-x  2 root root   4096 2011-12-01 17:32 ./
drwxr-xr-x 17 root root   4096 2011-11-22 17:10 ../
-rw-r--r--  1 root root 596537 2011-12-10 05:42 dvb-usb-rtl2832u.ko
As you can see my driver is bigger than yours.
Probably you made something wrong during compile.


Hi,

OK! I've just spent several hours installing ubuntu 11.10 on my ancient laptop, installed all the git, header and other stuff to actually run the installation.

It now runs and compile correctly and, when I plug the dongle in, dmesg says...

[ 5548.430073] usbcore: registered new interface driver dvb_usb_rtl2832u
[ 5624.532209] usb 1-2: new full speed USB device number 2 using ohci_hcd
[ 5624.914791] dvb-usb: found a 'DK DONGLE' in warm state.
[ 5624.914856] dvb-usb: This USB2.0 device cannot be run on a USB1.1 port. (it lacks a hardware PID filter)
[ 5624.914872] dvb-usb: DK DONGLE error while loading driver (-19)

:)

Regarding the USB2.0 message... like I say, it's an ancient laptop so I doubt it will actually run the stick properly but, obviously it now compiles and installs the kernel module.

HOWEVER, the file size is still reported as...

$ ls -la /lib/modules/3.0.0-14-generic/kernel/drivers/media/dvb/dvb-usb/dvb-usb-rtl2832u.ko
-rw-r--r-- 1 root root 411157 2011-12-11 14:57 /lib/modules/3.0.0-14-generic/kernel/drivers/media/dvb/dvb-usb/dvb-usb-rtl2832u.ko

The only obvious difference is that my kernel is 3.0.0.14-generic instead of 3.0.0.13 but it's hard to see why THAT should make any difference.

Anyway, will try a reinstall on my main PC and let you know.

Thanks/Regards
Andy :)

Re: RTL2832U chipset support proposal #20 old_codger

  • Member
  • 3 posts

0
Neutral

Posted 11 December 2011 - 21:06

There was a kernel update, (to 3.0.0.14-generic), on my 'main' PC when I got back to it so I installed that and re-booted. I then re-compiled the code as normal and... hooray! It works :D I'm watching The Antiques Roadshow' on it right now, (which makes me wonder if it was all worthwhile :D).

The size is still about 410k however. I've no idea why that might be but there we are.

regards
Andy



2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users