Skocz do zawartości
wszymulanski

Problem z kamerą Raspberry Pi Camera HD v2 8MPx na Raspberry Pi 3B+

Pomocna odpowiedź

Cześć,

kupiłem w Botland:

1) Raspberry Pi 3B+

oraz:

2) oryginalną kamerkę Raspberry Pi Camera HD v2 8MPx

mając nadzieje, że bezproblemowo uda mi się uruchomić kamerkę na malince, okazało się, że nic bardziej mylnego. Zainstalowałem najnowszego Raspbina, włączyłem kamerkę, a nagrywanie nie działa?!

Zarówno Komenda:

$ raspivid -o -

jak i komenda:

$ raspistill -o -

zwracają te same komunikaty o błędach:

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

Przeczytałem tuzin artykułów próbujących rozwiązać ten problem, ale żaden nie okazał się pomocny.

Na sam początek polecano sprawdzić czy system wykrywa kamerkę:

$ vcgencmd get_camera
supported=1 detected=1

więc wykrywa. Potem polecono zwiększyć pamięć GPU z 128 MB (domyślna) do 256 MB co zrobiłem, poniżej sprawdzenie:

$ vcgencmd get_mem gpu
gpu=256M

ale kamerka wciąż nie działa. W końcu zaktualizowałem system (czyli paczki):

$ uname -a
Linux raspberrypi 4.19.80-v7+ #1274 SMP Mon Oct 21 16:23:10 BST 2019 armv7l GNU/Linux

a potem firmware za pomocą komendy:

# sudo rpi-update

co również nie przyniosło żadnej poprawy.

Dlatego podejrzewam, że:

1) kamerka jest zepsuta, ale to jest nówka kupiona w Botland?

2) taśma łącząca kamerę z RPi jest zepsuta, ale to też nówka z Botland

3) jakiś nieznany proces cały czas korzysta z kamery

W niektórych artykułach pisano, że z kamery może korzystać w danej chwili tylko jeden proces. Zazwyczaj ludzie orientowali się, że mają włączonego jakiegoś demona co korzysta z kamery i po wyłączeniu tego demona, od razu mogli korzystać z kamerki (raspivid & raspistill). Wyświetliłem drzewko procesów pracujących w Raspbianie, ale nie byłem w stanie dostrzec ani jednego procesu, który z nawy wskazywałby, że może korzystać z kamerki. Przypomnę, że to jest świeża instalacja Raspbiana, więc nie instalowałem tam żadnych demonów do kamery.

Poniżej wrzucam listing procesów:

$ pstre -p

