# [Gelöst]KDE startet nicht automatisch

## Hanisch

Hallo,

ich habe KDE instdalliert.

```
emerge -av kdebase-meta
```

Beim Booten lande ich aber immer auf der Konsole und als root ergibt

```
/etc/init.d/xdm
```

gar nichts.

xdm hat auch einen sehr merkwürdigen Inhalt aus einer Zeile:

```
DISPAYMANAGER="kdm"
```

```
# rc-update add xdm default

 * rc-update: service `xdm' is not executeable
```

Das ist doch nimmermehr ein Srcipt. Wie muß dieses Script lauten?

```
startkde

$DISPLAY is not set or cannot connect to the X server
```

Erst

```
kdm
```

liefert den Anmeldebildschirm für KDE.

```
/etc/init.d/consolekit start bzw. stop

-bash: /etc/init.d/consolekit: Datei oder Verzeichnis nicht gefunden.
```

Die Datei existiert aber:

```
#!/sbin/runscript

# Copyright 1999-2011 Gentoo Foundation

# Distributed under the terms of the GNU General Public License, v2 or later

# $Header: /var/cvsroot/gentoo-x86/sys-auth/consolekit/files/consolekit-0.2.rc,v 1.1 2011/10/20 19:14:47 axs Exp $

depend() {

   need dbus

   use logger

}

start() {

   ebegin "Starting ConsoleKit daemon"

   checkpath -q -d -m 0755 /var/run/ConsoleKit

   start-stop-daemon --start -q \

      --pidfile /var/run/ConsoleKit/pid \

      --exec /usr/sbin/console-kit-daemon -- 

   eend $?

}

stop() {

   ebegin "Stopping ConsoleKit daemon"

   start-stop-daemon --stop -q --pidfile /var/run/ConsoleKit/pid 

   eend $?

}

```

Unter dem eingeloggten User kann man mit 

```
startx
```

die KDE-Oberflächer erreichen.

Wer kann helfen?

Gruß

Ch. HanischLast edited by Hanisch on Tue Jan 22, 2013 4:39 pm; edited 1 time in total

----------

## 666threesixes666

sudo emerge kdm

sudo /etc/init.d/kdm start

sudo rc-update kdm default

----------

## DawgG

you have to set the DM in /etc/conf.d/xdm.

to start the dm set in this file, call /etc/init.d/xdm with the appropriate parameter, eg start, like 

```
/etc/init.d/xdm start
```

to make the selected dm start "automatically" in the default runlevel add it like this: 

```
rc-update add xdm default
```

that should do it.

GOOD LUCK!

----------

## 666threesixes666

xdm doesnt work for me, gdm works fine after editing xdm since i use gnome...  they have kde though so KDM would be more appropriate for them.

----------

## Hanisch

 *666threesixes666 wrote:*   

> sudo emerge kdm

 

Das möchte ich mir doch nicht antun. Es muß doch einen anderen Lösungsweg geben?

 *Quote:*   

> sudo /etc/init.d/kdm start
> 
> sudo rc-update kdm default

 

/etc/init.d/kdm gibt es bei mir nicht.

Kann denn niemand mir eine funktionierende /etc/init.d/xdm posten?

Gruß

Ch. Hanisch

----------

## DaggyStyle

Hanisch,

this is an english subforum, either post your questions in english or post them at https://forums.gentoo.org/viewforum-f-28.html which is the gentoo german subforum.

Thanks.

----------

## John R. Graham

Moved from Desktop Environments to Deutsches Forum (German), as DaggyStyle had a point.

- John

----------

## 666threesixes666

echo "exec startkde" > ~/.xinitrc

startx reparieren

xdm ist für mich gebrochen

kdm sollte besser funktionieren als Scripting xdm

----------

## Hanisch

 *666threesixes666 wrote:*   

> echo "exec startkde" > ~/.xinitrc

 

Das ist schon geschehen.

 *Quote:*   

> startx reparieren
> 
> xdm ist für mich gebrochen
> 
> kdm sollte besser funktionieren als Scripting xdm

 

Was meinst Du mit "startx reparieren?

Und was soll das heißen "xdm ist für mich gebrochen"?

Ich benötige aber das Script xdm. Dort will ich dann 

DISPLAYMANAGER="kdm" eintragen.

Gruß

Ch. Hanisch

----------

## Hanisch

Hallo,

ich habe eine Lösung gefunden.

In /etc/init.d war eine versteckte Datei abgelegt, die ich in xdm umbenannt habe.

/etc/init.d/xdm hat jetzt folgenden Inhalt, mit dem der automatisch KDE-Start (Anmeldebildschirm) funktioniert:

```
#!/sbin/runscript

