Serialport không hoạt động chính xác sau khi cập nhật Ubuntu?


2

Tôi có một vấn đề kỳ lạ với cổng nối tiếp của tôi. Có vẻ như sth đã thay đổi sau khi hiện thực hóa và khởi động lại Ubuntu.

przem@przem:~/Pulpit/bat/scripts$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser = serial.Serial("/dev/ttyUSB0", 57600)
>>> ser.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/serial/serialposix.py", line 475, in read
    raise SerialException('device reports readiness to read but returned no data (device disconnected or multiple access on port?)')
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
>>> 

Tôi biết rằng tôi nên có kết quả '' (dấu trống) từ thiết bị của mình nhưng thay vào đó, tôi nhận được ngoại lệ:

'Thiết bị báo cáo sẵn sàng để đọc nhưng không trả lại dữ liệu (thiết bị   bị ngắt kết nối hoặc nhiều truy cập trên cổng?) '

Câu hỏi này là một giới thiệu về vấn đề của tôi: https://stackoverflow.com/questions/32844942/serialport-doenst-work-c chínhly-after-Ubuntu-update?

Làm ơn giúp tôi.

Câu trả lời:


1

Tôi gặp vấn đề tương tự. Nó dường như không bị giới hạn trong phần cứng cổng nối tiếp. Bạn có thể tạo hai thiết bị đầu cuối giả bằng socat:

$ socat -d -d pty,raw,echo=0 pty,raw,echo=0
2015/09/30 09:46:18 socat[6296] N PTY is /dev/pts/17
2015/09/30 09:46:18 socat[6296] N PTY is /dev/pts/18
2015/09/30 09:46:18 socat[6296] N starting data transfer loop with FDs [3,3] and [5,5]

Bạn có thể kết nối với cả hai thiết bị, ví dụ như sử dụng cu

cu -l /dev/pts/17 -s 115200

cu -l /dev/pts/18 -s 115200

và gửi dữ liệu theo cả hai hướng, không có vấn đề.

Nhưng kết nối với Python 2.7 không thành công với thông báo lỗi bạn đã đề cập

$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser = serial.Serial("/dev/pts/17", 230400, timeout=0.2)
>>> ser.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 460, in read
    raise SerialException('device reports readiness to read but returned no data (device disconnected?)')
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected?)

Mã này đã hoạt động trước khi cài đặt các bản cập nhật cho Ubuntu 14.04 ngày hôm qua.

Có ý kiến ​​gì không?


Cảm ơn bạn vì câu trả lời. Tôi đã báo cáo nó: bug.launchpad.net/ubfox/+source/python2.7/+orms/1501240 Có thể hoàn tác cập nhật?
pb.

Bạn nhìn vào nhật ký cập nhật trong /var/log/apt/history.log. Một trong những gói trong khối cuối cùng phải gây ra sự cố. Xem đây để hoàn nguyên cập nhật.
Philipp R.

Dưới đây là danh sách các bản cập nhật mới nhất: snag.gy/Q55wX.jpg Tôi đã cố gắng hoàn nguyên libgudev-1.0.0 và gir1.2-gudev-10 nhưng không có gì thay đổi. Tôi không biết bản cập nhật nào có ảnh hưởng đến serialport này
pb.

Có thể là một vấn đề hạt nhân, xem ở đây: mail-archive.com/kernel-packages@lists.launchpad.net/
Philipp R.

Cảm ơn bạn rất nhiều. Tôi đã thực hiện hạ cấp và bây giờ là OK. đã giải quyết!
pb.

1

Tôi không xác nhận điều này, nhưng tôi đã ngừng nhìn thấy những lỗi này sau khi thực hiện thay đổi này:

--- serialposix.py.stock    2015-10-03 06:53:45.241261071 -0700 
+++ serialposix.py  2015-10-03 06:55:07.481262475 -0700
@@ -457,7 +457,11 @@
             # Disconnected devices, at least on Linux, show the
             # behavior that they are always ready to read immediately
             # but reading returns nothing.
-                raise SerialException('device reports readiness to read but returned no data (device disconnected?)')
+                # retrying the read seems to get me past this error:
+                # [ERROR] Can't read from printer (disconnected?)     (SerialException): device reports readiness to read but returned no data (device disconnected?)
+
+                #raise SerialException('device reports readiness to read but returned no data (device disconnected?)')
+                pass
         read.extend(buf)
     return bytes(read)

Tại sao bạn đăng một câu trả lời mà bạn không tán thành?
DavidPostill

1
Bởi vì nó hữu ích.
Stavros Korokithakis

1

Đây có thể là một lỗi kernel. Xem tại đây: https://bugs.launchpad.net/ubfox/+source/python2.7/+orms/1501240

Cách giải quyết có vẻ là sử dụng kernel 3.13.0-63-generic.

Bạn có thể thay đổi kernel để khởi động một lần bằng cách giữ shift trong khi khởi động. Để thay đổi liên tục, bạn cần chỉnh sửa /etc/default/grub: https://askubfox.com/questions/262965/grub-timeout-set-to-0-cant-access-grub-menu-anymore?rq=1


Đối với tôi đây là vấn đề
Eduard Florinescu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.