Eu tenho um mini-PC Ubuntu 14.04.3 (w / latest v4 kernel) que é usado como um controlador de sinalização digital. Eu tenho duas versões: uma inicial (que está causando problemas) e a mais recente (que funciona perfeitamente). Eu estou tentando escrever um script de atualização / patch que traz alguns dos primeiros (já no campo) até a velocidade com a versão mais recente / de trabalho.
Para unidades iniciais e posteriores, instalei inicialmente o sabor servidor do Ubuntu. Na primeira versão, instalei o ambiente Gnome Desktop do repositório para obter recursos gráficos. Mas na versão posterior, acabei de instalar o X-windows e um gerenciador de janelas básico desde o começo (sem Gnome, qualquer) ... foi uma experiência de aprendizado, e eu não queria refatorar muitos códigos proprietários, então não ria muito!
Então, para o patch / script da primeira versão, eu uso apt-get
para remover e limpar todo o ambiente do Gnome Desktop, e então instalar o X e o matchbox novamente do repositório ... basicamente, imitando o procedimento I usado para obter a versão posterior funcionando (com o melhor da minha memória). Ainda assim, parece que não estou exatamente certo.
A unidade deve mostrar PowerPoints, reproduzir vídeos, mostrar páginas da Web, etc. A única coisa somente que não funciona é a reprodução de vídeo. Para isso, eu construo uma versão customizada do Totem / Gstreamer. As mesmas versões correm nas unidades iniciais e nas unidades posteriores. O problema que estou vendo é que meu player de vídeo está falhando com o seguinte indo para o arquivo apport.log em / var / log:
ERROR: apport (pid 3751) Fri Nov 4 12:17:24 2016: executable: /usr/bin/totem (command line "/usr/local/bin/totem --fullscreen --loop /home/kio/video/test.mp4
ERROR: apport (pid 3751) Fri Nov 4 12:17:24 2016: is_closing_session(): no DBUS_SESSION_BUS_ADDRESS in environment
ERROR: apport (pid 3751) Fri Nov 4 12:17:24 2016: apport: report /var/crash/_usr_bin_totem.1000.crash already exists and unseen, doing nothing to avoid disk usage DoS
Para me confundir ainda mais, se eu usar o SSH na máquina como root, faço uma exportação de DISPLAY e, em seguida, abro o Totem manualmente, ele funciona muito bem. É somente quando é aberto através dos processos (abaixo) que ele falha.
FYI, tenho dois usuários relevantes envolvidos: root e kio. A maioria das coisas funciona como o usuário root (eu tive pouca escolha para evitar a refatoração de todo esse código herdado), mas as máquinas são bem protegidas, então por favor, poupe as palestras! :)
Aqui estão alguns processos relevantes:
root 1334 0.0 0.1 14540 2112 tty1 Ss+ 12:16 0:00 /sbin/getty -8 38400 tty1
root 1373 0.0 0.2 21092 4992 tty2 S+ 12:16 0:00 -bash
root 1389 0.0 0.0 16004 936 tty2 S+ 12:16 0:00 xinit -- -nocursor
root 1390 0.0 2.2 151812 44500 tty7 S<s+ 12:16 0:03 X :0 -nocursor
root 1394 0.0 0.4 86064 8800 tty2 S 12:16 0:00 matchbox-window-manager
root 1652 0.0 0.3 30976 6244 tty2 S 14:00 0:00 /home/kio/bin/controller
root 2759 0.0 0.1 61680 3216 tty2 S 14:00 0:00 su kio -c /usr/local/bin/totem --fullscreen --loop "/home/kio/video/test.mp4"
kio 2760 4.0 0.8 308236 17612 ? Ssl 14:00 0:00 /usr/local/bin/totem --fullscreen --loop /home/kio/video/test.mp4
Outro FYI .. como você pode ver, eu apenas tenho um TTY automaticamente logado como root, e então os arquivos bashrc
e xinitrc
do usuário root cuidam de iniciar as coisas de lá. O processo controller
é um programa proprietário que cuida de iniciar o Totem ou qualquer que seja o sinal que deve mostrar, matando processos, etc.
A versão posterior executa exatamente os mesmos processos, mas não se queixa de DBUS ... então, o que eu estou perdendo? Eu tentei tudo o que pude encontrar no Google sobre a configuração de variáveis e tal, mas nada funciona.