Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2f918bb authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB: Support or LME2510(C) DM04/QQBOX USB DVB-S BOXES



DM04/QQBOX DVB-S USB BOX with LME2510C+SHARP:BS2F7HZ7395 or LME2510+LGTDQT-P001F tuner.

[mchehab@redhat.com: Fix merge conflicts/compilation and CodingStyle issues]
Signed-off-by: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 9d10f3d7
Loading
Loading
Loading
Loading
+45 −1
Original line number Original line Diff line number Diff line
@@ -26,7 +26,8 @@ use IO::Handle;
		"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
		"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
		"or51211", "or51132_qam", "or51132_vsb", "bluebird",
		"or51211", "or51132_qam", "or51132_vsb", "bluebird",
		"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",
		"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",
		"af9015", "ngene", "az6027");
		"af9015", "ngene", "az6027", "lme2510_lg", "lme2510c_s7395",
		"lme2510c_s7395_old");


# Check args
# Check args
syntax() if (scalar(@ARGV) != 1);
syntax() if (scalar(@ARGV) != 1);
@@ -584,6 +585,49 @@ sub az6027{


    $firmware;
    $firmware;
}
}

sub lme2510_lg {
    my $sourcefile = "LMEBDA_DVBS.sys";
    my $hash = "fc6017ad01e79890a97ec53bea157ed2";
    my $outfile = "dvb-usb-lme2510-lg.fw";
    my $hasho = "caa065d5fdbd2c09ad57b399bbf55cad";

    checkstandard();

    verify($sourcefile, $hash);
    extract($sourcefile, 4168, 3841, $outfile);
    verify($outfile, $hasho);
    $outfile;
}

sub lme2510c_s7395 {
    my $sourcefile = "US2A0D.sys";
    my $hash = "b0155a8083fb822a3bd47bc360e74601";
    my $outfile = "dvb-usb-lme2510c-s7395.fw";
    my $hasho = "3a3cf1aeebd17b6ddc04cebe131e94cf";

    checkstandard();

    verify($sourcefile, $hash);
    extract($sourcefile, 37248, 3720, $outfile);
    verify($outfile, $hasho);
    $outfile;
}

sub lme2510c_s7395_old {
    my $sourcefile = "LMEBDA_DVBS7395C.sys";
    my $hash = "7572ae0eb9cdf91baabd7c0ba9e09b31";
    my $outfile = "dvb-usb-lme2510c-s7395.fw";
    my $hasho = "90430c5b435eb5c6f88fd44a9d950674";

    checkstandard();

    verify($sourcefile, $hash);
    extract($sourcefile, 4208, 3881, $outfile);
    verify($outfile, $hasho);
    $outfile;
}

# ---------------------------------------------------------------
# ---------------------------------------------------------------
# Utilities
# Utilities


+55 −0
Original line number Original line Diff line number Diff line
To extract firmware for the DM04/QQBOX you need to copy the
following file(s) to this directory.

for DM04+/QQBOX LME2510C (Sharp 7395 Tuner)
-------------------------------------------

The Sharp 7395 driver can be found in windows/system32/driver

US2A0D.sys (dated 17 Mar 2009)


and run
./get_dvb_firmware lme2510c_s7395

	will produce
	dvb-usb-lme2510c-s7395.fw

An alternative but older firmware can be found on the driver
disk DVB-S_EN_3.5A in BDADriver/driver

LMEBDA_DVBS7395C.sys (dated 18 Jan 2008)

and run
./get_dvb_firmware lme2510c_s7395_old

	will produce
	dvb-usb-lme2510c-s7395.fw

--------------------------------------------------------------------

The LG firmware can be found on the driver
disk DM04+_5.1A[LG] in BDADriver/driver

for DM04 LME2510 (LG Tuner)
---------------------------

LMEBDA_DVBS.sys (dated 13 Nov 2007)

and run
./get_dvb_firmware lme2510_lg

	will produce
	dvb-usb-lme2510-lg.fw


