# XDM ne démarre pas

## Fulgurance

Bonjour, voilà je viens de finir ma première installation de gentoo.

J'ai correctement suivi le tutoriel et j'ai configuré SDDM pour démarrer PLASMA au démarrage. Mon PC boot bien depuis mon HDD mais lorsque normalement il doit charger SDDM, à la place, j'arrive sur l'écran de connexion en ligne de commande et ça freeze ! Impossible de changer de session ou de taper quelque chose au clavier. Par contre, si via un live CD, je désactive xdm, mon environnement boot correctement.

Pour information, mon PC est un peu particulier pour la configuration puisque la carte graphique est une GTX1060, donc technologie OPTIMUS. J'ai du installer Bumblebee et bbswitch.

Ca c'est le log de mon kernel: http://textup.fr/192843sU

Tout ce qui date (dans le log) d'hier soir vers 2h du matin correspond à un démarrage avec xdm d'activé, et tout ce qui date de ce matin correspond à un démarrage en ligne de commande.

J'espère que vous pourrez m'aider, parce que j'ai mis juste une journée complète pour tout installer mais ça fait une semaine déjà que j'arrive toujours pas à lancer de session graphique avec SDDM T_T Je commence à fatiguer   :Confused: 

----------

## El_Goretto

Prends  les choses dans l'ordre, en commençant par les briques de base puis en les ajoutant une à une, comme çà tu trouveras celle qui te pose problème (ex: X, puis KDE, puis SDDM, puis driver nvidia, puis optimus machin, etc.).

----------

## KeNNys

Salut Fulgurance,

J'ai pu remarqué dans ton fichier de log quelques erreurs.

1 je suis pas sur mais peut être le firmware de ta carte graphique

Et 1 autre qui est : sddm[3853] general protection ip:7f306216074b sp:7fffad297080 error:0

Tu as compilé ton noyau toi même ou tu as utilisé genkernel ?

il y a quoi dans ton fichier : /etc/conf.d/xdm ?

----------

## Fulgurance

Bah en fait j'ai déjà tout repris un à un mais je ne vois pas d'où viens l'erreur ...

Oui, j'ai compilé mon noyau moi même   :Very Happy: 

Tiens, je te donne le contenu du fichier:

```
# We always try and start X on a static VT. The various DMs normally default

# to using VT7. If you wish to use the xdm init script, then you should ensure

# that the VT checked is the same VT your DM wants to use. We do this check to

# ensure that you haven't accidentally configured something to run on the VT

# in your /etc/inittab file so that you don't get a dead keyboard.

CHECKVT=7

# What display manager do you use ?  [ xdm | gdm | kdm | gpe | entrance ]

# NOTE: If this is set in /etc/rc.conf, that setting will override this one.

DISPLAYMANAGER="sddm"
```

----------

## k-root

```
Mar 6 02:53:31 MSI-GS73VR-6RF kernel: [ 7.718959] sddm[3951]: segfault at 880 ip 0000000000000880 sp 00007fff4aca2f68 error 14 in sddm[400000+6e000]
```

http://www.linuxquestions.org/questions/slackware-14/plasma5-sddm-black-screen-after-kernel-mesa-xorg-update-4175575167/

 *Quote:*   

> Ok, I solved the issue, for reasons that I don't know, "sddm" no longer wasn't in "video" group.
> 
> Adding sddm user to the video group did the trick.

 

?

----------

## KeNNys

Comme le dit k-root,

vérifie que sddm fait bien partie du group video.

nano /etc/group

si il n'y ai pas 

usermod -aG video sddm

----------

## Fulgurance

J'avais déjà ajouté sddm au groupe video mais je l'ai refait, j'ai rebooté mais ça ne marche toujours pas ...

Extrait du fichier /etc/group:

```
video:x:27:root,sddm,zohran

```

----------

## KeNNys

J'ai eu un truc comme ça une fois je crois.

Le thème de sddm choisie était incomplet

Tu peux editer /etc/sddm.conf

tu as une section Theme

chez moi le theme est breeze.

si il est complet ton thème dans le répértoire /usr/share/sddm/themes/breeze/ tu dois trouver environ 9 fichiers (environ)

