Operativsystem: FreeBSD
Motherboard - Intel chipset fordi det siges at give færrest problemer
med Open Source OSes.
Valget faldt på Gigabyte GA-965GM-S2 micro-ATX MB med Intel ICH8 south-bridge,
4 SATA-300 controllere, ATA controller til OS-disk og indbygget video (og lyd).
Jeg troede fejlagtigt at der var en RAID-5 controller på motherboardet.
Det er kun en RAID-1 controller.
889 kr.
Processor - ingen specielle krav. Valgte 2,66 GHz Celeron D 331 fordi den var
den billigste jeg kunne finde.
263 kr.
CPU-køler og køle-pasta.
119 kr.
RAM - 2 x 512 MB 533 MHz Kingston valueram. Igen valgt p.gr.a. pris og fordi
den passer i MB.
2 x 149 kr.
Kabinet - Antec NSK4480. Valgt fordi det har 5 x 3,5" og 3 x 5,25"
drive bays. Det er også rimeligt pænt, billigt og har en indbygget
380 W strømforsyning. Jeg havde oprindeligt valgt NSK4400 modellen indtil
det gik op for mig at den kun har 2 SATA strømstik. NSK4480 har 4.
682 kr.
Netkort - Netgear WG311T trådløst netkort. Valgt fordi jeg fandt
det på en liste over trådløse netkort der virker med FreeBSD.
Trådløse netkort er stadig ikke super-godt understøttede,
så jeg synes at det var vigtigt at få et der havde en høj
chance for at fungere.
339 kr.
Harddisk - En aflagt 60 GB Maxtor disk. Skulle senere vise sig at blive et dårligt
valg :)
0 kr.
CD-ROM drev - Et Plextor drev jeg pillede ud af min arbejds-PC. Jeg havde det
siddende som et ekstra drev ud over min NEC brænder, men jeg brugte det
aldrig. Hvis jeg senere får brug for det kan jeg flytte det tilbage. Jeg
skulle kun bruge det i serveren under installationen.
0 kr.
RAID diske - 4 Seagate 7200.10 500GB SATA-300 drev. Valgt p.gr.a. godt kapacitet/pris
forhold.
4 x 769 kr.

Alle delene, mens de endnu er i kasser.
CPUen monteres på motherboardet

CPU-køleren monteret ovenpå CPUen. Bemærk en meget vigtig ting i baggrunden: Tappsy lakrids/skumbamser. Uden Tappsy går det bare ikke.

RAMmen monteret. Stikkene i forgrunden er det ene strømstik på motherboardet (det hvide stik), floppy-controller stikket (det sorte) og IDE-controller stikket (det grønne).

Det hele er monteret og der er strøm på. Bemærk lyset i power-knappen. Et stort øjeblik.

BIOSen konfigureres.

