Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

[d6cb62]: README.linux Maximize Restore History

Repo status: analyzing...

Download this file

README.linux    279 lines (209 with data), 12.1 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
TOC
1. Introduction
2. Getting the source code
3. Installing the required Ubuntu packages
4. How to compile
	4.1 Using build.sh
	4.2 Manual build
5. How to run
6. Tips n' Tricks section
7. Endword

-----------------------------------------------------------------------------
1. Introduction
-----------------------------------------------------------------------------

This is a very early port of XBMC to Linux. It's target is developers
and not end-users. We don't offer end-user support yet, and we're not
really interrested to hear about bugs unless you can help track it
down and possibly help with fixing it. We currently recommend Ubuntu
7.10 (Gutsy Gibbon) as a development platform. A gfx-adapter with
OpenGL acceleration is highly recommended and 24/32 bitdepth is
required with OpenGL.

NOTE TO NEW LINUX USERS: All lines that are prefixed with the '#'
character are commands that need to be typed into a terminal window /
console (similar to the command prompt for Windows). Note that the '#'
character itself should NOT be typed as part of the command.


-----------------------------------------------------------------------------
2. Getting the source code
-----------------------------------------------------------------------------

   # sudo apt-get install subversion
   # cd $HOME
   # svn checkout https://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/XBMC


-----------------------------------------------------------------------------
3. Installing the required Ubuntu packages
-----------------------------------------------------------------------------

For Ubuntu 7.04 (Feisty Fawn):

   # sudo apt-get install make g++-4.1 gcc-4.1 libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libcdio6 libcdio-dev libfribidi0 libfribidi-dev liblzo1 liblzo-dev libfreetype6 libfreetype6-dev libsqlite3-0 libsqlite3-dev libogg-dev libsmbclient-dev libsmbclient libasound2-dev python2.4-dev python2.4 python-sqlite libglew1 libglew-dev libcurl3-dev g++ gawk x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmms-dev pmount libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient15-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev

For Ubuntu 7.10 (Gutsy Gibbon):

   # sudo apt-get install make g++-4.1 gcc-4.1 libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libcdio6 libcdio-dev libfribidi0 libfribidi-dev liblzo1 liblzo-dev libfreetype6 libfreetype6-dev libsqlite3-0 libsqlite3-dev libogg-dev libsmbclient-dev libsmbclient libasound2-dev python2.4-dev python2.4 python-sqlite libglew1.4 libglew1.4-dev libcurl3-dev g++ gawk x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmms-dev pmount libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient15-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev

*** For developers and anyone else who compiles frequently it is recommended to use ccache
sudo apt-get install ccache

-----------------------------------------------------------------------------
4. How to compile
-----------------------------------------------------------------------------

----------------------------------------
4.1 Using build.sh
----------------------------------------

AlTheKiller has made a fantastic script that makes it a breeze to
build a working (depending on state of SVN naturally) XBMC solution.
It handles the SVN update, build process and the copying of all needed
files to the folder of your choice.  ./BUILD is the default target
location. The script also creates a backup of your UserData, scripts
and 3rd party skin/s folders.  Do './build.sh --help' to get all
options.  

Usage (examples):

.1 Make a 3D version with debug (requires OpenGL hardware acceleration
   support on gfx-adapter)
   # ./build.sh

.2 Make a SDL 2D version (very slow) + no debug (more CONFIGOPT's are
   listed below in section 4.2)
   # ./build.sh CONFIGOPT=--disable-gl CONFIGOPT=--disable-debug

build.sh supports reading options from an external file:
'~/.xbmc-build-settings'.  The options are delimited with space,
here's an example line which disables debug and never ask for
confirmation unless an error occur: 'CONFIGOPT=--disable-debug
CONFIRM'(remove the ''). Do build.sh --help for more options

----------------------------------------
4.2 Manual build
----------------------------------------

To create the XBMC executable manually perform these two steps:

.1  # ./configure <option1> <option2> <etc>

These configure options exist:
  --disable-debug          disable debug mode (default is enabled)
  --disable-gl             disable OpenGL rendering and instead use 2D SDL (default is enabled). This is not recommended.
  --enable-profiling       enable gprof profiling (default is disabled)
  --disable-joystick       disable SDL joystick support (default is enabled)
  --help                   shows all options, useful fallback if this README becomes outdated

.2  # make

Tip: by adding -j<number> to the make command, you describe how many
     concurrent jobs will be used. So for dualcore the command is: 

    # make -j2

-----------------------------------------------------------------------------
5. How to run
-----------------------------------------------------------------------------

----------------------------------------
5.1 build.sh
----------------------------------------
If using build.sh with default options, simply:
   # cd BUILD
   # ./XboxMediaCenter

----------------------------------------
5.2 Manual
----------------------------------------
If compiling manually you can use build.sh to prepare the BUILD
What it does:
* Copies needed files & folders to a BUILD folder incl. main executable
* Backs up UserData, scripts and 3rd party skin/s folders
* Fixes case sensitivity issues by renaming some files & folders
Usage:
   # ./build.sh NOUPDATE NOCOMPILE
   # cd BUILD
   # ./XboxMediaCenter


-----------------------------------------------------------------------------
6. Tips n' Tricks section
-----------------------------------------------------------------------------

----------------------------------------
6.1 Fullscreen
----------------------------------------

