2015-11-04 33 views
0

我正在嘗試編寫簡單的程序,使用libftdi,並且遇到了一個奇怪的問題。Ubuntu,libftdi priviliges,seg當非root用戶運行程序時出錯

運行程序時作爲非root它看起來像這樣:

./BoxDriver Naruszenie ochronypamięci(zrzutpamięci)

而且在dmesg的最後一行我看到的是:

[3320.467864] BoxDriver [4205]:段錯誤在0 IP 00007f05c2821f7a SP 00007ffd9c6c9c00誤差4 libftdi.so.1.20.0 [7f05c2820000 + 7000]

我使用Ubuntu:

的Linux AdamsPC 3.19.0-30泛型#34,Ubuntu的SMP週五10月2日22時08分41秒UTC 2015年x86_64的x86_64的x86_64的GNU/Linux的

而且FTDI設備:

總線001設備011:ID 0403:6010未來技術設備國際有限公司FT2232C雙USB-UART/FIFO IC

程序運行正常,當它運行爲根:

須藤./BoxDriver

OK,開始

我也試着調試源代碼(在eclipse昂GCC,沒有賽格發生故障),問題是:

ftdi_usb_open(ftc, 0x0403, 0x6010) 

它總是返回-8,這代表着:「讓產品說明不合格」

我有烤焦避免任何答案,大部分都是關於將用戶添加到撥出組,或將規則添加到udev,但我沒有找到任何答案。

任何建議,非常感謝。謝謝

+0

你還記得你是如何解決這個問題的。我在這裏面臨同樣的問題 – Ragav

回答

0

有幾種不同的方法可以解決這個問題,但通常聽起來您的用戶帳戶沒有權限與USB設備進行連接。您可以將用戶添加到我認爲適用於ubuntu的相應組中。

sudo usermod -a -G dialout user 

另外,如果多個帳戶需要使用它,但他們都應該有權限,你可以改變它安裝到具有完全權限的文件系統。

sudo chmod 777 /media/drive_name 
+0

我已經做到了,仍然沒有結果。 – AdamsP

+0

對不起,對於雙後,5分鐘後無法編輯帖子。 我已將用戶添加到組撥出,但這並沒有解決我的問題。 我的用戶也在組udev,仍然沒有結果。 另外我試圖從系統中刪除modemmanager包,另一個失敗。 此設備在/ media /中不可見。它不是存儲設備,只是直接連接到設備。它是這個芯片:[鏈接](http://www.ftdichip.com/Products/ICs/FT2232D.htm)。該設備完全可操作,在windows下,使用相同的代碼運行完美。 – AdamsP

+0

啊,好吧,這是一個FTDI芯片陷入困境。首先,要確保何時將自己添加到組中,然後重新登錄以使更改生效。另一個猜測就是尋找/ dev/ttyUSB0之類的東西(或者類似的,取決於你有多少個USB設備),我會嘗試基本上插入和拔出,並找到/ dev /目錄中的差異。嘗試更改該設備的權限,每次插入設備時都需要重複此操作,但這並不理想。 – arduic