Điều gì gây ra lỗi ENOSPC khi sử dụng mô-đun máy ảnh Raspberry Pi?


33

Tôi đã nhận được thông báo lỗi bên dưới khi thử sử dụng máy ảnh Raspberry Pi

# raspistill -o /tmp/gate_now.jpg
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

Trong nghiên cứu này, có một số lý do có thể dẫn đến một thông điệp ENOSPC, tôi nghĩ rằng tôi sẽ tạo một câu hỏi ở đây để lập danh mục các nguyên nhân có thể.


Bạn cũng đang sử dụng nó với một cảm biến nhiệt độ? Tôi đã gặp phải vấn đề này bất cứ khi nào tôi chạy lệnh modprobe khi thiết lập cảm biến tạm thời. Xem github.com/raspberrypi/linux/issues/435
Anconia

Vấn đề này cũng xảy ra với hình ảnh OctoPi: github.com/guysoft/OctoPi/issues/31
GuySoft

Đó là năm 2019 và không thể đăng câu trả lời mới (đã đóng), nhưng trước đây tôi đã cài đặt raspimjpeg mà tôi đã may mắn phát hiện ra bằng cách sử dụng 'ps -ef'. "sudo pkill raspimjpeg" sau đó đã giải quyết vấn đề.
Gavin Simpson

Câu trả lời:


19

Các trang dự án GitHub cho phần mềm máy ảnh đề cập đến

Lỗi: ENOSPC hiển thị. Máy ảnh có thể sắp hết bộ nhớ GPU. Kiểm tra config.txt trong thư mục / boot /. Tùy chọn gpu_mem nên có ít nhất 128.

Vấn đề này nói rằng lỗi này có thể xảy ra do xung đột với trình điều khiển cho các mô-đun 1-Dây (W1) nếu các mô-đun không được tải theo đúng thứ tự.

Bài đăng này trên các diễn đàn RPi cho biết vấn đề có thể được khắc phục bằng cách chuyển đổi pin được sử dụng cho 1-Dây sang pin 18:

/boot/cmdline.txt:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait bcm2708.w1_gpio_pin=18

Kể từ tháng 5 năm 2016, GPU_MEM = 128 không còn đủ nữa. Việc tăng từ 128 lên 144 đã khiến lỗi không còn nữa.


Tôi nghĩ bạn có nghĩa là gpu_mem, không phải gpio_mem.
tedder42

14

Tôi sử dụng chuyển động trên pi, nếu tôi muốn chạy raspistill, tôi phải dừng chuyển động (cũng sử dụng máy ảnh để phát hiện chuyển động).

pi@raspberrypi ~ $ sudo /etc/init.d/motion stop
[ ok ] Stopping motion detection daemon: motion.
pi@raspberrypi ~ $ /usr/bin/raspistill -o cam2.jpg
pi@raspberrypi ~ $ sudo /etc/init.d/motion start
[ ok ] Starting motion detection daemon: motion.

Trong khi điều này có thể là một câu trả lời, nó chắc chắn sẽ được cải thiện bởi một số chi tiết.
Bex

Đó không phải là chuyển động mà tôi đã chạy, nhưng tôi đã có một trình nền khác sử dụng máy ảnh và khi tôi dừng lại thì tôi đã ngừng nhận lỗi.
Richard Wiseman

Có, máy ảnh dường như chỉ có thể được điều khiển bởi một quá trình.
schemacs

10

"Trong trường hợp bình thường KHÔNG BAO GIỜ cần phải chạy rpi-update vì nó luôn đưa bạn đến firmware và kernel hàng đầu và vì đó có thể là phiên bản thử nghiệm nên nó có thể khiến RPi của bạn không thể khởi động được". https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Ngay cả tài liệu cập nhật rpi hiện cũng cảnh báo "Ngay cả trên Raspbian, bạn chỉ nên sử dụng điều này với một lý do chính đáng. hạt nhân / phần sụn. "

Tôi đã từng gặp vấn đề tương tự. Một bản cập nhật firmware đã giải quyết nó.

sudo rpi-update

Điều này đã giải quyết nó cho tôi và dường như cần thiết để làm cho Raspicam 2.1 hoạt động với tôi (tôi đã sử dụng thành công Rapicam 1.3 trước khi cập nhật); bản cập nhật nâng cấp tôi khỏi 4.1.7-v7+đến 4.9.25-v7+, khiến cho công việc mô hình mới hơn. Thay đổi từ GPIO_MEM=128thành GPIO_MEM=144không cần thiết cho tôi trong trường hợp này.
nh2

9

Tôi đã từng gặp vấn đề tương tự. So sánh nó với một số bài đăng khác, câu trả lời rất có thể là hai quy trình / ứng dụng đang cố gắng truy cập PiCam cùng một lúc. Điều này có thể là ffmpeg streaming, chuyển động, raspivid, raspistill, v.v.

0,02 đô la của tôi


đúng :)) mất một lượng thời gian, tôi quên rằng tôi đã cài đặt quy trình chuyển động vào phần phụ trợ, ngăn không cho truy cập máy ảnh
soField

2
Hoặc bạch tuộc (như đối với tôi)
Saran

