Tôi có một vấn đề sau: Sử dụng RaspPi 3B chạy Raspbian Jessie (phiên bản 4.4.26-v7 +) Tôi muốn GUI của tập lệnh python tự viết được thực thi khi khởi động.
Tôi biết rằng câu hỏi này đã được hỏi trên trang web này cũng như trên những người khác, nhưng vì Raspbian liên tục thay đổi và không có giải pháp nào được đề xuất trước khi làm việc cho tôi (xem bên dưới), tôi muốn hỏi lại.
Theo hiểu biết của tôi, tôi cần tải XServer và thực hiện tập lệnh của mình sau đó. Điều này sẽ xảy ra thay vì tải toàn bộ máy tính để bàn.
Một cách để đạt được điều này được cho là thông qua tệp tự khởi động LXDE (như được nêu trong câu trả lời này ). Tôi đã chỉnh sửa tệp /etc/xdg/lxsession/LXDE-pi/autostart
cũng như tệp /etc/xdg/lxsession/LXDE/autostart
(trước đây có bốn dòng thay vì ba dòng như được đề xuất trong bài đăng được tham chiếu) - thêm các dòng @sudo python /full/path/to/file.py
và @openbox
, nhưng Pi của tôi vẫn khởi động vào máy tính để bàn và hoàn toàn không tự động thực thi tập lệnh. Chú thích: Tôi đã thử chỉ dòng script và dòng script cùng với dòng openbox cho một trong hai tệp và cho cả hai tệp cùng nhau.
Một chiến lược khác liên quan đến tệp RC.local (như được đề xuất trong tài liệu chính thức ). Tuy nhiên, chỉ thêm python /full/path/to/file.py &
không hoạt động (vì vẫn còn GUI của tôi bị thiếu) và thêm vào startx
đó không giúp ích gì vì rõ ràng tôi không thể liên kết startx với tập lệnh python và do đó trước đó đã đóng ngay sau khi nó bắt đầu.
Một số gợi ý rằng (ngoài ra) .xinitrc nên được sử dụng. Điều này, tuy nhiên, cũng không hoạt động:
su -c python /full/path/to/file.py pi
Và, cuối cùng nhưng không kém phần quan trọng, theo một cách nào đó, có thể thực hiện được bằng cách sử dụng init.d - nhưng tôi chưa tìm thấy chi tiết về điều này.
Tôi thực sự sẽ đánh giá cao bất kỳ gợi ý về hướng đúng. Lỗi của tôi ở đâu? Dòng của tôi trong RC.local hoặc .xinitrc trông như thế nào? Hoặc đã có những thay đổi lớn liên quan đến việc chuyển sang pixel và tôi nên thử một cái gì đó khác?
Một số thông tin bổ sung: Kịch bản cần quyền sudo. Nó được viết bằng Python 2.7, GUI đang sử dụng Tkinter. GUI lấp đầy màn hình hoàn toàn, vì vậy hình nền không liên quan. Kịch bản được cho là chạy mãi mãi (hoặc cho đến khi nó bị dừng bởi đầu vào của người dùng thông qua GUI) và sử dụng các dịch vụ hệ thống như wifi và ethernet.
Thêm thông tin: Tất cả đang diễn ra tại địa phương.
Làm rõ: Đến bây giờ tôi đã dành hơn 8 giờ để tìm kiếm trên mạng, thử các hướng dẫn từ các điểm bắt đầu khác nhau hoặc trộn chúng lại với nhau. Tôi đã đi đến kết luận rằng tập lệnh của tôi (hoạt động hoàn hảo khi bắt đầu bằng pixel) không hoạt động nếu chạy trong môi trường không có máy tính để bàn (mà tôi nghi ngờ) hoặc là một hướng dẫn mới là cần thiết, bởi vì tháng 10 năm 2016 thay đổi thành Raspbian làm cho bất kỳ hướng dẫn cũ hơn lỗi thời. Hơn nữa, thách thức không nằm ở việc khởi động tập lệnh hay khởi động Xserver (hoặc một cái gì đó tương tự) độc lập với nhau, mà là thực hiện cả hai liên kết để tập lệnh sẽ sử dụng màn hình được tạo bởi Xserver.