How to use raspberry pi camera module in Manjaro ARM?

Hi

I'm using Rapsberry Pi 4 Model B (4GB) with Manjaro ARM very well. I love its software and simplicity.

I have one problem. I have a Raspberry Pi Camera Module but I don't know how should I make it to works in Manjaro ARM. (It worked in Raspbian, the official OS for raspberry pi.)

This is my Camera Module.
https://projects.raspberrypi.org/en/projects/getting-started-with-picamera

And also, is there any way to use microphone in Raspberry Pi Manjaro?

BTW my question is

  1. How to enable Rpi Camera in Manjaro?
  2. Is there any working microphone products for Rpi with Manjaro?

Please help me!

I'm also interested in this topic.

I read somewhere, there is no pre-compiled version of raspistill and raspivid for an 64bit OS.
So I tried to compile the RpiUserland, but I'm getting an error:
/opt/vc/bin/raspivid: error while loading shared libraries: libmmal_core.so: cannot open shared object file: No such file or directory

The steps, to get the cam working are generally described here: https://archlinuxarm.org/wiki/Raspberry_Pi

Any help or tips are highly appreciated.

Best Regards - Green
`

I do not have a camera so I can not test anything involving it. I have built a package and pushed it to the unstable branch For the new pi4 MSD boot to work by flashing the eeprom that has those commands in it and they seem to run. Here I typed just the command and the help came up.

You might see if it works for you and if you do get things going post your steps here for others to use:

Change to the unstable branch and install the package with:

sudo pacman -S raspberrypi-userland-aarch64-git

When done switch back to the stable branch if that was what you were on.

The package should make your system aware of the path /opt/vc/bin after a reboot but you can open up a terminal and run your commands by exporting it first in the terminal with out reboot:

export PATH=/opt/vc/bin:$PATH

The run the raspistill or raspivd commands and see if they work for you.

Just be aware that not all commands are not in this 64bit package and the ones that are may not work properly like on the 32 bit os as some things have not or can not be ported over as yet.

1 Like

Hello,
@Darksky Thank you for your time.
Now I had the time to try it :sweat_smile:
Sadly I don't got it to take pictures at the moment.

╭─pi@Pi4 ~ 
╰─$ uname -a
Linux Pi4 4.19.122-1-MANJARO-ARM #1 SMP PREEMPT Mon May 11 14:20:27 CDT 2020 aarch64 GNU/Linux

╭─pi@Pi4 ~ 
╰─$ raspistill    

"raspistill" Camera App (commit 291f9cb826d5 Tainted)

Runs camera for specific time, and take JPG capture at end if requested

usage: raspistill [options]

Image parameter commands

-q, --quality   : Set jpeg quality <0 to 100>
-r, --raw       : Add raw bayer data to jpeg metadata
-l, --latest    : Link latest complete image to filename <filename>
-t, --timeout   : Time (in ms) before takes picture and shuts down (if not specified, set to 5s)
-th, --thumb    : Set thumbnail parameters (x:y:quality) or none
-d, --demo      : Run a demo mode (cycle through range of camera options, no capture)
-e, --encoding  : Encoding to use for output file (jpg, bmp, gif, png)
-x, --exif      : EXIF tag to apply to captures (format as 'key=value') or none
-tl, --timelapse        : Timelapse mode. Takes a picture every <t>ms. %d == frame number (Try: -o img_%04d.jpg)
-fp, --fullpreview      : Run the preview using the still capture resolution (may reduce preview fps)
-k, --keypress  : Wait between captures for a ENTER, X then ENTER to exit
-s, --signal    : Wait between captures for a SIGUSR1 or SIGUSR2 from another process
-g, --gl        : Draw preview to texture instead of using video render component
-gc, --glcapture        : Capture the GL frame-buffer instead of the camera image
-bm, --burst    : Enable 'burst capture mode'
-dt, --datetime : Replace output pattern (%d) with DateTime (MonthDayHourMinSec)
-ts, --timestamp        : Replace output pattern (%d) with unix timestamp (seconds since 1970)
-fs, --framestart       : Starting frame number in output pattern(%d)
-rs, --restart  : JPEG Restart interval (default of 0 for none)

GL parameter commands

-gs, --glscene  : GL scene square,teapot,mirror,yuv,sobel,vcsm_square
-gw, --glwin    : GL window settings <'x,y,w,h'>

Common Settings commands

-?, --help      : This help information
-w, --width     : Set image width <size>
-h, --height    : Set image height <size>
-o, --output    : Output filename <filename> (to write to stdout, use '-o -'). If not specified, no file is saved
-v, --verbose   : Output verbose information during run
-cs, --camselect        : Select camera <number>. Default 0
-md, --mode     : Force sensor mode. 0=auto. See docs for other modes available
-gps, --gpsdexif        : Apply real-time GPS information to output (e.g. EXIF in JPG, annotation in video (requires libgps.so.23)

Preview parameter commands

-p, --preview   : Preview window settings <'x,y,w,h'>
-f, --fullscreen        : Fullscreen preview mode
-op, --opacity  : Preview window opacity (0-255)
-n, --nopreview : Do not display a preview window
-dn, --dispnum  : Display on which to display the preview window (dispmanx/tvservice numbering)

Image parameter commands

-sh, --sharpness        : Set image sharpness (-100 to 100)
-co, --contrast : Set image contrast (-100 to 100)
-br, --brightness       : Set image brightness (0 to 100)
-sa, --saturation       : Set image saturation (-100 to 100)
-ISO, --ISO     : Set capture ISO
-vs, --vstab    : Turn on video stabilisation
-ev, --ev       : Set EV compensation - steps of 1/6 stop
-ex, --exposure : Set exposure mode (see Notes)
-fli, --flicker : Set flicker avoid mode (see Notes)
-awb, --awb     : Set AWB mode (see Notes)
-ifx, --imxfx   : Set image effect (see Notes)
-cfx, --colfx   : Set colour effect (U:V)
-mm, --metering : Set metering mode (see Notes)
-rot, --rotation        : Set image rotation (0-359)
-hf, --hflip    : Set horizontal flip
-vf, --vflip    : Set vertical flip
-roi, --roi     : Set region of interest (x,y,w,d as normalised coordinates [0.0-1.0])
-ss, --shutter  : Set shutter speed in microseconds
-awbg, --awbgains       : Set AWB gains - AWB mode must be off
-drc, --drc     : Set DRC Level (see Notes)
-st, --stats    : Force recomputation of statistics on stills capture pass
-a, --annotate  : Enable/Set annotate flags or text
-3d, --stereo   : Select stereoscopic mode
-dec, --decimate        : Half width/height of stereo image
-3dswap, --3dswap       : Swap camera order for stereoscopic
-ae, --annotateex       : Set extra annotation parameters (text size, text colour(hex YUV), bg colour(hex YUV), justify, x, y)
-ag, --analoggain       : Set the analog gain (floating point)
-dg, --digitalgain      : Set the digital gain (floating point)
-set, --settings        : Retrieve camera settings and write to stdout
-fw, --focus    : Draw a window with the focus FoM value on the image.


Notes

Exposure mode options :
off,auto,night,nightpreview,backlight,spotlight,sports,snow,beach,verylong,fixedfps,antishake,fireworks

Flicker avoid mode options :
off,auto,50hz,60hz

AWB mode options :
off,auto,sun,cloud,shade,tungsten,fluorescent,incandescent,flash,horizon,greyworld

Image Effect mode options :
none,negative,solarise,sketch,denoise,emboss,oilpaint,hatch,gpen,pastel,watercolour,film,blur,saturation,colourswap,washedout,posterise,colourpoint,colourbalance,cartoon

Metering Mode options :
average,spot,backlit,matrix

Dynamic Range Compression (DRC) options :
off,low,med,high

╭─pi@Pi4 ~ 
╰─$ raspistill -d 
                                                                                                                                                                              
mmal: Cannot read camera info, keeping the defaults for OV5647
mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)
mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)
mmal: Failed to create camera component
mmal: main: Failed to create camera component
mmal: Camera is not enabled in this build. Try running "sudo raspi-config" and ensure that "camera" has been enabled                                                                                                                                                                                           

Well ok I'm dump :see_no_evil:
I installed raspi-config from AUR, activated the cam there and now it works :slight_smile:

1 Like

I am glad you got it working. Could you post your /boot/config.txt and see what raspi-config changed. I am thinking just adding some lines in config.txt will enable the camera. Something along these lines:

gpu_mem=512
disable_camera_led=1
start_file=start4x.elf
fixup_file=fixup4x.dat

Sure :slight_smile:

# See /boot/overlays/README for all available options

gpu_mem=128 start_file=start_x.elf fixup_file=fixup_x.dat # I changed this line manually
initramfs initramfs-linux.img followkernel
kernel=kernel8.img
arm_64bit=1
enable_gic=1
disable_overscan=1

#enable sound
dtparam=audio=on
hdmi_drive=2

#enable vc4
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
start_x=1

Thanks. Supposedly this should enable v4l2 on the pi4. I have no camera to test and really do not know what advantage the v4l2 addition adds but with my limited knowledge on it there seems to be some sort of hardware level decoding that the pi people are moving to. You may want to test if you know anything about it.

gpu_mem=512
start_file=start4x.elf
fixup_file=fixup4x.dat

Thank you. Now I have something to read about :slight_smile:
It works with v4l2 too.
Another small thing I noticed, the cam LED seem to be disabled by default. And I don't get it to light up :sweat_smile:

I can provide some tests if you want.

1 Like

Please as I do not have a camera to test and it will be helpfull for others here to get started if you document things.

Is there not some sort of donations page for Manjaro ARM to fund hardware purchases for Devs?

Forum kindly sponsored by