Jami on Pinephone [ IM and VOIP ]
#1
Hello folks, if you're struggling to find a secure and free(as in freedom) software IM and VOIP client for Pinephone, this is suited for you. With latest changes it is currently possible to build jami client for the pinephone and have it in _usable_ state with nearly all features working out of box! To get familiar with Jami more, visit:
https://jami.net/

The above applies for jami-qt client (not the gnome one!) and Phosh

What works:
- importing account / registering
- sending messages
- receiving messages
- calling and receiving audio calls
- calling and receiving video calls*
- adding new contacts
- sending / receiving attachments

What doesn't work:
- *pinephone camera (e.g if you're on video call, you see the other side, but they don't see you) - UPDATE see thread and https://git.jami.net/savoirfairelinux/ja...issues/287
- ui is generally not scaled well (but not unusable) without scale-to-fit, but with scale-to-fit it's usable for daily driver (see https://git.jami.net/savoirfairelinux/ja...issues/257)
- squeekboard must be popped up / minimized manually when chatting (see https://git.jami.net/savoirfairelinux/ja...issues/281)
- there are relatively many small UI quirks which are more annoying than showstoppers
- the UI gets nearly unusable when screen rotation is performed (it's better to have it fixed in portrait when using Jami)
- the led indication for e.g new message, incoming/missed calls is not triggered at all
- there are no packages in any of the pinephone OS distributions, you have to build/compile on your own

Tested the compilation on:
- arch linux arm (latest updates) with Phosh

Screenshots:
see https://git.jami.net/savoirfairelinux/ri...note_26254

Steps to build / compile:
- see: https://git.jami.net/savoirfairelinux/jami-client-qt but iin my case it was:

Code:
git clone https://github.com/savoirfairelinux/ring-project.git
cd ring-project/
./make-ring.py --init
sudo ./make-ring.py --dependencies --qt
sudo pacman -S qt5-base qt5-svg make dbus-c++ qca qt5-quickcontrols2 qt5-webengine qt5-tools doxygen qrencode qt5-graphicaleffects qt5-quickcontrols qt5-wayland  autoconf automake
./make-ring.py --install --qt
scale-to-fit net.jami.jami-qt


then you launch it as per docu:
Code:
./make-ring.py --run --qt

Feel free to report any other observations / tweaks and or bugs!

Cheers
  Reply
#2
So I know what the problem with camera is

according to :
Code:
[alarm@danctnix ~]$ media-ctl --device /dev/media1 --print-topology
Media controller API version 5.10.13

Media device information
------------------------
driver          sun6i-csi
model           Allwinner Video Capture Device
serial         
bus info        platform:1cb0000.csi
hw revision     0x0
driver version  5.10.13

Device topology
- entity 1: sun6i-csi (1 pad, 2 links)
            type Node subtype V4L flags 0
            device node name /dev/video1
    pad0: Sink
        <- "ov5640 4-004c":0 [ENABLED]
        <- "gc2145 4-003c":0 []

- entity 5: ov5640 4-004c (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev0
    pad0: Source
        [fmt:UYVY8_2X8/640x480@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
        -> "sun6i-csi":0 [ENABLED]

- entity 7: gc2145 4-003c (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev1
    pad0: Source
        [fmt:UYVY8_2X8/1600x1200@1/10 field:none]
        -> "sun6i-csi":0 []

the camera it tries to use supports
Code:
640x480@1/30

but in Jami, if you go to Audio and Video settings it picks up "sun6i-csi" as Device but the Resolution is set to "1280x720" and cannot be changed. Therefore I see this in dmesg:
Code:
[ 1442.649326] ov5640 4-004c: firmware upload success
[ 1442.956426] ov5640 4-004c: uploaded firmware didn't start, got to 0x7f, retrying...
[ 1443.269030] ov5640 4-004c: uploaded firmware didn't start, got to 0x7f
[ 1443.275662] ov5640 4-004c: ov5640_set_ctrl_focus: no autofocus firmware loaded
[ 1443.364636] sun6i-csi 1cb0000.csi: Wrong width or height 1280x720 (640x480 expected)

RIght now I don't know where Jami takes this resolution from.  Trying to change manually the /home/alarm/.config/jami/dring.yml where following section is:
Code:
video:
  recordPreview: true
  recordQuality: 0
  decodingAccelerated: true
  encodingAccelerated: true
  conferenceResolution: 1280x720
  devices:
    - name: sun6i-csi
      id: /dev/video1
      input: /dev/video1
      video_size: 1280x720
      channel: camera
      framerate: 25.000000

leads to no effect and is overwritten each time I access settings. (making it not writable made it not to be overwritten but made no change). I guess I will fire up another issue in jami-qt gitlab.

So according to https://linux-sunxi.org/CSI#Media_bus_an...re_formats

the OV5640 doesn't even support 1280x720, it supports:
2592*1936@5fps
2048*1536@5fps
1600*1200@5fps
1280*960@5fps
1024*768@5fps
1920*1080@30fps
1280*720@30fps
640*480@30fps

I've tried to change it but I get Invalid argument error

Code:
[alarm@danctnix jami-daemon-git]$ sudo media-ctl --set-v4l2 '"ov5640 4-004c":0[fmt:UYVY8_2X8/1280x720@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]'
Unable to setup formats: Invalid argument (22)

even with supported resolution

Code:
[alarm@danctnix jami-daemon-git]$ sudo media-ctl --set-v4l2 '"ov5640 4-004c":0[fmt:UYVY8_2X8/1920x1080@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]'
Unable to setup formats: Invalid argument (22)
  Reply
#3
So I managed to get the back camera working in Jami settings preview and it also works in video call, thanks to 
https://forum.pine64.org/showthread.php?tid=9267

Since Jami enforces (issue on git to be fired) 1280x720 and by default back camera is used, following does the trick (ensure jami is not running):
Code:
media-ctl -d /dev/media1 --set-v4l2 '"ov5640 4-004c":0[fmt:UYVY8_2X8/1280x720]'

Afterwards as soon as Jami is started the back camera works, there are some problems though:
1) the CPU utilization on video call with working camera is very high (it's not the case when PP camera is not working but you see the other side so I guess it's not HW accelerated).
2) The thing you need to identify manually is
Code:
"ov5640 4-004c"
which you can get from
Code:
media-ctl -d /dev/media1 -p

=====================================================================================
I have tried to get it working with front camera, for that I did switch cameras via media-ctl
from:
Code:
        <- "ov5640 4-004c":0 [ENABLED]
        <- "gc2145 4-003c":0 []
to
Code:
        <- "ov5640 4-004c":0 []
        <- "gc2145 4-003c":0 [ENABLED]

by running
Code:
media-ctl -d /dev/media1 -l '"ov5640 4-004c":0->"sun6i-csi":0[0]'
media-ctl -d /dev/media1 -l '"gc2145 4-003c":0->"sun6i-csi":0[1]'


since gc2145 is the front camera. Unfortunately I cannot really find what the specs/supported resolutions for it are. I couldn't make it working in Jami, I guess that in Arch Linux ARM for PP even the drivers for it are missing, since I noticed this:
Code:
[ 1300.385100] sun6i-csi 1cb0000.csi: Direct firmware load for gc2145-init.bin failed with error -2
[ 1300.385110] gc2145 4-003c: Failed to read firmware gc2145-init.bin, continuing anyway..

but at least something Tongue
  Reply
#4
Very nice, thank you! Jami is among my favourite messagers for personal use, since it's P2P yet works remarkably reliably. I don't need the camera often so this is great - hopefully the UI annoyances shouldn't be hard to fix, and hopefully upstream takes notice, so we can have a downright pleasant in the not too distant future.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  PureOS on Pinephone dukla2000 85 52,150 06-11-2021, 06:19 AM
Last Post: Nooblife
  Slarm64 on PinePhone [Unofficial Slackware ARM - 64 bit] acid andy 10 2,610 06-09-2021, 07:27 AM
Last Post: acid andy
  Amazfish on Pinephone pagesix1536 6 1,002 06-04-2021, 11:05 AM
Last Post: pagesix1536
Brick VR apps for the Pinephone (Google Cardboard) MirceaKitsune 0 121 05-30-2021, 10:45 AM
Last Post: MirceaKitsune
  pinephone oses and qemu emulation streak 0 166 05-20-2021, 07:00 AM
Last Post: streak
  Pine Phone Desktop Mode or "Standard" Gnome Desktop on PinePhone? 4920441 4 798 05-11-2021, 02:42 AM
Last Post: wizmart
  Fedora + Phosh for PinePhone njha 55 34,169 05-10-2021, 03:56 AM
Last Post: wizmart
  Adafruit Pyloton Open Source Bike computer on the PinePhone? Peter Gamma 0 362 04-02-2021, 06:37 PM
Last Post: Peter Gamma
  openSUSE for Pinephone Alefnode 68 31,684 03-21-2021, 11:43 AM
Last Post: andresbs
  freeglut3 on the PinePhone Samuel Venable 1 500 03-10-2021, 03:06 PM
Last Post: nas

Forum Jump:


Users browsing this thread: 1 Guest(s)