Skip to content

Compiling On An Asus Eeepc

Albert Santoni edited this page Nov 11, 2008 · 9 revisions

eeePC

These are the compile instructions for building Mixxx on an eeePC. They also work for (k)Ubuntu 7.10 and may also work for other Debian based linux distributions.

For Debian / Ubuntu, you can ignore the lines to do with editing your sources.list.

 MIXXX_HOME=`pwd`
 sudo aptitude purge mixxx mixxx-data # remove any potential conflicts with packaged versions
 
 # eeePC-only: Add this to sources.list: deb http://http.us.debian.org/debian stable main contrib non-free
 sudo aptitude install scons subversion libqt4-dev portaudio19-dev libmad0-dev libid3tag0-dev libvorbis-dev libsndfile1-dev g++
 
 # eeePC-only: remove from sources.list or you may accidentally upgrade to Debian/Etch: deb http://http.us.debian.org/debian stable main contrib non-free
 
 sudo aptitude update 
 
 # check out SVN work space for Linux
 svn co https://mixxx.svn.sourceforge.net/svnroot/mixxx/trunk/mixxx mixxx
 
 cd ${MIXXX_HOME}/mixxx
 scons # build with default options
 
 # create a symlink so mixxx can find skins/ and midi/ subdirs
 sudo ln -s "${MIXXX_HOME}/mixxx/src" "/usr/local/share/mixxx"
 
 # run it
 ./mixxx

** The block below is optional and only applies if you have a Hercules DJ Console Mk1/Mk2**

 
 sudo aptitude install libusb-dev # libDJConsole needs this
 
 ## eeePC-only: start##
 # apt-get/aptitude will remove libdjconsole*.deb during system updates, you'll need to reapply the last "dpkg --force-depends" step to get it back. 
 
 # libDJConsole stuff for Hercules Mk1/Mk2 support
 wget http://http.us.debian.org/debian/pool/main/libd/libdjconsole/libdjconsole-dev_0.1.2-3_i386.deb
 wget http://http.us.debian.org/debian/pool/main/libd/libdjconsole/libdjconsole0_0.1.2-3_i386.deb
 wget http://http.us.debian.org/debian/pool/main/libd/libdjconsole/libdjconsole-data_0.1.2-3_all.deb
 
 dpkg -i --force-depends libdjconsole-dev_*_i386.deb libdjconsole0_*_i386.deb libdjconsole-data_*_all.deb
 ## eeePC-only: end ##
 ## non-eeePC users can just 'sudo aptitude install libdjconsole0 libdjconsole-dev' instead of the eeePC-only section here.
 
 cd ${MIXXX_HOME}
 cd mixxx
 scons djconsole=1

Seg Fault Note: You will get a segmentation fault when running mixxx after each recompile. This is caused by the UnionFS file system on the eeePC. A reboot will allow you to run mixxx normally.

Performance Note: eeePCs should be configured to use slow-mixxx to bump up the processing priority for reliable skip-free playback. Or get the eee.ko kernel module to re-clock the CPU from 600Mhz -> 900Mhz.

slow-mixxx

 #!/bin/bash
 # slow-mixxx         by [email protected] 2008.01.17
 #   a script to start mixxx and renice it.
 #
 # Why we do it this way:
 #     i.   Must 'renice' after starting but before audio playback begins.
 #     ii.  Starting with 'nice' causes sound crackles on the eeePC
 #     iii. 'renice during playback causes skips and crackles on eeePC.
 
 # An stock eeePC runs at 630Mhz and needs nice priority of between -15 to -20 to playback with mimimal skipping, faster PCs can likely run at lesser priorities
 nice_priority=-18
 
 (sudo sleep 3; sudo renice ${nice_priority} `ps -C mixxx -o pid | grep -v PID`)& mixxx
Clone this wiki locally