as the Solaris code has been
integrated into the main source.
You might get errors when compiling playlist_list.c about symbol wcsstr not being found. This only happens on Solaris 2.6 (and possibly earlier versions)
This is due to a half-hearted attempt at having wide character support in Solaris; XMMS checks for the existence of wchar.h and assumes this is a complete implementation of wide character support (including wcsstr). The fix is to modify xmms/playlist_list.c at line 232 where it reads:
and change it to
This will prevent the bad code from being compiled. As near as I can tell, this will only affect you if you rely on non-ASCII fonts (Unicode?). Also, this problem does not exist in Solaris 7 or 8 as both implement wcsstr().
Alternatively, you can, if you wish, use wcswcs() which seems to be the same as wcsstr(). Simply add a line saying:
#define wcsstr wcswcs
According to Frank Wojcik, this seems to work.
GTK/GLIB require a lot of shared memory, more than the 1MB default under Solaris. A symptom of this is a 'shmat' error on starting XMMS. This causes the player to not work. To fix this, add the following to /etc/system:
set shmsys:shminfo_shmmax = 8388608 set shmsys:shminfo_shmmni = 0x1000 set shmsys:shminfo_shmseg = 0x100
You will have to reboot for this to take effect. Note that while the kernel will now allocate up to 8MB of shared memory, this is a maximum and it will only allocate this much if it needs to. In short, it's better to overestimate the amount of shared memory required as you will have to reboot to increase it.
An alternative option (courtesy of Mark Weel) is to configure gtk+ using --enable-shm=no. This allows installation of XMMS without superuser privelages.
setuid execution (for realtime priority) doesn't work as well as it might; Solaris won't load shared libraries from LD_LIBRARY_PATH when using setuid programs for security. As a result, you might have to make symbolic links in /usr/lib pointing to the real libraries. It may be possible to hard code the library paths, but I haven't tried this. ldd xmms will show which libraries are required. Remember to check plugins! esd plugin also requires libesd.
You may find an error similar to the following when you try and start XMMS:
This seems to happen on machines with Creator 3D (or other high-end) graphics cards where the display is set to 8bpp and the card is capable of 24bpp.
There are currently two solutions; the first (and recommended) solution is to upgrade to XMMS 1.2.2 or above (1.2.3 is recommended as this fixes some other problems with colours).
If upgrading isn't an option (unlikely), you can use the following information as a workaround:
Dan Szkola provided the following information:
For those using xinit, this solucion courtesy of Roman Shterenzon:
#!/bin/sh exec /usr/openwin/bin/Xsun :0 -nobanner -dev /dev/fbs/ffb0 defdepth 24
This is probably due to one of two things (assuming you've checked the volume and speaker/headphone cables):
CD playing doesn't work 'out of the box'. Here is a fix I found on usenet:
[CDDA] device=/vol/dev/aliases/cdrom0 directory=/cdrom/ use_oss_mixer=FALSE
[xmms] ... filesel_path=/cdrom/
Finally, in some cases, you may not have an audio cable between the CD drive and the audio card; this is certainly the case in many Ultra 1's, I believe.
Update! If you're having trouble, try the new 0.6.1 plugin (or newer).
CD audio might be a bit cruddy to begin with after a reboot; this can be fixed by starting /usr/openwin/bin/audiocontrol and setting the record settings.
Update! If you're having trouble, try the new 0.6.1 plugin (or newer).
Some people have been getting errors like this:
There are two fixes for this; the first is from here on the XMMS forum:
Make sure you run 'make distclean' before running the above and also use the path to your version of gcc; eg, for gcc 2.8.1 on Solaris 2.6 for sparc would be LIBS="-L/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1 -lgcc"
The other is from Todd Goodman; basically, the problem is that your setup is picking up the Solaris ld instead of the bintools version. Install bintools and make sure that /usr/local/bin is before /usr/ccs/bin in your path.
Apparently, yes. The limits for shared memory still apply, and administrators of the Sunray server may wish to increase the shared memory values given above to compensate for the increased demand of shared memory XMMS may entail.
Another point to consider is that Sunray devices rely on the AUDIODEV environment variable to direct sound to the correct client. To allow for this, the XMMS-Solaris plugin can be set to always use the AUDIODEV environment variable and ignore the value in ~/.xmms/config. Simply go to Preferences, configure the Solaris plugin and select the check box marked "Always use AUDIODEV environment variable".
This may also be useful in situations where you have accounts on multiple machines where the audio device is different in each one; you can set AUDIODEV to the correct device in ~/.cshrc (or whatever) based on the hostname.
Some users have reported poor sound quality and other problems under Solaris 8. It is thought that this is due to the new mixer code in Solaris 8 (there are white papers etc available from Sunsolve). I've heard there are internal bug reports on the mixer code which may or may not be related. I'm now using Solaris 8 and have yet to experience any problems, so I don't know how to fix it! If anyone does find a problem and can supply patches, let me know.
Further to this, I've heard that it's not just XMMS that does this; apparently XAudio does the same. This means it's not just an XMMS problem; whether both are bugged in the same way or the Solaris code is bugged I'm not sure. Also, it seems a simple pause/replay fixes the problem.
Versions prior to 0.6.3 have problem playing 16 bit wav files on the SPARC platform (I think x86 should work ok, though). If these are the problem, please upgrade.
There are problems playing 8 bit wavs; I assume this is due to the coversion routines not working correctly. I'll try to fix this ASAP.
As an aside, given how long these bugs went unreported shows just how few people are using XMMS to play .wav files :)
Unless it's mentioned in the requirements, you're out of luck as Solaris won't support it (or, in the case of the AMD audio devices, they're too much hassle to support).
However, you may still have a chance of XMMS working. You can buy commercial drivers for many cards from 4Front technologies which will support cards. You should then be able to use the OSS driver supplied in the basic XMMS install to play MP3's using XMMS.
Like XMMS, the Solaris plugin is distributed under the GNU Public License. I don't really have much choice in this as a lot of the code was ripped off from, er, based on the original OSS code from XMMS.
If you have any problems, please mail me and I'll do my best to help. I'm also interested to get any input files which don't work under xmms-solaris but work ok under linux/FreeBSD. This will help me find any bugs in the code. Do not mail me the files without giving me simple mail first to see if I am working on the problem or not.
File last modified: Saturday, 06-Mar-2004 14:12:08 GMT