# Copyright 1999-2012 Gentoo Foundation

# Distributed under the terms of the GNU General Public License, v2

# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm.initd-9,v 1.1 2012/11/11 01:49:30 chithanh Exp $

# This is here to serve as a note to myself, and future developers.

#

# Any Display manager (gdm,kdm,xdm) has the following problem:  if

# it is started before any getty, and no vt is specified, it will

# usually run on vt2.  When the getty on vt2 then starts, and the

# DM is already started, the getty will take control of the keyboard,

# leaving us with a "dead" keyboard.

#

# Resolution: add the following line to /etc/inittab

#

#  x:a:once:/etc/X11/startDM.sh

#

# and have /etc/X11/startDM.sh start the DM in daemon mode if

# a lock is present (with the info of what DM should be started),

# else just fall through.

#

# How this basically works, is the "a" runlevel is a additional

# runlevel that you can use to fork processes with init, but the

# runlevel never gets changed to this runlevel.  Along with the "a"

# runlevel, the "once" key word means that startDM.sh will only be

# run when we specify it to run, thus eliminating respawning

# startDM.sh when "xdm" is not added to the default runlevel, as was

# done previously.

#

# This script then just calls "telinit a", and init will run

# /etc/X11/startDM.sh after the current runlevel completes (this

# script should only be added to the actual runlevel the user is

# using).

#

# Martin Schlemmer

# aka Azarah

# 04 March 2002

depend() {

   need localmount xdm-setup

   # this should start as early as possible

   # we can't do 'before *' as that breaks it

   # (#139824) Start after ypbind and autofs for network authentication

   # (#145219 #180163) Could use lirc mouse as input device

   # (#70689 comment #92) Start after consolefont to avoid display corruption

   # (#291269) Start after quota, since some dm need readable home

   # (#390609) gdm-3 will fail when dbus is not running

   # (#366753) starting keymaps after X causes problems

   after bootmisc consolefont modules netmount

   after readahead-list ypbind autofs openvpn gpm lircmd

   after quota keymaps

   before alsasound

   # Start before X

   use consolekit dbus xfs

}

setup_dm() {

   local MY_XDM

   

   MY_XDM=$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]')

   # Load our root path from profile.env

   # Needed for kdm

   PATH=${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}")

   NAME=

   case "${MY_XDM}" in

      kdm|kde)

         EXE=/usr/bin/kdm

         PIDFILE=/var/run/kdm.pid

         ;;

      entrance*)

         EXE=/usr/sbin/entrance

         PIDFILE=/var/run/entrance.pid

         ;;

      gdm|gnome)

         EXE=/usr/bin/gdm

         [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary

         PIDFILE=/var/run/gdm.pid

         ;;

      wdm)

         EXE=/usr/bin/wdm

         PIDFILE=

         ;;

      gpe)

         EXE=/usr/bin/gpe-dm

         PIDFILE=/var/run/gpe-dm.pid

         ;;

      lxdm)

         EXE=/usr/sbin/lxdm-binary

         PIDFILE=/var/run/lxdm.pid

         START_STOP_ARGS="--background"

         ;;

      lightdm)

         EXE=/usr/sbin/lightdm

         PIDFILE=/var/run/lightdm.pid

         START_STOP_ARGS="--background"

         ;;

      *)

         # first find out if there is such executable

         EXE="$(command -v ${MY_XDM} 2>/dev/null)"

         PIDFILE="/var/run/${MY_XDM}.pid"

         # warn user that he is doing sick things if the exe was not found

         if [ -z "${EXE}" ]; then

            echo "ERROR: Your XDM value is invalid."

            echo "  No ${MY_XDM} executable could be found on your system."

         fi

         ;;

   esac

   if ! [ -x "${EXE}" ]; then

      EXE=/usr/bin/xdm

      PIDFILE=/var/run/xdm.pid

      if ! [ -x "/usr/bin/xdm" ]; then

         echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm,"

         echo "   or install x11-apps/xdm package"

         eend 255

      fi

   fi

}

