it-swarm.dev

Změna oprávnění na sériovém portu

Používám Arduino IDE v Ubuntu a mám problémy se sériovým portem. Fungovalo to v minulosti, ale z důvodů, které nemusí být nutné, jsem cítil potřebu změnit vlastnictví některých souborů od vlastnictví root k vlastnictví svých uživatelů.

Díky tomu funguje IDE) správně, ale ztratil jsem možnost používat správný sériový port. Ve složce dev je port, který potřebuji, uveden jako povolení 166. Někdo (kdo již není v oblast, aby mi pomohla) zaměnila oprávnění na 666, což vše skvěle fungovalo.

Jakmile se však restartoval počítač, vrátil se zpět a pokud se nyní pokusím použít příkaz:

Sudo chmod 666 ttyACM0

nic se neděje. Žádné chybové zprávy, ale nezmění se ani oprávnění.

Jak to mohu změnit a jak mohu donutit, aby se změnil natrvalo.

Omlouvám se, pokud je tato otázka příliš zjednodušující nebo nejasná, jsem ubuntu noob a já bych nezáviděl zpětnou vazbu!

59
Terrik

Problém s oprávněními pro /dev/ttyACM0 lze trvale vyřešit přidáním sebe do skupiny dialout. Před rozpoznáním změny skupiny se musíte odhlásit a znovu přihlásit.

Můžete to udělat pomocí Sudo usermod -a -G dialout $USER

85
Rinzwind

Nemohl jsem nechat fungovat Rinzwindův návrh , protože si stěžoval, že uživatelský účet již existuje. Místo toho jsem použil tento příkaz k přidání existujícího uživatele (terrik) do existující skupiny (dialout), jak je popsáno na Ubuntu Help Wiki .

Sudo adduser terrik dialout

Tento příkaz je také užitečný pro výpis vašich aktuálních skupin, ačkoli, jak říká Rinzwind, musíte se odhlásit a přihlásit se, než vás začne sériový port pustit.

groups terrik
21
Don Kirkby

Další možností je vytvořit soubor pravidel v /etc/udev/rules.d/ adresář. Měl jsem podobný problém a vytvořil jsem 50-myusb.rules soubor ve výše uvedeném adresáři s tímto obsahem:

KERNEL=="ttyACM[0-9]*",MODE="0666"

Všimněte si, že toto udělí každému zařízení připojenému ke soketu ttyACM oprávnění ke čtení a zápisu. Pokud pro získání oprávnění ke čtení a zápisu potřebujete pouze konkrétní zařízení, musíte také zkontrolovat idVendor a idProduct. Můžete je najít tak, že spustíte příkaz lsusb dvakrát, jednou bez připojeného zařízení a jednou, když je připojeno, pak sledujte další řádek ve výstupu. Tam uvidíte něco jako Bus 003 Device 005: ID ffff:0005. V tomto případě idVendor = ffff a idProduct = 0005. Vaše budou jiné. Než upravíte soubor pravidel na:

ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"

Nyní získává oprávnění pouze toto zařízení. Přečtěte si toto a dozvíte se více o psaní pravidel udev.

14
NonStandardModel

Nemohl jsem dostat Terrikova odpověď pracovat, ale mohl bych, kdybych udělal toto malé přizpůsobení cesty pro ttyACM0.

Sudo chmod 666 /dev/ttyACM0

Přidat příspěvek jako komentář, ale zatím k tomu nemám oprávnění ...

11
gbmhunter

Zkuste jít do systému/uživatelů a skupin a zaškrtněte políčko u svého uživatelského jména ve skupině TTY.

2
user247020