Other LG firmware can be extracted manually from US280D.sys
only found in windows/system32/driver.
However, this firmware does not run very well under Windows
or with the Linux driver.

dd if=US280D.sys ibs=1 skip=36856 count=3976 of=dvb-usb-lme2510-lg.fw

---------------------------------------------------------------------

Copy the firmware file(s) to /lib/firmware
+1 −0
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
			rc-kworld-315u.o \
			rc-kworld-315u.o \
			rc-kworld-plus-tv-analog.o \
			rc-kworld-plus-tv-analog.o \
			rc-lirc.o \
			rc-lirc.o \
			rc-lme2510.o \
			rc-manli.o \
			rc-manli.o \
			rc-msi-tvanywhere.o \
			rc-msi-tvanywhere.o \
			rc-msi-tvanywhere-plus.o \
			rc-msi-tvanywhere-plus.o \
+68 −0
Original line number Original line Diff line number Diff line
/* LME2510 remote control
 *
 *
 * Copyright (C) 2010 Malcolm Priestley (tvboxspy@gmail.com)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */

#include <media/rc-map.h>


static struct ir_scancode lme2510_rc[] = {
	{ 0xba45, KEY_0 },
	{ 0xa05f, KEY_1 },
	{ 0xaf50, KEY_2 },
	{ 0xa25d, KEY_3 },
	{ 0xbe41, KEY_4 },
	{ 0xf50a, KEY_5 },
	{ 0xbd42, KEY_6 },
	{ 0xb847, KEY_7 },
	{ 0xb649, KEY_8 },
	{ 0xfa05, KEY_9 },
	{ 0xbc43, KEY_POWER },
	{ 0xb946, KEY_SUBTITLE },
	{ 0xf906, KEY_PAUSE },
	{ 0xfc03, KEY_MEDIA_REPEAT},
	{ 0xfd02, KEY_PAUSE },
	{ 0xa15e, KEY_VOLUMEUP },
	{ 0xa35c, KEY_VOLUMEDOWN },
	{ 0xf609, KEY_CHANNELUP },
	{ 0xe51a, KEY_CHANNELDOWN },
	{ 0xe11e, KEY_PLAY },
	{ 0xe41b, KEY_ZOOM },
	{ 0xa659, KEY_MUTE },
	{ 0xa55a, KEY_TV },
	{ 0xe718, KEY_RECORD },
	{ 0xf807, KEY_EPG },
	{ 0xfe01, KEY_STOP },

};

static struct rc_keymap lme2510_map = {
	.map = {
		.scan    = lme2510_rc,
		.size    = ARRAY_SIZE(lme2510_rc),
		.ir_type = IR_TYPE_UNKNOWN,
		.name    = RC_MAP_LME2510,
	}
};

static int __init init_rc_lme2510_map(void)
{
	return ir_register_map(&lme2510_map);
}

static void __exit exit_rc_lme2510_map(void)
{
	ir_unregister_map(&lme2510_map);
}

module_init(init_rc_lme2510_map)
module_exit(exit_rc_lme2510_map)

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com");
+11 −0
Original line number Original line Diff line number Diff line
@@ -347,3 +347,14 @@ config DVB_USB_AZ6027
	select DVB_STB6100 if !DVB_FE_CUSTOMISE
	select DVB_STB6100 if !DVB_FE_CUSTOMISE
	help
	help
	  Say Y here to support the AZ6027 device
	  Say Y here to support the AZ6027 device

config DVB_USB_LME2510
	tristate "LME DM04/QQBOX DVB-S USB2.0 support"
	depends on DVB_USB
	select DVB_TDA10086 if !DVB_FE_CUSTOMISE
	select DVB_TDA826X if !DVB_FE_CUSTOMISE
	select DVB_STV0288 if !DVB_FE_CUSTOMISE
	select DVB_IX2505V if !DVB_FE_CUSTOMISE
	depends on IR_CORE
	help
	  Say Y here to support the LME DM04/QQBOX DVB-S USB2.0 .
Loading