←  [EN] Enduser support

Forums

»

Testing image for the Dream Multimedia DM7...

zeros's Photo zeros 13 Feb 2016

Hi!

Is there anyone who could build for me a test software with modified cpp files?

I'll add the three modified files:

frontend.cpp

frontend.h

idvb.h

Added new attribute 'changeType'

I need it to complete the USB tuner problem, this of which we recently talked about.

Since I do not have the construction environment, then I would be grateful, if someone can do it for me (for Dream Multimedia DM7020 HD).

Attached Files

Quote

athoik's Photo athoik 13 Feb 2016

Hi zeros,

Is there a problem creating a development environment? We can help you to get this done.

Also would be nice if you could probide a proper patch with a description of what you are trying to solve.
Quote

zeros's Photo zeros 13 Feb 2016

Thanks,
I wish to create new content, to help for this part:
http://forums.openpl...-working/page-4
If it is not very difficult, then what I have to do, please teach me!?
Quote

Pr2's Photo Pr2 13 Feb 2016

Hi,

 

This tuto is really nice and easy to follow:

 

http://users.telenet...npliubuntu.html

 

Pr2

Quote

athoik's Photo athoik 13 Feb 2016

0. Install Debian 8

1. Install as Root the prerequisites (sudo or su -)

apt-get install gawk wget git-core cvs subversion diffstat unzip texinfo gcc-multilib build-essential chrpath

2. Clone OpenPLi OE

cd ~

git clone git://github.com/openpli/openpli-oe-core openpli4

cd openpli4

3. First run make to download OE subprojects

cd ~/openpli4

make

4. Make image for dm7020hd

cd ~/openpli4
MACHINE=dm7020hd make image


Usually I setup my sources directory on another folder (eg ~/sources) in order to reuse them.

You have to edit ~/openpli4/site.conf in order to change sources directory.

If you have build an image succesfully you need to create a bbappend and append to SRC_URI the patches you like to test.
Edited by athoik, 13 February 2016 - 12:50.
Quote

zeros's Photo zeros 13 Feb 2016

OK, thanks, I'm trying to do that, but give me time for this!
The questions will come for sure, but I can't at the moment to deal with it.
Quote

zeros's Photo zeros 13 Feb 2016

My goal is to solve the problem of these tuners, which are configurable for multiple modes, for example:
NIM Socket 1:
Type: DVB-T
Name: CXD1981
Has_Outputs: yes
Mode 0: DVB-C
Mode 1: DVB-T
Frontend_Device: 1
I2C_Device: 2
 
If I change the tuner mode, in this case, then, for now everything goes wrong for this tuner. I tested it a number of times, before I moved to the Act.
I made a number of changes in files 
NimManager.py and
config.py
 
