Categories
Uncategorized

Black image with skype for linux on macbook and ubuntu

This kernel module enables the macbook webcam on linux.

On my Ubuntu 20.04 Gnome Cheese works perfectly with the webcam. Skype for linux works also but the video shows the “facetimehd” camera name with a black image.

The problem is the way Chromium (yes skype for linux relies on chromium…) handles the camera resolution, for more technical info see here: https://github.com/patjak/bcwc_pcie/issues/123

This fork of the original kernel module solves the issue and adds a “switch” to enable correct handling of webcam resolution.

  • Install the driver
sudo apt-get install git
sudo apt-get install curl xz-utils cpio
git clone https://github.com/patjak/facetimehd-firmware.git
cd facetimehd-firmware
make
sudo make install
cd ..
sudo apt-get install kmod libssl-dev checkinstall
git clone https://github.com/apunto13/bcwc_pcie.git
cd bcwc_pcie
make
sudo make install
sudo depmod
sudo modprobe -r bdc_pci
sudo modprobe facetimehd

At this stage Cheese can use the camera but not Skype.

sudo nano /etc/modules

Add facetimehd on a new line and close the file

  • To enable this workaround pass the module parameter "enable_chromium_workaround" when loading the module
  • Permanent activation on Ubuntu 20.04
sudo nano /etc/modprobe.d/facetimehd.conf

Add options facetimehd enable_chromium_workaround=1 and close the file.

  • Apply the new setting
sudo rmmod facetimehd
sudo modprobe facetimehd

After this, Skype will correctly display the camera image but not cheese.
you can always revert back by setting the option enable_chromium_workaround to 0

Thanks a lot to all people who worked on this.

As a additional note, you can find latest debian packages here: https://repo.skype.com/deb/pool/main/s/skypeforlinux/

Resources:

https://askubuntu.com/questions/990218/camera-not-working-on-macbook-pro
https://github.com/patjak/bcwc_pcie
https://github.com/apunto13/bcwc_pcie

Categories
Uncategorized

Jitsi private video conferencing on synology NAS

In these days of physical isolation I wanted to spend my free time to check and implement a videoconferencing solution for my private use.

After googling I found Jitsi and in few minutes I was able to setup a test environment on my computer using docker.

I wanted to implement this on my Synology NAS (DS918) using docker containers. All explanations below are coming from the Jitsi github page, with a little customization to fit my needs.

I assume that you are familiar with docker, SSH access & certificate installation/request.

You need to download the file https://github.com/jitsi/docker-jitsi-meet/archive/master.zip

Upload and extract on your NAS the content of the zip file. In my installation it is the folder /volume1/docker

Open an SSH console to your NAS

Go to the folder you just created it will be something like:

cd /volume1/docker/docker-jitsi-meet-master

Copy the environment file:

cp env.example .env

Set strong passwords:

./gen-passwords.sh

Create a folder where to store the configuration files:

mkdir /volume1/docker/docker-jitsi-config/

mkdir -p /volume1/docker/docker-jitsi-config/{web/letsencrypt,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}

Edit the .env file and change the line CONFIG=~/.jitsi-meet-cfg to CONFIG=/volume1/docker/docker-jitsi-config

Enable authentication, guest access and internal authentication:

ENABLE_AUTH=1

ENABLE_GUESTS=1

AUTH_TYPE=internal

Customize the lines related to your environment and the docker host IP (your NAS interface). I use afraid DNS route my personal domain to my NAS public IP.

PUBLIC_URL=https://meet.mydomain.com

DOCKER_HOST_ADDRESS=192.168.X.X

You can now create and run the docker containers:

docker-compose up -d

To protect access to your meeting solution connect to the prosody container:

docker exec -it docker-jitsi-meet-master_prosody_1 /bin/bash

and create register your user:
prosodyctl --config /config/prosody.cfg.lua register TheDesiredUsername meet.jitsi TheDesiredPassword

You can use the Synology NAS reverse proxy to redirect your domain HTTPS to your container on port 8443 (Application Portal > Reverse Proxy > Create). This is mandatory to have a fully working solution. (avoiding problem with video content)

You need also to generate a certificate and install it on your NAS (Security > Certificates > Create)

I use a letsencrypt certificate but you can also import one.

Configure the certificate to be presented for meet.mydomain.com (Security > Certificates > Configure)

After completing these steps you should have a working private videoconferencing solution, with authenticated host and guest access activated on your Synology NAS.

9 Sept. 2020 – Edited after Mchl Grdlv comments.