Да, это возможно, выполните следующие команды,
Обязательно войдите в систему как пользователь root и обновите запись имени хоста в этом файле.
cd /etc/sysconfig
vi network
Также обновите ifcfg-<interface_name>
в разделе /etc/sysconfig/network-scripts/
Выполнив описанные выше действия, просто перезапустите сетевую службу(service networkd restart
).
Я нахожу самое простое решение, используя следующую команду:
v4l2-ctl --list-devices
Это выход:
vi-output, ov5693 2-0036 (platform:15700000.vi:2):
/dev/video2
HBV HD CAMERA (usb-3530000.xhci-2.1.2):
/dev/video0
HBV HD CAMERA (usb-3530000.xhci-2.1.3):
/dev/video1
После этого я сделал скрипт, который брал только id устройств с usb-камерами:
keywordUSB=usb # used for searching the usb camera
lineCount=0 # index for each line command
# even lines -> type of camera device : native/usb
# odd lines -> id of camera
USB_ID_CAMERA_ARRAY=() # array where we append our id usb camera
while read cmd_line
do
if [ -z "$cmd_line" ] # ignore empty line
then
continue
else
if [ $(expr $lineCount % 2) -eq "0" ] # usb/native camera
then
if [[ "$cmd_line" == *"$keywordUSB"* ]] # true if it is a usb camera device
then
state=active # state is active only for usb camera devices
else
state=inactive # inactive for native camera
fi
else
if [[ $state == "active" ]] # this is a usb camera
then
camera_id="${cmd_line: -1}" # id camera
USB_ID_CAMERA_ARRAY+=($camera_id) # append to our array
fi
fi
fi
let "lineCount+=1"
done < <(v4l2-ctl --list-devices)
command="./myCppApp --camera-sources"
for elem in ${USB_ID_CAMERA_ARRAY[@]}
do
command="$command $elem"
done
$command