FreeBSD installeres.
Jeg editerer filer med 'vi'. Skriv 'vi <filnavn>' for at starte den.
Den er lidt kryptisk. Man kan være i edit mode eller i kommando mode.
Når den starter er man i kommando mode. Man skifter til edit mode ved
at trykke 'a' (after) eller 'i' (insert). Man skifter tilbage til kommando mode
med Esc.
Nyttige vi kommandoer er
:w - gem filen :q - quit :q! - quit uden at gemme ændring dd - slet linie
Andre nyttige kommandoer, hvis man aldrig har arbejdet med Unix før:
ls - list filer. df - vis mountede filsystemer. ifconfig ath0 - vis informationer om det trådløse netkort. man - vis manualsiden til en givet kommando.
su - skift til super-user (root) status
Alt det efterfølgende foregår som root useren.
Drivere til netkort loades ved at rette /boot/loader.conf og tilføje
if_ath_load="YES" wlan_wep_load="YES" wlan_ccmp_load="YES" wlan_tkip_load="YES"
Parametre til netkortet tilføjes i /etc/rc.conf:
ifconfig_ath0="ssid Kilian mode 11g wepmode on weptxkey 1 wepkey 0x9999999999999999999999999 DHCP"
0x9999999... ovenfor skal erstattes af WEP-nøglen fra dit trådløse net.
Reboot serveren med
shutdown -r now
og check at netkortet kommer ordentligt op og at der er forbindelse ud i verden. Fx ved at køre
ping www.google.com
fra serveren.
DHCP serveren i min Netgear router blev konfigureret til altid at give serveren
IP adresse 192.168.0.20 ud fra serverens MAC adresse.
Normale brugere kan ikke umiddelbart skifte til super-user, selv om de kan root
passwordet. Man skal være tilknyttet brugergruppen 'wheel' for at kunne
blive super-user. Da root brugeren ikke kan logge ind via ssh, er man nødt
til at have en almindelig bruger, der kan skifte til super-user.
pw usermod hans -G wheel
Tilføj hostname i /etc/rc.conf
hostname="botero"
Tilføj servernavnet i /etc/hosts
192.168.0.20 botero
Hvis man også tilføjer ovenstående linie til hosts-filen på ens Windows-maskine kan man bruge server-navnet i stedet for IP-adressen fra Windows-maskinen. Hosts-filen hedder c:\windows\system32\drivers\etc\hosts under Windows. Ret den med notepad eller en anden editor.
Nu da vi kan komme i kontakt med serveren gennem netkortet, er det ikke nødvendigt
at have skærm og tastatur forbundet til den længere. Jeg har stillet
min op i mit køkken uden skærm eller tastatur og al administration
foregår nu via ssh (secure shell).
Jeg bruger PuTTY som ssh klient: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Den første logon via ssh
En 'port' er en betegnelse for en software pakke til FreeBSD. De ligger under
/usr/ports og er meget nemme at installere.
Opdater ports samlingen så vi har de seneste versioner af al softwaren til FreeBSD
portsnap fetch
Man kan efterfølgende (som led i almindeligt vedligehold) opdatere ports samlingen med
portsnap fetch update
og se hvilke ports der er kommet opdateringer til med
pkg_version -v
cd /usr/ports/audio/slimserver make install clean
FreeBSD installerer automatisk krævet software som Perl, MySQL, flac,
lame og mere end 40 andre software pakker. Installationen tog over en time for
mig.
Sørg for at mdnsd, mysql og slimserver starter op automatisk ved at tilføje
mdnsd_enable="YES" mysql_enable="YES" slimserver_enable="YES"
til /etc/rc.conf. Startup-scriptene ligger i /usr/local/etc/rc.d.
Reboot med
shutdown -r now
Verificer at slimserver kører ved at starte en browser og gå til port 9000 på serveren. Fx http://192.168.0.20:9000/. Du kan bruge http://botero:9000/ hvis du har tilrettet hosts-filen under Windows.
Jeg har installeret Apache (en webserver) for at kunne lege webserver. Apache er ikke nødvendig for at kunne køre slimserver, så du kan roligt springe det over, hvis du ikke vil have det på din maskine
cd /usr/ports/www/apache22 make install clean
Ret servernavn i /usr/local/etc/apache22/httpd.conf
ServerName botero:80
Sørg for at Apache startes op automatisk ved at tilføje
apache22_enable="YES"
til /etc/rc.conf. Og reboot
shutdown -r now
Verificer at webserveren kører ved at gå til
http://192.168.0.20/
Mit motherboard havde ikke RAID-5 som jeg troede. Så derfor valgte jeg
at køre RAID-5 i software med vinum
Installation af 4 x 500GB harddiske gik problemfrit.
Installation af software RAID-5 med vinum efter en opskrift fundet her: http://phaq.phunsites.net/2006/05/27/freebsd-gvinum-raid5-on-sparc64/
bsdlabel -w /dev/ad10 auto bsdlabel -w /dev/ad12 auto bsdlabel -w /dev/ad14 auto bsdlabel -w /dev/ad16 auto
Editer /tmp/raid5.conf (med flg. indhold)
drive vol1_disk1 device /dev/ad10a drive vol1_disk2 device /dev/ad12a drive vol1_disk3 device /dev/ad14a drive vol1_disk4 device /dev/ad16a
volume raid5_vol1 plex org raid5 261k sd drive vol1_disk1 sd drive vol1_disk2 sd drive vol1_disk3 sd drive vol1_disk4
Lav RAID-5 plexet og gem konfigurationen:
gvinum create /tmp/raid5.conf gvinum saveconfig
Formater drevet
newfs /dev/gvinum/raid5_vol1
Sørg for at vinum driveren loades ved startup. Tilføjet til /boot/loader.conf:
geom_vinum_load="YES"
Lav et mountpoint
mkdir /raid
Tilføj drevet til /etc/fstab med flg. linie:
/dev/gvinum/raid5_vol1 /raid ufs rw 2 2
Reboot
shutdown -r now
IT'S ALIVE!
botero# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad8s1a 507630 36854 430166 8% /
devfs 1 1 0 100% /dev
/dev/ad8s1e 507630 14 467006 0% /tmp
/dev/ad8s1f 26972140 888610 23925760 4% /usr
/dev/ad8s1d 2004526 114734 1729430 6% /var
/dev/gvinum/raid5_vol1 1419056622 4 1305532090 0% /raid
Samba er en software-pakke der kan dele drev og printere over nettet med SMB-protokollen. Det arbejder fint sammen med Windows og er meget udbredt.
Installer
cd /usr/ports/net/samba3 make install clean
Lav configurationsfil i /usr/local/etc/smb.conf
[global]
workgroup = WORKGROUP
netbios name = BOTERO
security = SHARE
[raid]
path = /raid
read only = no
guest ok = yes
Sørg for at alle kan læse og skrive i /raid
chmod 777 /raid
Tilføj flg. linie i /etc/rc.conf
samba_enable = "YES"
Reboot
shutdown -r now
Check at det virker ved at taste \\botero\raid i en Stifinder i Windows og at du kan kopiere filer over på serveren.

