Quantcast
Channel: [EN] OpenPLi Third-Party Development
Viewing all 1684 articles
Browse latest View live

OsMio4K+ Wrong Firmware Version on Multiboot Image Selector

$
0
0

When I update the OpenPli firmware on my OsMio4K+ it displays the wrong version information when I select Menu -> Standby /restart -> Multiboot image selector.  The firmware date does not match the release date.  Menu -> Information -> About has the correct build date.

Is this a known bug?

 

Also is there a way for a user to submit a bug report without being a developer?


Error starting some plugins.

$
0
0

After today's enigma update,2 plugins stopped running subssupport and extensions-kodi.What you need to do to run these plugins.

 

Attached Thumbnails

  • 1_0_16_51F_D_70_1680000_0_0_0_20200705191649.jpg

Different OpenVPN configs

$
0
0

A few weeks ago, I changed my openvpn server.

Now I have it working on a raspberry 3B+ , but until a few weeks ago it worked inside an enigma box.

The enigma version was configured using the easy-rsa enigma script, and the current rasp. version was configured using pivpn script.

 

I see differences between both server configurations.

Enigma version misses cipher, tls crypt...  and Raspberry version mises dh2048 file and compression.

 

Please,  somebody that has more experience than me using VPNs.... Which one is more secure ?

 

Should I do a "mix" between both configs ?

 

 

Old server Config in Enigma box:

port XXXXXX
proto udp
dev tun
ca /etc/openvpn/serverkeys/ca.crt
cert /etc/openvpn/serverkeys/server.crt
key /etc/openvpn/serverkeys/server.key  # This file should be kept secret
dh /etc/openvpn/serverkeys/dh2048.pem
server 10.8.8.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log         /etc/openvpn/openvpn.log
verb 3

Current Server config in raspberry Box:

port XXXXXX
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/raspberrypi.crt
key /etc/openvpn/easy-rsa/pki/private/raspberrypi.key
dh none
ecdh-curve prime256v1
topology subnet
server 10.8.0.0 255.255.255.0
push "route 192.168.0.0 255.255.255.0"
client-to-client
client-config-dir /etc/openvpn/ccd
keepalive 15 120
remote-cert-tls client
tls-version-min 1.2
tls-crypt /etc/openvpn/easy-rsa/pki/ta.key
cipher AES-256-GCM
auth SHA256
user openvpn
group openvpn
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
verb 3

Thanks.

Driver for mt7601u kernel 3.12.1

$
0
0

Hellò

Driver for mt7601u kernel 3.12.1 Openpli 7.3

I am looking for ipk installation package

Thanks

astrometa tuner as dvb-c ?

$
0
0

hello,

 

May be widely discussed this theme here, anyway I didn't find exactly for my case

 

I have this cheap dongle tuner, recognized by box zgemma star s with openpli 7.3:

 

Bus 004 Device 004: ID 15f4:0131 HanfTekDevice Descriptor:

bLength 18bDescriptorType 1

bcdUSB 2.00bDeviceClass 0

bDeviceSubClass 0bDeviceProtocol 0

bMaxPacketSize0 64idVendor 0x15f4 HanfTek

idProduct 0x0131bcdDevice 1.00

iManufacturer 1 astrometadvbt2iProduct 2 dvbt2

iSerial 0bNumConfigurations 1

Configuration Descriptor:bLength 9

bDescriptorType 2wTotalLength 0x0022

bNumInterfaces 2bConfigurationValue 1

iConfiguration 4 USB2.0-Bulk&IsobmAttributes 0x80

(Bus Powered)MaxPower 500mA

Interface Descriptor:bLength 9

bDescriptorType 4bInterfaceNumber 0

bAlternateSetting 0bNumEndpoints 1

bInterfaceClass 255 Vendor Specific ClassbInterfaceSubClass 255 Vendor Specific Subclass

bInterfaceProtocol 255 Vendor Specific ProtocoliInterface 5 Bulk-In, Interface

Endpoint Descriptor:bLength 7

bDescriptorType 5bEndpointAddress 0x81 EP 1 IN

bmAttributes 2Transfer Type Bulk

Synch Type NoneUsage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Interface Descriptor:

bLength 9

bDescriptorType 4

bInterfaceNumber 1

bAlternateSetting 0

bNumEndpoints 0

bInterfaceClass 255 Vendor Specific Class

bInterfaceSubClass 255 Vendor Specific Subclass

bInterfaceProtocol 255 Vendor Specific Protocol

iInterface 5 Bulk-In, Interface

Device Qualifier (for other device speed):

bLength 10

bDescriptorType 6

bcdUSB 2.00

bDeviceClass 0

bDeviceSubClass 0

bDeviceProtocol 0

bMaxPacketSize0 64

bNumConfigurations 2

can't get debug descriptor: Resource temporarily unavailable

Device Status: 0x0000

(Bus Powered)

 

[    9.772000] Registered IR keymap rc-cec
[    9.773000] input: RC for hdmi_cec as /devices/platform/hdmi.0/rc/rc0/input4
[    9.776000] rc rc0: RC for hdmi_cec as /devices/platform/hdmi.0/rc/rc0
[   17.896000] usb 1-1: dvb_usb_v2: found a 'Astrometa DVB-T2' in warm state
[   17.984000] usb 1-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[   17.985000] dvbdev: DVB: registering new adapter (Astrometa DVB-T2)
[   18.111000] i2c i2c-7: Added multiplexed i2c bus 8
[   18.111000] rtl2832 7-0010: Realtek RTL2832 successfully attached
[   18.111000] usb 1-1: DVB: registering adapter 1 frontend 0 (Realtek RTL2832 (DVB-T))...
[   18.240000] r820t 8-003a: creating new instance
[   18.249000] r820t 8-003a: Rafael Micro r820t successfully identified
[   18.319000] Registered IR keymap rc-empty
[   18.320000] input: Astrometa DVB-T2 as /devices/platform/ehci-brcm.0/usb1/1-1/rc/rc1/input5
[   18.321000] rc rc1: Astrometa DVB-T2 as /devices/platform/ehci-brcm.0/usb1/1-1/rc/rc1
[   18.351000] usb 1-1: dvb_usb_v2: schedule remote query interval to 200 msecs
[   18.361000] usb 1-1: dvb_usb_v2: 'Astrometa DVB-T2' successfully initialized and connected
[   18.361000] usbcore: registered new interface driver dvb_usb_rtl28xxu

 

but as dvb-t/2, and I, desperately, need a dvb-c.

It, clearly, registers one frontend only. Refering to: https://linuxtv.org/wiki/index.php/Astrometa_DVB-T2, I think that is model TVR801/R820T, where is specified, also, that may be not support dvb-c. I downloaded a latest kernel source and while browsing menuconfig, found at 'device drivers' - 'multimedia support' - 'Media ancillary drivers' - 'customize dvb frontends' where driver rtl2832 is exclusively under dvb-t section.

 

Saying these, I used this tuner as dvb-c in windows with altdvb working ok, in HD too:

USB\VID_15F4&PID_0131&MI_00\6&12B1B47A&0&0000

with drivers got at manufacturer website: http://www.astrometa.com.tw/integrated_en.html.

There are separated windows drivers for dvb-t and dvb-c, not both, no support for linux, briefly mentioning that drivers are integrated in kernel.

 

Is there a happy end for using this tuner as dvb-c?

thanks in advance


 

@WanWizard and "smell illegal"

$
0
0
Hello WanWizard,
 
You many times wrote that something is illegal (even though you are not a lawyer) or you said that something smell for you illegal.
So, I think you should be interested with this:
 
 
You should know that official youtube plugin available via OpenPLI feed contains and use code youtube-dl.
So, I think you will remove it now because it "smell illegal" or maybe you are a hypocrite...
 
Regards,
Sam

YouTube plugin illegal?

$
0
0
It looks like you did not read DMC claim
Let me show you:
[code=auto:0]
The clear purpose of this source code is to (i) circumvent the technological protection measures used by authorized streaming services such as YouTube, and (ii) reproduce and distribute music videos and sound recordings owned by our member companies without authorization for such use.
[/quote]

So, you are wrong that this claim was about hardcoded links.
Nope it is about skipping vevo video/audio protection.