systemd(1)-+-alsactl(333)
           |-avahi-daemon(354)---avahi-daemon(388)
           |-bluealsa(721)-+-{bluealsa}(726)
           |               `-{bluealsa}(727)
           |-bluetoothd(711)
           |-cron(336)
           |-dbus-daemon(372)
           |-dhcpcd(400)
           |-hciattach(706)
           |-lightdm(453)-+-Xorg(480)-+-{Xorg}(494)
           |              |           |-{Xorg}(495)
           |              |           |-{Xorg}(496)
           |              |           |-{Xorg}(497)
           |              |           `-{Xorg}(500)
           |              |-lightdm(506)-+-lxsession(528)-+-lxpanel(594)-+-lxterminal(848)-+-bash(858)---sudo(863)---su(868)---bash+
           |              |              |                |              |                 |-bash(883)
           |              |              |                |              |                 |-{lxterminal}(849)
           |              |              |                |              |                 |-{lxterminal}(850)
           |              |              |                |              |                 |-{lxterminal}(851)
           |              |              |                |              |                 |-{lxterminal}(852)
           |              |              |                |              |                 |-{lxterminal}(856)
           |              |              |                |              |                 `-{lxterminal}(857)
           |              |              |                |              |-{lxpanel}(625)
           |              |              |                |              |-{lxpanel}(626)
           |              |              |                |              `-{lxpanel}(801)
           |              |              |                |-lxpolkit(591)-+-{lxpolkit}(606)
           |              |              |                |               `-{lxpolkit}(607)
           |              |              |                |-openbox(586)
           |              |              |                |-pcmanfm(596)-+-{pcmanfm}(622)
           |              |              |                |              `-{pcmanfm}(623)
           |              |              |                |-ssh-agent(561)
           |              |              |                |-{lxsession}(569)
           |              |              |                `-{lxsession}(570)
           |              |              |-{lightdm}(509)
           |              |              `-{lightdm}(510)
           |              |-{lightdm}(466)
           |              `-{lightdm}(469)
           |-login(481)---bash(646)
           |-menu-cached(715)-+-{menu-cached}(717)
           |                  `-{menu-cached}(718)
           |-mount.ntfs(829)
           |-mount.ntfs(843)
           |-polkitd(442)-+-{polkitd}(445)
           |              `-{polkitd}(448)
           |-rngd(346)-+-{rngd}(348)
           |           |-{rngd}(349)
           |           `-{rngd}(350)
           |-rsyslogd(362)-+-{rsyslogd}(404)
           |               |-{rsyslogd}(405)
           |               `-{rsyslogd}(406)
           |-ssh-agent(603)
           |-systemd(514)-+-(sd-pam)(517)
           |              |-dbus-daemon(537)
           |              |-gvfs-afc-volume(735)-+-{gvfs-afc-volume}(736)
           |              |                      |-{gvfs-afc-volume}(737)
           |              |                      `-{gvfs-afc-volume}(739)
           |              |-gvfs-goa-volume(750)-+-{gvfs-goa-volume}(751)
           |              |                      `-{gvfs-goa-volume}(752)
           |              |-gvfs-gphoto2-vo(740)-+-{gvfs-gphoto2-vo}(741)
           |              |                      `-{gvfs-gphoto2-vo}(743)
           |              |-gvfs-mtp-volume(744)-+-{gvfs-mtp-volume}(747)
           |              |                      `-{gvfs-mtp-volume}(749)
           |              |-gvfs-udisks2-vo(731)-+-{gvfs-udisks2-vo}(732)
           |              |                      `-{gvfs-udisks2-vo}(733)
           |              |-gvfsd(571)-+-gvfsd-trash(799)-+-{gvfsd-trash}(803)
           |              |            |                  `-{gvfsd-trash}(804)
           |              |            |-{gvfsd}(572)
           |              |            `-{gvfsd}(573)
           |              |-gvfsd-fuse(576)-+-{gvfsd-fuse}(587)
           |              |                 |-{gvfsd-fuse}(588)
           |              |                 |-{gvfsd-fuse}(589)
           |              |                 |-{gvfsd-fuse}(592)
           |              |                 `-{gvfsd-fuse}(598)
           |              `-gvfsd-metadata(835)-+-{gvfsd-metadata}(837)
           |                                    `-{gvfsd-metadata}(838)
           |-systemd-journal(125)
           |-systemd-logind(326)
           |-systemd-timesyn(288)---{systemd-timesyn}(325)
           |-systemd-udevd(146)
           |-thd(371)
           |-udisksd(343)-+-{udisksd}(407)
           |              |-{udisksd}(435)
           |              |-{udisksd}(482)
           |              `-{udisksd}(492)
           |-wpa_supplicant(377)
           `-wpa_supplicant(455)

Na sam koniec rzuciłem jeszcze okiem w logi kernela szukając informacji dotyczących kamery (szukałem ciągu znaków vid), znalazłem tylko takie wpisy świadczące raczej o tym, że kamera została wykryta:

dmesg | grep -i vid
[    5.213247] videodev: Linux video capture interface: v2.00
...
[    5.213247] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    5.882880] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    5.888860] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    5.889013] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    5.898020] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    5.898082] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    5.899817] bcm2835-v4l2: scene mode selected 0, was 0
[    5.900240] bcm2835-v4l2: V4L2 device registered as video0 - stills mode > 1280x720
[    5.905487] bcm2835-v4l2: Broadcom 2835 MMAL video capture ver 0.0.2 loaded.

Proszę bardziej doświadczonych kolegów o pomoc w uruchomieniu kamerki, bo jedyne co mi teraz przychodzi do głowy to zgłosić reklamacje kamerki do Botland.

Pozdrawiam,
Wojciech

Udostępnij ten post


Link to post
Share on other sites

Niestety programy raspivid i raspistill nie mogą w ogóle dostać się do kamery tak jak opisałem to w pierwszej wiadomości.

Jeśli jest jakiś inny sposób robienia zdjęć, to proszę podać konkretną komendę żeby mógł ją wypróbować.

Udostępnij ten post


Link to post
Share on other sites

@wszymulanski czasami zdarzają się na forum tematy dotyczące problemów z tą kamerą. W 99% przypadków wina leży w złym podłączeniu (np. odwrotne wpięcie taśmy). Pamiętam dosłownie 1-2 przypadki, gdy faktycznie uszkodzony był moduł kamery. Jeśli masz pewność, że kamera jest podłączona poprawnie (taśma w dobrą stronę) to reklamuj kamerę, bo tam nie ma cudów - musi działać 😉 Możesz ewentualnie zapytać jeszcze sprzedawcę, może serwis coś na to zdalnie zaradzi, ale raczej wątpię, bo to powinno działać bez żadnych dodatkowych zabiegów.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

> W 99% przypadków wina leży w złym podłączeniu (np. odwrotne wpięcie taśmy).

Wpinając taśmę zwróciłem uwagę aby kontakty w złączu CSI i na taśmie stykały się, analogicznie podłączona jest taśma do złącza na kamerce - wiadomo kontakt misi być.

Na wszelki wypadek załączam zdjęcie.

 

Problem_kamera_RPi.jpg

Edytowano przez wszymulanski

Udostępnij ten post


Link to post
Share on other sites

@wszymulanski potwierdzam, według mnie podłączenie też jest poprawne 🙂

Udostępnij ten post


Link to post
Share on other sites

Dzisiaj udało mi się ostatecznie ustalić gdzie leży problem z kamerą.
Pożyczyłem od kolegi działające RPi, kamerę i taśmę. Sprawdziłem ich działanie w różnych konfiguracjach.
Okazało się, że tylko kamera sprawia problem, reszta elementów działa poprawnie.
Dlatego przyjrzałem się dokładnie wadliwej kamerze i działającej kamerze (pożyczonej od kolegi), zauważyłem różnice w elemencie SMD oznaczonym jako X1. W działające kamerze jest to srebrny element, a w wadliwej czarna kostka.
Podejrzewam, że maszyna składająca wadliwą kamerę miała założoną taśmę z niewłaściwymi elementami SMD i wlutowała mi jakiś badziew zamiast poprawnego elementu.
Szkoda tylko, że tak oczywistej wady nie wyłapał Chiński QA, na etapie inspekcji wizualnej, czy po podłączeniu jej do RPi i sprawdzeniu obrazu.
Do niniejszego posta dołączam zdjęcie, na którym oznaczyłem element X1.
 

RPi_camera_problem_good_vs_broken.jpg

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

X1 to prawdopodobnie rezonator. Czarny i srebrny spokojnie mogą być swoimi odpowiednikami.

Nie doszukiwałbym się tutaj problemów, tzn, że Chińczyk pomylił taśmy. Prędzej kamera uległa uszkodzeniu z powodu elektrostatyki. Pewnie sprzętu ESD nie używałeś przy pracy (opaski uziemiające itp.) Powód uszkodzenia może być i tak zupełnie inny...

Edytowano przez Zealota
  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...