Je travaillais avec mon Raspberry Pi et j'ai fini par gâcher ma machine Ubuntu. JE ssh -X
'd dans le Pi depuis mon bureau Ubuntu 14.04, et essayait d'obtenir une session graphique pour démarrer sur le pi afin que je puisse le voir avec le transfert X11. J'ai couru startx
et cela a eu une erreur, donc en regardant autour, j'ai vu cette discussion sur raspberrypi.org , et (ne sachant pas vraiment ce que je faisais) j'ai essayé lxsession&
.
Cela a changé Ubuntu donc il ressemblait à une version de Windows, avec une barre de tâches en bas de l'écran et une apparence différente pour tous mes programmes, surtout les onglets de mes navigateurs Web. Cela a persisté après la fermeture de la session Pi (à l'exception de la barre des tâches: elle a disparu).
C'est ce que j'ai fait dans le terminal:
pi@raspberrypi ~ $ startx
X.Org X Server 1.12.4
Release Date: 2012-08-27
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.2.0-2-mx5 armv7l Debian
Current Operating System: Linux raspberrypi 3.18.7+ #755 PREEMPT Thu Feb 12 17:14:31 GMT 2015 armv6l
Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708.boardrev=0xe bcm2708.serial=0xc4895bc4 smsc95xx.macaddr=B8:27:EB:89:5B:C4 bcm2708_fb.fbswap=1 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Build Date: 11 February 2015 09:31:17PM
xorg-server 2:1.12.4-6+deb7u6 (Julien Cristau <[email protected]>)
Current version of pixman: 0.33.1
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Fri Apr 24 02:10:24 2015
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
FATAL: Module g2d_23 not found.
^Cxinit: connection to X server lost
waiting for X server to shut down Server terminated successfully (0). Closing log file.
xinit: unexpected signal 2
pi@raspberrypi ~ $ lxsession&
[1] 2290
pi@raspberrypi ~ $
(lxpanel:2297): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-can-change-accels after class was initialised
(lxpanel:2297): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popup-delay after class was initialised
(lxpanel:2297): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popdown-delay after class was initialised
** (lxpolkit:2301): CRITICAL **: polkit_agent_listener_register_with_options: assertion 'POLKIT_IS_SUBJECT (subject)' failed
(lxpolkit:2301): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
(lxpanel:2297): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-images after class was initialised
(lxpanel:2297): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-label-select-on-focus after class was initialised
pi@raspberrypi ~ $ Openbox-Message: A window manager is already running on screen 0
(lxpanel:2297): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-button-images after class was initialised
(pcmanfm:2298): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-can-change-accels after class was initialised
(pcmanfm:2298): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popup-delay after class was initialised
(pcmanfm:2298): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popdown-delay after class was initialised
(pcmanfm:2298): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-label-select-on-focus after class was initialised
(pcmanfm:2298): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-images after class was initialised
tray: another systray already running
^C
pi@raspberrypi ~ $ Sudo shutdown -h now
Broadcast message from root@raspberrypi (pts/0) (Fri Apr 24 02:22:27 2015):
The system is going down for system halt NOW!
pi@raspberrypi ~ $ Connection to 192.168.254.7 closed by remote Host.
Connection to 192.168.254.7 closed.
max@max-ubuntu:~$ ^C
max@max-ubuntu:~$ man lxsession
No manual entry for lxsession
max@max-ubuntu:~$ lxsession -help
The program 'lxsession' is currently not installed. You can install it by typing:
Sudo apt-get install lxsession
max@max-ubuntu:~$ lxsession& -help
[1] 25443
No command '-help' found, did you mean:
Command 'dhelp' from package 'dhelp' (universe)
-help: command not found
max@max-ubuntu:~$ The program 'lxsession' is currently not installed. You can install it by typing:
Sudo apt-get install lxsession
ok
ok: command not found
[1]+ Exit 127 lxsession
[1]+ Exit 127 lxsession
Qu'est-ce qui cause ce problème et comment le résoudre? Un redémarrage sur la machine Ubuntu récupérera-t-il le look Ubuntu, ou va-t-il le rendre permanent?
Voici à quoi ressemble mon navigateur Firefox maintenant. Plus particulièrement, les onglets et les barres de défilement sont différents:
EDIT: Je l'ai corrigé en redémarrant, mais je serais toujours intéressé de savoir pourquoi cela se produit.
Le redémarrage est suffisant pour résoudre ce problème, mais pas nécessaire. Vous pouvez réparer votre bureau en vous déconnectant puis en vous reconnectant. Vous le feriez sur le système affecté, c'est-à-dire le système dont le bureau a été foiré, le système Ubuntu utilisé comme client SSH, pas le Rapsberry Pi qui était le serveur SSH. Notez que simplement verrouiller et déverrouiller l'écran ne fonctionnera pas - mais la déconnexion est suffisante.
Si vous utilisez Unity, il s'exécute probablement compiz --replace
sur la machine concernée fonctionnerait également et éviterait de se déconnecter, mais je recommande de vous déconnecter puis de vous reconnecter.
Le redémarrage a résolu le problème car il impliquait de se déconnecter et de se reconnecter. C'est correct, mais pas nécessaire.
Lorsque vous utilisez ssh -X
et exécutez un programme graphique, le programme:
LXSession est LXDE gestionnaire de session. Exécution lxsession
sur le serveur SSH depuis le ssh -X
session démarre une session graphique LXDE sur le serveur en utilisant l'affichage du client . Cela produit les deux changements majeurs que vous avez remarqués:
lxsession
s'exécute lxpanel
. LXDE utilise LXPanel comme panneau. Elle ressemble un peu à la barre des tâches de Windows en ce qu'elle a un seul panneau par défaut sur le bord inférieur de l'écran qui, à moins d'être personnalisé, a (a) un seul menu imbriqué pouvant être ouvert depuis le bord gauche panneau à partir duquel les applications sont placées en groupes et (b) une liste de fenêtres à l'intérieur du panneau lui-même qui facilite le basculement entre les applications.
lxsession
s'exécute openbox
. LXDE utilise Openbox comme gestionnaire de fenêtres = (voir aussi cet article et cette page ). Les gestionnaires de fenêtres contrôlent la façon dont les fenêtres sont affichées; ils vous permettent de changer, déplacer et redimensionner les fenêtres; et ils fournissent des bordures et un style. Votre interface nity utilise le gestionnaire de fenêtres Compiz . Parce qu'elle était connectée à l'affichage sur le client SSH, l'instance openbox
s'exécutant sur le serveur SSH a tenté de gérer les fenêtres sur le client SSH.
Lorsque vous arrêtez et déconnectez-vous du serveur SSH, tous les programmes en cours d'exécution sur le serveur SSH qui utilisaient l'affichage du client SSH s'arrêtent. Le panneau a disparu, comme vous l'avez observé. Openbox a également cessé de tenter de gérer les fenêtres sur le client SSH, mais il avait déjà déplacé Compiz.
Ce sont les deux changements majeurs, mais probablement pas les seuls. Si vous vouliez vraiment tout savoir sur lsession
, vous pouvez consulter sa documentation et lire les fichiers de configuration sur le Raspberry Pi qu'il utilise, ou vous pouvez essayer de répliquer le problème et d'exécuter pstree
sur le serveur SSH pour voir tout ce que lxsession
a commencé. Mais ce n'est pas nécessaire. La déconnexion et la reconnexion suffisent à tout remettre en place. Le redémarrage, comme vous l'avez fait, est également suffisant.
Parce que le problème major était que Compiz ne fonctionnait plus correctement, exécutant compiz --replace
sur votre système Ubuntu (le client SSH) aurait corrigé cela. Mais se déconnecter et se reconnecter est facile, simple et ne vous oblige pas à passer plus de temps à analyser le problème.
lxsession
sur le client SSHAprès avoir fermé la connexion au Raspberry Pi (le serveur SSH), vous avez essayé les commandes man lxsession
et lxsession
sur votre système Ubuntu qui était le client SSH. Cependant, vous n'aviez pas cette page de manuel ou cet exécutable, car lxsession
n'était pas installé - ou en cours d'exécution - sur le client SSH. Il s'exécutait sur le serveur SSH et certains des programmes qu'il exécutait affectaient le client SSH.
S'il s'agissait d'un système Lubunt ou si vous aviez autrement installé LXDE - ou lxsession
spécifiquement - alors vous auriez pu voir la page de manuel et exécutez le programme. Ce ne serait pas nécessairement la même version de lxsession
que vous avez sur le Raspberry Pi. Vous pouvez essayer SSHing sur le Raspberry Pi et exécuter man lxsession
Là. (Sauf si vous essayez de reproduire le problème, je vous déconseille d'exécuter lxsession
sur le Raspberry Pi.)
Vous pourriez exécuter X11 sur Ubuntu sans gestionnaire de session ni même gestionnaire de fenêtres, et vous pourriez exécuter ssh -X
puis lxsession
sur le Raspberry Pi. Avec rien de tel qu'une session X existante déjà en cours d'exécution, votre bureau ne serait pas perturbé. Mais je doute que c'est ce que vous voulez. Vous voulez probablement l'une des trois choses:
ssh -X
. Dans ce cas, exécutez simplement ces programmes, par exemple, xclock
, firefox
, libreoffice
. SSH les transmettra à l'interface graphique sur le client SSH. (Si vous voulez pouvoir vous déconnecter et vous reconnecter sans quitter le programme, alors l'une des deux options suivantes peut vous intéresser, mais voyez cette réponse et celle-là .)lxsession
soient limités à une seule session SSH ou qu'ils utilisent directement et s'appuient sur l'affichage du client SSH. Dans cette situation, une solution consiste à maintenir un bureau graphique en cours d'exécution sur le serveur SSH et à s'y connecter à partir du client. Cela peut être fait, par exemple, avec VNC ou xrdp . ( Remmina est un client populaire.) Les lecteurs peuvent avoir besoin de poser de nouvelles questions en fonction de leurs situations spécifiques, mais voir Comment configurer une session xrdp qui réutilise une session existante?Le redémarrage résout le problème en me redonnant un écran normal:
Cependant, lorsque j'ai redémarré, on m'a montré une framboise géante sur mon bureau momentanément, comme on le verrait lors de l'arrêt du Pi avec une interface graphique démarrée. (À ce stade, le Raspberry Pi a été éteint et déconnecté pendant un certain temps.)
Donc, si quelqu'un a ce problème, le redémarrage de votre ordinateur le corrigera.