@wanwizard also is wtong.
You wrote that there is no problem because the functionality is same - watch video.
Nope, using authorized application content owners got money because of ads.

This is about money. Same if you will watch videos from unauthorized source video owners not got money same here.

don't be a hypocrite!

Everything smell for you illegal but you do not have problem with illegal plugin youtube which makes it impossible to earn money by content owner/creator/provider.

Why you are removing topics without reasons? The true is something you afraid?

h9combo remote control in wizard

$
0
0

 in the latest build develop

on zgemma h9combo the remote control is not mapped in the wizard phase but starts with the dmm remote control while on zgemma h7 everything is working
 
  sorry my english google translator helps

TS-satEditor 2.0.0 enigma2 plugin

$
0
0

TS-satEditor 2.0.0 by mfaraj57Posted Image
complete management for satellites and transponders

features:
-adding,editing and removing satellites and transponders
-information and statistics of transponders and satellite
-updating satellites.xml from internet
-downloading settings from popular settings servers
-updating and adding satellites from lyngsat.com
-compatible with sd and hd skins
-plugin appears in channels scan menu and plugins menu
-simple interfaces and tables


credits:
The code of Ts-sateditor based on the works:
Ismail Dmir for the the script and the source of updating satellites.xml
Shaderman coder of satellite loader
sifteam for settings loader
coder ofenigma2-plugin-systemplugins-satelliteeditor_20090331-alpha
sim2 for supporting the project


installation:
unrar attached file and copy to tmp
by telnet
opkg install -force-overwrite /tmp/enigma2-plugin-extensions-ts-sateditor_2.0_mipsel

or from TSpanel/addoms/Tunisiasat dreambox addons/plugins/Ts-sateditor_2.0

download


Posted Image




Posted Image



Posted Image





open pli 7.3 clock problem

$
0
0

Hello there
I am installing pli 7.3 software on my zgemma h9 twin device, I am setting the clock settings in Istanbul. What is the solution to the clock faulty. Can you help me?

Python3 and Gstream

$
0
0

Hi Dear DEV
 

I have two questions
First
Why not use Python 3?
Second
Why not upgrade to G-Stream?

 

best regards

Help firmware

Memory leak in MovieList.py

Broadcom drivers

$
0
0

Maybe someone would be willing to take a closer look at these drivers? https://github.com/mlewertTiVo/google-stb.platform.vendor.broadcom.refsw So far, I wrote a primitive pilot service for fun :)

#include <linux/slab.h>
#include <linux/module.h>
#include <linux/spinlock.h>
#include <media/rc-core.h>

#include <linux/serial_core.h>
#include <linux/serial_reg.h>
#include <linux/serial_8250.h>

#include <asm/io.h>
#include <linux/io.h>

#include "rc.h"

#include <linux/ktime.h>
#include <linux/delay.h>

#define MODULE_NAME "bcmrc"

#define BASE_REG_ADDR 0x08000000

/* com0 (ttyS0) registers */
#define UARTA_REG_START	0x0040c000
#define UARTA_REG_END	0x0040c01c
#define UARTA_IRQ 128

/* com1 (ttyS1) registers */
#define UARTB_REG_START	0x0040d000
#define UARTB_REG_END	0x0040d01c
#define UARTB_IRQ 129

/* com2 (ttyS2) registers */
#define UARTC_REG_START	0x0040e000
#define UARTC_REG_END	0x0040e01c
#define UARTC_IRQ 130

#define UART_ADDRSIZE 0x1000

enum {
	COM0 = 0,
	COM1 = 1,
	COM2 = 2,
};

#define COM_PORT COM2
#define COM_ADDRSIZE UART_ADDRSIZE
#define COM_IRQ UARTC_IRQ

#define bcmrc_debug(fmt, arg...) printk(KERN_DEBUG "%s: %s " fmt, MODULE_NAME, __func__, ##arg)
#define bcmrc_info(fmt, arg...) printk(KERN_INFO "%s: %s " fmt, MODULE_NAME, __func__, ##arg)
#define bcmrc_error(fmt, arg...) printk(KERN_ERR "%s: %s " fmt, MODULE_NAME, __func__, ##arg)
#define bcmrc_warning(fmt, arg...) printk(KERN_WARNING "%s: %s " fmt, MODULE_NAME, __func__, ##arg)
#define bcmrc_alert(fmt, arg...) printk(KERN_ALERT "%s: %s " fmt, MODULE_NAME, __func__, ##arg)

