2011-06-04, 09:43
Moderator please remove this thread. Tutorial does not work. Will post again if I get it straightened out and with a more accurate subject line. _ Thank you!
**EDIT 6-09-2011 For the time being this guide does not work. Getting errors on lib64 upon trying to playback a movie. Currently rebuilding on 32 bit slackware. Will update or remove post upon completion on install ~5pm 6-09-2011.
How to build XBMC nightly on Slackware-13.37 with vaapi.
Assumptions
I will assume that you can burn an iso of slackware 13.37 to dvd, connect it to your computer and boot to it. That you are familiar with how to use nano a cli based text editor. That you can mount a directory in /mnt and you know your way around that. That you can execute a shell script from cli namely your video driver installer package and you know how to download it. It is also assumed that you know your architecture and that you can line up to either x86 or x86_64 for your configurations and downloads.
Please do this on a wired connection. I dont want to walk you through a cli connection to a wpa network. Slackware will auto dhcp an address for you on a wire. Also, if this an htpc, make sure you have your receiver and television are hooked up as they will be when in normal use and that all hdmi cables are in place.
Super, lets do it.
When booting to Slackware the first thing one see's is a cursor on Boot> _
Type:
First thing you will notice is that Slackware's installer is pretty basic. If you are intimidated by partitioning in this manner use an ubuntu disk to lay out the partitions you want and then kill the ubuntu install as its installing the packages and put the Slackware disk back in. When prompted to login use:
and then type:
The ubuntu partitioning trick will get you past the hardest part involved with installing Slackware. They just dont include the partitioning utilities on Slackware that you find on other distributions.
Add target and swap if you intend to use swap space.Add source, I usually choose auto with usb dvd drive plugged in however you can use ftp, http, nfs, or locally mounted directory. There is even an "execute shell" option in the menu incase you need to manually mount a directory.
I have a package list of everything installed if anyone is interested. It would help one do an expert or minimal install.
If you have problems during lilo install like I did try going for an expert install. Opt for no time to choose between boot options when you take the top item, start new config. Add linux partition, kernel parameters as needed, name it XBMC and choose an 800x600 frame buffer with 32 bit depth (assuming a good television) and mbr for location to write to. It should go okay. If not go through all the options and at the end choose configure system from menu and go through it until lilo does not error and the next screen you see asks what mouse you want to use.
Make a "xbmc" user after install with the command adduser. Add them to /etc/sudoers after reboot if you want. Make that user xbmc and accept all the additional groups that are offered. I used xbmc for password on the xbmc user just so I wont forget it.
On a usb drive I had a tgz file of sbopkg as well as the latest ati catalyst driver. The first time we use slackpkg, Slackware update and install utility, it wants to get a new package list.
and select a mirror in your area for the Slackware distro you are using. IE not 64 bit. Very important!!! Uncomment, or erase the # from the beginning of the line to enable that mirror.
CTL+o and CTL+x to save and close.
will get us a new package list.
Now we need to add some packages from sbo or slackbuilds:
Download sbopkg.tgz from http://sbopkg.org
will install sbopkg.
Okay start sbopkg:
Answer c or yes or enter to all questions. and then sync to repository.
Now search and add the following to queue. Please do these in order and in groups of say five or ten so that just in case something does not go right its not too hard to go back and retrace where it happened. Anyways add the following and in this order:
sigc++
glibmm
mm-common
libxml++
libnfnetlink
libnetfilter - all
libmms
faac
faad
modplug
libcuefile
libreplaygain
musepack-tools
pysetup-tools *search pysetup
setup-tools *search setup
Cython
python-distutils-extra
libmpeg2
enca
microhttpd
libdvdcss
mdns
libdaemon
rtmpdump
numpy
smpeg
libass
curlftpfs
yajl
and lastly wicd if you have not already
If you watch the output you will see that sbopkg uses /tmp for its build directory. If you re tight on space take the time to clean up /tmp and reclaim some space.
After erasing all the binaries and /usr/man and /usr/doc I was at 40 percent of 8 gigs on my 8gb ssd.
.
Okay here it gets a little tricky. We are going to download debian .deb files and convert them to tgz slackware packages.
cd into its directory after untar and issue:
Man page is here:
http://linux.die.net/man/1/alien
And some extra stuff, you know, just in case
Even though these are x86_64 pckages they seem to work well on 32 bit.
and clean up:
This is the part where we grab out gpu driver and install it. If you use Nvidia you know what to do. Nvidia provides wonderful support for you. If you use ATI http://www.ati.com has a driver link on the right side. I use catalyst 11-5 as recommended for the HD6310 Radeon APU.
Before installing please make sure you have kernel source package installed.
Chose the default and recommended and:
if you have not made your xbmc user do this now with:
Lets make sure the driver has the best in linux libraries for video support:
And lets convert them to Slackware packages with that "Alien" package we installed earlier.
For whatever reason I simply could not get aliens slackbuilds to work on this nor could I build from source as splitted desktop does not document their required patches all that well so we ill be using already patched precompiled binaries.
Lets get some shiney new code:
Note that this is the nightly branch. It is recommended to download "stable" source code from the XBMC.org download page.
once bootstrap completes we have one file to modify that would have caused ./configure to hang:
scroll down to the first ifdef statement and make it look like:
ctl+o to write the file (save) and ctl+x to exit
basically we are adding "//" to the beginning of two lines.
after all of this we should get through a ./bootstrap
If you are using an nvidia chipset add
Next step:
and
Now that makes 2.3 gigs worth of xbmc folder. I copy this to a thumb drive and keep it incase I need to change anything later. Now lets remove the source folder with:
Now we should be able to start xbmc and see it working.
Okay good.
On to part two...
**EDIT 6-09-2011 For the time being this guide does not work. Getting errors on lib64 upon trying to playback a movie. Currently rebuilding on 32 bit slackware. Will update or remove post upon completion on install ~5pm 6-09-2011.
How to build XBMC nightly on Slackware-13.37 with vaapi.
Assumptions
I will assume that you can burn an iso of slackware 13.37 to dvd, connect it to your computer and boot to it. That you are familiar with how to use nano a cli based text editor. That you can mount a directory in /mnt and you know your way around that. That you can execute a shell script from cli namely your video driver installer package and you know how to download it. It is also assumed that you know your architecture and that you can line up to either x86 or x86_64 for your configurations and downloads.
Please do this on a wired connection. I dont want to walk you through a cli connection to a wpa network. Slackware will auto dhcp an address for you on a wire. Also, if this an htpc, make sure you have your receiver and television are hooked up as they will be when in normal use and that all hdmi cables are in place.
Super, lets do it.
When booting to Slackware the first thing one see's is a cursor on Boot> _
Type:
Quote:hugesmp.sto get started and follow your prompts.
First thing you will notice is that Slackware's installer is pretty basic. If you are intimidated by partitioning in this manner use an ubuntu disk to lay out the partitions you want and then kill the ubuntu install as its installing the packages and put the Slackware disk back in. When prompted to login use:
Quote:root
and then type:
Quote:cfdiskif you need to partition, or type:
Quote:setupif your partitions look as they should
The ubuntu partitioning trick will get you past the hardest part involved with installing Slackware. They just dont include the partitioning utilities on Slackware that you find on other distributions.
Add target and swap if you intend to use swap space.Add source, I usually choose auto with usb dvd drive plugged in however you can use ftp, http, nfs, or locally mounted directory. There is even an "execute shell" option in the menu incase you need to manually mount a directory.
I have a package list of everything installed if anyone is interested. It would help one do an expert or minimal install.
If you have problems during lilo install like I did try going for an expert install. Opt for no time to choose between boot options when you take the top item, start new config. Add linux partition, kernel parameters as needed, name it XBMC and choose an 800x600 frame buffer with 32 bit depth (assuming a good television) and mbr for location to write to. It should go okay. If not go through all the options and at the end choose configure system from menu and go through it until lilo does not error and the next screen you see asks what mouse you want to use.
Make a "xbmc" user after install with the command adduser. Add them to /etc/sudoers after reboot if you want. Make that user xbmc and accept all the additional groups that are offered. I used xbmc for password on the xbmc user just so I wont forget it.
On a usb drive I had a tgz file of sbopkg as well as the latest ati catalyst driver. The first time we use slackpkg, Slackware update and install utility, it wants to get a new package list.
Quote:nano /etc/slackpkg/mirrors
and select a mirror in your area for the Slackware distro you are using. IE not 64 bit. Very important!!! Uncomment, or erase the # from the beginning of the line to enable that mirror.
CTL+o and CTL+x to save and close.
Quote:slackpkg update
will get us a new package list.
Now we need to add some packages from sbo or slackbuilds:
Download sbopkg.tgz from http://sbopkg.org
Quote:installpkg install /path/sbopkg.tgz
will install sbopkg.
Okay start sbopkg:
Quote:sbopkg
Answer c or yes or enter to all questions. and then sync to repository.
Now search and add the following to queue. Please do these in order and in groups of say five or ten so that just in case something does not go right its not too hard to go back and retrace where it happened. Anyways add the following and in this order:
sigc++
glibmm
mm-common
libxml++
libnfnetlink
libnetfilter - all
libmms
faac
faad
modplug
libcuefile
libreplaygain
musepack-tools
pysetup-tools *search pysetup
setup-tools *search setup
Cython
python-distutils-extra
libmpeg2
enca
microhttpd
libdvdcss
mdns
libdaemon
rtmpdump
numpy
smpeg
libass
curlftpfs
yajl
and lastly wicd if you have not already
If you watch the output you will see that sbopkg uses /tmp for its build directory. If you re tight on space take the time to clean up /tmp and reclaim some space.
Quote:rm -r /tmp/*.tgz
After erasing all the binaries and /usr/man and /usr/doc I was at 40 percent of 8 gigs on my 8gb ssd.
.
Okay here it gets a little tricky. We are going to download debian .deb files and convert them to tgz slackware packages.
Quote:wget http://ftp.de.debian.org/debian/pool...en_8.84.tar.gz
Quote:tar -xf alien_8.84.tar.gz
cd into its directory after untar and issue:
Quote:perl Makefile.PL; make; make install
Man page is here:
http://linux.die.net/man/1/alien
And some extra stuff, you know, just in case
Quote:wget ftp://slackware.opennix.com/pub/slackbui...4-1_mm.txz
Quote:wget ftp://slackware.opennix.com/pub/slackbui...4-1_mm.txz
Quote:wget ftp://slackware.opennix.com/pub/slackbui...4-1_mm.txz
Even though these are x86_64 pckages they seem to work well on 32 bit.
Quote:installpkg aacskeys-0.4.0c-x86_64-1_mm.txz libbluray-20110514-x86_64-1_mm.txz libaacs-20110514-x86_64-1_mm.txz
and clean up:
Quote:rm libaacs-20110514-x86_64-1_mm.txz libbluray-20110514-x86_64-1_mm.txz aacskeys-0.4.0c-x86_64-1_mm.txz
This is the part where we grab out gpu driver and install it. If you use Nvidia you know what to do. Nvidia provides wonderful support for you. If you use ATI http://www.ati.com has a driver link on the right side. I use catalyst 11-5 as recommended for the HD6310 Radeon APU.
Quote:wget http://www2.ati.com/drivers/linux/ati-dr...x86_64.run
Before installing please make sure you have kernel source package installed.
Quote:sh ./ati-driver-installer-11-5-x86.x86_64.run
Chose the default and recommended and:
Quote:cd /lib/modules/fglrx/build_mod
Quote:./make.sh
Quote:cd ..
Quote:./make_install.sh
Quote:reboot
if you have not made your xbmc user do this now with:
Quote:adduserand follow prompts
Quote:cd /home/xbmc
Lets make sure the driver has the best in linux libraries for video support:
Quote:wget http://www.splitted-desktop.com/~gbeauch...2_i386.deb
Quote:wget http://www.splitted-desktop.com/~gbeauch...1_i386.deb(NVIDIA only)
Quote:wget http://www.splitted-desktop.com/~gbeauch...1_i386.deb
Quote:wget http://www.splitted-desktop.com/~gbeauch...2_i386.deb
And lets convert them to Slackware packages with that "Alien" package we installed earlier.
Quote:alien --to-tgz libva-dev_0.32.0-1+sds2_i386.deb libva-dev.tgz
Quote:alien --to-tgz xvba-video_0.7.8-1_i386.deb xvba-video.tgz
Quote:alien --to-tgz libva1_0.32.0-1+sds2_i386.deb libva1.tgz
Quote:installpkg libva1-0.32.0.tgz libva-dev-0.32.0.tgz xvba-video-0.7.8.tgz
Quote:rm libva1-0.32.0.tgz libva-dev-0.32.0.tgz xvba-video-0.7.8.tgz
For whatever reason I simply could not get aliens slackbuilds to work on this nor could I build from source as splitted desktop does not document their required patches all that well so we ill be using already patched precompiled binaries.
Lets get some shiney new code:
Quote:git clone git://github.com/xbmc/xbmc.git
Quote:cd xbmc
Note that this is the nightly branch. It is recommended to download "stable" source code from the XBMC.org download page.
Quote:cd xbmc
Quote:./bootstrap
once bootstrap completes we have one file to modify that would have caused ./configure to hang:
Quote:nano xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
scroll down to the first ifdef statement and make it look like:
Quote://#ifdef_WIN32
#include "system.h" // just for HAS_LIBRTMP
//#endif
ctl+o to write the file (save) and ctl+x to exit
basically we are adding "//" to the beginning of two lines.
after all of this we should get through a ./bootstrap
Quote:./bootstrap
Quote:./configure --enable-vaapi --enable-xrandr --enable-gl --enable-dvdcss --enable-goom --disable-external-ffmpeg --enable-bluray
If you are using an nvidia chipset add
Quote:--enable-vpdauto the above configure script.
Next step:
Quote:make
and
Quote:make install
Now that makes 2.3 gigs worth of xbmc folder. I copy this to a thumb drive and keep it incase I need to change anything later. Now lets remove the source folder with:
Quote:rm -r /home/xbmc/xbmc
Now we should be able to start xbmc and see it working.
Okay good.
On to part two...