Apa yang menyebabkan kesalahan ENOSPC saat menggunakan modul kamera Raspberry Pi?

33

Saya telah mendapatkan pesan kesalahan di bawah ini ketika mencoba menggunakan kamera 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

Dalam meneliti ini, ada sejumlah alasan yang dapat menyebabkan pesan ENOSPC, saya pikir saya akan membuat pertanyaan di sini untuk membuat katalog penyebab yang mungkin.

TomG
sumber
Apakah Anda juga menggunakannya dengan sensor suhu? Saya mengalami masalah ini kapan saja saya menjalankan perintah modprobe ketika mengatur sensor temp. Lihat github.com/raspberrypi/linux/issues/435
Anconia
Mendapatkan masalah ini juga pada gambar OctoPi
GuySoft
Ini tahun 2019, dan tidak dapat memposting jawaban baru (tertutup), tetapi saya sebelumnya telah menginstal raspimjpeg yang cukup beruntung saya temukan menggunakan 'ps -ef'. "sudo pkill raspimjpeg" lalu menyelesaikan masalahnya.
Gavin Simpson

Jawaban:

19

The halaman proyek GitHub untuk perangkat lunak kamera menyebutkan

Kesalahan: ENOSPC ditampilkan. Kamera mungkin kehabisan memori GPU. Periksa config.txt di folder / boot /. Opsi gpu_mem harus paling tidak 128.

Masalah ini menyatakan bahwa kesalahan ini dapat terjadi karena konflik dengan driver untuk modul 1-Wire (W1) jika modul tidak dimuat dalam urutan yang benar.

Posting ini di forum RPi mengatakan masalah dapat diperbaiki dengan mengalihkan pin yang digunakan untuk 1-Wire ke 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

Pada Mei 2016, GPU_MEM = 128 tidak lagi cukup. Meningkatkannya dari 128 menjadi 144 membuat kesalahan hilang.

TomG
sumber
Saya pikir maksud Anda gpu_mem, bukan gpio_mem.
tedder42
14

Saya menggunakan gerakan pada pi, jika saya ingin menjalankan raspistill, saya harus menghentikan gerakan (yang juga menggunakan kamera untuk mendeteksi gerakan).

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.
schemacs
sumber
Meskipun ini mungkin jawaban, itu pasti akan ditingkatkan dengan beberapa perincian.
Bex
Itu bukan gerakan yang telah saya jalankan, tetapi saya memiliki daemon lain menggunakan kamera, dan ketika saya berhenti saya berhenti mendapatkan kesalahan.
Richard Wiseman
Ya, kamera sepertinya hanya bisa dikendalikan oleh satu proses.
schemacs
10

"Dalam keadaan normal, TIDAK PERNAH perlu menjalankan rpi-update karena selalu membawa Anda ke firmware dan kernel terdepan dan karena itu mungkin versi pengujian, ini bisa membuat RPi Anda tidak dapat di-boot". https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Bahkan dokumentasi rpi-update sekarang memperingatkan "Bahkan pada Raspbian Anda hanya boleh menggunakan ini dengan alasan yang bagus. Ini memberi Anda tepi pendarahan terbaru kernel / firmware. "

Saya memiliki masalah yang sama. Pembaruan firmware menyelesaikannya.

sudo rpi-update
pengguna49119
sumber
Ini menyelesaikannya untuk saya, dan sepertinya perlu untuk membuat Raspicam 2.1 bekerja untuk saya (saya berhasil menggunakan Rapicam 1.3 sebelum pembaruan); pembaruan memutakhirkan saya dari 4.1.7-v7+menjadi 4.9.25-v7+, yang membuat model yang lebih baru berfungsi. Mengubah dari GPIO_MEM=128menjadi GPIO_MEM=144tidak perlu bagi saya dalam kasus ini.
nh2
9

Saya memiliki masalah yang sama. Membandingkannya dengan sejumlah posting lain, jawaban yang paling mungkin adalah bahwa dua proses / aplikasi mencoba mengakses PiCam secara bersamaan. Ini bisa berupa streaming ffmpeg, gerakan, raspivid, raspistill, dll.

$ 0,02 saya

jujur
sumber
benar :)) kehilangan sejumlah waktu, saya lupa bahwa saya menginstal proses gerakan pada backend, mencegah untuk mengakses kamera
soField
2
Atau octoprint (seperti bagi saya)
Saran
Saya mencoba menjalankan kedua raspivid dan skrip python yang memanfaatkan picamera library. Mereka tidak bisa berlari bersama
Dante
Terima kasih banyak saya juga melakukan kesalahan yang sama tetapi posting lain membantu saya untuk memperbarui firmware saya, paket dist dll masalah masih ada sampai saya melakukan ini sudo service motion stop. Dan kamera mulai bekerja lagi.
Amit Ray
Hanya menawarkan situasi dan solusi saya juga. Saya telah mengimpor picameradalam skrip python, tetapi tidak berfungsi jadi saya memutuskan untuk menggunakan raspistillpanggilan baris perintah di dalam skrip. Saya tidak menghapus import picamerasehingga mengambil sumber daya kamera sebelum saya bisa menggunakannya raspistill.
Kimberly W
6