Tôi đã cố gắng chạy cả raspivid và một kịch bản python sử dụng thư viện picamera. Họ không thể chạy cùng nhau
Dante

Cảm ơn rất nhiều, tôi cũng đã mắc lỗi tương tự nhưng các bài đăng khác đã giúp tôi cập nhật chương trình cơ sở, các gói dist, v.v. vẫn còn đó cho đến khi tôi làm điều này sudo service motion stop. Và máy ảnh bắt đầu hoạt động trở lại.
Amit Ray

Chỉ cần cung cấp tình hình và giải pháp của tôi là tốt. Tôi đã nhập picameramột tập lệnh python, nhưng nó không hoạt động nên tôi quyết định sử dụng raspistilltừ một lệnh gọi bên trong tập lệnh thay thế. Tôi đã không loại bỏ import picamerađể chiếm tài nguyên máy ảnh trước khi tôi có thể sử dụng nó raspistill.
Kimberly W

6

Gần đây tôi đã gặp vấn đề tương tự về lỗi ENOSPEC. Trong trường hợp của tôi, tất cả mọi thứ đã chạy hoàn hảo cho đến khi tôi đặt máy ảnh của mình vào vỏ PiCam. Tôi đã tìm thấy vỏ này (ngay cả khi mong muốn cho PiCamera) đẩy con chip đến mức mà đầu nối giữa cam và bo mạch đã được nới lỏng. Đẩy nó trở lại vị trí đã giải quyết vấn đề của tôi. Có thể không dễ dàng để xem liệu đầu nối được đặt đúng vị trí gây ra sự hiểu sai.

Tôi đoán đây sẽ không phải là trường hợp thông thường nhưng vì bài đăng đầu tiên đề xuất nên điều này sẽ nâng cao danh mục các nguyên nhân có thể gây ra lỗi này.


2

Tôi đã có thông báo lỗi tương tự vì tôi chưa cập nhật chương trình cơ sở (thông qua sudo rpi-update) sau khi bật camera qua raspi-config. Tôi đã cập nhật chương trình cơ sở một vài ngày trước đó và tôi nghĩ rằng nó sẽ đủ, nhưng vì máy ảnh không được kích hoạt lại nên nó không giúp ích gì.


2

Trong trường hợp của tôi, chỉ đơn giản là tôi đã không khởi động lại pi của mình sau khi gắn máy ảnh.


Không bao giờ gắn máy ảnh vào pi trong khi nó được cấp nguồn!
Dmitry Grigoryev

1

Tôi đã thử với RASPBIAN STRETCH LITE cuối cùng (9.4 - 2018-06-27) trong PI3B v1.2 với PI CAMERA 2.1, tất cả đều được nâng cấp hoàn toàn (nâng cấp apt-get)

Nếu lệnh này không phát hiện camera có " phát hiện = 1 " như thế này:

pi@raspberrypi:~ $ vcgencmd get_camera
supported=1 detected=1

Sau đó, có một vấn đề kết nối. Kiểm tra xem cáp cả hai chiều có phải là mặt tốt với các chân không (và tất nhiên được kết nối với bus "camera", không phải là bus "hiển thị" có cùng kích thước).

(tất nhiên, sau khi kích hoạt giao diện camera với raspi-config và khởi động lại)

Nếu nó không hoạt động, thường thì đó là sự cố phần cứng với máy ảnh và tùy chọn nhanh là thay đổi máy ảnh bằng một cái mới.

Nếu được phát hiện = 1 nhưng khi thử sử dụng raspistill sẽ hiển thị thông báo này:

pi@raspberrypi:~ $ raspistill -o test.jpg
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

Sau đó, các kết nối đều ổn, nhưng vấn đề chắc chắn là vấn đề phần cứng với máy ảnh và bạn phải thay đổi camera mới. Đừng lãng phí thời gian để cố gắng giải quyết nó vì đó là một chiếc máy ảnh bị lỗi. Nếu bạn nhận được một cái mới, nó sẽ hoạt động.


Thậm chí sau đó bạn không thể nói rằng máy ảnh không hoạt động. Tôi đã có tất cả các vấn đề này và khi tôi phát trực tiếp bằng http: // {ip của tôi}: 8081 /? Action = stream thì nó đã hoạt động. Điều này có nghĩa là raspimjpeg đã chạy. Điều này rất có thể xảy ra khi bạn đã có một hoặc nhiều quá trình sử dụng máy ảnh vì được phát hiện = 1 có nghĩa là ít nhất nó có thể liên lạc với máy ảnh.
Amit Ray

0

trong trường hợp của tôi, tôi đã phải sử dụng modprobe để tải trình điều khiển: sudo modprobe -r bcm2835-v4l2

Sau đó, đèn LED màu đỏ trên máy ảnh bị tắt và tôi có thể sử dụng raspivid để bật lại máy ảnh.


0

Trong trường hợp của tôi, tôi cần phải gắn lại cáp trên máy ảnh. Tôi đã ngắt kết nối nó để cung cấp cáp thông qua một trường hợp; nó không phải là một kết nối tốt


0

Tôi đã gặp lỗi đó trên AIY Vision Kit (Pi Zero W) vì tôi quên dừng ứng dụng demo camera:

sudo systemctl stop joy_detection_demo

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.