web-dev-qa-db-fra.com

Démarrez Ubuntu sans environnement de bureau, mais démarrez une application X

Je veux faire un petit ordinateur juste pour naviguer sur Internet. Je ne veux pas charger un environnement de bureau pour garder une utilisation aussi faible que possible de la mémoire vive, du processeur et du processeur graphique. L'ordinateur va fonctionner sur un processeur ARM. Je me moque de Distro que j’utilise, j’ai pensé au bon vieux Debian.

29
RaverTiny
  1. Dans /usr/share/xsessions/, créez un fichier au format ".desktop" pour créer votre session minimale personnalisée. Pour exécuter Google Chrome en tant que seule application après la connexion, procédez comme suit:

    [Desktop Entry]
    Type=Application
    Exec=google-chrome
    Name=Google Chrome
    Comment=Testing
    
  2. Redémarrez votre gestionnaire d’affichage, par exemple.

    Sudo restart lightdm  # or kdm, gdm, etc.
    

    Ou simplement déconnectez-vous.

  3. "Google Chrome" doit apparaître dans la liste des sessions pour être sélectionné (à côté de Unity ou des autres DE que vous avez installés).

    Connectez-vous et profitez.

optionnel

  • XDM est un gestionnaire d’affichage très minimal - LightDM, GDM et KDM sont assez "grands". Installez cela en utilisant le paquet xdm Install xdm et reconfigurez les valeurs par défaut pour le démarrage de votre système avec

    Sudo dpkg-reconfigure lightdm
    
  • Configurez votre gestionnaire d’affichage pour vous connecter automatiquement à un utilisateur spécifique. Consultez la documentation de votre gestionnaire d’affichage.

26
gertvdijk

Je sais que celle-ci est obsolète, mais je ne pouvais pas voir la réponse correcte à la demande telle que je la comprends, alors voici:

J'ai eu un projet de création d'un système intégré exécutant une application graphique Java sur un ordinateur simple doté d'un processeur Atom et d'un écran tactile. Ma décision était d'éviter l'utilisation des gestionnaires de fenêtres en tant que tels, de les garder a) simples, b) légers et c) d'éviter tout type de messages système qui s'affichent à l'écran.

Le système ressemble à ceci:

  1. Installation du système de base Ubuntu, variante la plus légère de 12.04 (toujours proche de 1 Go, mais ok pour moi, même sur un disque flash de 2 Go). Vous pouvez le torturer un peu pour faire une installation plus petite, bien sûr, il y a plusieurs façons pour cela. De plus, vous n’êtes pas obligé d’utiliser Ubuntu, mais vous devez alors consulter les instructions ci-dessous - il existe des différences entre les distributions, en particulier en ce qui concerne les fichiers de configuration et leurs emplacements.

  2. Installation du xorg et de quelques autres logiciels utiles, tels que le calibrateur xinput pour mon écran tactile résistif, ifplugd pour la détection de connexion Ethernet en direct, acpid pour la détection du fonctionnement du bouton d'alimentation, etc.

  3. Ouvrez /etc/init/tty1.conf et changez la ligne exec /sbin/getty -8 -i 38400 tty1 en quelque chose comme exec /sbin/getty -8 -i 38400 tty1 -a username, où "username" est le nom de l'utilisateur que vous souhaitez vous connecter automatiquement.

  4. Pour démarrer la session X automatiquement, ouvrez le fichier .bashrc ~/.bashrc de votre utilisateur et ajoutez ce genre de chose à la fin du fichier:

    if [ $(tty) == "/dev/tty1" ]; then
        while true; do startx -- -nocursor -depth 16; echo "Again [$?]..."; done
    fi
    

    (La commande -nocursor concerne les écrans tactiles; retirez-la pour que l'écran normal apparaisse au pointeur de la souris.) Le serveur X réapparaîtra. Ainsi, si votre application se ferme pour une raison quelconque, elle redémarrera automatiquement le serveur X.

  5. Maintenant, dans le fichier .xsession de votre utilisateur, ~/.xsession, écrivez quelque chose comme ceci (souvenez-vous que chaque commande est exécutée ici en série, utilisez donc le symbole & à la fin de la ligne si vous souhaitez lancer un serveur):

    xrandr --output VGA1 --mode 800x600      #For setting a video mode
    xrandr --fb 800x600                      #Not always required, sets the framebuffer size
    xsetbg -center background.png &          #To set the background, comes from the xloadimage package
    xset -dpms s off                         #To avoid screen going blank after a while
    ~username/start.sh                       #Start your application
    #You can put some other application calls here that will be run when your application exits
    

Il y a beaucoup d'autres choses à considérer pour un tel système, il ne s'agit que de la configuration de base. J'espère que ça aide quelqu'un. Bonne chance.

24
fault-tolerant

Auparavant, vous pouviez simplement exécuter X et X se déclencherait avec un écran vide. Ensuite, vous pouvez définir DISPLAY=:0 et y exécuter quelque chose. Peut-être que cela fonctionne toujours? À partir d'un Shell, vous voudrez que X& le mette en arrière-plan.

Examinez le paramètre de ligne de commande X standard -geometry pour ajuster l'emplacement de la fenêtre, car vous ne disposerez pas d'un gestionnaire de fenêtres pour vous aider.

Pour exécuter quelque chose en tant que non-root, vous devez vous reporter à xauth pour configurer l'autorisation X pour l'utilisateur non-root.

1
Robie Basak