# Check to see if something is defined on our VT

vtstatic() {

   if [ -e /etc/inittab ] ; then

      grep -Eq "^[^#]+.*\<tty$1\>" /etc/inittab

   elif [ -e /etc/ttys ] ; then

      grep -q "^ttyv$(($1 - 1))" /etc/ttys

   else

      return 1

   fi

}

start() {

   local EXE NAME PIDFILE

   setup_dm

   if [ -f /etc/.noxdm ]; then

      einfo "Skipping ${EXE##*/}, /etc/.noxdm found or \"nox\" bootparam passed."

      rm /etc/.noxdm

      return 0

   fi

   ebegin "Setting up ${EXE##*/}"

   # save the prefered DM

   save_options "service" "${EXE}"

   save_options "name"    "${NAME}"

   save_options "pidfile" "${PIDFILE}"

   save_options "start_stop_args" "${START_STOP_ARGS}"

   if [ -n "${CHECKVT-y}" ] ; then

      if vtstatic "${CHECKVT:-7}" ; then

         if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then

            ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later"

            telinit a >/dev/null 2>&1

            return 0

         else

            eerror "Something is already defined on VT ${CHECKVT:-7}, not starting"

            return 1

         fi

      fi

   fi

   /etc/X11/startDM.sh

   eend 0

}

stop() {

   local curvt retval

   retval=0

   if [ -t 0 ]; then

      if type fgconsole >/dev/null 2>&1; then

         curvt=$(fgconsole 2>/dev/null)

      else

         curvt=$(tty)

         case "${curvt}" in

            /dev/ttyv[0-9]*) curvt=${curvt#/dev/ttyv} ;;

            *) curvt= ;;

         esac

      fi

   fi

   local myexe myname mypidfile myservice

   myexe=$(get_options "service")

   myname=$(get_options "name")

   mypidfile=$(get_options "pidfile")

   myservice=${myexe##*/}

   [ -z "${myexe}" ] && return 0

   ebegin "Stopping ${myservice}"

   if start-stop-daemon --quiet --test --stop --exec "${myexe}"; then

      start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \

         ${mypidfile:+--pidfile} ${mypidfile} \

         ${myname:+--name} ${myname}

      retval=${?}

   fi

   # switch back to original vt

   if [ -n "${curvt}" ]; then

      if type chvt >/dev/null 2>&1; then

         chvt "${curvt}"

      else

         vidcontrol -s "$((curvt + 1))"

      fi

   fi

   eend ${retval} "Error stopping ${myservice}"

   return ${retval}

}

# vim: set ts=4 :
```

Wo ich aber in diesem Script

DISPLAYMANAGER="kdm" eintragen soll, ist mir schleierhaft.

Das habe ich in /etc/rc.conf am Ende gemacht.

Jedenfalls funktioniert es erst mal.

Gruß

Ch. Hanisch

----------

## schmidicom

1. Lass mich raten die "versteckte Datei" hatte einen Namen wie etwa "._xdm"? Wenn ja gibt es für sowas das tool etc-update welches dir auch ziemlich schnell zeigt weshalb und wofür diese Datei existierte.

2. Die initscripte in /etc/init.d holen ihre Variablen normalerweise aus den gleichnamigen Dateien in /etc/conf.d

----------

## Hanisch

 *schmidicom wrote:*   

> 1. Lass mich raten die "versteckte Datei" hatte einen Namen wie etwa "._xdm"? Wenn ja gibt es für sowas das tool etc-update welches dir auch ziemlich schnell zeigt weshalb und wofür diese Datei existierte.

 

Ja, dieses ._xdm am Ende hat mich ja auf den Gedanken gebracht, die Datei versuchsweise mal in xdm umzubenennen, und es hat geklappt.

 *Quote:*   

> 2. Die initscripte in /etc/init.d holen ihre Variablen normalerweise aus den gleichnamigen Dateien in /etc/conf.d

 

Na ja, so 1:1 wohl doch nicht, denn die /etc/conf.d/xdm hat folgenden Inhalt:

```
# 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="kdm"
```

```
 $ sudo etc-update

Passwort: 

Scanning Configuration files...

Exiting: Nothing left to do; exiting. :)
```

Jedenfalls ist mein Problem jetzt zufriedenstellend gelöst.

Gruß

Ch. Hanisch

----------

