O Webex parou de funcionar no Ubuntu 22.04 quando eu atualizei o kernel e continuou dando problema quando fiz o upgrade para 24.04.
Ele inicia e até chega a rodar por uns minutos, mas acaba por encerrar sem dar nenhuma explicação. A comunicação não é mesmo o forte dele, porque ele não funciona no root, mas não indica nenhum motivo.
Sem muita esperança, resolvi experimentar rodar dentro de um contêiner LXC.
Vamos ao básico: instalar o LXD.
sudo snap install lxd
sudp lxd init
O init vai fazer um monte de perguntas. As respostas default servem.
Como vai ser preciso usar o X11 do hospedeiro, é preciso criar um profile. Primeiro, cria-se um arquivo gui.txt com essas configurações:
config:
environment.DISPLAY: :0
environment.PULSE_SERVER: unix:/home/ubuntu/pulse-native
nvidia.driver.capabilities: all
nvidia.runtime: "true"
user.user-data: |
#cloud-config
runcmd:
- 'sed -i "s/; enable-shm = yes/enable-shm = no/g" /etc/pulse/client.conf'
packages:
- x11-apps
- mesa-utils
- pulseaudio
write_files:
- owner: root:root
permissions: '0644'
append: true
content: |
PULSE_SERVER=unix:/home/ubuntu/pulse-native
path: /etc/environment
description: GUI LXD profile
devices:
PASocket1:
bind: container
connect: unix:/run/user/1000/pulse/native
listen: unix:/home/ubuntu/pulse-native
security.gid: "1000"
security.uid: "1000"
uid: "1000"
gid: "1000"
mode: "0777"
type: proxy
X0:
bind: container
connect: unix:@/tmp/.X11-unix/X1
listen: unix:@/tmp/.X11-unix/X0
security.gid: "1000"
security.uid: "1000"
type: proxy
mygpu:
type: gpu
name: x11
used_by: []
Com isso, podemos criar um profile e, finalmente, um contêiner (como root):
lxc profile create gui
cat gui.txt | lxc profile edit gui
lxc launch --profile default --profile gui ubuntu:22.04 jammy
Jammy vai ser o nome do nosso contêiner. Pode ser que o launch falhe inicialmente, mas o start o coloca de pé novamente:
lxc start jammy
Agora temos que criar um user, copiar o Webex.deb para dentro do contêiner, instalar e, finalmente, rodar:
xhost +
sudo lxc file push Webex.deb jammy/
sudo lxc exec jammy bash
# dentro do contêiner
cd /
apt install /Webex.deb
adduser armando
su armando
# como armando
export DISPLAY=:0
/opt/Webex/bin/CiscoCollabHost %U
Como o usuário armando foi criado depois, precisamos pegar o seu id e editar algumas linhas no profile para que o áudio funcione. Como é o primeiro usuário criado, ele ficou com o id 1001.
name: gui
description: GUI LXD profile
config:
environment.DISPLAY: :0
environment.PULSE_SERVER: unix:/home/armando/pulse-native
nvidia.driver.capabilities: all
nvidia.runtime: "true"
user.user-data: |
#cloud-config
runcmd:
- 'sed -i "s/; enable-shm = yes/enable-shm = no/g" /etc/pulse/client.conf'
packages:
- x11-apps
- mesa-utils
- pulseaudio
write_files:
- owner: root:root
permissions: '0644'
append: true
content: |
PULSE_SERVER=unix:/home/armando/pulse-native
path: /etc/environment
devices:
PASocket1:
bind: container
connect: unix:/run/user/1000/pulse/native
gid: "1001"
listen: unix:/home/armando/pulse-native
mode: "0777"
security.gid: "1000"
security.uid: "1000"
type: proxy
uid: "1001"
X0:
bind: container
connect: unix:@/tmp/.X11-unix/X1
listen: unix:@/tmp/.X11-unix/X0
security.gid: "1000"
security.uid: "1000"
type: proxy
mygpu:
type: gpu
used_by:
- /1.0/instances/jammy
Após editar o profile, é preciso parar e iniciar novamente o contêiner.
sudo lxc profile edit gui
sudo lxc stop jammy
sudo lxc start jammy
E com isso pode-se quebrar um galho enquanto a Cisco não atualiza o software.