The best way is to go into settings\Appearance\Screen and set Resolution 
to the one with (Desktop) next to it.  Toggle FS with the \ key while XBMC
is running. To start XBMC in fullscreen mode append a '-fs' to the command
line. 

----------------------------------------
6.2 Multi-monitor Fullscreen
----------------------------------------

If you have a multi-monitor setup and you want to run XBMC fullscreen
only on one monitor, then make sure to set the environment variable
SDL_VIDEO_FULLSCREEN_HEAD to the display no.  which you want to use.

For e.g. "SDL_VIDEO_FULLSCREEN_HEAD=1 ./XboxMediaCenter" to tell XBMC 
to use display no.1.

Note: Nvidia Twinview users should be aware that X treats the
twinviewed displays as the same head.  If you want to run fullscreen
XBMC on one display and start it from the other you must configure X
with two "Device" sections against the same physical card. See chapter
16 of the Nvidia user guide for information on how to do this.

----------------------------------------
6.3 Channel downmixing
----------------------------------------

(This is Not required Anymore since revision 10937) 
If your machine only has 2 speakers and you would like to watch movies
with more channels (e.g. 5.1) then you need to configure your
.asoundrc file. The .asoundrc file is a configuration file located in
the user's home directory. A sample configuration named "demo-asoundrc"
can be found in same folder as this README, so:


.1 backup your .asoundrc if it exists (e.g. # cp ~/.asoundrc ~/.asoundrc.backup)

.2 copy the demo asoundrc - # cp demo-asoundrc ~/.asoundrc

.3 you can edit the file and change the downmix setup by changing the
   "ttable" values. The values range from 0.0 to 1.0 and are actaully the
   volume pct from the original channels volume.

----------------------------------------
6.4 Fullscreen Mouse Sensitivity
----------------------------------------

If you find that your mouse is not sensitive enough in fullscreen, set
the environment variable SDL_VIDEO_X11_MOUSEACCEL to adjust mouse
acceleration. From SDL docs:

  "For X11, SDL_VIDEO_X11_MOUSEACCEL sets the mouse acceleration. The
  value should be a string on the form: n/d/t where n and d are the
  acceleration numerator/denumerators (so mouse movement is
  accelerated by n/d), and t is the threshold above which acceleration
  applies (counted as number of pixels the mouse moves at once)."

----------------------------------------
6.5 Turning off on screen debug info
----------------------------------------

The proper way is to compile with the --disable-debug option this will 
make a smaller executeable as well.
Add -q to the commandline "./XboxMediaCenter -q" will remove the on screen
Debug info when you have compiled with debug mode on (default)

----------------------------------------
6.6 Get DVD/CD Share to show Correct State
----------------------------------------

To get the DVD Tray shortcut to not display (Open) all the time you
need to install a newer verison of libcdio

  Installing latest libcdio 
  Download version 0.78 from  http://ftp.gnu.org/gnu/libcdio/libcdio-0.78.2.tar.gz
  Extract and run in libcdio path # ./configure --prefix=/usr 
  make ; # sudo make install 
  Recompile xbmc after make clean and ./configure
  SVN 10557+ will print the libcdio version it has been compiled with to stdout (first line). 

----------------------------------------
6.7 Basic MythTV support
----------------------------------------

  We have very basic MythTV support in xbmc. enable using --enable-gmyth on configure line. 
  requires glib-2.0, gobject-2.0, gthread-2.0, curl, gmyth.

  You have to manually add a share like "myth://user:pass@hostname/" since there is no support
  for browsing for server at the moment.

  Know Issues:
    * Channel Switching in dvdplayer using Page Up/Down fails
    * Seeking in live-recorded streams doesn't work properly
    * Current playback position doesn't update properly when program changes

----------------------------------------
6.8 Basic Wii remote support
----------------------------------------

XBMC-linux have a basic support for the Wii remote which includes mouse emulation
with a sensorbar. Enable using --enable-cwiid on the configure line.
requires libbluetooth-dev, libcwiid0-dev

To connect the Wii remote you need to enable the support under System in settings.
After this press 1 + 2 simultaneously on the Wii remote to make XBMC connect to it.
Press and hold the Power button to close the connection.

Known Issues:
  * If more than two IR Sources exists mouse emulation doesn't work good.

----------------------------------------
6.9 experimental - SMB mount shares 
----------------------------------------

this is an experimental feature. it will mount all smb sources externally (on filesystem under /media/xbmc/smb)
and make xbmc access those shares as if they are local (let the OS do all the dirty work).
this feature is turned off by default since its currently performing worse than the current libsmbclient solution.
in order to enable this feature, smbfs is needed. 
a simple "sudo apt-get install smbfs" would do.

since mounting/unmounting can only be done by root, xbmc uses "sudo" to perform this action.
you will beed to add the user that runs xbmc to the sudoers file.
1. sudo visudo
2. add the following line to the end of the file ("xbmc" is used as an example, this should be the user id that runs xmbc):
xbmc ALL=NOPASSWD: /bin/mount, /bin/umount, /bin/mkdir
^
|--instead of "xbmc" use the user id which runs xbmc.

3. turn on the "mount SMB shares" option. under Settings->Network->SMB Client


-----------------------------------------------------------------------------
7. Endword
-----------------------------------------------------------------------------

Don't expect too much, yet.

EOF