----------

## Fulgurance

J'ai modifié /etc/sddm.conf en mettant breeze en thème et j'ai redémarré mon PC sur le HDD, mais rien ne change, ça freeze toujours...

Sinon, tiens:

```
(chroot) livecd / # ls /usr/share/sddm/themes/breeze/

Background.qml  components          Login.qml  metadata.desktop  SessionButton.qml

Clock.qml       KeyboardButton.qml  Main.qml   preview.png       theme.conf

```

(j'ai refait un chroot avec le livecd)

----------

## KeNNys

Quand tu dis ça freeze, peut tu détailler ?

Toujours pas accès au clavier et à la souris ?

l'écran clignote.

Tu utilise quoi comme pilote d'affichage ?

la ligne Video_cards dans ton make.conf.

----------

## Fulgurance

Ca reste sur le login en ligne de commande et impossible de taper quoi que ce soit, et ça reste pareil... Mais pas de clignotement. Par contre, le curseur d'écriture s'arrête de clignoter.

Pour le make.conf, j'ai mis le pilote intel et le nvdia (avec i965 pour le support Skylake):

```
VIDEO_CARDS="intel i965 nvidia"
```

Si je lance xdm avec xdm en session graphique par défaut, et que je fais un startx, ça freeze aussi et je reste avec un écran comme ça:

http://img4.hostingpics.net/pics/754691IMG20170307151508.jpg

----------

## Syl20

Et que dit /var/log/Xorg.0.log dans le dernier cas ?

----------

## Fulgurance

Bah pas grand chose à mon goût ... je me demande même si le log qui est dedant ne résulte pas d'une précédente manipulation ... J'ai l'impression qu'il n'y a aucun retour en fait  :Mad: 

```
[  4076.894] _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed

[  4076.894] _XSERVTransMakeAllCOTSServerListeners: server already running

[  4076.894] (EE)

Fatal server error:

[  4076.894] (EE) Cannot establish any listening sockets - Make sure an X server isn't $

[  4076.894] (EE)

Please consult the The X.Org Foundation support

         at http://wiki.x.org

 for help.

[  4076.894] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additiona$

[  4076.894] (EE)

[  4076.894] (EE) Server terminated with error (1). Closing log file.

```

----------

## KeNNys

Je suppose que tu as emerger nvidia-drivers ?

voila un lien pour les carte nvidia, je sais pas si il est a jour.

https://wiki.gentoo.org/wiki/NVidia/nvidia-drivers/fr

----------

## Fulgurance

Oui c'est ça. C'est ce tutoriel que j'ai suivi d'ailleurs. Par contre j'ai suivi celui en anglais, je préfère toujours suivre les tutoriels anglais en informatique   :Very Happy: 

La seule chose que je n'ai pas fait, c'est chargé avec modprobe nvidia, suite aux conseils d'un modérateur sur le forum anglais, parce que sinon ça ne marche pas avec bbswitch et bumblebee. 

En revanche, maintenant que j'y pense, j'ai un petit soucis, je n'ai pas réussi à charger avec modprobe bbswitch, il me dit que le module n'existe pas alors que je l'ai émergé o_o

La preuve:

```
(chroot) livecd / # modprobe bbswitch

modprobe: FATAL: Module bbswitch not found in directory /lib/modules/4.5.2-aufs-r1

(chroot) livecd / # eix bbswitch

[?] sys-power/bbswitch

     Available versions:  0.8 {KERNEL="linux"}

     Installed versions:  9999[?](15:03:13 06/03/2017)(KERNEL="linux")

     Homepage:            https://github.com/Bumblebee-Project/bbswitch

     Description:         Toggle discrete NVIDIA Optimus graphics card

```

----------

## k-root

 *Fulgurance wrote:*   

> Oui c'est ça. C'est ce tutoriel que j'ai suivi d'ailleurs. Par contre j'ai suivi celui en anglais, je préfère toujours suivre les tutoriels anglais en informatique  :D 
> 
> La seule chose que je n'ai pas fait, c'est chargé avec modprobe nvidia, suite aux conseils d'un modérateur sur le forum anglais, parce que sinon ça ne marche pas avec bbswitch et bumblebee. 
> 
> En revanche, maintenant que j'y pense, j'ai un petit soucis, je n'ai pas réussi à charger avec modprobe bbswitch, il me dit que le module n'existe pas alors que je l'ai émergé o_o
> ...

 

ah ah ! classic

ebuild who provide modules are installed into /lib/modules/`uname -r` by emerge, so if you instal a new kernel (ie : make , make modules_install) you end up with a new entry in  /lib/modules/ and thus you have to emerge the ebuild again (wich make sense since you want that modules to be build/signed for that particular kernel ).. same applies to /app-emulation/virtualbox-modules .

----------

## Fulgurance

Oui mais non XD En fait je me suis surtout rendu compte que je ne pouvais pas charger bbswitch depuis un livecd en chroot, mais j'ai réussi à charger le module depuis le HDD !

En fait, si ça affiche une vieille version du noyau, c'est parce que j'ai lancé cette commande en livecd via chroot. Mais le kernel de mon HDD est bien sous la dernière version   :Very Happy: 

Par contre rien à faire, ça freeze toujours ... décidemment ...

----------

## pti-rem

Dans ta photo, tu lances startx avec l'utilisateur root. c'est pas exprès ?

Je voudrais bien voir tes

```
locale
```

pour être sûr que LC_ALL= n'est pas affecté

 *Fulgurance wrote:*   

> Par contre rien à faire, ça freeze toujours ... décidemment ...

 

Tu pourrais démarrer en runlevel 1 pour voir

Il faut ajouter un paramètre dans une ligne grub à éditer au boot. (e)

 *Quote:*   

> Dans GRUB, pendant le démarrage, on peut éditer une ligne dans la séquence d'amorçage et ajouter single à la fin de la ligne et linux démarrerait dans le niveau d'exécution 1.

 

C'est la ligne faisant référence au noyau à amorcer.

 *Fulgurance wrote:*   

> Par contre, si via un live CD, je désactive xdm, mon environnement boot correctement.

 

Au temps pour moi.

Autant désactiver ton GPU nVidia Optimus pour essayer sans.

 *Fulgurance wrote:*   

> je me demande même si le log qui est dedant ne résulte pas d'une précédente manipulation

 

Ton Xorg.0.log est daté :

```
rem@n73sm ~ $ ls /var/log/Xorg.0.log -al

-rw-r--r-- 1 root root 24300  7 mars  16:54 /var/log/Xorg.0.log
```

----------

## pti-rem

Il est évoqué (il y a un an) que les drivers nVidia peuvent être à l'origine du segfault dans SDDM repéré par k-root

nvidia-drivers-364.12 seems to cause sddm to segfault

https://forums.gentoo.org/viewtopic-t-1041184-start-0.html

https://bugs.gentoo.org/show_bug.cgi?id=577982

 *Quote:*   

> Module nvidia don't create device /dev/dri/card0

 

 *Fulgurance wrote:*   

> En revanche, maintenant que j'y pense, j'ai un petit soucis, je n'ai pas réussi à charger avec modprobe bbswitch, il me dit que le module n'existe pas alors que je l'ai émergé

 

Tu peux faire un :

```
emerge -av @module-rebuild
```

Mon /etc/conf.d/modules contient entre autres :

```
modules="bbswitch nvidia"
```

et mon /etc/modprobe.d/bbswitch.conf

```
options bbswitch load_state=0 unload_state=-1
```

Je n'ai absolument pas touché au /etc/modprobe.d/nvidia.conf généré.

----------

## Fulgurance

Mes locales (depuis chroot en livecd):

```
(chroot) livecd / # locale

LANG=fr_FR.utf8

LC_CTYPE="fr_FR.utf8"

LC_NUMERIC="fr_FR.utf8"

LC_TIME="fr_FR.utf8"

LC_COLLATE="fr_FR.utf8"

LC_MONETARY="fr_FR.utf8"

LC_MESSAGES="fr_FR.utf8"

LC_PAPER="fr_FR.utf8"

LC_NAME="fr_FR.utf8"

LC_ADDRESS="fr_FR.utf8"

LC_TELEPHONE="fr_FR.utf8"

LC_MEASUREMENT="fr_FR.utf8"

LC_IDENTIFICATION="fr_FR.utf8"

LC_ALL=

```

Pour la date du log(depuis chroot en livecd):

```
(chroot) livecd / # ls /var/log/Xorg.0.log -al

-rw-r--r-- 1 root root 599  7 mars  14:00 /var/log/Xorg.0.log
```

Mon fichier /etc/conf.d/modules(depuis chroot en livecd):

```
# Linux users can define a list of modules for a specific kernel version,

# a released kernel version, a main kernel version or all kernel versions.

# The most specific versioned variable will take precedence.

# FreeBSD users can only use the modules="foo bar" setting.

#modules_2_6_23_gentoo_r5="ieee1394 ohci1394"

#modules_2_6_23="tun ieee1394"

#modules_2_6="tun"

#modules_2="ipv6"

#modules="ohci1394"

# Linux users can give modules a different name when they load - the new name

# will also be used to pick arguments below.

# This is not supported on FreeBSD.

#modules="dummy:dummy1"

# Linux users can give the modules some arguments if needed, per version

# if necessary.

# Again, the most specific versioned variable will take precedence.

# This is not supported on FreeBSD.

#module_ieee1394_args="debug"

#module_ieee1394_args_2_6_23_gentoo_r5="debug2"

#module_ieee1394_args_2_6_23="debug3"

#module_ieee1394_args_2_6="debug4"

#module_ieee1394_args_2="debug5"

# You should consult your kernel documentation and configuration

# for a list of modules and their options.
```

Apparement je n'ai pas la même chose que toi  :Mad: 

Le fichier /etc/modprobe.d/bbswitch.conf généré automatiquement (depuis chroot en livecd):

```
ptions bbswitch load_state=-1 unload_state=-1
```

Là apparement c'est pareil, je n'ai pas la même chose que toi   :Confused: 

Enfin mon fichier /etc/modprobe.d/nvidia.conf:

```
# Nvidia drivers support

alias char-major-195 nvidia

alias /dev/nvidiactl char-major-195

# To tweak the driver the following options can be used, note that

# you should be careful, as it could cause instability!! For more

# options see /usr/share/doc/nvidia-drivers-375.26/README

#

# !!! SECURITY WARNING !!!

# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW

# WHAT YOU ARE DOING.

# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,

# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.

options nvidia NVreg_DeviceFileMode=432 NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=27 NVreg_ModifyDeviceFiles=1

```

En fait je crois que xdm ne marche pas non plus, je me suis renseigné et on m'a dit que xdm est une session graphique, hors quand j'active xdm, j'arrive en session ligne de commande ... donc ça ne marche pas en fait ...

Tu veux que je teste avec un autre runlevel du coup ?

Pour bbswitch sinon, c'est bon j'ai pu le chargé comme je l'ai précisé dans mon précédent post, mais ça plante pareil quand même.

----------

## pti-rem

Bonjour,

Pour les locales, c'était juste une simple petite vérification. C'est bon.

Je pense qu'il vaut mieux que tu amorces ta Gentoo avec le serveur X désactivé et opérer un peu en mode console directement. Au lieu de passer par le chroot (la console n'est pas très pratique mais faire le chroot est long)

 *Fulgurance wrote:*   