static const unsigned short vuduo4k_remote_key_table[] = {
	KEY_POWER,
	KEY_TEXT,
	KEY_SUBTITLE,
	KEY_HELP,
	KEY_0,
	KEY_1,
	KEY_2,
	KEY_3,
	KEY_4,
	KEY_5,
	KEY_6,
	KEY_7,
	KEY_8,
	KEY_9,
	KEY_PREVIOUS,
	KEY_NEXT,
	KEY_RED,
	KEY_GREEN,
	KEY_YELLOW,
	KEY_BLUE,
	KEY_VIDEO,
	KEY_MENU,
	KEY_EXIT,
	KEY_INFO,
	KEY_OK,
	KEY_UP,
	KEY_DOWN,
	KEY_RIGHT,
	KEY_LEFT,
	KEY_VOLUMEUP,
	KEY_VOLUMEDOWN,
	KEY_CHANNELUP,
	KEY_CHANNELDOWN,
	KEY_AUDIO,
	KEY_MUTE,
	KEY_EDIT,
	KEY_REWIND,
	KEY_PLAY,
	KEY_PLAYPAUSE,
	KEY_FASTFORWARD,
	KEY_TV,
	KEY_RECORD,
	KEY_STOP,
	KEY_RADIO,
};

struct bcmrc_par {
	struct input_dev *input;
	struct uart_8250_port uart;
	void __iomem *iomem_base;
	spinlock_t hardware_lock;
	int i;
	unsigned char buffer[16];
	int irq;
	unsigned short keymap[ARRAY_SIZE(vuduo4k_remote_key_table)];
};

static struct bcmrc_par bcmrc;

static unsigned int get_com_membase_reg(int com_nr)
{
	unsigned int result;
	switch (com_nr) {
		case COM0:
			result = UARTA_REG_START + BASE_REG_ADDR;
			break;
		case COM1:
			result = UARTB_REG_START + BASE_REG_ADDR;
			break;
		case COM2:
			result = UARTC_REG_START + BASE_REG_ADDR;
			break;
	}
	return result;
}

static unsigned int get_com_irq(int com_nr)
{
	unsigned int result;
	switch (com_nr) {
		case COM0:
			result = UARTA_IRQ;
			break;
		case COM1:
			result = UARTB_IRQ;
			break;
		case COM2:
			result = UARTC_IRQ;
			break;
	}
	return result;
}

static inline unsigned int serial_in(struct uart_8250_port *up, unsigned int offset)
{
	unsigned int result;
	offset = offset << up->port.regshift;

	switch (up->port.iotype) {
		case UPIO_HUB6:
			outb(up->port.hub6 - 1 + offset, up->port.iobase);
			result = inb(up->port.iobase + 1);
			//bcmrc_info("UPIO_HUB6, iobase 0x%.4x, offset: 0x%.4x, result: %d\n", up->port.iobase, offset, result);
			break;

		case UPIO_MEM:
			result = readb(up->port.membase + offset);
			//bcmrc_info("UPIO_MEM, membase 0x%.4x, offset: 0x%.4x, reg: 0x%.4x, result: %d\n", up->port.membase, offset, up->port.membase + offset, result);
			break;

		case UPIO_MEM32:
			result = readl(up->port.membase + offset);
			//bcmrc_info("UPIO_MEM32, membase 0x%.4x, offset: 0x%.4x, result: %d\n", up->port.membase, offset, result);
			break;

		default:
			//return ioread32(up->port.membase + offset);
			result = inb(up->port.iobase + offset);
			//bcmrc_info("default, membase 0x%.4x, offset: 0x%.4x, result: %d\n", up->port.iobase, offset, result);
			break;
	}
	return result;
}

