Hallo zusammen,

bin neu hier im Arch-Forum, neu in Arch, nicht ganz neu in Linux, aber hatte bisher eher die Klickibunti-Distris am Start. Nun bin ich auf Arch umgestiegen, bin begeistert und will es weiter nutzen.

Zu meinem Problem... beim Starten von Programmen über die Konsole erhalte ich folgende Fehlermeldung:
No protocol specified
Unknown Error couldn't connect to display ":0"
Habe sowohl hier als auch bei Google herausgefunden, dass es wohl am eingetragenen Hostname in der Datei /etc/hostname liegt. Dieser ist allerdings korrekt. Wenn ich mich recht erinnere, habe ich bei der Installation keinen Hostname gesetzt, sondern ihn später händisch eingetragen. Scheint aber leider so nicht zu funktionieren.

Hoffe ihr habt Tipps für mich, wie ich das Problem lösen kann.

MfG
dgnww


EDIT: hier noch die Inhalte der Dateien /etc/hosts
#
# /etc/hosts: static lookup table for host names
#

#<ip-address>	<hostname.domain.org>	<hostname>
127.0.0.1	localhost.localdomain	grapefruit
::1		localhost.localdomain	grapefruit

# End of file
und /etc/hostname
grapefruit
Versuchst Du es als root oder als User?
Hi glako,

im Moment bin ich mir nicht sicher, ob ich den Hostname als direkt angemeldeter root oder als user mittels sudo gesetzt habe.
Falls du den Programmstart meintest, das geschieht per sudo.

Gruß
dgnww


EDIT: hab grade festgestellt, dass das Problem im root-Account nicht auftritt. Frage mich nur, wo ich den Fehler eingebaut hab...
  • [gelöscht]

Ein X Server läuft aber schon wenn Du versuchst "Programme aus der Konsole raus zu starten" ?
(Obwohl die Fehlermeldung da IMHO eine andere sein müßte)

Ansonsten würde ich auf falsche Berechtigungen deines USERs tippen, ggf. durch unsachgemäßen Umgang mit su bzw. sudo.
Gib als root oder als dein User mal ein:
find /home/deinusername -user root
(deinusername latürnich entsprechend anpassen!)
Das listet bei Erfolg alle Dateien in deinem $HOME deines Users auf, die fälschicherweise dem root User gehören. Beliebte Kandidaten wären da z.B. die Xauthority.
Wenn der find-Befehl Dateien auflistet, dann mußt du als root (mit chown) diese Dateien wieder deinem user übereignen.
@GerBra/offline
Ja, der X-Server läuft selbstverständlich. Siehe Screenshot. Find liefert keine Ausgabe.