Baru-baru ini saya mengalami masalah yang sama dari kesalahan ENOSPEC. Dalam kasus saya, semua hal berjalan dengan sempurna sampai saya menempatkan kamera saya ke dalam perumahan PiCam. Saya menemukan rumah ini (bahkan jika diinginkan untuk PiCamera) mendorong chip sejauh konektor antara cam dan papan dilonggarkan. Mendorongnya kembali ke tempat telah menyelesaikan masalah saya. Mungkin tidak mudah untuk melihat apakah konektornya sudah terpasang dengan benar sehingga menyebabkan kesalahan interpretasi.

Saya kira ini tidak akan menjadi kasus biasa tetapi sebagai posting pertama menyarankan ini harus meningkatkan cataloge dari kemungkinan penyebab kesalahan ini.

B besar
sumber
2

Saya memiliki pesan kesalahan yang sama karena saya belum memperbarui firmware (via sudo rpi-update) setelah mengaktifkan kamera via raspi-config. Saya sudah memperbarui firmware beberapa hari sebelumnya dan saya pikir itu sudah cukup, tetapi karena kamera tidak diaktifkan saat itu, itu tidak membantu.

anol
sumber
2

Dalam kasus saya itu hanya karena saya belum me-reboot pi saya setelah memasang kamera.

Haydon Berrow
sumber
Jangan pernah memasang kamera ke pi saat sedang ditenagai!
Dmitry Grigoryev
1

Saya sudah mencoba dengan RASPBIAN STRETCH LITE terakhir (9.4 - 2018-06-27) dalam PI3B v1.2 dengan PI CAMERA 2.1, semuanya telah ditingkatkan sepenuhnya (apt-get upgrade)

Jika perintah ini tidak mendeteksi kamera dengan " terdeteksi = 1 " seperti ini:

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

Lalu ada masalah koneksi. Periksa apakah kabel kedua-duanya dengan sisi baik pada pin (dan tentu saja terhubung ke bus "kamera", bukan bus "layar" yang ukurannya sama).

(tentu saja, setelah mengaktifkan antarmuka kamera dengan raspi-config dan reboot)

Jika tidak berhasil, biasanya itu masalah perangkat keras dengan kamera dan opsi cepat adalah mengganti kamera dengan yang baru.

Jika terdeteksi = 1 tetapi ketika mencoba menggunakan raspistill menunjukkan pesan ini:

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

Kemudian koneksinya ok, tetapi masalahnya pasti adalah masalah perangkat keras dengan kamera dan Anda harus mengubah kamera untuk yang baru. Jangan buang waktu untuk menyelesaikannya karena ini adalah kamera yang rusak. Jika Anda mendapatkan yang baru, itu akan berhasil.

Albert Garcia
sumber
Bahkan kemudian Anda tidak dapat mengatakan bahwa kamera tidak berfungsi. Saya memiliki semua masalah ini dan ketika saya melakukan streaming langsung menggunakan http: // {my ip}: 8081 /? Action = stream, ia berfungsi. Ini berarti raspimjpeg sedang berlari. Ini paling mungkin terjadi ketika Anda memiliki satu proses atau lebih yang sudah menggunakan kamera karena terdeteksi = 1 berarti setidaknya ia dapat melakukan kontak dengan kamera.
Amit Ray
0

dalam kasus saya, saya harus menggunakan modprobe untuk membongkar driver: sudo modprobe -r bcm2835-v4l2

Kemudian LED merah pada kamera dimatikan, dan saya dapat menggunakan raspivid untuk mengaktifkan kembali kamera.

pengguna97662
sumber
0

Dalam kasus saya, saya perlu memasang kembali kabel pada kamera. Saya telah memutusnya untuk memberi makan kabel melalui case; itu pasti tidak membuat koneksi yang baik.

napertivo
sumber
0

Saya mendapatkan kesalahan itu pada AIY Vision Kit (Pi Zero W) saya karena saya lupa untuk menghentikan aplikasi demo kamera:

sudo systemctl stop joy_detection_demo
Navin
sumber
-1

Saya menyelesaikan masalah saya dengan chmod 666 / dev / video0

liderbug
sumber