static inline void serial_out(struct uart_8250_port *up, unsigned int offset, unsigned int value)
{
	offset = offset << up->port.regshift;

	switch (up->port.iotype) {
		case UPIO_HUB6:
			//bcmrc_info("UPIO_HUB6, iobase 0x%.4x, offset: 0x%.4x, value: %d\n", up->port.iobase, offset, value);
			outb(up->port.hub6 - 1 + offset, up->port.iobase);
			outb(value, up->port.iobase + 1);
			break;

		case UPIO_MEM:
			//bcmrc_info("UPIO_MEM, membase 0x%.4x, offset: 0x%.4x, reg: 0x%.4x, value: %d\n", up->port.membase, offset, up->port.membase + offset, value);
			writeb(value, up->port.membase + offset);
			break;

		case UPIO_MEM32:
			//bcmrc_info("UPIO_MEM32, membase 0x%.4x, offset: 0x%.4x, value: %d\n", up->port.membase, offset, value);
			writel(value, up->port.membase + offset);
			break;

		default:
			//bcmrc_info("default, membase 0x%.4x, offset: 0x%.4x, value %d\n", up->port.iobase, offset, value);
			//iowrite32(value, up->port.membase + offset);
			outb(value, up->port.iobase + offset);
			break;
	}
}

static int bcmrc_open(struct input_dev *dev)
{
	struct bcmrc_par *par = input_get_drvdata(dev);
	unsigned long flags;
#if 0
	/* initialize timestamp */
	//par->lastkt = ktime_get();

	spin_lock_irqsave(&par->hardware_lock, flags);

	/* Set DLAB 0. */
	serial_out(&par->uart, UART_LCR, serial_in(&par->uart, (UART_LCR) & (~UART_LCR_DLAB)));

	serial_out(&par->uart, UART_IER, serial_in(&par->uart, (UART_IER) | UART_IER_MSI));

	spin_unlock_irqrestore(&par->hardware_lock, flags);
#endif
	return 0;
}

static void bcmrc_close(struct input_dev *dev)
{
	struct bcmrc_par *par = input_get_drvdata(dev);
	unsigned long flags;
#if 0
	spin_lock_irqsave(&par->hardware_lock, flags);

	/* Set DLAB 0. */
	serial_out(&par->uart, UART_LCR, serial_in(&par->uart, (UART_LCR) & (~UART_LCR_DLAB)));

	/* First of all, disable all interrupts */
	serial_out(&par->uart, UART_IER, serial_in(&par->uart, (UART_IER) & (~(UART_IER_MSI | UART_IER_RLSI | UART_IER_THRI | UART_IER_RDI))));

	spin_unlock_irqrestore(&par->hardware_lock, flags);
#endif
}

static long bcmrc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)
{
	struct bcmrc_par *par = (struct bcmrc_par*) filep->private_data;
	int result;

	switch (cmd) {

	}

	return result;
}

static int bcmrc_frontpanel_key_mapping(struct input_dev *dev, unsigned int key)
{
	struct bcmrc_par *par = input_get_drvdata(dev);
	unsigned int result;

	switch (key) {
		case 0x01:
			result = KEY_POWER;
			break;
		case 0x02:
			result = KEY_VOLUMEUP;
			break;
		case 0x04:
			result = KEY_VOLUMEDOWN;
			break;
		case 0x08:
			result = KEY_CHANNELUP;
			break;
		case 0x80:
			result = KEY_CHANNELDOWN;
			break;
		default:
			bcmrc_info("Unhandled key: 0x%.2x\n", key);
			result = 0;
			break;
	}
	return result;
}