Hier mal ein Teil des xorg-Logfiles, der mir auffiel...
[     7.392] removing GPU device /sys/devices/pci0000:00/0000:00:02.0/drm/card0 /dev/dri/card0
[     7.392] (II) config/udev: Adding drm device (/dev/dri/card0)
[     7.392] (II) xfree86: Adding drm device (/dev/dri/card0)
[     7.392] setversion 1.4 failed: Permission denied
[     7.393] removing GPU device /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1 (null)
[     7.393] removing GPU device /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-VGA-1 (null)
[     7.393] removing GPU device /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1 (null)
[     7.393] removing GPU device /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-1 (null)
[     7.393] removing GPU device /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-2 (null)
[     9.983] (II) config/udev: Adding input device TPPS/2 IBM TrackPoint (/dev/input/event13)
[     9.983] (**) TPPS/2 IBM TrackPoint: Applying InputClass "evdev pointer catchall"
[     9.983] (II) Using input driver 'evdev' for 'TPPS/2 IBM TrackPoint'
[     9.983] (**) TPPS/2 IBM TrackPoint: always reports core events
[     9.983] (**) evdev: TPPS/2 IBM TrackPoint: Device: "/dev/input/event13"
[     9.983] (--) evdev: TPPS/2 IBM TrackPoint: Vendor 0x2 Product 0xa
[     9.983] (--) evdev: TPPS/2 IBM TrackPoint: Found 3 mouse buttons
[     9.983] (--) evdev: TPPS/2 IBM TrackPoint: Found relative axes
[     9.983] (--) evdev: TPPS/2 IBM TrackPoint: Found x and y relative axes
[     9.983] (II) evdev: TPPS/2 IBM TrackPoint: Configuring as mouse
[     9.983] (**) evdev: TPPS/2 IBM TrackPoint: YAxisMapping: buttons 4 and 5
[     9.983] (**) evdev: TPPS/2 IBM TrackPoint: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[     9.983] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio4/serio5/input/input16/event13"
[     9.983] (II) XINPUT: Adding extended input device "TPPS/2 IBM TrackPoint" (type: MOUSE, id 13)
[     9.983] (II) evdev: TPPS/2 IBM TrackPoint: initialized for relative axes.
[     9.983] (**) TPPS/2 IBM TrackPoint: (accel) keeping acceleration scheme 1
[     9.983] (**) TPPS/2 IBM TrackPoint: (accel) acceleration profile 0
[     9.983] (**) TPPS/2 IBM TrackPoint: (accel) acceleration factor: 2.000
[     9.983] (**) TPPS/2 IBM TrackPoint: (accel) acceleration threshold: 4
[     9.984] (II) config/udev: Adding input device TPPS/2 IBM TrackPoint (/dev/input/mouse1)
[     9.984] (II) No input driver specified, ignoring this device.
[     9.984] (II) This device may have been added with another device file.
[    22.390] (II) intel(0): EDID vendor "LEN", prod id 16560
[    22.390] (II) intel(0): Printing DDC gathered Modelines:
[    22.390] (II) intel(0): Modeline "1366x768"x0.0   67.00  1366 1398 1422 1435  768 771 775 778 -hsync -vsync (46.7 kHz eP)
[    22.390] (II) intel(0): Modeline "1366x768"x0.0   55.82  1366 1398 1422 1435  768 771 775 778 -hsync -vsync (38.9 kHz e)
  • [gelöscht]

Gut, das ist was anderes ;-)
Du versuchst per sudo einen X-Client als root auf dem DSPLAY deines Users zu starten. Das ist eine der wenigen Dinge, die root nicht automatisch darf. Xorg regelt das durch einen Schutz mittels userspezifischer "Cookies".

Abhilfe:
a) wenn es dauerhaft sein sollte, du also öfters als Fremduser X-Programme auf dem DISPLAY deines Normalusers ausführen willst (was speziell für root auch sicherheitskritisch sein kann/ist!), dann solltest du dir die manpage zu xauth anschauen, evtl. ist in den Arch-Wikis auch was zu finden. Hierbei würde dein USER eine Art "Cookie" - nämlich das X-Cookie von root - zu seiner .Xauthority hinzufügen.
b) Kurzfristig kann das auch mittels des xhost Kommandos erfolgen. Hierbei hebelt man die o.a. "Cookie"-Überprüfung aus und erlaubt bestimmten Hosts+User den Zugriff auf den eigenen X Server - allerdings ohne sehr sichere Verifizierung.
Als User ausführen:
xhost +local:root
erlaubt root (somit dein sudo-Kommando) den Zugriff, solange dieser von einer lokalen Maschine und als User root erfolgt.
xhost +
erlaubt Zugriff von überall+jedem.
Nachdem der gewünschte Vorgang abgeschlossen ist sollten die obigen Zugriffe auch wieder entfernt werden für diese Sitzung:
xhost -local:root bzw. xhost -

Ich habs unter einem *BSD hier kurz angetestet (bis auf sudo, habe grad kein sudo hier), für das Xorg von Arch sollte es aber auch passen.
  • [gelöscht]

GerBra(offline) schrieb xhost +local:root
erlaubt root (somit dein sudo-Kommando) den Zugriff, solange dieser von einer lokalen Maschine und als User root erfolgt.
Sorry, statt "lokaler Maschine"(was so bißchen wie lokales Netzwerk klingt) hätte ich besser (und richtiger) geschrieben: solange der Zugriff von einem Prozeß bzw. Vorgang auf der *gleichen Maschine* und als User root erfolgt.
Danke dir für die schnelle Abhilfe. Da wird die man xauth dann wohl meine Abendlektüre werden.

Hatte vor ein paar Wochen schon mal Arch installiert. Da hatte ich das Problem nicht. Weiß auch nicht, was ich anders gemacht hätte.