Squeezebox softwaren er open source og det giver mulighed for at tilrette den hvis man har specielle ønsker. Jeg vil gerne kunne lukke min server pænt ned når jeg er færdig med at høre musik. Normalt ville jeg skulle starte en PC, logge på med SSH og udstede en shutdown kommando. Men det er jo smartere hvis man tilføjer et menupunkt på Squeezeboxen og kan lukke ned derfra.
Slimserver softwaren kører under en bruger der hedder slimserv. Denne bruger har ikke lov at køre shutdown kommandoen. For at kunne give den lov til det uden at give den fuld super-user adgang installerede jeg sudo:
cd /usr/ports/security/sudo make install clean
Adgangen gives ved at tilføje flg. linie i /usr/local/etc/sudoers:
slimserv localhost = NOPASSWD: /sbin/shutdown
Derefter lægges flg. plugin i /usr/local/slimserver/Plugins/ShutdownServer.pm:
package Plugins::ShutdownServer;
use strict;
my %functions = (
'left' => sub {
my $client = shift;
Slim::Buttons::Common::popModeRight($client);
},
'right' => sub {
my $client = shift;
$client->bumpRight();
},
'up' => sub {
my $client = shift;
$client->bumpUp();
},
'down' => sub {
my $client = shift;
$client->bumpDown();
},
'play' => sub {
my $client = shift;
my $line1 = "Shut down server";
my $line2 = "Shutting down the server";
$client->showBriefly( { 'line' => [ $line1, $line2 ] } );
`/usr/local/bin/sudo /sbin/shutdown -p now`;
},
);
sub lines
{
my $client = shift;
return ("Shut down server", "Press Play to shut down server");
}
sub setMode
{
my $client = shift;
$client->lines(\&lines);
$client->update();
}
sub getFunctions
{
\%functions;
}
sub getDisplayName
{
return 'PLUGIN_DISPLAY_FILE_NAME';
}
sub strings
{
return '
PLUGIN_DISPLAY_FILE_NAME
EN Shut down server
';
}
1;
Reboot serveren, for at få plugin'en loadet i Slimserver:
shutdown -r now
Så mangler jeg kun at få lagt mine 400+ CD'ere over på serveren. Normalt ville jeg nok vælge mp3-formatet, men der er plads nok på serveren, så jeg har valgt at komprimere lydfilerne uden tab med Flac i stedet. Det betyder at hver CD fylder 350-450 MB. Men så lyder det forhåbentligt også en anelse bedre.
Jeg bruger Exact Audio Copy (EAC) til kopieringen. Det har den fordel at det kan tilrettes på mange måde og fx kalde et eksternt program for at komprimere de wav-filer den kopierer fra CD'erne. Jeg bruger Flac til komprimeringen.

Jeg har sat EAC til at navngive mine musikfiler som "<track> - <kunstner> - <album> - <sang>". Som man kan se, kan man få det som man vil have det.

EAC er konfigureret til at bruge Flac til komprimering. Feltet til "additional command line options" indeholder -T "artist=%a" -T "title=%t" -T "album=%g" -T "date=%y" -T "tracknumber=%n" -T "genre=%m" %s
Når jeg kopierer er arbejdsgangen at trykke Alt-G for at slå CD'en op i FreeDB. Så trykker jeg Ctrl-A for at markere alle sangene og derefter Shift-F5 for at kopiere sangene i komprimeret format. Det tager omkring 6 minutter at kopiere en CD med det CD-ROM drev jeg har. Så det kommer til at tage over 40 timer at kopiere alle 400...