static int bcmrc_remote_key_mapping(struct input_dev *dev, unsigned int key)
{
	struct bcmrc_par *par = input_get_drvdata(dev);
	unsigned int result;

	switch (key) {
		case 0x0c:
			result = KEY_POWER;
			break;
		case 0x3c:
			result = KEY_TEXT;
			break;
		case 0x4b:
			result = KEY_SUBTITLE;
			break;
		case 0x81:
			result = KEY_HELP;
			break;
		case 0x00:
			result = KEY_0;
			break;
		case 0x01:
			result = KEY_1;
			break;
		case 0x02:
			result = KEY_2;
			break;
		case 0x03:
			result = KEY_3;
			break;
		case 0x04:
			result = KEY_4;
			break;
		case 0x05:
			result = KEY_5;
			break;
		case 0x06:
			result = KEY_6;
			break;
		case 0x07:
			result = KEY_7;
			break;
		case 0x08:
			result = KEY_8;
			break;
		case 0x09:
			result = KEY_9;
			break;
		case 0xbb:
			result = KEY_PREVIOUS;
			break;
		case 0xbc:
			result = KEY_NEXT;
			break;
		case 0x6d:
			result = KEY_RED;
			break;
		case 0x6e:
			result = KEY_GREEN;
			break;
		case 0x6f:
			result = KEY_YELLOW;
			break;
		case 0x70:
			result = KEY_BLUE;
			break;
		case 0x49:
			result = KEY_VIDEO;
			break;
		case 0x54:
			result = KEY_MENU;
			break;
		case 0xcc:
			result = KEY_EXIT;
			break;
		case 0x55:
			result = KEY_INFO;
			break;
		case 0x5c:
			result = KEY_OK;
			break;
		case 0x58:
			result = KEY_UP;
			break;
		case 0x59:
			result = KEY_DOWN;
			break;
		case 0x5b:
			result = KEY_RIGHT;
			break;
		case 0x5a:
			result = KEY_LEFT;
			break;
		case 0x10:
			result = KEY_VOLUMEUP;
			break;
		case 0x11:
			result = KEY_VOLUMEDOWN;
			break;
		case 0x20:
			result = KEY_CHANNELUP;
			break;
		case 0x21:
			result = KEY_CHANNELDOWN;
			break;
		case 0xe5:
			result = KEY_AUDIO;
			break;
		case 0x0d:
			result = KEY_MUTE;
			break;
		case 0xe6:
			result = KEY_EDIT;
			break;
		case 0x29:
			result = KEY_REWIND;
			break;
		case 0x2c:
			result = KEY_PLAY;
			break;
		case 0x30:
			result = KEY_PLAYPAUSE;
			break;
		case 0x28:
			result = KEY_FASTFORWARD;
			break;
		case 0xe4:
			result = KEY_TV;
			break;
		case 0x37:
			result = KEY_RECORD;
			break;
		case 0x31:
			result = KEY_STOP;
			break;
		case 0xf2:
			result = KEY_RADIO;
			break;
		default:
			bcmrc_info("Unhandled key: 0x%.2x\n", key);
			result = 0;
			break;
	}
	return result;
}

static irqreturn_t bcmrc_irq_handler(int irq, void *dev_id)
{
	struct bcmrc_par *par = (struct bcmrc_par *)dev_id;
	struct input_dev *input = par->input;
	unsigned long flags;
	unsigned int iir, lsr, i = 0;
	int counter = 0, max_count = 8;

	while ((iir = serial_in(&par->uart, UART_IIR & UART_IIR_ID))) {
		if (++counter > 256) {
			//bcmrc_error("Trapped in interrupt, counter %d\n", counter);
			break;
		}

		switch (iir & UART_IIR_ID) {
			case UART_IIR_MSI:
				(void) serial_in(&par->uart, UART_MSR);
				break;
			case UART_IIR_RLSI:
			case UART_IIR_THRI:
				(void) serial_in(&par->uart, UART_LSR);
				break;
			case UART_IIR_RDI:
				spin_lock_irqsave(&par->hardware_lock, flags);
				do {
					par->buffer[par->i++] = serial_in(&par->uart, UART_RX);
					if (par->i == 7) {
						//bcmrc_info("first packet 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x\n", par->buffer[0], par->buffer[1], par->buffer[2], par->buffer[3], par->buffer[4], par->buffer[5], par->buffer[6], par->buffer[7]);
						if (par->buffer[0] == 0xd1)
							input_report_key(par->input, bcmrc_frontpanel_key_mapping(par->input, par->buffer[1]), 1);
						else if (par->buffer[0] == 0xd2)
							input_report_key(par->input, bcmrc_remote_key_mapping(par->input, par->buffer[1]), 1);
						input_sync(par->input);
					}
					if (par->i == 15) {
						//bcmrc_info("second packet 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x\n", par->buffer[8], par->buffer[9], par->buffer[10], par->buffer[11], par->buffer[12], par->buffer[13], par->buffer[14], par->buffer[15]);
						if (par->buffer[0] == 0xd1)
							input_report_key(par->input, bcmrc_frontpanel_key_mapping(par->input, par->buffer[1]), 0);
						else if (par->buffer[0] == 0xd2)
							input_report_key(par->input, bcmrc_remote_key_mapping(par->input, par->buffer[1]), 0);
						input_sync(par->input);
						par->i = 0;
					}
					lsr = serial_in(&par->uart, UART_LSR);
				} while (lsr & UART_LSR_DR);
				spin_unlock_irqrestore(&par->hardware_lock, flags);
				break;
			default:
				break;
		}
	}

	return IRQ_RETVAL(1);
}

