Hallo Zusammen,
ich bastle gerade an einen Projekt, bei dem ich wissen müsste, ob es sich z.B. bei dem Device "/dev/dvb/adapter0/ci0" um ein CI von DD handelt, oder nicht.
Gibt es da eine Möglichkeit, wie man das herausfinden kann?
Hallo Zusammen,
ich bastle gerade an einen Projekt, bei dem ich wissen müsste, ob es sich z.B. bei dem Device "/dev/dvb/adapter0/ci0" um ein CI von DD handelt, oder nicht.
Gibt es da eine Möglichkeit, wie man das herausfinden kann?
In c, shell oder wie?
Shell
In c, shell oder wie?
In C wäre es perfekt, aber auch Shell ist OK.
Also ich habe mal ein paar meiner PCs mit DD CI getestet, aber so richtig glücklich werde ich damit nicht:
vdr01_64 ~ # udevadm info --query=all --name=/dev/dvb/adapter0/ci0
P: /devices/pci0000:00/0000:00:1c.3/0000:03:00.0/0000:04:03.0/0000:06:00.0/dvb/dvb0.ci0
N: dvb/adapter0/ci0
E: DEVNAME=/dev/dvb/adapter0/ci0
E: DEVPATH=/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/0000:04:03.0/0000:06:00.0/dvb/dvb0.ci0
E: DVB_ADAPTER_NUM=0
E: DVB_DEVICE_NUM=0
E: DVB_DEVICE_TYPE=ci
E: MAJOR=212
E: MINOR=1
E: SUBSYSTEM=dvb
E: TAGS=:udev-acl:
E: USEC_INITIALIZED=5149166
vdr01_64 ~ #
server02 ~ # udevadm info --query=all --name=/dev/dvb/adapter1/ci0
P: /devices/pci0000:00/0000:00:1c.1/0000:02:00.0/dvb/dvb1.ci0
N: dvb/adapter1/ci0
E: DEVNAME=/dev/dvb/adapter1/ci0
E: DEVPATH=/devices/pci0000:00/0000:00:1c.1/0000:02:00.0/dvb/dvb1.ci0
E: DVB_ADAPTER_NUM=1
E: DVB_DEVICE_NUM=0
E: DVB_DEVICE_TYPE=ci
E: MAJOR=212
E: MINOR=25
E: SUBSYSTEM=dvb
E: TAGS=:udev-acl:
E: USEC_INITIALIZED=14547368
server02 ~ #
server04 ~ # udevadm info --query=all --name=/dev/dvb/adapter0/ci0
P: /devices/pci0000:00/0000:00:1c.0/0000:01:00.0/dvb/dvb0.ci0
N: dvb/adapter0/ci0
E: DEVNAME=/dev/dvb/adapter0/ci0
E: DEVPATH=/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/dvb/dvb0.ci0
E: DVB_ADAPTER_NUM=0
E: DVB_DEVICE_NUM=0
E: DVB_DEVICE_TYPE=ci
E: MAJOR=212
E: MINOR=9
E: SUBSYSTEM=dvb
Display More
Nicht so einfach..
Normalerweise ist dort wo ein ca0 ist auch ein frontend0.
Unter der Annahme könnte man das frontend nach dem Hersteller string fragen.
alternativ /sys fragen:
1) alle Verzeichnisse /sys/devices/pciXXXX.yy/XXXX.YY/dvb/dvbN.caM suchen.
2) schauen ob dort /sys/devices/pciXXXX.yy/XXXX.YY/vendor den Wert dd01 hat
Nicht so einfach..
Normalerweise ist dort wo ein ca0 ist auch ein frontend0. ...
Das ist halt bei mir nicht überall so:
vdr01_64 ~ # ll /dev/dvb/*
/dev/dvb/adapter0:
insgesamt 0
drwxr-xr-x 2 root root 120 3. Sep 12:00 .
drwxr-xr-x 4 root root 80 3. Sep 12:00 ..
crw-rw---- 1 root video 212, 0 3. Sep 12:00 ca0
crw-rw---- 1 root video 212, 2 3. Sep 12:00 ca1
crw-rw---- 1 root video 212, 1 3. Sep 12:00 ci0
crw-rw---- 1 root video 212, 3 3. Sep 12:00 ci1
/dev/dvb/adapter1:
insgesamt 0
drwxr-xr-x 2 root root 160 3. Sep 12:00 .
drwxr-xr-x 4 root root 80 3. Sep 12:00 ..
crw-rw---- 1 root video 212, 4 3. Sep 12:00 demux0
crw-rw---- 1 root video 212, 7 3. Sep 12:00 demux1
crw-rw---- 1 root video 212, 5 3. Sep 12:00 dvr0
crw-rw---- 1 root video 212, 8 3. Sep 12:00 dvr1
crw-rw---- 1 root video 212, 6 3. Sep 12:00 frontend0
crw-rw---- 1 root video 212, 9 3. Sep 12:00 frontend1
vdr01_64 ~ #
server02 ~ # ll /dev/dvb/*
/dev/dvb/adapter0:
insgesamt 0
drwxr-xr-x 2 root root 520 3. Sep 12:40 .
drwxr-xr-x 5 root root 100 3. Sep 12:40 ..
crw-rw---- 1 root video 212, 0 3. Sep 12:40 demux0
crw-rw---- 1 root video 212, 3 3. Sep 12:40 demux1
crw-rw---- 1 root video 212, 6 3. Sep 12:40 demux2
crw-rw---- 1 root video 212, 9 3. Sep 12:40 demux3
crw-rw---- 1 root video 212, 12 3. Sep 12:40 demux4
crw-rw---- 1 root video 212, 15 3. Sep 12:40 demux5
crw-rw---- 1 root video 212, 18 3. Sep 12:40 demux6
crw-rw---- 1 root video 212, 21 3. Sep 12:40 demux7
crw-rw---- 1 root video 212, 1 3. Sep 12:40 dvr0
crw-rw---- 1 root video 212, 4 3. Sep 12:40 dvr1
crw-rw---- 1 root video 212, 7 3. Sep 12:40 dvr2
crw-rw---- 1 root video 212, 10 3. Sep 12:40 dvr3
crw-rw---- 1 root video 212, 13 3. Sep 12:40 dvr4
crw-rw---- 1 root video 212, 16 3. Sep 12:40 dvr5
crw-rw---- 1 root video 212, 19 3. Sep 12:40 dvr6
crw-rw---- 1 root video 212, 22 3. Sep 12:40 dvr7
crw-rw---- 1 root video 212, 2 3. Sep 12:40 frontend0
crw-rw---- 1 root video 212, 5 3. Sep 12:40 frontend1
crw-rw---- 1 root video 212, 8 3. Sep 12:40 frontend2
crw-rw---- 1 root video 212, 11 3. Sep 12:40 frontend3
crw-rw---- 1 root video 212, 14 3. Sep 12:40 frontend4
crw-rw---- 1 root video 212, 17 3. Sep 12:40 frontend5
crw-rw---- 1 root video 212, 20 3. Sep 12:40 frontend6
crw-rw---- 1 root video 212, 23 3. Sep 12:40 frontend7
/dev/dvb/adapter1:
insgesamt 0
drwxr-xr-x 2 root root 80 3. Sep 12:40 .
drwxr-xr-x 5 root root 100 3. Sep 12:40 ..
crw-rw---- 1 root video 212, 24 3. Sep 12:40 ca0
crw-rw---- 1 root video 212, 25 3. Sep 12:40 ci0
/dev/dvb/adapter2:
insgesamt 0
drwxr-xr-x 2 root root 520 3. Sep 12:40 .
drwxr-xr-x 5 root root 100 3. Sep 12:40 ..
crw-rw---- 1 root video 212, 26 3. Sep 12:40 demux0
crw-rw---- 1 root video 212, 29 3. Sep 12:40 demux1
crw-rw---- 1 root video 212, 32 3. Sep 12:40 demux2
crw-rw---- 1 root video 212, 35 3. Sep 12:40 demux3
crw-rw---- 1 root video 212, 38 3. Sep 12:40 demux4
crw-rw---- 1 root video 212, 41 3. Sep 12:40 demux5
crw-rw---- 1 root video 212, 44 3. Sep 12:40 demux6
crw-rw---- 1 root video 212, 47 3. Sep 12:40 demux7
crw-rw---- 1 root video 212, 27 3. Sep 12:40 dvr0
crw-rw---- 1 root video 212, 30 3. Sep 12:40 dvr1
crw-rw---- 1 root video 212, 33 3. Sep 12:40 dvr2
crw-rw---- 1 root video 212, 36 3. Sep 12:40 dvr3
crw-rw---- 1 root video 212, 39 3. Sep 12:40 dvr4
crw-rw---- 1 root video 212, 42 3. Sep 12:40 dvr5
crw-rw---- 1 root video 212, 45 3. Sep 12:40 dvr6
crw-rw---- 1 root video 212, 48 3. Sep 12:40 dvr7
crw-rw---- 1 root video 212, 28 3. Sep 12:40 frontend0
crw-rw---- 1 root video 212, 31 3. Sep 12:40 frontend1
crw-rw---- 1 root video 212, 34 3. Sep 12:40 frontend2
crw-rw---- 1 root video 212, 37 3. Sep 12:40 frontend3
crw-rw---- 1 root video 212, 40 3. Sep 12:40 frontend4
crw-rw---- 1 root video 212, 43 3. Sep 12:40 frontend5
crw-rw---- 1 root video 212, 46 3. Sep 12:40 frontend6
crw-rw---- 1 root video 212, 49 3. Sep 12:40 frontend7
server02 ~ #
server04 ~ # ll /dev/dvb/*
insgesamt 0
drwxr-xr-x 2 root root 400 24. Aug 17:13 .
drwxr-xr-x 3 root root 60 24. Aug 17:13 ..
crw-rw---- 1 root video 212, 6 24. Aug 17:13 ca0
crw-rw---- 1 root video 212, 9 24. Aug 17:13 ci0
crw-rw---- 1 root video 212, 4 24. Aug 17:13 demux0
crw-rw---- 1 root video 212, 20 24. Aug 17:13 demux1
crw-rw---- 1 root video 212, 36 24. Aug 17:13 demux2
crw-rw---- 1 root video 212, 52 24. Aug 17:13 demux3
crw-rw---- 1 root video 212, 5 24. Aug 17:13 dvr0
crw-rw---- 1 root video 212, 21 24. Aug 17:13 dvr1
crw-rw---- 1 root video 212, 37 24. Aug 17:13 dvr2
crw-rw---- 1 root video 212, 53 24. Aug 17:13 dvr3
crw-rw---- 1 root video 212, 3 24. Aug 17:13 frontend0
crw-rw---- 1 root video 212, 19 24. Aug 17:13 frontend1
crw-rw---- 1 root video 212, 35 24. Aug 17:13 frontend2
crw-rw---- 1 root video 212, 51 24. Aug 17:13 frontend3
crw-rw---- 1 root video 212, 7 24. Aug 17:13 net0
crw-rw---- 1 root video 212, 23 24. Aug 17:13 net1
crw-rw---- 1 root video 212, 39 24. Aug 17:13 net2
crw-rw---- 1 root video 212, 55 24. Aug 17:13 net3
server04 ~ #
Display More
[...] alternativ /sys fragen:
1) alle Verzeichnisse /sys/devices/pciXXXX.yy/XXXX.YY/dvb/dvbN.caM suchen.
2) schauen ob dort /sys/devices/pciXXXX.yy/XXXX.YY/vendor den Wert dd01 hat
Das werde ich mal versuchen.
Habe es jetzt mal so gelöst:
check_ci.sh
#!/bin/bash
for i in $(find /sys/devices -type d -name 'dvb*ci*') ; do
[ "$i" == "" ] && exit
cd $i
if [ "$(grep 0xdd01 ../../vendor)" ] ; then
echo "$(echo $i |sed 's/.*\(.\{8\}\)$/\1/' |sed 's/dvb/\/dev\/dvb\/adapter/' |sed 's/\./\//') --> DD CI"
fi
done
vdr01_64 ~ # ./check_ci.sh
/dev/dvb/adapter0/ci0 --> DD CI
/dev/dvb/adapter0/ci1 --> DD CI
vdr01_64 ~ #
server02 ~ # ./check_ci.sh
/dev/dvb/adapter1/ci0 --> DD CI
server02 ~ #
server04 ~ # ./check_ci.sh
/dev/dvb/adapter0/ci0 --> DD CI
server04 ~ #
Display More
Sicherlich nicht die eleganteste Lösung, aber es funktioniert.
Falls Jemand eine bessere Lösung hat, immer her damit.
Wolltest du nicht C oder C++?
Don’t have an account yet? Register yourself now and be a part of our community!