This repository has been archived by the owner on Apr 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathREADME
executable file
·154 lines (114 loc) · 5.8 KB
/
README
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
This is a set of packages for creating diskless XBMC clients.
Note: This package contains parts that are based on mythbuntu-diskless,
which uses parts of LTSP. Both packages have their own licenses.
Copyright (C) 2010 Lars Op den Kamp <lars@opdenkamp.eu>
================================================================================
Introduction
============
This package installs the server software that is needed to let any PC boot from
the network and start XBMC on that PC without installing anything.
It works by creating an image of an Ubuntu installation with XBMC on a server
and having your clients boot that (read only) image. The client's configuration
and media databases are stored via NFS, so they won't be lost when you reboot
your client.
This brings us some advantages:
- no noisy harddisks in your media player is needed
- if you want to upgrade XBMC on multiple clients, you will only have to install
it once to upgrade them all
- centralised configuration of all media players (think about things like having
the same video database on all media players)
- any normal work pc can be turned into a media center within seconds. Just
reboot it and choose "boot from network" and it's done. Nothing is changed on
your harddisk.
Installation
============
If you want a diskless XBMC installation, you'll need a server to host it's
files. On that server, you'll install the 'xbmc-diskless-server' package. It
contains some scripts to create a disk image for your clients and it makes sure
the required server components get installed and update the configuration.
This can be done by calling 'xbmc-diskless.sh' as user root.
Server configuration
====================
The server configuration file is stored in /etc/default/xbmc-diskless-server.conf
and it can be overriden by /etc/xbmc-diskless-server.conf. You should make your
changes in the latter file, because it won't be overwritten by upgrades.
Almost all of the configuration is done automatically by the installer, except
for dhcp. Read the the next section on how to configure that.
The configuration file contains explanations on all parameters in there.
By default, the client image is created as /var/lib/xbmc-diskless/xbmc.img and
is made available on tcp port 2000. You might want to firewall this port.
Secondly, if you want to persist your client configurations and databases,
you'll have to export a directory via nfs. The provisioning process also needs
this. What provisioning means is explained below.
By default, the following directory is exported over NFS:
/var/lib/xbmc-diskless/overlay/
0.0.0.0/0(rw,no_root_squash,async,no_subtree_check)
Change the ip mask in there to the mask of your clients because by default
EVERYBODY IS ALLOWED TO WRITE in that directory.
The clients are booted over PXE, a network boot protocol. You don't have to
configure anything, except if you use PXE for anything else than to boot
XBMC clients.
DHCP configuration
==================
To let the clients know from what server they have to get the configuration
files, you have to add the server address to the dhcp client configuration.
If you are using ISC dhcp, the default dhcp server on Ubuntu, add these lines
to your host's configuration lines:
next-server XXX.XXX.XXX.XXX;
filename "/xbmc-netboot/pxelinux.0";
Replace XXX by your server's IP address.
Example:
subnet 192.168.64.0 netmask 255.255.192.0 {
range 192.168.90.100 192.168.90.125;
next-server 192.168.64.1;
filename "/xbmc-netboot/pxelinux.0";
}
Restart your dhcp server to make the new configuration active:
sudo /etc/init.d/dhcp3-server restart
Image creation
==============
Creating a new image is easy. Just start the xbmc-diskless.sh GUI and follow
the instructions on your screen.
First "create" a new target. Next you compress the target by chosing "pack" and
the last step is installing the new image by chosing "install".
Client configuration
====================
If you want to change anything in the client configuration, you can do that in
the image in step 2) above.
Another way is by doing passing boot arguments to
the client. Besides the normal linux kernel arguments, the following
xbmc-diskless specific ones are available:
wol=00:11:22:33:44:55
send a wake-on-lan signal to the server
xbmcdir=/dir/to/overlay
change the overlay directory
xbmcdirkey=MAC
use the mac address of the client as directory name in xbmcdir for this client
xbmcdirkey=HOSTNAME
use the host name of the client as directory name in xbmcdir for this client
xbmcdirkey=someothername
use this name as key for _every_ client. this will overwrite files if you have
multiple clients!
You can also log on to the client and change the configuration in there. Please
note that only the directories /etc and /home/xbmc are persisted. Everything
else will be restored to the original state after a reboot.
To log on to the client, use ssh and connect as user 'xbmc' to the host. The
password is set in your server config.
Provisioning
============
You might want to distribute some files to one or more clients without adding
them to the image. Think about your video database, lirc config files, etc.
That's what the provisioning mechanism is for. In the directory
/var/lib/xbmc-diskless/provsion you can a directory 'default' with files you
want to have copied to all clients on the first boot. Those files will be copied
to the client's /home/xbmc directory.
You can also add directories for each separate client by creating a directory
with the mac address of the client as name (without the colons).
Please make sure you have the permissions set correctly:
chown 1000:1000 to each of the files.
/etc is symlinked to /home/xbmc/config so you can add files there too.
To update the provisioning package, start the xbmc-diskless.sh GUI and chose
"provision"
Latest version
==============
https://launchpad.net/~lars-opdenkamp/+archive/xbmc-diskless