Skype + FreeBSD 4.10 Skype + FreeBSD 5.x new Tested on FreeBSD 4.10 STABLE (latest cvsup update - 23.08.2004)
You need FreeBSD version 4.10 with the latest kernel update (highly recommend you read Configuring the FreeBSD Kernel section of the FreeBSD handbook) Make sure your sound card is already configured. Include this option in your new kernel. options COMPAT_LINUX If this is the first time you've created a new kernel, you may wish to reboot and install that new kernel. Make sure your kernel reboots safely with no error messages. OR include the following line in /etc/rc.conf: linux_enable="YES" (I prefer this variant) here is my home PC kernel config
Well, install a patch written by netchild http://forum.skype.com/bb/viewtopic.php?t=4430 http://www.leidinger.net/FreeBSD/current-patches/SNDCTL_DSP_SETDUPLEX.diff IMHO you need to update only two files : /src/sys/compat/linux/linux_ioctl.h /src/sys/compat/linux/linux_ioctl.c third /src/sys/dev/sound/pcm/dsp.c is already commited and updated ?? By the way, change variable name "td" to "p" (i'm not sure, may be "td" name came from CURRENT???) + case LINUX_SNDCTL_DSP_SETDUPLEX: + args->cmd = SNDCTL_DSP_SETDUPLEX; + return (ioctl(td, (struct ioctl_args *)args)); ^^^ Recompile and install new kernel. ------------------------------------------------------------------------------------- Linux environment configuring. Obtain the latest port tree by cvsup Install linux_base port (RedHat 8 packages) (tested only with linux_base-8 port) #cd /usr/ports/emulators/linux_base-8 #make #make install Make sure that everything was installed Ok. Reboot PC. Download from ftp.redhat.com or redhat mirrors the followings rpm-packages. XFree86-libs-4.2.0-72.i386.rpm textutils-2.0.21-5.i386.rpm fontconfig-2.0-3.i386.rpm expat-1.95.4-1.i386.rpm XFree86-Mesa-libGL-4.2.0-72.i386.rpm Install downloaded packages: #rpm --ignoreos --root /compat/linux --dbpath /var/lib/rpm/ --install XFree86-libs-4.2.0-72.i386.rpm textutils-2.0.21-5.i386.rpm \ expat-1.95.4-1.i386.rpm fontconfig-2.0-3.i386.rpm XFree86-Mesa-libGL-4.2.0-72.i386.rpm Check, that everything is Ok and our packages are installed successfully ;-) #rpm --root /compat/linux -qa Add these entres to /compat/linux/etc/ld.so.conf: /usr/lib /usr/X11R6/lib Recreate ld.so.cache file: #/compat/linux/sbin/ldconfig -r /compat/linux/ (do not forget -r option) Download the latest !!static!! skype release from original site : www.skype.com Install skype software. (follow the documentation provided by Skype Team) Mark skype binary : # brandelf -t Linux /path/to/skype Execute skype binary from xterm (you can see all the debug messages that are being printed) And try to call to echo123 test user. If you get the error (in debug xterm window): WidgetCallTab: updateTabIcon: STATE 0 echo123 write error, written = 256 write error, written = -1 write error, written = -1 write error, written = -1 and pcm0:play:0: play interrupt timeout, channel dead in /var/log/messages file. Close skype application (check: ps -auxw | grep skype) try this one: #sysctl -w hw.snd.pcm0.vchans=4 if you use pcm1 instead of pcm0, change the 0 to a 1 when you add that sysctl value. and run again, call then echo123 user if it helps Add this entry to /etc/sysctl.conf hw.snd.pcm0.vchans=4 (Everything was tested on Intel montherboard with integrated sound card) Intel ICH5 (82801EB) Analog Devices AD1985 AC97 Codec dmesg Create /compat/linux/dev/null file cd /compat/linux/dev rm null mknod null c 2 2 chmod 666 null
Running dynamic skype version (QT 3.1)
Download QT 3.1 library qt-3.1.2-2.0.9.i386.rpm from http://kde-redhat.sourceforge.net/ Download PNG library libpng10-1.0.13-5.i386.rpm Download dynamic Skype for QT 3.1 from www.skype.com linux download page (RPM for systems with Qt 3.1 (Java Desktop System Release 2, SuSE 8). Install RPM packages: rpm --install --nodeps --root /compat/linux --ignoreos libpng10-1.0.13-5.i386.rpm qt-3.1.2-2.0.9.i386.rpm skype_qt3_1-0.91.0.3-suse.i386.rpm (of course change filenames if you need) Add the followings lines to /compat/linux/etc/ld.so.conf: /usr/lib/qt-3.1/lib Recreate ld.so.cache for Linux environment by ldconfig: #/compat/linux/sbin/ldconfig -r /compat/linux And run skype (under unprivileged user) dynamic binary (/compat/linux/usr/bin/skype for RPM packages) $/path/to/skype or $/path/to/skype & (depends what you want to get ;-)
Running dynamic skype version (QT 3.3)
Download QT library dependencies: libmng-1.0.4-1.i386.rpm libpng-1.2.2-6.i386.rpm Xft-2.0-1.i386.rpm libjpeg-6b-21.i386.rpm Download QT 3.3 library from rpm.pbone.net site. Download dynamic Skype for QT 3.3 from skype.com linux download page (tested on RPM for Fedora Core 2) Install RPM packages: rpm --install --nodeps --root /compat/linux --ignoreos libpng10-1.0.13-5.i386.rpm \ libmng-1.0.4-1.i386.rpm libpng-1.2.2-6.i386.rpm Xft-2.0-1.i386.rpm libjpeg-6b-21.i386.rpm \ qt-3.3.2-10.2.rh80.kde.i386.rpm skype-0.91.0.3-fc2.i386.rpm Add the followings lines to /compat/linux/etc/ld.so.conf (comment out old qt library paths): /usr/lib/qt-3.3/lib This is my /compat/linux/etc/ld.so.conf file: /usr/lib /lib/ /usr/X11R6/lib #/usr/lib/qt-3.0.5/lib #/usr/lib/qt-3.1/lib /usr/lib/qt-3.3/lib Recreate ld.so.cache for Linux environment by ldconfig: #/compat/linux/sbin/ldconfig -r /compat/linux And run skype dynamic binary (under unprivileged user) (/compat/linux/usr/bin/skype for RPM packages) $/path/to/skype or $/path/to/skype &Skype Fonts
Skype uses qt configuration files to find font settings. Use qtconfig to set up font and window behaviour: $/compat/linux/usr/bin/qtconfig Try to play with anti-aliasing, look to /compat/linux/etc/fonts.conf, ~/.fonts directory and QT_XFT env variable. (hint ;-) Here is my screenshot.
Problems
If you get errors like this: undefined symbol: _ZN10QTextCodec4cfcsE error while loading shared libraries: libqt-mt.so.3: cannot open shared object file: No such file or directory Be sure that you have the qt version library skype compiled for. Check all paths in /compat/linux/etc/ld.so.conf Renew /compat/linux/etc/ld.so.cache (see above) PS. RPM package list installed on my FreeBSD system (i'm using qt-3.3 dynamically compiled skype): XFree86-Mesa-libGL-4.2.0-72 XFree86-libs-4.2.0-72 Xft-2.0-1 basesystem-8.0-1 bash-2.05b-5 bzip2-1.0.2-5 bzip2-libs-1.0.2-5 compat-db-3.3.11-2 compat-libstdc++-7.3-2.96.110 db4-4.0.14-14 expat-1.95.4-1 filesystem-2.1.6-5 fileutils-4.1.9-11 fontconfig-2.0-3 freetype-2.1.2-7 gdbm-1.8.0-18 glib-1.2.10-8 glibc-2.3.2-4.80.8 glibc-common-2.3.2-4.80.8 grep-2.5.1-4 info-4.2-5 libacl-2.0.11-2 libattr-2.0.8-3 libelf-0.8.2-2 libgcc-3.2-7 libjpeg-6b-21 libmng-1.0.4-1 libpng-1.2.2-6 libstdc++-3.2-7 libtermcap-2.0.8-31 ncurses-5.2-28 popt-1.7-1.06 qt-3.3.2-10.2.rh80.kde readline-4.3-3 redhat-release-8.0-8 rpm-4.1-1.06 setserial-2.17-9 setup-2.5.20-1 sh-utils-2.0.12-3 skype-0.91.0.3-fc2 slang-1.4.5-11 termcap-11.0.1-13 textutils-2.0.21-5 zlib-1.1.4-8.8x
FreeBSD packages: #pkg_info | grep linux linux-flashplugin-6.0r79_1 The official Macromedia Flash Player for Linux Mozilla and linux-sun-jdk-1.4.2.04 Sun Java Development Kit 1.4 for Linux linux-vsound-0.4 Utility for capturing audio streams from Linux binaries linux_base-8-8.0_4 Base set of packages needed in Linux mode (only for i386) linuxpluginwrapper-20040310_1 A wrapper allowing use of linux-plugins with native applica linuxthreads-2.2.3_15 POSIX pthreads implementation using rfork to generate kerne Please report any errors you might find. I'm just Skype user ;-) Good luck. ilja at rose.freebsd.ee