https://wiki.archlinux.org/api.php?action=feedcontributions&user=Cdwijs&feedformat=atomArchWiki - User contributions [en]2024-03-29T07:14:19ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Arch_User_Repository&diff=518597Arch User Repository2018-04-25T06:36:58Z<p>Cdwijs: Added mention of the location of the public key</p>
<hr />
<div>[[Category:About Arch]]<br />
[[Category:Package development]]<br />
[[Category:Package management]]<br />
[[ar:Arch User Repository]]<br />
[[cs:Arch User Repository]]<br />
[[da:Arch User Repository]]<br />
[[de:Arch User Repository]]<br />
[[el:Arch User Repository]]<br />
[[es:Arch User Repository]]<br />
[[fi:AUR]]<br />
[[fr:AUR]]<br />
[[it:Arch User Repository]]<br />
[[ja:Arch User Repository]]<br />
[[nl:Arch User Repository]]<br />
[[pl:Arch User Repository]]<br />
[[pt:Arch User Repository]]<br />
[[ro:AUR]]<br />
[[ru:Arch User Repository]]<br />
[[sr:Arch User Repository]]<br />
[[zh-hans:Arch User Repository]]<br />
[[zh-hant:Arch User Repository]]<br />
{{Related articles start}}<br />
{{Related|makepkg}}<br />
{{Related|pacman}}<br />
{{Related|PKGBUILD}}<br />
{{Related|.SRCINFO}}<br />
{{Related|AurJson}}<br />
{{Related|AUR Trusted User Guidelines}}<br />
{{Related|Official repositories}}<br />
{{Related|Arch Build System}}<br />
{{Related|Creating packages}}<br />
{{Related|AUR helpers}}<br />
{{Related articles end}}<br />
<br />
The Arch User Repository (AUR) is a community-driven repository for Arch users. It contains package descriptions ([[PKGBUILD]]s) that allow you to compile a package from source with [[makepkg]] and then install it via [[pacman#Additional commands|pacman]]. The AUR was created to organize and share new packages from the community and to help expedite popular packages' inclusion into the [[community]] repository. This document explains how users can access and utilize the AUR.<br />
<br />
A good number of new packages that enter the official repositories start in the AUR. In the AUR, users are able to contribute their own package builds (PKGBUILD and related files). The AUR community has the ability to vote for or against packages in the AUR. If a package becomes popular enough &mdash; provided it has a compatible license and good packaging technique &mdash; it may be entered into the ''community'' repository (directly accessible by [[pacman]] or [[abs]]).<br />
<br />
== Getting started ==<br />
<br />
Users can search and download PKGBUILDs from the [https://aur.archlinux.org AUR Web Interface]. These PKGBUILDs can be built into installable packages using [[makepkg]], then installed using pacman.<br />
<br />
* Ensure the {{Grp|base-devel}} package group is installed ({{ic|pacman -S --needed base-devel}}).<br />
* Glance over the [[#FAQ]] for answers to the most common questions.<br />
* You may wish to adjust {{ic|/etc/makepkg.conf}} to optimize for your processor prior to building packages from the AUR. A significant improvement in compile times can be realized on systems with multi-core processors by adjusting the MAKEFLAGS variable. Users can also enable hardware-specific optimizations in GCC via the CFLAGS variable. See [[makepkg]] for more information.<br />
<br />
It is also possible to interact with the AUR through SSH: type {{ic|ssh aur@aur.archlinux.org help}} for a list of available commands.<br />
<br />
== History ==<br />
<br />
In the beginning, there was {{ic|<nowiki>ftp://ftp.archlinux.org/incoming</nowiki>}}, and people contributed by simply uploading the PKGBUILD, the needed supplementary files, and the built package itself to the server. The package and associated files remained there until a [[Package Maintainer]] saw the program and adopted it.<br />
<br />
Then the Trusted User Repositories were born. Certain individuals in the community were allowed to host their own repositories for anyone to use. The AUR expanded on this basis, with the aim of making it both more flexible and more usable. In fact, the AUR maintainers are still referred to as TUs (Trusted Users).<br />
<br />
Between 2015-06-08 and 2015-08-08 the AUR transitioned from version 3.5.1 to 4.0.0, introducing the use of Git repositories for publishing the PKGBUILDs.<br />
Existing packages were dropped unless manually migrated to the new infrastructure by their maintainers.<br />
<br />
=== Git repositories for AUR3 packages ===<br />
<br />
The [https://github.com/aur-archive AUR Archive] on GitHub has a repository for every package that was in AUR 3 at the time of the migration.<br />
Alternatively, there is the [https://github.com/felixonmars/aur3-mirror/ aur3-mirror] repository which provides the same.<br />
<br />
== Searching ==<br />
{{Accuracy|AUR search takes '%' literally|section=AUR search takes '%' literally}}<br />
The AUR web interface can be found at https://aur.archlinux.org/, and an interface suitable for accessing the AUR from a script can be found at https://aur.archlinux.org/rpc.php.<br />
<br />
Queries search package names and descriptions via a MySQL LIKE comparison. This allows for more flexible search criteria (e.g. try searching for {{ic|tool%like%grep}} instead of {{ic|tool like grep}}). If you need to search for a description that contains {{ic|%}}, escape it with {{ic|\%}}.<br />
<br />
== Installing packages ==<br />
Installing packages from the AUR is a relatively simple process. Essentially:<br />
<br />
# Acquire the build files, including the [[PKGBUILD]] and possibly other required files, like [[systemd]] units and patches (often not the actual code).<br />
# Verify that the [[PKGBUILD]] and accompanying files are not malicious or untrustworthy.<br />
# Run {{ic|makepkg -si}} in the directory where the files are saved. This will download the code, resolve the dependencies with [[pacman]], compile it, package it, and install the package.<br />
<br />
{{Note|The AUR is unsupported, so any packages you install are ''your responsibility'' to update, not pacman's. If packages in the official repositories are updated, you will need to rebuild any AUR packages that depend on those libraries.}}<br />
=== Prerequisites ===<br />
<br />
First ensure that the necessary tools are installed by [[install]]ing the {{grp|base-devel}} group which includes {{pkg|make}} and other tools needed for compiling from source.<br />
<br />
{{Note|Packages in the AUR assume that the {{grp|base-devel}} group is installed, i.e. they do not list the group's members as dependencies explicitly.}}<br />
<br />
Next choose an appropriate build directory. A build directory is simply a directory where the package will be made or "built" and can be any directory. The examples in the following sections will use {{ic|~/builds}} as the build directory.<br />
<br />
=== Acquire build files ===<br />
<br />
Locate the package in the AUR. This is done using the search feature (text field at the top of the [https://aur.archlinux.org/ AUR home page]). Clicking the application's name in the search list brings up an information page on the package. Read through the description to confirm that this is the desired package, note when the package was last updated, and read any comments.<br />
<br />
There are several methods for acquiring the build files:<br />
<br />
* Clone the [[git]] repository that is labeled as the "Git Clone URL" in the "Package Details":<br />
<br />
$ git clone <nowiki>https://aur.archlinux.org/</nowiki>''package_name''.git<br />
<br />
:An advantage of this method is that you can easily get updates to the package via {{ic|git pull}}.<br />
* Download the build files with your web browser by clicking the "Download snapshot" link under "Package Actions" on the right hand side. This will download a compressed file, which must be extracted (preferably in a directory set aside for AUR builds)<br />
<br />
$ tar -xvf ''package_name''.tar.gz<br />
* Similarly, you can download a tarball from the terminal (and extract it):<br />
<br />
$ curl -L -O <nowiki>https://aur.archlinux.org/cgit/aur.git/snapshot/</nowiki>''package_name''.tar.gz<br />
<br />
=== Build and install the package ===<br />
<br />
Change directories to the directory containing the package's [[PKGBUILD]].<br />
<br />
{{Warning|'''Carefully check all files.''' Carefully check the {{ic|PKGBUILD}} and any ''.install'' file for malicious commands. {{ic|PKGBUILD}}s are [[bash]] scripts containing functions to be executed by ''makepkg'': these functions can contain ''any'' valid commands or Bash syntax, so it is totally possible for a {{ic|PKGBUILD}} to contain dangerous commands through malice or ignorance on the part of the author. Since ''makepkg'' uses ''fakeroot'' (and should never be run as root), there is some level of protection but you should never count on it. If in doubt, do not build the package and seek advice on the forums or mailing list.}}<br />
<br />
$ cd ''package_name''<br />
$ less PKGBUILD<br />
$ less ''package_name''.install<br />
<br />
Make the package. After manually confirming the integrity of the files, run [[makepkg]] as a normal user:<br />
<br />
$ makepkg -si<br />
<br />
* {{ic|-s}}/{{ic|--syncdeps}} automatically resolves and installs any dependencies with [[pacman]] before building. If the package depends on other AUR packages, you will need to manually install them first.<br />
* {{ic|-i}}/{{ic|--install}} installs the package if it is built successfully. Alternatively the built package can be installed with {{ic|pacman -U ''package''.pkg.tar.xz}}.<br />
<br />
Other useful flags are<br />
<br />
* {{ic|-r}}/{{ic|--rmdeps}} removes build-time dependencies after the build, as they are no longer needed. However these dependencies may need to be reinstalled the next time the package is updated.<br />
* {{ic|-c}}/{{ic|--clean}} cleans up temporary build files after the build, as they are no longer needed. These files are usually needed only when debugging the build process.<br />
<br />
{{Note|The above example is only a brief summary of the build process. It is '''highly''' recommended to read the [[makepkg]] and [[ABS]] articles for more details.}}<br />
<br />
== Feedback ==<br />
<br />
The [https://aur.archlinux.org AUR Web Interface] has a comments facility that allows users to provide suggestions and feedback on improvements to the PKGBUILD contributor. Avoid pasting patches or PKGBUILDs into the comments section: they quickly become obsolete and just end up needlessly taking up lots of space. Instead email those files to the maintainer, or even use a [[pastebin]].<br />
<br />
One of the easiest activities for '''all''' Arch users is to browse the AUR and '''vote''' for their favourite packages using the online interface. All packages are eligible for adoption by a TU for inclusion in the [[community]] repository, and the vote count is one of the considerations in that process; it is in everyone's interest to vote!<br />
<br />
== Sharing and maintaining packages ==<br />
<br />
{{Note|1=Please see [https://wiki.archlinux.org/index.php?title=Talk:Arch_User_Repository&oldid=484964#Scope_of_the_AUR4_section Talk:Arch User Repository#Scope of the AUR4 section] before making changes to this section.}}<br />
<br />
Users can '''share''' PKGBUILDs using the Arch User Repository. It does not contain any binary packages but allows users to upload PKGBUILDs that can be downloaded by others. These PKGBUILDs are completely unofficial and have not been thoroughly vetted, so they should be used at your own risk.<br />
<br />
=== Submitting packages ===<br />
<br />
{{Warning|Before attempting to submit a package you are expected to familiarize yourself with [[Arch packaging standards]] and all the articles under "Related articles". '''Verify carefully''' that what you are uploading is correct. Packages that violate the rules may be '''deleted''' without warning.}}<br />
<br />
If you are unsure in any way about the package or the build/submission process even after reading this section twice, submit the PKGBUILD to the [https://mailman.archlinux.org/mailman/listinfo/aur-general AUR mailing list], the [https://bbs.archlinux.org/viewforum.php?id=4 AUR forum] on the Arch forums, or ask on our [[IRC channel]] for public review before adding it to the AUR.<br />
<br />
==== Rules of submission ====<br />
<br />
When submitting a package to the AUR, observe the following rules:<br />
<br />
* The submitted PKGBUILDs must not build applications '''already in any''' of the '''official''' binary '''repositories''' under any circumstances. Check the [https://www.archlinux.org/packages/ official package database] for the package. If any version of it exists, '''do not''' submit the package. If the official package is out-of-date, flag it as such. If the official package is broken or is lacking a feature, then please file a [https://bugs.archlinux.org/ bug report].<br />
:'''Exception''' to this strict rule may only be packages having '''extra features''' enabled and/or '''patches''' in comparison to the official ones. In such an occasion the {{ic|pkgname}} should be different to express that difference. For example, a package for GNU screen containing the sidebar patch could be named {{ic|screen-sidebar}}. Additionally the {{ic|1=provides=('screen')}} array should be used in order to avoid conflicts with the official package.<br />
<br />
* '''Check the AUR''' if the package '''already exists'''. If it is currently maintained, changes can be submitted in a comment for the maintainer's attention. If it is unmaintained or the maintainer is unresponsive, the package can be adopted and updated as required. Do not create duplicate packages.<br />
<br />
* Make sure the package you want to upload is '''useful'''. Will anyone else want to use this package? Is it extremely specialized? If more than a few people would find this package useful, it is appropriate for submission.<br />
<br />
:The AUR and official repositories are intended for packages which install generally software and software-related content, including one or more of the following: executable(s); config file(s); online or offline documentation for specific software or the Arch Linux distribution as a whole; media intended to be used directly by software.<br />
<br />
* Do not use {{ic|replaces}} in an AUR PKGBUILD unless the package is to be renamed, for example when ''Ethereal'' became ''Wireshark''. If the package is an '''alternate version of an already existing package''', use {{ic|conflicts}} (and {{ic|provides}} if that package is required by others). The main difference is: after syncing (-Sy) pacman immediately wants to replace an installed, 'offending' package upon encountering a package with the matching {{ic|replaces}} anywhere in its repositories; {{ic|conflicts}}, on the other hand, is only evaluated when actually installing the package, which is usually the desired behavior because it is less invasive.<br />
<br />
* Submitting '''binaries''' should be '''avoided''' if the sources are available. The AUR should not contain the binary tarball created by makepkg, nor should it contain the filelist.<br />
<br />
* Please add a '''comment line''' to the top of the {{ic|PKGBUILD}} file which contains information about the current '''maintainers''' and previous '''contributors''', respecting the following format. Remember to disguise your email to protect against spam. Additional or unneeded lines are facultative.<br />
:If you are assuming the role of maintainer for an existing PKGBUILD, add your name to the top like this<br />
:{{bc|<nowiki><br />
# Maintainer: Your Name <address at domain dot tld><br />
</nowiki>}}<br />
:If there were previous maintainers, put them as contributors. The same applies for the original submitter if this is not you. If you are a co-maintainer, add the names of the other current maintainers as well.<br />
:{{bc|<nowiki><br />
# Maintainer: Your name <address at domain dot tld><br />
# Maintainer: Other maintainer's name <address at domain dot tld><br />
# Contributor: Previous maintainer's name <address at domain dot tld><br />
# Contributor: Original submitter's name <address at domain dot tld><br />
</nowiki>}}<br />
<br />
==== Authentication ====<br />
<br />
For write access to the AUR, you need to have an [[SSH keys|SSH key pair]]. The content of the public key needs to be copied to your profile in ''My Account'', and the corresponding private key configured for the {{ic|aur.archlinux.org}} host. For example:<br />
<br />
{{hc|~/.ssh/config|<br />
Host aur.archlinux.org<br />
IdentityFile ~/.ssh/aur<br />
User aur}}<br />
<br />
You should [[SSH_keys#Generating_an_SSH_key_pair|create a new key pair]] rather than use an existing one, so that you can selectively revoke the keys should something happen:<br />
<br />
$ ssh-keygen -f ~/.ssh/aur<br />
<br />
The public key is now available in ~/.ssh/aur.pub<br />
<br />
{{Tip|You can add multiple public keys to your profile by separating them with a newline in the input field.}}<br />
<br />
==== Creating a new package ====<br />
<br />
In order to create a new, empty, local Git repository for a package, simply {{ic|git clone}} the remote repository with the corresponding name. If the package does not exist on AUR yet, you will see the following warning:<br />
<br />
{{hc|$ git clone <nowiki>ssh://</nowiki>aur@aur.archlinux.org/''package_name''.git|<br />
Cloning into &apos;''package_name''&apos;...<br />
warning: You appear to have cloned an empty repository.<br />
Checking connectivity... done.}}<br />
<br />
{{Note|When a package on the AUR is deleted, the git repository is not deleted so it is possible for a deleted package's repository to not be empty when cloned if someone is creating a package with the same name.}}<br />
<br />
If you have already created a git repository, you can simply create a remote for the AUR git repository and then fetch it:<br />
<br />
$ git remote add ''remote_name'' <nowiki>ssh://</nowiki>aur@aur.archlinux.org/''package_name''.git<br />
$ git fetch ''remote_name''<br />
<br />
where {{ic|''remote_name''}} is the name of the remote to create (''e.g.,'' "origin"). See [[Git#Using remotes]] for more information.<br />
<br />
The new package will appear on AUR after you ''push'' the first commit. You can now add the source files to the local copy of the Git repository. See [[#Uploading packages]].<br />
<br />
{{Warning|Your AUR commits will be authored according to your git user name and email address and it is very difficult to change commits after you push them (see {{Bug|45425}}). If you want to push to AUR under a different name/email, you can change them for this package via {{ic|git config user.name [...]}} and {{ic|git config user.email [...]}}. Review your commits before pushing them!}}<br />
<br />
==== Uploading packages ====<br />
<br />
The procedure for uploading packages to the AUR is the same for new packages and package updates. You need at least [[PKGBUILD]] and [[.SRCINFO]] in the top-level directory to ''push'' your package to AUR.<br />
<br />
{{Note|You need to regenerate the {{ic|.SRCINFO}} every time you change {{ic|PKGBUILD}} metadata, such as [[PKGBUILD#pkgver|pkgver()]] updates. Otherwise the AUR will not show the updated version numbers.}}<br />
<br />
To upload, add the {{ic|PKGBUILD}}, {{ic|.SRCINFO}}, and any helper files (like ''.install'' files or local source files like ''.patch'') to the ''staging area'' with {{ic|git add}}, commit them to your local tree with a commit message with {{ic|git commit}}, and finally publish the changes to the AUR with {{ic|git push}}.<br />
<br />
For example:<br />
<br />
$ makepkg --printsrcinfo > .SRCINFO<br />
$ git add PKGBUILD .SRCINFO<br />
$ git commit -m "''useful commit message''"<br />
$ git push<br />
<br />
{{Tip|<br />
* If you initially forgot to commit the {{ic|.SRCINFO}} and added it in a later commit, the AUR will still reject your pushes because the {{ic|.SRCINFO}} must exist for ''every'' commit. To solve this problem you can use [https://git-scm.com/docs/git-rebase git rebase] with the {{ic|--root}} option or [https://git-scm.com/docs/git-filter-branch git filter-branch] with the {{ic|--tree-filter}} option.<br />
* To prevent untracked files from commits and to keep the working directory as clean as possible, exclude all files with {{ic|.gitignore}} and force-add files instead. See [[dotfiles#Using gitignore]].<br />
}}<br />
<br />
=== Maintaining packages ===<br />
<br />
* Check for feedback and comments from other users and try to incorporate any improvements they suggest; consider it a learning process!<br />
* Please do not leave a comment containing the version number every time you update the package. This keeps the comment section usable for valuable content mentioned above. [[AUR helpers]] are suited better to check for updates.<br />
* Please do not just submit and forget about packages! It is the maintainer's job to maintain the package by checking for updates and improving the PKGBUILD.<br />
* If you do not want to continue to maintain the package for some reason, {{ic|disown}} the package using the AUR web interface and/or post a message to the AUR Mailing List. If all maintainers of an AUR package disown it, it will become an [https://aur.archlinux.org/packages/?O=0&SeB=nd&K=&outdated=&SB=n&SO=a&PP=50&do_Orphans=Orphans "orphaned"] package.<br />
<br />
=== Other requests ===<br />
<br />
Orphan, deletion and merge requests can be created by clicking on the "Submit Request" link under "Package Actions" on the right hand side. This automatically sends a notification email to the current package maintainer and to the [https://mailman.archlinux.org/mailman/listinfo/aur-requests aur-requests mailing list] for discussion. [[Trusted Users]] will then either accept or reject the request. <br />
* Orphan requests will be granted after two weeks if the current maintainer did not react.<br />
* Merge requests are to delete the package base and transfer its votes and comments to another package base. The name of the package base to merge into is required. Note this has nothing to do with 'git merge' or GitLab's merge requests. <br />
* Deletion requests require the following information:<br />
** A short note explaining the reason for deletion. Note that a package's comments does not sufficiently point out the reasons why a package is up for deletion. Because as soon as a TU takes action, the only place where such information can be obtained is the aur-requests mailing list.<br />
** Supporting details, like when a package is provided by another package, if you are the maintainer yourself, it is renamed and the original owner agreed, etc.<br />
** Deletion requests can be rejected, in which case if you are the maintainer of the package you will likely be advised to disown the package to allow adoption by another packager.<br />
<br />
== Web interface translation ==<br />
<br />
See [https://projects.archlinux.org/aurweb.git/tree/doc/i18n.txt i18n.txt] in the AUR source tree for information about creating and maintaining translation of the AUR web interface.<br />
<br />
== Comment syntax ==<br />
<br />
The [https://python-markdown.github.io/ Python-Markdown] syntax is supported in comments.<br />
It provides basic [[Wikipedia:Markdown|Markdown]] syntax to format comments. Note this implementation has some occasional [https://python-markdown.github.io/#differences differences] with the official [https://daringfireball.net/projects/markdown/syntax syntax rules]. Commit hashes to the Git repository of the package and references to Flyspray tickets are converted to links automatically. Long comments are collapsed and can be expanded on demand.<br />
<br />
== FAQ ==<br />
<br />
=== What is the AUR? ===<br />
<br />
The AUR (Arch User Repository) is a place where the Arch Linux community can upload [[PKGBUILD]]s of applications, libraries, etc., and share them with the entire community. Fellow users can then vote for their favorites to be moved into the [[community]] repository to be shared with Arch Linux users in binary form.<br />
<br />
=== What kind of packages are permitted on the AUR? ===<br />
<br />
The packages on the AUR are merely "build scripts", i.e. recipes to build binaries for pacman. For most cases, everything is permitted, subject to the abovementioned [[#Rules of submission|usefulness and scope guidelines]], as long as you are in compliance with the licensing terms of the content. For other cases, where it is mentioned that "you may not link" to downloads, i.e. contents that are not redistributable, you may only use the file name itself as the source. This means and requires that users already have the restricted source in the build directory prior to building the package. When in doubt, ask.<br />
<br />
=== How can I vote for packages in the AUR? ===<br />
<br />
Sign up on the [https://aur.archlinux.org/ AUR website] to get a "Vote for this package" option while browsing packages. After signing up it is also possible to vote from the commandline with {{AUR|aurvote}}, {{AUR|aurvote-git}} or {{AUR|aur-auto-vote-git}}.<br />
<br />
Alternatively, if you have set up [[#Authentication|ssh authentication]] as above, you can directly vote from the command line using your ssh key. This means that you won't need to save or type in your AUR password.<br />
<br />
ssh aur@aur.archlinux.org vote <PACKAGE_NAME><br />
<br />
=== What is a Trusted User / TU? ===<br />
<br />
A [[AUR Trusted User Guidelines|Trusted User]], in short TU, is a person who is chosen to oversee AUR and the [[community]] repository. They are the ones who maintain popular PKGBUILDs in ''community'', and overall keep the AUR running.<br />
<br />
=== What is the difference between the Arch User Repository and the community repository? ===<br />
<br />
The Arch User Repository is where all PKGBUILDs that users submit are stored, and must be built manually with [[makepkg]]. When PKGBUILDs receive enough community interest and the support of a TU, they are moved into the [[community]] repository (maintained by the TUs), where the binary packages can be installed with [[pacman]].<br />
<br />
=== Foo in the AUR is outdated; what should I do? ===<br />
<br />
First, you should flag the package ''out-of-date'' indicating details on why the package is outdated, preferably including links to the release announcement or the new release tarball.<br />
You should also try to reach out to the maintainer directly by email. If there is no response from the maintainer after ''two weeks'', you can file an ''orphan'' request. This means you ask a [[Trusted User]] to disown the package base. This is to be done only if the package requires maintainer action, that he/she is not responding and you already tried to contact him/her previously.<br />
<br />
In the meantime, you can try updating the package yourself by editing the PKGBUILD locally. Sometimes, updates do not require changes to the build or package process, in which case simply updating the {{ic|pkgver}} or {{ic|source}} array is sufficient.<br />
<br />
{{Note|[[VCS package guidelines|VCS packages]] are not considered out of date when the pkgver changes, do not flag them as the maintainer will merely unflag the package and ignore you. AUR maintainers should not commit mere pkgver bumps.}}<br />
<br />
=== Foo in the AUR does not compile when I run makepkg; what should I do? ===<br />
<br />
You are probably missing something trivial.<br />
<br />
# [[Pacman#Upgrading_packages|Upgrade the system]] before compiling anything with {{ic|makepkg}} as the problem may be that your system is not up-to-date.<br />
# Ensure you have both {{Grp|base}} and {{Grp|base-devel}} groups installed.<br />
# Try using the {{ic|-s}} option with {{ic|makepkg}} to check and install all the dependencies needed before starting the build process.<br />
<br />
Be sure to first read the PKGBUILD and the comments on the AUR page of the package in question.<br />
The reason might not be trivial after all. Custom CFLAGS, LDFLAGS and MAKEFLAGS can cause failures. It is also possible that the PKGBUILD is broken for everyone. If you cannot figure it out on your own, just report it to the maintainer e.g. by posting the errors you are getting in the comments on the AUR page.<br />
<br />
=== How do I create a PKGBUILD? ===<br />
<br />
The best resource is the wiki page about [[creating packages]]. Remember to look in AUR before creating the PKGBUILD as to not duplicate efforts.<br />
<br />
=== I have a PKGBUILD I would like to submit; can someone check it to see if there are any errors? ===<br />
<br />
If you would like to have your PKGBUILD reviewed, post it on the [https://mailman.archlinux.org/mailman/listinfo/aur-general aur-general mailing list] to get feedback from the TUs and fellow AUR members. You could also get help from the [[IRC channel]], #archlinux-aur on irc.freenode.net. You can also use [[namcap]] to check your PKGBUILD and the resulting package for errors.<br />
<br />
=== How to get a PKGBUILD into the community repository? ===<br />
<br />
Usually, at least 10 votes are required for something to move into [[community]]. However, if a TU wants to support a package, it will often be found in the repository.<br />
<br />
Reaching the required minimum of votes is not the only requirement, there has to be a TU willing to maintain the package. TUs are not required to move a package into the ''community'' repository even if it has thousands of votes.<br />
<br />
Usually when a very popular package stays in the AUR it is because:<br />
<br />
* Arch Linux already has another version of a package in the repositories<br />
* The package is AUR-centric (e.g. an [[AUR helper]])<br />
* Its license prohibits redistribution<br />
<br />
See also [[DeveloperWiki:Community repo candidates]] and [[AUR Trusted User Guidelines#Rules for Packages Entering the .5Bcommunity.5D Repo|Rules for Packages Entering the community Repo]].<br />
<br />
=== How can I speed up repeated build processes? ===<br />
<br />
If you frequently compile code that uses GCC - say, a Git or SVN package - you may find [[ccache]], short for "compiler cache", useful.<br />
<br />
=== What is the difference between foo and foo-git packages? ===<br />
<br />
Many AUR packages are presented in regular ("stable") and development versions ("unstable"). A development package usually has a suffix such as {{ic|-cvs}}, {{ic|-svn}}, {{ic|-git}}, {{ic|-hg}}, {{ic|-bzr}} or {{ic|-darcs}}. While development packages are not intended for regular use, they may offer new features or bugfixes. Because these packages download the latest available source when you execute {{ic|makepkg}}, a package version to track possible updates is not directly available for these. Likewise, these packages cannot perform an authenticity checksum, instead it is relied on the maintainer(s) of the Git repository. <br />
<br />
See also [[System maintenance#Use proven software packages]].<br />
<br />
=== Why has foo disappeared from the AUR? ===<br />
<br />
It is possible the package has been adopted by a TU and is now in the [[community]] repository.<br />
<br />
Packages may be deleted if they did not fulfill the [[#Rules of submission]]. See the [https://lists.archlinux.org/pipermail/aur-requests/ aur-requests archives] for the reason for deletion.<br />
<br />
If the package used to exist in AUR3, it might not have been [https://lists.archlinux.org/pipermail/aur-general/2015-August/031322.html migrated to AUR4]. See the [[#Git repositories for AUR3 packages]] where these are preserved.<br />
<br />
=== How do I find out if any of my installed packages disappeared from AUR? ===<br />
<br />
The simplest way is to check the HTTP status of the package's AUR page:<br />
<br />
$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)<br />
<br />
If you use an [[AUR helper]], you can shorten this script by replacing the curl command with whatever command queries the AUR for a package.<br />
<br />
=== How can I obtain a list of all AUR packages? ===<br />
<br />
* https://aur.archlinux.org/packages.gz<br />
* Use <code>aurpkglist</code> from {{aur|python3-aur}}<br />
<br />
== See also ==<br />
* [https://aur.archlinux.org AUR Web Interface]<br />
* [https://lists.archlinux.org/listinfo/aur-general AUR Mailing List]<br />
* [[DeveloperWiki:AUR Cleanup Day]]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=SANE/Scanner-specific_problems&diff=518304SANE/Scanner-specific problems2018-04-22T18:08:32Z<p>Cdwijs: using wget to download the driver</p>
<hr />
<div>[[Category:Imaging]]<br />
[[ja:SANE/スキャナー別の問題]]<br />
This article contains scanner or manufacturer-specific instructions for [[SANE]].<br />
<br />
<br />
== Agfa ==<br />
=== Snapscan e40 ===<br />
<br />
Firmware {{ic|Snape40.bin}} from [https://sites.google.com/site/rameyarnaud/media/books/agfa-scanners-with-linux here] is required.<br />
<br />
If USB autosuspend is enabled, the printer may need to be turned off and on again before each scan. USB autosuspend can be disabled using [[powertop]].<br />
<br />
== BenQ/Acer ==<br />
If you own an USB scanner from Acer (now BenQ), you need to download a suitable firmware binary and configure {{ic|/etc/sane.d/snapscan.conf}}.<br />
<br />
* Find out which model you own and take note of the USB ID:<br />
{{hc|$ lsusb|<br />
Bus 002 Device 010: ID 04a5:20b0 Acer Peripherals Inc. (now BenQ Corp.) S2W 3300U/4300U}}<br />
* Go to [http://snapscan.sourceforge.net/ snapscan] main page and see whether your scanner is supported and which firmware you need (e.g, {{ic|u176v046.bin}}).<br />
* Search the firmware image on the Internet and download it to {{ic|/usr/share/sane/snapscan/}}.<br />
* Edit the head of {{ic|/etc/sane.d/snapscan.conf}} and configure the following two lines:<br />
firmware /usr/share/sane/snapscan/u176v046.bin<br />
/dev/usb/scanner0 bus=usb<br />
<br />
== Brother ==<br />
In order to install a Brother scanner or printer/scanner combo you need the right driver. To find the right one, search for your model at the [http://support.brother.com/g/s/id/linux/en/download_scn.html Brother Linux scanner page], or see the information below for scanners that aren't listed on that page.<br />
<br />
Then, install the appropriate package:<br />
* {{AUR|brscan2}}<br />
* {{AUR|brscan3}}<br />
* {{AUR|brscan4}} (MFC-J5620DW)<br />
* {{AUR|libsane-dsseries}}<br />
<br />
Now, the scanner should be recognized by SANE.<br />
<br />
For network scanners, Brother provides a different configuration tool for each brscan version (eg. brsaneconfig2 for brscan2 compatible devices):<br />
# brsaneconfig2 -a name=<ScannerName> model=<ScannerModel> ip=<ScannerIP><br />
Example:<br />
# brsaneconfig2 -a name=SCANNER_DCP770CW model=DCP-770CW ip=192.168.0.110<br />
<br />
=== Network Scanning ===<br />
<br />
In case of network scanning, e.g. by WiFi, Sane may still be unable to find the scanner. If so, you need to specify the IP address of the scanner in the {{ic|/etc/sane.d/net.conf}} file.<br />
<br />
Now use {{ic|scanimage --list-devices}} to check whether sane is able to find your scanner. If not, further check that Sane expects this device through the network (see [http://neithere.net/2013/02/18/archlinux_brother_7860.html]). Check that {{ic|/etc/sane.d/dll.conf}} contains {{ic|brother''X''}}, where the {{ic|''X''}} stands for the brscan version from above. If nothing was found, add {{ic|brother''X''}} to the end of the file.<br />
<br />
=== Invalid argument ===<br />
<br />
If all the necessary packages are installed but you still get the "invalid argument" error this could mean that the configuration file has been corrupted. Run the following command (in case of brscan4):<br />
# brsaneconfig4 -d <br />
<br />
The output should narrow down the problem. Most likely the connection isn't setup correctly. In case of a network scanner check if the IP address is right by opening the {{ic|/etc/opt/brother/scanner/brscan4//brsanenetdevice4.cfg}} with an editor. In case of a USB connection check if the path to the scanner in the configuration file is setup correctly. For that compare the values of the {{ic|lsusb}} command with your configuration file and change them if necessary.<br />
<br />
=== Scan-key-tool ===<br />
<br />
Brother has released a tool to enable scanning to be triggered by user interaction with the scanner itself (e.g. by selecting one of "Scan to email", "Scan to image", etc. on the scanner keypad) rather than by an attached computer. This can be set up by installing the {{aur|brscan-skey}} package and starting {{ic|brscan-skey.service}} [[systemd#Using units|using systemd]]. Note that by default this service runs as the '''brscan-skey''' user which is created by the package, whose home directory is located at {{ic|/srv/brscan-skey}}.<br />
<br />
Brother supplies some default scripts that are executed when a scan type is selected on the keypad. These may require the installation of some optional dependencies of the {{aur|brscan-skey}} package. For all options apart from "Scan to email" the resulting output can be found inside {{ic|$HOME/brscan}}, with {{ic|$HOME}} the home directory of the user running this tool (so {{ic|/srv/brscan-skey}} if started via systemd as a systemwide process).<br />
<br />
It is possible to change what action takes place when a given type of scan is selected on the keypad. This is done by editing {{ic|/opt/brother/scanner/brscan-skey/brscan-skey-0.2.4-0.cfg}}. For each variable {{ic|SCAN_COMMAND}} in {{ic|IMAGE}}, {{ic|OCR}}, {{ic|EMAIL}}, {{ic|FILE}}, the command<br />
<br />
$ $SCAN_COMMAND $SCANNER_DEVICE $SCANNER_FRIENDLY_NAME<br />
<br />
is executed when the corresponding scan type is selected. Note that {{ic|$SCAN_COMMAND}} is not quoted so may specify more than one positional parameter in the final command that is executed. {{ic|$SCANNER_DEVICE}} refers to the name of the device that should be specified to a sane frontend (e.g. via the {{ic|--device-name}} flag when using {{ic|scanimage}}), for example {{ic|brother3:bus4;dev2}}. {{ic|$SCANNER_FRIENDLY_NAME}} is the human-readable name of the scanner.<br />
<br />
=== xsane crashes ===<br />
<br />
{{Accuracy|<br />
*Should be mentioned on AUR page<br />
*This may only be relevant for the Brother DCP-150C scanner}}<br />
If xsane crashes with message "{{ic|1==bugchk_free(ptr==(nil))@brother_modelinf.c(482)}}", then you need to create the link {{ic|/usr/local/Brother -> /usr/share/brother}}.<br />
<br />
== Canon ==<br />
<br />
=== Scanning over the network with Canon Pixma all-in-one printer/scanners ===<br />
<br />
Find out your printer/scanner's IP address, and add it on a new line to {{ic|/etc/sane.d/pixma.conf}} in the format {{ic|bjnp://10.0.0.20}}.<br />
<br />
{{Tip|Instead of a IP address you can use the [[mDNS]] {{ic|.local}} address, e.g. {{ic|bjnp://''MyPixmaPrinter''.local}}.}}<br />
<br />
Sane should now find your device. For more details refer to {{man|5|sane-pixma}}.<br />
<br />
Alternative: for some Canon Pixma all-in-one printer/scanners, which are not detected over network, can be used {{AUR|scangearmp2}} package from AUR.<br />
<br />
== Epson ==<br />
<br />
With Epson scanners, you can use "Image Scan! for Linux".<br />
<br />
* Install the {{Pkg|iscan}} package<br />
* Install the appropriate iscan-plugin package for your scanner (for example, {{AUR|iscan-plugin-gt-x820}} for the Epson Perfection Photo V600)<br />
* Reboot, so that udev will recognize the device as a scanner and apply appropriate permissions<br />
<br />
For network (including Wi-Fi) scanners, install {{Pkg|iscan}} and {{AUR|iscan-plugin-network}}, then edit {{ic|/etc/sane.d/epkowa.conf}} and add the line:<br />
net {IP_OF_SCANNER}<br />
<br />
=== Image Scan v3 ===<br />
<br />
Some models require "Image Scan 3", which is different from "Image Scan! for Linux" and is not available in the official repositores. Install {{Aur|imagescan}} for the base program. It should detect supported USB scanners automatically by default. If you want to make use of a network scanner you also have to install {{Aur|imagescan-plugin-networkscan}}. Then edit {{ic|/etc/utsushi/utsushi.conf}}, and enter the ip address of your scanner to it.<br />
<br />
[devices]<br />
myscanner.udi = esci:networkscan://<ip-address-here>:1865<br />
myscanner.vendor = Epson<br />
myscanner.model = Model-name<br />
<br />
When you then start Image Scan v3, the name of the scan should be visible in the top left corner. If a connection problem happened, an error dialog will be shown.<br />
<br />
=== Epson Perfection V550 Photo ===<br />
<br />
Install {{aur|iscan-plugin-perfection-v550}}<br />
<br />
=== Epson Perfection 1270 ===<br />
<br />
For Epson Perfection 1270, you also need a firmware named {{ic|esfw3e.bin}}. It can be obtained by installing the Windows driver.<br />
<br />
Modify the configuration file of the snapscan backend, {{ic|/etc/sane.d/snapscan.conf}}. Change the firmware path line with yours:<br />
<br />
# Change to the fully qualified filename of your firmware file, if<br />
# firmware upload is needed by the scanner<br />
firmware /mnt/mydata/Backups/firmware/esfw3e.bin<br />
<br />
And add the following line in the end or anywhere you like<br />
<br />
# Epson Perfection 1270<br />
usb 0x04b8 0x0120<br />
<br />
You can get such code information ({{ic|usb 0x04b8 0x0120}}) by ''sane-find-scanner'' command.<br />
<br />
Also add such information lines to {{ic|/etc/hotplug/usb/libsane.usermap}} to setup your privilege, like:<br />
<br />
# Epson Perfection 1270<br />
libusbscanner 0x0003 0x04b8 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000<br />
<br />
Replug scanner, you have a working Epson Perfection 1270 now.<br />
<br />
{{Note|I can scan image if I define the X and Y value, but without that error message occurs like: {{ic|scanimage: sane_start: Error during device I/O}}, if anyone knows any other reasons, please add them to this section.}}<br />
<br />
* To prevent {{ic|scanimage: sane_start: Error during device I/O}} and hangup of the scanner itself, when trying to scan with ADF (automatic document feed) enabled, I had to remove or comment out all Backends from {{ic|/etc/sane.d/dll.conf}} and instead just add this to the file: {{bc|snapscan}}<br />
<br />
If you still get the {{ic|Error during device I/O}} messages check that the transportation lock of the scanner (on the bottom of the scanner) is open.<br />
<br />
=== Epson Perfection 1670/2480/2580/3490/3590 ===<br />
<br />
{{Note|Installation instructions were only tested for Epson Perfection 3590 but should be similar to the other models. Check the instructions above and the links below and edit this wiki page if you can verify that your scanner works.}}<br />
<br />
Make sure to download the correct firmware for your Epson model. You can get an overview of some models and their drivers [https://wiki.ubuntuusers.de/Scanner/Epson%20Perfection/#Unterstuetze-Geraete here] and [http://snapscan.sourceforge.net/ here]. The download links of the firmware are broken, but you can use [https://wiki.ubuntuusers.de/Scanner/Epson_Perfection/Esfw52.bin/ this link] as alternative instead. Make sure to change the firmware filename of the link suiting your model. If you want to download and extract the firmware sources from the official epson sites yourself you can use [https://forum.ubuntuusers.de/topic/epson-perfection-3490-photo-on-ubuntu-9-04-64/ this guide].<br />
<br />
As an alternative you can also install the AUR package {{AUR|sane-epson-perfection-firmware}} which will download the firmware from the official sources, extract the binary and install those to {{ic|/usr/share/sane/snapscan/}}.<br />
<br />
Modify the configuration file of the snapscan backend, {{ic|/etc/sane.d/snapscan.conf}}. Change the firmware path line with yours:<br />
<br />
# Change to the fully qualified filename of your firmware file, if<br />
# firmware upload is needed by the scanner<br />
firmware /usr/share/sane/snapscan/esfw52.bin<br />
<br />
Other modifications were not needed for the Epson Perfection 3590 and might not be for other models as well. If you still have problems it can also help if you [[SANE#Multiple_backends_claim_scanner|completely remove]] the {{Pkg|iscan}} package.<br />
<br />
== Fujitsu ==<br />
<br />
=== S300M ===<br />
<br />
For the operation of the scanner S300M a firmware file {{ic|/usr/share/sane/epjitsu/300M_0C00.nal}} is required, which can be downloaded [http://sange.fi/~atehwa/cgi-bin/piki.cgi/fujitsu%20scansnap%20s300%20firmware here], or extracted from the Windows driver.<br />
<br />
== HP ==<br />
<br />
If your HP device [http://hplipopensource.com/hplip-web/supported_devices/index.html is supported by hplip], [[install]] the {{Pkg|hplip}} package.<br />
<br />
The latter comes with 3 tools:<br />
* ''hp-setup'' to add and setup the device<br />
* ''hp-plugin'' is the 'HPLIP Plugin Download and Install Utility'.<br />
* ''hp-scan'' is the 'HPLIP Scan Utility'. If you need that tool, you will need to install {{Pkg|python-pillow}}.<br />
<br />
''hp-setup'' requires Python Qt4 when run using the GUI (which is the default). To avoid installing the old Qt4 toolchain, you can run the CLI interface of hp-setup using {{ic|-i}} as argument.<br />
<br />
If the device is connected by USB, run ''hp-setup'' as root and follow the on screen instructions.<br />
<br />
If your device is connected on the network, use {{ic|# hp-setup <printer ip>}} instead.<br />
<br />
=== Alternative way to scan with network HP scanner ===<br />
<br />
* Find out IP address of your network HP scanner, for example ''192.168.1.8''<br />
* Make device URI using hp-makeuri utility:<br />
<br />
hp-makeuri 192.168.1.8<br />
<br />
* Output should look like ''hpaio:/net/DeskJet_3630_series?ip=192.168.1.8''<br />
* This URI could be given to xsane or scanimage tools, for example:<br />
<br />
xsane "hpaio:/net/DeskJet_3630_series?ip=192.168.1.8"<br />
scanimage --device "hpaio:/net/DeskJet_3630_series?ip=10.12.129.6" --format=png --resolution 300 >scan01.png<br />
<br />
== Medion ==<br />
<br />
If you own the USB scanner MD 9705 from Medion, you need to download a suitable firmware binary. This firmware file is in the device driver for Windows.<br />
<br />
Find out which model you own and take note of the USB ID:<br />
<br />
{{hc|$ lsusb|<br />
Bus 006 Device 007: ID 05d8:4003 Ultima Electronics Corp. Artec E+ 48U<br />
}}<br />
Enter the following commands to download the Windows driver, extract the firmware file, and copy it to the location SANE expects it:<br />
$ wget http://download.medion.com/downloads/treiber/scamd9705w9xxp.exe<br />
$ unzip scamd9705w9xxp.exe Win2000/Artec48.usb<br />
# cp Win2000/Artec48.usb /usr/share/sane/artec_eplus48u/Artec48.usb<br />
<br />
== Mustek ==<br />
<br />
=== BearPaw 2400CU ===<br />
<br />
Works with sane-gt68xx ({{Pkg|sane-gt68xx-firmware}})<br />
<br />
== Samsung ==<br />
For some Samsung MFP printers you may need to edit {{ic|/etc/sane.d/xerox_mfp.conf}}.<br />
<br />
example entry:<br />
#Samsung SCX-3200<br />
usb 0x04e8 0x3441<br />
<br />
Change the printer model as needed. You can get the idVendor and idProduct code with {{ic|lsusb}}. See [https://bbs.archlinux.org/viewtopic.php?id=123934 this thread].<br />
<br />
To access the scanner over the network rather than the usb interface, add a line to {{ic|/etc/sane.d/xerox_mfp.conf}} such as<br />
<br />
#Samsung scx4500w wireless ip network address<br />
tcp xx.xx.xx.xx<br />
<br />
where xx.xx.xx.xx is the static ip address of the printer.</div>Cdwijshttps://wiki.archlinux.org/index.php?title=SANE/Scanner-specific_problems&diff=518242SANE/Scanner-specific problems2018-04-22T06:37:55Z<p>Cdwijs: change download location to point to the medion site</p>
<hr />
<div>[[Category:Imaging]]<br />
[[ja:SANE/スキャナー別の問題]]<br />
This article contains scanner or manufacturer-specific instructions for [[SANE]].<br />
<br />
<br />
== Agfa ==<br />
=== Snapscan e40 ===<br />
<br />
Firmware {{ic|Snape40.bin}} from [https://sites.google.com/site/rameyarnaud/media/books/agfa-scanners-with-linux here] is required.<br />
<br />
If USB autosuspend is enabled, the printer may need to be turned off and on again before each scan. USB autosuspend can be disabled using [[powertop]].<br />
<br />
== BenQ/Acer ==<br />
If you own an USB scanner from Acer (now BenQ), you need to download a suitable firmware binary and configure {{ic|/etc/sane.d/snapscan.conf}}.<br />
<br />
* Find out which model you own and take note of the USB ID:<br />
{{hc|$ lsusb|<br />
Bus 002 Device 010: ID 04a5:20b0 Acer Peripherals Inc. (now BenQ Corp.) S2W 3300U/4300U}}<br />
* Go to [http://snapscan.sourceforge.net/ snapscan] main page and see whether your scanner is supported and which firmware you need (e.g, {{ic|u176v046.bin}}).<br />
* Search the firmware image on the Internet and download it to {{ic|/usr/share/sane/snapscan/}}.<br />
* Edit the head of {{ic|/etc/sane.d/snapscan.conf}} and configure the following two lines:<br />
firmware /usr/share/sane/snapscan/u176v046.bin<br />
/dev/usb/scanner0 bus=usb<br />
<br />
== Brother ==<br />
In order to install a Brother scanner or printer/scanner combo you need the right driver. To find the right one, search for your model at the [http://support.brother.com/g/s/id/linux/en/download_scn.html Brother Linux scanner page], or see the information below for scanners that aren't listed on that page.<br />
<br />
Then, install the appropriate package:<br />
* {{AUR|brscan2}}<br />
* {{AUR|brscan3}}<br />
* {{AUR|brscan4}} (MFC-J5620DW)<br />
* {{AUR|libsane-dsseries}}<br />
<br />
Now, the scanner should be recognized by SANE.<br />
<br />
For network scanners, Brother provides a different configuration tool for each brscan version (eg. brsaneconfig2 for brscan2 compatible devices):<br />
# brsaneconfig2 -a name=<ScannerName> model=<ScannerModel> ip=<ScannerIP><br />
Example:<br />
# brsaneconfig2 -a name=SCANNER_DCP770CW model=DCP-770CW ip=192.168.0.110<br />
<br />
=== Network Scanning ===<br />
<br />
In case of network scanning, e.g. by WiFi, Sane may still be unable to find the scanner. If so, you need to specify the IP address of the scanner in the {{ic|/etc/sane.d/net.conf}} file.<br />
<br />
Now use {{ic|scanimage --list-devices}} to check whether sane is able to find your scanner. If not, further check that Sane expects this device through the network (see [http://neithere.net/2013/02/18/archlinux_brother_7860.html]). Check that {{ic|/etc/sane.d/dll.conf}} contains {{ic|brother''X''}}, where the {{ic|''X''}} stands for the brscan version from above. If nothing was found, add {{ic|brother''X''}} to the end of the file.<br />
<br />
=== Invalid argument ===<br />
<br />
If all the necessary packages are installed but you still get the "invalid argument" error this could mean that the configuration file has been corrupted. Run the following command (in case of brscan4):<br />
# brsaneconfig4 -d <br />
<br />
The output should narrow down the problem. Most likely the connection isn't setup correctly. In case of a network scanner check if the IP address is right by opening the {{ic|/etc/opt/brother/scanner/brscan4//brsanenetdevice4.cfg}} with an editor. In case of a USB connection check if the path to the scanner in the configuration file is setup correctly. For that compare the values of the {{ic|lsusb}} command with your configuration file and change them if necessary.<br />
<br />
=== Scan-key-tool ===<br />
<br />
Brother has released a tool to enable scanning to be triggered by user interaction with the scanner itself (e.g. by selecting one of "Scan to email", "Scan to image", etc. on the scanner keypad) rather than by an attached computer. This can be set up by installing the {{aur|brscan-skey}} package and starting {{ic|brscan-skey.service}} [[systemd#Using units|using systemd]]. Note that by default this service runs as the '''brscan-skey''' user which is created by the package, whose home directory is located at {{ic|/srv/brscan-skey}}.<br />
<br />
Brother supplies some default scripts that are executed when a scan type is selected on the keypad. These may require the installation of some optional dependencies of the {{aur|brscan-skey}} package. For all options apart from "Scan to email" the resulting output can be found inside {{ic|$HOME/brscan}}, with {{ic|$HOME}} the home directory of the user running this tool (so {{ic|/srv/brscan-skey}} if started via systemd as a systemwide process).<br />
<br />
It is possible to change what action takes place when a given type of scan is selected on the keypad. This is done by editing {{ic|/opt/brother/scanner/brscan-skey/brscan-skey-0.2.4-0.cfg}}. For each variable {{ic|SCAN_COMMAND}} in {{ic|IMAGE}}, {{ic|OCR}}, {{ic|EMAIL}}, {{ic|FILE}}, the command<br />
<br />
$ $SCAN_COMMAND $SCANNER_DEVICE $SCANNER_FRIENDLY_NAME<br />
<br />
is executed when the corresponding scan type is selected. Note that {{ic|$SCAN_COMMAND}} is not quoted so may specify more than one positional parameter in the final command that is executed. {{ic|$SCANNER_DEVICE}} refers to the name of the device that should be specified to a sane frontend (e.g. via the {{ic|--device-name}} flag when using {{ic|scanimage}}), for example {{ic|brother3:bus4;dev2}}. {{ic|$SCANNER_FRIENDLY_NAME}} is the human-readable name of the scanner.<br />
<br />
=== xsane crashes ===<br />
<br />
{{Accuracy|<br />
*Should be mentioned on AUR page<br />
*This may only be relevant for the Brother DCP-150C scanner}}<br />
If xsane crashes with message "{{ic|1==bugchk_free(ptr==(nil))@brother_modelinf.c(482)}}", then you need to create the link {{ic|/usr/local/Brother -> /usr/share/brother}}.<br />
<br />
== Canon ==<br />
<br />
=== Scanning over the network with Canon Pixma all-in-one printer/scanners ===<br />
<br />
Find out your printer/scanner's IP address, and add it on a new line to {{ic|/etc/sane.d/pixma.conf}} in the format {{ic|bjnp://10.0.0.20}}.<br />
<br />
Sane should now find your device. For more details refer to {{man|5|sane-pixma}}.<br />
<br />
Alternative: for some Canon Pixma all-in-one printer/scanners, which are not detected over network, can be used {{AUR|scangearmp2}} package from AUR.<br />
<br />
== Epson ==<br />
<br />
With Epson scanners, you can use "Image Scan! for Linux".<br />
<br />
* Install the {{Pkg|iscan}} package<br />
* Install the appropriate iscan-plugin package for your scanner (for example, {{AUR|iscan-plugin-gt-x820}} for the Epson Perfection Photo V600)<br />
* Reboot, so that udev will recognize the device as a scanner and apply appropriate permissions<br />
<br />
For network (including Wi-Fi) scanners, install {{Pkg|iscan}} and {{AUR|iscan-plugin-network}}, then edit {{ic|/etc/sane.d/epkowa.conf}} and add the line:<br />
net {IP_OF_SCANNER}<br />
<br />
=== Image Scan v3 ===<br />
<br />
Some models require "Image Scan 3", which is different from "Image Scan! for Linux" and is not available in the official repositores. Install {{Aur|imagescan}} for the base program. It should detect supported USB scanners automatically by default. If you want to make use of a network scanner you also have to install {{Aur|imagescan-plugin-networkscan}}. Then edit {{ic|/etc/utsushi/utsushi.conf}}, and enter the ip address of your scanner to it.<br />
<br />
[devices]<br />
myscanner.udi = esci:networkscan://<ip-address-here>:1865<br />
myscanner.vendor = Epson<br />
myscanner.model = Model-name<br />
<br />
When you then start Image Scan v3, the name of the scan should be visible in the top left corner. If a connection problem happened, an error dialog will be shown.<br />
<br />
=== Epson Perfection V550 Photo ===<br />
<br />
Install {{aur|iscan-plugin-perfection-v550}}<br />
<br />
=== Epson Perfection 1270 ===<br />
<br />
For Epson Perfection 1270, you also need a firmware named {{ic|esfw3e.bin}}. It can be obtained by installing the Windows driver.<br />
<br />
Modify the configuration file of the snapscan backend, {{ic|/etc/sane.d/snapscan.conf}}. Change the firmware path line with yours:<br />
<br />
# Change to the fully qualified filename of your firmware file, if<br />
# firmware upload is needed by the scanner<br />
firmware /mnt/mydata/Backups/firmware/esfw3e.bin<br />
<br />
And add the following line in the end or anywhere you like<br />
<br />
# Epson Perfection 1270<br />
usb 0x04b8 0x0120<br />
<br />
You can get such code information ({{ic|usb 0x04b8 0x0120}}) by ''sane-find-scanner'' command.<br />
<br />
Also add such information lines to {{ic|/etc/hotplug/usb/libsane.usermap}} to setup your privilege, like:<br />
<br />
# Epson Perfection 1270<br />
libusbscanner 0x0003 0x04b8 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000<br />
<br />
Replug scanner, you have a working Epson Perfection 1270 now.<br />
<br />
{{Note|I can scan image if I define the X and Y value, but without that error message occurs like: {{ic|scanimage: sane_start: Error during device I/O}}, if anyone knows any other reasons, please add them to this section.}}<br />
<br />
* To prevent {{ic|scanimage: sane_start: Error during device I/O}} and hangup of the scanner itself, when trying to scan with ADF (automatic document feed) enabled, I had to remove or comment out all Backends from {{ic|/etc/sane.d/dll.conf}} and instead just add this to the file: {{bc|snapscan}}<br />
<br />
If you still get the {{ic|Error during device I/O}} messages check that the transportation lock of the scanner (on the bottom of the scanner) is open.<br />
<br />
=== Epson Perfection 1670/2480/2580/3490/3590 ===<br />
<br />
{{Note|Installation instructions were only tested for Epson Perfection 3590 but should be similar to the other models. Check the instructions above and the links below and edit this wiki page if you can verify that your scanner works.}}<br />
<br />
Make sure to download the correct firmware for your Epson model. You can get an overview of some models and their drivers [https://wiki.ubuntuusers.de/Scanner/Epson%20Perfection/#Unterstuetze-Geraete here] and [http://snapscan.sourceforge.net/ here]. The download links of the firmware are broken, but you can use [https://wiki.ubuntuusers.de/Scanner/Epson_Perfection/Esfw52.bin/ this link] as alternative instead. Make sure to change the firmware filename of the link suiting your model. If you want to download and extract the firmware sources from the official epson sites yourself you can use [https://forum.ubuntuusers.de/topic/epson-perfection-3490-photo-on-ubuntu-9-04-64/ this guide].<br />
<br />
As an alternative you can also install the AUR package {{AUR|sane-epson-perfection-firmware}} which will download the firmware from the official sources, extract the binary and install those to {{ic|/usr/share/sane/snapscan/}}.<br />
<br />
Modify the configuration file of the snapscan backend, {{ic|/etc/sane.d/snapscan.conf}}. Change the firmware path line with yours:<br />
<br />
# Change to the fully qualified filename of your firmware file, if<br />
# firmware upload is needed by the scanner<br />
firmware /usr/share/sane/snapscan/esfw52.bin<br />
<br />
Other modifications were not needed for the Epson Perfection 3590 and might not be for other models as well. If you still have problems it can also help if you [[SANE#Multiple_backends_claim_scanner|completely remove]] the {{Pkg|iscan}} package.<br />
<br />
== Fujitsu ==<br />
<br />
=== S300M ===<br />
<br />
For the operation of the scanner S300M a firmware file {{ic|/usr/share/sane/epjitsu/300M_0C00.nal}} is required, which can be downloaded [http://sange.fi/~atehwa/cgi-bin/piki.cgi/fujitsu%20scansnap%20s300%20firmware here], or extracted from the Windows driver.<br />
<br />
== HP ==<br />
<br />
If your HP device [http://hplipopensource.com/hplip-web/supported_devices/index.html is supported by hplip], [[install]] the {{Pkg|hplip}} package.<br />
<br />
The latter comes with 3 tools:<br />
* ''hp-setup'' to add and setup the device<br />
* ''hp-plugin'' is the 'HPLIP Plugin Download and Install Utility'.<br />
* ''hp-scan'' is the 'HPLIP Scan Utility'. If you need that tool, you will need to install {{Pkg|python-pillow}}.<br />
<br />
''hp-setup'' requires Python Qt4 when run using the GUI (which is the default). To avoid installing the old Qt4 toolchain, you can run the CLI interface of hp-setup using {{ic|-i}} as argument.<br />
<br />
If the device is connected by USB, run ''hp-setup'' as root and follow the on screen instructions.<br />
<br />
If your device is connected on the network, use {{ic|# hp-setup <printer ip>}} instead.<br />
<br />
=== Alternative way to scan with network HP scanner ===<br />
<br />
* Find out IP address of your network HP scanner, for example ''192.168.1.8''<br />
* Make device URI using hp-makeuri utility:<br />
<br />
hp-makeuri 192.168.1.8<br />
<br />
* Output should look like ''hpaio:/net/DeskJet_3630_series?ip=192.168.1.8''<br />
* This URI could be given to xsane or scanimage tools, for example:<br />
<br />
xsane "hpaio:/net/DeskJet_3630_series?ip=192.168.1.8"<br />
scanimage --device "hpaio:/net/DeskJet_3630_series?ip=10.12.129.6" --format=png --resolution 300 >scan01.png<br />
<br />
== Medion ==<br />
If you own the USB scanner MD 9705 from Medion, you need to download a suitable firmware binary. This firmware file is in the device driver for Windows.<br />
<br />
* Find out which model you own and take note of the USB ID:<br />
{{hc|$ lsusb|<br />
Bus 006 Device 007: ID 05d8:4003 Ultima Electronics Corp. Artec E+ 48U}}<br />
Download the windows driver from http://www1.medion.de/downloads/download.pl?lang=uk&filename=scamd9705w9xxp.exe&id=1283&type=treiber<br />
Then enter the following commands to extract the firmware file, and copy it to the location SANE expects it:<br />
unzip scamd9705w9xxp.exe Win2000/Artec48.usb<br />
sudo cp Win2000/Artec48.usb /usr/share/sane/artec_eplus48u/Artec48.usb<br />
<br />
== Mustek ==<br />
<br />
=== BearPaw 2400CU ===<br />
<br />
Works with sane-gt68xx ({{Pkg|sane-gt68xx-firmware}})<br />
<br />
== Samsung ==<br />
For some Samsung MFP printers you may need to edit {{ic|/etc/sane.d/xerox_mfp.conf}}.<br />
<br />
example entry:<br />
#Samsung SCX-3200<br />
usb 0x04e8 0x3441<br />
<br />
Change the printer model as needed. You can get the idVendor and idProduct code with {{ic|lsusb}}. See [https://bbs.archlinux.org/viewtopic.php?id=123934 this thread].<br />
<br />
To access the scanner over the network rather than the usb interface, add a line to {{ic|/etc/sane.d/xerox_mfp.conf}} such as<br />
<br />
#Samsung scx4500w wireless ip network address<br />
tcp xx.xx.xx.xx<br />
<br />
where xx.xx.xx.xx is the static ip address of the printer.</div>Cdwijshttps://wiki.archlinux.org/index.php?title=SANE/Scanner-specific_problems&diff=518235SANE/Scanner-specific problems2018-04-22T05:51:00Z<p>Cdwijs: Added actions to get the firmware file for the Medion MD 9705,artec_eplus48u</p>
<hr />
<div>[[Category:Imaging]]<br />
[[ja:SANE/スキャナー別の問題]]<br />
This article contains scanner or manufacturer-specific instructions for [[SANE]].<br />
<br />
<br />
== Agfa ==<br />
=== Snapscan e40 ===<br />
<br />
Firmware {{ic|Snape40.bin}} from [https://sites.google.com/site/rameyarnaud/media/books/agfa-scanners-with-linux here] is required.<br />
<br />
If USB autosuspend is enabled, the printer may need to be turned off and on again before each scan. USB autosuspend can be disabled using [[powertop]].<br />
<br />
== BenQ/Acer ==<br />
If you own an USB scanner from Acer (now BenQ), you need to download a suitable firmware binary and configure {{ic|/etc/sane.d/snapscan.conf}}.<br />
<br />
* Find out which model you own and take note of the USB ID:<br />
{{hc|$ lsusb|<br />
Bus 002 Device 010: ID 04a5:20b0 Acer Peripherals Inc. (now BenQ Corp.) S2W 3300U/4300U}}<br />
* Go to [http://snapscan.sourceforge.net/ snapscan] main page and see whether your scanner is supported and which firmware you need (e.g, {{ic|u176v046.bin}}).<br />
* Search the firmware image on the Internet and download it to {{ic|/usr/share/sane/snapscan/}}.<br />
* Edit the head of {{ic|/etc/sane.d/snapscan.conf}} and configure the following two lines:<br />
firmware /usr/share/sane/snapscan/u176v046.bin<br />
/dev/usb/scanner0 bus=usb<br />
<br />
== Brother ==<br />
In order to install a Brother scanner or printer/scanner combo you need the right driver. To find the right one, search for your model at the [http://support.brother.com/g/s/id/linux/en/download_scn.html Brother Linux scanner page], or see the information below for scanners that aren't listed on that page.<br />
<br />
Then, install the appropriate package:<br />
* {{AUR|brscan2}}<br />
* {{AUR|brscan3}}<br />
* {{AUR|brscan4}} (MFC-J5620DW)<br />
* {{AUR|libsane-dsseries}}<br />
<br />
Now, the scanner should be recognized by SANE.<br />
<br />
For network scanners, Brother provides a different configuration tool for each brscan version (eg. brsaneconfig2 for brscan2 compatible devices):<br />
# brsaneconfig2 -a name=<ScannerName> model=<ScannerModel> ip=<ScannerIP><br />
Example:<br />
# brsaneconfig2 -a name=SCANNER_DCP770CW model=DCP-770CW ip=192.168.0.110<br />
<br />
=== Network Scanning ===<br />
<br />
In case of network scanning, e.g. by WiFi, Sane may still be unable to find the scanner. If so, you need to specify the IP address of the scanner in the {{ic|/etc/sane.d/net.conf}} file.<br />
<br />
Now use {{ic|scanimage --list-devices}} to check whether sane is able to find your scanner. If not, further check that Sane expects this device through the network (see [http://neithere.net/2013/02/18/archlinux_brother_7860.html]). Check that {{ic|/etc/sane.d/dll.conf}} contains {{ic|brother''X''}}, where the {{ic|''X''}} stands for the brscan version from above. If nothing was found, add {{ic|brother''X''}} to the end of the file.<br />
<br />
=== Invalid argument ===<br />
<br />
If all the necessary packages are installed but you still get the "invalid argument" error this could mean that the configuration file has been corrupted. Run the following command (in case of brscan4):<br />
# brsaneconfig4 -d <br />
<br />
The output should narrow down the problem. Most likely the connection isn't setup correctly. In case of a network scanner check if the IP address is right by opening the {{ic|/etc/opt/brother/scanner/brscan4//brsanenetdevice4.cfg}} with an editor. In case of a USB connection check if the path to the scanner in the configuration file is setup correctly. For that compare the values of the {{ic|lsusb}} command with your configuration file and change them if necessary.<br />
<br />
=== Scan-key-tool ===<br />
<br />
Brother has released a tool to enable scanning to be triggered by user interaction with the scanner itself (e.g. by selecting one of "Scan to email", "Scan to image", etc. on the scanner keypad) rather than by an attached computer. This can be set up by installing the {{aur|brscan-skey}} package and starting {{ic|brscan-skey.service}} [[systemd#Using units|using systemd]]. Note that by default this service runs as the '''brscan-skey''' user which is created by the package, whose home directory is located at {{ic|/srv/brscan-skey}}.<br />
<br />
Brother supplies some default scripts that are executed when a scan type is selected on the keypad. These may require the installation of some optional dependencies of the {{aur|brscan-skey}} package. For all options apart from "Scan to email" the resulting output can be found inside {{ic|$HOME/brscan}}, with {{ic|$HOME}} the home directory of the user running this tool (so {{ic|/srv/brscan-skey}} if started via systemd as a systemwide process).<br />
<br />
It is possible to change what action takes place when a given type of scan is selected on the keypad. This is done by editing {{ic|/opt/brother/scanner/brscan-skey/brscan-skey-0.2.4-0.cfg}}. For each variable {{ic|SCAN_COMMAND}} in {{ic|IMAGE}}, {{ic|OCR}}, {{ic|EMAIL}}, {{ic|FILE}}, the command<br />
<br />
$ $SCAN_COMMAND $SCANNER_DEVICE $SCANNER_FRIENDLY_NAME<br />
<br />
is executed when the corresponding scan type is selected. Note that {{ic|$SCAN_COMMAND}} is not quoted so may specify more than one positional parameter in the final command that is executed. {{ic|$SCANNER_DEVICE}} refers to the name of the device that should be specified to a sane frontend (e.g. via the {{ic|--device-name}} flag when using {{ic|scanimage}}), for example {{ic|brother3:bus4;dev2}}. {{ic|$SCANNER_FRIENDLY_NAME}} is the human-readable name of the scanner.<br />
<br />
=== xsane crashes ===<br />
<br />
{{Accuracy|<br />
*Should be mentioned on AUR page<br />
*This may only be relevant for the Brother DCP-150C scanner}}<br />
If xsane crashes with message "{{ic|1==bugchk_free(ptr==(nil))@brother_modelinf.c(482)}}", then you need to create the link {{ic|/usr/local/Brother -> /usr/share/brother}}.<br />
<br />
== Canon ==<br />
<br />
=== Scanning over the network with Canon Pixma all-in-one printer/scanners ===<br />
<br />
Find out your printer/scanner's IP address, and add it on a new line to {{ic|/etc/sane.d/pixma.conf}} in the format {{ic|bjnp://10.0.0.20}}.<br />
<br />
Sane should now find your device. For more details refer to {{man|5|sane-pixma}}.<br />
<br />
Alternative: for some Canon Pixma all-in-one printer/scanners, which are not detected over network, can be used {{AUR|scangearmp2}} package from AUR.<br />
<br />
== Epson ==<br />
<br />
With Epson scanners, you can use "Image Scan! for Linux".<br />
<br />
* Install the {{Pkg|iscan}} package<br />
* Install the appropriate iscan-plugin package for your scanner (for example, {{AUR|iscan-plugin-gt-x820}} for the Epson Perfection Photo V600)<br />
* Reboot, so that udev will recognize the device as a scanner and apply appropriate permissions<br />
<br />
For network (including Wi-Fi) scanners, install {{Pkg|iscan}} and {{AUR|iscan-plugin-network}}, then edit {{ic|/etc/sane.d/epkowa.conf}} and add the line:<br />
net {IP_OF_SCANNER}<br />
<br />
=== Image Scan v3 ===<br />
<br />
Some models require "Image Scan 3", which is different from "Image Scan! for Linux" and is not available in the official repositores. Install {{Aur|imagescan}} for the base program. It should detect supported USB scanners automatically by default. If you want to make use of a network scanner you also have to install {{Aur|imagescan-plugin-networkscan}}. Then edit {{ic|/etc/utsushi/utsushi.conf}}, and enter the ip address of your scanner to it.<br />
<br />
[devices]<br />
myscanner.udi = esci:networkscan://<ip-address-here>:1865<br />
myscanner.vendor = Epson<br />
myscanner.model = Model-name<br />
<br />
When you then start Image Scan v3, the name of the scan should be visible in the top left corner. If a connection problem happened, an error dialog will be shown.<br />
<br />
=== Epson Perfection V550 Photo ===<br />
<br />
Install {{aur|iscan-plugin-perfection-v550}}<br />
<br />
=== Epson Perfection 1270 ===<br />
<br />
For Epson Perfection 1270, you also need a firmware named {{ic|esfw3e.bin}}. It can be obtained by installing the Windows driver.<br />
<br />
Modify the configuration file of the snapscan backend, {{ic|/etc/sane.d/snapscan.conf}}. Change the firmware path line with yours:<br />
<br />
# Change to the fully qualified filename of your firmware file, if<br />
# firmware upload is needed by the scanner<br />
firmware /mnt/mydata/Backups/firmware/esfw3e.bin<br />
<br />
And add the following line in the end or anywhere you like<br />
<br />
# Epson Perfection 1270<br />
usb 0x04b8 0x0120<br />
<br />
You can get such code information ({{ic|usb 0x04b8 0x0120}}) by ''sane-find-scanner'' command.<br />
<br />
Also add such information lines to {{ic|/etc/hotplug/usb/libsane.usermap}} to setup your privilege, like:<br />
<br />
# Epson Perfection 1270<br />
libusbscanner 0x0003 0x04b8 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000<br />
<br />
Replug scanner, you have a working Epson Perfection 1270 now.<br />
<br />
{{Note|I can scan image if I define the X and Y value, but without that error message occurs like: {{ic|scanimage: sane_start: Error during device I/O}}, if anyone knows any other reasons, please add them to this section.}}<br />
<br />
* To prevent {{ic|scanimage: sane_start: Error during device I/O}} and hangup of the scanner itself, when trying to scan with ADF (automatic document feed) enabled, I had to remove or comment out all Backends from {{ic|/etc/sane.d/dll.conf}} and instead just add this to the file: {{bc|snapscan}}<br />
<br />
If you still get the {{ic|Error during device I/O}} messages check that the transportation lock of the scanner (on the bottom of the scanner) is open.<br />
<br />
=== Epson Perfection 1670/2480/2580/3490/3590 ===<br />
<br />
{{Note|Installation instructions were only tested for Epson Perfection 3590 but should be similar to the other models. Check the instructions above and the links below and edit this wiki page if you can verify that your scanner works.}}<br />
<br />
Make sure to download the correct firmware for your Epson model. You can get an overview of some models and their drivers [https://wiki.ubuntuusers.de/Scanner/Epson%20Perfection/#Unterstuetze-Geraete here] and [http://snapscan.sourceforge.net/ here]. The download links of the firmware are broken, but you can use [https://wiki.ubuntuusers.de/Scanner/Epson_Perfection/Esfw52.bin/ this link] as alternative instead. Make sure to change the firmware filename of the link suiting your model. If you want to download and extract the firmware sources from the official epson sites yourself you can use [https://forum.ubuntuusers.de/topic/epson-perfection-3490-photo-on-ubuntu-9-04-64/ this guide].<br />
<br />
As an alternative you can also install the AUR package {{AUR|sane-epson-perfection-firmware}} which will download the firmware from the official sources, extract the binary and install those to {{ic|/usr/share/sane/snapscan/}}.<br />
<br />
Modify the configuration file of the snapscan backend, {{ic|/etc/sane.d/snapscan.conf}}. Change the firmware path line with yours:<br />
<br />
# Change to the fully qualified filename of your firmware file, if<br />
# firmware upload is needed by the scanner<br />
firmware /usr/share/sane/snapscan/esfw52.bin<br />
<br />
Other modifications were not needed for the Epson Perfection 3590 and might not be for other models as well. If you still have problems it can also help if you [[SANE#Multiple_backends_claim_scanner|completely remove]] the {{Pkg|iscan}} package.<br />
<br />
== Fujitsu ==<br />
<br />
=== S300M ===<br />
<br />
For the operation of the scanner S300M a firmware file {{ic|/usr/share/sane/epjitsu/300M_0C00.nal}} is required, which can be downloaded [http://sange.fi/~atehwa/cgi-bin/piki.cgi/fujitsu%20scansnap%20s300%20firmware here], or extracted from the Windows driver.<br />
<br />
== HP ==<br />
<br />
If your HP device [http://hplipopensource.com/hplip-web/supported_devices/index.html is supported by hplip], [[install]] the {{Pkg|hplip}} package.<br />
<br />
The latter comes with 3 tools:<br />
* ''hp-setup'' to add and setup the device<br />
* ''hp-plugin'' is the 'HPLIP Plugin Download and Install Utility'.<br />
* ''hp-scan'' is the 'HPLIP Scan Utility'. If you need that tool, you will need to install {{Pkg|python-pillow}}.<br />
<br />
''hp-setup'' requires Python Qt4 when run using the GUI (which is the default). To avoid installing the old Qt4 toolchain, you can run the CLI interface of hp-setup using {{ic|-i}} as argument.<br />
<br />
If the device is connected by USB, run ''hp-setup'' as root and follow the on screen instructions.<br />
<br />
If your device is connected on the network, use {{ic|# hp-setup <printer ip>}} instead.<br />
<br />
=== Alternative way to scan with network HP scanner ===<br />
<br />
* Find out IP address of your network HP scanner, for example ''192.168.1.8''<br />
* Make device URI using hp-makeuri utility:<br />
<br />
hp-makeuri 192.168.1.8<br />
<br />
* Output should look like ''hpaio:/net/DeskJet_3630_series?ip=192.168.1.8''<br />
* This URI could be given to xsane or scanimage tools, for example:<br />
<br />
xsane "hpaio:/net/DeskJet_3630_series?ip=192.168.1.8"<br />
scanimage --device "hpaio:/net/DeskJet_3630_series?ip=10.12.129.6" --format=png --resolution 300 >scan01.png<br />
<br />
== Medion ==<br />
If you own the USB scanner MD 9705 from Medion, you need to download a suitable firmware binary. This firmware file is in the device driver for Windows.<br />
<br />
* Find out which model you own and take note of the USB ID:<br />
{{hc|$ lsusb|<br />
Bus 006 Device 007: ID 05d8:4003 Ultima Electronics Corp. Artec E+ 48U}}<br />
Enter the following commands to download the Windows driver, extract the firmware file, and copy it to the location SANE expects it:<br />
wget http://s1.download.net.pl/18160-scamd9705w9xxp.exe<br />
unzip 18160-scamd9705w9xxp.exe Win2000/Artec48.usb<br />
sudo cp Win2000/Artec48.usb /usr/share/sane/artec_eplus48u/Artec48.usb<br />
<br />
== Mustek ==<br />
<br />
=== BearPaw 2400CU ===<br />
<br />
Works with sane-gt68xx ({{Pkg|sane-gt68xx-firmware}})<br />
<br />
== Samsung ==<br />
For some Samsung MFP printers you may need to edit {{ic|/etc/sane.d/xerox_mfp.conf}}.<br />
<br />
example entry:<br />
#Samsung SCX-3200<br />
usb 0x04e8 0x3441<br />
<br />
Change the printer model as needed. You can get the idVendor and idProduct code with {{ic|lsusb}}. See [https://bbs.archlinux.org/viewtopic.php?id=123934 this thread].<br />
<br />
To access the scanner over the network rather than the usb interface, add a line to {{ic|/etc/sane.d/xerox_mfp.conf}} such as<br />
<br />
#Samsung scx4500w wireless ip network address<br />
tcp xx.xx.xx.xx<br />
<br />
where xx.xx.xx.xx is the static ip address of the printer.</div>Cdwijshttps://wiki.archlinux.org/index.php?title=User:Cdwijs/Bootable_stick_with_low-latency_audio_and_DJ_tools&diff=485199User:Cdwijs/Bootable stick with low-latency audio and DJ tools2017-08-13T09:03:08Z<p>Cdwijs: added a very short version of the arch linux install instructions, not yet the bootloader</p>
<hr />
<div>[[:Category:Sound]]<br />
<br />
It's possible to run an arch linux system from a thumb drive. This page is a step-by-step guide to create a system that's geared towards low-latency audio and DJ work running from a thumb drive<br />
<br />
== goals ==<br />
<br />
-Runs from a memory stick<br />
-Runs on as many machines as possible<br />
-persistent home directory<br />
-persistent program directories<br />
-some dirs in RAM<br />
<br />
Optimized for low-latency<br />
Music programs like Ardour, mixxx audacity and the like included<br />
<br />
== Method ==<br />
Use LVM to use 1 or more files on a fat32 partition as physical volumes, and start arch linux from there<br />
<br />
<br />
<br />
== Part 1 install base system on a memory stick==<br />
=== Download arch linux image ===<br />
Download archlinux-2017.08.01-x86_64.iso For more information see [https://www.archlinux.org/download/ Arch Linux Downloads]<br />
=== [optional] virtual box ===<br />
Install virtualbox and the extension pack from [https://www.virtualbox.org/ VirtualBox.org] and install it. Create a new virtual machine with the following options:<br />
name: archUSB<br />
memory: 1GB<br />
hard disk: create, VDI, dynamocally allocated, 8GB, create<br />
Settings: storage, controller:IDE empty: choose virtual optical disk file, archlinux-2017.08.01-x86_64.iso<br />
<br />
=== Boot the (virtual) PC ===<br />
Insert the target memory stick. Optionally, disconnect all other drives from the system to prevent accidental installation on the wrong disk.<br />
Boot the PC<br />
=== Partition and format the memory stick ===<br />
fdisk /dev/sda<br />
mkfs.vfat /dev/sda1<br />
Create 4 files of 1GB each that will hold the LVM pysical volumes:<br />
mkdir /mnt/targetstick<br />
mount /dev/sda1 /mnt/targetstick<br />
cd /mnt/targetstick<br />
dd if=/dev/zero of=./ArchPV1.img bs=1024 count=1M<br />
dd if=/dev/zero of=./ArchPV2.img bs=1024 count=1M<br />
dd if=/dev/zero of=./ArchPV3.img bs=1024 count=1M<br />
dd if=/dev/zero of=./ArchPV4.img bs=1024 count=1M<br />
Loop mount the files. /dev/loop0 is already in use, therefore loop 1 true 4 are used here<br />
losetup /dev/loop1 ArchPV1.img<br />
losetup /dev/loop2 ArchPV2.img<br />
losetup /dev/loop3 ArchPV3.img<br />
losetup /dev/loop4 ArchPV4.img<br />
Partition the 4 loop devices. Create one primary partition with type 8e (Linux LVM)<br />
fdisk /dev/loop1 and then enter the commands: n,p,1,Enter,Enter,t,8e,w,q<br />
fdisk /dev/loop2 and then enter the commands: n,p,1,Enter,Enter,t,8e,w,q<br />
fdisk /dev/loop3 and then enter the commands: n,p,1,Enter,Enter,t,8e,w,q<br />
fdisk /dev/loop4 and then enter the commands: n,p,1,Enter,Enter,t,8e,w,q<br />
partprobe /dev/loop1<br />
partprobe /dev/loop2<br />
partprobe /dev/loop3<br />
partprobe /dev/loop4<br />
Create the physical volumes:<br />
pvcreate /dev/loop1 /dev/loop2 /dev/loop3 /dev/loop4and wipe the dos signature<br />
Create and extend the volume group<br />
vgcreate ArchVG /dev/loop1<br />
vgextend ArchVG /dev/loop2<br />
vgextend ArchVG /dev/loop3<br />
vgextend ArchVG /dev/loop4<br />
Create the logical volume<br />
lvcreate -l 100%VG -nArchLV ArchVG<br />
mkfs.ext4 /dev/mapper/ArchVG-ArchLV (reports an IO error dev loop1, sector 2048)<br />
Mount the filesystem<br />
mkdir /mnt/target<br />
mount /dev/mapper/ArchVG-ArchLV /mnt/target<br />
Install the base system and lvm2<br />
pacstrap /mnt/target base lvm2<br />
genfstab -U /mnt/target /mnt/target/etc/fstab<br />
arch-chroot /mnt/target<br />
Add lvm in /etc/mkinitcpio.conf<br />
mkinitcpio -p linux<br />
passwd<br />
<br />
<br />
== Sources ==<br />
This page uses information from the following sources:<br />
http://valleycat.org/foo/arch-usb.html?i=1<br />
https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on_a_USB_key<br />
https://www.linuxmusicians.com/viewtopic.php?f=19&t=10837<br />
https://wiki.archlinux.org/index.php/Archiso<br />
https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO<br />
https://bitbucket.org/patatetom/didjix/wiki/Home<br />
http://easy.open.and.free.fr/didjix/faq.html<br />
http://www.anthonyldechiaro.com/blog/2010/12/19/lvm-loopback-how-to/<br />
https://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/LV_create.html<br />
https://wiki.archlinux.org/index.php/LVM<br />
https://wiki.archlinux.org/index.php/GRUB<br />
== Forum discussions ==<br />
https://bbs.archlinux.org/viewtopic.php?id=95663 <br />
Aspects of this wiki page is discussed at the following forum threads<br />
https://bbs.archlinux.org/viewtopic.php?id=228644</div>Cdwijshttps://wiki.archlinux.org/index.php?title=User:Cdwijs/Bootable_stick_with_low-latency_audio_and_DJ_tools&diff=485180User:Cdwijs/Bootable stick with low-latency audio and DJ tools2017-08-13T08:36:19Z<p>Cdwijs: Added instructions to create a loopmounted LVM filesystem. (IO erros in the dmesg?)</p>
<hr />
<div>[[:Category:Sound]]<br />
<br />
It's possible to run an arch linux system from a thumb drive. This page is a step-by-step guide to create a system that's geared towards low-latency audio and DJ work running from a thumb drive<br />
<br />
== goals ==<br />
<br />
-Runs from a memory stick<br />
-Runs on as many machines as possible<br />
-persistent home directory<br />
-persistent program directories<br />
-some dirs in RAM<br />
<br />
Optimized for low-latency<br />
Music programs like Ardour, mixxx audacity and the like included<br />
<br />
== Method ==<br />
Use LVM to use 1 or more files on a fat32 partition as physical volumes, and start arch linux from there<br />
<br />
<br />
<br />
== Part 1 install base system on a memory stick==<br />
=== Download arch linux image ===<br />
Download archlinux-2017.08.01-x86_64.iso For more information see [https://www.archlinux.org/download/ Arch Linux Downloads]<br />
=== [optional] virtual box ===<br />
Install virtualbox and the extension pack from [https://www.virtualbox.org/ VirtualBox.org] and install it. Create a new virtual machine with the following options:<br />
name: archUSB<br />
memory: 1GB<br />
hard disk: create, VDI, dynamocally allocated, 8GB, create<br />
Settings: storage, controller:IDE empty: choose virtual optical disk file, archlinux-2017.08.01-x86_64.iso<br />
<br />
=== Boot the (virtual) PC ===<br />
Insert the target memory stick. Optionally, disconnect all other drives from the system to prevent accidental installation on the wrong disk.<br />
Boot the PC<br />
=== Partition and format the memory stick ===<br />
fdisk /dev/sda<br />
mkfs.vfat /dev/sda1<br />
Create 4 files of 1GB each that will hold the LVM pysical volumes:<br />
mkdir /mnt/targetstick<br />
mount /dev/sda1 /mnt/targetstick<br />
cd /mnt/targetstick<br />
dd if=/dev/zero of=./ArchPV1.img bs=1024 count=1M<br />
dd if=/dev/zero of=./ArchPV2.img bs=1024 count=1M<br />
dd if=/dev/zero of=./ArchPV3.img bs=1024 count=1M<br />
dd if=/dev/zero of=./ArchPV4.img bs=1024 count=1M<br />
Loop mount the files. /dev/loop0 is already in use, therefore loop 1 true 4 are used here<br />
losetup /dev/loop1 ArchPV1.img<br />
losetup /dev/loop2 ArchPV2.img<br />
losetup /dev/loop3 ArchPV3.img<br />
losetup /dev/loop4 ArchPV4.img<br />
Partition the 4 loop devices. Create one primary partition with type 8e (Linux LVM)<br />
fdisk /dev/loop1 and then enter the commands: n,p,1,Enter,Enter,t,8e,w,q<br />
fdisk /dev/loop2 and then enter the commands: n,p,1,Enter,Enter,t,8e,w,q<br />
fdisk /dev/loop3 and then enter the commands: n,p,1,Enter,Enter,t,8e,w,q<br />
fdisk /dev/loop4 and then enter the commands: n,p,1,Enter,Enter,t,8e,w,q<br />
partprobe /dev/loop1<br />
partprobe /dev/loop2<br />
partprobe /dev/loop3<br />
partprobe /dev/loop4<br />
Create the physical volumes:<br />
pvcreate /dev/loop1 /dev/loop2 /dev/loop3 /dev/loop4and wipe the dos signature<br />
Create and extend the volume group<br />
vgcreate ArchVG /dev/loop1<br />
vgextend ArchVG /dev/loop2<br />
vgextend ArchVG /dev/loop3<br />
vgextend ArchVG /dev/loop4<br />
Create the logical volume<br />
lvcreate -l 100%VG -nArchLV ArchVG<br />
mkfs.ext4 /dev/mapper/ArchVG-ArchLV (reports an IO error dev loop1, sector 2048)<br />
Mount the filesystem<br />
mkdir /mnt/target<br />
mount /dev/mapper/ArchVG-ArchLV /mnt/target<br />
<br />
<br />
<br />
== Sources ==<br />
This page uses information from the following sources:<br />
http://valleycat.org/foo/arch-usb.html?i=1<br />
https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on_a_USB_key<br />
https://www.linuxmusicians.com/viewtopic.php?f=19&t=10837<br />
https://wiki.archlinux.org/index.php/Archiso<br />
https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO<br />
https://bitbucket.org/patatetom/didjix/wiki/Home<br />
http://easy.open.and.free.fr/didjix/faq.html<br />
http://www.anthonyldechiaro.com/blog/2010/12/19/lvm-loopback-how-to/<br />
https://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/LV_create.html<br />
== Forum discussions ==<br />
https://bbs.archlinux.org/viewtopic.php?id=95663 <br />
Aspects of this wiki page is discussed at the following forum threads<br />
https://bbs.archlinux.org/viewtopic.php?id=228644</div>Cdwijshttps://wiki.archlinux.org/index.php?title=User:Cdwijs/Bootable_stick_with_low-latency_audio_and_DJ_tools&diff=485087User:Cdwijs/Bootable stick with low-latency audio and DJ tools2017-08-13T04:31:00Z<p>Cdwijs: added thread</p>
<hr />
<div>[[:Category:Sound]]<br />
<br />
It's possible to run an arch linux system from a thumb drive. This page is a step-by-step guide to create a system that's geared towards low-latency audio and DJ work running from a thumb drive<br />
<br />
== goals ==<br />
<br />
-Runs from a memory stick<br />
-Runs on as many machines as possible<br />
-persistent home directory<br />
-persistent program directories<br />
-some dirs in RAM<br />
<br />
Optimized for low-latency<br />
Music programs like Ardour, mixxx audacity and the like included<br />
<br />
== Sources ==<br />
This page uses information from the following sources:<br />
http://valleycat.org/foo/arch-usb.html?i=1<br />
https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on_a_USB_key<br />
https://www.linuxmusicians.com/viewtopic.php?f=19&t=10837<br />
https://wiki.archlinux.org/index.php/Archiso<br />
https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO<br />
https://bitbucket.org/patatetom/didjix/wiki/Home<br />
http://easy.open.and.free.fr/didjix/faq.html<br />
http://www.anthonyldechiaro.com/blog/2010/12/19/lvm-loopback-how-to/<br />
== Forum discussions ==<br />
https://bbs.archlinux.org/viewtopic.php?id=95663 <br />
Aspects of this wiki page is discussed at the following forum threads<br />
https://bbs.archlinux.org/viewtopic.php?id=228644</div>Cdwijshttps://wiki.archlinux.org/index.php?title=User:Cdwijs/Bootable_stick_with_low-latency_audio_and_DJ_tools&diff=485086User:Cdwijs/Bootable stick with low-latency audio and DJ tools2017-08-13T04:26:35Z<p>Cdwijs: added new site</p>
<hr />
<div>[[:Category:Sound]]<br />
<br />
It's possible to run an arch linux system from a thumb drive. This page is a step-by-step guide to create a system that's geared towards low-latency audio and DJ work running from a thumb drive<br />
<br />
== goals ==<br />
<br />
-Runs from a memory stick<br />
-Runs on as many machines as possible<br />
-persistent home directory<br />
-persistent program directories<br />
-some dirs in RAM<br />
<br />
Optimized for low-latency<br />
Music programs like Ardour, mixxx audacity and the like included<br />
<br />
== Sources ==<br />
This page uses information from the following sources:<br />
http://valleycat.org/foo/arch-usb.html?i=1<br />
https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on_a_USB_key<br />
https://www.linuxmusicians.com/viewtopic.php?f=19&t=10837<br />
https://wiki.archlinux.org/index.php/Archiso<br />
https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO<br />
https://bitbucket.org/patatetom/didjix/wiki/Home<br />
http://easy.open.and.free.fr/didjix/faq.html<br />
http://www.anthonyldechiaro.com/blog/2010/12/19/lvm-loopback-how-to/<br />
<br />
== Forum discussions ==<br />
Aspects of this wiki page is discussed at the following forum threads<br />
https://bbs.archlinux.org/viewtopic.php?id=228644</div>Cdwijshttps://wiki.archlinux.org/index.php?title=User:Cdwijs/Bootable_stick_with_low-latency_audio_and_DJ_tools&diff=483735User:Cdwijs/Bootable stick with low-latency audio and DJ tools2017-08-03T19:42:24Z<p>Cdwijs: Initial page, only placeholders for now</p>
<hr />
<div>[[Category:Sound]]<br />
<br />
It's possible to run an arch linux system from a thumb drive. This page is a step-by-step guide to create a system that's geared towards low-latency audio and DJ work running from a thumb drive<br />
<br />
== goals ==<br />
<br />
-Runs from a memory stick<br />
-Runs on as many machines as possible<br />
-persistent home directory<br />
-persistent program directories<br />
-some dirs in RAM<br />
<br />
Optimized for low-latency<br />
Music programs like Ardour, mixxx audacity and the like included<br />
<br />
== Sources ==<br />
This page uses information from the following sources:<br />
http://valleycat.org/foo/arch-usb.html?i=1<br />
https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on_a_USB_key<br />
https://www.linuxmusicians.com/viewtopic.php?f=19&t=10837<br />
https://wiki.archlinux.org/index.php/Archiso<br />
https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO<br />
https://bitbucket.org/patatetom/didjix/wiki/Home<br />
http://easy.open.and.free.fr/didjix/faq.html<br />
<br />
== Forum discussions ==<br />
Aspects of this wiki page is discussed at the following forum threads<br />
https://bbs.archlinux.org/viewtopic.php?id=228644</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Bftpd&diff=377234Bftpd2015-06-03T09:29:31Z<p>Cdwijs: Created new page to hold information howto use and configure bftpd ftp server</p>
<hr />
<div>[[Category:File Transfer Protocol]]<br />
[[cs:Small, easy-to-configure FTP server]]<br />
[[es:Small, easy-to-configure FTP server]]<br />
[[it:Small, easy-to-configure FTP server]]<br />
[[ru:Small, easy-to-configure FTP server]]<br />
[[zh-CN:Small, easy-to-configure FTP server]]<br />
'''bftpd''' is a Small, easy-to-configure FTP server for UNIX-like systems.<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] {{pkg|bftpd}} from [[Official repositories]].<br />
<br />
[[systemd#Using units|Start/Enable]] the {{ic|vsftpd.service}} daemon.<br />
<br />
See the [[#Using xinetd]] for procedures to use vsftpd with xinetd.<br />
<br />
== Configuration ==<br />
Most of the settings in bftpd are done by editing the file {{ic|/etc/btfpd.conf}}. <br />
<br />
== Tips and tricks ==<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
<br />
== See also ==<br />
* [http://bftpd.sourceforge.net/ bftpd official homepage]<br />
* [http://bftpd.sourceforge.net/doc/en/bftpd-tutorial.html bftpd tutorial]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Talk:VDR&diff=331387Talk:VDR2014-08-20T13:19:22Z<p>Cdwijs: Is a port from the debian wiki page wanted?</p>
<hr />
<div>[[User:Cdwijs|Cdwijs]] ([[User talk:Cdwijs|talk]]) 13:19, 20 August 2014 (UTC)<br />
Hi All,<br />
<br />
I have created a guide for VDR at the wiki of debian:<br />
https://wiki.debian.org/VDR<br />
I am planning to port this quide to the arch linux article of VDR. This will alter the structure of the arch linux article considerably.<br />
https://wiki.archlinux.org/index.php/VDR<br />
<br />
Is the structure of the debian article good enough to do this?<br />
Kind regards,<br />
Cedric<br />
<br />
== Few of my thoughts ==<br />
<br />
I'm thinking about editing the vdr page, I'm not sure about the guidelines of the wiki, I don't want to waste my time adding information that an experienced user will find unnecessary and will delete from the wiki, so I'm pasting here my thoughts to get approval & remarks.<br />
<br />
# Beginners friendly approach (as I'm one), adding full steps & how to, meaning if two plugins requires the same steps then still add steps for both plugins.<br />
# On the Contents main tree adding a Frontends tag and moving frontends info & setup setting to that location.<br />
# On the Contents main tree adding a Plugins tag with sub-tags depends on functionality & backend/frontend relevance.<br />
# Attempt to include most of the plugins that included in the ArchVDR team repository.<br />
<br />
[[User:Dhead|Dhead]] ([[User talk:Dhead|talk]]) 22:59, 27 September 2012 (UTC)<br />
<br />
:Hi and welcome! About the guidelines, you may start by reading [[Help:Editing]] and [[Help:Style]]: for example I've edited your own post above improving the usage of wiki syntax, in particular note that you should use &lt;br> only in very rare cases.<br />
:Then, if you plan to make big changes to the article, please make sure to split them in several edits, each appropriately commented in the Edit "Summary" field.<br />
:If you're in doubt about something, don't be afraid of asking ;)<br />
:-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:41, 29 September 2012 (UTC)<br />
<br />
Why is noad removed? Did it not work? <br />
This is the last revision before it was removed by Sudokode <br />
https://wiki.archlinux.org/index.php?title=VDR&oldid=206316<br />
<br />
== Some issues that I've found ==<br />
<br />
Hello.<br />
I just tried to follow the guide.<br><br />
When I got to the svn part I got an error.<br><br />
"svn co https://archvdr.svn.sourceforge.net/svnroot/archvdr archvdr" is not working on my end giving me a "Repository moved permanently" message.<br><br />
Then I tried "svn co https://svn.code.sf.net/p/archvdr/code/trunk/ archvdr" and it worked.<br><br />
Maybe it needs editing?<br />
Am too noob to make up my mind and edit the wiki.<br><br />
Thanks for your time.<br><br />
[[User:John3voltas|John3voltas]] ([[User talk:John3voltas|talk]]) 01:01, 4 November 2013 (UTC)<br />
<br />
Hi. I just hit another issue here.<br><br />
When I makepkg the start-stop-daemon I get a "Error: Failure while downloading dpkg_1.15.8.11.tar.bz2" message.<br><br />
After examining http://ftp.debian.org/debian/pool/main/d/dpkg/ I found out that dpkg_1.15.8.11.tar.bz2 isn't there (any longer?).<br><br />
Shall I edit PKGBUILD to "pkgver=1.15.8.13" as well as the "md5sum=" to the current MD5 of the 1.15.8.13?<br><br />
By the way, why would we use a start-stop-daemon when we have systemd?<br><br />
EDIT: just tried with tried 1.15.8.13 and it errored on me "A failure occurred in build ().". After this I will need some assistance.<br />
Thanks in advance.<br><br />
[[User:John3voltas|John3voltas]] ([[User talk:John3voltas|talk]]) 02:01, 4 November 2013 (UTC)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Rsync&diff=265438Rsync2013-07-08T06:42:38Z<p>Cdwijs: typo</p>
<hr />
<div>{{Lowercase_title}}<br />
[[Category:Data compression and archiving]]<br />
[[Category:Networking]]<br />
[[Category:System recovery]]<br />
[[zh-CN:Rsync]]<br />
{{Article summary start}}<br />
{{Article summary text|Instructions on using rsync.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Full System Backup with rsync}}<br />
{{Article summary wiki|Backup Programs}}<br />
{{Article summary end}}<br />
<br />
[http://samba.anu.edu.au/rsync/ rsync] is an open source utility that provides fast incremental file transfer.<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] the {{Pkg|rsync}} from the [[official repositories]].<br />
<br />
== Usage ==<br />
<br />
For more examples, search the [https://bbs.archlinux.org/viewforum.php?id=27 Community Contributions] and [https://bbs.archlinux.org/viewforum.php?id=33 General Programming] forums.<br />
<br />
=== As a cp alternative ===<br />
<br />
rsync can be used as an advanced alternative for the {{ic|cp}} command, especially for copying larger files:<br />
<br />
$ rsync -P source destination<br />
<br />
The {{ic|-P}} option is the same as {{Ic|--partial --progress}}, which keeps partially transferred files and shows a progress bar during transfer.<br />
<br />
You may want to use the {{ic|-r --recursive}} option to recurse into directories, or the {{ic|-R}} option for using relative path names (recreating entire folder hierarchy on the destination folder).<br />
<br />
=== As a backup utility ===<br />
<br />
The rsync protocol can easily be used for backups, only transferring files that have changed since the last backup. This section describes a very simple scheduled backup script using rsync, typically used for copying to removable media. For a more thorough example and '''additional options required to preserve some system files''', see [[Full System Backup with rsync]].<br />
<br />
==== Automated backup ====<br />
<br />
For the sake of this example, the script is created in the {{ic|/etc/cron.daily}} directory, and will be run on a daily basis if a cron [[daemon]] is installed and properly configured. Configuring and using [[cron]] is outside the scope of this article.<br />
<br />
First, create a script containing the appropriate command options:<br />
<br />
{{hc|/etc/cron.daily/backup|<br />
#!/bin/bash<br />
rsync -a --delete /folder/to/backup /location/to/backup &> /dev/null}}<br />
<br />
; {{ic|-a}} : indicates that files should be archived, meaning that most of their characteristics are preserved (but '''not''' ACLs, hard links or extended attributes such as capabilities)<br />
; {{ic|--delete}} : means files deleted on the source are to be deleted on the backup as well<br />
<br />
Here, {{ic|/folder/to/backup}} should be changed to what needs to be backed-up ({{ic|/home}}, for example) and {{ic|/location/to/backup}} is where the backup should be saved ({{ic|/media/disk}}, for instance).<br />
<br />
Finally, the script must be executable:<br />
<br />
# chmod +x /etc/cron.daily/rsync.backup<br />
<br />
==== Automated backup with SSH ====<br />
<br />
If backing-up to a remote host using [[SSH]], use this script instead:<br />
<br />
{{hc|/etc/cron.daily/backup|<br />
#!/bin/bash<br />
rsync -a --delete -e ssh /folder/to/backup remoteuser@remotehost:/location/to/backup &> /dev/null}}<br />
<br />
; {{ic|-e ssh}} : tells rsync to use SSH<br />
; {{ic|remoteuser}} : is the user on the host {{ic|remotehost}}<br />
; {{ic|-a}} : groups all these options {{ic|-rlptgoD}} (recursive, links, perms, times, group, owner, devices)<br />
<br />
==== Automated backup with NetworkManager ====<br />
<br />
This script starts a backup when you plugin your wire.<br />
<br />
First, create a script containing the appropriate command options:<br />
<br />
{{hc|/etc/NetworkManager/dispatcher.d/backup|2=<br />
#!/bin/bash<br />
<br />
if [ x"$2" = "xup" ] ; then<br />
rsync --force --ignore-errors -a --delete --bwlimit=2000 --files-from=files.rsync /folder/to/backup /location/to/backup<br />
fi}}<br />
<br />
; {{ic|-a}} : group all this options {{ic|-rlptgoD}} recursive, links, perms, times, group, owner, devices<br />
; {{ic|--files-from}} : read the relative path of ''/folder/to/backup'' from this file<br />
; {{ic|--bwlimit}} : limit I/O bandwidth; KBytes per second<br />
<br />
==== Automated backup with systemd and inotify ====<br />
<br />
{{Note|<br />
* Due to the limitations of inotify and systemd (see [http://www.quora.com/Linux-Kernel/Inotify-monitoring-of-directories-is-not-recursive-Is-there-any-specific-reason-for-this-design-in-Linux-kernel this question and answer]), recursive filesystem monitoring is not possible. Although you can watch a directory and its contents, it will not recurse into subdirectories and watch the contents of them; you must explicitly specify every directory to watch, even if that directory is a child of an already watched directory.<br />
* This setup is based on a [[systemd/User]] instance.<br />
}}<br />
<br />
Instead of running time interval backups with time based schedules, such as those implemented in [[cron]], it is possible to run a backup every time one of the files you're backing up changes. {{ic|systemd.path}} units use {{ic|inotify}} to monitor the filesystem, and can be used in conjunction with {{ic|systemd.service}} files to start any process (in this case your [[rsync]] backup) based on a filesystem event.<br />
<br />
First, create the {{ic|systemd.path}} file that will monitor the files you're backing up:<br />
<br />
{{hc|~/.config/systemd/user/backup.path|<nowiki><br />
[Unit]<br />
Description=Checks if paths that are currently being backed up have changed<br />
<br />
[Path]<br />
PathChanged=%h/documents<br />
PathChanged=%h/music<br />
<br />
[Install]<br />
WantedBy=default.target</nowiki>}}<br />
<br />
Then create a {{ic|systemd.service}} file that will be activated when it detects a change. By default a service file of the same name as the path unit (in this case {{ic|backup.path}}) will be activated, except with the {{ic|.service}} extension instead of {{ic|.path}} (in this case {{ic|backup.service}}).<br />
<br />
{{Note|If you need to run multiple rsync commands, use {{ic|1=Type=oneshot}}. This allows you to specify multiple {{ic|1=ExecStart=}} parameters, one for each [[rsync]] command, that will be executed. Alternatively, you can simply write a script to perform all of your backups, just like [[cron]] scripts.}}<br />
<br />
{{hc|~/.config/systemd/user/backup.service|<nowiki><br />
[Unit]<br />
Description=Backs up files<br />
<br />
[Service]<br />
ExecStart=/usr/bin/rsync %h/./documents %h/./music -CERrltm --delete ubuntu:</nowiki>}}<br />
<br />
Now all you have to do is start/enable {{ic|backup.path}} like a normal systemd service and it will start monitoring file changes and automatically starting {{ic|backup.service}}:<br />
<br />
{{bc|systemctl --user start backup.path<br />
systemctl --user enable backup.path}}<br />
<br />
==== Differential backup on a week ====<br />
<br />
This is a useful option of rsync, creating a full backup and a differential backup for each day of a week.<br />
<br />
First, create a script containing the appropriate command options:<br />
<br />
{{hc|/etc/cron.daily/backup|2=<br />
#!/bin/bash<br />
<br />
DAY=$(date +%A)<br />
<br />
if [ -e /location/to/backup/incr/$DAY ] ; then<br />
rm -fr /location/to/backup/incr/$DAY<br />
fi<br />
<br />
rsync -a --delete --inplace --backup --backup-dir=/location/to/backup/incr/$DAY /folder/to/backup/ /location/to/backup/full/ &> /dev/null}}<br />
<br />
; {{ic|--inplace}} : implies {{ic|--partial}} update destination files in-place<br />
<br />
==== Snapshot backup ====<br />
<br />
The same idea can be used to maintain a tree of snapshots of your files. In other words, a directory with date-ordered copies of the files. The copies are made using hardlinks, which means that only files that did change will occupy space. Generally speaking, this is the idea behind Apple's TimeMachine.<br />
<br />
This script implements a simple version of it:<br />
<br />
{{hc|/usr/local/bin/rsnapshot.sh|<nowiki><br />
#!/bin/bash<br />
<br />
## my own rsync-based snapshot-style backup procedure<br />
## (cc) marcio rps AT gmail.com<br />
<br />
# config vars<br />
<br />
SRC="/home/username/files/" #dont forget trailing slash!<br />
SNAP="/snapshots/username"<br />
OPTS="-rltgoi --delay-updates --delete --chmod=a-w"<br />
MINCHANGES=20<br />
<br />
# run this process with real low priority<br />
<br />
ionice -c 3 -p $$<br />
renice +12 -p $$<br />
<br />
# sync<br />
<br />
rsync $OPTS $SRC $SNAP/latest >> $SNAP/rsync.log<br />
<br />
# check if enough has changed and if so<br />
# make a hardlinked copy named as the date<br />
<br />
COUNT=$( wc -l $SNAP/rsync.log|cut -d" " -f1 )<br />
if [ $COUNT -gt $MINCHANGES ] ; then<br />
DATETAG=$(date +%Y-%m-%d)<br />
if [ ! -e $SNAP/$DATETAG ] ; then<br />
cp -al $SNAP/latest $SNAP/$DATETAG<br />
chmod u+w $SNAP/$DATETAG<br />
mv $SNAP/rsync.log $SNAP/$DATETAG<br />
chmod u-w $SNAP/$DATETAG<br />
fi<br />
fi<br />
</nowiki>}}<br />
<br />
To make things really, really simple this script can be run from a systemd unit.</div>Cdwijshttps://wiki.archlinux.org/index.php?title=GEDA&diff=246855GEDA2013-02-08T20:23:49Z<p>Cdwijs: </p>
<hr />
<div>[[Category:Mathematics and science]]<br />
{{Stub}}<br />
<br />
The gEDA project has produced and continues working on a full GPL'd suite and toolkit of Electronic Design Automation tools. These tools are used for electrical circuit design, schematic capture, simulation, prototyping, and production. Currently, the gEDA project offers a mature suite of free software applications for electronics design, including schematic capture, attribute management, bill of materials (BOM) generation, netlisting into over 20 netlist formats, analog and digital simulation, and printed circuit board (PCB) layout.<br />
<br />
The gEDA project was started because of the lack of free EDA tools for POSIX systems with the primary purpose of advancing the state of free hardware or open source hardware. The suite is mainly being developed on the GNU/Linux platform with some development effort going into making sure the tools run on other platforms as well.<br />
<br />
(Source: [http://www.gpleda.org/ gEDA homepage])<br />
<br />
== Installation ==<br />
Installing {{pkg|geda-gaf}} will give you the schematic editor and attribute editor, which is available in the [[official repositories]]. It may also be necessary to install {{pkg|ttf-dejavu}} and {{pkg|ttf-liberation}} to get the correct font scaling.<br />
<br />
Installing {{AUR|pcb}} will give you the PCB editor, available from the [[AUR]].<br />
<br />
Also you can install {{AUR|xgsch2pcb}} ([[AUR]]), graphical interface to the gsch2pcb command-line tool for converting *.sch to *.pcb.<br />
<br />
== Configuration ==<br />
<br />
== First PCB ==<br />
<br />
=== Create schematic symbol ===<br />
You can create new as you are creating schematics themselves. Open an empty file<br />
$ gschem mysymbol.sym<br />
and add pins with <code>ap</code> and attributes with <code>aa</code>. Check the [http://wiki.geda-project.org/geda:master_attributes_list geda wiki] for details. After you are done, do not forget to translate your symbol to absolute zero with <code>et</code>. If you don't, your symbol will probably be outside of your viewport once you are going to place it in your schematic.<br />
<br />
Save the symbol with <code>fs</code> and check it with<br />
$ gsymcheck -vv mysymbol.sym<br />
<br />
==== Schematic Search Path ====<br />
Do not forget to place your symbol within the search path of gschem. It may also be helpful to extend this path to a folder in your own project by creating a file named <pre>gafrc</pre> in the project folder with the following content<br />
(component-library "./symbols")<br />
and then copy all symbols required by the project into a subfolder called "symbols".<br />
<br />
=== Create PCB footprint ===<br />
<br />
=== Create schematic ===<br />
Run schematic editor:<br />
$ gschem<br />
See also:<br />
<br />
[http://wiki.geda-project.org/geda:faq-gschem FAQ page]<br />
<br />
=== Create and route PCB ===<br />
Once you have reached a point of your schematic where you want to start routing the PCB (you can do this in an iterative fashion), it's time to create a gsch2pcb project. Add the following lines to a newly created file, called <code>firstpcb.prj</code>:<br />
schematics firstpcb.sch<br />
empty-footprint nofootprint<br />
output-name firstpcb<br />
<br />
This project will read from firstpcb.sch, ignore any parts having a footprint called 'nofootprint' and the output files will start be:<br />
* The PCB: firstpcb.pcb<br />
* The netlist: firstpcb.net<br />
* Pin name commands: firstpcb.cmd<br />
* ...<br />
<br />
If you opted for a local symbols directory, you should include it here. Also you probably want a local footprint directory, too. So add these lines to the prj file:<br />
elements-dir footprints<br />
elements-dir symbols<br />
<br />
Now execute gsch2pcb with this project file:<br />
$ gsch2pcb -f firstpcb.prj<br />
gsch2pcb will tell you what to do next or if there were any errors.<br />
<br />
=== Export to gerber ===</div>Cdwijshttps://wiki.archlinux.org/index.php?title=GEDA&diff=246851GEDA2013-02-08T19:42:23Z<p>Cdwijs: changed # to $, these programs should not be run as root</p>
<hr />
<div>[[Category:Mathematics and science]]<br />
{{Stub}}<br />
<br />
The gEDA project has produced and continues working on a full GPL'd suite and toolkit of Electronic Design Automation tools. These tools are used for electrical circuit design, schematic capture, simulation, prototyping, and production. Currently, the gEDA project offers a mature suite of free software applications for electronics design, including schematic capture, attribute management, bill of materials (BOM) generation, netlisting into over 20 netlist formats, analog and digital simulation, and printed circuit board (PCB) layout.<br />
<br />
The gEDA project was started because of the lack of free EDA tools for POSIX systems with the primary purpose of advancing the state of free hardware or open source hardware. The suite is mainly being developed on the GNU/Linux platform with some development effort going into making sure the tools run on other platforms as well.<br />
<br />
(Source: [http://www.gpleda.org/ gEDA homepage])<br />
<br />
== Installation ==<br />
Installing {{pkg|geda-gaf}} will give you the schematic editor and attribute editor, which is available in the [[official repositories]]. It may also be necessary to install {{pkg|ttf-dejavu}} and {{pkg|ttf-liberation}} to get the correct font scaling.<br />
<br />
Installing {{AUR|pcb}} will give you the PCB editor, available from the [[AUR]].<br />
<br />
Also you can install {{AUR|xgsch2pcb}} ([[AUR]]), graphical interface to the gsch2pcb command-line tool for converting *.sch to *.pcb.<br />
<br />
== Configuration ==<br />
<br />
== First PCB ==<br />
<br />
=== Create schematic symbol ===<br />
You can create new as you are creating schematics themselves. Open an empty file<br />
$ gschem mysymbol.sym<br />
and add pins with <code>ap</code> and attributes with <code>aa</code>. After you are done, do not forget to translate your symbol to absolute zero with <code>et</code>. If you don't, your symbol will probably be outside of your viewport once you are going to place it in your schematic.<br />
<br />
Save the symbol with <code>fs</code> and check it with<br />
$ gsymcheck -vv mysymbol.sym<br />
<br />
==== Schematic Search Path ====<br />
Do not forget to place your symbol within the search path of gschem. It may also be helpful to extend this path to a folder in your own project by creating a file named <pre>gafrc</pre> in the project folder with the following content<br />
(component-library "./symbols")<br />
and then copy all symbols required by the project into a subfolder called "symbols".<br />
<br />
=== Create PCB footprint ===<br />
<br />
=== Create schematic ===<br />
Run schematic editor:<br />
$ gschem<br />
See also:<br />
<br />
[http://wiki.geda-project.org/geda:faq-gschem FAQ page]<br />
<br />
=== Create and route PCB ===<br />
Once you have reached a point of your schematic where you want to start routing the PCB (you can do this in an iterative fashion), it's time to create a gsch2pcb project. Add the following lines to a newly created file, called <code>firstpcb.prj</code>:<br />
schematics firstpcb.sch<br />
empty-footprint nofootprint<br />
output-name firstpcb<br />
<br />
This project will read from firstpcb.sch, ignore any parts having a footprint called 'nofootprint' and the output files will start be:<br />
* The PCB: firstpcb.pcb<br />
* The netlist: firstpcb.net<br />
* Pin name commands: firstpcb.cmd<br />
* ...<br />
<br />
If you opted for a local symbols directory, you should include it here. Also you probably want a local footprint directory, too. So add these lines to the prj file:<br />
elements-dir footprints<br />
elements-dir symbols<br />
<br />
Now execute gsch2pcb with this project file:<br />
$ gsch2pcb -f firstpcb.prj<br />
gsch2pcb will tell you what to do next or if there were any errors.<br />
<br />
=== Export to gerber ===</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Timezone_(Nederlands)&diff=233272Timezone (Nederlands)2012-11-02T19:36:52Z<p>Cdwijs: forgot to translate one word</p>
<hr />
<div>[[Category:Nederlands]]<br />
[[en:Timezone]]<br />
[[ru:Timezone]]<br />
[[uk:Timezone]]<br />
'''Tijdzones''' zijn verschillende gebieden op aarde met elk een verschillende standaardtijd. U kunt uw computer zo instellen dat deze een bepaalde tijdzone gebruikt. Dit doet u door de variable <code>TIMEZONE</code> in <code>/etc/rc.conf</code> aan te passen. U kunt alle mogelijke waardes vinden in <code>/usr/share/zoneinfo</code>. Bijvoorbeeld:<br />
TIMEZONE="Europe/Amsterdam"<br />
of<br />
TIMEZONE="Europe/Brussels"<br />
of<br />
TIMZONE="America/Paramaribo"<br />
<br />
==UTC of localtime?==<br />
In <code>/etc/rc.conf</code> kunt u aangeven of u UTC of localtime wilt gebruiken. Als u alleen Linux draait, is het aan te raden om UTC te gebruiken. Draait u echter ook Windows op dezelfde PC, dan kunt u beter localtime gebruiken. Als u UTC gebruikt, verzet de computer automatisch de tijd een uur als de zomer- of wintertijd ingaat. U kunt dit instellen door middel van de variable <code>HARDWARECLOCK</code>:<br />
HARDWARECLOCK="UTC"<br />
of<br />
HARDWARECLOCK="localtime"</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Talk:VDR&diff=226617Talk:VDR2012-10-03T07:11:50Z<p>Cdwijs: </p>
<hr />
<div>== Few of my thoughts ==<br />
<br />
I'm thinking about editing the vdr page, I'm not sure about the guidelines of the wiki, I don't want to waste my time adding information that an experienced user will find unnecessary and will delete from the wiki, so I'm pasting here my thoughts to get approval & remarks.<br />
<br />
# Beginners friendly approach (as I'm one), adding full steps & how to, meaning if two plugins requires the same steps then still add steps for both plugins.<br />
# On the Contents main tree adding a Frontends tag and moving frontends info & setup setting to that location.<br />
# On the Contents main tree adding a Plugins tag with sub-tags depends on functionality & backend/frontend relevance.<br />
# Attempt to include most of the plugins that included in the ArchVDR team repository.<br />
<br />
[[User:Dhead|Dhead]] ([[User talk:Dhead|talk]]) 22:59, 27 September 2012 (UTC)<br />
<br />
:Hi and welcome! About the guidelines, you may start by reading [[Help:Editing]] and [[Help:Style]]: for example I've edited your own post above improving the usage of wiki syntax, in particular note that you should use &lt;br> only in very rare cases.<br />
:Then, if you plan to make big changes to the article, please make sure to split them in several edits, each appropriately commented in the Edit "Summary" field.<br />
:If you're in doubt about something, don't be afraid of asking ;)<br />
:-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:41, 29 September 2012 (UTC)<br />
<br />
Why is noad removed? Did it not work? <br />
This is the last revision before it was removed by Sudokode <br />
https://wiki.archlinux.org/index.php?title=VDR&oldid=206316</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Logitech_Unifying_Receiver&diff=226614Logitech Unifying Receiver2012-10-03T07:00:50Z<p>Cdwijs: renamed unifying_pair into pairing_tool to match aur. Added error on the wrong device, and added program output when everything is OK</p>
<hr />
<div>[[Category:Input devices]]<br />
[[zh-TW:Logitech Unifying Receiver]]<br />
The [http://www.logitech.com/349/6072 Logitech Unifying Receiver] is a wireless receiver that can connect up to six compatible wireless mice and keyboards to your computer.<br />
The input device that comes with the receiver is already paired with it and should work out of the box through plug and play.<br />
Logitech officially supports pairing of additional devices just through their Windows software.<br />
However [http://goo.gl/eG4q9 Benjamin Tissoires] posted a program on the kernel mailing list that allows pairing of additional devices also under Linux.<br />
<br />
==Compiling pairing_tool==<br />
<br />
The program can also be found in [https://aur.archlinux.org/packages.php?ID=58261 AUR]<br />
<br />
At first make sure that a C compiler is installed on your system:<br />
# pacman -S gcc <br />
<br />
Afterwards copy and paste the following code to a local file, for example ''pairing_tool.c'':<br />
<br />
/*<br />
* Copyright 2011 Benjamin Tissoires <br />
*<br />
* This program is free software: you can redistribute it and/or modify<br />
* it under the terms of the GNU General Public License as published by<br />
* the Free Software Foundation, either version 3 of the License, or<br />
* (at your option) any later version.<br />
*<br />
* This program is distributed in the hope that it will be useful,<br />
* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
* GNU General Public License for more details.<br />
*<br />
* You should have received a copy of the GNU General Public License<br />
* along with this program. If not, see .<br />
*/<br />
<br />
#include <linux/input.h><br />
#include <linux/hidraw.h><br />
#include <sys/ioctl.h><br />
#include <fcntl.h><br />
#include <unistd.h><br />
#include <stdio.h><br />
#include <errno.h><br />
<br />
#define USB_VENDOR_ID_LOGITECH (__u32)0x046d<br />
#define USB_DEVICE_ID_UNIFYING_RECEIVER (__s16)0xc52b<br />
#define USB_DEVICE_ID_UNIFYING_RECEIVER_2 (__s16)0xc532<br />
<br />
int main(int argc, char **argv)<br />
{<br />
int fd;<br />
int res;<br />
struct hidraw_devinfo info;<br />
char magic_sequence[] = {0x10, 0xFF, 0x80, 0xB2, 0x01, 0x00, 0x00};<br />
<br />
if (argc == 1) {<br />
errno = EINVAL;<br />
perror("No hidraw device given");<br />
return 1;<br />
}<br />
<br />
/* Open the Device with non-blocking reads. */<br />
fd = open(argv[1], O_RDWR|O_NONBLOCK);<br />
<br />
if (fd < 0) {<br />
perror("Unable to open device");<br />
return 1;<br />
}<br />
<br />
/* Get Raw Info */<br />
res = ioctl(fd, HIDIOCGRAWINFO, &info);<br />
if (res < 0) {<br />
perror("error while getting info from device");<br />
} else {<br />
if (info.bustype != BUS_USB ||<br />
info.vendor != USB_VENDOR_ID_LOGITECH ||<br />
(info.product != USB_DEVICE_ID_UNIFYING_RECEIVER &&<br />
info.product != USB_DEVICE_ID_UNIFYING_RECEIVER_2)) {<br />
errno = EPERM;<br />
perror("The given device is not a Logitech "<br />
"Unifying Receiver");<br />
return 1;<br />
}<br />
}<br />
<br />
/* Send the magic sequence to the Device */<br />
res = write(fd, magic_sequence, sizeof(magic_sequence));<br />
if (res < 0) {<br />
printf("Error: %d\n", errno);<br />
perror("write");<br />
} else if (res == sizeof(magic_sequence)) {<br />
printf("The receiver is ready to pair a new device.\n"<br />
"Switch your device on to pair it.\n");<br />
} else {<br />
errno = ENOMEM;<br />
printf("write: %d were written instead of %ld.\n", res,<br />
sizeof(magic_sequence));<br />
perror("write");<br />
}<br />
close(fd);<br />
return 0;<br />
}<br />
<br />
Afterwards the code has to be compiled into the executable file ''pairing_tool'':<br />
$ gcc -o pairing_tool pairing_tool.c <br />
<br />
==Pairing of Compatible Devices==<br />
<br />
Next you need to find the device that the receiver has, therefore take a look at the outputs of <br />
$ cat /sys/class/hidraw/hidraw'''X'''/device/uevent |grep NAME<br />
(where you have to replace '''X''' with the - on your system valid - integers) until you find your ''Logitech USB Receiver'' (here it was directly device '''0'''):<br />
$ cat /sys/class/hidraw/hidraw0/device/uevent |grep NAME<br />
HID_NAME=Logitech USB Receiver<br />
<br />
Now switch off the device that you want to pair (if it was on) and execute your compiled program with the appropriate device as argument:<br />
# ./pairing_tool /dev/hidraw0<br />
The receiver is ready to pair a new device.<br />
Switch your device on to pair it.<br />
Now switch on the device you want to pair. After a few seconds your new device should work properly.<br />
<br />
==Known Problems==<br />
===Wrong device===<br />
On some systems there is more than one device that has the same name. In that case you will receive the following error message when the wrong device is choosen:<br />
# pairing_tool /dev/hidraw1<br />
Error: 32<br />
write: Broken pipe<br />
===Keyboard Layout via xorg.conf===<br />
With kernel 3.2 the Unifying Receiver got its own kernel module ''hid_logitech_dj'' which does not work flawlessly together with keyboard layout setting set via [[Xorg#Keyboard settings|xorg.conf]].<br />
A temporary workaround is to use {{Pkg|xorg-setxkbmap}} and set the layout manually. For example for a German layout with no deadkeys one has to execute:<br />
$ setxkbmap -layout de -variant nodeadkeys<br />
To automate this process one could add this line to [[xinitrc]].</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Logitech_Unifying_Receiver&diff=215912Logitech Unifying Receiver2012-08-01T06:52:10Z<p>Cdwijs: added reference to the same (I think) program in AUR</p>
<hr />
<div>[[Category:Input devices]]<br />
The [http://www.logitech.com/349/6072 Logitech Unifying Receiver] is a wireless receiver that can connect up to six compatible wireless mice and keyboards to your computer.<br />
The input device that comes with the receiver is already paired with it and should work out of the box through plug and play.<br />
Logitech officially supports pairing of additional devices just through their Windows software.<br />
However [http://goo.gl/eG4q9 Benjamin Tissoires] posted a program on the kernel mailing list that allows pairing of additional devices also under Linux.<br />
<br />
==Compiling unifying_pair==<br />
<br />
The program can also be found in [https://aur.archlinux.org/packages.php?ID=58261 AUR]<br />
<br />
At first make sure that a C compiler is installed on your system:<br />
# pacman -S gcc <br />
<br />
Afterwards copy and paste the following code to a local file, for example ''unifying_pair.c'':<br />
<br />
/*<br />
* Copyright 2011 Benjamin Tissoires <br />
*<br />
* This program is free software: you can redistribute it and/or modify<br />
* it under the terms of the GNU General Public License as published by<br />
* the Free Software Foundation, either version 3 of the License, or<br />
* (at your option) any later version.<br />
*<br />
* This program is distributed in the hope that it will be useful,<br />
* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
* GNU General Public License for more details.<br />
*<br />
* You should have received a copy of the GNU General Public License<br />
* along with this program. If not, see .<br />
*/<br />
<br />
#include <linux/input.h><br />
#include <linux/hidraw.h><br />
#include <sys/ioctl.h><br />
#include <fcntl.h><br />
#include <unistd.h><br />
#include <stdio.h><br />
#include <errno.h><br />
<br />
#define USB_VENDOR_ID_LOGITECH (__u32)0x046d<br />
#define USB_DEVICE_ID_UNIFYING_RECEIVER (__s16)0xc52b<br />
#define USB_DEVICE_ID_UNIFYING_RECEIVER_2 (__s16)0xc532<br />
<br />
int main(int argc, char **argv)<br />
{<br />
int fd;<br />
int res;<br />
struct hidraw_devinfo info;<br />
char magic_sequence[] = {0x10, 0xFF, 0x80, 0xB2, 0x01, 0x00, 0x00};<br />
<br />
if (argc == 1) {<br />
errno = EINVAL;<br />
perror("No hidraw device given");<br />
return 1;<br />
}<br />
<br />
/* Open the Device with non-blocking reads. */<br />
fd = open(argv[1], O_RDWR|O_NONBLOCK);<br />
<br />
if (fd < 0) {<br />
perror("Unable to open device");<br />
return 1;<br />
}<br />
<br />
/* Get Raw Info */<br />
res = ioctl(fd, HIDIOCGRAWINFO, &info);<br />
if (res < 0) {<br />
perror("error while getting info from device");<br />
} else {<br />
if (info.bustype != BUS_USB ||<br />
info.vendor != USB_VENDOR_ID_LOGITECH ||<br />
(info.product != USB_DEVICE_ID_UNIFYING_RECEIVER &&<br />
info.product != USB_DEVICE_ID_UNIFYING_RECEIVER_2)) {<br />
errno = EPERM;<br />
perror("The given device is not a Logitech "<br />
"Unifying Receiver");<br />
return 1;<br />
}<br />
}<br />
<br />
/* Send the magic sequence to the Device */<br />
res = write(fd, magic_sequence, sizeof(magic_sequence));<br />
if (res < 0) {<br />
printf("Error: %d\n", errno);<br />
perror("write");<br />
} else if (res == sizeof(magic_sequence)) {<br />
printf("The receiver is ready to pair a new device.\n"<br />
"Switch your device on to pair it.\n");<br />
} else {<br />
errno = ENOMEM;<br />
printf("write: %d were written instead of %ld.\n", res,<br />
sizeof(magic_sequence));<br />
perror("write");<br />
}<br />
close(fd);<br />
return 0;<br />
}<br />
<br />
Afterwards the code has to be compiled into the executable file ''unifying_pair'':<br />
$ gcc -o unifying_pair unifying_pair.c <br />
<br />
==Pairing of Compatible Devices==<br />
<br />
Next you need to find the device that the receiver has, therefore take a look at the outputs of <br />
$ cat /sys/class/hidraw/hidraw'''X'''/device/uevent |grep NAME<br />
(where you have to replace '''X''' with the - on your system valid - integers) until you find your ''Logitech USB Receiver'' (here it was directly device '''0'''):<br />
$ cat /sys/class/hidraw/hidraw0/device/uevent |grep NAME<br />
HID_NAME=Logitech USB Receiver<br />
<br />
Now switch off the device that you want to pair (if it was on) and execute your compiled program with the appropriate device as argument:<br />
# ./unifying_pair /dev/hidraw0<br />
<br />
If the program runs fine it will tell you to turn on the device and it should work properly then.<br />
<br />
==Known Problems==<br />
===Keyboard Layout via xorg.conf===<br />
With kernel 3.2 the Unifying Receiver got its own kernel module ''hid_logitech_dj'' which does not work flawlessly together with keyboard layout setting set via [[Xorg#Keyboard settings|xorg.conf]].<br />
A temporary workaround is to use {{Pkg|xorg-setxkbmap}} and set the layout manually. For example for a German layout with no deadkeys one has to execute:<br />
$ setxkbmap -layout de -variant nodeadkeys<br />
To automate this process one could add this line to [[xinitrc]].</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Pacman&diff=213037Pacman2012-07-15T08:43:27Z<p>Cdwijs: added a note to answer y to all questions of pacman-key --populate</p>
<hr />
<div>[[Category:Package management]]<br />
[[cs:Pacman]]<br />
[[da:Pacman]]<br />
[[de:Pacman]]<br />
[[el:Pacman]]<br />
[[es:Pacman]]<br />
[[fr:Pacman]]<br />
[[id:Pacman]]<br />
[[it:Pacman]]<br />
[[ja:Pacman]]<br />
[[ko:Pacman]]<br />
[[lt:Pacman]]<br />
[[nl:Pacman]]<br />
[[pl:Pacman]]<br />
[[pt:Pacman]]<br />
[[ro:Pacman]]<br />
[[ru:Pacman]]<br />
[[sr:Pacman]]<br />
[[sv:Pacman]]<br />
[[tr:pacman]]<br />
[[uk:Pacman]]<br />
[[zh-CN:Pacman]]<br />
[[zh-TW:Pacman]]<br />
{{Lowercase title}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|pacman is the Arch Linux [[Wikipedia:Package management system|package manager]]. Package managers are used to install, upgrade, and remove software. This article covers basic usage and troubleshooting tips.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Downgrading Packages}}<br />
{{Article summary wiki|Improve Pacman Performance}}<br />
{{Article summary wiki|pacman GUI Frontends}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ#Package Management}}<br />
{{Article summary wiki|Pacman-key}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
The '''[https://archlinux.org/pacman/ pacman]''' [[Wikipedia:Package management system|package manager]] is one of the major distinguishing features of Arch Linux. It combines a simple binary package format with an easy-to-use [[Arch Build System|build system]]. The goal of pacman is to make it possible to easily manage packages, whether they are from the [[Official Repositories|official Arch repositories]] or the user's own builds.<br />
<br />
pacman keeps the system up to date by synchronizing package lists with the master server. This server/client model also allows you to download/install packages with a simple command, complete with all required dependencies.<br />
<br />
pacman is written in the C programming language and uses the {{ic|.pkg.tar.xz}} package format.<br />
<br />
{{Tip|The official {{Pkg|pacman}} package also contains other useful tools, such as '''makepkg''', '''pactree''', '''vercmp''' and more. You can get the full list from {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Configuration ==<br />
<br />
pacman configuration is located in {{ic|/etc/pacman.conf}}. This is the place where the user configures the program to work in the desired manner. In-depth information about the configuration file can be found in [https://archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== General options ===<br />
<br />
General options are in the {{ic|[options]}} section. Read the man page or look in the default {{ic|pacman.conf}} for information on what can be done here.<br />
<br />
==== Skip package from being upgraded ====<br />
<br />
To skip upgrading a specific package, specify it as such:<br />
<br />
{{bc|<nowiki>IgnorePkg=linux</nowiki>}}<br />
<br />
For multiple packages use a space-separated list, or use additional {{ic|IgnorePkg}} lines.<br />
<br />
==== Skip package group from being upgraded ====<br />
<br />
As with packages, skipping a whole package group is also possible:<br />
<br />
{{bc|<nowiki>IgnoreGroup=gnome</nowiki>}}<br />
<br />
==== Skip files from being installed to system ====<br />
<br />
To always skip installation of specific directories list them under {{Ic|NoExtract}}. For example, to avoid installation of [[systemd]] units use this:<br />
<br />
{{bc|<nowiki>NoExtract=usr/lib/systemd/system/*</nowiki>}}<br />
<br />
=== Repositories ===<br />
<br />
This section defines which repositories to use, as referred to in {{ic|/etc/pacman.conf}}. They can be stated here directly or included from another file.<br />
<br />
All official repositories use the same {{ic|/etc/pacman.d/mirrorlist}} file which uses the {{ic|$repo}} variable, making it necessary to maintain only one list.<br />
<br />
The following is an example for the [[Official Repositories|official repositories]] that defers [[mirrors]] to {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
#[testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# If you want to run 32 bit applications on your x86_64 system,<br />
# enable the multilib repositories as required here.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
#[multilib]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
# An example of a custom package repository. See the pacman manpage for<br />
# tips on creating your own repositories.<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Warning|Care should be taken when using the [testing] repository. It is in active development and updating may cause some packages to stop working. People who use the [testing] repository are encouraged to subscribe to the [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public arch-dev-public mailing list] for current information.}}<br />
<br />
=== Package security ===<br />
<br />
Pacman 4 supports signed packages, which adds an extra layer of security to the packages. To enable signature verification, take a look [[pacman-key|here]].<br />
<br />
== Usage ==<br />
<br />
What follows is just a small sample of the operations that pacman can perform. To read more examples, refer to [https://archlinux.org/pacman/pacman.8.html man pacman].<br />
<br />
===Installing packages===<br />
<br />
====Installing specific packages====<br />
To install a single package or list of packages (including dependencies), issue the following command:<br />
<br />
# pacman -S ''package_name1'' ''package_name2'' ...<br />
<br />
Sometimes there are multiple versions of a package in different repositories, e.g. [extra] and [testing]. To install the former version, the repository needs to be defined in front:<br />
<br />
# pacman -S extra/''package_name''<br />
<br />
====Installing package groups====<br />
Some packages belong to a group of packages that can all be installed simultaneously. For example, issuing the command:<br />
<br />
# pacman -S gnome<br />
will install all the packages that belong to the {{ic|gnome}} group. To see what packages belong to the gnome group, run:<br />
<br />
# pacman -Sg gnome<br />
<br />
Also visit https://archlinux.org/groups/ to see what package groups are available.<br />
<br />
{{Note|If a package in the list is already installed on the system, it will be reinstalled even if it is already up to date. This behavior can be overridden with the {{ic|--needed}} option.}}<br />
<br />
{{Warning|1=When installing packages, do '''not''' refresh the package list without [[#Upgrading packages|upgrading]] the system (i.e. {{ic|pacman -Sy ''package_name''}}); this can lead to dependency issues, see [[#Partial upgrades are unsupported]] and [https://bbs.archlinux.org/viewtopic.php?id=89328].}}<br />
<br />
=== Removing packages ===<br />
<br />
To remove a single package, leaving all of its dependencies installed:<br />
<br />
# pacman -R ''package_name''<br />
<br />
To remove a package and its dependencies which are not required by any other installed package:<br />
<br />
# pacman -Rs ''package_name''<br />
<br />
To remove a package, its dependencies and all the packages that depend on the target package:<br />
<br />
{{Warning|This operation is recursive, and must be used with care since it can remove many potentially needed packages.}}<br />
<br />
# pacman -Rsc ''package_name''<br />
<br />
To remove a package, which is required by another package, without removing the dependent package:<br />
<br />
# pacman -Rdd ''package_name''<br />
<br />
pacman saves important configuration files when removing certain applications and names them with the extension: {{ic|.pacsave}}. To prevent the creation of these backup files use the {{ic|-n}} option:<br />
<br />
# pacman -Rn ''package_name''<br />
<br />
{{Note|pacman will not remove configurations that the application itself creates (for example "dotfiles" in the home folder).}}<br />
<br />
===Upgrading packages===<br />
<br />
pacman can update all packages on the system with just one command. This could take quite a while depending on how up-to-date the system is. This command can synchronize the repository databases ''and'' update the system's packages (excluding 'local' packages that are not in the configured repositories):<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|Instead of immediately updating as soon as updates are available, users must recognize that due to the nature of Arch's rolling release approach, an update may have unforeseen consequences. This means that it is not wise to update if, for example, one is about to deliver an important presentation. Rather, update during free time and be prepared to deal with any problems that may arise.}}<br />
<br />
pacman is a powerful package management tool, but it does not attempt to handle all corner cases. Read [[The Arch Way]] if this causes confusion. Users must be vigilant and take responsibility for maintaining their own system. '''When performing a system update, it is essential that users read all information output by pacman and use common sense.''' If a user-modified configuration file needs to be upgraded for a new version of a package, a {{ic|.pacnew}} file will be created to avoid overwriting settings modified by the user. Pacman will prompt the user to merge them. These files require manual intervention from the user and it is good practice to handle them right after every package upgrade or removal. See [[Pacnew and Pacsave Files]] for more info.<br />
<br />
{{Tip|Remember that pacman's output is logged in {{ic|/var/log/pacman.log}}.}}<br />
<br />
Before upgrading, it is advisable to visit the [https://archlinux.org/ Arch Linux home page] to check the latest news (or subscribe to the RSS feed): when updates require out-of-the-ordinary user intervention (more than what can be handled simply by following the instructions given by pacman), an appropriate news post will be made.<br />
<br />
If one encounters problems that cannot be solved by these instructions, make sure to search the forum. It is likely that others have encountered the same problem and have posted instructions for solving it.<br />
<br />
=== Querying package databases ===<br />
<br />
pacman queries the local package database with the {{ic|-Q}} flag; see:<br />
<br />
$ pacman -Q --help<br />
<br />
and queries the sync databases with the {{ic|-S}} flag; see:<br />
<br />
$ pacman -S --help<br />
<br />
pacman can search for packages in the database, searching both in packages' names and descriptions:<br />
<br />
$ pacman -Ss ''string1'' ''string2'' ...<br />
<br />
To search for already installed packages:<br />
<br />
$ pacman -Qs ''string1'' ''string2'' ...<br />
<br />
To display extensive information about a given package:<br />
<br />
$ pacman -Si ''package_name''<br />
<br />
For locally installed packages:<br />
<br />
$ pacman -Qi ''package_name''<br />
<br />
Passing two {{ic|-i}} flags will also display the list of backup files and their modification states:<br />
<br />
$ pacman -Qii ''package_name''<br />
<br />
To retrieve a list of the files installed by a package:<br />
<br />
$ pacman -Ql ''package_name''<br />
<br />
For packages not installed, use {{ic|pkgfile}} from [[pkgtools]] or {{ic|nosr}} from {{aur|nosr-git}} from [[AUR]].<br />
<br />
One can also query the database to know which package a file in the file system belongs to:<br />
<br />
$ pacman -Qo /path/to/a/file<br />
<br />
To list all packages no longer required as dependencies (orphans):<br />
<br />
$ pacman -Qdt<br />
<br />
To list a dependency tree of a package:<br />
<br />
$ pactree ''package_name''<br />
<br />
To list all the packages depending on a package, use {{ic|whoneeds}} from [[pkgtools]]:<br />
<br />
$ whoneeds ''package_name''<br />
<br />
=== Additional commands ===<br />
<br />
Upgrade the system and install a list of packages (one-liner):<br />
<br />
# pacman -Syu ''package_name1'' ''package_name2'' ...<br />
<br />
Download a package without installing it:<br />
<br />
# pacman -Sw ''package_name''<br />
<br />
Install a 'local' package that is not from a remote repository (e.g. the package is from the [[Arch User Repository|AUR]]):<br />
<br />
# pacman -U /path/to/package/package_name-version.pkg.tar.xz<br />
<br />
Install a 'remote' package (not from a repository stated in pacman's configuration files):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Clean the package cache of packages that are not currently installed ({{ic|/var/cache/pacman/pkg}}):<br />
<br />
{{Warning|Only do this if sure that the current versions of installed packages are stable and a [[Downgrading Packages|downgrade]] is not needed as {{ic|pacman -Sc}} removes all the old versions of installed packages.}}<br />
<br />
# pacman -Sc<br />
<br />
Clean the entire package cache:<br />
<br />
{{Warning|This clears the entire package cache. Doing this is a bad practice since it removes the ability to downgrade to the current set of packages in the case that an upgrade causes breakage.}}<br />
<br />
# pacman -Scc<br />
<br />
As an alternative to both the {{ic|-Sc}} and {{ic|-Scc}} switches, consider using {{AUR|cacheclean}} from the [[Arch User Repository|AUR]]. This Python script selectively cleans pacman's cache keeping ''x'' old versions of each package therein.<br />
<br />
===Partial upgrades are unsupported===<br />
Arch Linux is a rolling release, and new [[Wikipedia:Library (computing)|library]] versions will be pushed to the repositories. The developers and trusted users will rebuild all the packages in the repositories that need to be rebuilt against the libraries. If the system has locally installed packages (such as [[Arch User Repository|AUR]] packages), users will need to rebuild them when their dependencies receive a [[Wikipedia:soname|soname]] bump.<br />
<br />
This means that partial upgrades are '''not supported'''. Do not use {{ic|pacman -Sy package}} or any equivalent such as {{ic|pacman -Sy}} and then {{ic|pacman -S package}}. Always upgrade before installing a package -- particularly if pacman has refreshed the sync repositories. Be very careful when using {{ic|IgnorePkg}} and {{ic|IgnoreGroup}} for the same reason.<br />
<br />
If a partial upgrade scenario has been created, and binaries are broken because they cannot find the libraries they are linked against, '''do not "fix" the problem simply by symlinking'''. Libraries receive [[Wikipedia:soname|soname]] bumps when they are '''not backwards compatible'''. A simple {{ic|pacman -Syu}} to a properly synced mirror will fix the issue as long as pacman is not broken.<br />
<br />
== Troubleshooting ==<br />
{{FAQ<br />
|question=An update to package XYZ broke my system!<br />
|answer=Arch Linux is a rolling-release cutting-edge distribution. Package updates are available as soon as they are deemed stable enough for general use. However, updates sometimes require user intervention: configuration files may need to be updated, optional dependencies may change, etc.<br />
<br />
The most important tip to remember is to not "blindly" update Arch systems. Always read the list of packages to be updated. Note whether "critical" packages are going to be updated ({{ic|linux}}, {{ic|xorg-server}}, and so on). If so, it is usually a good idea to check for any news at https://www.archlinux.org/ and scan recent forum posts to see if people are experiencing problems as a result of an update.<br />
<br />
If a package update is expected/known to cause problems, packagers will ensure that pacman displays an appropriate message when the package is updated. If experiencing trouble after an update, double-check pacman's output by looking at the log ({{ic|/var/log/pacman.log}}). <br />
<br />
At this point, '''only after ensuring there is no information available through pacman, there is no relative news on https://www.archlinux.org/, and there are no forum posts regarding the update''', consider seeking help on the forum, over [[IRC Channel|IRC]], or [[Downgrading Packages|downgrading the offending package]].}}<br />
<br />
{{FAQ<br />
|question=I know an update to package ABC was released, but pacman says my system is up to date!<br />
|answer=pacman mirrors are not synced immediately. It may take over 24 hours before an update is available to you. <br />
<br />
The only options are be patient or use another mirror. [https://www.archlinux.org/mirrors/status/ MirrorStatus] can help you identify an up-to-date mirror.}}<br />
<br />
{{FAQ<br />
|question=I get an error when updating: "file exists in filesystem"!<br />
|answer=ASIDE: ''Taken from https://bbs.archlinux.org/viewtopic.php?id=56373 by Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Why this is happening: pacman has detected a file conflict, and by design, will not overwrite files for you. This is a design feature, not a flaw. <br />
<br />
The issue is usually trivial to solve. A safe way is to first check if another package owns the file ({{ic|pacman -Qo /path/to/file}}). If the file is owned by another package, [[Reporting Bug Guidelines|file a bug report]]. If the file is not owned by another package, rename the file which 'exists in filesystem' and re-issue the update command. If all goes well, the file may then be removed.<br />
<br />
If you had installed a program manually without using pacman or a frontend, you have to remove it and all its files and reinstall properly using pacman.<br />
<br />
Every installed package provides {{ic|/var/lib/pacman/local/$package-$version/files}} file that contains metadata about this package. If this file gets corrupted - is empty or missing - it results in "file exists in filesystem" errors when trying to update the package.<br />
Such an error usually concerns only one package and instead of manually renaming and later removing all the files that belong to the package in question, you can run {{ic|pacman -S --force $package}} to force pacman to overwrite these files.<br />
<br />
Do '''not''' run {{ic|pacman -Syu --force}}.<br />
}}<br />
<br />
{{FAQ<br />
|question=I get an error when installing a package: "not found in sync db"<br />
|answer=Firstly, ensure the package actually exists (and watch out for typos!) If certain the package exists, your package list may be out-of-date or your repositories may be incorrectly configured. Try running {{ic|pacman -Syy}} to force a refresh of all package lists.}}<br />
<br />
{{FAQ<br />
|question=pacman is repeatedly upgrading the same package!<br />
|answer=This is due to duplicate entries in {{ic|/var/lib/pacman/local/}}, such as two {{ic|linux}} instances. {{ic|pacman -Qi}} outputs the correct version, but {{ic|pacman -Qu}} recognizes the old version and therefore will attempt to upgrade.<br />
<br />
Solution: delete the offending entry in {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman version 3.4 should display an error in case of duplicate entries, which should make this note obsolete.}}}}<br />
<br />
{{FAQ<br />
|question=pacman crashes during an upgrade!<br />
|answer=In the case that pacman crashes with a "database write" error whilst removing packages, and reinstalling or upgrading packages fails:<br />
#Boot using the Arch live CD<br />
#Mount your root filesystem<br />
#Update the pacman database via {{ic|pacman -Syy}}<br />
#Reinstall the broken package via {{ic|pacman -r /path/to/root -S package}}}}<br />
<br />
{{FAQ<br />
|question=I installed software using {{ic|make install}}; these files do not belong to any package!<br />
|answer=If receiving a "conflicting files" error, note that pacman will overwrite manually-installed software if supplied with the {{ic|-f}} switch ({{ic|pacman -Sf}}).<br />
<br />
See [[pacman Tips#Identify files not owned by any package]] for a script that searches the file system for ''disowned'' files.}}<br />
<br />
{{FAQ<br />
|question=I need a package with a specific file. How do I know what provides it?<br />
|answer=Install [[pkgtools]] which contains {{ic|pkgfile}} that uses a separate database with all files and their associated packages.}}<br />
<br />
{{FAQ<br />
|question=pacman is completely broken! How do I reinstall it?<br />
|answer=In the case that pacman is broken beyond repair, manually download the necessary packages ({{Pkg|openssl}}, {{Pkg|libarchive}}, and {{Pkg|pacman}}) and extract them to root. The pacman binary will be restored along with its default configuration file. Afterwards, reinstall these packages with pacman to maintain package database integrity. Additional information and an example (outdated) script that automates the process is available in [https://bbs.archlinux.org/viewtopic.php?id=95007 this] forum post.}}<br />
<br />
{{FAQ<br />
|question=After updating my system, I get a "unable to find root device" error after rebooting and my system will no longer boot.<br />
|answer=Most likely your initramfs got broken during a kernel update (improper use of pacman's {{ic|--force}} option can be a cause). Use the below procedure in order to restore it.<br />
<br />
Boot from an Arch LiveCD and run:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sdaX /mnt/arch #Your root partition.<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sdaX boot/ #This step is only needed if you have a separate /boot partition.<br />
# chroot .<br />
# pacman -Syu udev mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
Afterwards, unmount and reboot.<br />
<br />
}}<br />
<br />
{{FAQ<br />
|question=Signature from "User <email@gmail.com>" is unknown trust, installation failed <br />
|answer=Do the following<br />
<br />
# rm -R /etc/pacman.d/gnupg<br />
# pacman-key --init<br />
<br />
This step can take a long time if you do not generate enough entropy. You can try to move the mouse around, or use a random number generator like {{pkg|haveged}}.<br />
# pacman-key --populate archlinux<br />
Accept all the keys by answering yes to all questions }}<br />
<br />
<br />
<br />
== See also ==<br />
* [[Common Applications/Utilities#Package management]]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Subversion&diff=180843Subversion2012-01-28T09:13:56Z<p>Cdwijs: </p>
<hr />
<div>[[Category:Development (English)]]<br />
[[Category:Web Server (English)]]<br />
{{i18n|Subversion Setup}}<br />
<br />
''"[http://subversion.apache.org/features.html Apache Subversion] is a full-featured version control system originally designed to be a better [[CVS]]. Subversion has since expanded beyond its original goal of replacing CVS, but its basic model, design, and interface remain heavily influenced by that goal."''<br />
<br />
This article deals with setting up an svn-server on your machine. There are two popular svn-servers, the built in svnserve and the more advanced option, [[LAMP | Apache]] with svn plugins.<br />
<br />
== Apache for Subversion Setup ==<br />
<br />
===Goals===<br />
The goal of this how to is to setup Subversion, with Apache. Why use Apache for Subversion? Well, quite simply, it provides features that the standalone {{ic|svnserve}} does not have...<br />
<br />
* You get the ability to use https protocol. This is more secure than the md5 authentication used by svnserve.<br />
* You get fine-grained access controls. You can use Apache auth to limit permissions by directory. This means you can grant read access to everything, but commit access only to trunk for instance, while have another group with commit access to tags or branches.<br />
* You get a free repository viewer. While not very exciting, it does work.<br />
* The Subversion team is working on seamless webdav integration. At some point you should be able to use any webdav interface to update files in the repository.<br />
<br />
====Required Packages====<br />
* apache<br />
* subversion<br />
<br />
===Apache Installation===<br />
This howto '''does not''' cover installation and initial setup of the Apache web server. This is covered [[LAMP|here]].<br />
<br />
===Subversion Installation===<br />
====Install the package====<br />
pacman -S subversion<br />
<br />
====Create a Directory====<br />
mkdir -p /home/svn/repositories<br />
<br />
===Miscellaneous Configuration Specifics===<br />
====/etc/httpd/conf/httpd.conf====<br />
Ensure the following are listed...if not, add them (you will typically have to add just the last two), they must be in this order:<br />
<br />
LoadModule dav_module modules/mod_dav.so<br />
LoadModule dav_fs_module modules/mod_dav_fs.so<br />
LoadModule dav_svn_module modules/mod_dav_svn.so<br />
LoadModule authz_svn_module modules/mod_authz_svn.so<br />
<br />
====SSL or not to SSL?====<br />
I prefer to use SSL for SVN access. This enables me to use Apache's AuthType Basic, with little fear of someone sniffing passwords.<br />
<br />
I generate the certificate by:<br />
<br />
{{bc|cd /etc/httpd/conf/; openssl req -new -x509 -keyout server.key -out server.crt -days 365 -nodes}}<br />
<br />
Add the following to {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}}. (Or add to {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} if your not using ssl[at your own risk], or are on a local testing server) Include the following inside of a virtual host directive:<br />
<br />
<Location /svn><br />
DAV svn<br />
SVNParentPath /home/svn/repositories<br />
AuthzSVNAccessFile /home/svn/.svn-policy-file<br />
AuthName "SVN Repositories"<br />
AuthType Basic<br />
AuthUserFile /home/svn/.svn-auth-file<br />
Satisfy Any<br />
Require valid-user<br />
</Location><br />
<br />
To make sure the SSL settings get loaded, uncomment the SSL configuration line in {{ic|/etc/httpd/conf/httpd.conf}} so it looks like this:<br />
<br />
Include /etc/httpd/conf/extra/httpd-ssl.conf<br />
<br />
====Create /home/svn/.svn-policy-file====<br />
{{bc|1=<br />
[/]<br />
* = r<br />
<br />
[REPO_NAME:/]<br />
USER_NAME = rw<br />
}}<br />
<br />
The * in the / section is matched to anonymous users. Any access above and beyond read only will be prompted for a user/pass by apache AuthType Basic. The REPO_NAME:/ section inherits permissions from those above, so anon users have read only permission to it. The last bit grants read/write permission of the REPO_NAME repository to the user USER_NAME.<br />
<br />
====Create /home/svn/.svn-auth-file====<br />
This is either an htpasswd, or htdigest file. I used htpasswd. Again, because of SSL, I do not worry as much about password sniffing. htdigest would provide even more security vs sniffing, but at this point, I do not have a need for it. Run the following command<br />
htpasswd -cs /home/svn/.svn-auth-file USER_NAME<br />
<br />
The above creates the file (-c) and uses sha1 for storing the password (-s). The user USER_NAME is created. <br /><br />
To add additional users, leave off the (-c) flag.<br />
htpasswd -s /home/svn/.svn-auth-file OTHER_USER_NAME<br />
<br />
====Create a Repository====<br />
svnadmin create /home/svn/repositories/REPO_NAME<br />
<br />
====Set Permissions====<br />
The Apache user needs permissions over the new repository.<br />
chown -R http.http /home/svn/repositories/REPO_NAME<br />
<br />
===Create a Project===<br />
====Directory structure for project====<br />
Create the following directory structure on your development machine.<br />
branches tags trunk<br />
<br />
You can create them like this.<br />
cd /path/to/project<br />
mkdir branches tags trunk<br />
<br />
====Populate Directory====<br />
Copy or move your project source files into the created trunk directory.<br />
cp -R /home/USER_NAME/project/REPO_NAME/code/* trunk<br />
<br />
====Import the Project====<br />
svn import -m "Initial import" https://yourdomain.net/svn/REPO_NAME/<br />
<br />
====Test SVN Checkout====<br />
{{bc|<br />
cd /path/to/directory_of_choice<br />
cd ..<br />
rm -rf /path/to/directory_of_choice<br />
svn co https://yourdomain.net/svn/REPO_NAME/<br />
}}<br />
<br />
If everything worked out, you should now have a working, checked out copy of your freshly created SVN repo.<br />
<br />
Enjoy!<br />
<br />
== Svnserve setup ==<br />
<br />
====Install the package====<br />
pacman -S subversion<br />
<br />
==== Create a repository ====<br />
<br />
Create your repository<br />
mkdir /path/to/repos/<br />
svnadmin create /path/to/repos/repo1<br />
<br />
Your initial repository is empty, if you want to import files into it, use the following command.<br />
svn import ~/code/project1 file:///path/to/repos/repo1 --message 'Initial repository layout'<br />
<br />
==== Set access policies ====<br />
<br />
Edit the file /path/to/repos/repo1/conf/svnserve.conf and uncomment or add the line under [general]<br />
password-db = passwd<br />
<br />
You might also want to change the default option for anonymous users.<br />
anon-access = read<br />
Replace "read" with "write" for a repository that anyone can commit to, or set it to "none" to disable all anonymous access.<br />
<br />
Now edit the file /path/to/repos/repo1/conf/passwd<br />
[users]<br />
harry = foopassword<br />
sally = barpassword<br />
<br />
The above defines users harry and sally, with passwords foopassword and barpassword, change it as you like<br />
<br />
==== Start the server daemon ====<br />
<br />
Before you start the server, edit the config file /etc/conf.d/svnserve <br />
SVNSERVE_ARGS="-r /path/to/repos --listen-port=4711"<br />
SVNSERVE_USER="user"<br />
(the --listen-port flag is optional, make sure that the user has read/write access to the repository files)<br />
<br />
Now start the daemon.<br />
/etc/rc.d/svnserve start<br />
<br />
You can also add "svnserve" to the DAEMONS section of /etc/rc.conf if you want it to autostart on boot.<br />
<br />
==Subversion backup==<br />
<br />
For a guide on backing up your subversion repositories, see [[Subversion backup and restore]].<br />
<br />
==Subversion clients==<br />
For a list of subversion clients, see wikipedia: [http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Pdnsd&diff=180095Pdnsd2012-01-24T21:28:32Z<p>Cdwijs: added a second DNS quiry time test, using the system default DNS server</p>
<hr />
<div>{{i18n|Pdnsd}}<br />
<br />
[[Category:Daemons and system services (English)]]<br />
[[Category:Networking (English)]]<br />
[[fr:pdnsd]]<br />
'''[http://www.phys.uu.nl/~rombouts/pdnsd/ pdnsd]''' is a DNS server designed for local caching of DNS information. Correctly configured, it can significantly increase browsing speed on a broadband connection. Compared to [[bind]] or [[dnsmasq]] it can remember its cache after a reboot; "p" stands for persistent. <br />
==Installation==<br />
{{Pkg|pdnsd}} is available in [community]:<br />
# pacman -S pdnsd<br />
<br />
==Configuration==<br />
<br />
===Initial preparation===<br />
The sample configuration file that comes with pdnsd needs a few changes before the daemon can start. First, copy the file to where pdnsd expects it to be:<br />
# cp /etc/pdnsd.conf.sample /etc/pdnsd.conf<br />
<br />
===Format===<br />
The {{ic|pdnsd.conf}} file uses a fairly simple format, but it has some differences from most other configuration files you have likely encountered. It has a collection of sections of various types. A section is started with the name of the type of section and an opening curly bracket ('''{''') and is ended by a closing curly bracket ('''}'''). Sections cannot be nested.<br />
<br />
Inside each block is a series of options of the following format:<br />
option_name=option_value;<br />
<br />
Notice the semicolon at the end; unlike some formats, it is not optional.<br />
<br />
Comments are started with either '''#''' or '''/*'''. The former goes to the end of the line, the latter continues until it reaches '''*/'''.<br />
<br />
===DNS servers===<br />
pdnsd needs to know the address of at least one DNS server to collect DNS information from. This part of the setup differs depending on whether you have a broadband connection or dial-up. Broadband users should use the first server section as a starting point, dial-up users the second, leaving the other server sections commented out.<br />
; label : The {{Ic|label}} option is used to uniquely identify a server section. It is completely arbitrary, but one good choice is the name of your ISP.<br />
; ip : This option, used in the default broadband configuration, tells pdnsd the addresses of DNS servers to use. Multiple addresses should be separated by a single comma, with optional whitespace before or after the comma. You can just copy the addresses from {{ic|etc/resolv.conf}}.<br />
; file : The {{Ic|file}} option can be used instead of {{Ic|ip}} to specify a set of DNS server IPs. Its value is the path to a file with servers listed in {{ic|resolv.conf}} format. The default dial-up configuration uses it because the PPP client writes {{ic|etc/ppp/resolv.conf}} with the addresses it gets from the PPP server. You should not need to change it unless you want to use a different DNS server than your ISP gives you by default.<br />
<br />
The rest of the server section will work without any more changes. For details on all the available options, see the [http://www.phys.uu.nl/~rombouts/pdnsd/doc.html pdnsd manual].<br />
<br />
===OpenDNS===<br />
The {{ic|pdnsd.conf}} file comes with OpenDNS settings built in; you can simply remove (or comment out) the dialup and broadband sections above it (being careful not to remove the necessary global setup at the very top of the file), and then uncomment it to use OpenDNS resolution.<br />
<br />
However, OpenDNS does some weird things to Google. You need to deny results from OpenDNS that return one of OpenDNS’s Google-proxy machines if you want to avoid this behaviour (for many people, it can increase Google requests from, say, 15ms, to 75ms+). The exact servers’ IPs change, but you can run an {{Ic|nslookup www.google.com 208.67.222.222}} to find the current IPs. You’ll know if the query is being proxied, because the server’s name will resolve to something like {{Ic|google.navigation.opendns.com}}. For me, these addresses were {{Ic|208.67.216.230}} and {{Ic|208.67.216.231}}.<br />
<br />
Once you know the IPs, you can replace the {{ic|pdnsd.conf}}’s already-existant {{Ic|rejected}} IPs inside the OpenDNS {{Ic|<nowiki>server { … }</nowiki>}} declaration. Make sure you retain the prefixes.<br />
<br />
===Security===<br />
The default configuration has a security flaw. The daemon runs as {{Ic|nobody}}, a standard account often used when you want to give a user as few permissions as possible. This is a bad idea with pdnsd, as the daemon needs read/write access to the DNS cache. If a malicious user finds a vulnerability in another process running as nobody, they may have the ability to inject false DNS data into the cache, leading to all sorts of possible problems.<br />
<br />
To avoid this risk, you should run pdnsd as a separate user. First you need to create it:<br />
# groupadd pdnsd<br />
# useradd -r -d /var/cache/pdnsd -g pdnsd -s /bin/false pdnsd<br />
<br />
{{ic|/var/cache/pdnsd}} was chosen for the home directory because that is where pdnsd stores its data.<br />
<br />
Next, go back to {{ic|pdnsd.conf}}. This time you will be editing the {{Ic|global}} section at the top of the file. Change {{Ic|run_as}} from {{Ic|nobody}} to {{Ic|pdnsd}}. You should also add the {{Ic|strict_setuid}} option for extra security. Set it to {{Ic|on}}.<br />
<br />
Now the server is too limited; it needs to write to a directory under {{ic|/var/cache}}, but it cannot since it no longer has root privileges. Return some functionality:<br />
# chown -R pdnsd:pdnsd /var/cache/pdnsd<br />
# chmod 700 /var/cache/pdnsd<br />
# chmod 600 /var/cache/pdnsd/pdnsd.cache<br />
<br />
===Testing===<br />
You should now have a working pdnsd daemon. Fire it up and find out.<br />
# /etc/rc.d/pdnsd start<br />
<br />
You can test it with the {{Ic|nslookup}} utility (from the {{Ic|dnsutils}} package).<br />
$ nslookup www.google.com 127.0.0.1<br />
If everything works, you should see a list of IP addresses associated with ''www.google.com''.<br />
<br />
Or you can messure the query time with dig (pacman -S dnsutils):<br />
$ dig @127.0.0.1 google.com | grep "Query time"<br />
<br />
For the second time you look up the address, query time should be around 1 msec.<br />
<br />
===System setup===<br />
Now it is time to point your system toward your brand-new DNS server.<br />
<br />
If you use DHCP to configure your network settings, you need to edit {{ic|/etc/resolv.conf.head}} (otherwise, you should modify {{ic|/etc/resolv.conf}}); add pdnsd before all of the other nameservers:<br />
# pdnsd cache @ localhost<br />
nameserver 127.0.0.1<br />
<br />
All that is left is adding {{Ic|pdnsd}} to your daemons array in {{ic|/etc/[[rc.conf]]}}. It should be immediately after network, as it depends on the network to run, and some daemons that use the network rely on working DNS.<br />
<br />
Restart the network (and {{Ic|pdnsd}} should already be running, from above):<br />
# /etc/rc.d/network restart<br />
<br />
Retest the DNS query time, but this time use the system default DNS server:<br />
$ dig google.com | grep "Query time"<br />
<br />
For the second time you look up the address, query time should be around 1 msec.<br />
<br />
===Performance Settings For Home Broadband Users===<br />
Many users have broadband connections where the DNS server is slow or unreliable, and would like to use {{Ic|pdnsd}} as a caching server to minimize the number of DNS queries that need to be made. After doing the setup detailed above, the following settings in the {{ic|/etc/pdnsd.conf}} will help improve the performance in this role:<br />
<br />
Under global settings:<br />
neg_rrs_pol=on;<br />
par_queries=1;<br />
<br />
Under server settings:<br />
proxy_only=on;<br />
purge_cache=off;<br />
<br />
The {{Ic|<nowiki>neg_rrs_pol=on;</nowiki>}} policy means that when a negative response comes back for a query, the pdnsd server will still cache the result even if the response is not "authoritative". This is important since watching DNS queries will reveal that there are many requests for AAAA records (DNS queries for IPv6) which will never return results since many domains are not using IPv6, as well as MX records since not every domain has an MX record. Without the negative caching, these requests will be sent even after a domain name has been cached, and in this role you do not want the extra DNS requests being made. It is important to use this option in conjunction with the {{Ic|<nowiki>proxy_only=on;</nowiki>}} option to minimize the number of queries coming out of the system.<br />
<br />
The {{Ic|<nowiki>par_queries=1;</nowiki>}} option is useful if you specify more than one DNS server in your "server" section below. It specifies an increment of how many parallel queries will be made at once. For example, if four DNS servers are listed in the "server" section, and {{Ic|<nowiki>par_queries=2;</nowiki>}}, then the first 2 servers will be queried simultaneously, and if both of the first two servers fail, {{Ic|pdnsd}} will move on to the next two and query them simultaneously. The setting used above means that one DNS server at a time gets queried, so you can list two or more DNS servers in the "server" section, and the second one will only be queried if the first one fails. This helps minimize traffic, but if the first server fails you will have to wait through the timeout before the second server will be queried. Tweak this setting for your own preferences, and if you only specify one server in the "server" section then you do not need to worry about it.<br />
<br />
The {{Ic|<nowiki>proxy_only=on;</nowiki>}} setting is mentioned below in the FAQ and is important for home broadband users since you generally are using only one or two DNS servers instead of trying to do the full-blown hierarchical name resolution that a full DNS server would do. This setting will prevent {{Ic|pdnsd}} from resolving all the way back to the "authoritative" name server, and instead accept the results of the DNS servers that were already specified in the "server" section. Once again, this reduces the number of DNS queries you need to make, improving performance.<br />
<br />
The {{Ic|<nowiki> purge_cache=off;</nowiki>}} setting tells {{Ic|pdnsd}} not to remove cache entries even if they have outlived the DNS record's time-to-live metric. This can be very useful when your ISP's DNS server goes down and you want to be able to access name lookups for domains you frequently use despite the outage. Records will still be bumped out of the cache based on age once the cache becomes full (see {{Ic|man pdnsd.conf}} on how to set the size of the cache).<br />
<br />
===Additional Performance Settings===<br />
<br />
====TTLs (Time-To-Live)====<br />
Each DNS resource record returned from a server includes a maximum time-to-live, or TTL. This tells the recipient how long to store the record and when to do a new lookup on it. Many DNS records have relatively short TTLs, such as 3600 (one hour). This means that after one hour, pdnsd will attempt a new lookup on this entry, regardless of whether it has a cached record for it available. It will improve performance to override this default TTL by setting a global minimum TTL, causing fewer lookups to be performed. The disadvantage to using a minimum TTL that is too long is that a cached record may be out of date (the IP address of the host may be changed, but your client will not know this because it will receive the cached address). However, most IP addresses do not change hourly or even daily.<br />
<br />
Times are specified in seconds by default, or you may append an "m", "h", "d", or "w" to the time to specify minutes, hours, days, or weeks.<br />
<br />
{{Ic|<nowiki>min_ttl</nowiki>}} in the global settings sets a minimum TTL for cached records, causing pdnsd to ignore the default TTL in the record received from the server. On a slow connection or with a slow DNS server, you may want to set this to several hours to reduce the number of lookups. ( eg min_ttl=6h; )<br />
<br />
{{Ic|<nowiki>neg_ttl</nowiki>}} in the global settings sets a minimum TTL for non-existent domains. If a server tells pdnsd that a domain does not exist, it will not try to lookup that domain again until this amount of time has elapsed.<br />
<br />
====Timeouts====<br />
Setting shorter timeouts means that pdnsd will give up on an entire query or a given server query more quickly, resulting in faster performance. The disadvantage to setting timeouts too short is that pdnsd might return an error on a lookup simply because the server was not given enough time to respond.<br />
<br />
{{Ic|<nowiki>timeout</nowiki>}} in the global settings determines when pdnsd gives up on an entire query and returns an error to your browser or other client. Setting the global timeout option makes it possible to specify quite short timeout intervals in the server sections (see below). This will have the effect that pdnsd will start querying additional servers fairly quickly if the first servers are slow to respond (but will still continue to listen for responses from the first ones). (If you use query_method=tcp_udp it is recommended that you make the global timeout at least twice as large as the largest server timeout, otherwise pdnsd may not have time to try a UDP query if a TCP connection times out.)<br />
<br />
{{Ic|<nowiki>tcp_qtimeout</nowiki>}} in the global settings determines how long a TCP query connection may be left open.<br />
<br />
{{Ic|<nowiki>timeout</nowiki>}} in the server settings determines how long pdnsd will wait for a response from each server. Setting this to a shorter time means that pdnsd will give up on a non-responsive server more quickly and will move on to the next available server, sometimes resulting in a faster overall response time. On a fast connection, setting this to 4 or 5 seconds is not unreasonable.<br />
<br />
====Debugging====<br />
To see what servers pdnsd is using for a particular lookup, how timeouts are working, and what default TTLs are being used by domains, turn debug on in the global settings:<br />
debug=on;<br />
Restart pdnsd and monitor the file {{ic|/var/cache/pdnsd/pdnsd.debug}} for changes.<br />
<br />
Be sure to turn debug off for general use as leaving it on may degrade performance.<br />
<br />
====Cache Size====<br />
By default, pdnsd will automatically create authoritative records for all entries in {{ic|/etc/hosts}}. If you have a lot of entries, for example if you are using it for ad blocking, the default maximum cache size provided by {{ic|/etc/pdnsd.conf}} may not be large enough, resulting in DNS requests not being cached for their expected amount of time. <br />
<br />
To increase the cache size, edit the {{Ic|<nowiki>perm_cache</nowiki>}} line in the 'global settings' section of configuration file (size in kB).<br />
<br />
Alternatively, you can prevent pdnsd from preemptively sourcing your hosts file by adding the option {{Ic|<nowiki>authrec=off</nowiki>}} to the 'source' section. If, for whatever reason, setting authrec to off does not work, an easy workaround is to create a separate hosts file (eg {{ic|/etc/hosts-pdnsd}}) with only your system information and point your 'source' section to that instead, while leaving your original hosts file intact. This way, pdnsd will reference {{ic|/etc/hosts}} only when performing lookups. So for example:<br />
{{hc|/etc/hosts-pdnsd|<nowiki>#<ip-address> <hostname.domain.org> <hostname><br />
127.0.0.1 localhost.localdomain my_hostname<br />
::1 localhost.localdomain localhost</nowiki>}}<br />
<br />
==Extras==<br />
<br />
===Shared server for your LAN===<br />
If you have several computers on your network, you may want to make pdnsd the DNS server for them all. This allows your entire network to share a single DNS cache, making repeated lookups much faster. To allow this, simply set {{Ic|server_ip}} in the {{Ic|global}} section to the name of your network interface (usually {{Ic|eth0}}). If you have set up a firewall, tell it to allow connections to port 53 from any address on your network.<br />
<br />
Now you can configure the other computers on your network to use the computer running pdns as their primary dns server.<br />
<br />
===Name blocking===<br />
pdnsd allows you to specify hosts or domains that it should never return results for. This allows you to use it as a primitive ad or content blocker, among other things. Create a new {{Ic|neg}} section in {{ic|pdnsd.conf}}. {{Ic|neg}} sections have two main options. {{Ic|name}} is the name of the host or domain you want to block. {{Ic|types}} can be set to {{Ic|domain}} to block all hosts in the given domain. The default {{ic|pdnsd.conf}} gives an example that blocks all ads from doubleclick.net.<br />
<br />
===pdnsd-ctl===<br />
From the pdnsd-ctl(8) manpage:<br />
<br />
:'''''pdnsd-ctl''' controls '''pdnsd''', a proxy dns server with permanent caching. Note that the status control socket must be enabled (by specifying an option on the pdnsd command line or in the configuration file) before you can use '''pdnsd-ctl'''.''<br />
<br />
A couple of useful commands to get you started...<br />
<br />
View cache:<br />
# pdnsd-ctl dump<br />
<br />
Flush cache:<br />
# pdnsd-ctl empty-cache<br />
<br />
==FAQs==<br />
; Q) It does not seem much faster to me. Why? : '''A)''' The extra speed gained from running a local DNS cache is all in how long it takes to connect to a server. Throughput, what people normally think of as speed, will not be affected. The difference is most noticeable when browsing the web, as that typically involves small downloads from several servers. With slower connections, especially dial-up, throughput is the primary bottleneck, so there will not be as large a difference percentage-wise.<br />
; Q) Why is it so much slower now than before? : '''A)''' You almost certainly have the {{Ic|proxy_only}} option turned off in one of the server sections of {{ic|pdnsd.conf}}. By default, pdnsd frequently asks several DNS servers about a domain to get the most accurate response possible. The {{Ic|proxy_only}} option disables this feature. It should be turned on if you use the DNS server provided by your ISP.</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Pdnsd&diff=180091Pdnsd2012-01-24T21:01:57Z<p>Cdwijs: modified dig command to use 127.0.0.1 as the dns server</p>
<hr />
<div>{{i18n|Pdnsd}}<br />
<br />
[[Category:Daemons and system services (English)]]<br />
[[Category:Networking (English)]]<br />
[[fr:pdnsd]]<br />
'''[http://www.phys.uu.nl/~rombouts/pdnsd/ pdnsd]''' is a DNS server designed for local caching of DNS information. Correctly configured, it can significantly increase browsing speed on a broadband connection. Compared to [[bind]] or [[dnsmasq]] it can remember its cache after a reboot; "p" stands for persistent. <br />
==Installation==<br />
{{Pkg|pdnsd}} is available in [community]:<br />
# pacman -S pdnsd<br />
<br />
==Configuration==<br />
<br />
===Initial preparation===<br />
The sample configuration file that comes with pdnsd needs a few changes before the daemon can start. First, copy the file to where pdnsd expects it to be:<br />
# cp /etc/pdnsd.conf.sample /etc/pdnsd.conf<br />
<br />
===Format===<br />
The {{ic|pdnsd.conf}} file uses a fairly simple format, but it has some differences from most other configuration files you have likely encountered. It has a collection of sections of various types. A section is started with the name of the type of section and an opening curly bracket ('''{''') and is ended by a closing curly bracket ('''}'''). Sections cannot be nested.<br />
<br />
Inside each block is a series of options of the following format:<br />
option_name=option_value;<br />
<br />
Notice the semicolon at the end; unlike some formats, it is not optional.<br />
<br />
Comments are started with either '''#''' or '''/*'''. The former goes to the end of the line, the latter continues until it reaches '''*/'''.<br />
<br />
===DNS servers===<br />
pdnsd needs to know the address of at least one DNS server to collect DNS information from. This part of the setup differs depending on whether you have a broadband connection or dial-up. Broadband users should use the first server section as a starting point, dial-up users the second, leaving the other server sections commented out.<br />
; label : The {{Ic|label}} option is used to uniquely identify a server section. It is completely arbitrary, but one good choice is the name of your ISP.<br />
; ip : This option, used in the default broadband configuration, tells pdnsd the addresses of DNS servers to use. Multiple addresses should be separated by a single comma, with optional whitespace before or after the comma. You can just copy the addresses from {{ic|etc/resolv.conf}}.<br />
; file : The {{Ic|file}} option can be used instead of {{Ic|ip}} to specify a set of DNS server IPs. Its value is the path to a file with servers listed in {{ic|resolv.conf}} format. The default dial-up configuration uses it because the PPP client writes {{ic|etc/ppp/resolv.conf}} with the addresses it gets from the PPP server. You should not need to change it unless you want to use a different DNS server than your ISP gives you by default.<br />
<br />
The rest of the server section will work without any more changes. For details on all the available options, see the [http://www.phys.uu.nl/~rombouts/pdnsd/doc.html pdnsd manual].<br />
<br />
===OpenDNS===<br />
The {{ic|pdnsd.conf}} file comes with OpenDNS settings built in; you can simply remove (or comment out) the dialup and broadband sections above it (being careful not to remove the necessary global setup at the very top of the file), and then uncomment it to use OpenDNS resolution.<br />
<br />
However, OpenDNS does some weird things to Google. You need to deny results from OpenDNS that return one of OpenDNS’s Google-proxy machines if you want to avoid this behaviour (for many people, it can increase Google requests from, say, 15ms, to 75ms+). The exact servers’ IPs change, but you can run an {{Ic|nslookup www.google.com 208.67.222.222}} to find the current IPs. You’ll know if the query is being proxied, because the server’s name will resolve to something like {{Ic|google.navigation.opendns.com}}. For me, these addresses were {{Ic|208.67.216.230}} and {{Ic|208.67.216.231}}.<br />
<br />
Once you know the IPs, you can replace the {{ic|pdnsd.conf}}’s already-existant {{Ic|rejected}} IPs inside the OpenDNS {{Ic|<nowiki>server { … }</nowiki>}} declaration. Make sure you retain the prefixes.<br />
<br />
===Security===<br />
The default configuration has a security flaw. The daemon runs as {{Ic|nobody}}, a standard account often used when you want to give a user as few permissions as possible. This is a bad idea with pdnsd, as the daemon needs read/write access to the DNS cache. If a malicious user finds a vulnerability in another process running as nobody, they may have the ability to inject false DNS data into the cache, leading to all sorts of possible problems.<br />
<br />
To avoid this risk, you should run pdnsd as a separate user. First you need to create it:<br />
# groupadd pdnsd<br />
# useradd -r -d /var/cache/pdnsd -g pdnsd -s /bin/false pdnsd<br />
<br />
{{ic|/var/cache/pdnsd}} was chosen for the home directory because that is where pdnsd stores its data.<br />
<br />
Next, go back to {{ic|pdnsd.conf}}. This time you will be editing the {{Ic|global}} section at the top of the file. Change {{Ic|run_as}} from {{Ic|nobody}} to {{Ic|pdnsd}}. You should also add the {{Ic|strict_setuid}} option for extra security. Set it to {{Ic|on}}.<br />
<br />
Now the server is too limited; it needs to write to a directory under {{ic|/var/cache}}, but it cannot since it no longer has root privileges. Return some functionality:<br />
# chown -R pdnsd:pdnsd /var/cache/pdnsd<br />
# chmod 700 /var/cache/pdnsd<br />
# chmod 600 /var/cache/pdnsd/pdnsd.cache<br />
<br />
===Testing===<br />
You should now have a working pdnsd daemon. Fire it up and find out.<br />
# /etc/rc.d/pdnsd start<br />
<br />
You can test it with the {{Ic|nslookup}} utility (from the {{Ic|dnsutils}} package).<br />
$ nslookup www.google.com 127.0.0.1<br />
If everything works, you should see a list of IP addresses associated with ''www.google.com''.<br />
<br />
Or you can messure the query time with dig (pacman -S dnsutils):<br />
$ dig @127.0.0.1 google.com | grep "Query time"<br />
<br />
For the second time you look up the address, query time should be around 1 msec.<br />
<br />
===System setup===<br />
Now it is time to point your system toward your brand-new DNS server.<br />
<br />
If you use DHCP to configure your network settings, you need to edit {{ic|/etc/resolv.conf.head}} (otherwise, you should modify {{ic|/etc/resolv.conf}}); add pdnsd before all of the other nameservers:<br />
# pdnsd cache @ localhost<br />
nameserver 127.0.0.1<br />
<br />
All that is left is adding {{Ic|pdnsd}} to your daemons array in {{ic|/etc/[[rc.conf]]}}. It should be immediately after network, as it depends on the network to run, and some daemons that use the network rely on working DNS.<br />
<br />
Restart the network (and {{Ic|pdnsd}} should already be running, from above):<br />
# /etc/rc.d/network restart<br />
<br />
===Performance Settings For Home Broadband Users===<br />
Many users have broadband connections where the DNS server is slow or unreliable, and would like to use {{Ic|pdnsd}} as a caching server to minimize the number of DNS queries that need to be made. After doing the setup detailed above, the following settings in the {{ic|/etc/pdnsd.conf}} will help improve the performance in this role:<br />
<br />
Under global settings:<br />
neg_rrs_pol=on;<br />
par_queries=1;<br />
<br />
Under server settings:<br />
proxy_only=on;<br />
purge_cache=off;<br />
<br />
The {{Ic|<nowiki>neg_rrs_pol=on;</nowiki>}} policy means that when a negative response comes back for a query, the pdnsd server will still cache the result even if the response is not "authoritative". This is important since watching DNS queries will reveal that there are many requests for AAAA records (DNS queries for IPv6) which will never return results since many domains are not using IPv6, as well as MX records since not every domain has an MX record. Without the negative caching, these requests will be sent even after a domain name has been cached, and in this role you do not want the extra DNS requests being made. It is important to use this option in conjunction with the {{Ic|<nowiki>proxy_only=on;</nowiki>}} option to minimize the number of queries coming out of the system.<br />
<br />
The {{Ic|<nowiki>par_queries=1;</nowiki>}} option is useful if you specify more than one DNS server in your "server" section below. It specifies an increment of how many parallel queries will be made at once. For example, if four DNS servers are listed in the "server" section, and {{Ic|<nowiki>par_queries=2;</nowiki>}}, then the first 2 servers will be queried simultaneously, and if both of the first two servers fail, {{Ic|pdnsd}} will move on to the next two and query them simultaneously. The setting used above means that one DNS server at a time gets queried, so you can list two or more DNS servers in the "server" section, and the second one will only be queried if the first one fails. This helps minimize traffic, but if the first server fails you will have to wait through the timeout before the second server will be queried. Tweak this setting for your own preferences, and if you only specify one server in the "server" section then you do not need to worry about it.<br />
<br />
The {{Ic|<nowiki>proxy_only=on;</nowiki>}} setting is mentioned below in the FAQ and is important for home broadband users since you generally are using only one or two DNS servers instead of trying to do the full-blown hierarchical name resolution that a full DNS server would do. This setting will prevent {{Ic|pdnsd}} from resolving all the way back to the "authoritative" name server, and instead accept the results of the DNS servers that were already specified in the "server" section. Once again, this reduces the number of DNS queries you need to make, improving performance.<br />
<br />
The {{Ic|<nowiki> purge_cache=off;</nowiki>}} setting tells {{Ic|pdnsd}} not to remove cache entries even if they have outlived the DNS record's time-to-live metric. This can be very useful when your ISP's DNS server goes down and you want to be able to access name lookups for domains you frequently use despite the outage. Records will still be bumped out of the cache based on age once the cache becomes full (see {{Ic|man pdnsd.conf}} on how to set the size of the cache).<br />
<br />
===Additional Performance Settings===<br />
<br />
====TTLs (Time-To-Live)====<br />
Each DNS resource record returned from a server includes a maximum time-to-live, or TTL. This tells the recipient how long to store the record and when to do a new lookup on it. Many DNS records have relatively short TTLs, such as 3600 (one hour). This means that after one hour, pdnsd will attempt a new lookup on this entry, regardless of whether it has a cached record for it available. It will improve performance to override this default TTL by setting a global minimum TTL, causing fewer lookups to be performed. The disadvantage to using a minimum TTL that is too long is that a cached record may be out of date (the IP address of the host may be changed, but your client will not know this because it will receive the cached address). However, most IP addresses do not change hourly or even daily.<br />
<br />
Times are specified in seconds by default, or you may append an "m", "h", "d", or "w" to the time to specify minutes, hours, days, or weeks.<br />
<br />
{{Ic|<nowiki>min_ttl</nowiki>}} in the global settings sets a minimum TTL for cached records, causing pdnsd to ignore the default TTL in the record received from the server. On a slow connection or with a slow DNS server, you may want to set this to several hours to reduce the number of lookups. ( eg min_ttl=6h; )<br />
<br />
{{Ic|<nowiki>neg_ttl</nowiki>}} in the global settings sets a minimum TTL for non-existent domains. If a server tells pdnsd that a domain does not exist, it will not try to lookup that domain again until this amount of time has elapsed.<br />
<br />
====Timeouts====<br />
Setting shorter timeouts means that pdnsd will give up on an entire query or a given server query more quickly, resulting in faster performance. The disadvantage to setting timeouts too short is that pdnsd might return an error on a lookup simply because the server was not given enough time to respond.<br />
<br />
{{Ic|<nowiki>timeout</nowiki>}} in the global settings determines when pdnsd gives up on an entire query and returns an error to your browser or other client. Setting the global timeout option makes it possible to specify quite short timeout intervals in the server sections (see below). This will have the effect that pdnsd will start querying additional servers fairly quickly if the first servers are slow to respond (but will still continue to listen for responses from the first ones). (If you use query_method=tcp_udp it is recommended that you make the global timeout at least twice as large as the largest server timeout, otherwise pdnsd may not have time to try a UDP query if a TCP connection times out.)<br />
<br />
{{Ic|<nowiki>tcp_qtimeout</nowiki>}} in the global settings determines how long a TCP query connection may be left open.<br />
<br />
{{Ic|<nowiki>timeout</nowiki>}} in the server settings determines how long pdnsd will wait for a response from each server. Setting this to a shorter time means that pdnsd will give up on a non-responsive server more quickly and will move on to the next available server, sometimes resulting in a faster overall response time. On a fast connection, setting this to 4 or 5 seconds is not unreasonable.<br />
<br />
====Debugging====<br />
To see what servers pdnsd is using for a particular lookup, how timeouts are working, and what default TTLs are being used by domains, turn debug on in the global settings:<br />
debug=on;<br />
Restart pdnsd and monitor the file {{ic|/var/cache/pdnsd/pdnsd.debug}} for changes.<br />
<br />
Be sure to turn debug off for general use as leaving it on may degrade performance.<br />
<br />
====Cache Size====<br />
By default, pdnsd will automatically create authoritative records for all entries in {{ic|/etc/hosts}}. If you have a lot of entries, for example if you are using it for ad blocking, the default maximum cache size provided by {{ic|/etc/pdnsd.conf}} may not be large enough, resulting in DNS requests not being cached for their expected amount of time. <br />
<br />
To increase the cache size, edit the {{Ic|<nowiki>perm_cache</nowiki>}} line in the 'global settings' section of configuration file (size in kB).<br />
<br />
Alternatively, you can prevent pdnsd from preemptively sourcing your hosts file by adding the option {{Ic|<nowiki>authrec=off</nowiki>}} to the 'source' section. If, for whatever reason, setting authrec to off does not work, an easy workaround is to create a separate hosts file (eg {{ic|/etc/hosts-pdnsd}}) with only your system information and point your 'source' section to that instead, while leaving your original hosts file intact. This way, pdnsd will reference {{ic|/etc/hosts}} only when performing lookups. So for example:<br />
{{hc|/etc/hosts-pdnsd|<nowiki>#<ip-address> <hostname.domain.org> <hostname><br />
127.0.0.1 localhost.localdomain my_hostname<br />
::1 localhost.localdomain localhost</nowiki>}}<br />
<br />
==Extras==<br />
<br />
===Shared server for your LAN===<br />
If you have several computers on your network, you may want to make pdnsd the DNS server for them all. This allows your entire network to share a single DNS cache, making repeated lookups much faster. To allow this, simply set {{Ic|server_ip}} in the {{Ic|global}} section to the name of your network interface (usually {{Ic|eth0}}). If you have set up a firewall, tell it to allow connections to port 53 from any address on your network.<br />
<br />
Now you can configure the other computers on your network to use the computer running pdns as their primary dns server.<br />
<br />
===Name blocking===<br />
pdnsd allows you to specify hosts or domains that it should never return results for. This allows you to use it as a primitive ad or content blocker, among other things. Create a new {{Ic|neg}} section in {{ic|pdnsd.conf}}. {{Ic|neg}} sections have two main options. {{Ic|name}} is the name of the host or domain you want to block. {{Ic|types}} can be set to {{Ic|domain}} to block all hosts in the given domain. The default {{ic|pdnsd.conf}} gives an example that blocks all ads from doubleclick.net.<br />
<br />
===pdnsd-ctl===<br />
From the pdnsd-ctl(8) manpage:<br />
<br />
:'''''pdnsd-ctl''' controls '''pdnsd''', a proxy dns server with permanent caching. Note that the status control socket must be enabled (by specifying an option on the pdnsd command line or in the configuration file) before you can use '''pdnsd-ctl'''.''<br />
<br />
A couple of useful commands to get you started...<br />
<br />
View cache:<br />
# pdnsd-ctl dump<br />
<br />
Flush cache:<br />
# pdnsd-ctl empty-cache<br />
<br />
==FAQs==<br />
; Q) It does not seem much faster to me. Why? : '''A)''' The extra speed gained from running a local DNS cache is all in how long it takes to connect to a server. Throughput, what people normally think of as speed, will not be affected. The difference is most noticeable when browsing the web, as that typically involves small downloads from several servers. With slower connections, especially dial-up, throughput is the primary bottleneck, so there will not be as large a difference percentage-wise.<br />
; Q) Why is it so much slower now than before? : '''A)''' You almost certainly have the {{Ic|proxy_only}} option turned off in one of the server sections of {{ic|pdnsd.conf}}. By default, pdnsd frequently asks several DNS servers about a domain to get the most accurate response possible. The {{Ic|proxy_only}} option disables this feature. It should be turned on if you use the DNS server provided by your ISP.</div>Cdwijshttps://wiki.archlinux.org/index.php?title=VDR&diff=177271VDR2012-01-07T09:53:02Z<p>Cdwijs: added gcc for compiling, and libtool for libblueray</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|VDR}}<br />
[[de:VDR]]<br />
{{Article summary start|Summary}}<br />
{{Article summary text|Information on installing and configuring VDR}}<br />
{{Article summary end}}<br />
<br />
[http://www.tvdr.de/ VDR] stands for <b>V</b>ideo <b>D</b>isk <b>R</b>ecorder, an open source software application to turn any PC into a digital video recorder. These initials do not fully explain what VDR is capable of. VDR does also implement all the functions of a modern set-top box to watch either live television or recordings. With the extensive amount of available [http://www.linuxtv.org/vdrwiki/index.php/Plugins plugins] almost countless features can be added, e.g., play DVDs, play audio and video files, view your photo collection, check your email account...<br />
<br />
With its flexibility Arch Linux is perfectly suited for setting VDR up and customizing it. [http://aur.archlinux.org/ AUR], the Arch Linux User-Community Repository, and the [http://sourceforge.net/apps/trac/archvdr/ ArchVDR team] provide PKGBUILDs for VDR and its most commonly used plugins and addons.<br />
<br />
This article is divided into three parts. In the first part I am going to show you how to install VDR on your PC and how to get it up and running. The second part of the article is about how to extend VDR by adding new features like playing DVDs or controlling VDR over the Internet. The third part is about rather advanced features like how to automatically detect and mark commercial breaks in your recordings or how to stream VDR over the Internet.<br />
<br />
==Initial Steps==<br />
This part of the guide is about how to install VDR and how to get it up and running.<br />
<br />
===Hardware Requirements===<br />
VDR is designed to work with a huge variety of DVB cards. See the [http://www.linuxtv.org/vdrwiki/index.php/Main_Page VDR Wiki] for whether or not your specific card will be supported. Let me just tell you that so called budget cards, i.e., cards without a hardware MPEG decoder, work perfectly fine with VDR thanks to plugins like vdr-xineliboutput. At present, HDTV - mainly via DVB-S2 - is becoming more and more popular and the good news is that VDR supports a wide range of such cards, e.g. [http://www.vdr-wiki.de/wiki/index.php/DVB-S2_Budget-PCI-Karten internal PCI cards]. A widely used HDTV card is Hauppauge's Nova-HD-S2, which comes with a remote control that can be used in VDR, more about that later. Ok then, lets get into more detail.<br />
<br />
===Installation===<br />
<br />
Even though you can install VDR from the [http://aur.archlinux.org/ AUR], [http://wiki.archlinux.org/index.php/AUR_User_Guidelines installing], it is recommendable to use the up-do-date [http://wiki.archlinux.org/index.php/PKGBUILD PKGBUILDs] for VDR, its plugins and addons provided by the [http://sourceforge.net/apps/trac/archvdr/ ArchVDR team]. The [http://sourceforge.net/apps/trac/archvdr/wiki/ArchVDR Wiki] explains further details on how to get the files.<br />
<br />
==== Prepare for compilation ====<br />
First step is to install the needed packages:<br />
# pacman -S subversion fakeroot patch sudo linuxtv-dvb-apps at make<br />
# pacman -S autoconf automake git pkg-config<br />
# pacman -S libvdpau libogg flac libvorbis libmng libtheora a52dec<br />
# pacman -S faad2 faac x264 ffmpeg libdca libpulse mercurial<br />
# pacman -S ffmpeg cvs libdca mesa freeglut<br />
# pacman -S w3m gcc libtool<br />
<br />
==== Getting the pkgbuilds ====<br />
Now issue the following commands to get the pkgbuilds:<br />
$ svn co https://archvdr.svn.sourceforge.net/svnroot/archvdr archvdr<br />
$ cd archvdr/trunk/archvdr/<br />
<br />
==== Install ttf-vdrsymbols ====<br />
First install ttf-vdrsymbols:<br />
$ cd ttf-vdrsymbols/<br />
$ makepkg<br />
# pacman -U ttf-vdrsymbols-20100612-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
==== start-stop-daemon ====<br />
$ cd start-stop-daemon/<br />
$ makepkg<br />
# pacman -U start-stop-daemon-1.15.8.11-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
==== vdr ====<br />
$ cd vdr-1.7.22/<br />
$ makepkg<br />
# pacman -U vdr-1.7.22-3-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
==== libblueray ====<br />
$ cd libbluray/<br />
$ makepkg<br />
# pacman -U libbluray-20110620-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
==== xine-lib ====<br />
$ cd xine-lib-1.2/<br />
$ makepkg<br />
# pacman -U xine-lib-1.2-11678-7-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
==== vdr-plugin-xineliboutput-git ====<br />
$ cd vdr-plugin-xineliboutput-git/<br />
$ makepkg<br />
# pacman -U vdr-plugin-xineliboutput-git-20110620-1-i686.pkg.tar.xz<br />
<br />
The VDR package's install script will create a special user called ''vdr'', especially for running VDR. The vdr user will be added to the video group so that it can access DVB cards and should own VDR's configuration files in /etc/vdr and the recordings and Electronic Programme Guide (EPG) directories /var/spool/video and /var/spool/epg.<br />
<br />
=== DVB Card Kernel Modules and Firmware ===<br />
If you own one of the famous [http://www.vdr-wiki.de/wiki/index.php/DVB-S_full-featured-Karten full-featured DVB-S cards] (with hardware MPEG decoder) from Technotrend (identical in construction to Hauppauge Nexus, Technisat Skystar 1 and Fujitsu-Siemens DVB-S), you might have to do a little extra work since, at least on my computer, a wrong module gets control of the card. On my computer the command "lspci -k" shows the following output:<br />
<br />
03:02.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)<br />
Subsystem: Technotrend Systemtechnik GmbH Technotrend/Hauppauge DVB card rev2.3<br />
Kernel driver in use: dvb<br />
Kernel modules: dvb-ttpci, snd-aw2<br />
<br />
As you can see, two modules, dvb-ttpci and snd-aw2, are assigned to the DVB card while only the former should take control. Simply add the unwanted one to the list in /etc/rc.conf:<br />
<br />
MODULES=(... !snd-aw2 ...)<br />
<br />
A restart of the computer should do the rest. Another two things you might do before the restart: if you own one of those full-featured cards (perhaps also for some other cards), you will also need a [http://www.linuxtv.org/downloads/firmware/ firmware] for the card to work. For the full-featured Technotrend cards the firmware is dvb-ttpci-01.fw and has to be placed into the folder /lib/firmware. Instead of restarting the computer you just can unload and load the kernel module dvb_ttpci. The second thing which requires at least a new login to take effect is to add yourself to the group "video" (gpasswd -a <username> video).<br />
<br />
Also other cards, like the already mentioned DVB-S2 card Nova-HD-S2 from Hauppauge require a firmware to be put into /lib/firmware, in the case of the Nova-HD-S2 the firmware's name is dvb-fe-cx24116.fw. Do not forget to eiter reload the card's module or to restart the computer.<br />
<br />
===Starting VDR===<br />
You can now start vdr:<br />
# /etc/rc.d/vdr start<br />
VDR logs to /var/log/everything.log:<br />
# tail -f /var/log/everything.log<br />
Now connect to vdr with xine. This must be done by the same user that has started the X server, not the user vdr. This should yield a screen with "no signal"<br />
$ vdr-sxfe<br />
<br />
VDR can be automatically started when the PC is booted by adding it to /etc/rc.conf:<br />
DAEMONs=(... @vdr)<br />
<br />
If you want to change the user running VDR, the destination of the video directory or the configuration files, you can do so by editing the VDR's configuration file (/etc/default/vdr):<br />
<br />
OPTIONS="-u franz -c /video -v /video -E /video/epg.data -w 60"<br />
<br />
==Extending VDR==<br />
===Plugins===<br />
As already mentioned in the introduction, the functionality of VDR can be extended with [http://www.linuxtv.org/vdrwiki/index.php/Plugins plugins]. The following set of plugins, all available from ArchVDR, will make a usable basic VDR installation<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Epgsearch-plugin vdr-epgsearch], a replacement schedule with extended functionality. The epgearch plugin is being used by the plugin vdr-live.<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Extrecmenu-plugin vdr-extrecmenu], a replacement recordings menu with extended functionality.<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Femon-plugin vdr-femon], a frontend status monitor.<br />
* [http://streamdev.vdr-developer.org/ vdr-streamdev], a streaming server/client. Easy to set up with vdradmin-am.<br />
* [http://live.vdr-developer.org/en/index.php vdr-live], a web interface that can be used to control VDR, view and search the EPG, schedule recordings and stream live TV.<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Xineliboutput-plugin vdr-xineliboutput], which provides a frontend for VDR and can be used with cards without a hardware MPEG decoder.<br />
<br />
VDR does not support MHEG-5 teletext ("The Red Button" in the UK), so the [http://aur.archlinux.org/packages.php?ID=36420 vdr-rssreader] plugin can make a useful alternative.<br />
<br />
====How to Setup a Plugin====<br />
The command line syntax for running a plugin with VDR is<br />
<br />
vdr -P"name [OPTIONS]"<br />
<br />
and the quickest way to find out what options each installed plugin has is to run<br />
<br />
$ vdr --help<br />
<br />
Once installed, the plugins are loaded automatically when VDR is being started. If you want to alter the configuration of a plugin, you can do so editing the according config file in /etc/vdr/plugins/.<br />
<br />
===Remote Control===<br />
You might want to control VDR not only by keyboard but using a remote control while relaxing on the couch. On one hand, there is [http://www.lirc.org/ LIRC], which works with every DVB card, because it works independently from your DVB card. On the other hand, provided that your DVB device has an integrated IR-reciever, you might give the plugin [http://www.linuxtv.org/vdrwiki/index.php/Remote-plugin vdr-remote] a try. Both possibilities will be described here.<br />
<br />
====LIRC====<br />
To setup VDR to make use of your [[LIRC]] remote control you have to adjust the file /etc/vdr/remote.conf. The labeling after "LIRC.", e.g., "Up" has to correspond with the labeling in /etc/lircd.conf. The second column stands for the correspondent VDR command.<br />
<br />
<pre><br />
LIRC.Up Up<br />
LIRC.Down Down<br />
LIRC.Menu Menu<br />
LIRC.Ok Ok<br />
LIRC.Back Back<br />
LIRC.Left Left<br />
LIRC.Right Right<br />
LIRC.Red Red<br />
LIRC.Green Green<br />
LIRC.Yellow Yellow<br />
LIRC.Blue Blue<br />
LIRC.0 0<br />
LIRC.1 1<br />
LIRC.2 2<br />
LIRC.3 3<br />
LIRC.4 4<br />
LIRC.5 5<br />
LIRC.6 6<br />
LIRC.7 7<br />
LIRC.8 8<br />
LIRC.9 9<br />
LIRC.Power Power<br />
LIRC.Volume+ Volume+<br />
LIRC.Volume- Volume-<br />
LIRC.Mute Mute<br />
LIRC.Audio Audio<br />
LIRC.Recordings Recordings<br />
LIRC.Info Info<br />
</pre><br />
<br />
Finally, make sure to add the option "--lirc" to the VDR command line<br />
<pre><br />
$ vdr ... --lirc<br />
</pre><br />
or enable LIRC in /etc/runvdr.conf if you are using runvdr-extreme<br />
<pre><br />
# Use a LIRC remote control device. If set to 1, vdr uses /var/run/lirc/lircd.<br />
# If not set, or set to 0, do not use LIRC.<br />
LIRC=1<br />
</pre><br />
<br />
====Remote Plugin====<br />
This plugin only works with cards with build-in IR-recievers, as on Technotrend's full-featured cards or on the Hauppauge Nova-HD-S2. Install the package vdr-remote from ArchVDR and use the guide on the [http://www.linuxtv.org/vdrwiki/index.php/Remote-plugin VDR Wiki] to set it up.<br />
<br />
===Configuring VDR===<br />
<br />
====Channel Scan====<br />
Make sure that the file channels.conf in /etc/vdr concurs with the satellite your dish is pointing at. [http://www.linowsat.de/settings/vdr.html Linowsat] provides up-to-date channel lists for all satellites out there.<br />
<br />
If you own a DVB-T or DVB-C card then either the scan utility from [http://www.archlinux.org/packages/?q=linuxtv-dvb-apps linuxtv-dvb-apps] or [http://www.vdr-wiki.de/wiki/index.php/W_scan w_scan], which is available from the [http://aur.archlinux.org/ AUR], will be your friend. (You might have to use translate.google.com for translating w_scan's German wiki into English.) If you live in the UK then scan has the advantage over w_scan because it can output channels in Logical Channel Number order for VDR, i.e. channel 1 will be BBC ONE, 2 will be BBC TWO etc.<br />
<pre><br />
$ scan -o vdr -e 3 -p -x 0 -t 3 -u -U -q -q <path_to_initial_tuning_data_file> > channels.conf<br />
</pre><br />
<pre><br />
$ cat /etc/vdr/channels.conf<br />
:@1 <br />
BBC ONE;BBC:505833:C34D34M16B8T2G32Y0:T:27500:600:601=eng,602=eng:0:0:4164:9018:4100:0<br />
:@2 <br />
BBC TWO;BBC:505833:C34D34M16B8T2G32Y0:T:27500:610:611=eng,612=eng:0:0:4228:9018:4100:0<br />
:@3 <br />
ITV1;ITV:481833:C23D12M64B8T2G32Y0:T:27500:520:521=eng,522=eng:0:0:8261:9018:8197:0<br />
:@4 <br />
Channel 4;Channel 4 TV:481833:C23D12M64B8T2G32Y0:T:27500:560:561=eng,562=eng:0:0:8384:9018:8197:0<br />
:@5 <br />
FIVE;five:481833:C23D12M64B8T2G32Y0:T:27500:540:541=eng,542=eng:0:0:8500:9018:8197:0<br />
</pre><br />
<br />
====Controlling and Displaying VDR====<br />
Eventually, we want to make sure that we can submit controls to and can see the output (live tv and menu) of VDR. <br />
<br />
Full-featured cards have got a VGA connector on the card in order to connect an external TV set, alternatively this role can be taken over by DXR 3/Hollywood+ cards. Nevertheless, these possibilities are getting less important nowadays. On one hand with the advent of computer screens with 24 or even more inches the computer screen itself has become very attractive for watching TV, on the other hand, new TV sets do also have an implemented DVI, HDMI, or even DisplayPort input allowing the computer's graphics board to become the output device.<br />
<br />
Therefore, this guide focuses on the VDR output on an X-server. BTW, to make us of the VGA output of your full-featured card you simply have to connect your TV set using an adequate VGA cable.<br />
<br />
For testing purposes it makes sense to control VDR with the keyboard. For how to control VDR by remote control see [[VDR#Remote_Control | below]]. If you have a full-featured card there are two ways of dispaying the VDR screen and to control VDR by keyboard, if you own a budget card, one possibility will be given.<br />
<br />
=====TVtime - Full-Featured Cards Only=====<br />
[http://tvtime.sourceforge.net/ TVtime] is a TV application which can be used to display VDR's screen. Install the packages tvtime and the wrapper script [http://vdrportal.de/board/thread.php?threadid=18234 vdr-tvtime] from [http://aur.archlinux.org/ AUR]. To control VDR, adjust the first column of the file /etc/tvtime/maps.txt according to your liking. Here is an example:<br />
<br />
<pre><br />
m Menu<br />
Enter Ok<br />
Backspace Back<br />
F1 Red<br />
F2 Green<br />
F3 Yellow<br />
F4 Blue<br />
+ Channel+<br />
- Channel-<br />
u Volume+<br />
d Volume-<br />
c Channels<br />
t Timers<br />
r Recordings<br />
s Setup<br />
a Audio<br />
n Info<br />
f TVTIME_f<br />
</pre><br />
<br />
Now you can start VDR (/etc/rc.d/runvdr start). Then execute the script "vdr-tvtime.pl". TVtime should display the VDR screen and you should also be able to control VDR with the keyboard.<br />
<br />
=====Xineliboutput - Full-Featured and Budget Cards=====<br />
The plugin vdr-xineliboutput enables VDR to be used with cards without a hardware MPEG decoder chip such as the often mentioned Hauppauge Nova-HD-S2. <br />
<br />
======Configuring vdr-xineliboutput======<br />
There are some xine configuration changes that can improve performance with VDR. Make sure that xine is not running then edit the following in ${HOME}/.xine/config<br />
<pre><br />
# number of audio buffers<br />
# numeric, default: 230<br />
engine.buffers.audio_num_buffers:500<br />
<br />
# number of video buffers<br />
# numeric, default: 500<br />
engine.buffers.video_num_buffers:1000<br />
<br />
# default number of video frames<br />
# numeric, default: 15<br />
engine.buffers.video_num_frames:22<br />
<br />
# method to sync audio and video<br />
# { metronom feedback resample }, default: 0<br />
audio.synchronization.av_sync_method:resample<br />
<br />
# enable resampling<br />
# { auto off on }, default: 0<br />
audio.synchronization.resample_mode:on<br />
</pre><br />
<br />
Using xine-ui-vdr you can also use your keyboard to control VDR. Start Xine once and close it so that the file ~/.xine/keymap is going to be created. Edit this file so that at least the basic keys for controlling VDR will work, e.g.,<br />
<pre><br />
# jump to media Menu<br />
Menu {<br />
key = m<br />
modifier = none<br />
}<br />
<br />
# menu navigate up<br />
EventUp {<br />
key = Up<br />
modifier = none<br />
}<br />
<br />
# menu navigate down<br />
EventDown {<br />
key = Down<br />
modifier = none<br />
}<br />
<br />
# menu navigate left<br />
EventLeft {<br />
key = Left<br />
modifier = none<br />
}<br />
<br />
# menu navigate right<br />
EventRight {<br />
key = Right<br />
modifier = none<br />
}<br />
<br />
# menu select<br />
EventSelect {<br />
key = Return<br />
modifier = none<br />
}<br />
<br />
# VDR Red button<br />
VDRButtonRed {<br />
key = F1<br />
modifier = none<br />
}<br />
<br />
# VDR Green button<br />
VDRButtonGreen {<br />
key = F2<br />
modifier = none<br />
}<br />
<br />
# VDR Yellow button<br />
VDRButtonYellow {<br />
key = F3<br />
modifier = none<br />
}<br />
<br />
# VDR Blue button<br />
VDRButtonBlue {<br />
key = F4<br />
modifier = none<br />
}<br />
<br />
# VDR Command back<br />
VDRBack {<br />
key = BackSpace<br />
modifier = none<br />
}<br />
<br />
# menu select<br />
Alias {<br />
entry = EventSelect<br />
key = KP_Enter<br />
modifier = none<br />
}<br />
</pre><br />
Also remember that you will get an error if you assign a key twice, make sure therefore to change for instance the key for "SpeedFaster" from "Up" to "VOID". It is possible, however, to assign two keys to the same event, you do so with the "Alias" keyword. More information on the [http://xinehq.de/index.php/readme Xine website].<br />
<br />
Start Xine with the following command:<br />
<br />
$ xine "xvdr+tcp://<VDR's IP address>:37890#nocache" <br />
<br />
By adding the option "-D" (deinterlace) the picture quality is increased.<br />
<br />
It might be necessary to adjust the plugin's configuration (/etc/vdr/plugins/plugin.xinliboutput.conf)<br />
<br />
--local=none<br />
--primary <br />
--remote=<VDR's IP address>:37890 <br />
<br />
==Special Features==<br />
<br />
This part is meant for advanced users of VDR who might get some little hint on how to enhance their VDR installation.<br />
<br />
===Noad - <b>No</b> <b>Ad</b>vertisement===<br />
<br />
[http://noad.freepgs.com/ Noad]{{Linkrot|2011|09|04}} is able to detect commercials and to set cutting marks accordingly. The package "noad" is available on AUR. And let me tell you, noad does a great job. Even though I always check the marks before starting the cutting process it is very seldom that I have to correct them within a movie. It is more outside a movie, i.e., within the recording buffer before and after the movie, that sometimes marks have to be manually eliminated.<br />
<br />
By adding the following to the VDROPTS section of the file /etc/rc.vdr, noad is being executed automatically after a recording has been completed.<br />
<br />
-r'/usr/bin/noad nice -b -O -C -a -j --statisticfile=/video/noadstat'<br />
<br />
The second possibility is to start the commercial detection process manually from the commands menu of the recordings. Just edit the file /etc/vdr/reccmds.conf and add the following line:<br />
<br />
start noad: /usr/bin/noad nice --background -O -C -a -j --statisticfile=/video/noadstat<br />
<br />
As a third possibility you can start noad on the command line. For how to do that and for an explanation of all the command line options check the [http://noad.freepgs.com/README.en.html README]{{Linkrot|2011|09|04}} (also available in /usr/share/doc/noad/).<br />
<br />
===Augment VDR's EPG===<br />
<br />
====xmltv2vdr====<br />
Some channels like BBC or ITV do only provide EPG information for the current and the next broadcast which is somewhat unspectacular compared to the standards set by other broadcasting services like ARD (Germany) or ORF (Austria). Fortunately, [http://wiki.xmltv.org/index.php/Main_Page XMLTV] can step into the breach as it is able to get TV-listings for one ore even more weeks in advance. You can follow [[XMLTV_HOWTO | this guide]] to install and configure XMLTV.<br />
<br />
The XML-file created by XMLTV has to be converted in order that VDR can use the data. For this purpose the script [http://www.vdr-wiki.de/wiki/index.php/Xmltv2vdr xmltv2vdr] has been written, it is availabe on [http://aur.archlinux.org/ AUR]. Install it and follow the README in /usr/share/doc/xmltv2vdr/. The example file channels.conf has been prepared in /etc/xmltv2vdr:<br />
<br />
BBC 1 London;BSkyB:10773:h:S28.2E:22000:5000:5001=eng,5002=NAR:5003:1:6301:2:2045:0:london.bbc1.bbc.co.uk<br />
BBC 2 England;BSkyB:10773:h:S28.2E:22000:5100:5101=eng,5102=NAR:5103:1:6302:2:2045:0:london.bbc2.bbc.co.uk<br />
BBC THREE;BSkyB:10773:hC56:S28.2E:22000:5200:5201=eng,5202=NAR:5203:0:6319:2:2045:0:bbcthree.bbc.co.uk<br />
BBC FOUR;BSkyB:10773:hC56:S28.2E:22000:5300:5301=eng,5302=NAR:5303:0:6316:2:2045:0:bbcfour.bbc.co.uk<br />
BBC NEWS;BSkyB:11954:hC23:S28.2E:27500:5000:5001=eng:5003:0:6704:2:2013:0:news-24.bbc.co.uk<br />
CBBC Channel;BSkyB:10773:h:S28.2E:22000:5200:5201=eng,5202=NAR:5203:0:6317:2:2045:0:cbbc.bbc.co.uk<br />
CBeebies;BSkyB:10773:h:S28.2E:22000:5300:5301=eng,5302=NAR:5303:0:6318:2:2045:0:cbeebies.bbc.co.uk<br />
ITV1 London;BSkyB:10759:vC56:S28.2E:22000:2305:2312=eng,2314=NAR:2315:0:10060:2:2044:0:carlton.com<br />
ITV2;BSkyB:10759:vC56:S28.2E:22000:2352:2354=eng,2356=NAR:2358:0:10070:2:2044:0:itv2.itv.co.uk<br />
ITV3;BSkyB:10906:vC56:S28.2E:22000:2362:2356=eng,2357=NAR:2359:0:10260:2:2054:0:itv3.itv.co.uk<br />
ITV4;BSkyB:10759:vC56:S28.2E:22000:2359:2360=eng,2361=NAR:2362:0:10072:2:2044:0:itv4.itv.co.uk<br />
Film4;BSkyB:10714:hC56:S28.2E:22000:2346:2347=eng,2348=NAR:2349:0:9220:2:2041:0:filmfour.channel4.com<br />
More4;BSkyB:10729:vC56:S28.2E:22000:2361:2362=eng,2363=NAR:2364:0:8340:2:2042:0:more4.channel4.com<br />
E4;BSkyB:10729:vC56:S28.2E:22000:2315+2306:2317=eng,2319=NAR:2321:0:8305:2:2042:0:e4.channel4.com<br />
<br />
You can create a cronjob to get the updating of the EPG data done automatically, your crontab could look like this:<br />
<br />
00 00 * * * tv_grab_uk_rt --config-file ~/.xmltv/tv_grab_uk_rt.conf --quiet > /tmp/uk.xml<br />
05 00 * * * xmltv2vdr.pl -x /tmp/uk.xml -c /etc/xmltv2vdr/channels.conf<br />
<br />
====vdraepg====<br />
[http://www.vdrportal.de/board/thread.php?postid=632294 vdraepg] is a Ruby-script which transfers EPG-data from one channel to another, i.e., the data is not being downloaded from the Internet as with XMLTV, but is already present in VDR's EPG-information.<br />
<br />
This makes sense in some cases when, for example, a channel is available on DVB-T, but does not have as elaborate an EPG as the same channel on DVB-S (which, for instance, might even be encrypted). The script can also be used to change the time information. So the script can transfer EPG-data from, e.g., ITV2 to ITV2+1, just by adding one hour to the EPG-information from ITV2.<br />
<br />
You can install the package vdraepg from [http://aur.archlinux.org/ AUR]. Read the file /usr/share/doc/vdraepg/README.en for instructions on how to set vdreapg up. An example configuration has been prepared (etc/vdraepg/vdraepg.conf)<br />
<br />
#source-channel, target-channel, time-adjustment<br />
S28.2E-2-2044-10070, S28.2E-2-2041-10172, 60 #itv2, itv2+1<br />
S28.2E-2-2054-10260, S28.2E-2-2054-10261, 60 #itv3, itv3+1<br />
S28.2E-2-2042-8335, S28.2E-2-2042-8330, 60 #film4, film4+1<br />
S19.2E-1-1101-28106, T-0-562-1, 0 #ARD, DVBS --> DVB-T<br />
<br />
Again it might make sense for you to have vdraepg run as a cronjob:<br />
<br />
10 00 * * * vdraepg.rb<br />
<br />
===Streaming VDR===<br />
<br />
====Over the Local Area Network (LAN)====<br />
Imagine having your computer running VDR somewhere in your study, living room, or even in your cellar and watching live tv and recordings provided by the same VDR on a deck chair in your garden. This whish can be put into practice.<br />
<br />
The very same plugin that we already [[VDR#Xineliboutput - Full-Featured and Budget Cards | used with budget cards]] we are going to use again to show the VDR frontend on any computer on the LAN or WLAN: vdr-plugin-xineliboutput.<br />
<br />
On the remote computer the packages xine-lib-vdr and xine-ui-vdr, availabe on [http://aur.archlinux.org/ AUR], have to be installed.<br />
<br />
Adjust the file ~/.xine/keymap as described [[ Xineliboutput - Full-Featured and Budget Cards | above ]] to control VDR with the keyboard. <br />
<br />
Now watch your favorite movies any place in and around your house:<br />
<br />
xine "xvdr+tcp://<VDR's IP address>:37890#nocache" -D<br />
<br />
====Over the Internet====<br />
Theoretically, the concept of streaming VDR over LAN or WLAN with the plugin vdr-xine can also be adopted to the Internet. The point is, though, that the requirements in terms of bandwith will only be fullfilled in very rare cases. To stream VDR without further compression you are going to need an upstream speed of three or even more Mbit/s, according to the bitrate of the broadcast. Therefore, John Doe has to use highly optimized codecs like H.264 AVC and this is exactly what this part of the tutorial about streaming VDR over the Internet will be about.<br />
<br />
Even though the quality of the video is visibly diminished, the result looks startlingly great and you can watch live TV and recordings with hardly any cutback. <br />
<br />
You can control the remote VDR with either the [[http://live.vdr-developer.org/en/index.php | LIVE plugin]] or SVDRP software like [http://www.chrisz.de/blog/?p=61 "VDR Remote Control"] (unsecure, since the SVDRP port has to be forwarded on your router). You can even use your iPhone or iPod Touch with the application [http://www.vdr-wiki.de/wiki/index.php/ZapperPro ZapperPro], available in the Apple Store. As a requirement you need access to to the Internet through WLAN. Be careful regarding the security issue when opening the SVDRP port to the Internet.<br />
<br />
Two concepts will be provided, since using the same techniques, the quality of the resulting stream should be similar.<br />
<br />
=====StreamDev Plugin=====<br />
An easy approach and also the recommended one is to set up the plugin Streamdev from ArchVDR. <br />
<br />
======Server======<br />
The plugin's config file (/etc/vdr/plugins/plugin.streamdev-server.conf) has to have a reference to the file externremux.sh.<br />
<br />
-r /usr/bin/externremux.sh<br />
<br />
That is the content of the file /usr/bin/externremux.sh, adjust it to your liking:<br />
<pre><br />
# externremux.sh<br />
<br />
# CONFIG START<br />
TMP=/tmp/externremux-${RANDOM:-$$}<br />
STREAMQUALITY="150"<br />
# CONFIG END<br />
<br />
mkdir -p $TMP<br />
mkfifo $TMP/out.avi<br />
(trap "rm -rf $TMP" EXIT HUP INT TERM ABRT; cat $TMP/out.avi) &<br />
<br />
case ${1:-$STREAMQUALITY} in<br />
"100") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=100:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=32:q=2:mode=3 -vf pp=ci,scale -zoom -xy 320 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"150") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=150:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=32:q=2:mode=3 -vf pp=ci,scale -zoom -xy 320 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"200") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=200:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=32:q=2:mode=3 -vf pp=ci,scale -zoom -xy 360 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"250") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=250:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=48:q=2:mode=3 -vf pp=ci,scale -zoom -xy 400 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"300") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=300:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=48:q=2:mode=3 -vf pp=ci,scale -zoom -xy 440 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"350") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=350:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=48:q=2:mode=3 -vf pp=ci,scale -zoom -xy 440 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"400") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=400:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=64:q=2:mode=3 -vf pp=ci,scale -zoom -xy 480 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"450") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=450:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=64:q=2:mode=3 -vf pp=ci,scale -zoom -xy 480 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"500") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=500:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=128:q=2:mode=3 -vf pp=ci,scale -zoom -xy 480 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"750") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=750:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=128:q=2:mode=3 -vf pp=ci -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"1000") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=1000:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=128:q=2:mode=3 -vf pp=ci -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
<br />
*) touch $TMP/out.avi ;;<br />
esac<br />
</pre><br />
<br />
======Client======<br />
On the client side only VLC has to be installed, you can start the streaming process with<br />
<br />
vlc "http://<VDR's public IP>:3000/extern;250/19"<br />
<br />
In this example, channel 19 is being streamed with the "250" option resulting in 250 Kbit Video and 48 Kbit Audio streaming. Make sure to forward port 3000 to the computer running VDR.<br />
<br />
=====VLC=====<br />
[http://www.videolan.org/vlc/ VLC] is not only a well known multimedia player, but is also perfectly suited to encode and stream video and audio. Therefore, we use it to grab audio and video in order to encode and stream VDR over the Internet. VLC has to be installed on the server as well as on the client.<br />
<br />
======Server======<br />
Adjust "vb=250" (video bit rate) and "ab=48" (audio bit rate) in the following commands according to your upload speed. The two values in the example work great with an upstream of 384 Kbit/sec.<br />
<br />
'''Full-Featured Cards Only'''<br />
<br />
Start the video streaming on the computer running VDR with the following command (for easy access you can include the command in /etc/vdr/commands.conf):<br />
<br />
/usr/bin/cvlc -d v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/dsp" :v4l-norm=3 :v4l-frequency=-1 --sout #transcode{vcodec=h264,vb=250,scale=0.5,acodec=mp4a,ab=48,channels=1}:duplicate{dst=std{access=http,mux=ts,dst=0.0.0.0:1234}}'<br />
<br />
'''Full-Featured and Budget Cards'''<br />
<br />
You need to install the plugin vdr-xineliboutput, available on [http://aur.archlinux.org/ AUR]. You start the video streaming with the following command:<br />
<br />
cvlc http://localhost:37890 :http-caching=3000 :sout="#transcode{vcodec=h264,vb=200,scale=0.5,acodec=mp4a,ab=48,channels=1}:duplicate{dst=std{access=http,mux=ts,dst=0.0.0.0:1234}}"<br />
<br />
======Client======<br />
<br />
On the remote computer you can open the stream with the following command. If the computer running VDR is behind a router, make sure the port 1234 is being forwarded.<br />
<br />
vlc http://<VDR's public IP>:1234<br />
<br />
Make sure to forward port 1234 to the computer running VDR.<br />
<br />
====Streaming to iPhone, iPad and iPod====<br />
Wouldn't it be great to access your VDR on the go, e.g., on the train or just in a boring meeting ;-) Well, [http://projects.vdr-developer.org/projects/istreamdev/news iStreamDev] makes exactly that possible. iStreamDev is a relatively new project with the aim of watching live TV, playing VDR's recordings and even streaming arbitraty video and audio files from your PC at home to Apple's mobile devices, over Wifi as well as over UMTS. The setup is rather simple, just follow the [http://projects.vdr-developer.org/wiki/istreamdev/INSTALL guide]{{Linkrot|2011|09|04}}. To ensure you are motivated to get started, have a look at some [http://projects.vdr-developer.org/wiki/istreamdev/SCREENSHOTS screenshots]{{Linkrot|2011|09|04}}. Believe me, it is as awesome as it looks!<br />
<br />
When configuring Apache and PHP, make sure to add your VDR video directory to the open_basedir line in /etc/php/php_ini, e.g.<br />
<br />
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/video/<br />
<br />
As for now, to make it work on the iPad you have to use the git version.<br />
<br />
==Conclusion==<br />
I remember having almost given up on setting up VDR on Arch Linux at the very beginning because of the problem mentioned above with the wrongly loaded module for my full-featured card. This guide might help some of you to also get beyond the point of only trying to get VDR up and running.<br />
<br />
This guide is not intended to be complete and it never will be. Hopefully, with the cooperation of you guys it will become more and more detailed and useful.<br />
<br />
==References==<br />
* [http://www.tvdr.de/index.htm VDR Homepage]<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Main_Page VDR Wiki]<br />
* [http://www.vdr-portal.de/board/portal.php German User Forum]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Wake-on-LAN&diff=177261Wake-on-LAN2012-01-07T08:55:34Z<p>Cdwijs: corrected instructions to obtain MAC address of the card</p>
<hr />
<div>[[Category:Networking (English)]]<br />
{{i18n|Wake-on-LAN}}<br />
This article deals with Wake-on-LAN (wol, wake on lan), what it is, how it can be used from an Arch Linux computer, and its general uses. Basically put, Wake-on-LAN, otherwise known as 'wol' is the ability to switch on a computer that is connected to a network (be it the internet or intranet). This can be a very useful ability.<br />
<br />
It is important to note that Wake-on-LAN applies to the computers being physically connected (ie, not wireless).<br />
<br />
=Does my motherboard support Wake-on-LAN?=<br />
<br />
For Wake-on-LAN to work, the target computer motherboard must support this feature. Generally speaking, the Wake-on-LAN (non)ability of the target motherboard will be specified by the hardware manufacturer. Sometimes, this ability is evident by browsing through said motherboard's BIOS and looking for something like 'PCI Power up'. Most modern motherboards should support Wake-on-LAN.<br />
<br />
=Ensure that Wake-on-LAN is enabled and survives a reboot=<br />
<br />
A common problem with the Wake-on-LAN in computers running Linux is that the network drivers have Wake-on-LAN switched off by default. To manually switch on the Wake-on-LAN feature on your driver, you'll need ethtool:<br />
# pacman -S ethtool<br />
<br />
First query the driver to see if it's defaulted to 'on' by using ethtool:<br />
<br />
<pre> # ethtool eth0 | grep Wake-on<br />
Supports Wake-on: pg<br />
Wake-on: d</pre><br />
<br />
{{Note|We need a 'Wake-on' value of 'g' for WOL to work.}}<br />
<br />
To enable the wol feature in the driver, simply run the following<br />
# ethtool -s eth0 wol g<br />
<br />
This command does not last beyond the '''next''' reboot. To make this setting persistent, even in the event of a power failure or crash, add the command using an absolute path to {{Filename|/etc/rc.local}} using your fav text editor. <br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
# Setup WOL for next boot<br />
stat_busy "Setting WOL to Active"<br />
/usr/sbin/ethtool -s eth0 wol g<br />
stat_done<br />
<br />
*If for some reason, you find that after using the command to switch your network drivers Wake-on-LAN feature on, the computer shuts down normally but then starts again, experiment with combinations of [u/b/m]g<br />
*For some network cards, you may also need the following command:<br />
<br />
# echo enabled > /sys/class/net/eth0/device/power/wakeup<br />
<br />
=Wake-on-LAN in different situations=<br />
<br />
The computer that you want to use Wake-on-LAN on may be directly linked to your computer through a network cable, connected to the same router that you are using, or remotely, across the internet.<br />
<br />
There are four essential things needed in order to use Wake-on-LAN on a target PC:<br />
<br />
#Some kind of Wake-on-LAN software on the host (your) PC<br />
#A connection to the internet or intranet of the target PC<br />
#The MAC address of the target PC<br />
#The internal or external IP of the target PC<br />
<br />
*Firstly, install a Wake-on-LAN software. In this article, [http://ahh.sourceforge.net/wol/ wol] will be used. It can be installed from the [[AUR_User_Guidelines#.5Bcommunity.5D|[community]]] repository.<br />
<br />
*'''It is recommended that you read the documentation of wol'''<br />
<br />
man wol<br />
wol --help<br />
<br />
*wol requires several parameters, the most basic needed:<br />
<br />
wol MACADDRESS<br />
<br />
*But it is good practice to include the IP address or hostname, therefore this syntax should be the minimal used:<br />
<br />
wol -i HOSTNAME_OR_IP MACADDRESS<br />
<br />
'''Note this HAS TO BE RUN AS ROOT!''' (I wasted a good hour wiresharking it and looking at my BIOS, etc. only to find out it simply won't turn it on (yet the packet seems to be sent).<br />
<br />
*The documentation of wol states that:<br />
<br />
::''Each MAC-ADDRESS is written as x:x:x:x:x:x, where x is a hexadecimal number between 0 and ff which represents one byte of the address, which is in network byte order (big endian).''<br />
<br />
*To obtain the MACADDRESS of the target computer: This require the package "net-tools" to be installed<br />
<br />
pacman -S net-tools<br />
ifconfig | grep ether<br />
<br />
The port, IP or hostname of the target PC will be addressed in the relevant following sections.<br />
<br />
==Across your intranet/network (no router)==<br />
<br />
If you are connected directly to another computer through a network cable, or have disabled your router firewall (not a good idea), then using Wake-on-LAN should be very simple.<br />
<br />
===For two computers connected to each other===<br />
<br />
wol MACADDRESS_OF_TARGET_PC<br />
<br />
===For computers connected to a non-firewalled router===<br />
<br />
wol -i INTERNAL_IP_OF_TARGET_PC MACADDRESS_OF_TARGET_PC<br />
<br />
*To find the internal IP (it's the first grepped entry):<br />
<br />
ifconfig | grep 'inet addr'<br />
<br />
*Since you are not firewalled, then there is no need to worry about port redirects.<br />
*If you intend to continue using Wake-on-LAN, it is recommended that you assign your computer's MACADDRESS to a specific IP on your router. Consult your router for details as to how to do this.<br />
<br />
==Across your intranet/network (router)==<br />
<br />
The syntax used in this situation:<br />
<br />
wol -p PORT_FORWARDED_TO_INTERNAL_IP -i INTERNAL_IP MACADDRESS_OF_TARGET_PC<br />
<br />
*When you send the MagicPacket signal to the target computer via a specific port, the signal passes through your router. The router must be instructed to forward any signal heading for that specific port to the internal IP of the target PC.<br />
<br />
*It is recommended that for multiple computers connected to one computer, to assign a different port forward to each internal IP<br />
<br />
*For port forwarding help, please consult http://portforward.com/ (though this website has some Windows specific content, it has a very large database of router web interfaces)<br />
<br />
==Across the internet==<br />
<br />
The syntax needed in this case:<br />
<br />
wol -p X -i HOSTNAME_OR_EXTERNAL_IP_OF_TARGET MACADDRESS<br />
<br />
*Assuming that you know the external IP of the target machine, and that the [[Wake-on-LAN#Across_your_intranet.2Fnetwork_.28router.29|router ports]] on both sides have been forwarding correctly, then this should be exactly as the syntax states.<br />
<br />
<br />
Usually it is necessary to forward your wol port (typically UDP 9) to the broadcast address on your network, not to a particular IP. Most routers do not allow you to forward to broadcast, however if you can get shell access to your router (through telnet, ssh, serial cable, etc) you can implement this workaround:<br />
arp -s 192.168.1.254 FF:FF:FF:FF:FF:FF<br />
<br />
(The above command assumes your network is 192.168.1.0/24). Now, forward UDP port 9 to 192.168.1.254. This has worked for me on a Linksys WRT54G running Tomato, and on the Verizon FIOS ActionTec router.<br />
<br />
http://www.dd-wrt.com/wiki/index.php/WOL#Remote_Wake_On_LAN_via_Port_Forwarding notes how to do it on DD-WRT routers.<br />
: anyone know how to do it with OpenWRT?<br />
<br />
=Additional Notes=<br />
<br />
*A common problem is that some forget to switch on the Wake-on-LAN feature in their BIOS.<br />
<br />
*In some systems the BIOS option "Boot from PCI/PCI-E" needs to be Enabled.<br />
<br />
=Example WOL script=<br />
Here is a script you can use to automate wol to several different machine. Modify as you see fit:<br />
<br />
<pre>#!/bin/bash<br />
<br />
# definition of MAC addresses<br />
monster=01:12:46:82:ab:4f<br />
chronic=00:3a:53:21:bc:30<br />
powerless=1a:32:41:02:29:92<br />
ghost=01:1a:d2:56:6b:e6<br />
<br />
while [ "$input1" != quit ]; do<br />
echo "Which PC to wake?"<br />
echo "p) powerless"<br />
echo "m) monster"<br />
echo "c) chronic"<br />
echo "g) ghost"<br />
echo "b) wake monster, wait 40sec, then wake chronic"<br />
echo "q) quit and take no action"<br />
read input1<br />
if [ $input1 == p ]; then<br />
/usr/bin/wol $powerless<br />
exit 1<br />
fi<br />
<br />
if [ $input1 == m ]; then<br />
/usr/bin/wol $monster<br />
exit 1<br />
fi<br />
<br />
if [ $input1 == c ]; then<br />
/usr/bin/wol $chronic<br />
exit 1<br />
fi<br />
<br />
# this line requires an IP address in /etc/hosts for ghost<br />
# and should use wol over the internet provided that port 9<br />
# is forwarded to ghost on ghost's router<br />
<br />
if [ $input1 == g ]; then<br />
/usr/bin/wol -v -h -p 9 ghost $ghost<br />
exit 1<br />
fi<br />
<br />
if [ $input1 == b ]; then<br />
/usr/bin/wol $monster<br />
echo "monster sent, now waiting for 40sec then waking chronic"<br />
sleep 40<br />
/usr/bin/wol $chronic<br />
exit 1<br />
fi<br />
<br />
if [ $input1 == Q ] || [ $input1 == q ]; then<br />
echo "later!"<br />
exit 1<br />
fi<br />
<br />
done<br />
echo "this is the (quit) end!! c-ya!"</pre><br />
== Resources ==<br />
[http://www.depicus.com/wake-on-lan/woli.aspx Wake-On-Lan]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Microchip_mplab&diff=176063Microchip mplab2011-12-27T20:06:29Z<p>Cdwijs: MPLAB now starts</p>
<hr />
<div>[[Category:Wine (English)]]<br />
{{i18n|Microchip mplab}}<br />
{{Stub}}<br />
<br />
This page is a placeholder, I will expand it shortly<br />
<br />
== MPLABX vs MPLAB==<br />
MPLAB is the windows-only version of MPLAB. MPLABX is the version that is multi platform, and also works under linux. MPLAB however is mature, and MPLABX is beta at this moment. The simulator of MPLABX is not yet as good as the simulator of MPLAB.<br />
<br />
== Installation ==<br />
===install [[wine]]===<br />
# pacman -S wine<br />
# pacman -S wine_gecko<br />
===install winetrics ===<br />
# pacman -S winetrics <br />
<br />
===install needed dll's===<br />
$ winetricks vcrun6<br />
===install MPLAB===<br />
Download mplab from the following site: [www.microchip.com [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002]]. Scroll to the bottom of the page, and download MPLAB IDE<br />
<br />
unzip mplab:<br />
<br />
$ unzip MPLAB_IDE_8_83.zip<br />
$ wine setup.exe<br />
<br />
MPLAB is installed in the following location:<br />
.wine/drive_c/Program Files (x86)/Microchip/MPLAB IDE/Core<br />
<br />
==Starting MPLAB==<br />
$ cd .wine/drive_c/Program Files (x86)/Microchip/MPLAB IDE/Core<br />
$ wine MPLAB.exe<br />
<br />
==known problems / troubleshooting==</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Microchip_mplab&diff=175728Microchip mplab2011-12-23T21:38:39Z<p>Cdwijs: added download instructions</p>
<hr />
<div>[[Category:Wine (English)]]<br />
{{i18n|Microchip mplab}}<br />
{{Stub}}<br />
<br />
This page is a placeholder, I will expand it shortly<br />
<br />
== MPLABX vs MPLAB==<br />
MPLAB is the windows-only version of MPLAB. MPLABX is the version that is multi platform, and also works under linux. MPLAB however is mature, and MPLABX is beta at this moment. The simulator of MPLABX is not yet as good as the simulator of MPLAB.<br />
<br />
== Installation ==<br />
===install [[wine]]===<br />
#pacman -S wine<br />
===install winetrics ===<br />
#pacman -S winetrics <br />
<br />
===install MPLAB===<br />
Download mplab from the following site: [www.microchip.com [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002]]. Scroll to the bottom of the page, and download MPLAB IDE<br />
<br />
unip mplab:<br />
$ unzip MPLAB_IDE_8_83.zip<br />
<br />
==known problems / troubleshooting==</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Microchip_mplab&diff=174590Microchip mplab2011-12-16T19:46:05Z<p>Cdwijs: initial page</p>
<hr />
<div><br />
This page is a placeholder, I will expand it shortly<br />
<br />
== Installation ==<br />
===install [[wine]]===<br />
#pacman -S wine<br />
===install winetrics ===<br />
#pacman -S winetrics <br />
<br />
===install MPLAB===<br />
<br />
==known problems / troubleshooting==<br />
<br />
[[Category:Wine (English)]]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=GEDA&diff=168017GEDA2011-10-30T08:53:46Z<p>Cdwijs: </p>
<hr />
<div>== Introduction ==<br />
The gEDA project has produced and continues working on a full GPL'd suite and toolkit of Electronic Design Automation tools. These tools are used for electrical circuit design, schematic capture, simulation, prototyping, and production. Currently, the gEDA project offers a mature suite of free software applications for electronics design, including schematic capture, attribute management, bill of materials (BOM) generation, netlisting into over 20 netlist formats, analog and digital simulation, and printed circuit board (PCB) layout.<br />
<br />
The gEDA project was started because of the lack of free EDA tools for POSIX systems with the primary purpose of advancing the state of free hardware or open source hardware. The suite is mainly being developed on the GNU/Linux platform with some development effort going into making sure the tools run on other platforms as well.<br />
<br />
(Source: [http://www.gpleda.org/ gEDA homepage])<br />
<br />
== Instalation ==<br />
# pacman -S geda-gaf<br />
This will give you the schematic editor and atribute editor<br />
#pacman -S pcb<br />
This will give you the PCB editor.<br />
<br />
== Configuration ==<br />
<br />
== First PCB ==<br />
<br />
=== Create schematic symbol ===<br />
<br />
=== Create PCB footprint ===<br />
<br />
=== Create schematic ===<br />
<br />
=== Create and route PCB ===<br />
<br />
=== Export to gerber ===</div>Cdwijshttps://wiki.archlinux.org/index.php?title=GEDA&diff=168016GEDA2011-10-30T08:31:22Z<p>Cdwijs: initial sceleton for geda</p>
<hr />
<div>== Introduction ==<br />
The gEDA project has produced and continues working on a full GPL'd suite and toolkit of Electronic Design Automation tools. These tools are used for electrical circuit design, schematic capture, simulation, prototyping, and production. Currently, the gEDA project offers a mature suite of free software applications for electronics design, including schematic capture, attribute management, bill of materials (BOM) generation, netlisting into over 20 netlist formats, analog and digital simulation, and printed circuit board (PCB) layout.<br />
<br />
The gEDA project was started because of the lack of free EDA tools for POSIX systems with the primary purpose of advancing the state of free hardware or open source hardware. The suite is mainly being developed on the GNU/Linux platform with some development effort going into making sure the tools run on other platforms as well.<br />
<br />
(Source: [http://www.gpleda.org/ gEDA homepage])<br />
<br />
== Instalation ==<br />
<br />
== Configuration ==<br />
<br />
== First PCB ==<br />
<br />
=== Create schematic symbol ===<br />
<br />
=== Create PCB footprint ===<br />
<br />
=== Create schematic ===<br />
<br />
=== Create and route PCB ===<br />
<br />
=== Export to gerber ===</div>Cdwijshttps://wiki.archlinux.org/index.php?title=MediaWiki&diff=167923MediaWiki2011-10-29T14:16:43Z<p>Cdwijs: added initial installation instructions</p>
<hr />
<div>[[Category:Web Server (English)]]<br />
{{i18n|Mediawiki}}<br />
{{stub}}<br />
<br />
== Installation ==<br />
# pacman -S apache mediawiki<br />
<br />
== Tips ==<br />
=== Mathematics (texvc) ===<br />
<br />
Usually installing texvc package and enabling it in config are enough:<br />
$wgUseTeX = true;<br />
<br />
If you get problems, try to increase limits for shell commands:<br />
$wgMaxShellMemory = 8000000;<br />
$wgMaxShellFileSize = 1000000;<br />
$wgMaxShellTime = 300;<br />
<br />
=== Unicode ===<br />
<br />
Check that php, apache and mysql uses UTF-8. Otherwise you may face strange bugs because of encoding mismatch.</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=157479Digitenne2011-09-07T18:39:00Z<p>Cdwijs: Finished vdr instructions</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|Digitenne}}<br />
{{out of date|reason=kernel26}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Environment==<br />
====You need Kernel <= 2.6.36 or kernel>=2.6.38 ====<br />
With kernel 2.6.37 sasc-ng will crash, showing the following errors in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should appear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
====Install mplayer and tzap====<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
====Scan channels====<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf: <br />
<pre style='overflow:auto'><br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV Rijnmond:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio Rijnmond:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Veronica/Disney XD:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3011:3012:31<br />
RTL 8:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3021:3022:32<br />
��n:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3031:3032:33<br />
Ketnet/Canvas:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3041:3042:34<br />
Nickelodeon/TeenNick:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Private Spice:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3081:3082:38<br />
Nederland 1:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV Noord-Holland:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio Noord-Holland:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Nederland 1:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV West:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio West:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Eredivisie Live 1:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2011:2012:21<br />
Eredivisie 2/AT5:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2021:2022:22<br />
KinderNet/ComedyCentral:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2031:2032:23<br />
MTV:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2041:2042:24<br />
Animal Planet:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2051:2052:25<br />
CNN:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2061:2062:26<br />
BBC Entertainment:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2071:2072:27<br />
NGC:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2081:2082:28<br />
BNR Nieuwsradio:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2172:217<br />
Arrow Classic Rock:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2182:218<br />
Radio 538:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2192:219<br />
SSU 1:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:6210<br />
SSU 2:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:6211<br />
RTL 4:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1011:1012:11<br />
RTL 5:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1021:1022:12<br />
RTL 7:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1031:1032:13<br />
SBS 6:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1041:1042:14<br />
NET 5:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1051:1052:15<br />
SLAM!FM:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1112:111<br />
Radio 10 Gold:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1122:112<br />
Q-Music:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1132:113<br />
100%NL:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1142:114<br />
Classic FM:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1152:115<br />
Sky Radio:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1162:116<br />
Radio Veronica:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1172:117<br />
</pre><br />
Here we can see Digitenne uses 4 transports to broadcast all the channels. This means it's possible to record all Digitenne channels with only 4 DVB-T receivers. The receiver is in range of 3 transmitters for Nederland 1, 2 and 3, the rest of the channels is received once:<br />
Transport 474 MHz, 618 Mhz, 722 MHz, <br />
Nederland 1<br />
Nederland 2<br />
Nederland 3<br />
TV Rijnmond / TV Noord-Holland / TV West<br />
<br />
Transport 498 MHz:<br />
Veronica/Disney XD<br />
RTL 8<br />
Een<br />
Ketnet/Canvas<br />
Nickelodeon/TeenNick<br />
Discovery Channel<br />
Eurosport<br />
Private Spice<br />
<br />
Transport 762MHz:<br />
Eredivisie Live 1<br />
Eredivisie 2/AT5<br />
KinderNet/ComedyCentral<br />
MTV<br />
Animal Planet<br />
CNN<br />
BBC Entertainment<br />
NGC:<br />
<br />
Transport 818 MHz:<br />
RTL 4<br />
RTL 5<br />
RTL 7<br />
SBS 6<br />
NET 5<br />
<br />
====Tune the DVB-T receiver====<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
====Play the captured datastream====<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
# pacman -S cmake<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 ** 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 128****58, hex serial: 55****c6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8**7<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
Sasc-ng and sascng-kernel26-patch are only needed for mythtv. VDR uses vdr-plugin-sc-hg instead.<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch:<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
$ wget http://aur.archlinux.org/packages/sascng-kernel26-patch/sascng-kernel26-patch.tar.gz<br />
$ tar -xf sascng-kernel26-patch.tar.gz <br />
$ cd sasc-ng-kernel26-patch/<br />
$ makepkg<br />
# pacman -U sascng-kernel26-patch-2.6.39-2-i686.pkg.tar.xz<br />
<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the built-in logging is used it can happen that sasc-ng uses 100% CPU. Then it can only be killed by <br />
# killall -s 16 sasc-ng. <br />
Disable therefore the internal logging like this: Now the messages of sasc-ng end up in /var/log/everything.log<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<pre style='overflow:auto'><br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
</pre><br />
<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
<pre style='overflow:auto'><br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
</pre><br />
<br />
===Expanding for 2 or more DVB-T tuners===<br />
For 2 tuners edit /etc/conf.d/sasc-ng:<br />
# Use -j <real>:<virtual> to link adapters<br />
#for 2 tuners<br />
SASCNG_ARGS="-j 0:2 -j 1:3"<br />
DVBLOOPBACK_ARGS="num_adapters=2"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
This will create 2 virtual adapters (adapter 2 and 3):<br />
$ ls -l /dev/dvb/<br />
total 0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter1<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter2<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter3<br />
<br />
For 3 tuners edit /etc/conf.d/sasc-ng:<br />
# Use -j <real>:<virtual> to link adapters<br />
#for 3 tuners<br />
SASCNG_ARGS="-j 0:3 -j 1:4 -j 2:5"<br />
DVBLOOPBACK_ARGS="num_adapters=3"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
This will create 3 virtual adapters (adapter 3, 4 and 5):<br />
$ ls -l /dev/dvb/<br />
total 0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter1<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter2<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter3<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter4<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter5<br />
<br />
== VDR Integration ==<br />
=== VDR installation ===<br />
First install VDR as described here:<br />
https://wiki.archlinux.org/index.php/VDR#Installation<br />
<br />
=== install vdr-plugin-sc-hg from aur ===<br />
$ wget https://aur.archlinux.org/packages/vd/vdr-plugin-sc-hg/vdr-plugin-sc-hg.tar.gz<br />
$ tar -xf vdr-plugin-sc-hg.tar.gz<br />
$ cd vdr-plugin-sc-hg<br />
# pacman -U vdr-plugin-sc-hg-574-1-i686.pkg.tar.xz<br />
<br />
=== VDR - oscam connection===<br />
First create the directory to store the configuration files:<br />
# mkdir /var/lib/vdr/plugins/sc<br />
# chown vdr /var/lib/vdr/plugins/sc<br />
==== /var/lib/vdr/plugins/sc/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
Now start oscam and vdr:<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/vdr start<br />
This should yield the following lines in /var/log/everything.log, only the lines for the softcam plugin are shown:<br />
<pre style='overflow:auto'><br />
Starting Linux Video Disk Recorder: vdr<br />
Searching for plugins (VDR 1.7.20/1.7.20) (cache miss): sc xineliboutput dvbsddevice.<br />
Aug 27 08:28:30 localhost vdr: [3049] VDR version 1.7.20 started<br />
Aug 27 08:28:30 localhost vdr: [3049] switched to user 'vdr'<br />
...<br />
Aug 27 08:28:31 localhost vdr: [3049] initializing plugin: sc (1.0.0pre-HG-0ece27f23b8b+): A software emulated CAM<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.info] SC version 1.0.0pre-HG-0ece27f23b8b+ initializing (VDR 1.7.20)<br />
Aug 27 08:28:31 localhost vdr: [3049] initializing plugin: xineliboutput (1.0.90-cvs): X11/xine-lib output plugin<br />
...<br />
Aug 27 08:28:31 localhost vdr: [3049] starting plugin: sc<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.info] SC version 1.0.0pre-HG-0ece27f23b8b+ starting (VDR 1.7.20)<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.info] loading cardclient config from /var/lib/vdr/plugins/sc/cardclient.conf<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.warn] no write permission on /var/lib/vdr/plugins/sc/cardclient.conf. Changes will not be saved!<br />
Aug 27 08:28:31 localhost vdr: [3054] Netwatcher thread started (pid=3049, tid=3054)<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] failed open /var/lib/vdr/plugins/sc/SoftCam.Key: No such file or directory<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] failed open /var/lib/vdr/plugins/sc/smartcard.conf: No such file or directory<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] failed open /var/lib/vdr/plugins/sc/cardslot.conf: No such file or directory<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] failed open /var/lib/vdr/plugins/sc/override.conf: No such file or directory<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] no keys loaded for softcam!<br />
...<br />
</pre><br />
This should yield the following lines in /var/log/oscam/oscam.log:<br />
2011/08/27 8:28:31 2966 s client(1) connect from 127.0.0.1 (pid=3053, pipfd=14)<br />
2011/08/27 8:28:31 3053 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/08/27 8:28:31 3053 c01 user user2 authenticated successfully (generic)<br />
2011/08/27 8:28:31 3053 c01 AU enabled for user user2 on reader reader1<br />
<br />
=== Scanning channels ===<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o vdr<br />
Then copy and paste from the terminal to /var/lib/vdr/channels.conf:<br />
Nederland 1;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:7011:7012:7013:0:1101:8720:0:0<br />
Nederland 2;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:7021:7022:7023:0:1102:8720:0:0<br />
Nederland 3;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:7031:7032:7033:0:1103:8720:0:0<br />
TV Rijnmond;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:7041:7042:7043:0:1104:8720:0:0<br />
Radio Rijnmond;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7112:0:0:1111:8720:0:0<br />
Radio 1;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7122:0:0:1112:8720:0:0<br />
Radio 2;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7132:0:0:1113:8720:0:0<br />
3FM;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7142:0:0:1114:8720:0:0<br />
Radio 4;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7152:0:0:1115:8720:0:0<br />
Radio 5;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7162:0:0:1116:8720:0:0<br />
Radio 6;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7172:0:0:1117:8720:0:0<br />
FunX;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7192:0:0:1119:8720:0:0<br />
Veronica/Disney XD;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3011:3012:3013:0:31:0:0:0<br />
RTL 8;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3021:3022:3023:0:32:0:0:0<br />
��n;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3031:3032:3033:0:33:0:0:0<br />
Ketnet/Canvas;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3041:3042:3043:0:34:0:0:0<br />
KinderNet/Comedy Central;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3051:3052:3053:0:35:0:0:0<br />
Discovery Channel;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3061:3062:3063:0:36:0:0:0<br />
Eurosport;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3071:3072:0:0:37:0:0:0<br />
Meiden van Holland Hard;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3081:3082:0:0:38:0:0:0<br />
Nederland 1;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:7011:7012:7013:0:1101:0:0:0<br />
Nederland 2;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:7021:7022:7023:0:1102:0:0:0<br />
Nederland 3;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:7031:7032:7033:0:1103:0:0:0<br />
TV Noord-Holland;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:7041:7042:7043:0:1104:0:0:0<br />
Radio Noord-Holland;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7112:0:0:1111:0:0:0<br />
Radio 1;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7122:0:0:1112:0:0:0<br />
Radio 2;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7132:0:0:1113:0:0:0<br />
3FM;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7142:0:0:1114:0:0:0<br />
Radio 4;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7152:0:0:1115:0:0:0<br />
Radio 5;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7162:0:0:1116:0:0:0<br />
Radio 6;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7172:0:0:1117:0:0:0<br />
FunX;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7192:0:0:1119:0:0:0<br />
Nederland 1;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:7011:7012:7013:0:1101:0:0:0<br />
Nederland 2;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:7021:7022:7023:0:1102:0:0:0<br />
Nederland 3;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:7031:7032:7033:0:1103:0:0:0<br />
TV West;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:7041:7042:7043:0:1104:0:0:0<br />
Radio West;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7112:0:0:1111:0:0:0<br />
Radio 1;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7122:0:0:1112:0:0:0<br />
Radio 2;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7132:0:0:1113:0:0:0<br />
3FM;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7142:0:0:1114:0:0:0<br />
Radio 4;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7152:0:0:1115:0:0:0<br />
Radio 5;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7162:0:0:1116:0:0:0<br />
Radio 6;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7172:0:0:1117:0:0:0<br />
FunX;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7192:0:0:1119:0:0:0<br />
Eredivisie Live 1;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2011:2012:0:0:21:0:0:0<br />
Eredivisie 2/AT5;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2021:2022:0:0:22:0:0:0<br />
BBC One;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2031:2032:0:0:23:0:0:0<br />
MTV;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2041:2042:2043:0:24:0:0:0<br />
Animal Planet / TLC;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2051:2052:0:0:25:0:0:0<br />
CNN;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2061:2062:0:0:26:0:0:0<br />
BBC Two;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2071:2072:0:0:27:0:0:0<br />
National Geographic;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2081:2082:0:0:28:0:0:0<br />
BNR Nieuwsradio;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:0:2172:0:0:217:0:0:0<br />
Arrow Classic Rock;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:0:2182:0:0:218:0:0:0<br />
Radio 538;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:0:2192:0:0:219:0:0:0<br />
RTL 4;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1011:1012:1013:0:11:0:0:0<br />
RTL 5;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1021:1022:1023:0:12:0:0:0<br />
RTL 7;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1031:1032:1033:0:13:0:0:0<br />
SBS 6;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1041:1042:1043:0:14:0:0:0<br />
NET5;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1051:1052:1053:0:15:0:0:0<br />
SLAM!FM;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1112:0:0:111:0:0:0<br />
Radio 10 Gold;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1122:0:0:112:0:0:0<br />
Q-Music;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1132:0:0:113:0:0:0<br />
100%NL;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1142:0:0:114:0:0:0<br />
Classic FM;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1152:0:0:115:0:0:0<br />
SkyRadio 101 FM;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1162:0:0:116:0:0:0<br />
Radio Veronica;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1172:0:0:117:0:0:0<br />
Nickelodeon/TeenNick;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:4011:4012:4013:0:41:8720:2244:0<br />
13th Street;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:4021:4022:0:0:42:8720:2244:0<br />
SLAM!TV;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:4031:4032:0:0:43:8720:2244:0<br />
TV Drenthe tijdelijk;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:4041:4042:4043:0:44:8720:2244:0<br />
BBC Radio 1;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:0:4112:0:0:411:8720:2244:0<br />
BBC Radio 2;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:0:4122:0:0:412:8720:2244:0<br />
BBC Radio 3;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:0:4132:0:0:413:8720:2244:0<br />
BBC Radio 4;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:0:4142:0:0:414:8720:2244:0 <br />
<br />
=== Watch TV ===<br />
First (re)start oscam and vdr, so it picks up the new channel configuration:<br />
#/etc/rc.d/oscam restart<br />
#/etc/rc.d/vdr restart<br />
Now you can start the frontend. This has to be done as the same user that started the X server: <br />
$ vdr-sxfe<br />
The first time you try to watch an encrypted channel, it may take up to 15 minutes for vdr to start asking keys from oscam. This is only seen the first time, the second time vdr is started, it takes a few seconds to start playing.<br />
<br />
<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and set up the following pages:<br />
$mythtv-setup<br />
==== 1. General ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. Capture cards ====<br />
Card type: DVB DVT capture card (v3.x)<br />
DVB Device Number: /dev/dvb/adapter1/frontend0<br />
Frontend ID: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Recording Options:<br />
Max recordings: 5<br />
[don't] Wait for SEQ start header<br />
[don't] Open DVB card on demand<br />
[do] Use DVB card for active EIT scan<br />
DVB tuning delay (msec): 0<br />
==== 3. Video sources ====<br />
Video source name: digitenne_eit<br />
Listings grabber: Transmitted guide only (EIT)<br />
Channel frequency table: europe-west<br />
==== 4. Input connections ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
Capture device: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Input: DVBInput<br />
Display name (optional): digitenne<br />
Video source: digitenne_eit<br />
Use quick tuning: Never<br />
[don't] Use DishNet long-term EIT data<br />
Scan for channels<br />
Video Source: digitenne_eit<br />
Input: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Desired Services: TV<br />
[don't] Only Free<br />
[don't] Test Decryptability<br />
Scan type: Full Scan<br />
Country: Germany (The Nederlands does not exist) <br />
Starting channel: 1<br />
Input priority: 0<br />
Input Group 1: DVB_/dev/dvb/adapter0/frontend0<br />
Input Group 2: Generic<br />
==== 5. Channel Editor ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Storage Directories ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Start mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different frequency (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. In this way all the decryption happens in the background.<br />
== References ==<br />
Sat4All: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886 (Dutch link)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=153611Digitenne2011-08-27T07:58:52Z<p>Cdwijs: added initial notes on VDR</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Environment==<br />
====You need Kernel <= 2.6.36 or kernel>=2.6.38 ====<br />
{{Note|core/kernel26 is up to date (both i686 and x86_64). Just make sure to run pacman -Syu and reboot.}}<br />
<br />
With kernel 2.6.37 sasc-ng will crash, showing the following errors in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should appear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
====Install mplayer and tzap====<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
====Scan channels====<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf: <br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV Rijnmond:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio Rijnmond:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Veronica/Disney XD:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3011:3012:31<br />
RTL 8:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3021:3022:32<br />
��n:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3031:3032:33<br />
Ketnet/Canvas:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3041:3042:34<br />
Nickelodeon/TeenNick:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Private Spice:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3081:3082:38<br />
Nederland 1:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV Noord-Holland:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio Noord-Holland:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Nederland 1:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV West:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio West:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Eredivisie Live 1:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2011:2012:21<br />
Eredivisie 2/AT5:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2021:2022:22<br />
KinderNet/ComedyCentral:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2031:2032:23<br />
MTV:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2041:2042:24<br />
Animal Planet:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2051:2052:25<br />
CNN:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2061:2062:26<br />
BBC Entertainment:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2071:2072:27<br />
NGC:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2081:2082:28<br />
BNR Nieuwsradio:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2172:217<br />
Arrow Classic Rock:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2182:218<br />
Radio 538:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2192:219<br />
SSU 1:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:6210<br />
SSU 2:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:6211<br />
RTL 4:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1011:1012:11<br />
RTL 5:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1021:1022:12<br />
RTL 7:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1031:1032:13<br />
SBS 6:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1041:1042:14<br />
NET 5:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1051:1052:15<br />
SLAM!FM:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1112:111<br />
Radio 10 Gold:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1122:112<br />
Q-Music:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1132:113<br />
100%NL:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1142:114<br />
Classic FM:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1152:115<br />
Sky Radio:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1162:116<br />
Radio Veronica:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1172:117<br />
<br />
Here we can see Digitenne uses 4 transports to broadcast all the channels. This means it's possible to record all Digitenne channels with only 4 DVB-T receivers. The receiver is in range of 3 transmitters for Nederland 1, 2 and 3, the rest of the channels is received once:<br />
Transport 474 MHz, 618 Mhz, 722 MHz, <br />
Nederland 1<br />
Nederland 2<br />
Nederland 3<br />
TV Rijnmond / TV Noord-Holland / TV West<br />
<br />
Transport 498 MHz:<br />
Veronica/Disney XD<br />
RTL 8<br />
Een<br />
Ketnet/Canvas<br />
Nickelodeon/TeenNick<br />
Discovery Channel<br />
Eurosport<br />
Private Spice<br />
<br />
Transport 762MHz:<br />
Eredivisie Live 1<br />
Eredivisie 2/AT5<br />
KinderNet/ComedyCentral<br />
MTV<br />
Animal Planet<br />
CNN<br />
BBC Entertainment<br />
NGC:<br />
<br />
Transport 818 MHz:<br />
RTL 4<br />
RTL 5<br />
RTL 7<br />
SBS 6<br />
NET 5<br />
<br />
====Tune the DVB-T receiver====<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
====Play the captured datastream====<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
# pacman -S cmake<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 ** 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 128****58, hex serial: 55****c6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8**7<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
Sasc-ng and sascng-kernel26-patch are only needed for mythtv. VDR uses vdr-plugin-sc-hg instead.<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch:<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
$ wget http://aur.archlinux.org/packages/sascng-kernel26-patch/sascng-kernel26-patch.tar.gz<br />
$ tar -xf sascng-kernel26-patch.tar.gz <br />
$ cd sasc-ng-kernel26-patch/<br />
$ makepkg<br />
# pacman -U sascng-kernel26-patch-2.6.39-2-i686.pkg.tar.xz<br />
<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the built-in logging is used it can happen that sasc-ng uses 100% CPU. Then it can only be killed by <br />
# killall -s 16 sasc-ng. <br />
Disable therefore the internal logging like this: Now the messages of sasc-ng end up in /var/log/everything.log<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
===Expanding for 2 or more DVB-T tuners===<br />
For 2 tuners edit /etc/conf.d/sasc-ng:<br />
# Use -j <real>:<virtual> to link adapters<br />
#for 2 tuners<br />
SASCNG_ARGS="-j 0:2 -j 1:3"<br />
DVBLOOPBACK_ARGS="num_adapters=2"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
This will create 2 virtual adapters (adapter 2 and 3):<br />
$ ls -l /dev/dvb/<br />
total 0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter1<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter2<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter3<br />
<br />
For 3 tuners edit /etc/conf.d/sasc-ng:<br />
# Use -j <real>:<virtual> to link adapters<br />
#for 3 tuners<br />
SASCNG_ARGS="-j 0:3 -j 1:4 -j 2:5"<br />
DVBLOOPBACK_ARGS="num_adapters=3"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
This will create 3 virtual adapters (adapter 3, 4 and 5):<br />
$ ls -l /dev/dvb/<br />
total 0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter1<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter2<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter3<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter4<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter5<br />
<br />
== VDR Integration (not yet complete)==<br />
=== VDR installation ===<br />
First install VDR as described here:<br />
https://wiki.archlinux.org/index.php/VDR#Installation<br />
<br />
=== install vdr-plugin-sc-hg from aur ===<br />
$ wget https://aur.archlinux.org/packages/vd/vdr-plugin-sc-hg/vdr-plugin-sc-hg.tar.gz<br />
$ tar -xf vdr-plugin-sc-hg.tar.gz<br />
$ cd vdr-plugin-sc-hg<br />
# pacman -U vdr-plugin-sc-hg-574-1-i686.pkg.tar.xz<br />
<br />
=== VDR - oscam connection===<br />
First create the directory to store the configuration files:<br />
# mkdir /var/lib/vdr/plugins/sc<br />
# chown vdr /var/lib/vdr/plugins/sc<br />
==== /var/lib/vdr/plugins/sc/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
Now start oscam and vdr:<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/vdr start<br />
This should yield the following lines in /var/log/everything.log, only the lines for the softcam plugin are shown:<br />
Starting Linux Video Disk Recorder: vdr<br />
Searching for plugins (VDR 1.7.20/1.7.20) (cache miss): sc xineliboutput dvbsddevice.<br />
Aug 27 08:28:30 localhost vdr: [3049] VDR version 1.7.20 started<br />
Aug 27 08:28:30 localhost vdr: [3049] switched to user 'vdr'<br />
...<br />
Aug 27 08:28:31 localhost vdr: [3049] initializing plugin: sc (1.0.0pre-HG-0ece27f23b8b+): A software emulated CAM<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.info] SC version 1.0.0pre-HG-0ece27f23b8b+ initializing (VDR 1.7.20)<br />
Aug 27 08:28:31 localhost vdr: [3049] initializing plugin: xineliboutput (1.0.90-cvs): X11/xine-lib output plugin<br />
...<br />
Aug 27 08:28:31 localhost vdr: [3049] starting plugin: sc<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.info] SC version 1.0.0pre-HG-0ece27f23b8b+ starting (VDR 1.7.20)<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.info] loading cardclient config from /var/lib/vdr/plugins/sc/cardclient.conf<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.warn] no write permission on /var/lib/vdr/plugins/sc/cardclient.conf. Changes will not be saved!<br />
Aug 27 08:28:31 localhost vdr: [3054] Netwatcher thread started (pid=3049, tid=3054)<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] failed open /var/lib/vdr/plugins/sc/SoftCam.Key: No such file or directory<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] failed open /var/lib/vdr/plugins/sc/smartcard.conf: No such file or directory<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] failed open /var/lib/vdr/plugins/sc/cardslot.conf: No such file or directory<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] failed open /var/lib/vdr/plugins/sc/override.conf: No such file or directory<br />
Aug 27 08:28:31 localhost vdr: [3049] [general.error] no keys loaded for softcam!<br />
...<br />
<br />
This should yield the following lines in /var/log/oscam/oscam.log:<br />
2011/08/27 8:28:31 2966 s client(1) connect from 127.0.0.1 (pid=3053, pipfd=14)<br />
2011/08/27 8:28:31 3053 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/08/27 8:28:31 3053 c01 user user2 authenticated successfully (generic)<br />
2011/08/27 8:28:31 3053 c01 AU enabled for user user2 on reader reader1<br />
<br />
=== Scanning channels ===<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o vdr<br />
Then copy and paste from the terminal to /var/lib/vdr/channels.conf:<br />
Nederland 1;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:7011:7012:7013:0:1101:8720:0:0<br />
Nederland 2;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:7021:7022:7023:0:1102:8720:0:0<br />
Nederland 3;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:7031:7032:7033:0:1103:8720:0:0<br />
TV Rijnmond;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:7041:7042:7043:0:1104:8720:0:0<br />
Radio Rijnmond;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7112:0:0:1111:8720:0:0<br />
Radio 1;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7122:0:0:1112:8720:0:0<br />
Radio 2;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7132:0:0:1113:8720:0:0<br />
3FM;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7142:0:0:1114:8720:0:0<br />
Radio 4;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7152:0:0:1115:8720:0:0<br />
Radio 5;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7162:0:0:1116:8720:0:0<br />
Radio 6;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7172:0:0:1117:8720:0:0<br />
FunX;Digitenne:474000:I999B8C12D12M64T8G4Y0:T:27500:0:7192:0:0:1119:8720:0:0<br />
Veronica/Disney XD;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3011:3012:3013:0:31:0:0:0<br />
RTL 8;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3021:3022:3023:0:32:0:0:0<br />
��n;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3031:3032:3033:0:33:0:0:0<br />
Ketnet/Canvas;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3041:3042:3043:0:34:0:0:0<br />
KinderNet/Comedy Central;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3051:3052:3053:0:35:0:0:0<br />
Discovery Channel;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3061:3062:3063:0:36:0:0:0<br />
Eurosport;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3071:3072:0:0:37:0:0:0<br />
Meiden van Holland Hard;Digitenne:498000:I999B8C23D999M64T8G4Y0:T:27500:3081:3082:0:0:38:0:0:0<br />
Nederland 1;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:7011:7012:7013:0:1101:0:0:0<br />
Nederland 2;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:7021:7022:7023:0:1102:0:0:0<br />
Nederland 3;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:7031:7032:7033:0:1103:0:0:0<br />
TV Noord-Holland;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:7041:7042:7043:0:1104:0:0:0<br />
Radio Noord-Holland;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7112:0:0:1111:0:0:0<br />
Radio 1;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7122:0:0:1112:0:0:0<br />
Radio 2;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7132:0:0:1113:0:0:0<br />
3FM;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7142:0:0:1114:0:0:0<br />
Radio 4;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7152:0:0:1115:0:0:0<br />
Radio 5;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7162:0:0:1116:0:0:0<br />
Radio 6;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7172:0:0:1117:0:0:0<br />
FunX;Digitenne:618000:I999B8C12D999M64T8G4Y0:T:27500:0:7192:0:0:1119:0:0:0<br />
Nederland 1;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:7011:7012:7013:0:1101:0:0:0<br />
Nederland 2;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:7021:7022:7023:0:1102:0:0:0<br />
Nederland 3;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:7031:7032:7033:0:1103:0:0:0<br />
TV West;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:7041:7042:7043:0:1104:0:0:0<br />
Radio West;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7112:0:0:1111:0:0:0<br />
Radio 1;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7122:0:0:1112:0:0:0<br />
Radio 2;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7132:0:0:1113:0:0:0<br />
3FM;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7142:0:0:1114:0:0:0<br />
Radio 4;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7152:0:0:1115:0:0:0<br />
Radio 5;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7162:0:0:1116:0:0:0<br />
Radio 6;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7172:0:0:1117:0:0:0<br />
FunX;Digitenne:722000:I999B8C12D999M64T8G4Y0:T:27500:0:7192:0:0:1119:0:0:0<br />
Eredivisie Live 1;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2011:2012:0:0:21:0:0:0<br />
Eredivisie 2/AT5;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2021:2022:0:0:22:0:0:0<br />
BBC One;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2031:2032:0:0:23:0:0:0<br />
MTV;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2041:2042:2043:0:24:0:0:0<br />
Animal Planet / TLC;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2051:2052:0:0:25:0:0:0<br />
CNN;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2061:2062:0:0:26:0:0:0<br />
BBC Two;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2071:2072:0:0:27:0:0:0<br />
National Geographic;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:2081:2082:0:0:28:0:0:0<br />
BNR Nieuwsradio;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:0:2172:0:0:217:0:0:0<br />
Arrow Classic Rock;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:0:2182:0:0:218:0:0:0<br />
Radio 538;Digitenne:762000:I999B8C23D999M64T8G4Y0:T:27500:0:2192:0:0:219:0:0:0<br />
RTL 4;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1011:1012:1013:0:11:0:0:0<br />
RTL 5;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1021:1022:1023:0:12:0:0:0<br />
RTL 7;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1031:1032:1033:0:13:0:0:0<br />
SBS 6;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1041:1042:1043:0:14:0:0:0<br />
NET5;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:1051:1052:1053:0:15:0:0:0<br />
SLAM!FM;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1112:0:0:111:0:0:0<br />
Radio 10 Gold;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1122:0:0:112:0:0:0<br />
Q-Music;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1132:0:0:113:0:0:0<br />
100%NL;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1142:0:0:114:0:0:0<br />
Classic FM;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1152:0:0:115:0:0:0<br />
SkyRadio 101 FM;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1162:0:0:116:0:0:0<br />
Radio Veronica;Digitenne:818000:I999B8C12D999M64T8G4Y0:T:27500:0:1172:0:0:117:0:0:0<br />
Nickelodeon/TeenNick;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:4011:4012:4013:0:41:8720:2244:0<br />
13th Street;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:4021:4022:0:0:42:8720:2244:0<br />
SLAM!TV;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:4031:4032:0:0:43:8720:2244:0<br />
TV Drenthe tijdelijk;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:4041:4042:4043:0:44:8720:2244:0<br />
BBC Radio 1;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:0:4112:0:0:411:8720:2244:0<br />
BBC Radio 2;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:0:4122:0:0:412:8720:2244:0<br />
BBC Radio 3;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:0:4132:0:0:413:8720:2244:0<br />
BBC Radio 4;Digitenne:522000:I999B8C12D12M64T8G4Y0:T:27500:0:4142:0:0:414:8720:2244:0 <br />
<br />
<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and set up the following pages:<br />
$mythtv-setup<br />
==== 1. General ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. Capture cards ====<br />
Card type: DVB DVT capture card (v3.x)<br />
DVB Device Number: /dev/dvb/adapter1/frontend0<br />
Frontend ID: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Recording Options:<br />
Max recordings: 5<br />
[don't] Wait for SEQ start header<br />
[don't] Open DVB card on demand<br />
[do] Use DVB card for active EIT scan<br />
DVB tuning delay (msec): 0<br />
==== 3. Video sources ====<br />
Video source name: digitenne_eit<br />
Listings grabber: Transmitted guide only (EIT)<br />
Channel frequency table: europe-west<br />
==== 4. Input connections ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
Capture device: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Input: DVBInput<br />
Display name (optional): digitenne<br />
Video source: digitenne_eit<br />
Use quick tuning: Never<br />
[don't] Use DishNet long-term EIT data<br />
Scan for channels<br />
Video Source: digitenne_eit<br />
Input: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Desired Services: TV<br />
[don't] Only Free<br />
[don't] Test Decryptability<br />
Scan type: Full Scan<br />
Country: Germany (The Nederlands does not exist) <br />
Starting channel: 1<br />
Input priority: 0<br />
Input Group 1: DVB_/dev/dvb/adapter0/frontend0<br />
Input Group 2: Generic<br />
==== 5. Channel Editor ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Storage Directories ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Start mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different frequency (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. In this way all the decryption happens in the background.<br />
== References ==<br />
Sat4All: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886 (Dutch link)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=VDR&diff=153536VDR2011-08-26T19:46:30Z<p>Cdwijs: added missing package</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|VDR}}<br />
[[de:VDR]]<br />
{{Article summary start|Summary}}<br />
{{Article summary text|Information on installing and configuring VDR}}<br />
{{Article summary end}}<br />
<br />
<br />
=Introduction=<br />
[http://www.cadsoft.de/vdr/ VDR] stands for <b>V</b>ideo <b>D</b>isk <b>R</b>ecorder, an open source software application to turn any PC into a digital video recorder. These initials do not fully explain what VDR is capable of. VDR does also implement all the functions of a modern set-top box to watch either live television or recordings. With the extensive amount of available [http://www.linuxtv.org/vdrwiki/index.php/Plugins plugins] almost countless features can be added, e.g., play DVDs, play audio and video files, view your photo collection, check your email account...<br />
<br />
With its flexibility Arch Linux is perfectly suited for setting VDR up and customizing it. [http://aur.archlinux.org/ AUR], the Arch Linux User-Community Repository, and the [http://sourceforge.net/apps/trac/archvdr/ ArchVDR team] provide PKGBUILDs for VDR and its most commonly used plugins and addons.<br />
<br />
This article is divided into three parts. In the first part I am going to show you how to install VDR on your PC and how to get it up and running. The second part of the article is about how to extend VDR by adding new features like playing DVDs or controlling VDR over the Internet. The third part is about rather advanced features like how to automatically detect and mark commercial breaks in your recordings or how to stream VDR over the Internet.<br />
<br />
=Initial Steps=<br />
This part of the guide is about how to install VDR and how to get it up and running.<br />
<br />
==Hardware Requirements==<br />
VDR is designed to work with a huge variety of DVB cards. See the [http://www.linuxtv.org/vdrwiki/index.php/Main_Page VDR Wiki] for whether or not your specific card will be supported. Let me just tell you that so called budget cards, i.e., cards without a hardware MPEG decoder, work perfectly fine with VDR thanks to plugins like vdr-xineliboutput. At present, HDTV - mainly via DVB-S2 - is becoming more and more popular and the good news is that VDR supports a wide range of such cards, e.g. [http://www.vdr-wiki.de/wiki/index.php/DVB-S2_Budget-PCI-Karten internal PCI cards]. A widely used HDTV card is Hauppauge's Nova-HD-S2, which comes with a remote control that can be used in VDR, more about that later. Ok then, lets get into more detail.<br />
<br />
==Installation==<br />
<br />
Even though you can install VDR from the [http://aur.archlinux.org/ AUR], [http://wiki.archlinux.org/index.php/AUR_User_Guidelines installing], it is recommendable to use the up-do-date [http://wiki.archlinux.org/index.php/PKGBUILD PKGBUILDs] for VDR, its plugins and addons provided by the [http://sourceforge.net/apps/trac/archvdr/ ArchVDR team]. The [http://sourceforge.net/apps/trac/archvdr/wiki/ArchVDR Wiki] explains further details on how to get the files.<br />
<br />
=== Prepare for compilation ===<br />
First step is to install the needed packages:<br />
# pacman -S subversion fakeroot patch sudo linuxtv-dvb-apps at make<br />
# pacman -S autoconf automake git pkg-config<br />
# pacman -S libvdpau libogg flac libvorbis libmng libtheora a52dec<br />
# pacman -S faad2 faac x264 ffmpeg libdca libpulse mercurial<br />
# pacman -S ffmpeg cvs libdca mesa freeglut<br />
<br />
=== Getting the pkgbuilds ===<br />
Now issue the following commands to get the pkgbuilds:<br />
$ svn co https://archvdr.svn.sourceforge.net/svnroot/archvdr archvdr<br />
$ cd archvdr/trunk/archvdr/<br />
<br />
=== Install ttf-vdrsymbols ===<br />
First install ttf-vdrsymbols:<br />
$ cd ttf-vdrsymbols/<br />
$ makepkg<br />
# pacman -U ttf-vdrsymbols-20100612-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== start-stop-daemon ===<br />
$ cd start-stop-daemon/<br />
$ makepkg<br />
# pacman -U start-stop-daemon-1.15.8.11-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== vdr ===<br />
$ cd vdr-1.7.20/<br />
$ makepkg<br />
# pacman -U vdr-1.7.20-3-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== libblueray ===<br />
$ cd libbluray/<br />
$ makepkg<br />
# pacman -U libbluray-20110620-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== xine-lib ===<br />
$ cd xine-lib-1.2/<br />
$ makepkg<br />
# pacman -U xine-lib-1.2-11678-7-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== vdr-plugin-xineliboutput-git ===<br />
$ cd vdr-plugin-xineliboutput-git/<br />
$ makepkg<br />
# pacman -U vdr-plugin-xineliboutput-git-20110620-1-i686.pkg.tar.xz<br />
<br />
The VDR package's install script will create a special user called ''vdr'', especially for running VDR. The vdr user will be added to the video group so that it can access DVB cards and should own VDR's configuration files in /etc/vdr and the recordings and Electronic Programme Guide (EPG) directories /var/spool/video and /var/spool/epg.<br />
<br />
== DVB Card Kernel Modules and Firmware ==<br />
If you own one of the famous [http://www.vdr-wiki.de/wiki/index.php/DVB-S_full-featured-Karten full-featured DVB-S cards] (with hardware MPEG decoder) from Technotrend (identical in construction to Hauppauge Nexus, Technisat Skystar 1 and Fujitsu-Siemens DVB-S), you might have to do a little extra work since, at least on my computer, a wrong module gets control of the card. On my computer the command "lspci -k" shows the following output:<br />
<br />
<pre><br />
03:02.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)<br />
Subsystem: Technotrend Systemtechnik GmbH Technotrend/Hauppauge DVB card rev2.3<br />
Kernel driver in use: dvb<br />
Kernel modules: dvb-ttpci, snd-aw2<br />
</pre><br />
<br />
As you can see, two modules, dvb-ttpci and snd-aw2, are assigned to the DVB card while only the former should take control. Simply add the unwanted one to the list in /etc/rc.conf:<br />
<br />
<pre><br />
MODULES=(... !snd-aw2 ...)<br />
</pre><br />
<br />
A restart of the computer should do the rest. Another two things you might do before the restart: if you own one of those full-featured cards (perhaps also for some other cards), you will also need a [http://www.linuxtv.org/downloads/firmware/ firmware] for the card to work. For the full-featured Technotrend cards the firmware is dvb-ttpci-01.fw and has to be placed into the folder /lib/firmware. Instead of restarting the computer you just can unload and load the kernel module dvb_ttpci. The second thing which requires at least a new login to take effect is to add yourself to the group "video" (gpasswd -a <username> video).<br />
<br />
Also other cards, like the already mentioned DVB-S2 card Nova-HD-S2 from Hauppauge require a firmware to be put into /lib/firmware, in the case of the Nova-HD-S2 the firmware's name is dvb-fe-cx24116.fw. Do not forget to eiter reload the card's module or to restart the computer.<br />
<br />
<br />
==Starting VDR==<br />
You can now start vdr:<br />
# /etc/rc.d/vdr start<br />
VDR logs to /var/log/everything.log:<br />
# tail -f /var/log/everything.log<br />
Now connect to vdr with xine. This must be done by the same user that has started the X server, not the user vdr. This should yield a screen with "no signal"<br />
$ vdr-sxfe<br />
<br />
VDR can be automatically started when the PC is booted by adding it to /etc/rc.conf:<br />
DAEMONs=(... @vdr)<br />
<br />
If you want to change the user running VDR, the destination of the video directory or the configuration files, you can do so by editing the VDR's configuration file (/etc/default/vdr):<br />
<br />
<pre><br />
OPTIONS="-u franz -c /video -v /video -E /video/epg.data -w 60"<br />
</pre><br />
<br />
<br />
<br />
=Extending VDR=<br />
==Plugins==<br />
As already mentioned in the introduction, the functionality of VDR can be extended with [http://www.linuxtv.org/vdrwiki/index.php/Plugins plugins]. The following set of plugins, all available from ArchVDR, will make a usable basic VDR installation<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Epgsearch-plugin vdr-epgsearch], a replacement schedule with extended functionality. The epgearch plugin is being used by the plugin vdr-live.<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Extrecmenu-plugin vdr-extrecmenu], a replacement recordings menu with extended functionality.<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Femon-plugin vdr-femon], a frontend status monitor.<br />
* [http://streamdev.vdr-developer.org/ vdr-streamdev], a streaming server/client. Easy to set up with vdradmin-am.<br />
* [http://live.vdr-developer.org/en/index.php vdr-live], a web interface that can be used to control VDR, view and search the EPG, schedule recordings and stream live TV.<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Xineliboutput-plugin vdr-xineliboutput], which provides a frontend for VDR and can be used with cards without a hardware MPEG decoder.<br />
<br />
VDR does not support MHEG-5 teletext ("The Red Button" in the UK), so the [http://aur.archlinux.org/packages.php?ID=36420 vdr-rssreader] plugin can make a useful alternative.<br />
<br />
===How to Setup a Plugin===<br />
The command line syntax for running a plugin with VDR is<br />
<pre><br />
vdr -P"name [OPTIONS]"<br />
</pre><br />
and the quickest way to find out what options each installed plugin has is to run<br />
<pre><br />
$ vdr --help<br />
</pre><br />
<br />
<br />
Once installed, the plugins are loaded automatically when VDR is being started. If you want to alter the configuration of a plugin, you can do so editing the according config file in /etc/vdr/plugins/.<br />
<br />
<br />
<br />
==Remote Control==<br />
You might want to control VDR not only by keyboard but using a remote control while relaxing on the couch. On one hand, there is [http://www.lirc.org/ LIRC], which works with every DVB card, because it works independently from your DVB card. On the other hand, provided that your DVB device has an integrated IR-reciever, you might give the plugin [http://www.linuxtv.org/vdrwiki/index.php/Remote-plugin vdr-remote] a try. Both possibilities will be described here.<br />
<br />
===LIRC===<br />
To setup VDR to make use of your [[LIRC]] remote control you have to adjust the file /etc/vdr/remote.conf. The labeling after "LIRC.", e.g., "Up" has to correspond with the labeling in /etc/lircd.conf. The second column stands for the correspondent VDR command.<br />
<br />
<pre><br />
LIRC.Up Up<br />
LIRC.Down Down<br />
LIRC.Menu Menu<br />
LIRC.Ok Ok<br />
LIRC.Back Back<br />
LIRC.Left Left<br />
LIRC.Right Right<br />
LIRC.Red Red<br />
LIRC.Green Green<br />
LIRC.Yellow Yellow<br />
LIRC.Blue Blue<br />
LIRC.0 0<br />
LIRC.1 1<br />
LIRC.2 2<br />
LIRC.3 3<br />
LIRC.4 4<br />
LIRC.5 5<br />
LIRC.6 6<br />
LIRC.7 7<br />
LIRC.8 8<br />
LIRC.9 9<br />
LIRC.Power Power<br />
LIRC.Volume+ Volume+<br />
LIRC.Volume- Volume-<br />
LIRC.Mute Mute<br />
LIRC.Audio Audio<br />
LIRC.Recordings Recordings<br />
LIRC.Info Info<br />
</pre><br />
<br />
Finally, make sure to add the option "--lirc" to the VDR command line<br />
<pre><br />
$ vdr ... --lirc<br />
</pre><br />
or enable LIRC in /etc/runvdr.conf if you are using runvdr-extreme<br />
<pre><br />
# Use a LIRC remote control device. If set to 1, vdr uses /var/run/lirc/lircd.<br />
# If not set, or set to 0, don't use LIRC.<br />
LIRC=1<br />
</pre><br />
<br />
===Remote Plugin===<br />
This plugin only works with cards with build-in IR-recievers, as on Technotrend's full-featured cards or on the Hauppauge Nova-HD-S2. Install the package vdr-remote from ArchVDR and use the guide on the [http://www.linuxtv.org/vdrwiki/index.php/Remote-plugin VDR Wiki] to set it up.<br />
<br />
==Configuring VDR==<br />
<br />
===Channel Scan===<br />
Make sure that the file channels.conf in /etc/vdr concurs with the satellite your dish is pointing at. [http://www.linowsat.de/settings/vdr.html Linowsat] provides up-to-date channel lists for all satellites out there.<br />
<br />
If you own a DVB-T or DVB-C card then either the scan utility from [http://www.archlinux.org/packages/?q=linuxtv-dvb-apps linuxtv-dvb-apps] or [http://www.vdr-wiki.de/wiki/index.php/W_scan w_scan], which is available from the [http://aur.archlinux.org/ AUR], will be your friend. (You might have to use translate.google.com for translating w_scan's German wiki into English.) If you live in the UK then scan has the advantage over w_scan because it can output channels in Logical Channel Number order for VDR, i.e. channel 1 will be BBC ONE, 2 will be BBC TWO etc.<br />
<pre><br />
$ scan -o vdr -e 3 -p -x 0 -t 3 -u -U -q -q <path_to_initial_tuning_data_file> > channels.conf<br />
</pre><br />
<pre><br />
$ cat /etc/vdr/channels.conf<br />
:@1 <br />
BBC ONE;BBC:505833:C34D34M16B8T2G32Y0:T:27500:600:601=eng,602=eng:0:0:4164:9018:4100:0<br />
:@2 <br />
BBC TWO;BBC:505833:C34D34M16B8T2G32Y0:T:27500:610:611=eng,612=eng:0:0:4228:9018:4100:0<br />
:@3 <br />
ITV1;ITV:481833:C23D12M64B8T2G32Y0:T:27500:520:521=eng,522=eng:0:0:8261:9018:8197:0<br />
:@4 <br />
Channel 4;Channel 4 TV:481833:C23D12M64B8T2G32Y0:T:27500:560:561=eng,562=eng:0:0:8384:9018:8197:0<br />
:@5 <br />
FIVE;five:481833:C23D12M64B8T2G32Y0:T:27500:540:541=eng,542=eng:0:0:8500:9018:8197:0<br />
</pre><br />
<br />
===Controlling and Displaying VDR===<br />
Eventually, we want to make sure that we can submit controls to and can see the output (live tv and menu) of VDR. <br />
<br />
Full-featured cards have got a VGA connector on the card in order to connect an external TV set, alternatively this role can be taken over by DXR 3/Hollywood+ cards. Nevertheless, these possibilities are getting less important nowadays. On one hand with the advent of computer screens with 24 or even more inches the computer screen itself has become very attractive for watching TV, on the other hand, new TV sets do also have an implemented DVI, HDMI, or even DisplayPort input allowing the computer's graphics board to become the output device.<br />
<br />
Therefore, this guide focuses on the VDR output on an X-server. BTW, to make us of the VGA output of your full-featured card you simply have to connect your TV set using an adequate VGA cable.<br />
<br />
For testing purposes it makes sense to control VDR with the keyboard. For how to control VDR by remote control see [[VDR#Remote_Control | below]]. If you have a full-featured card there are two ways of dispaying the VDR screen and to control VDR by keyboard, if you own a budget card, one possibility will be given.<br />
<br />
====TVtime - Full-Featured Cards Only====<br />
[http://tvtime.sourceforge.net/ TVtime] is a TV application which can be used to display VDR's screen. Install the packages tvtime and the wrapper script [http://vdrportal.de/board/thread.php?threadid=18234 vdr-tvtime] from [http://aur.archlinux.org/ AUR]. To control VDR, adjust the first column of the file /etc/tvtime/maps.txt according to your liking. Here is an example:<br />
<br />
<pre><br />
m Menu<br />
Enter Ok<br />
Backspace Back<br />
F1 Red<br />
F2 Green<br />
F3 Yellow<br />
F4 Blue<br />
+ Channel+<br />
- Channel-<br />
u Volume+<br />
d Volume-<br />
c Channels<br />
t Timers<br />
r Recordings<br />
s Setup<br />
a Audio<br />
n Info<br />
f TVTIME_f<br />
</pre><br />
<br />
Now you can start VDR (/etc/rc.d/runvdr start). Then execute the script "vdr-tvtime.pl". TVtime should display the VDR screen and you should also be able to control VDR with the keyboard.<br />
<br />
====Xineliboutput - Full-Featured and Budget Cards====<br />
The plugin vdr-xineliboutput enables VDR to be used with cards without a hardware MPEG decoder chip such as the often mentioned Hauppauge Nova-HD-S2. <br />
<br />
=====Configuring vdr-xineliboutput=====<br />
There are some xine configuration changes that can improve performance with VDR. Make sure that xine is not running then edit the following in ${HOME}/.xine/config<br />
<pre><br />
# number of audio buffers<br />
# numeric, default: 230<br />
engine.buffers.audio_num_buffers:500<br />
<br />
# number of video buffers<br />
# numeric, default: 500<br />
engine.buffers.video_num_buffers:1000<br />
<br />
# default number of video frames<br />
# numeric, default: 15<br />
engine.buffers.video_num_frames:22<br />
<br />
# method to sync audio and video<br />
# { metronom feedback resample }, default: 0<br />
audio.synchronization.av_sync_method:resample<br />
<br />
# enable resampling<br />
# { auto off on }, default: 0<br />
audio.synchronization.resample_mode:on<br />
</pre><br />
<br />
Using xine-ui-vdr you can also use your keyboard to control VDR. Start Xine once and close it so that the file ~/.xine/keymap is going to be created. Edit this file so that at least the basic keys for controlling VDR will work, e.g.,<br />
<pre><br />
# jump to media Menu<br />
Menu {<br />
key = m<br />
modifier = none<br />
}<br />
<br />
# menu navigate up<br />
EventUp {<br />
key = Up<br />
modifier = none<br />
}<br />
<br />
# menu navigate down<br />
EventDown {<br />
key = Down<br />
modifier = none<br />
}<br />
<br />
# menu navigate left<br />
EventLeft {<br />
key = Left<br />
modifier = none<br />
}<br />
<br />
# menu navigate right<br />
EventRight {<br />
key = Right<br />
modifier = none<br />
}<br />
<br />
# menu select<br />
EventSelect {<br />
key = Return<br />
modifier = none<br />
}<br />
<br />
# VDR Red button<br />
VDRButtonRed {<br />
key = F1<br />
modifier = none<br />
}<br />
<br />
# VDR Green button<br />
VDRButtonGreen {<br />
key = F2<br />
modifier = none<br />
}<br />
<br />
# VDR Yellow button<br />
VDRButtonYellow {<br />
key = F3<br />
modifier = none<br />
}<br />
<br />
# VDR Blue button<br />
VDRButtonBlue {<br />
key = F4<br />
modifier = none<br />
}<br />
<br />
# VDR Command back<br />
VDRBack {<br />
key = BackSpace<br />
modifier = none<br />
}<br />
<br />
# menu select<br />
Alias {<br />
entry = EventSelect<br />
key = KP_Enter<br />
modifier = none<br />
}<br />
</pre><br />
Also remember that you will get an error if you assign a key twice, make sure therefore to change for instance the key for "SpeedFaster" from "Up" to "VOID". It is possible, however, to assign two keys to the same event, you do so with the "Alias" keyword. More information on the [http://xinehq.de/index.php/readme Xine website].<br />
<br />
Start Xine with the following command:<br />
<pre><br />
$ xine "xvdr+tcp://<VDR's IP address>:37890#nocache" <br />
</pre><br />
<br />
By adding the option "-D" (deinterlace) the picture quality is increased.<br />
<br />
It might be necessary to adjust the plugin's configuration (/etc/vdr/plugins/plugin.xinliboutput.conf)<br />
<pre><br />
--local=none<br />
--primary <br />
--remote=<VDR's IP address>:37890 <br />
</pre><br />
<br />
<br />
=Special Features=<br />
<br />
This part is meant for advanced users of VDR who might get some little hint on how to enhance their VDR installation.<br />
<br />
==Noad - <b>No</b> <b>Ad</b>vertisement==<br />
<br />
[http://noad.freepgs.com/ Noad] is able to detect commercials and to set cutting marks accordingly. The package "noad" is available on AUR. And let me tell you, noad does a great job. Even though I always check the marks before starting the cutting process it is very seldom that I have to correct them within a movie. It is more outside a movie, i.e., within the recording buffer before and after the movie, that sometimes marks have to be manually eliminated.<br />
<br />
By adding the following to the VDROPTS section of the file /etc/rc.vdr, noad is being executed automatically after a recording has been completed.<br />
<br />
<pre><br />
-r'/usr/bin/noad nice -b -O -C -a -j --statisticfile=/video/noadstat'<br />
</pre><br />
<br />
The second possibility is to start the commercial detection process manually from the commands menu of the recordings. Just edit the file /etc/vdr/reccmds.conf and add the following line:<br />
<br />
<pre><br />
start noad: /usr/bin/noad nice --background -O -C -a -j --statisticfile=/video/noadstat<br />
</pre><br />
<br />
As a third possibility you can start noad on the command line. For how to do that and for an explanation of all the command line options check the [http://noad.freepgs.com/README.en.html README] (also available in /usr/share/doc/noad/).<br />
<br />
==Augment VDR's EPG==<br />
<br />
===xmltv2vdr===<br />
Some channels like BBC or ITV do only provide EPG information for the current and the next broadcast which is somewhat unspectacular compared to the standards set by other broadcasting services like ARD (Germany) or ORF (Austria). Fortunately, [http://wiki.xmltv.org/index.php/Main_Page XMLTV] can step into the breach as it is able to get TV-listings for one ore even more weeks in advance. You can follow [[XMLTV_HOWTO | this guide]] to install and configure XMLTV.<br />
<br />
The XML-file created by XMLTV has to be converted in order that VDR can use the data. For this purpose the script [http://www.vdr-wiki.de/wiki/index.php/Xmltv2vdr xmltv2vdr] has been written, it is availabe on [http://aur.archlinux.org/ AUR]. Install it and follow the README in /usr/share/doc/xmltv2vdr/. The example file channels.conf has been prepared in /etc/xmltv2vdr:<br />
<br />
<pre><br />
BBC 1 London;BSkyB:10773:h:S28.2E:22000:5000:5001=eng,5002=NAR:5003:1:6301:2:2045:0:london.bbc1.bbc.co.uk<br />
BBC 2 England;BSkyB:10773:h:S28.2E:22000:5100:5101=eng,5102=NAR:5103:1:6302:2:2045:0:london.bbc2.bbc.co.uk<br />
BBC THREE;BSkyB:10773:hC56:S28.2E:22000:5200:5201=eng,5202=NAR:5203:0:6319:2:2045:0:bbcthree.bbc.co.uk<br />
BBC FOUR;BSkyB:10773:hC56:S28.2E:22000:5300:5301=eng,5302=NAR:5303:0:6316:2:2045:0:bbcfour.bbc.co.uk<br />
BBC NEWS;BSkyB:11954:hC23:S28.2E:27500:5000:5001=eng:5003:0:6704:2:2013:0:news-24.bbc.co.uk<br />
CBBC Channel;BSkyB:10773:h:S28.2E:22000:5200:5201=eng,5202=NAR:5203:0:6317:2:2045:0:cbbc.bbc.co.uk<br />
CBeebies;BSkyB:10773:h:S28.2E:22000:5300:5301=eng,5302=NAR:5303:0:6318:2:2045:0:cbeebies.bbc.co.uk<br />
ITV1 London;BSkyB:10759:vC56:S28.2E:22000:2305:2312=eng,2314=NAR:2315:0:10060:2:2044:0:carlton.com<br />
ITV2;BSkyB:10759:vC56:S28.2E:22000:2352:2354=eng,2356=NAR:2358:0:10070:2:2044:0:itv2.itv.co.uk<br />
ITV3;BSkyB:10906:vC56:S28.2E:22000:2362:2356=eng,2357=NAR:2359:0:10260:2:2054:0:itv3.itv.co.uk<br />
ITV4;BSkyB:10759:vC56:S28.2E:22000:2359:2360=eng,2361=NAR:2362:0:10072:2:2044:0:itv4.itv.co.uk<br />
Film4;BSkyB:10714:hC56:S28.2E:22000:2346:2347=eng,2348=NAR:2349:0:9220:2:2041:0:filmfour.channel4.com<br />
More4;BSkyB:10729:vC56:S28.2E:22000:2361:2362=eng,2363=NAR:2364:0:8340:2:2042:0:more4.channel4.com<br />
E4;BSkyB:10729:vC56:S28.2E:22000:2315+2306:2317=eng,2319=NAR:2321:0:8305:2:2042:0:e4.channel4.com<br />
</pre><br />
<br />
<br />
You can create a cronjob to get the updating of the EPG data done automatically, your crontab could look like this:<br />
<pre><br />
00 00 * * * tv_grab_uk_rt --config-file ~/.xmltv/tv_grab_uk_rt.conf --quiet > /tmp/uk.xml<br />
05 00 * * * xmltv2vdr.pl -x /tmp/uk.xml -c /etc/xmltv2vdr/channels.conf<br />
</pre><br />
<br />
===vdraepg===<br />
[http://www.vdrportal.de/board/thread.php?postid=632294 vdraepg] is a Ruby-script which transfers EPG-data from one channel to another, i.e., the data is not being downloaded from the Internet as with XMLTV, but is already present in VDR's EPG-information.<br />
<br />
This makes sense in some cases when, for example, a channel is available on DVB-T, but does not have as elaborate an EPG as the same channel on DVB-S (which, for instance, might even be encrypted). The script can also be used to change the time information. So the script can transfer EPG-data from, e.g., ITV2 to ITV2+1, just by adding one hour to the EPG-information from ITV2.<br />
<br />
You can install the package vdraepg from [http://aur.archlinux.org/ AUR]. Read the file /usr/share/doc/vdraepg/README.en for instructions on how to set vdreapg up. An example configuration has been prepared (etc/vdraepg/vdraepg.conf)<br />
<pre><br />
#source-channel, target-channel, time-adjustment<br />
S28.2E-2-2044-10070, S28.2E-2-2041-10172, 60 #itv2, itv2+1<br />
S28.2E-2-2054-10260, S28.2E-2-2054-10261, 60 #itv3, itv3+1<br />
S28.2E-2-2042-8335, S28.2E-2-2042-8330, 60 #film4, film4+1<br />
S19.2E-1-1101-28106, T-0-562-1, 0 #ARD, DVBS --> DVB-T<br />
</pre><br />
<br />
Again it might make sense for you to have vdraepg run as a cronjob:<br />
<pre><br />
10 00 * * * vdraepg.rb<br />
</pre><br />
<br />
<br />
<br />
==Streaming VDR==<br />
<br />
===Over the Local Area Network (LAN)===<br />
Imagine having your computer running VDR somewhere in your study, living room, or even in your cellar and watching live tv and recordings provided by the same VDR on a deck chair in your garden. This whish can be put into practice.<br />
<br />
The very same plugin that we already [[VDR#Xineliboutput - Full-Featured and Budget Cards | used with budget cards]] we are going to use again to show the VDR frontend on any computer on the LAN or WLAN: vdr-plugin-xineliboutput.<br />
<br />
On the remote computer the packages xine-lib-vdr and xine-ui-vdr, availabe on [http://aur.archlinux.org/ AUR], have to be installed.<br />
<br />
Adjust the file ~/.xine/keymap as described [[ Xineliboutput - Full-Featured and Budget Cards | above ]] to control VDR with the keyboard. <br />
<br />
Now watch your favorite movies any place in and around your house:<br />
<br />
<pre><br />
xine "xvdr+tcp://<VDR's IP address>:37890#nocache" -D<br />
</pre><br />
<br />
===Over the Internet===<br />
Theoretically, the concept of streaming VDR over LAN or WLAN with the plugin vdr-xine can also be adopted to the Internet. The point is, though, that the requirements in terms of bandwith will only be fullfilled in very rare cases. To stream VDR without further compression you are going to need an upstream speed of three or even more Mbit/s, according to the bitrate of the broadcast. Therefore, John Doe has to use highly optimized codecs like H.264 AVC and this is exactly what this part of the tutorial about streaming VDR over the Internet will be about.<br />
<br />
Even though the quality of the video is visibly diminished, the result looks startlingly great and you can watch live TV and recordings with hardly any cutback. <br />
<br />
You can control the remote VDR with either the [[http://live.vdr-developer.org/en/index.php | LIVE plugin]] or SVDRP software like [http://www.chrisz.de/blog/?p=61 "VDR Remote Control"] (unsecure, since the SVDRP port has to be forwarded on your router). You can even use your iPhone or iPod Touch with the application [http://www.vdr-wiki.de/wiki/index.php/ZapperPro ZapperPro], available in the Apple Store. As a requirement you need access to to the Internet through WLAN. Be careful regarding the security issue when opening the SVDRP port to the Internet.<br />
<br />
Two concepts will be provided, since using the same techniques, the quality of the resulting stream should be similar.<br />
<br />
====StreamDev Plugin====<br />
An easy approach and also the recommended one is to set up the plugin Streamdev from ArchVDR. <br />
<br />
=====Server=====<br />
The plugin's config file (/etc/vdr/plugins/plugin.streamdev-server.conf) has to have a reference to the file externremux.sh.<br />
<br />
<pre><br />
-r /usr/bin/externremux.sh<br />
</pre><br />
<br />
That is the content of the file /usr/bin/externremux.sh, adjust it to your liking:<br />
<pre><br />
# externremux.sh<br />
<br />
# CONFIG START<br />
TMP=/tmp/externremux-${RANDOM:-$$}<br />
STREAMQUALITY="150"<br />
# CONFIG END<br />
<br />
mkdir -p $TMP<br />
mkfifo $TMP/out.avi<br />
(trap "rm -rf $TMP" EXIT HUP INT TERM ABRT; cat $TMP/out.avi) &<br />
<br />
case ${1:-$STREAMQUALITY} in<br />
"100") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=100:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=32:q=2:mode=3 -vf pp=ci,scale -zoom -xy 320 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"150") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=150:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=32:q=2:mode=3 -vf pp=ci,scale -zoom -xy 320 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"200") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=200:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=32:q=2:mode=3 -vf pp=ci,scale -zoom -xy 360 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"250") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=250:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=48:q=2:mode=3 -vf pp=ci,scale -zoom -xy 400 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"300") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=300:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=48:q=2:mode=3 -vf pp=ci,scale -zoom -xy 440 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"350") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=350:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=48:q=2:mode=3 -vf pp=ci,scale -zoom -xy 440 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"400") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=400:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=64:q=2:mode=3 -vf pp=ci,scale -zoom -xy 480 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"450") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=450:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=64:q=2:mode=3 -vf pp=ci,scale -zoom -xy 480 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"500") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=500:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=128:q=2:mode=3 -vf pp=ci,scale -zoom -xy 480 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"750") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=750:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=128:q=2:mode=3 -vf pp=ci -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"1000") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=1000:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=128:q=2:mode=3 -vf pp=ci -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
<br />
*) touch $TMP/out.avi ;;<br />
esac<br />
</pre><br />
<br />
<br />
=====Client=====<br />
On the client side only VLC has to be installed, you can start the streaming process with<br />
<pre><br />
vlc "http://<VDR's public IP>:3000/extern;250/19"<br />
</pre><br />
<br />
In this example, channel 19 is being streamed with the "250" option resulting in 250 Kbit Video and 48 Kbit Audio streaming. Make sure to forward port 3000 to the computer running VDR.<br />
<br />
<br />
====VLC====<br />
[http://www.videolan.org/vlc/ VLC] is not only a well known multimedia player, but is also perfectly suited to encode and stream video and audio. Therefore, we use it to grab audio and video in order to encode and stream VDR over the Internet. VLC has to be installed on the server as well as on the client.<br />
<br />
=====Server=====<br />
Adjust "vb=250" (video bit rate) and "ab=48" (audio bit rate) in the following commands according to your upload speed. The two values in the example work great with an upstream of 384 Kbit/sec.<br />
<br />
======Full-Featured Cards Only======<br />
Start the video streaming on the computer running VDR with the following command (for easy access you can include the command in /etc/vdr/commands.conf):<br />
<br />
<pre><br />
/usr/bin/cvlc -d v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/dsp" :v4l-norm=3 :v4l-frequency=-1 --sout #transcode{vcodec=h264,vb=250,scale=0.5,acodec=mp4a,ab=48,channels=1}:duplicate{dst=std{access=http,mux=ts,dst=0.0.0.0:1234}}'<br />
</pre><br />
<br />
======Full-Featured and Budget Cards======<br />
You need to install the plugin vdr-xineliboutput, available on [http://aur.archlinux.org/ AUR]. You start the video streaming with the following command:<br />
<pre><br />
cvlc http://localhost:37890 :http-caching=3000 :sout="#transcode{vcodec=h264,vb=200,scale=0.5,acodec=mp4a,ab=48,channels=1}:duplicate{dst=std{access=http,mux=ts,dst=0.0.0.0:1234}}"<br />
</pre><br />
<br />
=====Client=====<br />
<br />
On the remote computer you can open the stream with the following command. If the computer running VDR is behind a router, make sure the port 1234 is being forwarded.<br />
<br />
<pre><br />
vlc http://<VDR's public IP>:1234<br />
</pre><br />
<br />
Make sure to forward port 1234 to the computer running VDR.<br />
<br />
===Streaming to iPhone, iPad and iPod===<br />
Wouldn't it be great to access your VDR on the go, e.g., on the train or just in a boring meeting ;-) Well, [http://projects.vdr-developer.org/projects/istreamdev/news iStreamDev] makes exactly that possible. iStreamDev is a relatively new project with the aim of watching live TV, playing VDR's recordings and even streaming arbitraty video and audio files from your PC at home to Apple's mobile devices, over Wifi as well as over UMTS. The setup is rather simple, just follow the [http://projects.vdr-developer.org/wiki/istreamdev/INSTALL guide]. To ensure you are motivated to get started, have a look at some [http://projects.vdr-developer.org/wiki/istreamdev/SCREENSHOTS screenshots]. Believe me, it is as awesome as it looks!<br />
<br />
When configuring Apache and PHP, make sure to add your VDR video directory to the open_basedir line in /etc/php/php_ini, e.g.<br />
<pre><br />
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/video/<br />
</pre><br />
<br />
As for now, to make it work on the iPad you have to use the git version.<br />
<br />
<br />
=Conclusion=<br />
I remember having almost given up on setting up VDR on Arch Linux at the very beginning because of the problem mentioned above with the wrongly loaded module for my full-featured card. This guide might help some of you to also get beyond the point of only trying to get VDR up and running.<br />
<br />
This guide is not intended to be complete and it never will be. Hopefully, with the cooperation of you guys it will become more and more detailed and useful.<br />
<br />
=References=<br />
* [http://www.tvdr.de/index.htm VDR Homepage]<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Main_Page VDR Wiki]<br />
* [http://www.vdr-portal.de/board/portal.php German User Forum]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=VDR&diff=152687VDR2011-08-20T07:28:38Z<p>Cdwijs: Expanded installation instructions</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|VDR}}<br />
[[de:VDR]]<br />
{{Article summary start|Summary}}<br />
{{Article summary text|Information on installing and configuring VDR}}<br />
{{Article summary end}}<br />
<br />
<br />
=Introduction=<br />
[http://www.cadsoft.de/vdr/ VDR] stands for <b>V</b>ideo <b>D</b>isk <b>R</b>ecorder, an open source software application to turn any PC into a digital video recorder. These initials do not fully explain what VDR is capable of. VDR does also implement all the functions of a modern set-top box to watch either live television or recordings. With the extensive amount of available [http://www.linuxtv.org/vdrwiki/index.php/Plugins plugins] almost countless features can be added, e.g., play DVDs, play audio and video files, view your photo collection, check your email account...<br />
<br />
With its flexibility Arch Linux is perfectly suited for setting VDR up and customizing it. [http://aur.archlinux.org/ AUR], the Arch Linux User-Community Repository, and the [http://sourceforge.net/apps/trac/archvdr/ ArchVDR team] provide PKGBUILDs for VDR and its most commonly used plugins and addons.<br />
<br />
This article is divided into three parts. In the first part I am going to show you how to install VDR on your PC and how to get it up and running. The second part of the article is about how to extend VDR by adding new features like playing DVDs or controlling VDR over the Internet. The third part is about rather advanced features like how to automatically detect and mark commercial breaks in your recordings or how to stream VDR over the Internet.<br />
<br />
=Initial Steps=<br />
This part of the guide is about how to install VDR and how to get it up and running.<br />
<br />
==Hardware Requirements==<br />
VDR is designed to work with a huge variety of DVB cards. See the [http://www.linuxtv.org/vdrwiki/index.php/Main_Page VDR Wiki] for whether or not your specific card will be supported. Let me just tell you that so called budget cards, i.e., cards without a hardware MPEG decoder, work perfectly fine with VDR thanks to plugins like vdr-xineliboutput. At present, HDTV - mainly via DVB-S2 - is becoming more and more popular and the good news is that VDR supports a wide range of such cards, e.g. [http://www.vdr-wiki.de/wiki/index.php/DVB-S2_Budget-PCI-Karten internal PCI cards]. A widely used HDTV card is Hauppauge's Nova-HD-S2, which comes with a remote control that can be used in VDR, more about that later. Ok then, lets get into more detail.<br />
<br />
==Installation==<br />
<br />
Even though you can install VDR from the [http://aur.archlinux.org/ AUR], [http://wiki.archlinux.org/index.php/AUR_User_Guidelines installing], it is recommendable to use the up-do-date [http://wiki.archlinux.org/index.php/PKGBUILD PKGBUILDs] for VDR, its plugins and addons provided by the [http://sourceforge.net/apps/trac/archvdr/ ArchVDR team]. The [http://sourceforge.net/apps/trac/archvdr/wiki/ArchVDR Wiki] explains further details on how to get the files.<br />
<br />
=== Prepare for compilation ===<br />
First step is to install the needed pacakges:<br />
# pacman -S subversion fakeroot patch sudo linuxtv-dvb-apps at<br />
# pacman -S autoconf automake git pkg-config<br />
# pacman -S libvdpau libogg flac libvorbis libmng libtheora a52dec<br />
# pacman -S faad2 faac x264 ffmpeg libdca libpulse mercurial<br />
# pacman -S ffmpeg cvs libdca mesa freeglut<br />
<br />
=== Getting the pkgbuilds ===<br />
Now issue the following commands to get the pkgbuilds:<br />
$ svn co https://archvdr.svn.sourceforge.net/svnroot/archvdr archvdr<br />
$ cd archvdr/trunk/archvdr/<br />
<br />
=== Install ttf-vdrsymbols ===<br />
First install ttf-vdrsymbols:<br />
$ cd ttf-vdrsymbols/<br />
$ makepkg<br />
# pacman -U ttf-vdrsymbols-20100612-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== start-stop-daemon ===<br />
$ cd start-stop-daemon/<br />
$ makepkg<br />
# pacman -U start-stop-daemon-1.15.8.11-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== vdr ===<br />
$ cd vdr-1.7.19/<br />
$ makepkg<br />
# pacman -U vdr-1.7.19-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== libblueray ===<br />
$ cd libbluray/<br />
$ makepkg<br />
# pacman -U libbluray-20110620-1-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== xine-lib ===<br />
$ cd xine-lib-1.2/<br />
$ makepkg<br />
# pacman -U xine-lib-1.2-11678-7-i686.pkg.tar.xz<br />
$ cd ..<br />
<br />
=== vdr-plugin-xineliboutput-git ===<br />
$ cd vdr-plugin-xineliboutput-git/<br />
$ makepkg<br />
# pacman -U vdr-plugin-xineliboutput-git-20110620-1-i686.pkg.tar.xz<br />
<br />
The VDR package's install script will create a special user called ''vdr'', especially for running VDR. The vdr user will be added to the video group so that it can access DVB cards and should own VDR's configuration files in /etc/vdr and the recordings and Electronic Programme Guide (EPG) directories /var/spool/video and /var/spool/epg.<br />
<br />
== DVB Card Kernel Modules and Firmware ==<br />
If you own one of the famous [http://www.vdr-wiki.de/wiki/index.php/DVB-S_full-featured-Karten full-featured DVB-S cards] (with hardware MPEG decoder) from Technotrend (identical in construction to Hauppauge Nexus, Technisat Skystar 1 and Fujitsu-Siemens DVB-S), you might have to do a little extra work since, at least on my computer, a wrong module gets control of the card. On my computer the command "lspci -k" shows the following output:<br />
<br />
<pre><br />
03:02.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)<br />
Subsystem: Technotrend Systemtechnik GmbH Technotrend/Hauppauge DVB card rev2.3<br />
Kernel driver in use: dvb<br />
Kernel modules: dvb-ttpci, snd-aw2<br />
</pre><br />
<br />
As you can see, two modules, dvb-ttpci and snd-aw2, are assigned to the DVB card while only the former should take control. Simply add the unwanted one to the list in /etc/rc.conf:<br />
<br />
<pre><br />
MODULES=(... !snd-aw2 ...)<br />
</pre><br />
<br />
A restart of the computer should do the rest. Another two things you might do before the restart: if you own one of those full-featured cards (perhaps also for some other cards), you will also need a [http://www.linuxtv.org/downloads/firmware/ firmware] for the card to work. For the full-featured Technotrend cards the firmware is dvb-ttpci-01.fw and has to be placed into the folder /lib/firmware. Instead of restarting the computer you just can unload and load the kernel module dvb_ttpci. The second thing which requires at least a new login to take effect is to add yourself to the group "video" (gpasswd -a <username> video).<br />
<br />
Also other cards, like the already mentioned DVB-S2 card Nova-HD-S2 from Hauppauge require a firmware to be put into /lib/firmware, in the case of the Nova-HD-S2 the firmware's name is dvb-fe-cx24116.fw. Do not forget to eiter reload the card's module or to restart the computer.<br />
<br />
<br />
==Starting VDR==<br />
You can now start vdr:<br />
# /etc/rc.d/vdr start<br />
VDR logs to /var/log/everything.log:<br />
# tail -f /var/log/everything.log<br />
Now connect to vdr with xine. This must be done by the same user that has started the X server, not the user vdr. This should yield a screen with "no signal"<br />
$ vdr-sxfe<br />
<br />
VDR can be automatically started when the PC is booted by adding it to /etc/rc.conf:<br />
DAEMONs=(... @vdr)<br />
<br />
If you want to change the user running VDR, the destination of the video directory or the configuration files, you can do so by editing the VDR's configuration file (/etc/default/vdr):<br />
<br />
<pre><br />
OPTIONS="-u franz -c /video -v /video -E /video/epg.data -w 60"<br />
</pre><br />
<br />
<br />
<br />
=Extending VDR=<br />
==Plugins==<br />
As already mentioned in the introduction, the functionality of VDR can be extended with [http://www.linuxtv.org/vdrwiki/index.php/Plugins plugins]. The following set of plugins, all available from ArchVDR, will make a usable basic VDR installation<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Epgsearch-plugin vdr-epgsearch], a replacement schedule with extended functionality. The epgearch plugin is being used by the plugin vdr-live.<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Extrecmenu-plugin vdr-extrecmenu], a replacement recordings menu with extended functionality.<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Femon-plugin vdr-femon], a frontend status monitor.<br />
* [http://streamdev.vdr-developer.org/ vdr-streamdev], a streaming server/client. Easy to set up with vdradmin-am.<br />
* [http://live.vdr-developer.org/en/index.php vdr-live], a web interface that can be used to control VDR, view and search the EPG, schedule recordings and stream live TV.<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Xineliboutput-plugin vdr-xineliboutput], which provides a frontend for VDR and can be used with cards without a hardware MPEG decoder.<br />
<br />
VDR does not support MHEG-5 teletext ("The Red Button" in the UK), so the [http://aur.archlinux.org/packages.php?ID=36420 vdr-rssreader] plugin can make a useful alternative.<br />
<br />
===How to Setup a Plugin===<br />
The command line syntax for running a plugin with VDR is<br />
<pre><br />
vdr -P"name [OPTIONS]"<br />
</pre><br />
and the quickest way to find out what options each installed plugin has is to run<br />
<pre><br />
$ vdr --help<br />
</pre><br />
<br />
<br />
Once installed, the plugins are loaded automatically when VDR is being started. If you want to alter the configuration of a plugin, you can do so editing the according config file in /etc/vdr/plugins/.<br />
<br />
<br />
<br />
==Remote Control==<br />
You might want to control VDR not only by keyboard but using a remote control while relaxing on the couch. On one hand, there is [http://www.lirc.org/ LIRC], which works with every DVB card, because it works independently from your DVB card. On the other hand, provided that your DVB device has an integrated IR-reciever, you might give the plugin [http://www.linuxtv.org/vdrwiki/index.php/Remote-plugin vdr-remote] a try. Both possibilities will be described here.<br />
<br />
===LIRC===<br />
To setup VDR to make use of your [[LIRC]] remote control you have to adjust the file /etc/vdr/remote.conf. The labeling after "LIRC.", e.g., "Up" has to correspond with the labeling in /etc/lircd.conf. The second column stands for the correspondent VDR command.<br />
<br />
<pre><br />
LIRC.Up Up<br />
LIRC.Down Down<br />
LIRC.Menu Menu<br />
LIRC.Ok Ok<br />
LIRC.Back Back<br />
LIRC.Left Left<br />
LIRC.Right Right<br />
LIRC.Red Red<br />
LIRC.Green Green<br />
LIRC.Yellow Yellow<br />
LIRC.Blue Blue<br />
LIRC.0 0<br />
LIRC.1 1<br />
LIRC.2 2<br />
LIRC.3 3<br />
LIRC.4 4<br />
LIRC.5 5<br />
LIRC.6 6<br />
LIRC.7 7<br />
LIRC.8 8<br />
LIRC.9 9<br />
LIRC.Power Power<br />
LIRC.Volume+ Volume+<br />
LIRC.Volume- Volume-<br />
LIRC.Mute Mute<br />
LIRC.Audio Audio<br />
LIRC.Recordings Recordings<br />
LIRC.Info Info<br />
</pre><br />
<br />
Finally, make sure to add the option "--lirc" to the VDR command line<br />
<pre><br />
$ vdr ... --lirc<br />
</pre><br />
or enable LIRC in /etc/runvdr.conf if you are using runvdr-extreme<br />
<pre><br />
# Use a LIRC remote control device. If set to 1, vdr uses /var/run/lirc/lircd.<br />
# If not set, or set to 0, don't use LIRC.<br />
LIRC=1<br />
</pre><br />
<br />
===Remote Plugin===<br />
This plugin only works with cards with build-in IR-recievers, as on Technotrend's full-featured cards or on the Hauppauge Nova-HD-S2. Install the package vdr-remote from ArchVDR and use the guide on the [http://www.linuxtv.org/vdrwiki/index.php/Remote-plugin VDR Wiki] to set it up.<br />
<br />
==Configuring VDR==<br />
<br />
===Channel Scan===<br />
Make sure that the file channels.conf in /etc/vdr concurs with the satellite your dish is pointing at. [http://www.linowsat.de/settings/vdr.html Linowsat] provides up-to-date channel lists for all satellites out there.<br />
<br />
If you own a DVB-T or DVB-C card then either the scan utility from [http://www.archlinux.org/packages/?q=linuxtv-dvb-apps linuxtv-dvb-apps] or [http://www.vdr-wiki.de/wiki/index.php/W_scan w_scan], which is available from the [http://aur.archlinux.org/ AUR], will be your friend. (You might have to use translate.google.com for translating w_scan's German wiki into English.) If you live in the UK then scan has the advantage over w_scan because it can output channels in Logical Channel Number order for VDR, i.e. channel 1 will be BBC ONE, 2 will be BBC TWO etc.<br />
<pre><br />
$ scan -o vdr -e 3 -p -x 0 -t 3 -u -U -q -q <path_to_initial_tuning_data_file> > channels.conf<br />
</pre><br />
<pre><br />
$ cat /etc/vdr/channels.conf<br />
:@1 <br />
BBC ONE;BBC:505833:C34D34M16B8T2G32Y0:T:27500:600:601=eng,602=eng:0:0:4164:9018:4100:0<br />
:@2 <br />
BBC TWO;BBC:505833:C34D34M16B8T2G32Y0:T:27500:610:611=eng,612=eng:0:0:4228:9018:4100:0<br />
:@3 <br />
ITV1;ITV:481833:C23D12M64B8T2G32Y0:T:27500:520:521=eng,522=eng:0:0:8261:9018:8197:0<br />
:@4 <br />
Channel 4;Channel 4 TV:481833:C23D12M64B8T2G32Y0:T:27500:560:561=eng,562=eng:0:0:8384:9018:8197:0<br />
:@5 <br />
FIVE;five:481833:C23D12M64B8T2G32Y0:T:27500:540:541=eng,542=eng:0:0:8500:9018:8197:0<br />
</pre><br />
<br />
===Controlling and Displaying VDR===<br />
Eventually, we want to make sure that we can submit controls to and can see the output (live tv and menu) of VDR. <br />
<br />
Full-featured cards have got a VGA connector on the card in order to connect an external TV set, alternatively this role can be taken over by DXR 3/Hollywood+ cards. Nevertheless, these possibilities are getting less important nowadays. On one hand with the advent of computer screens with 24 or even more inches the computer screen itself has become very attractive for watching TV, on the other hand, new TV sets do also have an implemented DVI, HDMI, or even DisplayPort input allowing the computer's graphics board to become the output device.<br />
<br />
Therefore, this guide focuses on the VDR output on an X-server. BTW, to make us of the VGA output of your full-featured card you simply have to connect your TV set using an adequate VGA cable.<br />
<br />
For testing purposes it makes sense to control VDR with the keyboard. For how to control VDR by remote control see [[VDR#Remote_Control | below]]. If you have a full-featured card there are two ways of dispaying the VDR screen and to control VDR by keyboard, if you own a budget card, one possibility will be given.<br />
<br />
====TVtime - Full-Featured Cards Only====<br />
[http://tvtime.sourceforge.net/ TVtime] is a TV application which can be used to display VDR's screen. Install the packages tvtime and the wrapper script [http://vdrportal.de/board/thread.php?threadid=18234 vdr-tvtime] from [http://aur.archlinux.org/ AUR]. To control VDR, adjust the first column of the file /etc/tvtime/maps.txt according to your liking. Here is an example:<br />
<br />
<pre><br />
m Menu<br />
Enter Ok<br />
Backspace Back<br />
F1 Red<br />
F2 Green<br />
F3 Yellow<br />
F4 Blue<br />
+ Channel+<br />
- Channel-<br />
u Volume+<br />
d Volume-<br />
c Channels<br />
t Timers<br />
r Recordings<br />
s Setup<br />
a Audio<br />
n Info<br />
f TVTIME_f<br />
</pre><br />
<br />
Now you can start VDR (/etc/rc.d/runvdr start). Then execute the script "vdr-tvtime.pl". TVtime should display the VDR screen and you should also be able to control VDR with the keyboard.<br />
<br />
====Xineliboutput - Full-Featured and Budget Cards====<br />
The plugin vdr-xineliboutput enables VDR to be used with cards without a hardware MPEG decoder chip such as the often mentioned Hauppauge Nova-HD-S2. <br />
<br />
=====Configuring vdr-xineliboutput=====<br />
There are some xine configuration changes that can improve performance with VDR. Make sure that xine is not running then edit the following in ${HOME}/.xine/config<br />
<pre><br />
# number of audio buffers<br />
# numeric, default: 230<br />
engine.buffers.audio_num_buffers:500<br />
<br />
# number of video buffers<br />
# numeric, default: 500<br />
engine.buffers.video_num_buffers:1000<br />
<br />
# default number of video frames<br />
# numeric, default: 15<br />
engine.buffers.video_num_frames:22<br />
<br />
# method to sync audio and video<br />
# { metronom feedback resample }, default: 0<br />
audio.synchronization.av_sync_method:resample<br />
<br />
# enable resampling<br />
# { auto off on }, default: 0<br />
audio.synchronization.resample_mode:on<br />
</pre><br />
<br />
Using xine-ui-vdr you can also use your keyboard to control VDR. Start Xine once and close it so that the file ~/.xine/keymap is going to be created. Edit this file so that at least the basic keys for controlling VDR will work, e.g.,<br />
<pre><br />
# jump to media Menu<br />
Menu {<br />
key = m<br />
modifier = none<br />
}<br />
<br />
# menu navigate up<br />
EventUp {<br />
key = Up<br />
modifier = none<br />
}<br />
<br />
# menu navigate down<br />
EventDown {<br />
key = Down<br />
modifier = none<br />
}<br />
<br />
# menu navigate left<br />
EventLeft {<br />
key = Left<br />
modifier = none<br />
}<br />
<br />
# menu navigate right<br />
EventRight {<br />
key = Right<br />
modifier = none<br />
}<br />
<br />
# menu select<br />
EventSelect {<br />
key = Return<br />
modifier = none<br />
}<br />
<br />
# VDR Red button<br />
VDRButtonRed {<br />
key = F1<br />
modifier = none<br />
}<br />
<br />
# VDR Green button<br />
VDRButtonGreen {<br />
key = F2<br />
modifier = none<br />
}<br />
<br />
# VDR Yellow button<br />
VDRButtonYellow {<br />
key = F3<br />
modifier = none<br />
}<br />
<br />
# VDR Blue button<br />
VDRButtonBlue {<br />
key = F4<br />
modifier = none<br />
}<br />
<br />
# VDR Command back<br />
VDRBack {<br />
key = BackSpace<br />
modifier = none<br />
}<br />
<br />
# menu select<br />
Alias {<br />
entry = EventSelect<br />
key = KP_Enter<br />
modifier = none<br />
}<br />
</pre><br />
Also remember that you will get an error if you assign a key twice, make sure therefore to change for instance the key for "SpeedFaster" from "Up" to "VOID". It is possible, however, to assign two keys to the same event, you do so with the "Alias" keyword. More information on the [http://xinehq.de/index.php/readme Xine website].<br />
<br />
Start Xine with the following command:<br />
<pre><br />
$ xine "xvdr+tcp://<VDR's IP address>:37890#nocache" <br />
</pre><br />
<br />
By adding the option "-D" (deinterlace) the picture quality is increased.<br />
<br />
It might be necessary to adjust the plugin's configuration (/etc/vdr/plugins/plugin.xinliboutput.conf)<br />
<pre><br />
--local=none<br />
--primary <br />
--remote=<VDR's IP address>:37890 <br />
</pre><br />
<br />
<br />
=Special Features=<br />
<br />
This part is meant for advanced users of VDR who might get some little hint on how to enhance their VDR installation.<br />
<br />
==Noad - <b>No</b> <b>Ad</b>vertisement==<br />
<br />
[http://noad.freepgs.com/ Noad] is able to detect commercials and to set cutting marks accordingly. The package "noad" is available on AUR. And let me tell you, noad does a great job. Even though I always check the marks before starting the cutting process it is very seldom that I have to correct them within a movie. It is more outside a movie, i.e., within the recording buffer before and after the movie, that sometimes marks have to be manually eliminated.<br />
<br />
By adding the following to the VDROPTS section of the file /etc/rc.vdr, noad is being executed automatically after a recording has been completed.<br />
<br />
<pre><br />
-r'/usr/bin/noad nice -b -O -C -a -j --statisticfile=/video/noadstat'<br />
</pre><br />
<br />
The second possibility is to start the commercial detection process manually from the commands menu of the recordings. Just edit the file /etc/vdr/reccmds.conf and add the following line:<br />
<br />
<pre><br />
start noad: /usr/bin/noad nice --background -O -C -a -j --statisticfile=/video/noadstat<br />
</pre><br />
<br />
As a third possibility you can start noad on the command line. For how to do that and for an explanation of all the command line options check the [http://noad.freepgs.com/README.en.html README] (also available in /usr/share/doc/noad/).<br />
<br />
==Augment VDR's EPG==<br />
<br />
===xmltv2vdr===<br />
Some channels like BBC or ITV do only provide EPG information for the current and the next broadcast which is somewhat unspectacular compared to the standards set by other broadcasting services like ARD (Germany) or ORF (Austria). Fortunately, [http://wiki.xmltv.org/index.php/Main_Page XMLTV] can step into the breach as it is able to get TV-listings for one ore even more weeks in advance. You can follow [[XMLTV_HOWTO | this guide]] to install and configure XMLTV.<br />
<br />
The XML-file created by XMLTV has to be converted in order that VDR can use the data. For this purpose the script [http://www.vdr-wiki.de/wiki/index.php/Xmltv2vdr xmltv2vdr] has been written, it is availabe on [http://aur.archlinux.org/ AUR]. Install it and follow the README in /usr/share/doc/xmltv2vdr/. The example file channels.conf has been prepared in /etc/xmltv2vdr:<br />
<br />
<pre><br />
BBC 1 London;BSkyB:10773:h:S28.2E:22000:5000:5001=eng,5002=NAR:5003:1:6301:2:2045:0:london.bbc1.bbc.co.uk<br />
BBC 2 England;BSkyB:10773:h:S28.2E:22000:5100:5101=eng,5102=NAR:5103:1:6302:2:2045:0:london.bbc2.bbc.co.uk<br />
BBC THREE;BSkyB:10773:hC56:S28.2E:22000:5200:5201=eng,5202=NAR:5203:0:6319:2:2045:0:bbcthree.bbc.co.uk<br />
BBC FOUR;BSkyB:10773:hC56:S28.2E:22000:5300:5301=eng,5302=NAR:5303:0:6316:2:2045:0:bbcfour.bbc.co.uk<br />
BBC NEWS;BSkyB:11954:hC23:S28.2E:27500:5000:5001=eng:5003:0:6704:2:2013:0:news-24.bbc.co.uk<br />
CBBC Channel;BSkyB:10773:h:S28.2E:22000:5200:5201=eng,5202=NAR:5203:0:6317:2:2045:0:cbbc.bbc.co.uk<br />
CBeebies;BSkyB:10773:h:S28.2E:22000:5300:5301=eng,5302=NAR:5303:0:6318:2:2045:0:cbeebies.bbc.co.uk<br />
ITV1 London;BSkyB:10759:vC56:S28.2E:22000:2305:2312=eng,2314=NAR:2315:0:10060:2:2044:0:carlton.com<br />
ITV2;BSkyB:10759:vC56:S28.2E:22000:2352:2354=eng,2356=NAR:2358:0:10070:2:2044:0:itv2.itv.co.uk<br />
ITV3;BSkyB:10906:vC56:S28.2E:22000:2362:2356=eng,2357=NAR:2359:0:10260:2:2054:0:itv3.itv.co.uk<br />
ITV4;BSkyB:10759:vC56:S28.2E:22000:2359:2360=eng,2361=NAR:2362:0:10072:2:2044:0:itv4.itv.co.uk<br />
Film4;BSkyB:10714:hC56:S28.2E:22000:2346:2347=eng,2348=NAR:2349:0:9220:2:2041:0:filmfour.channel4.com<br />
More4;BSkyB:10729:vC56:S28.2E:22000:2361:2362=eng,2363=NAR:2364:0:8340:2:2042:0:more4.channel4.com<br />
E4;BSkyB:10729:vC56:S28.2E:22000:2315+2306:2317=eng,2319=NAR:2321:0:8305:2:2042:0:e4.channel4.com<br />
</pre><br />
<br />
<br />
You can create a cronjob to get the updating of the EPG data done automatically, your crontab could look like this:<br />
<pre><br />
00 00 * * * tv_grab_uk_rt --config-file ~/.xmltv/tv_grab_uk_rt.conf --quiet > /tmp/uk.xml<br />
05 00 * * * xmltv2vdr.pl -x /tmp/uk.xml -c /etc/xmltv2vdr/channels.conf<br />
</pre><br />
<br />
===vdraepg===<br />
[http://www.vdrportal.de/board/thread.php?postid=632294 vdraepg] is a Ruby-script which transfers EPG-data from one channel to another, i.e., the data is not being downloaded from the Internet as with XMLTV, but is already present in VDR's EPG-information.<br />
<br />
This makes sense in some cases when, for example, a channel is available on DVB-T, but does not have as elaborate an EPG as the same channel on DVB-S (which, for instance, might even be encrypted). The script can also be used to change the time information. So the script can transfer EPG-data from, e.g., ITV2 to ITV2+1, just by adding one hour to the EPG-information from ITV2.<br />
<br />
You can install the package vdraepg from [http://aur.archlinux.org/ AUR]. Read the file /usr/share/doc/vdraepg/README.en for instructions on how to set vdreapg up. An example configuration has been prepared (etc/vdraepg/vdraepg.conf)<br />
<pre><br />
#source-channel, target-channel, time-adjustment<br />
S28.2E-2-2044-10070, S28.2E-2-2041-10172, 60 #itv2, itv2+1<br />
S28.2E-2-2054-10260, S28.2E-2-2054-10261, 60 #itv3, itv3+1<br />
S28.2E-2-2042-8335, S28.2E-2-2042-8330, 60 #film4, film4+1<br />
S19.2E-1-1101-28106, T-0-562-1, 0 #ARD, DVBS --> DVB-T<br />
</pre><br />
<br />
Again it might make sense for you to have vdraepg run as a cronjob:<br />
<pre><br />
10 00 * * * vdraepg.rb<br />
</pre><br />
<br />
<br />
<br />
==Streaming VDR==<br />
<br />
===Over the Local Area Network (LAN)===<br />
Imagine having your computer running VDR somewhere in your study, living room, or even in your cellar and watching live tv and recordings provided by the same VDR on a deck chair in your garden. This whish can be put into practice.<br />
<br />
The very same plugin that we already [[VDR#Xineliboutput - Full-Featured and Budget Cards | used with budget cards]] we are going to use again to show the VDR frontend on any computer on the LAN or WLAN: vdr-plugin-xineliboutput.<br />
<br />
On the remote computer the packages xine-lib-vdr and xine-ui-vdr, availabe on [http://aur.archlinux.org/ AUR], have to be installed.<br />
<br />
Adjust the file ~/.xine/keymap as described [[ Xineliboutput - Full-Featured and Budget Cards | above ]] to control VDR with the keyboard. <br />
<br />
Now watch your favorite movies any place in and around your house:<br />
<br />
<pre><br />
xine "xvdr+tcp://<VDR's IP address>:37890#nocache" -D<br />
</pre><br />
<br />
===Over the Internet===<br />
Theoretically, the concept of streaming VDR over LAN or WLAN with the plugin vdr-xine can also be adopted to the Internet. The point is, though, that the requirements in terms of bandwith will only be fullfilled in very rare cases. To stream VDR without further compression you are going to need an upstream speed of three or even more Mbit/s, according to the bitrate of the broadcast. Therefore, John Doe has to use highly optimized codecs like H.264 AVC and this is exactly what this part of the tutorial about streaming VDR over the Internet will be about.<br />
<br />
Even though the quality of the video is visibly diminished, the result looks startlingly great and you can watch live TV and recordings with hardly any cutback. <br />
<br />
You can control the remote VDR with either the [[http://live.vdr-developer.org/en/index.php | LIVE plugin]] or SVDRP software like [http://www.chrisz.de/blog/?p=61 "VDR Remote Control"] (unsecure, since the SVDRP port has to be forwarded on your router). You can even use your iPhone or iPod Touch with the application [http://www.vdr-wiki.de/wiki/index.php/ZapperPro ZapperPro], available in the Apple Store. As a requirement you need access to to the Internet through WLAN. Be careful regarding the security issue when opening the SVDRP port to the Internet.<br />
<br />
Two concepts will be provided, since using the same techniques, the quality of the resulting stream should be similar.<br />
<br />
====StreamDev Plugin====<br />
An easy approach and also the recommended one is to set up the plugin Streamdev from ArchVDR. <br />
<br />
=====Server=====<br />
The plugin's config file (/etc/vdr/plugins/plugin.streamdev-server.conf) has to have a reference to the file externremux.sh.<br />
<br />
<pre><br />
-r /usr/bin/externremux.sh<br />
</pre><br />
<br />
That is the content of the file /usr/bin/externremux.sh, adjust it to your liking:<br />
<pre><br />
# externremux.sh<br />
<br />
# CONFIG START<br />
TMP=/tmp/externremux-${RANDOM:-$$}<br />
STREAMQUALITY="150"<br />
# CONFIG END<br />
<br />
mkdir -p $TMP<br />
mkfifo $TMP/out.avi<br />
(trap "rm -rf $TMP" EXIT HUP INT TERM ABRT; cat $TMP/out.avi) &<br />
<br />
case ${1:-$STREAMQUALITY} in<br />
"100") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=100:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=32:q=2:mode=3 -vf pp=ci,scale -zoom -xy 320 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"150") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=150:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=32:q=2:mode=3 -vf pp=ci,scale -zoom -xy 320 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"200") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=200:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=32:q=2:mode=3 -vf pp=ci,scale -zoom -xy 360 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"250") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=250:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=48:q=2:mode=3 -vf pp=ci,scale -zoom -xy 400 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"300") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=300:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=48:q=2:mode=3 -vf pp=ci,scale -zoom -xy 440 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"350") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=350:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=48:q=2:mode=3 -vf pp=ci,scale -zoom -xy 440 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"400") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=400:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=64:q=2:mode=3 -vf pp=ci,scale -zoom -xy 480 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"450") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=450:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=64:q=2:mode=3 -vf pp=ci,scale -zoom -xy 480 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"500") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=500:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=128:q=2:mode=3 -vf pp=ci,scale -zoom -xy 480 -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"750") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=750:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=128:q=2:mode=3 -vf pp=ci -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
"1000") exec mencoder -ovc x264 -srate 22050 -x264encopts bitrate=1000:vbv_maxrate=180:vbv_bufsize=300:ratetol=0.1:threads=3 -oac mp3lame -lameopts cbr:br=128:q=2:mode=3 -vf pp=ci -o $TMP/out.avi -- - &>$TMP/out.log ;;<br />
<br />
*) touch $TMP/out.avi ;;<br />
esac<br />
</pre><br />
<br />
<br />
=====Client=====<br />
On the client side only VLC has to be installed, you can start the streaming process with<br />
<pre><br />
vlc "http://<VDR's public IP>:3000/extern;250/19"<br />
</pre><br />
<br />
In this example, channel 19 is being streamed with the "250" option resulting in 250 Kbit Video and 48 Kbit Audio streaming. Make sure to forward port 3000 to the computer running VDR.<br />
<br />
<br />
====VLC====<br />
[http://www.videolan.org/vlc/ VLC] is not only a well known multimedia player, but is also perfectly suited to encode and stream video and audio. Therefore, we use it to grab audio and video in order to encode and stream VDR over the Internet. VLC has to be installed on the server as well as on the client.<br />
<br />
=====Server=====<br />
Adjust "vb=250" (video bit rate) and "ab=48" (audio bit rate) in the following commands according to your upload speed. The two values in the example work great with an upstream of 384 Kbit/sec.<br />
<br />
======Full-Featured Cards Only======<br />
Start the video streaming on the computer running VDR with the following command (for easy access you can include the command in /etc/vdr/commands.conf):<br />
<br />
<pre><br />
/usr/bin/cvlc -d v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/dsp" :v4l-norm=3 :v4l-frequency=-1 --sout #transcode{vcodec=h264,vb=250,scale=0.5,acodec=mp4a,ab=48,channels=1}:duplicate{dst=std{access=http,mux=ts,dst=0.0.0.0:1234}}'<br />
</pre><br />
<br />
======Full-Featured and Budget Cards======<br />
You need to install the plugin vdr-xineliboutput, available on [http://aur.archlinux.org/ AUR]. You start the video streaming with the following command:<br />
<pre><br />
cvlc http://localhost:37890 :http-caching=3000 :sout="#transcode{vcodec=h264,vb=200,scale=0.5,acodec=mp4a,ab=48,channels=1}:duplicate{dst=std{access=http,mux=ts,dst=0.0.0.0:1234}}"<br />
</pre><br />
<br />
=====Client=====<br />
<br />
On the remote computer you can open the stream with the following command. If the computer running VDR is behind a router, make sure the port 1234 is being forwarded.<br />
<br />
<pre><br />
vlc http://<VDR's public IP>:1234<br />
</pre><br />
<br />
Make sure to forward port 1234 to the computer running VDR.<br />
<br />
===Streaming to iPhone, iPad and iPod===<br />
Wouldn't it be great to access your VDR on the go, e.g., on the train or just in a boring meeting ;-) Well, [http://projects.vdr-developer.org/projects/istreamdev/news iStreamDev] makes exactly that possible. iStreamDev is a relatively new project with the aim of watching live TV, playing VDR's recordings and even streaming arbitraty video and audio files from your PC at home to Apple's mobile devices, over Wifi as well as over UMTS. The setup is rather simple, just follow the [http://projects.vdr-developer.org/wiki/istreamdev/INSTALL guide]. To ensure you are motivated to get started, have a look at some [http://projects.vdr-developer.org/wiki/istreamdev/SCREENSHOTS screenshots]. Believe me, it is as awesome as it looks!<br />
<br />
When configuring Apache and PHP, make sure to add your VDR video directory to the open_basedir line in /etc/php/php_ini, e.g.<br />
<pre><br />
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/video/<br />
</pre><br />
<br />
As for now, to make it work on the iPad you have to use the git version.<br />
<br />
<br />
=Conclusion=<br />
I remember having almost given up on setting up VDR on Arch Linux at the very beginning because of the problem mentioned above with the wrongly loaded module for my full-featured card. This guide might help some of you to also get beyond the point of only trying to get VDR up and running.<br />
<br />
This guide is not intended to be complete and it never will be. Hopefully, with the cooperation of you guys it will become more and more detailed and useful.<br />
<br />
=References=<br />
* [http://www.tvdr.de/index.htm VDR Homepage]<br />
* [http://www.linuxtv.org/vdrwiki/index.php/Main_Page VDR Wiki]<br />
* [http://www.vdr-portal.de/board/portal.php German User Forum]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=148865Digitenne2011-07-11T18:14:31Z<p>Cdwijs: added instructions for 2 and 3 DVB-T receivers</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Environment==<br />
====You need Kernel <= 2.6.36 or kernel>=2.6.38 ====<br />
{{Note|core/kernel26 is up to date (both i686 and x86_64). Just make sure to run pacman -Syu and reboot.}}<br />
<br />
With kernel 2.6.37 sasc-ng will crash, showing the following errors in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should appear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
====Install mplayer and tzap====<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
====Scan channels====<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf: <br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV Rijnmond:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio Rijnmond:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Veronica/Disney XD:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3011:3012:31<br />
RTL 8:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3021:3022:32<br />
��n:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3031:3032:33<br />
Ketnet/Canvas:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3041:3042:34<br />
Nickelodeon/TeenNick:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Private Spice:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3081:3082:38<br />
Nederland 1:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV Noord-Holland:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio Noord-Holland:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Nederland 1:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV West:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio West:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Eredivisie Live 1:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2011:2012:21<br />
Eredivisie 2/AT5:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2021:2022:22<br />
KinderNet/ComedyCentral:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2031:2032:23<br />
MTV:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2041:2042:24<br />
Animal Planet:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2051:2052:25<br />
CNN:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2061:2062:26<br />
BBC Entertainment:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2071:2072:27<br />
NGC:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2081:2082:28<br />
BNR Nieuwsradio:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2172:217<br />
Arrow Classic Rock:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2182:218<br />
Radio 538:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2192:219<br />
SSU 1:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:6210<br />
SSU 2:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:6211<br />
RTL 4:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1011:1012:11<br />
RTL 5:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1021:1022:12<br />
RTL 7:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1031:1032:13<br />
SBS 6:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1041:1042:14<br />
NET 5:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1051:1052:15<br />
SLAM!FM:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1112:111<br />
Radio 10 Gold:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1122:112<br />
Q-Music:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1132:113<br />
100%NL:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1142:114<br />
Classic FM:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1152:115<br />
Sky Radio:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1162:116<br />
Radio Veronica:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1172:117<br />
<br />
Here we can see Digitenne uses 4 transports to broadcast all the channels. This means it's possible to record all Digitenne channels with only 4 DVB-T receivers. The receiver is in range of 3 transmitters for Nederland 1, 2 and 3, the rest of the channels is received once:<br />
Transport 474 MHz, 618 Mhz, 722 MHz, <br />
Nederland 1<br />
Nederland 2<br />
Nederland 3<br />
TV Rijnmond / TV Noord-Holland / TV West<br />
<br />
Transport 498 MHz:<br />
Veronica/Disney XD<br />
RTL 8<br />
Een<br />
Ketnet/Canvas<br />
Nickelodeon/TeenNick<br />
Discovery Channel<br />
Eurosport<br />
Private Spice<br />
<br />
Transport 762MHz:<br />
Eredivisie Live 1<br />
Eredivisie 2/AT5<br />
KinderNet/ComedyCentral<br />
MTV<br />
Animal Planet<br />
CNN<br />
BBC Entertainment<br />
NGC:<br />
<br />
Transport 818 MHz:<br />
RTL 4<br />
RTL 5<br />
RTL 7<br />
SBS 6<br />
NET 5<br />
<br />
====Tune the DVB-T receiver====<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
====Play the captured datastream====<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch:<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
$ wget http://aur.archlinux.org/packages/sascng-kernel26-patch/sascng-kernel26-patch.tar.gz<br />
$ tar -xf sascng-kernel26-patch.tar.gz <br />
$ cd sasc-ng-kernel26-patch/<br />
$ makepkg<br />
# pacman -U sascng-kernel26-patch-2.6.39-2-i686.pkg.tar.xz<br />
<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the built-in logging is used it can happen that sasc-ng uses 100% CPU. Then it can only be killed by <br />
# killall -s 16 sasc-ng. <br />
Disable therefore the internal logging like this: Now the messages of sasc-ng end up in /var/log/everything.log<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
===Expanding for 2 or more DVB-T tuners===<br />
For 2 tuners edit /etc/conf.d/sasc-ng:<br />
# Use -j <real>:<virtual> to link adapters<br />
#for 2 tuners<br />
SASCNG_ARGS="-j 0:2 -j 1:3"<br />
DVBLOOPBACK_ARGS="num_adapters=2"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
This will create 2 virtual adapters (adapter 2 and 3):<br />
$ ls -l /dev/dvb/<br />
total 0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter1<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter2<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter3<br />
<br />
For 3 tuners edit /etc/conf.d/sasc-ng:<br />
# Use -j <real>:<virtual> to link adapters<br />
#for 3 tuners<br />
SASCNG_ARGS="-j 0:3 -j 1:4 -j 2:5"<br />
DVBLOOPBACK_ARGS="num_adapters=3"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
This will create 3 virtual adapters (adapter 3, 4 and 5):<br />
$ ls -l /dev/dvb/<br />
total 0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter0<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter1<br />
drwxr-xr-x 2 root root 120 Jul 11 11:01 adapter2<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter3<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter4<br />
drwxr-xr-x 2 root root 280 Jul 11 11:01 adapter5<br />
<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and set up the following pages:<br />
$mythtv-setup<br />
==== 1. General ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. Capture cards ====<br />
Card type: DVB DVT capture card (v3.x)<br />
DVB Device Number: /dev/dvb/adapter1/frontend0<br />
Frontend ID: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Recording Options:<br />
Max recordings: 5<br />
[don't] Wait for SEQ start header<br />
[don't] Open DVB card on demand<br />
[do] Use DVB card for active EIT scan<br />
DVB tuning delay (msec): 0<br />
==== 3. Video sources ====<br />
Video source name: digitenne_eit<br />
Listings grabber: Transmitted guide only (EIT)<br />
Channel frequency table: europe-west<br />
==== 4. Input connections ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
Capture device: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Input: DVBInput<br />
Display name (optional): digitenne<br />
Video source: digitenne_eit<br />
Use quick tuning: Never<br />
[don't] Use DishNet long-term EIT data<br />
Scan for channels<br />
Video Source: digitenne_eit<br />
Input: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Desired Services: TV<br />
[don't] Only Free<br />
[don't] Test Decryptability<br />
Scan type: Full Scan<br />
Country: Germany (The Nederlands does not exist) <br />
Starting channel: 1<br />
Input priority: 0<br />
Input Group 1: DVB_/dev/dvb/adapter0/frontend0<br />
Input Group 2: Generic<br />
==== 5. Channel Editor ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Storage Directories ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Start mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different frequency (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. In this way all the decryption happens in the background.<br />
== References ==<br />
Sat4All: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886 (Dutch link)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=148863Digitenne2011-07-11T17:59:48Z<p>Cdwijs: expanded scan results</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Environment==<br />
====You need Kernel <= 2.6.36 or kernel>=2.6.38 ====<br />
{{Note|core/kernel26 is up to date (both i686 and x86_64). Just make sure to run pacman -Syu and reboot.}}<br />
<br />
With kernel 2.6.37 sasc-ng will crash, showing the following errors in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should appear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
====Install mplayer and tzap====<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
====Scan channels====<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf: <br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV Rijnmond:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio Rijnmond:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Veronica/Disney XD:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3011:3012:31<br />
RTL 8:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3021:3022:32<br />
��n:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3031:3032:33<br />
Ketnet/Canvas:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3041:3042:34<br />
Nickelodeon/TeenNick:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Private Spice:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3081:3082:38<br />
Nederland 1:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV Noord-Holland:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio Noord-Holland:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Nederland 1:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
TV West:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7041:7042:1104<br />
Radio West:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7112:1111<br />
Radio 1:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7122:1112<br />
Radio 2:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7132:1113<br />
3FM:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7142:1114<br />
Radio 4:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7152:1115<br />
Radio 5:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7162:1116<br />
Radio 6:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7172:1117<br />
FunX:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:7192:1119<br />
Eredivisie Live 1:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2011:2012:21<br />
Eredivisie 2/AT5:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2021:2022:22<br />
KinderNet/ComedyCentral:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2031:2032:23<br />
MTV:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2041:2042:24<br />
Animal Planet:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2051:2052:25<br />
CNN:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2061:2062:26<br />
BBC Entertainment:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2071:2072:27<br />
NGC:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2081:2082:28<br />
BNR Nieuwsradio:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2172:217<br />
Arrow Classic Rock:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2182:218<br />
Radio 538:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2192:219<br />
SSU 1:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:6210<br />
SSU 2:762000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:6211<br />
RTL 4:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1011:1012:11<br />
RTL 5:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1021:1022:12<br />
RTL 7:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1031:1032:13<br />
SBS 6:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1041:1042:14<br />
NET 5:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1051:1052:15<br />
SLAM!FM:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1112:111<br />
Radio 10 Gold:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1122:112<br />
Q-Music:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1132:113<br />
100%NL:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1142:114<br />
Classic FM:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1152:115<br />
Sky Radio:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1162:116<br />
Radio Veronica:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1172:117<br />
<br />
Here we can see Digitenne uses 4 transports to broadcast all the channels. This means it's possible to record all Digitenne channels with only 4 DVB-T receivers. The receiver is in range of 3 transmitters for Nederland 1, 2 and 3, the rest of the channels is received once:<br />
Transport 474 MHz, 618 Mhz, 722 MHz, <br />
Nederland 1<br />
Nederland 2<br />
Nederland 3<br />
TV Rijnmond / TV Noord-Holland / TV West<br />
<br />
Transport 498 MHz:<br />
Veronica/Disney XD<br />
RTL 8<br />
Een<br />
Ketnet/Canvas<br />
Nickelodeon/TeenNick<br />
Discovery Channel<br />
Eurosport<br />
Private Spice<br />
<br />
Transport 762MHz:<br />
Eredivisie Live 1<br />
Eredivisie 2/AT5<br />
KinderNet/ComedyCentral<br />
MTV<br />
Animal Planet<br />
CNN<br />
BBC Entertainment<br />
NGC:<br />
<br />
Transport 818 MHz:<br />
RTL 4<br />
RTL 5<br />
RTL 7<br />
SBS 6<br />
NET 5<br />
<br />
====Tune the DVB-T receiver====<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
====Play the captured datastream====<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch:<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
$ wget http://aur.archlinux.org/packages/sascng-kernel26-patch/sascng-kernel26-patch.tar.gz<br />
$ tar -xf sascng-kernel26-patch.tar.gz <br />
$ cd sasc-ng-kernel26-patch/<br />
$ makepkg<br />
# pacman -U sascng-kernel26-patch-2.6.39-2-i686.pkg.tar.xz<br />
<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the built-in logging is used it can happen that sasc-ng uses 100% CPU. Then it can only be killed by <br />
# killall -s 16 sasc-ng. <br />
Disable therefore the internal logging like this: Now the messages of sasc-ng end up in /var/log/everything.log<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and set up the following pages:<br />
$mythtv-setup<br />
==== 1. General ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. Capture cards ====<br />
Card type: DVB DVT capture card (v3.x)<br />
DVB Device Number: /dev/dvb/adapter1/frontend0<br />
Frontend ID: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Recording Options:<br />
Max recordings: 5<br />
[don't] Wait for SEQ start header<br />
[don't] Open DVB card on demand<br />
[do] Use DVB card for active EIT scan<br />
DVB tuning delay (msec): 0<br />
==== 3. Video sources ====<br />
Video source name: digitenne_eit<br />
Listings grabber: Transmitted guide only (EIT)<br />
Channel frequency table: europe-west<br />
==== 4. Input connections ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
Capture device: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Input: DVBInput<br />
Display name (optional): digitenne<br />
Video source: digitenne_eit<br />
Use quick tuning: Never<br />
[don't] Use DishNet long-term EIT data<br />
Scan for channels<br />
Video Source: digitenne_eit<br />
Input: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Desired Services: TV<br />
[don't] Only Free<br />
[don't] Test Decryptability<br />
Scan type: Full Scan<br />
Country: Germany (The Nederlands does not exist) <br />
Starting channel: 1<br />
Input priority: 0<br />
Input Group 1: DVB_/dev/dvb/adapter0/frontend0<br />
Input Group 2: Generic<br />
==== 5. Channel Editor ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Storage Directories ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Start mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different frequency (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. In this way all the decryption happens in the background.<br />
== References ==<br />
Sat4All: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886 (Dutch link)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=147563Digitenne2011-06-29T06:30:55Z<p>Cdwijs: install instructions sasc-ng expanded</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Environment==<br />
====You need Kernel <= 2.6.36 or kernel>=2.6.38 ====<br />
{{Note|core/kernel26 is up to date (both i686 and x86_64). Just make sure to run pacman -Syu and reboot.}}<br />
<br />
With kernel 2.6.37 sasc-ng will crash, showing the following errors in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should appear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf. Here we can see that Nederland 1,2 and 3 are on 474MHz, and Discovery Channel is at 498MHz. This is dependent on your location.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch:<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
$ wget http://aur.archlinux.org/packages/sascng-kernel26-patch/sascng-kernel26-patch.tar.gz<br />
$ tar -xf sascng-kernel26-patch.tar.gz <br />
$ cd sasc-ng-kernel26-patch/<br />
$ makepkg<br />
# pacman -U sascng-kernel26-patch-2.6.39-2-i686.pkg.tar.xz<br />
<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the built-in logging is used it can happen that sasc-ng uses 100% CPU. Then it can only be killed by <br />
# killall -s 16 sasc-ng. <br />
Disable therefore the internal logging like this: Now the messages of sasc-ng end up in /var/log/everything.log<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and set up the following pages:<br />
$mythtv-setup<br />
==== 1. General ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. Capture cards ====<br />
Card type: DVB DVT capture card (v3.x)<br />
DVB Device Number: /dev/dvb/adapter1/frontend0<br />
Frontend ID: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Recording Options:<br />
Max recordings: 5<br />
[don't] Wait for SEQ start header<br />
[don't] Open DVB card on demand<br />
[do] Use DVB card for active EIT scan<br />
DVB tuning delay (msec): 0<br />
==== 3. Video sources ====<br />
Video source name: digitenne_eit<br />
Listings grabber: Transmitted guide only (EIT)<br />
Channel frequency table: europe-west<br />
==== 4. Input connections ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
Capture device: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Input: DVBInput<br />
Display name (optional): digitenne<br />
Video source: digitenne_eit<br />
Use quick tuning: Never<br />
[don't] Use DishNet long-term EIT data<br />
Scan for channels<br />
Video Source: digitenne_eit<br />
Input: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Desired Services: TV<br />
[don't] Only Free<br />
[don't] Test Decryptability<br />
Scan type: Full Scan<br />
Country: Germany (The Nederlands does not exist) <br />
Starting channel: 1<br />
Input priority: 0<br />
Input Group 1: DVB_/dev/dvb/adapter0/frontend0<br />
Input Group 2: Generic<br />
==== 5. Channel Editor ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Storage Directories ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Start mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different frequency (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. In this way all the decryption happens in the background.<br />
== References ==<br />
Sat4All: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886 (Dutch link)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Logitech_Racing_Wheel&diff=147409Logitech Racing Wheel2011-06-27T13:06:39Z<p>Cdwijs: added aur package, other minor edits</p>
<hr />
<div>{{i18n|Logitech Raacing Wheel}}<br />
[[Category:Input devices (English)]]<br />
<br />
This article describes how to set up a Logitech Formula Force GP Racing Wheel with Arch Linux.<br />
<br />
= Installing =<br />
<br />
== Identifying ==<br />
When the wheel is plugged in, the following commands can be used to identify the wheel:<br />
$dmesg<br />
usb 5-2: new low speed USB device using uhci_hcd and address 6<br />
<br />
$lsusb<br />
Bus 005 Device 006: ID 046d:c293 Logitech, Inc. WingMan Formula Force GP<br />
<br />
$ cat /proc/bus/input/devices<br />
I: Bus=0003 Vendor=046d Product=c293 Version=0100<br />
N: Name="Logitech Inc. WingMan Formula Force GP"<br />
P: Phys=usb-0000:00:1a.2-2/input0<br />
S: Sysfs=/devices/pci0000:00/0000:00:1a.2/usb5/5-2/5-2:1.0/input/input30<br />
U: Uniq=<br />
H: Handlers=event15 js0 <br />
B: EV=20001b<br />
B: KEY=3f 0 0 0 0 0 0 0 0 0<br />
B: ABS=3<br />
B: MSC=10<br />
B: FF=1 40000 0 0<br />
== Testing ==<br />
Testing can be done with the Linux Force Feedback Library. <br />
This package can be found in aur: http://aur.archlinux.org/packages.php?ID=50236<br />
<br />
Now the wheel can be tested. To find the right device use evtest /dev/input/eventX. The correct number can be found in /proc/bus/input/devices. In this case event15 is the correct device. evtest shows the events coming from the wheel:<br />
$ evtest /dev/input/event15<br />
Input driver version is 1.0.0<br />
Input device ID: bus 0x3 vendor 0x46d product 0xc293 version 0x100<br />
Input device name: "Logitech Inc. WingMan Formula Force GP"<br />
Supported events:<br />
Event type 0 (Reset)<br />
Event code 0 (Reset)<br />
Event code 1 (Key)<br />
Event code 3 (Absolute)<br />
Event code 4 (?)<br />
Event code 21 (ForceFeedback)<br />
Event type 1 (Key)<br />
Event code 288 (Trigger)<br />
Event code 289 (ThumbBtn)<br />
Event code 290 (ThumbBtn2)<br />
Event code 291 (TopBtn)<br />
Event code 292 (TopBtn2)<br />
Event code 293 (PinkieBtn)<br />
Event type 3 (Absolute)<br />
Event code 0 (X)<br />
Value 438<br />
Min 0<br />
Max 1023<br />
Fuzz 3<br />
Flat 63<br />
Event code 1 (Y)<br />
Value 124<br />
Min 0<br />
Max 255<br />
Flat 15<br />
Event type 4 (?)<br />
Event code 4 (?)<br />
Event type 21 (ForceFeedback)<br />
Event code 82 (?)<br />
Event code 96 (?)<br />
Testing ... (interrupt to exit)<br />
Event: time 1295173625.476950, type 3 (Absolute), code 0 (X), value 439<br />
Event: time 1295173625.476983, type 0 (Reset), code 0 (Reset), value 0<br />
Event: time 1295173625.484827, type 3 (Absolute), code 0 (X), value 428<br />
<br />
ffcfstress can be used to test the force feedback. The wheel should start to oscillate:<br />
# ffcfstress -d /dev/input/event15<br />
<br />
position center force<br />
<-----------|****+------> <-----------|*******----> <-----------|**+-------->^C<br />
<br />
= Configuration =<br />
The Wheel works without any wine configuration in flatout2. Just the following in-game configuration is needed:<br />
*Force Feedback: On<br />
*Force level: 100%<br />
*Sensitivity: 100%<br />
*Deadzone: 0%<br />
*Controller: Logitech Inc...<br />
<br />
*Throttle: Y-Axis left<br />
*Brake: Y-Axis right<br />
*Steer left: X-axis left<br />
*Steer right"X-axis right<br />
<br />
= References =<br />
[http://sourceforge.net/apps/mediawiki/libff/index.php?title=CheckForceFeedback Sourceforge wiki: CheckForceFeedback]</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=147158Digitenne2011-06-24T08:51:06Z<p>Cdwijs: sasc-ng log notice added</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Environment==<br />
====You need Kernel <= 2.6.36 or kernel>=2.6.38 ====<br />
{{Note|core/kernel26 is up to date (both i686 and x86_64). Just make sure to run pacman -Syu and reboot.}}<br />
<br />
With kernel 2.6.37 sasc-ng will crash, showing the following errors in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should appear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf. Here we can see that Nederland 1,2 and 3 are on 474MHz, and Discovery Channel is at 498MHz. This is dependent on your location.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch 2.6.38-1<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the built-in logging is used it can happen that sasc-ng uses 100% CPU. Then it can only be killed by <br />
# killall -s 16 sasc-ng. <br />
Disable therefore the internal logging like this: Now the messages of sasc-ng end up in /var/log/everything.log<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR >> $LOGDIR/sasc-ng.log 2>&1<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and set up the following pages:<br />
$mythtv-setup<br />
==== 1. General ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. Capture cards ====<br />
Card type: DVB DVT capture card (v3.x)<br />
DVB Device Number: /dev/dvb/adapter1/frontend0<br />
Frontend ID: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Recording Options:<br />
Max recordings: 5<br />
[don't] Wait for SEQ start header<br />
[don't] Open DVB card on demand<br />
[do] Use DVB card for active EIT scan<br />
DVB tuning delay (msec): 0<br />
==== 3. Video sources ====<br />
Video source name: digitenne_eit<br />
Listings grabber: Transmitted guide only (EIT)<br />
Channel frequency table: europe-west<br />
==== 4. Input connections ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
Capture device: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Input: DVBInput<br />
Display name (optional): digitenne<br />
Video source: digitenne_eit<br />
Use quick tuning: Never<br />
[don't] Use DishNet long-term EIT data<br />
Scan for channels<br />
Video Source: digitenne_eit<br />
Input: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Desired Services: TV<br />
[don't] Only Free<br />
[don't] Test Decryptability<br />
Scan type: Full Scan<br />
Country: Germany (The Nederlands does not exist) <br />
Starting channel: 1<br />
Input priority: 0<br />
Input Group 1: DVB_/dev/dvb/adapter0/frontend0<br />
Input Group 2: Generic<br />
==== 5. Channel Editor ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Storage Directories ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Start mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different frequency (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. In this way all the decryption happens in the background.<br />
== References ==<br />
Sat4All: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886 (Dutch link)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=144084Digitenne2011-06-05T08:53:29Z<p>Cdwijs: translated mythtv-settings pages</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Environment==<br />
====You need Kernel <= 2.6.36 or kernel>=2.6.38 ====<br />
{{Note|core/kernel26 is up to date (both i686 and x86_64). Just make sure to run pacman -Syu and reboot.}}<br />
<br />
With kernel 2.6.37 sasc-ng will crash, showing the following errors in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should appear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf. Here we can see that Nederland 1,2 and 3 are on 474MHz, and Discovery Channel is at 498MHz. This is dependent on your location.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch 2.6.38-1<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the built-in logging is used it can happen that sasc-ng uses 100% CPU. Then it can only be killed by <br />
# killall -s 16 sasc-ng. <br />
Disable therefore the internal logging like this:<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR >> $LOGDIR/sasc-ng.log 2>&1<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and set up the following pages:<br />
$mythtv-setup<br />
==== 1. General ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. Capture cards ====<br />
Card type: DVB DVT capture card (v3.x)<br />
DVB Device Number: /dev/dvb/adapter1/frontend0<br />
Frontend ID: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Recording Options:<br />
Max recordings: 5<br />
[don't] Wait for SEQ start header<br />
[don't] Open DVB card on demand<br />
[do] Use DVB card for active EIT scan<br />
DVB tuning delay (msec): 0<br />
==== 3. Video sources ====<br />
Video source name: digitenne_eit<br />
Listings grabber: Transmitted guide only (EIT)<br />
Channel frequency table: europe-west<br />
==== 4. Input connections ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
Capture device: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Input: DVBInput<br />
Display name (optional): digitenne<br />
Video source: digitenne_eit<br />
Use quick tuning: Never<br />
[don't] Use DishNet long-term EIT data<br />
Scan for channels<br />
Video Source: digitenne_eit<br />
Input: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Desired Services: TV<br />
[don't] Only Free<br />
[don't] Test Decryptability<br />
Scan type: Full Scan<br />
Country: Germany (The Nederlands does not exist) <br />
Starting channel: 1<br />
Input priority: 0<br />
Input Group 1: DVB_/dev/dvb/adapter0/frontend0<br />
Input Group 2: Generic<br />
==== 5. Channel Editor ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Storage Directories ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Start mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different frequency (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. In this way all the decryption happens in the background.<br />
== References ==<br />
Sat4All: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886 (Dutch link)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=142908Digitenne2011-05-27T19:04:37Z<p>Cdwijs: typos (thanks mom!)</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Environment==<br />
====You need Kernel <= 2.6.36 or kernel>=2.6.38 ====<br />
{{Note|core/kernel26 is up to date (both i686 and x86_64). Just make sure to run pacman -Syu and reboot.}}<br />
<br />
With kernel 2.6.37 sasc-ng will crash, showing the following errors in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should appear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf. Here we can see that Nederland 1,2 and 3 are on 474MHz, and Discovery Channel is at 498MHz. This is dependent on your location.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch 2.6.38-1<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the built-in logging is used it can happen that sasc-ng uses 100% CPU. Then it can only be killed by <br />
# killall -s 16 sasc-ng. <br />
Disable therefore the internal logging like this:<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR >> $LOGDIR/sasc-ng.log 2>&1<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and set up the following pages:<br />
$mythtv-setup<br />
==== 1. Algemeen ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. TV kaarten ====<br />
Kaarttype: DVB DVT TV-kaart (v3.x)<br />
DVB apparaatnummer: /dev/dvb/adapter1/frontend0<br />
Frontendnaam: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Maximum # opnames: 5<br />
[niet] op SEQ start header wachten<br />
[niet] DVB-kaart op vraag openen<br />
[wel ] Use DVB card for active EIT scan<br />
DVB tuning delay (ms): 0<br />
==== 3. Videobronnen ====<br />
Naam videobron: digitenne_eit<br />
TV-gids grabber: Enkel de meegezonden programmagids (EIT)<br />
kanaalfrequentie-tabel: europe-west<br />
==== 4. Ingang verbindingen ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
TV-Kaart: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Ingang: DVBInput<br />
Displaynaam: digitenne<br />
Videobron: digitenne_eit<br />
Snel afstemmen gebruiken: nooit<br />
[niet] Use DishNet long-term EIT data<br />
Zoeken naar zenders<br />
video bron: digitenne_eit<br />
Ingang: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Gewenste diensten: TV<br />
[niet] enkel onversleuteld<br />
[niet] Test Decryptability<br />
Scan type: Volledige Scan<br />
Land: Duitsland (Nederland bestaat niet) <br />
Zender waarmee gestart wordt: 10<br />
Ingangsprioriteit: 0<br />
Ingangsgroep 1: DVB_/dev/dvb/adapter0/frontend0<br />
Ingangsgroep 2: Generieke<br />
==== 5. Kanaal bewerker ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Opslagmappen ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Start mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different frequency (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. In this way all the decryption happens in the background.<br />
== References ==<br />
Sat4All: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886 (Dutch link)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne_(Nederlands)&diff=142851Digitenne (Nederlands)2011-05-26T18:33:31Z<p>Cdwijs: added warning about kernel version</p>
<hr />
<div>[[Category:Nederlands]]<br />
{{i18n|Digitenne}}<br />
<br />
Deze pagina behandelt het decoderen van digitenne (DVB-T) in Nederland.<br />
== Omgeving ==<br />
==== Je hebt kernel <= 2.6.36 of kernel>=2.6.38 nodig====<br />
{{Opmerking|core/kernel26 is nieuw genoeg (zowel i686 als x86_64). Gewoon pacman -Syu draaien en herstarten.}}<br />
<br />
Met kernel 2.6.37 zal sasc-ng vastlopen ,met de volgende meldingen in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
==Gebruikte hardware==<br />
Ik gebruik de volgende hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
<br />
==DVB-T ontvanger testen==<br />
<br />
===Controle device nodes===<br />
Kijk eerst of er een DVB ontvanger aanwezig is. Onder /dev hoort de map dvb aanwezig te zijn:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===DVB-T ontvanger testen met vlc===<br />
Gebruik nu vlc om de ontvanger te testen:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Nu zal vlc alle kanalen scannnen, en na ongeveer 10 minuten het eerste beeld en/of geluid geven.<br />
<br />
Als de permisies van /dev/dvb/adapter0 verkeerd staan zal vlc de volgende melding geven:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
Voeg dan jezelf toe aan de groep "video":<br />
# usermod -a -G video yourusername<br />
<br />
===DVB-T ontvanger testen met tzap en mplayer===<br />
Installeer mplayer en tzap (onderdeel van linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Scan nu naar de digitenne kanalen in nederland:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
Dit levert het bestand ~/.tzap/channels.conf op. Hierin is te zien dat Nederland 1,2 en 3 op 474 MHz zitten, en dat Discovery channel op 498MHz zit. De frekwenties zijn afhankelijk van uw locatie.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Nu kan de tuner afgestemd worden op bijvoorbeeld Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
<br />
Gebruik een andere terminal om mplayer te starten. Nu moet na enkele seconden Nederland 1 op het scherm verschijnen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
=== Insteken cardreader ===<br />
Nadat de Smargo smartreader + in de PC wordt gestoken zal dmesg laten zien dat er een nieuwe seriële poort (ttyUSB0) is toegevoegd:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Installeer oscam via aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuratie ===<br />
Oscam gebruikt de volgende configuratiebestanden: <br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Maak de directory aan waar oscam zijn logbestanden kwijt kan<br />
# mkdir /var/log/oscam<br />
=== Oscam starten ===<br />
# /etc/rc.d/oscam start<br />
Dit levert de volgende meldingen op in /var/log/oscam.log<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Steek nu de digitenne kaart in de cardreader. Dit levert de volgende meldingen op in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== sasc-ng installeren via aur===<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Sasc-ng configureren ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
Als de ingebouwde logging gebruikt wordt, dan komt het op minder snelle systemen voor dat sasc-ng continue 100% CPU gebruikt, en alleen met killall -s 16 sasc-ng te stoppen is. Pas daarom /etc/rc.d/sasc-ng op de volgende manier aan:<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR >> $LOGDIR/sasc-ng.log 2>&1<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
<br />
=== Sasc-ng starten ===<br />
# /etc/rc.d/sasc-ng start<br />
Meldingen in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
Meldingen in /var/log/oscam.log<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Softcam testen met tzap en mplayer ===<br />
Geef de volgende opdrachten in 3 verschillende terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
Nu moet na enkele seconden discovery channel op het scherm verschijnen.<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
Meldingen in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
== Integratie met mythtv ==<br />
Installeer mythtv zoals hier beschreven:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Zorg ervoor dat mysql, oscam en sasc-ng gestart zijn:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Start vervolgens mythtv-setup, en stel daarna de volgende pagina's in:<br />
$mythtv-setup<br />
==== 1. Algemeen ====<br />
In dit menu zijn geen instellingen die invloed hebben op digitenne.<br />
==== 2. TV kaarten ====<br />
Kaarttype: DVB DVT TV-kaart (v3.x)<br />
DVB apparaatnummer: /dev/dvb/adapter1/frontend0<br />
Frontendnaam: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Maximum # opnames: 5<br />
[niet] op SEQ start header wachten<br />
[niet] DVB-kaart op vraag openen<br />
[wel ] Use DVB card for active EIT scan<br />
DVB tuning delay (ms): 0<br />
==== 3. Videobronnen ====<br />
Naam videobron: digitenne_eit<br />
TV-gids grabber: Enkel de meegezonden programmagids (EIT)<br />
kanaalfrequentie-tabel: europe-west<br />
==== 4. Ingang verbindingen ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
TV-Kaart: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Ingang: DVBInput<br />
Displaynaam: digitenne<br />
Videobron: digitenne_eit<br />
Snel afstemmen gebruiken: nooit<br />
[niet] Use DishNet long-term EIT data<br />
Zoeken naar zenders<br />
video bron: digitenne_eit<br />
Ingang: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Gewenste diensten: TV<br />
[niet] enkel onversleuteld<br />
[niet] Test Decryptability<br />
Scan type: Volledige Scan<br />
Land: Duitsland (Nederland bestaat niet) <br />
Zender waarmee gestart wordt: 10<br />
Ingangsprioriteit: 0<br />
Ingangsgroep 1: DVB_/dev/dvb/adapter0/frontend0<br />
Ingangsgroep 2: Generieke<br />
==== 5. Kanaal bewerker ====<br />
Hier horen de kanalen te zien zijn die in scherm 4 (Ingang verbindingen) gevonden zijn.<br />
==== 6. Opslagmappen ====<br />
In dit menu zijn geen instellingen die invloed hebben op digitenne.<br />
==== 7. System events ====<br />
In dit menu zijn geen instellingen die invloed hebben op digitenne.<br />
=== Starten mythtv ===<br />
Zorg ervoor dat mysqld, oscam, sasc-ng gestart zijn:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Start dan mythbackend:<br />
$ mythbackend<br />
En in een andere terminal mythfrontend:<br />
$ mythfrontend<br />
Nu moet het mogelijk zijn om via TV -> TV kijken naar digitenne te kijken. Het kan enige tijd duren voordat afgestemd is op het juiste kanaal, en dat de juiste sleutel opgehaald is. Zappen duurt best lang, zeker als de zender waar je naar toe gaat in een andere transport (frequentie) zit.<br />
<br />
Het beste werkt het om de programma's op te laten nemen, en vervolgens te kijken. Dan gebeurt al het decoderen in de achtergrond.<br />
== Referenties ==<br />
Sat4All forum: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=142850Digitenne2011-05-26T18:27:47Z<p>Cdwijs: Added kernel warning</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Environment==<br />
====You need Kernel <= 2.6.36 or kernel>=2.6.38 ====<br />
{{Note|core/kernel26 is up to date (both i686 and x86_64). Just make sure to run pacman -Syu and reboot.}}<br />
<br />
With kernel 2.6.37 sasc-ng will crash, showing the following errors in dmesg:<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
INFO: task sasc-ng:4563 blocked for more than 120 seconds.<br />
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.<br />
sasc-ng D f0adbdac 0 4563 1 0x00000000<br />
f0adbdbc 00000082 00000002 f0adbdac 00000213 4ee701f2 0004a040 00000000<br />
00000000 f6006340 f0adbd34 c100a208 f0adbd88 c1068173 d03da3f7 c14b6340<br />
f0f97810 c14b6340 c14b6340 f0f979d4 c14b6340 c14b6340 f6206340 f0f97810<br />
Call Trace:<br />
[<c100a208>] ? sched_clock+0x8/0x10<br />
[<c1068173>] ? sched_clock_local+0xd3/0x1c0<br />
[<c103dca2>] ? enqueue_entity+0x102/0x170<br />
[<c131439d>] __mutex_lock_slowpath+0x10d/0x2b0<br />
[<c131454b>] mutex_lock+0xb/0x20<br />
[<fa348119>] dvb_device_open+0x19/0x290 [dvb_core]<br />
[<c110717f>] chrdev_open+0x13f/0x240<br />
[<c1101979>] __dentry_open+0xe9/0x310<br />
[<c1102b2e>] nameidata_to_filp+0x5e/0x70<br />
[<c1107040>] ? chrdev_open+0x0/0x240<br />
[<c110f5df>] do_last+0x3ff/0x630<br />
[<c110f9e4>] do_filp_open+0x1d4/0x510<br />
[<c1102b95>] do_sys_open+0x55/0xf0<br />
[<f80bca30>] ? dvblb_read+0x0/0x340 [dvbloopback]<br />
[<c1102c59>] sys_open+0x29/0x40<br />
[<c100391f>] sysenter_do_call+0x12/0x28<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should apear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf. Here we can see Nedeland 1,2 and 3 are on 474MHz, and Discovery channel is at 498MHz. This is dependent on your location.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch 2.6.38-1<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the build-in logging is used, then it could happen that sasc-ng uses 100% CPU. Then it can only be killed by killall -s 16 sasc-ng. Disable therefore the internal logging like this:<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR >> $LOGDIR/sasc-ng.log 2>&1<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds, Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and setup the following pages:<br />
$mythtv-setup<br />
==== 1. Algemeen ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. TV kaarten ====<br />
Kaarttype: DVB DVT TV-kaart (v3.x)<br />
DVB apparaatnummer: /dev/dvb/adapter1/frontend0<br />
Frontendnaam: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Maximum # opnames: 5<br />
[niet] op SEQ start header wachten<br />
[niet] DVB-kaart op vraag openen<br />
[wel ] Use DVB card for active EIT scan<br />
DVB tuning delay (ms): 0<br />
==== 3. Videobronnen ====<br />
Naam videobron: digitenne_eit<br />
TV-gids grabber: Enkel de meegezonden programmagids (EIT)<br />
kanaalfrequentie-tabel: europe-west<br />
==== 4. Ingang verbindingen ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
TV-Kaart: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Ingang: DVBInput<br />
Displaynaam: digitenne<br />
Videobron: digitenne_eit<br />
Snel afstemmen gebruiken: nooit<br />
[niet] Use DishNet long-term EIT data<br />
Zoeken naar zenders<br />
video bron: digitenne_eit<br />
Ingang: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Gewenste diensten: TV<br />
[niet] enkel onversleuteld<br />
[niet] Test Decryptability<br />
Scan type: Volledige Scan<br />
Land: Duitsland (Nederland bestaat niet) <br />
Zender waarmee gestart wordt: 10<br />
Ingangsprioriteit: 0<br />
Ingangsgroep 1: DVB_/dev/dvb/adapter0/frontend0<br />
Ingangsgroep 2: Generieke<br />
==== 5. Kanaal bewerker ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Opslagmappen ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Starten mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different channel (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. This way all the decryption happens in the background.<br />
== References ==<br />
Sat4All: http://www.sat4all.com/forums/ubbthreads.php/topics/1967886/digitenne_kijken_via_oscam_en_#Post1967886 (Dutch link)</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=142802Digitenne2011-05-25T19:34:52Z<p>Cdwijs: added instructions for mythtv integration (not fully translated yet)</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should apear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf. Here we can see Nedeland 1,2 and 3 are on 474MHz, and Discovery channel is at 498MHz. This is dependent on your location.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch 2.6.38-1<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the build-in logging is used, then it could happen that sasc-ng uses 100% CPU. Then it can only be killed by killall -s 16 sasc-ng. Disable therefore the internal logging like this:<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR >> $LOGDIR/sasc-ng.log 2>&1<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds, Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
== Mythtv Integration==<br />
First install Mythtv als described here:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythtv-setup, and setup the following pages:<br />
$mythtv-setup<br />
==== 1. Algemeen ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 2. TV kaarten ====<br />
Kaarttype: DVB DVT TV-kaart (v3.x)<br />
DVB apparaatnummer: /dev/dvb/adapter1/frontend0<br />
Frontendnaam: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Maximum # opnames: 5<br />
[niet] op SEQ start header wachten<br />
[niet] DVB-kaart op vraag openen<br />
[wel ] Use DVB card for active EIT scan<br />
DVB tuning delay (ms): 0<br />
==== 3. Videobronnen ====<br />
Naam videobron: digitenne_eit<br />
TV-gids grabber: Enkel de meegezonden programmagids (EIT)<br />
kanaalfrequentie-tabel: europe-west<br />
==== 4. Ingang verbindingen ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
TV-Kaart: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Ingang: DVBInput<br />
Displaynaam: digitenne<br />
Videobron: digitenne_eit<br />
Snel afstemmen gebruiken: nooit<br />
[niet] Use DishNet long-term EIT data<br />
Zoeken naar zenders<br />
video bron: digitenne_eit<br />
Ingang: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Gewenste diensten: TV<br />
[niet] enkel onversleuteld<br />
[niet] Test Decryptability<br />
Scan type: Volledige Scan<br />
Land: Duitsland (Nederland bestaat niet) <br />
Zender waarmee gestart wordt: 10<br />
Ingangsprioriteit: 0<br />
Ingangsgroep 1: DVB_/dev/dvb/adapter0/frontend0<br />
Ingangsgroep 2: Generieke<br />
==== 5. Kanaal bewerker ====<br />
Here the channels should be present that have been found in screen 4 (Input connections).<br />
==== 6. Opslagmappen ====<br />
In this menu, there are no settings that affect digitenne.<br />
==== 7. System events ====<br />
In this menu, there are no settings that affect digitenne.<br />
=== Starten mythtv ===<br />
Make sure mysqld, oscam en sasc-ng are started:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Then start mythbackend:<br />
$ mythbackend<br />
And start mythfrontend in a different terminal:<br />
$ mythfrontend<br />
Now it should be possible to watch live TV. It will take some time for the channel to be decrypted. Changing the channel also takes a long time, especially when the new channel is on a different channel (transport).<br />
<br />
The best way is just to record everything you want to see, and then watch the recorings. This way all the decryption happens in the background.</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne_(Nederlands)&diff=142796Digitenne (Nederlands)2011-05-25T19:24:27Z<p>Cdwijs: added instructions for mythtv integration</p>
<hr />
<div>[[Category:Nederlands]]<br />
{{i18n|Digitenne}}<br />
<br />
Deze pagina behandelt het decoderen van digitenne (DVB-T) in Nederland.<br />
<br />
==Gebruikte hardware==<br />
Ik gebruik de volgende hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
<br />
==DVB-T ontvanger testen==<br />
<br />
===Controle device nodes===<br />
Kijk eerst of er een DVB ontvanger aanwezig is. Onder /dev hoort de map dvb aanwezig te zijn:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===DVB-T ontvanger testen met vlc===<br />
Gebruik nu vlc om de ontvanger te testen:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Nu zal vlc alle kanalen scannnen, en na ongeveer 10 minuten het eerste beeld en/of geluid geven.<br />
<br />
Als de permisies van /dev/dvb/adapter0 verkeerd staan zal vlc de volgende melding geven:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
Voeg dan jezelf toe aan de groep "video":<br />
# usermod -a -G video yourusername<br />
<br />
===DVB-T ontvanger testen met tzap en mplayer===<br />
Installeer mplayer en tzap (onderdeel van linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Scan nu naar de digitenne kanalen in nederland:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
Dit levert het bestand ~/.tzap/channels.conf op. Hierin is te zien dat Nederland 1,2 en 3 op 474 MHz zitten, en dat Discovery channel op 498MHz zit. De frekwenties zijn afhankelijk van uw locatie.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Nu kan de tuner afgestemd worden op bijvoorbeeld Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
<br />
Gebruik een andere terminal om mplayer te starten. Nu moet na enkele seconden Nederland 1 op het scherm verschijnen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
=== Insteken cardreader ===<br />
Nadat de Smargo smartreader + in de PC wordt gestoken zal dmesg laten zien dat er een nieuwe seriële poort (ttyUSB0) is toegevoegd:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Installeer oscam via aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuratie ===<br />
Oscam gebruikt de volgende configuratiebestanden: <br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Maak de directory aan waar oscam zijn logbestanden kwijt kan<br />
# mkdir /var/log/oscam<br />
=== Oscam starten ===<br />
# /etc/rc.d/oscam start<br />
Dit levert de volgende meldingen op in /var/log/oscam.log<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Steek nu de digitenne kaart in de cardreader. Dit levert de volgende meldingen op in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== sasc-ng installeren via aur===<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Sasc-ng configureren ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
Als de ingebouwde logging gebruikt wordt, dan komt het op minder snelle systemen voor dat sasc-ng continue 100% CPU gebruikt, en alleen met killall -s 16 sasc-ng te stoppen is. Pas daarom /etc/rc.d/sasc-ng op de volgende manier aan:<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR >> $LOGDIR/sasc-ng.log 2>&1<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
<br />
=== Sasc-ng starten ===<br />
# /etc/rc.d/sasc-ng start<br />
Meldingen in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
Meldingen in /var/log/oscam.log<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Softcam testen met tzap en mplayer ===<br />
Geef de volgende opdrachten in 3 verschillende terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
Nu moet na enkele seconden discovery channel op het scherm verschijnen.<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
Meldingen in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr<br />
== Integratie met mythtv ==<br />
Installeer mythtv zoals hier beschreven:<br />
https://wiki.archlinux.org/index.php/MythTV_HOWTO<br />
=== Mythtv-setup ===<br />
Zorg ervoor dat mysql, oscam en sasc-ng gestart zijn:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Start vervolgens mythtv-setup, en stel daarna de volgende pagina's in:<br />
$mythtv-setup<br />
==== 1. Algemeen ====<br />
In dit menu zijn geen instellingen die invloed hebben op digitenne.<br />
==== 2. TV kaarten ====<br />
Kaarttype: DVB DVT TV-kaart (v3.x)<br />
DVB apparaatnummer: /dev/dvb/adapter1/frontend0<br />
Frontendnaam: DiBcom 7000PC Subtype: DVB-T<br />
Signal Timeout (ms): 1000<br />
Tuning Timeout (ms): 3000<br />
Maximum # opnames: 5<br />
[niet] op SEQ start header wachten<br />
[niet] DVB-kaart op vraag openen<br />
[wel ] Use DVB card for active EIT scan<br />
DVB tuning delay (ms): 0<br />
==== 3. Videobronnen ====<br />
Naam videobron: digitenne_eit<br />
TV-gids grabber: Enkel de meegezonden programmagids (EIT)<br />
kanaalfrequentie-tabel: europe-west<br />
==== 4. Ingang verbindingen ====<br />
[DVB : /dev/adapter1/frontend0 ] (DVBInput) -> digitenne_eit <br />
TV-Kaart: [DVB:/dev/dvb/adapter1/frontend0 ]<br />
Ingang: DVBInput<br />
Displaynaam: digitenne<br />
Videobron: digitenne_eit<br />
Snel afstemmen gebruiken: nooit<br />
[niet] Use DishNet long-term EIT data<br />
Zoeken naar zenders<br />
video bron: digitenne_eit<br />
Ingang: [DVB : /dev/adapter1/frontend0 ] (DVBInput)<br />
Gewenste diensten: TV<br />
[niet] enkel onversleuteld<br />
[niet] Test Decryptability<br />
Scan type: Volledige Scan<br />
Land: Duitsland (Nederland bestaat niet) <br />
Zender waarmee gestart wordt: 10<br />
Ingangsprioriteit: 0<br />
Ingangsgroep 1: DVB_/dev/dvb/adapter0/frontend0<br />
Ingangsgroep 2: Generieke<br />
==== 5. Kanaal bewerker ====<br />
Hier horen de kanalen te zien zijn die in scherm 4 (Ingang verbindingen) gevonden zijn.<br />
==== 6. Opslagmappen ====<br />
In dit menu zijn geen instellingen die invloed hebben op digitenne.<br />
==== 7. System events ====<br />
In dit menu zijn geen instellingen die invloed hebben op digitenne.<br />
=== Starten mythtv ===<br />
Zorg ervoor dat mysqld, oscam, sasc-ng gestart zijn:<br />
# /etc/rc.d/mysqld start<br />
# /etc/rc.d/oscam start<br />
# /etc/rc.d/sasc-ng start<br />
Start dan mythbackend:<br />
$ mythbackend<br />
En in een andere terminal mythfrontend:<br />
$ mythfrontend<br />
Nu moet het mogelijk zijn om via TV -> TV kijken naar digitenne te kijken. Het kan enige tijd duren voordat afgestemd is op het juiste kanaal, en dat de juiste sleutel opgehaald is. Zappen duurt best lang, zeker als de zender waar je naar toe gaat in een andere transport (frequentie) zit.<br />
<br />
Het beste werkt het om de programma's op te laten nemen, en vervolgens te kijken. Dan gebeurt al het decoderen in de achtergrond.</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=142535Digitenne2011-05-23T17:42:32Z<p>Cdwijs: added solution for 100%CPU of sasc-ng</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should apear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf. Here we can see Nedeland 1,2 and 3 are on 474MHz, and Discovery channel is at 498MHz. This is dependent on your location.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch 2.6.38-1<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
When the build-in logging is used, then it could happen that sasc-ng uses 100% CPU. Then it can only be killed by killall -s 16 sasc-ng. Disable therefore the internal logging like this:<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR >> $LOGDIR/sasc-ng.log 2>&1<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds, Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne_(Nederlands)&diff=142534Digitenne (Nederlands)2011-05-23T17:42:22Z<p>Cdwijs: added solution for 100%CPU of sasc-ng</p>
<hr />
<div>[[Category:Nederlands]]<br />
{{i18n|Digitenne}}<br />
<br />
Deze pagina behandelt het decoderen van digitenne (DVB-T) in Nederland.<br />
<br />
==Gebruikte hardware==<br />
Ik gebruik de volgende hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
<br />
==DVB-T ontvanger testen==<br />
<br />
===Controle device nodes===<br />
Kijk eerst of er een DVB ontvanger aanwezig is. Onder /dev hoort de map dvb aanwezig te zijn:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===DVB-T ontvanger testen met vlc===<br />
Gebruik nu vlc om de ontvanger te testen:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Nu zal vlc alle kanalen scannnen, en na ongeveer 10 minuten het eerste beeld en/of geluid geven.<br />
<br />
Als de permisies van /dev/dvb/adapter0 verkeerd staan zal vlc de volgende melding geven:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
Voeg dan jezelf toe aan de groep "video":<br />
# usermod -a -G video yourusername<br />
<br />
===DVB-T ontvanger testen met tzap en mplayer===<br />
Installeer mplayer en tzap (onderdeel van linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Scan nu naar de digitenne kanalen in nederland:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
Dit levert het bestand ~/.tzap/channels.conf op. Hierin is te zien dat Nederland 1,2 en 3 op 474 MHz zitten, en dat Discovery channel op 498MHz zit. De frekwenties zijn afhankelijk van uw locatie.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Nu kan de tuner afgestemd worden op bijvoorbeeld Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
<br />
Gebruik een andere terminal om mplayer te starten. Nu moet na enkele seconden Nederland 1 op het scherm verschijnen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
=== Insteken cardreader ===<br />
Nadat de Smargo smartreader + in de PC wordt gestoken zal dmesg laten zien dat er een nieuwe seriële poort (ttyUSB0) is toegevoegd:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Installeer oscam via aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuratie ===<br />
Oscam gebruikt de volgende configuratiebestanden: <br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Maak de directory aan waar oscam zijn logbestanden kwijt kan<br />
# mkdir /var/log/oscam<br />
=== Oscam starten ===<br />
# /etc/rc.d/oscam start<br />
Dit levert de volgende meldingen op in /var/log/oscam.log<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Steek nu de digitenne kaart in de cardreader. Dit levert de volgende meldingen op in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== sasc-ng installeren via aur===<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Sasc-ng configureren ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
==== /etc/rc.d/sasc-ng ====<br />
Als de ingebouwde logging gebruikt wordt, dan komt het op minder snelle systemen voor dat sasc-ng continue 100% CPU gebruikt, en alleen met killall -s 16 sasc-ng te stoppen is. Pas daarom /etc/rc.d/sasc-ng op de volgende manier aan:<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
[ -f /etc/conf.d/sasc-ng ] && . /etc/conf.d/sasc-ng<br />
<br />
PID=$(pidof -o %PPID /usr/sbin/sasc-ng)<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Loading dvbloopback kernel module"<br />
<br />
[[ -z $DVBLOOPBACK_ARGS ]] && stat_die 1<br />
<br />
modprobe dvbloopback $DVBLOOPBACK_ARGS<br />
sleep 1<br />
<br />
stat_done<br />
<br />
stat_busy "Starting SASC-NG daemon"<br />
<br />
[[ -z $SASCNG_ARGS ]] && stat_die 2<br />
[[ -z $CAMDIR ]] && stat_die 3<br />
[[ -z $LOGDIR ]] && stat_die 4<br />
<br />
#[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR -l $LOGDIR/sasc-ng.log<br />
[[ -z $PID ]] && /usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR >> $LOGDIR/sasc-ng.log 2>&1<br />
if [ $? -gt 0 ]; then<br />
stat_die 5<br />
else<br />
add_daemon sasc-ng<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stoping SASC-NG daemon"<br />
[[ ! -z $PID ]] && kill $PID &> /dev/null<br />
<br />
if [ $? -gt 0 ]; then<br />
stat_die 6<br />
else<br />
rm_daemon sasc-ng<br />
stat_done<br />
fi<br />
<br />
stat_busy "Unloading dvbloopback kernel module"<br />
<br />
sleep 2<br />
modprobe -r dvbloopback<br />
<br />
stat_done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}" >&2<br />
exit 1<br />
esac<br />
<br />
=== Sasc-ng starten ===<br />
# /etc/rc.d/sasc-ng start<br />
Meldingen in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
Meldingen in /var/log/oscam.log<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Softcam testen met tzap en mplayer ===<br />
Geef de volgende opdrachten in 3 verschillende terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
Nu moet na enkele seconden discovery channel op het scherm verschijnen.<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
Meldingen in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne&diff=142463Digitenne2011-05-22T19:32:49Z<p>Cdwijs: translated instructions from dutch page</p>
<hr />
<div>{{i18n|Digitenne}}<br />
This page describes the procedure to watch encrypted DVB-T broadcasts in the Netherlands<br />
<br />
==Used Hardware==<br />
I use the following hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
* 1.6GHz P4 512MB ram<br />
<br />
==testing the DVB-T receiver==<br />
<br />
===Check device nodes===<br />
First check if the device nodes of the DVB-T receiver are present:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===Testing the DVB-T receiver with vlc===<br />
Now use VLC to test the receiver:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Now VLC will scan all channels, and after 10 minutes the first moving image should apear on the screen.<br />
<br />
If you don't have permission to open /dev/dvb/adapter0 then vlc will issue the next errors:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
In that case add yourself to the group "video", and logout and login:<br />
# usermod -a -G video yourusername<br />
<br />
===Test the DVB-T receiver with tzap and mplayer===<br />
First install mplayer and tzap (part of linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Now scan the digitenne channels in the Netherlands:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
This yields the file ~/.tzap/channels.conf. Here we can see Nedeland 1,2 and 3 are on 474MHz, and Discovery channel is at 498MHz. This is dependent on your location.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Now the tuner can be set to Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
Use another terminal to start mplayer. After a few seconds Nederland 1 should appear on the screen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
===Plugin cardreader===<br />
After the Smargo smartreader+ is inserted in the PC, dmesg should show a new serial port (ttyUSB0) is added:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Install oscam from aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuration ===<br />
Oscam uses the following configuration files:<br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Now create the directory where oscam can log to:<br />
# mkdir /var/log/oscam<br />
=== Starting Oscam ===<br />
# /etc/rc.d/oscam start<br />
This should yield the following messages in /var/log/oscam.log:<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Now insert the Digitenne smartcard in the cardreader. This should yield the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== Install sasc-ng from aur===<br />
First you need to install sascng-kernel26-patch 2.6.38-1<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
Then install sasc-ng:<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Configure Sasc-ng ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
=== Starting Sasc-ng ===<br />
# /etc/rc.d/sasc-ng start<br />
This yields the following messages in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
This yields the following messages in /var/log/oscam.log:<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Testing Softcam with tzap and mplayer ===<br />
Issue the following commands in 3 separate terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
After a few seconds, Discovery Channel should appear on the screen.<br />
This yields the following messages in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
This yields the following messages in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne_(Nederlands)&diff=142230Digitenne (Nederlands)2011-05-21T06:12:48Z<p>Cdwijs: </p>
<hr />
<div>[[Category:Nederlands]]<br />
{{i18n|Digitenne}}<br />
<br />
Deze pagina behandelt het decoderen van digitenne (DVB-T) in Nederland.<br />
<br />
==Gebruikte hardware==<br />
Ik gebruik de volgende hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
<br />
==DVB-T ontvanger testen==<br />
<br />
===Controle device nodes===<br />
Kijk eerst of er een DVB ontvanger aanwezig is. Onder /dev hoort de map dvb aanwezig te zijn:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===DVB-T ontvanger testen met vlc===<br />
Gebruik nu vlc om de ontvanger te testen:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Nu zal vlc alle kanalen scannnen, en na ongeveer 10 minuten het eerste beeld en/of geluid geven.<br />
<br />
Als de permisies van /dev/dvb/adapter0 verkeerd staan zal vlc de volgende melding geven:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
Voeg dan jezelf toe aan de groep "video":<br />
# usermod -a -G video yourusername<br />
<br />
===DVB-T ontvanger testen met tzap en mplayer===<br />
Installeer mplayer en tzap (onderdeel van linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Scan nu naar de digitenne kanalen in nederland:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
Dit levert het bestand ~/.tzap/channels.conf op. Hierin is te zien dat Nederland 1,2 en 3 op 474 MHz zitten, en dat Discovery channel op 498MHz zit. De frekwenties zijn afhankelijk van uw locatie.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Nu kan de tuner afgestemd worden op bijvoorbeeld Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
<br />
Gebruik een andere terminal om mplayer te starten. Nu moet na enkele seconden Nederland 1 op het scherm verschijnen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
=== Insteken cardreader ===<br />
Nadat de Smargo smartreader + in de PC wordt gestoken zal dmesg laten zien dat er een nieuwe seriële poort (ttyUSB0) is toegevoegd:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Installeer oscam via aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuratie ===<br />
Oscam gebruikt de volgende configuratiebestanden: <br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Maak de directory aan waar oscam zijn logbestanden kwijt kan<br />
# mkdir /var/log/oscam<br />
=== Oscam starten ===<br />
# /etc/rc.d/oscam start<br />
Dit levert de volgende meldingen op in /var/log/oscam.log<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Steek nu de digitenne kaart in de cardreader. Dit levert de volgende meldingen op in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== sasc-ng installeren via aur===<br />
http://aur.archlinux.org/packages.php?ID=48512<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Sasc-ng configureren ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
=== Sasc-ng starten ===<br />
# /etc/rc.d/sasc-ng start<br />
Meldingen in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
Meldingen in /var/log/oscam.log<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Softcam testen met tzap en mplayer ===<br />
Geef de volgende opdrachten in 3 verschillende terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
Nu moet na enkele seconden discovery channel op het scherm verschijnen.<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
Meldingen in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr</div>Cdwijshttps://wiki.archlinux.org/index.php?title=Digitenne_(Nederlands)&diff=142042Digitenne (Nederlands)2011-05-19T19:22:39Z<p>Cdwijs: Added instructions to decrypt digitenne</p>
<hr />
<div>[[Category:Nederlands]]<br />
{{i18n|Digitenne}}<br />
<br />
Deze pagina behandelt het decoderen van digitenne (DVB-T) in Nederland.<br />
<br />
==Gebruikte hardware==<br />
Ik gebruik de volgende hardware:<br />
* PCTV NanoStick 73e SE (solo) http://linuxtv.org/wiki/index.php/Pinnacle_PCTV_nano_Stick_%2873e%29<br />
* smargo smartreader + https://www.cardwriter.nl/nl/pd1184675949.htm <br />
* Digitenne smartcard<br />
<br />
==DVB-T ontvanger testen==<br />
<br />
===Controle device nodes===<br />
Kijk eerst of er een DVB ontvanger aanwezig is. Onder /dev hoort de map dvb aanwezig te zijn:<br />
$ ls -l /dev/dvb/adapter0/*<br />
crw-rw---- 1 root video 212, 4 May 15 10:21 /dev/dvb/adapter0/demux0<br />
crw-rw---- 1 root video 212, 5 May 15 10:21 /dev/dvb/adapter0/dvr0<br />
crw-rw---- 1 root video 212, 3 May 15 10:21 /dev/dvb/adapter0/frontend0<br />
crw-rw---- 1 root video 212, 7 May 15 10:21 /dev/dvb/adapter0/net0<br />
<br />
===DVB-T ontvanger testen met vlc===<br />
Gebruik nu vlc om de ontvanger te testen:<br />
# pacman -S vlc<br />
<br />
$vlc<br />
Media -> Open Capture device,<br />
Capture mode : DVB<br />
Adapter card to tune: /dev/dvb/adapter0<br />
DVB type: DVB-T<br />
Transponder / multiplex frequency: 722000<br />
Bandwidth: auto => play<br />
Nu zal vlc alle kanalen scannnen, en na ongeveer 10 minuten het eerste beeld en/of geluid geven.<br />
<br />
Als de permisies van /dev/dvb/adapter0 verkeerd staan zal vlc de volgende melding geven:<br />
dvb access error: FrontEndOpen: opening device failed (Permission denied)<br />
main input error: open of `dvb://frequency=0000' failed: (null)<br />
Voeg dan jezelf toe aan de groep "video":<br />
# usermod -a -G video yourusername<br />
<br />
===DVB-T ontvanger testen met tzap en mplayer===<br />
Installeer mplayer en tzap (onderdeel van linuxtv-dvb-apps)<br />
# pacman -S linuxtv-dvb-apps mplayer<br />
<br />
Scan nu naar de digitenne kanalen in nederland:<br />
$ mkdir ~/.tzap<br />
$ scan /usr/share/dvb/dvb-t/nl-All -o zap | tee ~/.tzap/channels.conf<br />
scanning /usr/share/dvb/dvb-t/nl-All<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
initial transponder 474000000 0 1 9 3 1 3 0<br />
initial transponder 474000000 0 2 9 3 1 3 0<br />
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
0x0000 0x044d: pmt_pid 0x1b62 Digitenne -- Nederland 1 (running)<br />
0x0000 0x044e: pmt_pid 0x1b6c Digitenne -- Nederland 2 (running)<br />
0x0000 0x044f: pmt_pid 0x1b76 Digitenne -- Nederland 3 (running)<br />
0x0000 0x0450: pmt_pid 0x1b80 Digitenne -- TV Rijnmond (running)<br />
0x0000 0x0457: pmt_pid 0x1bc6 Digitenne -- Radio Rijnmond (running)<br />
0x0000 0x0458: pmt_pid 0x1bd0 Digitenne -- Radio 1 (running)<br />
0x0000 0x0459: pmt_pid 0x1bda Digitenne -- Radio 2 (running)<br />
0x0000 0x045a: pmt_pid 0x1be4 Digitenne -- 3FM (running)<br />
0x0000 0x045b: pmt_pid 0x1bee Digitenne -- Radio 4 (running)<br />
0x0000 0x045c: pmt_pid 0x1bf8 Digitenne -- Radio 5 (running)<br />
0x0000 0x045d: pmt_pid 0x1c02 Digitenne -- Radio 6 (running)<br />
0x0000 0x045f: pmt_pid 0x1c16 Digitenne -- FunX (running)<br />
Network Name 'Digitenne'<br />
>>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE<br />
WARNING: >>> tuning failed!!!<br />
...<br />
Dit levert het bestand ~/.tzap/channels.conf op. Hierin is te zien dat Nederland 1,2 en 3 op 474 MHz zitten, en dat Discovery channel op 498MHz zit. De frekwenties zijn afhankelijk van uw locatie.<br />
Nederland 1:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7011:7012:1101<br />
Nederland 2:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7021:7022:1102<br />
Nederland 3:474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:7031:7032:1103<br />
...<br />
Nickelodeon:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3051:3052:35<br />
Discovery Channel:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3061:3062:36<br />
Eurosport 1:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3071:3072:37<br />
Nu kan de tuner afgestemd worden op bijvoorbeeld Nederland 1<br />
$ tzap -a 0 -r 'Nederland 1'<br />
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br />
reading channels from file '/home/cedric/.tzap/channels.conf'<br />
tuning to 474000000 Hz<br />
video pid 0x1b63, audio pid 0x1b64<br />
status 1b | signal 0dbd | snr 0062 | ber 001fffff | unc 00000000 | FE_HAS_LOCK<br />
status 1b | signal 0d83 | snr 0063 | ber 00000000 | unc 00001e81 | FE_HAS_LOCK<br />
status 1b | signal 0d17 | snr 0069 | ber 00000000 | unc 00001ef6 | FE_HAS_LOCK<br />
<br />
Gebruik een andere terminal om mplayer te starten. Nu moet na enkele seconden Nederland 1 op het scherm verschijnen.<br />
$ mplayer /dev/dvb/adapter0/dvr0 <br />
MPlayer SVN-r33159-4.5.2 (C) 2000-2011 MPlayer Team<br />
162 audio & 359 video codecs<br />
mplayer: could not connect to socket<br />
mplayer: No such file or directory<br />
Failed to open LIRC support. You will not be able to use your remote control.<br />
<br />
Playing /dev/dvb/adapter0/dvr0.<br />
TS file format detected.<br />
VIDEO MPEG2(pid=7021) AUDIO MPA(pid=7022) NO SUBS (yet)! PROGRAM N. 0<br />
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)<br />
Load subtitles in /dev/dvb/adapter0/<br />
==========================================================================<br />
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family<br />
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)<br />
==========================================================================<br />
==========================================================================<br />
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3<br />
AUDIO: 48000 Hz, 2 ch, s16le, 160.0 kbit/10.42% (ratio: 20000->192000)<br />
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)<br />
==========================================================================<br />
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)<br />
Starting playback...<br />
Unsupported PixelFormat 61<br />
Unsupported PixelFormat 53<br />
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.<br />
VO: [vdpau] 704x576 => 1024x576 Planar YV12 <br />
A:22383.9 V:22383.9 A-V: 0.052 ct: -0.257 569/569 4% 3% 24.6% 3 0<br />
<br />
== Cardreader ==<br />
=== Insteken cardreader ===<br />
Nadat de Smargo smartreader + in de PC wordt gestoken zal dmesg laten zien dat er een nieuwe seriële poort (ttyUSB0) is toegevoegd:<br />
$ dmesg<br />
[18014.724903] usb 2-1: new full speed USB device using uhci_hcd and address 4<br />
[18014.887673] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected<br />
[18014.887788] usb 2-1: Detected FT232BM<br />
[18014.887794] usb 2-1: Number of endpoints 2<br />
[18014.887799] usb 2-1: Endpoint 1 MaxPacketSize 64<br />
[18014.887804] usb 2-1: Endpoint 2 MaxPacketSize 64<br />
[18014.887808] usb 2-1: Setting MaxPacketSize 64<br />
[18014.889396] ftdi_sio ttyUSB0: Unable to read latency timer: -32<br />
[18014.890893] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0<br />
<br />
=== Installeer oscam via aur ===<br />
http://aur.archlinux.org/packages.php?ID=45646<br />
$ wget http://aur.archlinux.org/packages/oscam/oscam.tar.gz<br />
$ tar -xf oscam.tar.gz <br />
$ cd oscam<br />
$ makepkg<br />
# pacman -U oscam-1.00-1-i686.pkg.tar.xz<br />
<br />
=== Oscam configuratie ===<br />
Oscam gebruikt de volgende configuratiebestanden: <br />
==== /etc/oscam/oscam.conf ====<br />
# main configuration<br />
[global]<br />
nice = -1<br />
WaitForCards = 1<br />
<br />
# logging<br />
pidfile = /var/run/oscam.pid<br />
logfile = /var/log/oscam/oscam.log<br />
usrfile = /var/log/oscam/oscamuser.log<br />
cwlogdir = /var/log/oscam/cw<br />
<br />
# monitor<br />
[monitor]<br />
port = 8988<br />
aulow = 120<br />
monlevel = 1<br />
<br />
# web interface<br />
[webif]<br />
httpport = 8888<br />
httpuser = myusername<br />
httppwd = mypassword<br />
httpallowed = 192.168.31.201<br />
<br />
# protocols<br />
<br />
[newcamd]<br />
key = 000102030405060708090A0B0C0D<br />
port = 15050@0B00:0E030<br />
==== /etc/oscam/oscam.server ====<br />
# reader configuration<br />
<br />
[reader]<br />
label = reader1<br />
protocol = mouse<br />
detect = CD<br />
device = /dev/ttyUSB0<br />
group = 1<br />
emmcache = 1,3,2<br />
services = services1<br />
caid = 0B00<br />
mhz = 500<br />
cardmhz = 500<br />
==== /etc/oscam/oscam.services ====<br />
# definition of services <br />
#<br />
# format:<br />
# [name]<br />
# caid=CAID[,CAID]...<br />
# provid = provider ID[,provider ID]...<br />
# srvid = service ID[,service ID]...<br />
<br />
[services1]<br />
caid=0B00<br />
provid=0E030<br />
srvid=<br />
==== /etc/oscam/oscam.user ====<br />
# user configuration<br />
<br />
[account]<br />
user = user1<br />
pwd = password1<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
<br />
# user for group 2 with monitor access, AU enabled<br />
<br />
#[account]<br />
user = user2<br />
pwd = password2<br />
monlevel = 0<br />
uniq = 0<br />
group = 1<br />
au = 1<br />
ident = 0B00:0E030<br />
caid = 0B00<br />
Maak de directory aan waar oscam zijn logbestanden kwijt kan<br />
# mkdir /var/log/oscam<br />
=== Oscam starten ===<br />
# /etc/rc.d/oscam start<br />
Dit levert de volgende meldingen op in /var/log/oscam.log<br />
-------------------------------------------------------------------------------<br />
>> OSCam << cardserver started at Thu May 19 19:08:47 2011<br />
-------------------------------------------------------------------------------<br />
2011/05/19 19:08:47 1556 s version=0.99.4svn, build #3146, system=i686-pc-linux, nice=-1<br />
2011/05/19 19:08:47 1556 s max. clients=509, client max. idle=120 sec<br />
2011/05/19 19:08:47 1556 s max. logsize=unlimited<br />
2011/05/19 19:08:47 1556 s client timeout=5000 ms, fallback timeout=2500 ms, cache delay=0 ms<br />
2011/05/19 19:08:47 1556 s shared memory initialized (size=4340618, id=229378)<br />
2011/05/19 19:08:47 1556 s auth size=4772<br />
2011/05/19 19:08:47 1556 s services reloaded: 0 services freed, 1 services loaded<br />
2011/05/19 19:08:47 1556 s userdb reloaded: 0 accounts freed, 1 accounts loaded, 0 expired, 0 disabled<br />
2011/05/19 19:08:47 1556 s signal handling initialized (type=sysv)<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.srvid" (err=2), no service-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.tiers" (err=2), no tier-id's loaded<br />
2011/05/19 19:08:47 1556 s can't open file "/etc/oscam/oscam.provid" (err=2), no provids's loaded<br />
2011/05/19 19:08:47 1557 s monitor: initialized (fd=7, port=8988)<br />
2011/05/19 19:08:47 1557 s camd 3.3x: disabled<br />
2011/05/19 19:08:47 1557 s camd 3.5x: disabled<br />
2011/05/19 19:08:47 1557 s cs378x: disabled<br />
2011/05/19 19:08:47 1557 s newcamd: initialized (fd=8, port=15050, crypted)<br />
2011/05/19 19:08:47 1557 s CAID: 0B00<br />
2011/05/19 19:08:47 1557 s provid #0: 00E030<br />
2011/05/19 19:08:47 1557 s cccam: disabled<br />
2011/05/19 19:08:47 1557 s radegast: disabled<br />
2011/05/19 19:08:47 1557 s logger started (pid=1558)<br />
2011/05/19 19:08:47 1557 s http started (pid=1559)<br />
2011/05/19 19:08:47 1559 h HTTP Server listening on port 8888<br />
2011/05/19 19:08:47 1557 s reader started (pid=1560, device=/dev/ttyUSB0, detect=cd, mhz=500, cardmhz=500)<br />
2011/05/19 19:08:47 1557 s waiting for local card init<br />
2011/05/19 19:08:51 1557 s init for all local cards done<br />
2011/05/19 19:08:51 1557 s anti cascading disabled<br />
2011/05/19 19:08:51 1557 s dvbapi: dvbapi disabled<br />
Steek nu de digitenne kaart in de cardreader. Dit levert de volgende meldingen op in /var/log/oscam/oscam.log:<br />
2011/05/19 19:13:25 1560 r02 card detected<br />
2011/05/19 19:13:29 1560 r02 ATR: 3B 24 00 30 42 30 30 <br />
2011/05/19 19:13:30 1560 r02 Maximum frequency for this card is formally 5 Mhz, clocking it to 5.00 Mhz<br />
2011/05/19 19:13:32 1560 r02 type: Conax, caid: 0B00, serial: 1428098758, hex serial: 551f0ec6, card: v64<br />
2011/05/19 19:13:32 1560 r02 Providers: 1<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 Provider-Id: 000000<br />
2011/05/19 19:13:32 1560 r02 Provider: 1 SharedAddress: 002A8F87<br />
2011/05/19 19:13:32 1560 r02 Package: 1, id: 1010, date: 2011/03/01 - 2011/03/31, name: Digitenne<br />
2011/05/19 19:13:32 1560 r02 [conax-reader] ready for requests<br />
== Softcam (sasc-ng) ==<br />
=== sasc-ng installeren via aur===<br />
http://aur.archlinux.org/packages.php?ID=27885<br />
# pacman -S mercurial<br />
$ wget http://aur.archlinux.org/packages/open-sasc-ng/open-sasc-ng.tar.gz<br />
$ tar -xf open-sasc-ng.tar.gz<br />
$ cd open-sasc-ng<br />
$ makepkg<br />
# pacman -U open-sasc-ng-560-4-i686.pkg.tar.xz<br />
=== Sasc-ng configureren ===<br />
==== /etc/conf.d/sasc-ng ====<br />
# Use -j <real>:<virtual> to link adapters<br />
<br />
SASCNG_ARGS="-j 0:1"<br />
DVBLOOPBACK_ARGS="num_adapters=1"<br />
LOGDIR="/var/log/"<br />
CAMDIR=/etc/camdir<br />
<br />
==== /etc/camdir/cardclient.conf ====<br />
# Comment lines can start with # or ;<br />
#<br />
# every client line starts with the client name, followed by some arguments:<br />
# 'hostname' is the name of the server<br />
# 'port' is the port on the server<br />
# 'emm' is a flag to allow EMM transfers to the server<br />
# (0=disabled 1=enabled)<br />
# 'caid' (optional) caid on which this client should work<br />
# 'mask' (optional) mask for caid e.g. caid=1700 mask=FF00 would allow<br />
# anything between 1700 & 17FF.<br />
# Default is 1700 & FF00. If only caid is given mask is FFFF.<br />
# You may give multiple caid/mask values comma separated<br />
# (e.g. 1702,1722,0d0c/ff00).<br />
# 'username' is the login username<br />
# 'password' is the login password<br />
#<br />
# newcamd client<br />
# 'cfgkey' is the config key (28bytes)<br />
newcamd:localhost:15050:1/0B00/FF00:user2:password2:000102030405060708090A0B0C0D<br />
=== Sasc-ng starten ===<br />
# /etc/rc.d/sasc-ng start<br />
Meldingen in dmesg:<br />
[ 8130.913490] /home/cedric/open-sasc-ng/src/sc-build/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1<br />
[ 8130.913502] dvbloopback: registering 1 adapters<br />
[ 8130.913627] DVB: registering new adapter (DVB-LOOPBACK)<br />
<br />
Meldingen in /var/log/oscam.log<br />
May 19 20:51:50.858 : Version: 0.0.2-61975953edd0+<br />
May 19 20:51:50.995 CAM: initializing plugin: SoftCam (1.0.0pre-HG-61975953edd0+): A software emulated CAM<br />
May 19 20:51:51.051 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ initializing (VDR 1.6.0)<br />
May 19 20:51:51.107 CAM: starting plugin:<br />
May 19 20:51:51.164 CAM(general.info): SC version 1.0.0pre-HG-61975953edd0+ starting (VDR 1.6.0)<br />
May 19 20:51:51.220 CAM(core.load): ** Plugin config:<br />
May 19 20:51:51.276 CAM(core.load): ** Key updates (AU) are enabled (active CAIDs) (no prestart)<br />
May 19 20:51:51.334 CAM(core.load): ** Local systems DON'T take priority over cached remote<br />
May 19 20:51:51.383 CAM(core.load): ** Concurrent FF recordings are NOT allowed<br />
May 19 20:51:51.439 CAM(core.load): ** Force transfermode with digital audio<br />
May 19 20:51:51.496 CAM(core.load): ** ECM cache is set to enabled<br />
May 19 20:51:51.552 CAM(core.load): ** ScCaps are 1 2 0 0 0 0 0 0 0 0<br />
May 19 20:51:51.620 CAM(general.info): loading cardclient config from /etc/camdir/cardclient.conf<br />
May 19 20:51:51.687 CAM(cardclient.newcamd): now using protocol version 525 (cdLen=8)<br />
May 19 20:51:51.744 CAM(cardclient.core): hostname=localhost port=15050 emm=1 emmCaids 0b00/ff00<br />
May 19 20:51:51.789 CAM(cardclient.core): Newcamd: username=user2 password=password2 key=000102030405060708090A0B0C0D<br />
May 19 20:51:51.846 CAM(cardclient.core): client 'Newcamd' ready<br />
May 19 20:51:51.945 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:51:52.204 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
May 19 20:51:52.376 CAM(general.error): failed open /etc/camdir/SoftCam.Key: No such file or directory<br />
May 19 20:51:52.511 CAM(general.error): failed open /etc/camdir/smartcard.conf: No such file or directory<br />
May 19 20:51:52.556 CAM(general.error): failed open /etc/camdir/cardslot.conf: No such file or directory<br />
May 19 20:51:52.601 CAM(general.error): failed open /etc/camdir/override.conf: No such file or directory<br />
May 19 20:51:52.647 CAM(general.error): no keys loaded for softcam!<br />
May 19 20:51:52.692 CAM(core.load): ** registered systems:<br />
May 19 20:51:52.737 CAM(core.load): ** Cardclient (pri -15)<br />
May 19 20:51:52.794 CAM(core.load): ** Conax (pri -10)<br />
May 19 20:51:52.850 CAM(core.load): ** ConstCW (pri -20)<br />
May 19 20:51:52.907 CAM(core.load): ** Cryptoworks (pri -10)<br />
May 19 20:51:52.963 CAM(core.load): ** Irdeto (pri -10)<br />
May 19 20:51:53.035 CAM(core.load): ** Irdeto2 (pri -8)<br />
May 19 20:51:53.080 CAM(core.load): ** Nagra (pri -10)<br />
May 19 20:51:53.126 CAM(core.load): ** Nagra2 (pri -10)<br />
May 19 20:51:53.182 CAM(core.load): ** Fake-NDS (pri -12)<br />
May 19 20:51:53.239 CAM(core.load): ** SC-Conax (pri -5)<br />
May 19 20:51:53.295 CAM(core.load): ** SC-Cryptoworks (pri -5)<br />
May 19 20:51:53.352 CAM(core.load): ** SC-Irdeto (pri -5)<br />
May 19 20:51:53.408 CAM(core.load): ** SC-Nagra (pri -5)<br />
May 19 20:51:53.465 CAM(core.load): ** SC-Seca (pri -5)<br />
May 19 20:51:53.521 CAM(core.load): ** SC-Viaccess (pri -5)<br />
May 19 20:51:53.577 CAM(core.load): ** SC-VideoGuard2 (pri -5)<br />
May 19 20:51:53.623 CAM(core.load): ** Seca (pri -10)<br />
May 19 20:51:53.684 CAM(core.load): ** @SHL (pri -10)<br />
May 19 20:51:53.740 CAM(core.load): ** Viaccess (pri -10)<br />
May 19 20:51:54.817 frontend: Starting thread on /dev/dvb/adapter1/frontend1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.818 dvr: Starting thread on /dev/dvb/adapter1/dvr1<br />
The thread scheduling parameters indicate:<br />
policy = 1<br />
priority = 99<br />
May 19 20:51:54.818 demux: Starting thread on /dev/dvb/adapter1/demux1<br />
The thread scheduling parameters indicate:<br />
policy = 0<br />
priority = 0<br />
May 19 20:51:54.988 : Listening on port 5456<br />
May 19 20:53:53.011 CAM(core.net): idle timeout, disconnected localhost:15050<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:51:52 1557 s client(1) connect from 127.0.0.1 (pid=7297, pipfd=14)<br />
2011/05/19 20:51:52 7297 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:51:52 7297 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:51:52 7297 c01 AU enabled for user user2 on reader reader1<br />
=== Softcam testen met tzap en mplayer ===<br />
Geef de volgende opdrachten in 3 verschillende terminals:<br />
$ tzap -a 1 -r 'Discovery Channel'<br />
$ cat /dev/dvb/adapter1/dvr0 >test.ts<br />
$ mplayer test.ts<br />
Nu moet na enkele seconden discovery channel op het scherm verschijnen.<br />
Meldingen in /var/log/oscam/oscam.log:<br />
2011/05/19 20:53:53 7297 c01 Connection closed to client<br />
2011/05/19 20:53:53 7297 c01 user2 disconnected from 127.0.0.1<br />
2011/05/19 20:59:38 1557 s client(1) connect from 127.0.0.1 (pid=7315, pipfd=14)<br />
2011/05/19 20:59:38 7315 c01 encrypted newcamd:15050-client 127.0.0.1 granted (user2, au(auto)=reader1)<br />
2011/05/19 20:59:38 7315 c01 user user2 authenticated successfully (generic)<br />
2011/05/19 20:59:38 7315 c01 AU enabled for user user2 on reader reader1<br />
2011/05/19 20:59:38 7315 c01 user2 (0B00&00E030/0024/47:4A33): found (290 ms) by reader1<br />
2011/05/19 20:59:43 7315 c01 user2 (0B00&00E030/0024/47:FEE2): found (265 ms) by reader1<br />
Meldingen in /var/log/sasc-ng.log:<br />
May 19 20:59:37.396 CAM(core.ecm): 0.1: is no longer idle<br />
May 19 20:59:37.453 MSG: Got unprocessed message type: 1<br />
May 19 20:59:37.515 CAM(core.ecm): 0.1: triggered SID -1/36 idx -1/1 mode -1/0 -<br />
May 19 20:59:37.611 CAM(core.ecm): 0.1: new caDescr: 09 04 0B 00 EB FD<br />
May 19 20:59:37.656 CAM(core.ecm): 0.1: CA descriptors for SID 36 (len=6)<br />
May 19 20:59:37.706 CAM(core.ecm): 0.1: descriptor 0b 00 eb fd<br />
May 19 20:59:37.762 CAM(core.ecm): 0.1: found 0b00(0000) (Conax) id 0000 with ecm bfd/80 (new)<br />
May 19 20:59:37.819 CAM(core.ecm): 0.1: try system Conax (0b00) id 0000 with ecm bfd (pri=-10)<br />
May 19 20:59:37.838 CAM(core.au): 0: chain caid 0b00 -> Cardclient(-15) [00b6-82/ff/00]<br />
May 19 20:59:37.955 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.111 CAM(core.ecm): system: no key found for C 20 M<br />
May 19 20:59:38.156 CAM(conax.key): missing 20 E key<br />
May 19 20:59:38.202 CAM(core.ecm): 0.1: try system Cardclient (0b00) id 0000 with ecm bfd (pri=-15)<br />
May 19 20:59:38.247 CAM(cardclient.core): cc-loop<br />
May 19 20:59:38.303 CAM(cardclient.core): now trying client Newcamd (localhost:15050)<br />
May 19 20:59:38.360 CAM(core.net): connecting to localhost:15050/tcp (127.0.0.1)<br />
May 19 20:59:38.066 CAM(core.au): 0: starting chain 0b00<br />
May 19 20:59:38.432 CAM(cardclient.login): Newcamd: CaID=0b00 admin=1 srvUA=00000000551F0EC6 provider 00E030/0000000000000000000000/00000000002A8F87<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:38.936 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:39.106 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
May 19 20:59:39.162 CAM(core.ecm): cache add prgId=36 source=1 transponder=0 ecm=bfd/80<br />
May 19 20:59:39.218 CAM(core.ecm): 0.1: correct key found<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.436 CSA: Got command(1): E idx: 1 pid: 0 key: 67b4...1a<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:41.461 CAM(core.load): saved ecm cache to /etc/camdir/ecm.cache<br />
May 19 20:59:41.651 CSA: Got command(1): O idx: 1 pid: 0 key: 170e...77<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:43.932 CSA: Got command(1): E idx: 1 pid: 0 key: 23b4...20<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 20:59:53.968 CSA: Got command(1): O idx: 1 pid: 0 key: 60b5...3e<br />
Buffer has room, reading 32900 bytes<br />
May 19 20:59:54.285 CSA: Creating csa for rb: 1<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Buffer has room, reading 32900 bytes<br />
Buffer has room, reading 188 bytes<br />
Returning 32768<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:04.069 CSA: Got command(1): E idx: 1 pid: 0 key: 461b...cd<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:13.931 CSA: Got command(1): O idx: 1 pid: 0 key: 12bf...2d<br />
Called cSascDvbDevice::SetCaDescr<br />
May 19 21:00:23.936 CSA: Got command(1): E idx: 1 pid: 0 key: bc12...41<br />
Called cSascDvbDevice::SetCaDescr</div>Cdwijs