Setup Bigscreen

I switched from the Ubuntu/Neon KDE BigScreen install to Manjaro in order to get Chromium Media Edition running on a Raspberry Pi 4 as I don’t want to get BigScreen running Raspbian. Since the Manjaro repos have BigScreen for install, I’ve concluded Manjaro is a much better route. :slight_smile:

I’m attempting to replicate the behavior of the BigScreen ISO (e.g., login without password).

I’ve installed the plasma-bigscreen and libcec packages, but I have not been able to get the bigscreen wayland DE to show more than a black screen and mouse cursor.

Has anyone gone through this installation or able to point me in the right direction?

EDIT: I had some success with launching plasmashell & through krunner, which got me to the desktop with the appropriate layout, but software like Chromium and Firefox would not launch; konsole would launch. I tried deleting the KDE configs in ~/.kde4 and ~/.config/k* but this did not seem to help. A scan of ps faux shows a plasma-bigscreen-wayland session that likely has crashed in addition to the plasmahsell & I manually started. I would assume this is part of the issue with the software failing to launch. Switching to the plasma-wayland DE enabled me to launch software.

I also noticed that making changes to the Plasma settings in BigScreen would not save; this appears to be caused by a need for sudo authorization, but no auth dialog appears to permit the changes made. I was attempting to change my session from bigscreen to plasma-wayland but this failed to stick/apply.

What was further interesting is that my session said I was logging into BigScreen at the SDDM login, but autologin kept reporting Kodi as the default login. I’m not sure if I broke something here, but I have not been able to autologin since monkeying with this. Modifying the SDDM config directly may have been the cause, but reverting the change has not restored autologin functionality.

I thought I’d follow up on this. I’ve since switched my Rapsberry Pi 4 to an x64 mini PC running Manjaro. My assumption is that most of what I share here will apply to the RPi4 as well.

A maintainer of the AUR packages for bigscreen shared the following steps to get bigscreen at least loading and not presenting a black screen. (I’ve paraphrased his comment’s contents and modified the first command for Manjaro. You need the AUR enabled, obviously. See also his follow-up comment.)

  1. pamac install plasma-settings-git
  2. Add the contents of overlays/bigscreen/etc/xdg · master · Plasma Bigscreen / Plasma Bigscreen Raspberry Pi4 DebOS image · GitLab to /home/$USER/.config/
  3. Add the following to the user’s .bash_profile
export PLASMA_PLATFORM=mediacenter
export QT_FILE_SELECTORS=mediacenter

As he says:

You can now launch by [logging] in with $USER from sddm by running Plasma-X11 or Plasma-Wayland but not Plasma-Bigscreen-Wayland

These changes have caused bigscreen to load the DE for me (no more black screen!), but the AUR user kihanos, who provided these changes and helps maintain bigscreen, said:

So, I finally got it to run as expected without Mycroft nor CEC support. Things are more complicated than I thought.


I have tried to tackle some CEC stuff, and here’s where I’m at:

This link overlays/bigscreen/etc/skel/.config/autostart-scripts · master · Plasma Bigscreen / Plasma Bigscreen Raspberry Pi4 DebOS image · GitLab provides some necessary setup steps for bigscreen to run automagically.

I ran:

group add uniput
usermod -a -G $USER uinput
mkdir /home/$USER/.config/autostart-scripts
git cone https://invent.kde.org/plasma-bigscreen/bigscreen-debos-image-rpi4.git /home/$USER/.bigscreen
cp /home/$USER/.config{,.bak}
rsync -avhP /home/$USER/.bigscreen/ /home/$USER/.config/
pip3 install wheel
pip3 install python-uinput
pip3 install cec

But the final pip3 command errors with the following:

pip3 install cec error
pip3 install cec
Collecting cec
  Using cached cec-0.2.7.tar.gz (17 kB)
