I decided it was time to upgrade my server from opensuse 11.0 to 11.3. Most everything went well (note that I did a clean install onto a new hard drive even, this was not an upgrade install).
So far I like 11.3 (seems faster even), but there are a couple issues I can’t seem to resolve.
- I used to be able to run vncserver to start a vnc session tied to a desktop so that if I lost the connection I could reconnect to the vnc session and resume what I was doing. That part still works (vncserver does what its supposed to). However, I used to edit the ~/.vnc/xstartup file and replace the “twm &” at the end of file with “startkde &” to start a KDE (3.5) session. Under opensuse 11.3 (and thus KDE 4) all this does is yield a gray screen with nothing running.
How do I get a KDE4 session running using this (or some similar) method? Note that the stock VNC method work, I can connect to the default VNC port and am shown a login screen which, once I log in, takes me to a KDE4 desktop. The problem with that method is that if the VNC session is dropped I cannot reconnect to the open desktop.
- Under KDE 3.5 I was running a VM (using virtual box) to host a machine that I would play music and other audio sources over (I know its a complex use case, but that is not the point of this post). I have it set up to play audio using the Host Driver “ALSAAudio Driver” and guest controller “ICHAC97”. This works if I log into the machine locally, all audio systems play sound, the VM’s audio is set to the host OS and then to zone 2 of my receiver. The problem is when I try to do this via a VNC session. Remember this is my home server and thus is headless. Nearly all my interactions with the server are via SSH or VNC. When I log in via VNC the audio system crashes. I get a message in Notification and Jobs widget that says the HDA Intel ALC1200 Analog device has failed, falling back to default. After which no sound played, either from KDE4 or the VM. Interestingly if I leave a locally logged in session on the server and then log in via VNC KDE4 will still play sounds, but I start an application (virtual box, VLC, etc) they cannot play sounds.
What I recall from my KDE 3.5 setup was an option in the Personal Settings menus that was something to the effect of Network Audio or Play Network Sounds. I originally had similar issues in 11.0 KDE 3.5, the local logins had sound but the VNC sessions did not. After enabling that option both VNC and local uses had sound.
What I want is for a remote VNC session to be able to send sounds to server’s audio device which in turn sends to my sound system. I am not trying to get sounds to play over the VNC session.
Asus P5Q Pro (Intel P45 chipset) using onboard Audio (Intel HD Audio, running in AC97 mode as per the BIOS setting, HD Audio mode was not playing any sounds even in local logins so I set it to AC97 for compatability).
I decided to reboot into the old OS since I still had it laying around on the old disk.
The sound option in KDE 3.5 is:
Personal Settings -> Sound & Multimedia -> Sound System -> Networked Sound -> Enable Networked Sound
“Enable this option if you want to play sound on a remote computer or you want to be able to control sound on this system from another computer.”
Does anyone know the the KDE 4 version of this option?
Kickoff menu>Favourites tab>System Settings>Multimedia
There is no System Settings, just “Personal Settings (Configure Desktop)” and “YaST (Administrator Settings)”.
YaST does not have a multi media section. Personal Settings, like in KDE 3.5 has a Multimedia section, but unlike KDE 3.5, KDE 4 does not have any options for Networked Sound. Furthermore while running locally the multimedia section has my sound devices in there, while running remotely via VNC the only device listed in multimedia is “Dummy Output” with an “Internal Analog Stereo” grayed out.
Concerning VNC and KDE4: It appears that if I run vncserver from an SSH session (ie no GUI) it properly loads KDE4 in a VNC session, but I run vncserver from with in a console inside of an already existing KDE4 session, the new VNC KDE session fails.
Concerning the network audio: I found an option in the YaST sound section to enable Pulse Audio (it was disabled). Turning that on now allows for the play test sound option in YaST to play audio on the server even when done via VNC. It also appears to allow the root user to play audio on in a VNC session (I hear the KDE4 start up sound) but other media sources do not play audio. The virtual machines still do not play audio when started via VNC even after switching the host audio from ALSA to Pulse.
There is on my system (KDE 4.4.4).
Correct. It has a Hardware>Sound section.
I didn’t claim it did, but just pointed you to the KDE4 equivalent place for “Settings” on my 11.3 system upgraded from 11.2 (and it was the same on 11.2 KDE4). One would expect differences between KDE 4’s implementation and KDE 3.5.
Understood, but I am looking for the specific Networked Sound option(s). It used to be with the multimedia options (which is what you pointed to and where I first began my search since this is where it was in 3.5), but it is either now located elsewhere or completely missing (unsupported?). A config file would also work, the problem is I don’t know which file to edit.
KDE 3, and hence 3.5, used an audio framework called aRts that included a sound server. aRts was replaced by Phonon (multimedia API) from KDE 4.0 onwards. The main sound servers available for KDE 4 include PulseAudio which has advanced features such as network audio (ALSA doesn’t), and JACK which is a professional sound server. These sound servers can use the hardware backends e.g. ALSA. So for KDE 4, it looks like PA would provide a networked sound capability, as you seem to have discovered.
There is the following package available, and here is description (YaST or zypper):
paprefs - PulseAudio Preferences
PulseAudio Preferences (paprefs) is a simple GTK based configuration dialog for the PulseAudio sound server. Please note that this program can only configure local servers, and requires that a special module module-gconf is loaded in the sound server.
See this link for more info, and there find a screenshot link in the Overview section.
That makes sense and would explain why the networked sound option is no longer present in KDE 4. After some more research and playing with the info in the link you posted I think I understand the audio systems a bit better. Unfortunately I cannot seem to get PulseAudio to work in KDE4 (this appears to be a common problem according my google results). Furthermore I am not sure a network based audio system is really what I need. I know it is what I was playing with in KDE 3.5, but I am starting to think it was a side effect of enable the networked audio option rather than actually using a network based audio system. I say this because the audio source is on the same physical machine as the audio hardware. I know this is sort of opposite to what I was previously trying figure out.
One thing don’t I quite get is that when I log in locally on the machine I can see all the audio hardware and works just as expected. Under the multimedia section I see my audio devices and I can play the test sound there and I hear it. When I log in via VNC the audio hardware is grayed out and I cannot play any sounds. Furthermore there is a “Dummy Output” being shown does nothing. Under YaST I can play the test sound it always plays, both locally and via a VNC session with or without PulseAudio enabled (with PulseAudio enabled under the multimedia tab I cannot play a test sound even when logged in locally, this leads me to think PulseAudio is not the solution I need).
It is almost like when logging in via VNC that the remote session does not get access to all of the computer’s hardware. (Note that the VNC session is started via the built in VNC server where you get the login screen, ie I am not starting VNC after logging in via the vncserver command). If you are familiar with the Windows RDP client there are three options under the Local Resources -> Remote Audio -> Remote Audio Playback, either “Play on this computer”, “Do not play”, or “Play on remote computer” (these are setting telling the server computer what to do with sounds the server computer is generating). What I am trying to do is the “Play on remote computer” but the current configuration appears to be “Do not play”.
What I find interesting is the YaST appears to be able to send audio to the hardware regardless of remote vs local login, but all processes spawned by the user when using a remote login do not get access to the audio hardware.