> Tu veux que je teste avec un autre runlevel du coup ? 

 

Non, comme tu arrives en console, c'est tout bon. On va essayer de voir par rapport à ma configuration.

Le Xorg.0.log du 7 mars à 14:00 de 599 octets est à regarder. Pour voir par exemple les lignes notées EE (erreur) ou celles WW (warning) et aussi pour le périphérique /dev/dri/card0

Si c'est le contenu de celui cité plus haut dans le fil de discussion, tu peux te permettre de le renommer. Quoiqu'il est tronqué à droite plus haut.

Utilise ton éditeur de texte préféré. J'utilise toujours le petit nano ou alors less

Installe sys-libs/gpm et lance et active ce service pour avoir la souris en mode console ;

cela peut aider à faire des copier de texte d'écran et coller dans un fichier. juste sélectionner pour copier et clic pour coller.

Et tu peux copier tes fichiers texte sur une clef.

Change les options de la configuration de bbswitch pour avoir load_state=0 unload_state=-1 (1 = ON ; 0 = OFF ; -1 = Inchangé)

Change ton /etc/conf.d/modules pour charger les modules bbswitch et nvidia au démarrage. (Bien que je précise le chargement du module nvidia, il n'est pas chargé au démarrage)

Puis essaie en console, en root :

```
depmod -a

modprobe bbswitch

cat /proc/acpi/bbswitch
```

Donne le retour de chaque ligne si il y en a un.

Il faut peut-être installer sys-power/acpid pour lire ou écrire dans /proc/acpi/* (je ne sais plus ; il est installé et en service chez moi)

J'ai :

```
rem@n73sm ~ $ cat /proc/acpi/bbswitch 

0000:01:00.0 OFF
```

Essaie d'allumer et d'éteindre ton GPU nVidia :

```
n73sm ~ # tee /proc/acpi/bbswitch <<<ON

ON

n73sm ~ # cat /proc/acpi/bbswitch

0000:01:00.0 ON

n73sm ~ # tee /proc/acpi/bbswitch <<<OFF

OFF

n73sm ~ # cat /proc/acpi/bbswitch

0000:01:00.0 OFF
```

Quand ta carte est à OFF tu peux essayer de lancer startx en mode utilisateur (pas en root) ; Normalement un CTRL-C tue le startx depuis la console où il a été lancé et redonne le prompt de la console.

Déjà voyons ça. Sans le GPU nVidia actif pour lancer X ; pour éventuellement mettre en cause le pilote nvidia dans le segfault.

Et voyons le Xorg.0.log généré ; quitte à relancer (reset de préférence) pour le voir si il y a encore un freeze.

On ne touche pas au /etc/modprobe.d/nvidia.conf

Donne le résultat de : # lspci -nn | grep VGA

Donne la version des x11-drivers/nvidia-drivers installés (375.26 ?)

Pour la configuration du service bumblebee actif, j'ai (avec x11-misc/primus) :

```
Section "ServerLayout"

    Identifier  "Layout0"

    Option      "AutoAddDevices" "false"

    Option      "AutoAddGPU" "false"

EndSection

Section "Device"

    Identifier  "DiscreteNvidia"

    Driver      "nvidia"

    VendorName  "NVIDIA Corporation"

#   If the X server does not automatically detect your VGA device,

#   you can manually set it here.

#   To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data

#   as you see in the commented example.

#   This Setting may be needed in some platforms with more than one

#   nvidia card, which may confuse the proprietary driver (e.g.,

#   trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.

#   BusID "PCI:01:00:0"

#   Setting ProbeAllGpus to false prevents the new proprietary driver

#   instance spawned to try to control the integrated graphics card,

#   which is already being managed outside bumblebee.

#   This option doesn't hurt and it is required on platforms running

#   more than one nvidia graphics card with the proprietary driver.

#   (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).

#   If this option is not set, the new Xorg may blacken the screen and

#   render it unusable (unless you have some way to run killall Xorg).

    Option "ProbeAllGpus" "false"

    Option "NoLogo" "true"

    Option "UseEDID" "false"

    Option "UseDisplayDevice" "none"

#   If your NVIDIA drivers are version 331.13 or newer, and you have a laptop

#   where some of the video outputs such as HDMI or DisplayPort are connected

#   to the NVIDIA GPU, and you sometimes connect an external monitor to those

#   ports, comment out the above two options and instead uncomment the option

#   below to allow using the external monitor when it is connected while also

#   allowing the X server to start when the monitor is disconnected.

#   Option "AllowEmptyInitialConfiguration"

EndSection
```

```
# Configuration file for Bumblebee. Values should **not** be put between quotes

## Server options. Any change made in this section will need a server restart

# to take effect.

[bumblebeed]

# The secondary Xorg server DISPLAY number

VirtualDisplay=:8

# Should the unused Xorg server be kept running? Set this to true if waiting

# for X to be ready is too long and don't need power management at all.

KeepUnusedXServer=false

# The name of the Bumbleblee server group name (GID name)

ServerGroup=bumblebee

# Card power state at exit. Set to false if the card shoud be ON when Bumblebee

# server exits.

TurnCardOffAtExit=true

# The default behavior of '-f' option on optirun. If set to "true", '-f' will

# be ignored.

NoEcoModeOverride=false

# The Driver used by Bumblebee server. If this value is not set (or empty),

# auto-detection is performed. The available drivers are nvidia and nouveau

# (See also the driver-specific sections below)

Driver=nvidia

# Directory with a dummy config file to pass as a -configdir to secondary X

XorgConfDir=/etc/bumblebee/xorg.conf.d

# Xorg binary to run

XorgBinary=Xorg

## Client options. Will take effect on the next optirun executed.

[optirun]

# Acceleration/ rendering bridge, possible values are auto, virtualgl and

# primus.

Bridge=primus                          # Primus est ici

# The method used for VirtualGL to transport frames between X servers.

# Possible values are proxy, jpeg, rgb, xv and yuv.

VGLTransport=proxy

# List of paths which are searched for the primus libGL.so.1 when using

# the primus bridge

PrimusLibraryPath=/usr/lib/primus:/usr/lib32/primus

# Should the program run under optirun even if Bumblebee server or nvidia card

# is not available?

AllowFallbackToIGC=false

# Driver-specific settings are grouped under [driver-NAME]. The sections are

# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-

# detection resolves to NAME).

# PMMethod: method to use for saving power by disabling the nvidia card, valid

# values are: auto - automatically detect which PM method to use

#         bbswitch - new in BB 3, recommended if available

#       switcheroo - vga_switcheroo method, use at your own risk

#             none - disable PM completely

# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Section with nvidia driver specific options, only parsed if Driver=nvidia

[driver-nvidia]

# Module name to load, defaults to Driver if empty or unset

KernelDriver=nvidia

PMMethod=bbswitch

# colon-separated path to the nvidia libraries

LibraryPath=/usr/lib64/opengl/nvidia/lib:/usr/lib32/opengl/nvidia/lib:/usr/lib/opengl/nvidia/lib

# comma-separated path of the directory containing nvidia_drv.so and the

# default Xorg modules path

XorgModulePath=/usr/lib64/opengl/nvidia/lib,/usr/lib64/opengl/nvidia/extensions,/usr/lib64/xorg/modules/drivers,/usr/lib64/xorg/modules

XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Section with nouveau driver specific options, only parsed if Driver=nouveau

[driver-nouveau]

KernelDriver=nouveau

PMMethod=auto

XorgConfFile=/etc/bumblebee/xorg.conf.nouveau
```

 *Fulgurance wrote:*   

> En fait je crois que xdm ne marche pas non plus, je me suis renseigné et on m'a dit que xdm est une session graphique, hors quand j'active xdm, j'arrive en session ligne de commande ... donc ça ne marche pas en fait ...

 

Chez moi, le service activé XDM (X Display manager) utilise /etc/conf.d/xdm pour lancer un gestionnaire de sessions SLIM automatiquement.

Quand ton lancement manuel avec startx sera opérationnel ton lancement automatique avec XDM le sera également dans un deuxième temps.

```
# We always try and start X on a static VT. The various DMs normally default

# to using VT7. If you wish to use the xdm init script, then you should ensure

# that the VT checked is the same VT your DM wants to use. We do this check to

# ensure that you haven't accidentally configured something to run on the VT

# in your /etc/inittab file so that you don't get a dead keyboard.

CHECKVT=7

# What display manager do you use ?  [ xdm | gdm | kdm | gpe | entrance ]

# NOTE: If this is set in /etc/rc.conf, that setting will override this one.

DISPLAYMANAGER="slim"
```

Le site nVidia drivers indique une version 375.39 pour la GeForce GTX 1060 ; Cette version existe (https://packages.gentoo.org/packages/x11-drivers/nvidia-drivers) mais elle est en jaune, donc pas forcément stable.

----------