Building wheels for collected packages: cec
  Building wheel for cec (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-q7h2n68i/cec_d416155d195c4ae38dd258508c5fbbc5/setup.py'"'"'; __file__='"'"'/tmp/pip-install-q7h2n68i/cec_d416155d195c4ae38dd258508c5fbbc5/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-k5p76j95
       cwd: /tmp/pip-install-q7h2n68i/cec_d416155d195c4ae38dd258508c5fbbc5/
  Complete output (35 lines):
  running bdist_wheel
  running build
  running build_ext
  building 'cec' extension
  creating build
  creating build/temp.linux-x86_64-3.9
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -Iinclude -I/usr/include/python3.9 -c cec.cpp -o build/temp.linux-x86_64-3.9/cec.o
  cec.cpp: In function ‘PyObject* can_persist_config(PyObject*, PyObject*)’:
  cec.cpp:615:32: error: ‘class CEC::ICECAdapter’ has no member named ‘CanPersistConfiguration’; did you mean ‘CanSaveConfiguration’?
    615 |       RETURN_BOOL(CEC_adapter->CanPersistConfiguration());
        |                                ^~~~~~~~~~~~~~~~~~~~~~~
  cec.cpp:121:13: note: in definition of macro ‘RETURN_BOOL’
    121 |   result = (arg); \
        |             ^~~
  cec.cpp: In function ‘PyObject* persist_config(PyObject*, PyObject*)’:
  cec.cpp:622:26: error: ‘class CEC::ICECAdapter’ has no member named ‘CanPersistConfiguration’; did you mean ‘CanSaveConfiguration’?
    622 |       if( ! CEC_adapter->CanPersistConfiguration() ) {
        |                          ^~~~~~~~~~~~~~~~~~~~~~~
        |                          CanSaveConfiguration
  cec.cpp:632:32: error: ‘class CEC::ICECAdapter’ has no member named ‘PersistConfiguration’; did you mean ‘SetConfiguration’?
    632 |       RETURN_BOOL(CEC_adapter->PersistConfiguration(&config));
        |                                ^~~~~~~~~~~~~~~~~~~~
  cec.cpp:121:13: note: in definition of macro ‘RETURN_BOOL’
    121 |   result = (arg); \
        |             ^~~
  cec.cpp: In function ‘PyObject* PyInit_cec()’:
  cec.cpp:884:22: warning: ‘void PyEval_InitThreads()’ is deprecated [-Wdeprecated-declarations]
    884 |    PyEval_InitThreads();
        |    ~~~~~~~~~~~~~~~~~~^~
  In file included from /usr/include/python3.9/Python.h:154,
                   from cec.cpp:29:
  /usr/include/python3.9/ceval.h:130:37: note: declared here
    130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
        |                                     ^~~~~~~~~~~~~~~~~~
  error: command '/usr/bin/gcc' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for cec
  Running setup.py clean for cec
Failed to build cec
Installing collected packages: cec
    Running setup.py install for cec ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-q7h2n68i/cec_d416155d195c4ae38dd258508c5fbbc5/setup.py'"'"'; __file__='"'"'/tmp/pip-install-q7h2n68i/cec_d416155d195c4ae38dd258508c5fbbc5/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-qb1e9z74/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/cec
         cwd: /tmp/pip-install-q7h2n68i/cec_d416155d195c4ae38dd258508c5fbbc5/
    Complete output (35 lines):
    running install
    running build
    running build_ext
    building 'cec' extension
    creating build
    creating build/temp.linux-x86_64-3.9
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -Iinclude -I/usr/include/python3.9 -c cec.cpp -o build/temp.linux-x86_64-3.9/cec.o
    cec.cpp: In function ‘PyObject* can_persist_config(PyObject*, PyObject*)’:
    cec.cpp:615:32: error: ‘class CEC::ICECAdapter’ has no member named ‘CanPersistConfiguration’; did you mean ‘CanSaveConfiguration’?
      615 |       RETURN_BOOL(CEC_adapter->CanPersistConfiguration());
          |                                ^~~~~~~~~~~~~~~~~~~~~~~
    cec.cpp:121:13: note: in definition of macro ‘RETURN_BOOL’
      121 |   result = (arg); \
          |             ^~~
    cec.cpp: In function ‘PyObject* persist_config(PyObject*, PyObject*)’:
    cec.cpp:622:26: error: ‘class CEC::ICECAdapter’ has no member named ‘CanPersistConfiguration’; did you mean ‘CanSaveConfiguration’?
      622 |       if( ! CEC_adapter->CanPersistConfiguration() ) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~
          |                          CanSaveConfiguration
    cec.cpp:632:32: error: ‘class CEC::ICECAdapter’ has no member named ‘PersistConfiguration’; did you mean ‘SetConfiguration’?
      632 |       RETURN_BOOL(CEC_adapter->PersistConfiguration(&config));
          |                                ^~~~~~~~~~~~~~~~~~~~
    cec.cpp:121:13: note: in definition of macro ‘RETURN_BOOL’
      121 |   result = (arg); \
          |             ^~~
    cec.cpp: In function ‘PyObject* PyInit_cec()’:
    cec.cpp:884:22: warning: ‘void PyEval_InitThreads()’ is deprecated [-Wdeprecated-declarations]
      884 |    PyEval_InitThreads();
          |    ~~~~~~~~~~~~~~~~~~^~
    In file included from /usr/include/python3.9/Python.h:154,
                     from cec.cpp:29:
    /usr/include/python3.9/ceval.h:130:37: note: declared here
      130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
          |                                     ^~~~~~~~~~~~~~~~~~
    error: command '/usr/bin/gcc' failed with exit code 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-q7h2n68i/cec_d416155d195c4ae38dd258508c5fbbc5/setup.py'"'"'; __file__='"'"'/tmp/pip-install-q7h2n68i/cec_d416155d195c4ae38dd258508c5fbbc5/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-qb1e9z74/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/cec Check the logs for full command output.

I hope to find a solution for this. I would appreciate any help!