Linux บอกฉันว่ามีการใช้พอร์ตอนุกรม แต่ไม่ใช่


11

บน CrunchBang linux (ตัวแปรเดเบียน) ฉันเปิดพอร์ต COM ttyS0ซึ่งฉันพยายามใช้กับอุปกรณ์ NFC libnfc ตอบว่ามันไม่เห็นอุปกรณ์ NFC ใด ๆ ดังนั้นฉันจึงลองเปิดพอร์ต COM โดยตรง สำหรับสิ่งนี้ฉันใช้:

sudo cu -l /dev/ttyS0 -s 9600

อย่างไรก็ตามคำสั่งนี้ส่งคืน:

cu: open (/dev/ttyS0): Permission denied
cu: /dev/ttyS0: Line in use

ฉันไม่ทราบว่าอาจมีการใช้การเชื่อมต่อนี้ เพื่อค้นหาฉันได้ลองอ่านกระบวนการที่เปิดอยู่ทั้งหมดและการกรองเพื่อการใช้งานttyS0:

ps -ef | grep tty

แต่สำหรับคำสั่งนี้ไม่มีอะไรแสดงว่ากำลังใช้งานttyS0อยู่ ฉันได้ลองคว้าไฟล์ที่เปิดอยู่ทั้งหมดแล้วกรองเพื่อล็อคttyS0:

lsof | grep tty

ttyS0แต่นี้ส่งกลับไม่มีอะไรใช้

เป็นไปได้อย่างไรcuว่ามีการใช้งานบรรทัด แต่ทั้งสองอย่างpsและlsofไม่ส่งคืนสิ่งใดโดยใช้บรรทัดนั้น


สิ่งที่เกี่ยวกับ lsof / dev / ttyS0
Ciclamino

@Ciclamino ที่ไม่เปลี่ยนมัน - TTY /dev/ttyS0เป็นย่อยของ อย่างไรก็ตามมันซ่อน ttys อื่นทั้งหมด
Aza

ผมมีปัญหาเดียวกัน. minicomทำงานได้ดี แต่cuและปฏิเสธที่จะพูดคุยกับscreen /dev/ttyUSB0ผมแนะนำให้เพิ่มผู้ใช้ของฉันไปuucpและdialoutกลุ่มและออกจากระบบที่ไม่ได้ช่วย
Vorac

คำตอบ:


10

อาจไม่มีการใช้งานจริงของสาย แต่เป็นปัญหาการอนุญาต วิธีที่รวดเร็วและสกปรกในการทดสอบสำหรับฉันคือการดำเนินการ:

ls -la /dev/ttyUSB0
sudo chmod 666 /dev/ttyUSB0

cuและลองใหม่อีกครั้ง หากเริ่มทำงานคุณต้องดูแลudevไฟล์ที่เกี่ยวข้องและการอนุญาต / กลุ่มผู้ใช้ สำหรับอุปกรณ์ของฉันมันดูเหมือนว่านี้ (เป็นสมาชิกในplugdevกลุ่ม):

> cat /etc/udev/rules.d/42-CP210x.rules 
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SUBSYSTEMS=="usb",
ACTION=="add", MODE="0666", GROUP="plugdev"

2

cuดูเหมือนว่าปัญหานี้เป็นปัญหาใน ฉันแก้ไขสิ่งนี้โดยเปลี่ยนกลุ่มเจ้าของ/dev/ttyUSB0โดยใช้คำสั่งต่อไปนี้:

chown root:root /dev/ttyUSB0

2

สิทธิ์ของอุปกรณ์อนุกรมจะมอบให้กับสมาชิกของdialoutกลุ่ม หากต้องการเชื่อมต่อกับ/dev/ttyS0ฉันได้เพิ่มผู้ใช้ปัจจุบันในกลุ่มโดยใช้:

sudo adduser <username> dialout

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.