Dalam semangat pengungkapan penuh, saya hanya memposting pertanyaan ini ke forum ubuntu, tetapi saya pikir lebih banyak kepala yang mengerjakannya tidak ada salahnya.
Saya memiliki pengaturan multi-kursi yang bekerja dengan cukup baik. Perangkat input plugging panas berfungsi seperti yang diharapkan dan semacamnya. Satu-satunya masalah yang saya masih belum dapat menyelesaikannya adalah mendapatkan audio untuk setiap kursi.
Berikut ini ringkasan upaya saya untuk membuat audio berfungsi:
Buat ~ / .pulse / default.pa dikonfigurasikan secara dinamis berdasarkan $ DISPLAY tempat pengguna login.
- Lihat pastebin ini untuk detailnya.
Memuat pulseaudio sebagai instance seluruh sistem.
- Tidak bisa menjalankan ini. Tidak ada perangkat keras audio yang dapat diakses oleh pengguna.
Gunakan aturan udev untuk menandai kursi di ConsoleKit. Pedoman udev berikut ditemukan di sini: http://www.freedesktop.org/wiki/Software/systemd/multiseat
- Saya tidak berpikir ini akan berhasil, meskipun "dijamin" bekerja oleh seseorang di irc.freenode #pulseaudio
Tak satu pun dari upaya itu menghasilkan kesuksesan, itulah sebabnya saya sekarang meminta bantuan kepada komunitas. Sangat mungkin bahwa metode yang disarankan berfungsi dan saya hanya mengacaukan beberapa aspek, idk. Ini adalah bagian terakhir dari teka-teki yang diperlukan sebelum saya bisa pergi dan memperbarui halaman MultiseatX untuk memasukkan instruksi untuk Ubuntu 12.04.
Pemahaman saya tentang situasi ini: Akses ke pulseaudio terbatas pada sesi aktif yang ditandai oleh ConsoleKit (sesuatu tentang ACL). CK hanya dapat menandai satu sesi sebagai aktif pada suatu waktu. Fakta kecil kehidupan yang sederhana ini membuat saya percaya bahwa solusinya harus melibatkan pulseaudio yang dijalankan sebagai turunan sistem. Setiap pengguna harus terhubung ke server pulsa dan dibatasi untuk subset dari semua perangkat keras. Mungkin setiap pengguna terhubung ke server pulsa melalui localhost, idk. Saya tahu bahwa terlepas dari usaha saya dan hasil yang gagal, saya selalu dapat menggunakan sudo aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Center.wav
untuk memainkan sesuatu ke salah satu perangkat keras.
Aku mencengkeram sedotan dan sekarang turun ke beberapa helai rambut terakhir yang bisa aku tarik keluar dari kepalaku. Tolong, bantu saya mencari tahu ini sehingga kami dapat berbagi kekayaan. Setiap informasi tambahan yang diperlukan akan diberikan atas permintaan Anda.
sumber
/etc/pulse
, bukan di HOME.Jawaban:
Saya telah menghabiskan banyak waktu untuk meneliti online, menguji berbagai pengaturan dan berbicara dengan pengembang Pulseaudio. Intinya, menjalankan pulseaudio dalam mode pengguna normal hanya akan memungkinkan sesi aktif yang ditandai oleh ConsoleKit untuk mengakses perangkat keras audio. Karena ConsoleKit saat ini hanya dapat menandai satu sesi sebagai aktif pada suatu waktu, ini berarti bahwa kita harus menjalankan instance pulseaudio di seluruh sistem. Sisi baiknya: Setiap kursi dapat memiliki audio tersendiri. Kelemahannya: SEMUA perangkat keras audio tersedia untuk semua pengguna dan dapat dimanipulasi SAAT. Ini bukan situasi yang ideal untuk warnet atau pengaturan publik lainnya di mana keamanan adalah masalah nyata. Ingatlah ini ketika membuat kebijakan keamanan situs Anda. Mungkin bijaksana untuk membatasi eksekusi pavucontrol hanya untuk admin.
Seperti biasa, buat cadangan semua file konfigurasi default Anda. Jika Anda telah mengotak-atik konfigurasi Anda tanpa membuat cadangan, Anda dapat mengambil paket pulseaudio dengan apt-get -d install pulseaudio. Ini hanya akan mengunduh paket (ke / var / cache / arsip / apt) dan Anda dapat mengekstrak konten untuk mengambil konfigurasi default. Ketahuilah bahwa client.conf tidak termasuk di sana.
Untuk menjalankan pulseaudio sebagai daemon sistem, kita perlu mengedit beberapa file.
1.) / etc / default / pulseaudio
2.) /etc/pulse/daemon.conf - Lihat man pulse-daemon.conf untuk informasi lebih lanjut.
3.) /etc/pulse/client.conf
Kami juga perlu menambahkan pengguna ke grup akses-pulsa.
Sekarang semua pengguna dapat mengakses perangkat keras audio, kita harus memilih perangkat keras yang akan digunakan setiap pengguna. Ini dapat dilakukan dengan menggunakan pavucontrol. Perlu diketahui bahwa pengaturan disimpan PER PENGGUNA dan tidak akan mengikuti kursi. Jika pengguna berganti tempat duduk, Anda harus memilih kembali perangkat keras audio yang diinginkan.
Komentar Tambahan tentang Pulseaudio
Saya berharap akan ada solusi yang lebih elegan untuk membuat audio per kursi bekerja. Menggunakan Pulseaudio di seluruh sistem dalam multiseat memiliki banyak kelemahan dan tidak sepenuhnya stabil di antara reboot. Saya telah mencoba untuk memulai instance sistemwide dan memiliki contoh pengguna terhubung ke server sebagai via localhost. Itu tampaknya tidak berfungsi sejak ketika pulseaudio --start dijalankan, sumber daemon.conf.
Mengenai ConsolKit
Masalah yang kita lihat ketika menjalankan pulseaudio normal per pengguna adalah bahwa satu kursi memiliki akses ke perangkat keras dan yang lainnya memiliki Dummy Output. Ini karena ConsoleKit tidak sepenuhnya sadar akan kursi. CK menganggap semua kursi kami sebagai sesi seat1 dan hanya dapat menandai satu sesi sebagai aktif. Fakta ini dapat dilihat dengan menjalankan getfacl / dev / snd / *. Saya berpikir bahwa kita mungkin dapat mengedit acl dari file / dev / snd / yang sesuai berdasarkan $ DISPLAY yang digunakan oleh pengguna tertentu. Ini adalah opsi yang belum saya jelajahi. Silakan pertimbangkan berkontribusi pada penyebab multiseat dengan menjelajahi hipotesis ini dan mengedit dokumen dengan temuan Anda.
Cabang multiseat untuk ConsoleKit , GDM-2.3 dan GDM-3.x memang ada yang seharusnya menyediakan fungsionalitas multiseat otomatis.
catatan tambahan
1.) Sebaiknya larang juga pengguna tidak memuat modul DISALLOW_MODULE_LOADING = 1.
2.) autospawn = tidak tidak sepenuhnya diperlukan seperti yang terlihat pada file contoh saya. Itu tidak menyebabkan masalah.
sumber
Ada patch untuk ConsoleKit untuk menambahkan dukungan multiseat; ini akan memungkinkannya untuk melaporkan semua kursi aktif sebagai aktif. Mungkin ini akan memperbaiki masalah Anda. Perlu kerja sama dengan manajer tampilan, dan ada tambalan ke versi lama GDM yang menambahkan dukungan ini.
Saya mendapat multiseat yang berfungsi di Natty (11.04) menggunakan paket ConsoleKit dan GDM yang dimodifikasi dari PPA . Saya belum memutakhirkan dari Natty - saya butuh waktu lama untuk mengetahui cara membuatnya bekerja, dan saya khawatir bahwa LightDM tidak akan bekerja dengan ConsoleKit yang ditambal.
EDIT: Saya harus mencatat bahwa Fedora 17 memiliki beberapa fitur multiseat yang mengesankan, beberapa di antaranya akan ada di Quantal. Mereka memiliki halaman wiki yang menggambarkan pendekatan mereka . Ubuntu tidak bisa begitu saja menyalin pendekatan Fedora karena itu akan membutuhkan perubahan signifikan; Fedora menggunakan systemd dan GDM sementara Ubuntu menggunakan pemula dan LightDM.
sumber
Saya baru-baru ini sedang mencoba untuk menyelesaikan masalah dengan PulseAudio dan Multiseat. Melihat bahwa tidak ada solusi yang elegan, solusi saya adalah menggunakan jaringan.
Solusi ini sesuai dengan skenario saya karena saya adalah pengguna yang paling sering berada di mesin dan kursi saya paling sering masuk. Dan kursi saya dikonfigurasi dengan tangan kiri dan tidak ada orang lain yang menggunakannya.
Di saya,
~/.config/pulse/default.pa
saya menyalin konfigurasi sistem/etc/pulse/default.pa
dan menambahkan baris berikut:Di pengaturan pulseaudio pengguna lain, tambahkan sebuah terowongan --atau beberapa yang lain, jika itu yang Anda butuhkan - dengan sesuatu:
Ubah nama wastafel agar sesuai dengan yang ada di mesin Anda. Anda dapat memutuskan untuk mengonfigurasi nama yang lebih ramah - yang artinya Anda harus mengonfigurasinya dalam file pengaturan pulseaudio Anda - tetapi saya hanya menggunakan nama yang diberikan dengan melihatnya
pacmd list-sinks
.Ini bukan solusi yang elegan, saya mungkin akan mencoba menggunakan konfigurasi seluruh sistem seperti yang disarankan oleh @Anthony di rig saya berikutnya, tetapi jika Anda memiliki banyak kartu dan hanya ingin berbagi satu atau beberapa wastafel / sumber, ini adalah lebih banyak solusi "bedah".
sumber