hi,
I have created a new unprivileged LXD Xenial container on a new Ubuntu Xenial install (now 7 days old)
This is a stock standard build, no PPAs etc.

$ uname -a
Linux virt-host 4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

I have allocated USB DVB tuners to this container and attempted to use them, without success. Unfortunately I have little or nothing in the way of error messages)

The container starts ok and the devices appear correctly in the containers /dev/dvb .... and they appear useable.

Mostly I see DVB utilities just failing when they attempt to use the /dev/dvb/adapterN/dmux0 device, without providing much information

This may be a host Apparmor issue (see syslog lines below)

I've tried mapping the offending device (dmux0) as both a character and block device .. makes no difference to the outcome. When mapped as block devices the frontend0 device won't open either so am persisting with character device approach (consistent with the way they appear on the host
-----------------------------------------------------------
Container Config

$lxc config show xenial-mythserver
name: xenial-mythserver
profiles:
- default
config:
  boot.autostart: "false"
  limits.cpu: 1,2,3
  limits.memory: 6GB
volatile.base_image: f452cda3bccb2903e56d53e402b9d35334b4276783d098axxxxxxxxxxxxxxxxx
  volatile.eth0.hwaddr: xxxxxxxxxxxxxxx
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":65536}]'
devices:
dvb0_dmux:
    gid: "44"
    major: "212"
    minor: "0"
    path: /dev/dvb/adapter0/dmux0
    type: unix-char
dvb0_dvr:
    gid: "44"
    major: "212"
    minor: "1"
    path: /dev/dvb/adapter0/dvr0
    type: unix-char
dvb0_frontend:
    gid: "44"
    major: "212"
    minor: "3"
    path: /dev/dvb/adapter0/frontend0
    type: unix-char
  dvb0_net:
    gid: "44"
    major: "212"
    minor: "2"
    path: /dev/dvb/adapter0/net0
    type: unix-char
  dvb1_dmux:
    gid: "44"
    major: "212"
    minor: "4"
    path: /dev/dvb/adapter1/dmux0
    type: unix-char
  dvb1_dvr:
    gid: "44"
    major: "212"
    minor: "5"
    path: /dev/dvb/adapter1/dvr0
    type: unix-char
  dvb1_frontend:
    gid: "44"
    major: "212"
    minor: "7"
    path: /dev/dvb/adapter1/frontend0
    type: unix-char
  dvb1_net:
    gid: "44"
    major: "212"
    minor: "6"
    path: /dev/dvb/adapter1/net0
    type: unix-char
  dvb2_dmux:
    gid: "44"
    major: "212"
    minor: "8"
    path: /dev/dvb/adapter2/dmux0
    type: unix-char
  dvb2_dvr:
    gid: "44"
    major: "212"
    minor: "9"
    path: /dev/dvb/adapter2/dvr0
    type: unix-char
  dvb2_frontend:
    gid: "44"
    major: "212"
    minor: "11"
    path: /dev/dvb/adapter2/frontend0
    type: unix-char
  dvb2_net:
    gid: "44"
    major: "212"
    minor: "10"
    path: /dev/dvb/adapter2/net0
    type: unix-char
  dvb3_dmux:
    gid: "44"
    major: "212"
    minor: "12"
    path: /dev/dvb/adapter3/dmux0
    type: unix-char
  dvb3_dvr:
    gid: "44"
    major: "212"
    minor: "13"
    path: /dev/dvb/adapter3/dvr0
    type: unix-char
  dvb3_frontend:
    gid: "44"
    major: "212"
    minor: "15"
    path: /dev/dvb/adapter3/frontend0
    type: unix-char
  dvb3_net:
    gid: "44"
    major: "212"
    minor: "14"
    path: /dev/dvb/adapter3/net0
    type: unix-char
  dvd_data:
    path: /mnt/dvd_rips
    source: /mnt/dvd_rips
    type: disk
  eth0:
    name: eth0
    nictype: bridged
    parent: rebr0
    type: nic
  music_data:
    path: /mnt/music
    source: /mnt/music
    type: disk
  root:
    path: /
    type: disk
  video_data:
    path: /mnt/video
    source: /mnt/video
    type: disk

-----------------------------------------------------------
Syslog - showing Apparmor messages

Jul 2 15:18:40 virt-host kernel: [114573.780920] audit: type=1400 audit(1467436720.274:1296): apparmor="DENIED" operation="mount" info="failed flags match" error=-13 profile="lxd-xenial-mythserver_</var/lib/lxd>" name="/" pid=3232 comm="(kManager)" flags="rw, rslave" Jul 2 15:18:41 virt-host kernel: [114574.682255] audit: type=1400 audit(1467436721.178:1297): apparmor="DENIED" operation="file_lock" profile="lxd-xenial-mythserver_</var/lib/lxd>" pid=3275 comm="(ostnamed)" family="unix" sock_type="dgram" protocol=0 addr=none Jul 2 15:18:41 virt-host kernel: [114574.682260] audit: type=1400 audit(1467436721.178:1298): apparmor="DENIED" operation="file_lock" profile="lxd-xenial-mythserver_</var/lib/lxd>" pid=3275 comm="(ostnamed)" family="unix" sock_type="dgram" protocol=0 addr=none Jul 2 15:18:41 virt-host kernel: [114574.682265] audit: type=1400 audit(1467436721.178:1299): apparmor="DENIED" operation="file_lock" profile="lxd-xenial-mythserver_</var/lib/lxd>" pid=3275 comm="(ostnamed)" family="unix" sock_type="dgram" protocol=0 addr=none Jul 2 15:18:41 virt-host kernel: [114574.682269] audit: type=1400 audit(1467436721.178:1300): apparmor="DENIED" operation="file_lock" profile="lxd-xenial-mythserver_</var/lib/lxd>" pid=3275 comm="(ostnamed)" family="unix" sock_type="dgram" protocol=0 addr=none

-----------------------------------------------------------
Container starts ok, and /dev/dvb are mapped. The Frontend device eg. /dev/dvb/adapter0 is usable, but the dmux device is not eg. /dev/dvb/adapter0

$ lxc exec xenial-mythserver bash

root@xenial-mythserver:~# ls /dev/dvb
adapter0  adapter1  adapter2  adapter3

root@xenial-mythserver:~# ls /dev/dvb/adapter0
dmux0  dvr0  frontend0  net0

root@xenial-mythserver:~# ls -l /dev/dvb/adapter0
total 0
crw-rw---- 1 root video 212, 0 Jul  2 15:18 dmux0
crw-rw---- 1 root video 212, 1 Jul  2 15:18 dvr0
crw-rw---- 1 root video 212, 3 Jul  2 15:18 frontend0
crw-rw---- 1 root video 212, 2 Jul  2 15:18 net0

-----------------------------------------------------------
And then when I try to use the devices, DMUX is unuseable.

root@xenial-mythserver:~# w_scan -c AU
w_scan -c AU
w_scan version 20141122 (compiled for DVB API 5.10)
using settings for AUSTRALIA
DVB aerial
DVB-T AU
scan type TERRESTRIAL, channellist 3
output format vdr-2.0
WARNING: could not guess your codepage. Falling back to 'UTF-8'
output charset 'UTF-8', use -C <charset> to override
Info: using DVB adapter auto detection.
/dev/dvb/adapter0/frontend0 -> TERRESTRIAL "DiBcom 7000PC": good :-) /dev/dvb/adapter1/frontend0 -> TERRESTRIAL "DiBcom 7000PC": good :-) /dev/dvb/adapter2/frontend0 -> TERRESTRIAL "DiBcom 7000PC": good :-) /dev/dvb/adapter3/frontend0 -> TERRESTRIAL "DiBcom 7000PC": good :-)
Using TERRESTRIAL frontend (adapter /dev/dvb/adapter0/frontend0)
-_-_-_-_ Getting frontend capabilities-_-_-_-_
Using DVB API 5.10
frontend 'DiBcom 7000PC' supports
INVERSION_AUTO
QAM_AUTO
TRANSMISSION_MODE_AUTO
GUARD_INTERVAL_AUTO
HIERARCHY_AUTO
FEC_AUTO
FREQ (45.00MHz ... 860.00MHz)
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Scanning DVB-T...
Scanning 7MHz frequencies...
177500: (time: 00:00.127) signal ok: QAM_AUTO f = 177500 kHz I999B7C999D999T999G999Y999 (0:0:0)
WARNING: start_filter: could not open demux.

-----------------------------------------------------------
Host definitions for same devices

$ ls /dev/dvb
adapter0  adapter1  adapter2  adapter3

$ ls /dev/dvb/adapter0
demux0  dvr0  frontend0  net0

$ ls -l /dev/dvb/adapter0
total 0
crw-rw----+ 1 xxxxxx video 212, 0 Jul  2 14:51 demux0
crw-rw----+ 1 xxxxxx video 212, 1 Jul  2 14:51 dvr0
crw-rw----+ 1 xxxxxx video 212, 3 Jul  2 14:51 frontend0
crw-rw----+ 1 xxxxxx video 212, 2 Jul  2 14:51 net0

and I had previously added

Note that I changed ownership to ensure they;d be readable
-----------------------------------------------------------

No messages in Host Syslog

No messages in container Syslog

Apparmor issue  (given the messages above, as the container starts) ?

Is / Should this use case be supported out of the box ?

R





_______________________________________________
lxc-users mailing list
lxc-users@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-users

Reply via email to