int init_bcmrcdev(void)
{
	int result, i;
	struct bcmrc_par *par;
	struct input_dev *input_dev;
	struct uart_8250_port uart;

	unsigned long flags;

	par = kzalloc(sizeof(struct bcmrc_par), GFP_KERNEL);
	if (!par) {
		bcmrc_error("Error allocate primary structure!");
		return -ENOMEM;
		goto err_free_mem;
	}

	par->uart = uart;

	par->irq = get_com_irq(COM2);

	par->iomem_base = ioremap(get_com_membase_reg(COM2), COM_ADDRSIZE);
	if (!par->iomem_base) {
		bcmrc_error("Error remap memory!");
		goto err_iounmap;
	}

	result = request_threaded_irq(par->irq, bcmrc_irq_handler, 0, 0, "serial", par);
	if (result < 0) {
		if (result == -EBUSY)
			bcmrc_error("IRQ %d busy\n", par->irq);
		else if (result == -EINVAL)
			bcmrc_error("Bad irq number\n");
		return -EBUSY;
		goto err_free_input;
	}

	memset(&par->uart, 0, sizeof(par->uart));

	par->uart.port.type = PORT_16550A;
	par->uart.port.irq = par->irq;
	par->uart.port.uartclk = 5062500; /* 3686400 */
	par->uart.port.flags = UPF_SHARE_IRQ;
	par->uart.port.iotype = UPIO_MEM;
	par->uart.port.membase = par->iomem_base;
	par->uart.port.regshift = 2;

	spin_lock_irqsave(&par->hardware_lock, flags);

	serial_out(&par->uart, UART_IER, 0);

	/* Set DLAB 0. */
	serial_out(&par->uart, UART_LCR, serial_in(&par->uart, (UART_LCR) & (~UART_LCR_DLAB)));

	/* First of all, disable all interrupts */
	serial_out(&par->uart, UART_IER, serial_in(&par->uart, (UART_IER) & (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI))));

	/* Clear registers. */
	serial_in(&par->uart, UART_LSR);
	serial_in(&par->uart, UART_RX);
	serial_in(&par->uart, UART_IIR);
	serial_in(&par->uart, UART_MSR);

	serial_out(&par->uart, UART_IER, 1);

	/* Clear registers again to be sure. */
	serial_in(&par->uart, UART_LSR);
	serial_in(&par->uart, UART_RX);
	serial_in(&par->uart, UART_IIR);
	serial_in(&par->uart, UART_MSR);

	spin_unlock_irqrestore(&par->hardware_lock, flags);

	input_dev = input_allocate_device();
	if (!input_dev) {
		bcmrc_error("Error alocate input device structure!");
		return -ENOMEM;
		goto err_free_input;
	}

	memcpy(par->keymap, vuduo4k_remote_key_table, sizeof(par->keymap));

	input_dev->keycode = par->keymap;
	input_dev->keycodesize = sizeof(unsigned short);
	input_dev->keycodemax = ARRAY_SIZE(par->keymap);

	input_set_capability(input_dev, EV_MSC, MSC_SCAN);
	__set_bit(EV_KEY, input_dev->evbit);
	for (i = 0; i < ARRAY_SIZE(vuduo4k_remote_key_table); i++)
		__set_bit(vuduo4k_remote_key_table[i], input_dev->keybit);
	__clear_bit(KEY_RESERVED, input_dev->keybit);

	input_dev->name = "dreambox advanced remote control (native)";
	input_dev->phys = "event0";

	input_dev->id.bustype = BUS_HOST;

	input_dev->open = bcmrc_open;
	input_dev->close = bcmrc_close;

	par->input = input_dev;

	input_set_drvdata(par->input, par);

	result = input_register_device(par->input);
	if (result) {
		return -1;
	}

	return 0;

