Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 非root用户运行程序时Ubuntu、libftdi priviliges、seg故障_C++_C_Linux_Ubuntu_Segmentation Fault - Fatal编程技术网

C++ 非root用户运行程序时Ubuntu、libftdi priviliges、seg故障

C++ 非root用户运行程序时Ubuntu、libftdi priviliges、seg故障,c++,c,linux,ubuntu,segmentation-fault,C++,C,Linux,Ubuntu,Segmentation Fault,我试图编写一个使用libftdi的简单程序,但遇到了一个奇怪的问题 以非root用户身份运行程序时,如下所示: 司机/司机 Naruszenie ochrony pamięci zrzut pamięci 在Dmesg中,我看到的最后一行是: [3320.467864]BoxDriver[4205]:0 ip 00007f05c2821f7a sp 00007ffd9c6c9c00的segfault在libftdi.so.1.20.0[7F05C282000+7000]中出现错误4 我正在使用U

我试图编写一个使用libftdi的简单程序,但遇到了一个奇怪的问题

以非root用户身份运行程序时,如下所示:

司机/司机 Naruszenie ochrony pamięci zrzut pamięci

在Dmesg中,我看到的最后一行是:

[3320.467864]BoxDriver[4205]:0 ip 00007f05c2821f7a sp 00007ffd9c6c9c00的segfault在libftdi.so.1.20.0[7F05C282000+7000]中出现错误4

我正在使用Ubuntu:

Linux AdamsPC 3.19.0-30-generic 34 Ubuntu SMP Fri 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

当程序以根目录运行时,程序运行正常:

sudo./BoxDriver

好的,开始

我还尝试在eclipse和gcc中调试源代码,没有出现seg错误,问题在于:

ftdi_usb_open(ftc, 0x0403, 0x6010)
它总是返回-8,表示:GetProductDescription失败

我搜索过任何答案,大多数都是关于将用户添加到拨号组,或将规则添加到udev,但我找到的答案都没有一个有效


非常感谢您的任何建议。谢谢

有几种不同的方法可以解决此问题,但通常情况下,您的用户帐户似乎没有与USB设备接口的权限。你可以将用户添加到我认为适合ubuntu的拨号组中

sudo usermod -a -G dialout user
或者,如果多个帐户需要使用它,但它们都应该具有权限,您可以将它装载到的文件系统更改为具有完全权限

sudo chmod 777 /media/drive_name

我已经做了,但仍然没有结果。很抱歉,对于双贴,5分钟后无法编辑帖子。我已将用户添加到组拨号,但这并没有解决我的问题。我的用户也在udev组中,仍然没有结果。我还试图从系统中删除modemmanager包,但又失败了。此设备在/media/处不可见。它不是存储设备,只是与直接通信设备的接口。是这个芯片:。该设备在windows下完全可以运行,使用的代码与它完美运行的代码相同。首先要确保当您将自己添加到一个组时,注销并重新登录以使更改生效。另一种猜测是寻找类似于/dev/ttyUSB0或类似的东西,这取决于您有多少USB设备。我会尝试基本上插入和拔出,并在/dev/目录中查找差异。尝试更改该设备的权限,每次插入该设备时都需要重复此操作,尽管这并不理想。$ls-l/dev/| grep ttyUSB crwxrwx rwx 1 root dialout 188,0 lis 5 08:23 ttyUSB0$id-Gn adams adm dialout cdrom sudo-dip plugdev lpadmin sambashare,但仍然没有任何内容,你还记得你是如何解决这个问题的吗。我在这里也面临同样的问题