Arch Linux에서 로그인 세션을 유지하는 방법은 무엇입니까?

Arch Linux에서 로그인 세션을 유지하는 방법은 무엇입니까?

어제 Arch Linux에서 오디오가 제대로 작동했지만 어느 시점에서 다시 작동이 멈췄습니다.

$ alsamixer 
cannot open mixer: No such file or directory
$ vlc foo.mp4
...
[0x7f1388006be8] alsa audio output error: cannot open ALSA device "default": No such file or directory

alsamixer잘 작동하는데 root, 권한 문제인 것 같습니다. 모든 오디오 장비는 다음에 속합니다 root:audio.

$ ls -l /dev/snd
total 0
drwxr-xr-x 2 root root       80 Aug  6 22:54 by-path
crw-rw---- 1 root audio 116,  7 Aug  6 22:54 controlC0
crw-rw---- 1 root audio 116, 10 Aug  6 22:54 controlC1
crw-rw---- 1 root audio 116,  6 Aug  6 22:54 hwC0D0
crw-rw---- 1 root audio 116,  9 Aug  6 22:54 hwC1D0
crw-rw---- 1 root audio 116,  5 Aug  6 22:54 pcmC0D0c
crw-rw---- 1 root audio 116,  4 Aug  6 22:54 pcmC0D0p
crw-rw---- 1 root audio 116,  3 Aug  6 22:54 pcmC0D1p
crw-rw---- 1 root audio 116,  2 Aug  6 22:54 pcmC0D2c
crw-rw---- 1 root audio 116,  8 Aug  6 22:54 pcmC1D3p
crw-rw---- 1 root audio 116,  1 Aug  6 22:54 seq
crw-rw---- 1 root audio 116, 33 Aug  6 22:54 timer
$ getfacl /dev/snd/*
getfacl: Removing leading '/' from absolute path names
# file: dev/snd/by-path
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

# file: dev/snd/controlC0
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/controlC1
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/hwC0D0
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/hwC1D0
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/pcmC0D0c
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/pcmC0D0p
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/pcmC0D1p
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/pcmC0D2c
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/pcmC1D3p
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/seq
# owner: root
# group: audio
user::rw-
group::rw-
other::---

# file: dev/snd/timer
# owner: root
# group: audio
user::rw-
group::rw-
other::---

그래요아니요audio그룹의 추천을 바탕으로ALSA 교육:

$ groups
wheel users

논의하다나에게 하나를 가리켰다설명하다이 그룹을 추가하는 것이 불필요하고 때로는 유해한 이유. 거기서부터 시작해사용자 그룹정보에 따르면

표준 데스크톱 권한(예: 사운드, 3D, 인쇄, 설치 등)에는 다음과 같은 그룹이 필요하지 않습니다.logind세션이 중단되지 않습니다.

지시 사항을 따르십시오세션 권한 문제 해결, 마침내 차이점을 발견했습니다. 출력에 및 가 loginctl show-session $XDG_SESSION_ID포함되어야 한다고 했지만 다음과 같은 결과를 얻었습니다.Remote=noActive=yes

$ loginctl show-session $XDG_SESSION_ID
ControlGroupHierarchy=/user
ResetControllers=cpu
NAutoVTs=6
KillExcludeUsers=root
KillUserProcesses=no
IdleHint=yes
IdleSinceHint=0
IdleSinceHintMonotonic=0
InhibitDelayMaxUSec=5s
HandlePowerKey=poweroff
HandleSuspendKey=suspend
HandleHibernateKey=hibernate
HandleLidSwitch=suspend
IdleAction=ignore
IdleActionUSec=30min
PreparingForShutdown=no
PreparingForSleep=no

거기에서 나는 다음과 같은 정보를 찾았습니다.세션 유지, 이것은 적용되지 않는 것 같습니다. /etc/X11/xinit/xserverrc내 것은 설치 이후 수정되지 않았습니다.

$ ls -l /etc/X11/xinit/xserverrc
-rw-r--r-- 1 root root 132 Oct 31  2012 /etc/X11/xinit/xserverrc

SLiM이 잘 작동하는 것 같습니다.

$ systemctl status slim.service
slim.service - SLiM Simple Login Manager
   Loaded: loaded (/usr/lib/systemd/system/slim.service; enabled)
   Active: active (running) since Sat 2013-08-10 00:00:39 CEST
 Main PID: 258 (slim)
   CGroup: name=systemd:/system/slim.service
           ├─ 258 /usr/bin/slim -nodaemon
           ├─ 292 /usr/bin/X -nolisten tcp vt07 -auth /var/run/slim.auth
           ├─ 416 /usr/bin/gnome-keyring-daemon --daemonize --login
           ├─ 418 awesome
           ├─ 423 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
           ├─ 472 xscreensaver -no-splash
           ├─ 479 firefox
           ├─ 481 java -Xmx192M -jar /usr/share/java/jedit/jedit.jar -reuseview
           ├─ 483 pidgin
           ├─ 485 xterm
           ├─ 500 bash
           ├─ 581 /usr/lib/at-spi2-core/at-spi-bus-launcher
           ├─ 641 xterm
           ├─ 643 bash
           ├─1006 git gui
           ├─1007 wish /usr/lib/git-core/git-gui --
           ├─1367 dbus-launch --autolaunch e943bbb765d74fceb0393a55ceebfd1d --binary-syntax --close-stderr
           ├─1368 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
           ├─1403 ekiga
           ├─1405 /usr/lib/GConf/gconfd-2
           ├─1476 thunar
           ├─1478 /usr/lib/xfce4/xfconf/xfconfd
           └─1589 systemctl status slim.service

로그인 세션을 수정하여 (아마도) 오디오 권한을 수정하려면 어떻게 해야 합니까?

답변1

문제는 login_cmd다음과 같습니다@jasonwryan이 힌트를 줬어요;GNOME > 2.30 구성 권장 사항에 따라 [SLiM + GNOME Keyring][7]을 따르는 대신 원래 값을 유지해야 합니다.

$ grep login_cmd /etc/slim.conf
# login_cmd           exec /bin/sh - ~/.xinitrc %session
# login_cmd           exec /bin/bash -login ~/.xinitrc %session
login_cmd           exec dbus-launch /bin/bash -login ~/.xinitrc %session >~/.xsession-errors 2>&1

이것으로 되돌린 후에 login_cmd exec /bin/bash -login ~/.xinitrc %session는 이제 더 합리적인 세션 정보를 얻을 수 있습니다.

$ loginctl show-session $XDG_SESSION_ID
Id=c1
Timestamp=Fri 2013-08-09 22:30:28 CEST
TimestampMonotonic=11871667
DefaultControlGroup=systemd:/user/1000.user/c1.session
VTNr=7
Display=:0.0
Remote=no
RemoteUser=root
Service=slim
Leader=260
Audit=0
Type=x11
Class=user
Active=yes
State=active
KillProcesses=no
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
Name=username

이는 실제로 주요 문제를 해결합니다. vlc첫 번째 HDA Intel 오디오 장치를 사용하도록 수동으로 설정하면 비디오를 재생할 수 있습니다.

관련 정보