I`d like to test it now, but the first I need the software, where the changes are made in cpp file.
If the test ends happily, then I´d like to discuss this thing forward. The model, where I got the idea is openatv 
Quote

zeros's Photo zeros 14 Feb 2016

My Debian 8 is up and running, thanks to athoik for the fantastic tutorial! Thank also to Pr2. It is not at all difficult, if such a nice tutorial on the front!

What am I supposed to do with the last error, which arose? I understand that I need to log in as normal user, not as root.

 

Checking connectivity... done.

Submodule path 'openembedded-core': checked out 'eb9d896db2fc67bac8efd258744d06fbbee87f06'
The openpli OE is now up-to-date.
make[1]: Leaving directory '/root/openpli4'
Generating /root/openpli4/build/env.source
Generating /root/openpli4/build/conf/openpli.conf
Generating /root/openpli4/build/conf/bblayers.conf
Generating /root/openpli4/build/conf/local.conf
 
Openembedded for the OpenPLi 4 environment has been initialized
properly. Now you can start building your image, by doing either:
 
 MACHINE=... make image
 
        or:
 
 cd /root/openpli4/build
 source env.source
 MACHINE=... bitbake openpli-enigma2-image
 
        or, if you want to build not just the image, but the optional packages in the feed as well:
 
 MACHINE=... bitbake openpli-enigma2-feed
 
root@Debian:~/openpli4# cd ~/openpli4
root@Debian:~/openpli4# MACHINE=dm7020hd make image
Building image for dm7020hd
ERROR:  OE-core's config sanity checker detected a potential misconfiguration.
    Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
    Following is the list of potential problems / advisories:
 
    Do not use Bitbake as root.
 
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
Makefile:85: recipe for target 'image' failed
make: *** [image] Error 1
root@Debian:~/openpli4# ^C
root@Debian:~/openpli4#
Quote

beastyboy's Photo beastyboy 14 Feb 2016

Yes, don't try to build an image from the root user. Do you have other user created besides root?
Quote

zeros's Photo zeros 14 Feb 2016

Thanks, already fine  :)

 

The openpli OE is now up-to-date.

make[1]: Leaving directory '/home/user1/openpli4'
Generating /home/user1/openpli4/build/env.source
Generating /home/user1/openpli4/build/conf/openpli.conf
Generating /home/user1/openpli4/build/conf/bblayers.conf
Generating /home/user1/openpli4/build/conf/local.conf
 
Openembedded for the OpenPLi 4 environment has been initialized
properly. Now you can start building your image, by doing either:
 
 MACHINE=... make image
 
        or:
 
 cd /home/user1/openpli4/build
 source env.source
 MACHINE=... bitbake openpli-enigma2-image
 
        or, if you want to build not just the image, but the optional packages in the feed as well:
 
 MACHINE=... bitbake openpli-enigma2-feed
 
user1@Debian:~/openpli4$ cd ~/openpli4
user1@Debian:~/openpli4$ MACHINE=dm7020hd make image
Building image for dm7020hd
Parsing recipes:  86% |##################################################################################################################################    
Quote

zeros's Photo zeros 15 Feb 2016

The software compilation will take quite a long time!?

I`ve got now such errors, it seems that the main reason is "No space left on device".

 

user1@Debian:~$ cd ~
user1@Debian:~$ cd openpli4
user1@Debian:~/openpli4$ cd ~/openpli4
user1@Debian:~/openpli4$ make
 
Openembedded for the OpenPLi 4 environment has been initialized
properly. Now you can start building your image, by doing either:
 
 MACHINE=... make image
 
        or:
 
 cd /home/user1/openpli4/build
 source env.source
 MACHINE=... bitbake openpli-enigma2-image
 
        or, if you want to build not just the image, but the optional packages in the feed as well:
 
 MACHINE=... bitbake openpli-enigma2-feed
 
user1@Debian:~/openpli4$ cd ~/openpli4
user1@Debian:~/openpli4$ MACHINE=dm7020hd make image
Building image for dm7020hd
Loading cache: 100% |########################################################################################################################################################| ETA:  00:00:00
Loaded 2354 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################################################| Time: 00:00:49
Parsing of 2097 .bb files complete (1936 cached, 161 parsed). 2586 targets, 311 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
 
Build Configuration:
BB_VERSION        = "1.25.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Debian-8.3"
TARGET_SYS        = "mipsel-oe-linux"
MACHINE           = "dm7020hd"
DISTRO            = "openpli"
DISTRO_VERSION    = "4"
TUNE_FEATURES     = "o32 fpu-hard mips32"
TARGET_FPU        = ""
meta-oe
meta-filesystems
meta-multimedia
meta-networking
meta-python       = "(detachedfrom9c926ef):9c926ef2d463e643fb0dc87f6535a12e35d039ab"
meta              = "(detachedfromeb9d896):eb9d896db2fc67bac8efd258744d06fbbee87f06"
meta-openpli
meta-dream        = "master:f152036cf525d53d7dc1b3adceb328ce4e54644a"
meta-vuplus       = "(detachedfrom5ceccaa):5ceccaab8866116710d0facd022f9d3442d5b0db"
meta-xsarius      = "(detachedfrom68cdce8):68cdce82a5d99e5ac055764f4b091fbeb4235899"
meta-xp           = "(detachedfrom38ba4ae):38ba4aea0e8c2e391e90a845ab77b30d35ed5e95"
meta-xtrend       = "(detachedfrom66fbc58):66fbc589b76314e10e688dcb2207142afe3b9df1"
meta-formuler     = "(detachedfrom2f0635f):2f0635faf4f9ef973c4783168aa12580e78c06a8"
meta-hd           = "(detachedfrom321440e):321440ee26ea4f4e11cf9587bb955ae4317e1a2b"
meta-xpeedc       = "(detachedfromdbde5f6):dbde5f66bb0486d72609a20e882dad0eacae8645"
meta-wetek        = "(detachedfromac4d4e7):ac4d4e7013820249f4fe1be8b6bc7084fc66863f"
meta-zgemma       = "(detachedfrom147bed1):147bed1fc3be730fff44bcd0357c5e2fb6a7acca"
meta-local        = "master:f152036cf525d53d7dc1b3adceb328ce4e54644a"
 
NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: Function failed: do_install_locale (log file is located at /home/user1/openpli4/build/tmp/work/mips32el-oe-linux/glibc/2.20-r0/temp/log.do_install_locale.8748)
ERROR: Logfile of failure stored in: /home/user1/openpli4/build/tmp/work/mips32el-oe-linux/glibc/2.20-r0/temp/log.do_install_locale.8748
Log data follows:
| DEBUG: SITE files ['endian-little', 'bit-32', 'mips-common', 'common-linux', 'common-glibc', 'mipsel-linux', 'common']
| DEBUG: Executing shell function do_install_locale
| cp: error writing '/home/user1/openpli4/build/tmp/work/mips32el-oe-linux/glibc/2.20-r0/image//usr/include/glibc-locale-internal-mips32el-oe-linux/usr/share/info/libc.info-8': No space left on device
| cp: failed to extend '/home/user1/openpli4/build/tmp/work/mips32el-oe-linux/glibc/2.20-r0/image//usr/include/glibc-locale-internal-mips32el-oe-linux/usr/share/info/libc.info-8': No space left on device
| cp: error writing '/home/user1/openpli4/build/tmp/work/mips32el-oe-linux/glibc/2.20-r0/image//usr/include/glibc-locale-internal-mips32el-oe-linux/usr/share/info/libc.info-9': No space left on device
| cp: failed to extend '/home/user1/openpli4/build/tmp/work/mips32el-oe-linux/glibc/2.20-r0/image//usr/include/glibc-locale-internal-mips32el-oe-linux/usr/share/info/libc.info-9': No space left on device
| cp: cannot create directory '/home/user1/openpli4/build/tmp/work/mips32el-oe-linux/glibc/2.20-r0/image//usr/include/glibc-locale-internal-mips32el-oe-linux/usr/share/locale': No space left on device
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_install_locale (log file is located at /home/user1/openpli4/build/tmp/work/mips32el-oe-linux/glibc/2.20-r0/temp/log.do_install_locale.8748)
ERROR: Task 39 (/home/user1/openpli4/openembedded-core/meta/recipes-core/glibc/glibc_2.20.bb, do_install_locale) failed with exit code '1'
No currently running tasks (296 of 3836)
NOTE: Tasks Summary: Attempted 296 tasks of which 0 didn't need to be rerun and 1 failed.
No currently running tasks (296 of 3836)
 
Summary: 1 task failed:
  /home/user1/openpli4/openembedded-core/meta/recipes-core/glibc/glibc_2.20.bb, do_install_locale
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
Makefile:85: recipe for target 'image' failed
make: *** [image] Error 1
user1@Debian:~/openpli4$
Quote

athoik's Photo athoik 15 Feb 2016

Compiling for first time takes a lot. Later it takes only the time to compile changes.

Regarding disk space, 20G to 40G would be ok for only one machine.
Quote

zeros's Photo zeros 15 Feb 2016

Clear, I had a 5 GB disk space, I will add more space there!
Quote

zeros's Photo zeros 15 Feb 2016

I enlarged disk to 25 GB, hopefully is the software ready generated by morning.
Can we get more instruction on this?:

If you have build an image succesfully you need to create a bbappend and append to SRC_URI the patches you like to test.

Quote

athoik's Photo athoik 15 Feb 2016

