having had various frustrating experiences with the topic: TV + PC
(even tried a cheap DreamBox 520 HD from eBay… which are probably good devices, but this one turned out to be faulty/unstable)
now… in 2021… finally happy to be able to present positive results 🙂
BUT (!!!) after a few reboots… easyVDR is not under development anymore and is Ubuntu TLS based and (for me at least) has some reliability problems 🙁
so this article and the image.img.gz (put it on a stick) can at least give the user a quick demo of what works and what not… and then decide from there if it is worth it or not.
the concept: programming instead of zapping: TV is just “another input” channel… another source of information… simply stupidly zapping through channels is…. stupid.
the idea is a smart and intelligent handling of the massive amounts of “TV content” by programming a power efficient device, to record and archive only what might be interesting to the user to watch at the time the user want’s to.
Germany spends more money (!?) than ANY OTHER COUNTRY on this planet on public TV and Radio funding?
Germany: 8.1 BILLION(Mrd) € per YEAR!
USA: 0.5 BILLION(Mrd) € per year
no doubt, both US (such as PBS) and German public broadcasting stations produce high quality content…
the question is:
- if it really have to be so many stations
- if the budget needs to shrink not increase
…adding to this expensiveness is a crazy “deletion” law (used to be called Rundfunkstaatsvertrag now it is Medienstaatsvertrag) which defines the amount of time content is allowed to remain publicly available.
“Why you won’t find anymore, what you were searching” original text: “Warum Sie nicht mehr finden, was Sie suchen”
“Around 80% of the content is no longer available.”
“While many publishers are starting to open their archives to the general public, (publicly funded) tagesschau.de delete most of its online archive created with (tax) fee funds.”
“Additionally problematic: deleting also costs money, because it has to be specially organized and programmed.“
“Since the budgets in the telemedia concepts are capped, the deletion costs are at the expense of new content.” (auto translated from source: https://www.tagesschau.de/inland/rundfunkaenderungsstaatsvertrag108.html)
what is VDR?
YES! it has a web interface 🙂
YES! it has a web remote control 🙂 (absolutely cool… change channels from any www browser capable device 🙂
“VDR is a free, non-commercial software for the reception and recording of digital television (DVB)”
based on Ubuntu LTS:
hostnamectl; # info about distribution Static hostname: easyVDR Operating System: Ubuntu 20.04 LTS Kernel: Linux 5.4.0-26-generic Architecture: x86-64
“Both free-to-air and encrypted programs are supported, with the choice between satellite, cable and antenna.”
- Brief overview:
- suitable for digital TV, analog TV and IPTV only with additional plugins
- easy to use Screen menu in 28 languages
- unlimited program memory with automatic update of the transmitters
- unlimited recording timer
- electronic program guide
- DiSEqC support
- time-shifted television (Time-Shift)
- Video editing function
- Network-compatible Skins
- Support of plugins to extend the functionality
auto translated from: http://www.vdr-wiki.de/wiki/index.php/Grundlagen
- very complex
- hard to get started X-D (this guide wants to simply it)
the hardware & the software: easyVDR on a stick
YES! IT CAN!
the idea is to use an power efficient embedded PC (or laptop) and install easyVDR on an bootable USB Stick, so the internal harddisks and installation does not need to be touched in order to teast easyVDR
embedded PCs are many on the market (such as those Intel NUCs), in this case a giada f300 with 8GB of RAM and i3 was used:
the big question is: what TV tuner hardware is supported/works well under GNU Linux with easyVDR?
- tested was: Hauppage WinTV NovaS2 USB (Montage) Firmware
detailed hardware info: Hauppage WinTV NOVA S2 detailled hardware info.txt
lsusb -vvv Bus 002 Device 002: ID 2013:0258 PCTV Systems PCTV 461 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x2013 PCTV Systems idProduct 0x0258 bcdDevice 1.00 iManufacturer 3 PCTV iProduct 1 PCTV 461 iSerial 2 0014150608 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0029 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 can't get debug descriptor: Resource temporarily unavailable Device Status: 0x0000 (Bus Powered) dmesg [ 15.851464] m88ds3103 7-0068: found a 'Montage Technology M88DS3103' in cold state [ 15.852008] m88ds3103 7-0068: firmware: direct-loading firmware dvb-demod-m88ds3103.fw [ 15.852017] m88ds3103 7-0068: downloading firmware from file 'dvb-demod-m88ds3103.fw' [ 16.062305] m88ds3103 7-0068: found a 'Montage Technology M88DS3103' in warm state <----- WARM STATE! :) [ 16.062312] m88ds3103 7-0068: firmware version: 3.B [ 17.304709] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null) dmesg|grep em28 [ 12.988444] em28xx 2-2:1.0: New device PCTV PCTV 461 @ 480 Mbps (2013:0258, interface 0, class 0) [ 12.988446] em28xx 2-2:1.0: DVB interface 0 found: bulk [ 13.051651] em28xx 2-2:1.0: chip ID is em28178 [ 13.444055] em28xx 2-2:1.0: EEPROM ID = 26 00 01 00, EEPROM hash = 0xf5a476a4 [ 13.444056] em28xx 2-2:1.0: EEPROM info: [ 13.444058] em28xx 2-2:1.0: microcode start address = 0x0004, boot configuration = 0x01 [ 13.451171] em28xx 2-2:1.0: AC97 audio (5 sample rates) [ 13.451174] em28xx 2-2:1.0: 500mA max power [ 13.451176] em28xx 2-2:1.0: Table at offset 0x27, strings=0x148c, 0x1874, 0x0a6a [ 13.511592] em28xx 2-2:1.0: Identified as PCTV DVB-S2 Stick (461e) (card=92) [ 13.513844] em28xx 2-2:1.0: dvb set to bulk mode. [ 13.522067] usbcore: registered new interface driver em28xx [ 13.541414] em28xx 2-2:1.0: Binding DVB extension [ 13.645527] em28xx 2-2:1.0: DVB: registering adapter 0 frontend 0 (Montage Technology M88DS3103)... [ 13.648802] em28xx 2-2:1.0: DVB extension successfully initialized [ 13.650707] em28xx: Registered (Em28xx dvb Extension) extension [ 13.663388] em28xx 2-2:1.0: Registering input extension [ 13.700112] rc rc0: lirc_dev: driver em28xx registered at minor = 0, scancode receiver, no transmitter [ 13.705295] em28xx 2-2:1.0: Input extension successfully initialized [ 13.707379] em28xx: Registered (Em28xx Input Extension) extension
the motto of GNU Linux is “it just works”, so instead of going through ubuntu setup hazzle…
(this happens if an internal harddisk with GRUB2 (GNU Linux Debian) is present: X-D)
the great advantage of GNU Linux (and other *NIXes such as OSX) over Windows: install once, use anywhere
the user can install on PC A and move the harddisk/USB Stick to PC B (different hardware) chances are pretty good “it just works” 🙂
this stick was made with the “easyVDR Unstable” (in order to get the latest updates):
- get a power efficient embedded PC (giada uses less than 30W!!!)
- get a 32GB bootable (!) USB Stick
- 10 Bucks super fast Sandisk Ultra USB 3.0 (32GB) (eBay search)
- download this image.img.gz
- https://dwaves.org/downloads/2021_05_15_easyVDR_boot_stick.img.gz (2GBytes)
- verify the integrity:
- sha512sum -c 2021_05_15_easyVDR_boot_stick.img.gz.sha512sum.txt
- md5sum -c 2021_05_15_easyVDR_boot_stick.img.gz.md5sum.txt
- under Windows: unpack/unzip the img.gz -> very-large-32GB-file.img
- under Windows: rename file.img to file.iso
- under Windows:
- use https://www.chip.de/downloads/Win32-Disk-Imager_46121030.html
- alternative link: https://www.heise.de/download/product/win32-disk-imager-92033
- to copy 1:1 the file.iso to the USB Stick
- under GNU Linux: WARNING! USE PC/LAPTOP THAT HAS NO IMPORTANT DATA ATTACHED!
# unpack and 1:1 copy image to USB Stick (sdX) apt install pv unmount /dev/sdX* gunzip -c /path/to/2021_05_15_easyVDR_boot_stick.img.gz | pv | dd of=/dev/sdX # make sure everything is written to stick sync
- reboot PC
- straight after BIOS screen hit F12 (show boot menu)
- please consult the manual of PC/mainboard what key to use to access the boot device menu
- or DEL/ENTF/F2 (key to get into BIOS in order to see if the USB Stick was detected by BIOS and can be set higher on the boot device priority list)
- please consult the manual of PC/mainboard what key to use to access the bios menu
can it ssh?
YES! of course the user can ssh into the easyVDR device…
ssh -v email@example.com.X.XXX; # ip of the user's easyVDR box
to become root, select “Terminal”
what else is there? (not much that works)
3 days of testing various software(https://www.mythtv.org/ is very very buggy and has no (!?) proper support for this Tuna Stick)… the ONLY software that (next to easyVDR) managed to work with the Hauppage TV USB Tuner Stick was
(also tried http://linhes.org/ no luck)
luckily Hauppage made Youtube Video how to use the TV USB Tuner stick with Kaffine
downside: Kaffeine is very heavy on the CPU
how to manually install the firmware files:
# try apt install linux-firmware-hauppauge # and check after reboot dmesg for "warm" state # otherwise # download firmware modules manually (from hauppage) # install manually cp -v /home/user/Downloads/data/lib/firmware/* /usr/lib/firmware/ '/home/user/Downloads/data/lib/firmware/dvb-demod-m88ds3103b.fw' -> '/usr/lib/firmware/dvb-demod-m88ds3103b.fw' '/home/user/Downloads/data/lib/firmware/dvb-demod-m88ds3103.fw' -> '/usr/lib/firmware/dvb-demod-m88ds3103.fw' '/home/user/Downloads/data/lib/firmware/dvb-demod-mxl692.fw' -> '/usr/lib/firmware/dvb-demod-mxl692.fw' '/home/user/Downloads/data/lib/firmware/dvb-demod-si2168-b40-01.fw' -> '/usr/lib/firmware/dvb-demod-si2168-b40-01.fw' '/home/user/Downloads/data/lib/firmware/dvb-tuner-si2157-a30-01.fw' -> '/usr/lib/firmware/dvb-tuner-si2157-a30-01.fw' '/home/user/Downloads/data/lib/firmware/NXP7164-2010-03-10.1.fw' -> '/usr/lib/firmware/NXP7164-2010-03-10.1.fw' '/home/user/Downloads/data/lib/firmware/NXP7164-2010-04-01.1.fw' -> '/usr/lib/firmware/NXP7164-2010-04-01.1.fw' '/home/user/Downloads/data/lib/firmware/v4l-pvrusb2-73xxx-01.fw' -> '/usr/lib/firmware/v4l-pvrusb2-73xxx-01.fw'
apt show kaffeine Package: kaffeine Version: 2.0.15-2 Priority: optional Section: video Maintainer: Debian KDE Extras Team <firstname.lastname@example.org> Installed-Size: 10.3 MB Depends: kio, libc6 (>= 2.14), libdvbv5-0 (>= 1.4.0), libkf5configcore5 (>= 4.97.0), libkf5configwidgets5 (>= 4.96.0), libkf5coreaddons5 (>= 4.100.0), libkf5dbusaddons5 (>= 4.99.0), libkf5i18n5 (>= 4.97.0), libkf5kiocore5 (>= 4.96.0), libkf5kiofilewidgets5 (>= 4.96.0), libkf5solid5 (>= 4.97.0), libkf5widgetsaddons5 (>= 4.96.0), libkf5windowsystem5 (>= 4.96.0), libkf5xmlgui5 (>= 4.96.0), libqt5core5a (>= 5.11.0~rc1), libqt5dbus5 (>= 5.4.0), libqt5gui5 (>= 5.7.0), libqt5sql5 (>= 5.4.0), libqt5widgets5 (>= 5.11.0~rc1), libqt5x11extras5 (>= 5.6.0), libqt5xml5 (>= 5.4.0), libstdc++6 (>= 4.2.1), libvlc5 (>= 3.0.0), libxss1, kinit, iso-codes, libqt5sql5-sqlite, vlc-plugin-base, vlc-plugin-video-output Suggests: libdvdcss2 Homepage: http://kaffeine.kde.org Tag: implemented-in::c++, interface::graphical, interface::x11, role::program, scope::application, sound::player, suite::kde, uitoolkit::qt, use::playing, works-with::audio, works-with::video, x11::application Download-Size: 6,277 kB APT-Sources: http://ftp.de.debian.org/debian buster/main amd64 Packages Description: versatile media player for KDE Kaffeine is a media player for KDE based on VLC, which gives it a wide variety of supported media types and lets Kaffeine access CDs, DVDs, and network streams easily. Kaffeine also has an excellent support of digital TV (DVB). Kaffeine can keep track of multiple playlists simultaneously, and supports autoloading of subtitle files for use while playing video.
very funny game hidden in the menu: Moon Buggy 🙂
it seems: that those developers were part of the GNU Linux driver team for the Hauppage Nova 2 TV USB Tuner card:
Paul Seelig <pseelig_ÄT_goofy.zdv.uni-mainz.de>
Martin Bialasinski <agr30_ÄT_uni-koeln.de>
Brad Love <brad_ÄT_nextdimension.cc> <- this user has a blog entry on that the user managed (!?) to turn a NAS (with USB port) into a TV Station? WOW!
easyVDR Manual (in German)
NAS as TV station?
WOW that would be AWESOME! 🙂
here is a backup of the blog entry:
“Want to watch Live TV over your home network without the use of a power hungry PC? Do you have a Network Attached Storage (NAS) device? If so, this is the project you’ve been looking for!
The MediaDeviceDrivers project supplies up to date Linux kernel media drivers (aka drivers/media) to an assortment of NAS devices. This allows you to use multimedia devices, such as USB television tuners, on your NAS to watch and record Live TV anywhere!
MediaDeviceDrivers is a hardware enablement support package. After installation of this package on a supported NAS, all other installed applications can access the multimedia devices connected, in a Linux standard way. For example, if MediaDeviceDrivers was installed, then a two tuner Hauppauge DualHD was attached to the NAS, both tuners would become immediately visible and accessible. This would instantly allow apps like Plex Media Server, Emby, TVHeadend, and others to seamlessly stream, over the home network, Live TV and act as networked Digital Video Recorders (DVR). That means no more always-on, power hungry PC required to have a whole home DVR solution! Any NAS application that supports multimedia devices on desktop Linux will be able to access them the same way after installing MediaDeviceDrivers.
Note: Since MediaDeviceDrivers is simply a hardware enabling application, you must separately install Plex Media Server, Emby, TVHeadend, or another software package, which will then provide the services to stream and record LiveTV. MediaDeviceDrivers has been well tested globally with Plex Media Server.
The following television protocols are currently enabled:
- Clear QAM
- ATSC (over the air)
Current enabled and supported products from Hauppauge:
- Hauppauge DualHD
- Hauppauge SoloHD
- More to come!
Currently supported NAS are:
- Western Digital NAS
- MyCloud PR2100
- MyCloud PR4100
- MyCloud EX2Ultra
- WDMyCloud EX2100
- WDMyCloud EX4100
- Western Digital NAS
Besides the Hauppauge products listed above, any device using the following drivers *should* also work:
- em28xx (USB bridge)
- cx231xx (USB bridge)
- lgdt3306a (ATSC/QAM demodulator)
- si2168 (DVB demodulator)
- si2157 (tuner)
MediaDeviceDrivers utilizes linuxtv.org’s media_build system to produce back ported drivers. All supplied drivers are the latest versions from the mainline Linux kernel. Pulling drivers from mainline Linux ensures the widest array of devices are always supported. All code is Open Source.
Support and source code for the project can be found on gitlab and github:
General project issues or those pertaining to Hauppauge products will be handled directly on the above URL’s. Problems with other manufacturers equipment will be triaged and reported upstream.
Questions about general Linux support of a product should be directed to the devices manufacturer.
The project is sponsored by Hauppauge Computer Works.”
HAVE PHUN! 🙂
- install kodi
- install 3Sat Plugin
- apt install htop vim
- … warum fehlt TELE5 in der Kanalliste? (da kommen immer die Retro StarTreks X-D)
- manuell: Aufnahme verzeichnis /video0 via /etc/fstab auf interne hd (/dev/sda1) ändern