err_free_input:
	input_free_device(input_dev);
err_iounmap:
	iounmap(par->iomem_base);
err_free_mem_region:
	release_mem_region(get_com_membase_reg(COM2), COM_ADDRSIZE);
err_free_mem:
	input_free_device(input_dev);
	kfree(par);
	return result;
}

void exit_bcmrcdev(void)
{
	struct input_dev *input_dev;
	input_unregister_device(input_dev);
	input_free_device(input_dev);
}

 

Permanent Analog Clock plugin

$
0
0

here is first version on my plugin for displaying permanent Analog Clock on the screen. May be, later I will add it into OpenPlugins repo.

 

Do not add config screen into skins, because analog clock are displayed on clear screen only and then would not be visibled, what you changing in setup.

Made for HD only, but it works on SD too (change position)

Attached Thumbnails

  • ac.jpg
  • acp.jpg
  • acs.jpg

Attached Files


e2openplugin-AutoShutDown wakes from Standby and Power-Off?

$
0
0

I'm curious, does the e2openplugin-AutoShutDown plugin wake the OpenPLI platform from standby and power-off state?

 

Nothing seems documented, even within the source code.  I did find one forum post insinuating the unit may wake from some state due to some speghetti code.

 

So I pressume, without testing, the box is awakened from either standby/power-off states.

LiveFootbal

Vpn manager possible on openpli 7

$
0
0

I am trying to get Vpn manager to work on openpli 7. I have it loaded but it will not connect.to the servers .. Or is there another plugin which will do the same?

Thanks...

Foreca plugin Finnish language file

$
0
0

Here correct Finnish language file Foreca.mo 

Copy to /usr/lib/enigma2/python/Plugins/Extensions/Foreca/locale/fi/LC_MESSAGES/

iptables error (modinfo module not found)

$
0
0

Unfortunately, I can't install iptables properly:

The installation command runs through normally, but then I get an error.

Tried on a virgin flashed System: openpli-8.0-rc on Maxytec Multibox Combo.

 

Mentioned in passing, not problem relevant: on first uprgade process there are some errors as well:

opkg update && opkg upgrade

Collected errors:
 * remove_obsolesced_files: unlinking /lib/modules/4.4.35/extra/hi_play.ko failed: No such file or directory.
 * opkg_install_pkg: Failed to determine obsolete files from previously installed maxytec-dvb-modules-multibox

 

Back to iptables, the opkg install iptables result looks pretty normal: https://pastebin.com/XGR2sYmR

But even a simple listing right after installation gives me following error:

root@multibox:~# iptables -L
iptables v1.8.3 (legacy): can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

 

Further, the module can't be found:

root@multibox:~# modprobe ip_tables
root@multibox:~# modinfo ip_tables
modinfo: ERROR: Module ip_tables not found.
root@multibox:~# lsmod
Module                  Size  Used by
mali                  274279  0
multibox             6297130  22
multibox_3            429442  22 mali,multibox
multibox_2             23808  0
multibox_1              6460  3 multibox_2,multibox_3,multibox

Some more information:

root@multibox:~# cat /proc/net/ip_tables_matches
icmp
udplite
udp
tcp
root@multibox:~# cat /proc/net/ip_tables_names
root@multibox:~# cat /proc/net/ip_tables_targets
ERROR

root@multibox:~# ls /lib/modules/4.4.35/kernel/net/
mac80211  rfkill    wireless

 

In another forum they wrote this happens because of missing kernel modules?

I saw on github that CONFIG_NETFILTER_XTABLES is activated, but all the other CONFIG_NETFILTER_XT_... are not.

 

According to that it is not possible to use iptables on this box?

Or did I just forget anything?


 

Viewing all 1684 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>