C++ 非root用户运行程序时Ubuntu、libftdi priviliges、seg故障
我试图编写一个使用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错误,问题在于: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
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,但仍然没有任何内容,你还记得你是如何解决这个问题的吗。我在这里也面临同样的问题