2017-08-09 135 views
0

我的java應用程序使用三個相同的音頻設備。 我發現本教程,如何創建設備和PCI總線之間的關係(通過udev規則):http://alsa.opensrc.org/Udev#Writing_udev_rules 它的工作,但我想創建卡ID的編程從我的應用程序不使用UDEV規則。對於此操作足以在目錄/sys/devices/..../card[0-9]/中創建標識文件。 但我不能。我無法更改/sys/中的文件。另外,我無法更改/proc中的文件。即使我獲得root權限。ALSA。如何以編程方式更改設備ID?

任何人都可以幫助我嗎?例如,我如何在/sys/devices/pci0000:00/0000:00:1c.1/0000:04:00.0/0000:05:04.0/sound/card4/目錄中創建文件?或在/proc/asound/card4/

$ sudo nano /sys/devices/pci0000:00/0000:00:1c.1/0000:04:00.0/0000:05:04.0/sound/card4/id 
$ Saving error: /sys/devices/pci0000:00/0000:00:1c.1/0000:04:00.0/0000:05:04.0/sound/card4/id: File exists 

$ sudo rm /sys/devices/pci0000:00/0000:00:1c.1/0000:04:00.0/0000:05:04.0/sound/card4/id 
$ rm: can't delete '/sys/devices/pci0000:00/0000:00:1c.1/0000:04:00.0/0000:05:04.0/sound/card0/id': Operation is not permitted 

回答

0

如您聯繫,您可以通過該卡的id財產分配一個新的值更改卡的ID在頁面上顯示:

DEVPATH=="/devices/pci0000:00/0000:00:13.2/usb2/2-6/2-6.2/2-6.2:1.0/sound/card?", ATTR{id}="UA1A_A" 
DEVPATH=="/devices/pci0000:00/0000:00:13.2/usb2/2-6/2-6.3/2-6.3:1.0/sound/card?", ATTR{id}="UA1A_B" 

該屬性是在卡的sysfs目錄中的文件,所以你可以只寫id文件:

echo XYZ > /sys/devices/pci0000:00/0000:00:1c.1/0000:04:00.0/0000:05:04.0/sound/card4/id 
+0

是的。如果我嘗試從終端創建文件 - 我得到「文件存在」錯誤。 如果我嘗試刪除它 - 我收到「操作不允許」錯誤。 我用sudo執行兩個命令。但根不允許。這是問題。 – Virkom

+0

'$ sudo echo XYZ> /sys/devices/pci0000:00/0000:00:1c.1/0000:04:00.0/0000:05:04.0/sound/card4/id bash:/ sys/devices/pci0000 :00/0000:00:1c.1/0000:04:00.0/0000:05:04.0/sound/card4/id:拒絕訪問 – Virkom

+0

這不是使用'sudo'的正確方法。 –

相關問題