Create a file named enigma2.bbappend in folder ~/openpli4/meta-local/recipes-local/testing (you need to create folder testing).

Place in the folder testing your patch eg tmp.patch and create the file enigma2.bbappend with the following data:
 
FILESEXTRAPATHS_prepend := "${THISDIR}:"
PR = "r1"
SRC_URI += "file://tmp.patch"
Now you can run again your build, the enigma2 will include tmp.patch

In build/tmp/deploy/ipk you will find the resulting ipks.
Edited by athoik, 15 February 2016 - 21:26.
Quote

zeros's Photo zeros 15 Feb 2016

Thank you, I will see it tomorrow if it goes well.
Quote

zeros's Photo zeros 16 Feb 2016

I have never created any patch, so I googled.
Whether this is a good tutorial on how I should act:
http://linux.byexamp...patch-and-diff/
Quote

zeros's Photo zeros 16 Feb 2016

The last time, it took time for 11 minutes:

user1@Debian:~$ cd ~
user1@Debian:~$ cd openpli4
user1@Debian:~/openpli4$ cd ~/openpli4
user1@Debian:~/openpli4$ make

Openembedded for the OpenPLi 4 environment has been initialized
properly. Now you can start building your image, by doing either:

 MACHINE=... make image

        or:

 cd /home/user1/openpli4/build
 source env.source
 MACHINE=... bitbake openpli-enigma2-image

        or, if you want to build not just the image, but the optional packages in the feed as well:

 MACHINE=... bitbake openpli-enigma2-feed

user1@Debian:~/openpli4$ cd ~/openpli4
user1@Debian:~/openpli4$ MACHINE=dm7020hd make image
Building image for dm7020hd
Loading cache: 100% |########################################################################################################################################################################################################| ETA:  00:00:00
Loaded 2536 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################################################################################################| Time: 00:02:14
Parsing of 2097 .bb files complete (2046 cached, 51 parsed). 2586 targets, 311 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.25.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Debian-8.3"
TARGET_SYS        = "mipsel-oe-linux"
MACHINE           = "dm7020hd"
DISTRO            = "openpli"
DISTRO_VERSION    = "4"
TUNE_FEATURES     = "o32 fpu-hard mips32"
TARGET_FPU        = ""
meta-oe
meta-filesystems
meta-multimedia
meta-networking
meta-python       = "(detachedfrom9c926ef):9c926ef2d463e643fb0dc87f6535a12e35d039ab"
meta              = "(detachedfromeb9d896):eb9d896db2fc67bac8efd258744d06fbbee87f06"
meta-openpli
meta-dream        = "master:4454187f20bbd4a8aefa1e6590aab2c27897571f"
meta-vuplus       = "(detachedfrom5ceccaa):5ceccaab8866116710d0facd022f9d3442d5b0db"
meta-xsarius      = "(detachedfrom68cdce8):68cdce82a5d99e5ac055764f4b091fbeb4235899"
meta-xp           = "(detachedfrom38ba4ae):38ba4aea0e8c2e391e90a845ab77b30d35ed5e95"
meta-xtrend       = "(detachedfrom66fbc58):66fbc589b76314e10e688dcb2207142afe3b9df1"
meta-formuler     = "(detachedfrom2f0635f):2f0635faf4f9ef973c4783168aa12580e78c06a8"
meta-hd           = "(detachedfrom321440e):321440ee26ea4f4e11cf9587bb955ae4317e1a2b"
meta-xpeedc       = "(detachedfromdbde5f6):dbde5f66bb0486d72609a20e882dad0eacae8645"
meta-wetek        = "(detachedfromac4d4e7):ac4d4e7013820249f4fe1be8b6bc7084fc66863f"
meta-zgemma       = "(detachedfrom147bed1):147bed1fc3be730fff44bcd0357c5e2fb6a7acca"
meta-local        = "master:4454187f20bbd4a8aefa1e6590aab2c27897571f"

NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 3836 tasks of which 3832 didn't need to be rerun and all succeeded.
user1@Debian:~/openpli4$ ls
bitbake               build    Makefile    meta-formuler  meta-local         meta-openpli  meta-wetek  meta-xpeedc   meta-xtrend  openembedded-core  scripts    sources
branding.conf.sample  LICENSE  meta-dream  meta-hd        meta-openembedded  meta-vuplus   meta-xp     meta-xsarius  meta-zgemma  recreate_feed      site.conf
user1@Debian:~/openpli4$

 

Quote

zeros's Photo zeros 17 Feb 2016

I found the ready generated software from here: /openpli4/build/tmp/deploy/images/dm7020hd

user1@Debian:~/openpli4/build/tmp$ cd deploy
user1@Debian:~/openpli4/build/tmp/deploy$ ls
images  ipk  licenses
user1@Debian:~/openpli4/build/tmp/deploy$ cd images
user1@Debian:~/openpli4/build/tmp/deploy/images$ ls
dm7020hd
user1@Debian:~/openpli4/build/tmp/deploy/images$ cd dm7020hd
user1@Debian:~/openpli4/build/tmp/deploy/images/dm7020hd$ ls
modules--3.2-r14.19.50-dm7020hd-20160215120451.tgz  openpli-enigma2-4-dm7020hd.nfi              openpli-enigma2-4-dm7020hd.rootfs.ubifs             secondstage-dm7020hd.bin                            vmlinux-dm7020hd.bin
modules-dm7020hd.tgz                                openpli-enigma2-4-dm7020hd.rootfs.manifest  openpli-enigma2.manifest                            vmlinux
openpli-enigma2-4-dm7020hd.boot.jffs2               openpli-enigma2-4-dm7020hd.rootfs.ubi       README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt  vmlinux--3.2-r14.19.50-dm7020hd-20160215120451.bin
user1@Debian:~/openpli4/build/tmp/deploy/images/dm7020hd$
 

Before I'm going to change something, I want to try it out the ready genereted openpli-enigma2-4-dm7020hd.nfi file.

I have the plan with following changes:

My goal is:
1) to simplify NimManager.py
2) to solve the problem with usb hybrid tuners.

How is made it in ATV:

To solve the problem with hybrid DVB-C/T/T2 and USB tuners like
Type: DVB-C
 Name: Vuplus DVB-C NIM(TT3L10)
 Mode 0: DVB-C
 Mode 1: DVB-T2
Name: CXD1981
 Has_Outputs: yes
 Mode 0: DVB-C
 Mode 1: DVB-T
Opti-Combo?

that work in combination in dvb-t2 or dvb-c mode,

added to NimManager.py changes.

elif line.startswith("Mode"):
    # Mode 0: DVB-C
    # Mode 1: DVB-T
    split = line.split(":")    
    split[1] = split[1].replace(' ','')
    split2 = split[0].split(" ")
    modes = entries[current_slot].get("multi_type", {})
    modes[split2[1]] = split[1]
    entries[current_slot]["multi_type"] = modes

def getNimSlotInputName(self, slotid):
  # returns just "A", "B", ...
  return self.nim_slots[slotid].slot_input_name

addNotifier

From enigma import iDVBFrontend
If tunerTypeChanged then in tunerTypeChanged the object 'iDVBFrontendPtr' has attribute 'changeType'

Add to Attribute object: 'iDVBFrontendPtr' the attribute 'changeType'

Add local variable 'extra_args' to config.py

New files for enigma2-master\lib\dvb
frontend.cpp - Add this to frontend.cpp bool: eDVBFrontend::changeType(int type)
frontend.h
idvb.h

def tunerTypeChanged(nimmgr, configElement):

if system == 'DVB-C':
 ret = frontend.changeType(iDVBFrontend.feCable)
elif system in ('DVB-T','DVB-T2'):
 ret = frontend.changeType(iDVBFrontend.feTerrestrial)
elif system in ('DVB-S','DVB-S2'):
 ret = frontend.changeType(iDVBFrontend.feSatellite)
elif system == 'ATSC':
 ret = frontend.changeType(iDVBFrontend.feATSC)
else:
 ret = False

So it made as far as I can tell in ATV, what do you think about such an approach!?

Quote

zeros's Photo zeros 22 Feb 2016

I ran the software created by building machine, and the results are good.  :)

Attached Files

Quote