È possibile utilizzare FreeBSD come sistema operativo principale del proprio personal computer? Certamente, ma non è semplice configurarlo.
A differenza di altri sistemi operativi, FreeBSD nasce come sistema operativo per server: l'attenzione verso l'utente ed in particolare verso tutto ciò
che necessita di una interfaccia grafica è generalmente scarsa.
Questa scarsa attenzione porta ad un maggior lavoro di configurazione perchè, come si dice, non si trova mai la "pappa pronta".
Allora perchè usare FreeBSD invece di altri Unix o altri sistemi operativi più "comodi"?
In primo luogo, perchè sotto l'apparente complessità di FreeBSD si cela un sistema operativo logico, prevedibile e quindi semplice da configurare una volta compresi pochi concetti fondamentali.
In secondo luogo per gli obiettivi di progetto: FreeBSD è stato progettato per essere efficiente.
In terzo luogo, credo che il motivo principale risieda proprio nel non trovarsi tutto pronto: vi è ancora un tocco personale alla configurazione del sistema che appaga di tutte le fatiche. È facile copiare un file eseguibile e vedere che va, ma non è soddisfacente come compilarlo, testarlo con diverse opzioni, verificarlo, rigirarlo a piacimento e vederlo funzionare. Le considerazioni esposte poch'anzi valgono sia per l'hobbista che per il professionista.
Questo documento descrive il mio sistema e, a grandi linee, come ho risolto le mie esigenze di utente desktop: non è una guida esaustiva alla
configurazione di FreeBSD, nè un manuale online.
Consultate i rispettivi manuali delle applicazioni e l'handbook di FreeBSD se avete dei dubbi.
Si presuppone una discreta conoscenza di FreeBSD da parte le lettore.
AVVERTENZA: data la velocità di evoluzione di questo settore, alcune informazioni potrebbero risultare obsolete o incorrette.
Si tratta di un assemblato composto da motherboard Asus A7V, 128MB di RAM PC100, processore AMD K7 (Athlon) a 500 Mhz, scheda grafica
ATI All-In-Wonder 128, scheda audio Creative SoundBlaster Live! 1024, DVD-ROM Creative 6x, controller SCSI Adaptec 29160 Ultra160 LVD,
disco rigido Fujitsu 18GB Ultra 160, LS120 (SuperDisk), removibile Jaz 1GB SCSI2, tastiera italiana AST, Logitech Cordless Wheel Mouse PS/2, TA
ISDN Motorola BitSurfr Pro.
L'hardware non è nuovissimo, ma è di qualità e ben supportato. Il software è ottimizzato e adattato a questa configurazione,
dal kernel alle applicazioni.
Ne risulta un sistema equilibrato, senza particolari velleità velocistiche ma stabile perchè costruito con componenti di qualità : l'ideale per una workstation per la produttività quotidiana.
A titolo di esempio fornisco alcuni file di configurazione fondamentali del mio sistema che risultano molto utili come esempi per configurare ex-novo una workstation FreeBSD.
/sys/i386/conf/PLUTO | Il file di configurazione del kernel. Cambiate il filename PLUTO con il nome della vostra macchina e editate alla riga ident |
/etc/rc.conf | Opzioni di sistema |
/etc/make.conf | Opzioni di compilazione |
/usr/local/etc/cvsup/doc | Aggiorna /usr/doc |
/usr/local/etc/cvsup/ports | Aggiorna /usr/ports |
/usr/local/etc/cvsup/src-all | Aggiorna /usr/src |
/usr/sup/refuse | Istruisce cvsup a non aggiornare alcune directory di sorgenti, documentazione o port che ritengo non necessari |
~/.cshrc | Configurazione del terminale utente usando la shell tcsh; con colori e autocompletamento comandi (da rinominare in .cshrc) |
/etc/ppp/ppp.conf | Per collegarsi ad Internet via modem |
/etc/hosts | Definisce host noti, tra cui la macchina stessa |
/etc/X11/XF86Config | Configurazione di Xfree86 |
cd /usr/src make updateLa mia procedura differisce lievemente da quella di Gianmarco: prevede l'aggiornamento dei sorgenti, dell'albero dei port e della documentazione riferendosi ad un server mirror poco trafficato situato in Germania; utilizza inoltre un differente schema per accedere ai file di configurazione.
Prima di ricompilare il sistema con make world è necessario creare un file di configurazione del kernel e modificare, se li avete usati, i miei file di
esempio.
Rinominate PLUTO nel nome della vostra macchina .
In /etc/make.conf modificate KERNCONF=PLUTO ed eventualmente CPUTYPE=pentiumpro se avete un Pentium II,
Pro, III o IV (man gcc vi sarà di aiuto per conoscere le opzioni dei specifici processori supportati).
Per ricompilare e ottimizzare il sistema seguite la procedura per il make world descritta nell'handbook, capitolo 19.
In breve:
fsck -p mount -u / mount -a -t ufs swapon -a cd /usr/obj chflags -R noschg * rm -rf * cd /usr/src make -j4 buildworld make -j4 buildkernel make -j4 installkernel make -j4 installworld mergemastered infine reboot.
Se avete seguito la procedura di aggiornamento dei sorgenti descritta nel paragrafo precedente, vi ritrovate l'albero dei port aggiornato. Se non volete aggiornare i sorgenti e vi interessa soltanto avere l'ultima versione dei port, andate in cd /usr/ports e eseguite make update.
Per ricostruire l'indice dei port /usr/ports/INDEX, in /usr/ports date make index, ma di solito non è necessario perchè se aggiornate tutto l'albero dei port questo file viene scaricato e aggiornato di conseguenza.
Per verificare quali port necessitano di essere aggiornati, pkg_version -L\=.
Capita a volte di avere installate due versioni dello stesso port, o volere aggiornare un port specifico. Consiglio di installare /usr/ports/sysutils/portupgrade. Per verificare il database eseguite pkgdb -F e per aggiornare tutti i port installati all'ultima versione eseguite portupgrade -ar da root.
Una buona documentazione ed altri comandi relativi ai tool distribuiti con
portupgrade la trovate su http://www.onlamp.com/pub/a/bsd/2001/11/29/Big_Scary_Daemons.html e su http://www.freebsddiary.org/portupgrade.php
In /etc/hosts modificate 'pluto' e 'pluto.paperopoli.org' con le vostre preferenze. Se non disponete di un dominio potete metterne uno di fantasia, come ho fatto io. Per informazioni aggiuntive sulle opzioni del kernel consultate il file /sys/i386/conf/LINT e il capitolo 9 dell'handbook.
Per usare ppp via modem modificate /etc/ppp/ppp.conf aggiungendo il numero di telefono del provider, username e password. Aggiungevi al gruppo dialer in /etc/group accodando la login sul vostro sistema.
Da notare che il file /etc/resolv.conf viene riscritto ad ogni connessione dal ppp: non modificatelo, sarebbe un lavoro inutile.
Per collegarvi al provider usate il comando
ppp -auto internet
Per usare un modem ADSL o un modem-router vi sono molti articoli su Internet, a cominciare da un articolo di Gianmarco Giovannelli.
In alcuni sistemi capita di vedere sulla console questo fastidioso messaggio di errore.
Cito qui la soluzione di Allen Campbell:
Date: Fri, 15 Sep 2000 22:38:19 -0600 From: Allen CampbellTo: Joseph Jacobson Cc: freebsd-stable@FreeBSD.ORG Subject: Re: silo overflow Joseph Jacobson wrote: > > Just got this error, doing a 'make fetch' over ppp, while running mpg123. > Kernel config can be provided if needed. > > sio0: 1 more silo overflow (total 1) > sio0: 1 more silo overflow (total 2) > sio0: 1 more silo overflow (total 3) > sio0: 1 more silo overflow (total 4) > sio0: 1 more silo overflow (total 5) > sio0: 1 more silo overflow (total 6) This is a frequently reported problem. It is, for the most part, harmless. You will find an abundance of history by searching the mail archives. Apparently some recent changes involving 'fast' interrupt handling will cause FreeBSD to neglect a serial port for a bit too long, and incoming data isn't read from the device before it is lost. The following patch seems to help. It lowers the fifo threshold a bit causing more frequent reads from the device. It also increases interrupt frequency which, to some, seems rather tragic. I've never felt any pain as a result of 'too many' interrupts from a serial port, but I like not getting the silo overflows. This hack isn't Right(tm), but it does work. --- sio.c.orig Wed Aug 16 09:29:34 2000 +++ sio.c Fri Sep 1 14:53:47 2000 @@ -2345,7 +2345,7 @@ * latencies are larger. */ com->fifo_image = t->c_ospeed <= 4800 - ? FIFO_ENABLE : FIFO_ENABLE | FIFO_RX_HIGH; + ? FIFO_ENABLE : FIFO_ENABLE | FIFO_RX_MEDH; #ifdef COM_ESP /* * The Hayes ESP card needs the fifo DMA mode bit set No promises about whether this patch will apply to your version of src/sys/isa/sio.c. I usually just change the one line by hand.
ntpdate tempo.ien.itdove tempo.ien.it è il sito dell'Istituto Galileo Ferraris di Torino. Potete specificare un qualsiasi altro time server, ovviamente.
Potete aggiungere questo comando in /etc/crontab ed eseguirlo periodicamente se siete collegati permantemente ad Internet, altrimenti potete sfruttare il ppp e lanciare automaticamente il comando ogni volta che vi collegate. Aggiugete in /etc/ppp/ppp.linkup la riga:
MYADDR: !bg ntpdate tempo.ien.it
Se si vuole installare una interfaccia grafica sotto Unix la tendenza comune è utilizzare le specifiche del
protocollo grafico X: alcuni produttori di Unix, come Apple su OSX, hanno sviluppato protocolli alternativi altrettanto validi ma, sfortunatamente, proprietari.
:
XFree86 è una implementazione gratuita del protocollo X che gira praticamente su qualsiasi macchina Unix e non.
È una implementazione in costante evoluzione e l'ultima versione, la 4.2 nel dicembre 2001, non è affatto male.
Vi sono alternative commerciali quali www.xig.com e www.metrolink.com che offrono
una maggiore aderenza allo standard e driver accellerati specifici per particolari schede video, ma io non ne ho esperienza.
In passato per interagire con X era disponibile solo qualche scarno Window Manager,
ma da qualche anno a questa parte sono disponibili ambienti completi, KDE e
Gnome in primis, che hanno il vantaggio di offrire un ambiente integrato con una interfaccia uniforme per le applicazioni.
Questi ambienti stanno via via diventando sempre piè potenti, facili da installare e da usare, tanto da competere con i migliori sistemi operativi grafici e, a mio avviso, superarli in personalizzazione. Sono disponibili anche per FreeBSD e li trovate in /usr/ports/x11.
Personalmente uso KDE (/usr/ports/x11/kde2) perchè trovo che sia l'ambiente più pulito, sviluppato principalmente in Europa, con codice non Linux-centrico molto portabile e stabile.
A molti puristi questo ambiente non piace perche' utilizza molte risorse di sistema, ma io non sono un purista e non mi interessa se il mio Athlon 500 perde qualche ciclo di clock per l'interfaccia grafica o spreca qualche MB di RAM. Riconosco che KDE non è un missile ma a me pare sufficiententemente veloce.
Purtroppo la relativa lentezza è un problema che affligge XFree86 in generale, dovuta alla scarsa ottimizzazione dei driver video per mancanza di specifiche rilasciate dai costruttori.
Per installare la KDE, prima dovete installate XFree86. Rispondete YES a tutte le domande se non sapete cosa fare.
cd /usr/ports/x11/XFree86-4 make install cd /usr/ports/x11/kde2 make installA questo punto modificate il file .xinitrc e aggiungete
imwheel & exec startkde
Per abilitare il mouse si aggiunge a /etc/rc.conf l'opzione moused_enable="YES" e nel vostro .xinitrc aggiungete come prima riga imwheel & (l'ampersand [&] finale serve per eseguire il comando in background e non bloccare il flusso dello script). Per sfruttare la rotella centrale utilizzandola come controllo di scorrimento, bisogna aggiungere anche l'opzione moused_flags="-z 4" e alcune opzioni in /etc/X11/XF86Config ; per dettagli vedere i miei file di configurazione o l'handbook, che contiene una sezione apposita sull'argomento. I flag appena descritti assegnano alla rotella il controllo dell'asse Z. Installando il port /usr/ports/x11/imwheel i movimenti rilevati sull'asse Z vengono tradotti in pageup/pagedown, ovvero come se si fossero premuti i tasti, ottenendo l'effetto di scorrimento desiderato. Non sarà uno scorrimento dal movimento fluido come visto su altri sistemi, ma funziona.
cd /usr/ports/x11/imwheel make install
cd /dev ln -s sysmouse mouse
Talvolta capita che all'avvio del sistema il demone moused non venga inizializzato correttamente: muovendo il mouse si comporta come se fosse impazzito. Per riportarlo alla ragione eseguite questo comando da root:
kill -HUP `cat /var/run/moused.pid`Notare gli apici obliqui. Il problema può essere parzialmente risolto aggiungendo al file di configurazione del kernel /sys/i386/conf/PLUTO degli appositi flag al device del mouse che disabilitino il controllo del sincronismo. Per maggiori informazioni, man psm.
device psm0 at atkbdc? irq 12va modificata in
device psm0 at atkbdc? irq 12 flags 0x104
L'interfaccia grafica ha diversi vantaggi anche per l'utente abituato alle interfaccie testuali, se non altro perchè è disponibile una maggiore risoluzione e si possono visualizzare più colonne sul terminale. Per partire direttamente in questa modalità dovete prima installare XFree86 e ovviamente configurarlo, dopodichè modificate /etc/ttys e modificare la riga
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureIn
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm on secure
set term=xterm-colorQuesto settaggio dura solo il tempo della sessione in corso.
setenv TERM xterm-color
Porre il tipo di terminale a xterm-color ha anche il vantaggio di permettere la visualizzazione a colori del terminale previa impostazione della shell (settaggi CLICOLOR nel mio file .cshrc). È possibile utilizzare xterm al posto di xterm-color, ma non saranno visualizzati i colori.
Tempo fa ero solito collegarmi sempre in modo testo e battere startx per far partire XFree86. Dalla versione 4 in poi il server X gira come root e si è reso necessario installare un wrapper dai port (/usr/ports/x11/wrapper) per far partire X come utente. Questa soluzione solleva importanti questioni sulla sicurezza ed è anche in virtù di queste ragioni che ho deciso di usare xdm per partire direttamente in modalità grafica e chiedere login/password. Inizialmente non riuscivo a collegarmi come utente ma poi ho scoperto che non doveva essere installato il wrapper.
Per rimuoverlo:
cd /usr/ports/x11/wrapper make deinstall
Ottimizzare XFree86 significa abilitare alcune estensioni che permettono una gestione più efficiente di stream di dati. Tra queste le più importanti sono:
Direct Rendering Interface (DRI) - implementa l'accellerazione grafica 3D in hardware. Giochi e OpenGL ne traggono benefici enormi.
DGA - permette alle applicazioni un accesso diretto al frame buffer della scheda video. Alcune API che effettuano direttamente il rendering, come OpenGL, possono avere un accesso completo all'hardware senza richiedere l'utilizzo di una ulteriore API.
XVideo (Xv) - gestisce le schede video per ogni display X in modo trasparente all'applicazione, determinando quali risorse video sono disponibili. È un componente importantissimo e dovrebbe essere abilitato. Per sapere se è attivo, usare il comando xvinfo.
Driver video - è importante specificare il corretto driver per la propria scheda grafica per ottenere il massimo delle prestazioni. La mia ATI All-In-Wonder 128 funziona anche con il driver 'vga' ma consiglio di usare il driver 'r128'. Il driver ati.2 contiene accellerazioni supplementari per TV e DVD sviluppate dal progetto GATOS ma ora dovrebbe essere stato integrato in r128.
Sono possibili diverse personalizzazioni di X anche se io non ne sento il bisogno. In questa pagina trovate il .Xdefaults di Gianmarco Giovannelli che potete usare come punto di partenza.
La KDE fornisce tutto il supporto per Internet senza installare nessuna applicazione aggiuntiva. Per collegarsi si può usare KPPP e come browser si può usare Konqueror, lo stesso browser utilizzato per navigare tra i file locali. Questa integrazione tra file browser e internet browser è molto comoda, veloce e funziona particolarmente bene. Il rendering delle pagine è completo e non soffre più delle limitazioni del passato quando non supportava frame e JavaScript.
Nonostante queste belle cose io rimango fedele al ppp di FreeBSD perchè è completo, efficiente, stabile; a Netscape perchè lo trovo su tutti i sistemi e mi permette di trasportare senza problemi la posta e i file di configurazione da una piattaforma all'altra. Purtroppo Netscape non supporta più FreeBSD: il Communicator è fermo alla versione 4.7 ed è marcato Forbidden quando si tenta di installarlo. Per installare Netscape 4.79 o Netscape 6 bisogna usare la versione Linux, che funziona bene ed ha il vantaggio di poter usare i plug-in scritti per Linux, così mi sono rassegnato. I plug-ins non mi interessano, ma effettivamente per Linux ce ne sono parecchi: uno tra tutti, RealAudio. Date uno sguardo in /usr/ports/www/
Squid è un proxy http e ftp e risulta molto comodo per velocizzare la navigazione quando si à collegati via modem. Le immagini e le pagine più comuni sono prese dalla sua cache non sprecando banda preziosa.
Squid ha anche la capacità di filtrare ciò che passa dal proxy, così si può usarlo in modo creativo applicando dei filtri che eliminano quei fastidiosi banner pubblicitari che sono pure pesantissimi e consumano banda quando si è collegati via modem. Per saperne di più leggete le mie note sull'argomento.
Dopo aver installato Squid, su Netscape andate in Edit->Preferences->Advanced->Proxies e scegliete Manual Proxy Configuration: alla voce HTTP mettete localhost sulla porta 3128.
A seconda del tipo di scheda audio vi sono diversi driver disponibili: in /sys/i386/conf/LINT trovate parecchie descrizioni. Consiglio tuttavia di provare il driver newpcm di Luigi Rizzo. Nel vostro file del kernel in /sys/i386/conf/PLUTO aggiungete device pcm . Per sapere lo stato del driver, da shell battete cat /dev/sndstat .
Può essere necessario creare i seguenti link simbolici:
cd /dev ln -s dsp0 dsp ln -s dspW0.0 dspW0 ln -s dspW0 dspW ln -s music0 music ln -s sequencer0 sequencer ln -s mixer0 mixer ln -s audio0 audio0.0 ln -s audio0.0 audio
Per un utilizzo che non sia sentire qualche CD, bisogna installare qualche port.
/usr/ports/audio/liba52 , conosciuto anche come audio AC-3, per l'audio DVD
/usr/ports/audio/sdl_mixer , un mixer audio multicanale
Se non si sente alcun suono o SDL non riesce a inizializzarsi perchè trova /dev/dsp busy, probabilmente il busy (occupato) è dovuto al fatto che avete fatto partire artsd all'avvio della KDE: artsd è il sound server di default e impostato in questa modalità tiene occupato il device finchè la sessione KDE non finisce invece di lanciarsi e terminare secondo necessità. Disabilitatelo andando su KDE Control Center -> Sound -> Sound Server e disabilitate l'opzione 'Start aRts soundserver on KDE startup'. Questo dovrebbe risolvere il problema.
Una volta che l'audio funziona suonare mp3 è questione di installare qualche applicazione dai port.
Se non volete un ambiente grafico e vi piacciono le cose spartane, /usr/ports/audio/mpg123 fa per voi.
Se volete suonare gli mp3 in modalità testo e vi piacciono i menu, provate /usr/ports/audio/ksmp3play che usa le librerie courses. Questo è il mio preferito.
Se volete un player grafico potete usare quello di serie della KDE, kaiman, oppure installare /usr/ports/audio/freeamp. Quest'ultimo è molto carino, è basato su librerie GTK e sembra che faccia anche il caffè, ma quando tenta di indicizzare molti file va in crash rendendolo di fatto un programma inutilizzabile. Come al solito, invece di badare alla stabilità si guarda solo alle feature.
L'ultimo player che vi propongo è Xmms: è grafico, è carino, funziona bene. Da provare /usr/ports/audio/xmms anche in abbinamento ai diversi skin disponibili.
Per sfruttare il tuner TV delle schede video sono necessari dei programmi che permettano di pilotare le schede. Per quanto ne so non esiste un vero e proprio standard, né esistono dei veri e propri driver del sistema operativo. Ci si riduce quindi ad usare delle applicazioni specifiche allo scopo, che per le schede ATI sono riassunte nel progetto GATOS, in particolare xavitv. Alcune informazioni aggiuntive si possono trovare nelle FAQ.
Una volta scaricati i sorgenti l'installazione risulta piuttosto semplice anche se non è stato fatto un port.
cdUna applicazione più generica adatta a diversi chipset è xawtv../configure make make install
Questo capitolo appartiene al video capture, ma io non ho mai fatto esperimenti in tal senso.
I CD audio hanno un normale filesystem ISO 9660 quindi basta un mount_cd9660 /dev/acd0c /mnt per montarli in /mnt. Per suonare il CD, nella KDE esiste preinstallato kscd ma qualunque programma che riesca a leggere i CD va bene. Per controllare il cd player si può usare il comando cdcontrol, nel sistema base. Munitevi di un paio di cuffie, inserite lo spinotto sul frontale e buon ascolto.
Se si intende recuperare le traccie audio bisogna installare il port /usr/ports/sysutils/cdrtools e usare cdda2wav nel seguente modo:
cdda2wav -v255 -D/dev/acd0c -S32 -x -Oraw -E little -BL'opzione -B inverte i byte da Big Endian a Little Endian. Per masterizzare i file appena recuperati:
burncd -s12 -f/dev/acd0c raw *.raw fixatenel caso si abbia un masterizzatore ATAPI.
Ogle e Xine, due programmi che trovate nei port in /usr/ports/graphics, hanno il supporto i VideoCD ma io non ne posseggo neanche uno quindi non so dire se funzionano. Mi riportano che mplayer funziona.
La visione di film in DVD con il mio sistema è improponibile: sono costretto ad usare l'Innominabile. Purtroppo per FreeBSD non esistono driver che sfruttano i chip di decompressione hardware MPEG2 della All-In-Wonder 128 (ATI mi senti?) ed un Athlon 500 è troppo lento per decodificare via software e visualizzare a 30fps uno stream MPEG2. Il massimo che ho ottenuto sono 20fps e buon audio, non sufficiente per ottenere una visione ottimale.
Dalle mailing list ho appreso che nessuno sa esattamente quale sia la velocità minima che deve avere il processore per visualizzare decentemente i DVD, ma l'idea che mi sono fatto dalle diverse persone che mi hanno risposto è che 800MHz sono sufficienti.
Non si tratta di colli di bottiglia sul DVD in DMA o altro, non fatevi abbindolare: dal DVD Player esce uno stream MPEG2 compresso, assolutamente gestibile da una interfaccia ATA: è il processore che nella maggioranza dei casi non riesce a decodificare con sufficiente rapidità l'algoritmo MPEG2.
La morale è: se volete vedere i DVD su FreeBSD e state per comprare un PC nuovo, non siate parchi di MHz! In questo caso il processore viene sfruttato al 100% ed è meglio andare sul sicuro.
Link simbolici
cd /dev ln -s acd0c dvd ln -s racd0c rdvd ln -s racd0c cdromPer saperne di più sui DVD, leggete la faq alla URL http://eon.law.harvard.edu/openlaw/DVD/dvd-discuss-faq.html e visitate il sito OpenDVD
Per montare un DVD-RAM che contenga files e per vedere stream video non crittati con l'algoritmo css-auth, montarlo come un normale CD:
mount -t cd9660 /dev/acd0c /mnt
Per chi volesse cimentarsi con l'algoritmo decss, disponibile qui (l'Italia è un paese civile, non esiste copyright sugli algoritmi), riassumo brevemente i passi necessari per autenticare un DVD:
mount -t cd9660 /dev/acd0c /cdrom ./tstdvd /dev/acd0c /cdrom/video_ts/vts_01_1.vob cp title-key title1-key cat /cdrom/video_ts/vts_01_1.vob | ./css-cat -v1P - | mplayer -Utilizzando la libreria libdvdread.so (cd /usr/ports/graphics/libdvdread && make install) non si devono autenticare manualmente le tracce per vedere i film: se il lettore MPEG2 è predisposto questa operazione viene effettuata in automatico. I sorgenti che fornisco li ho compilati personalmente su FreeBSD, garantisco che vanno, ma hanno scopo puramente didattico in quanto scomodi da usare: ogni CD ed ogni traccia va autenticata singolarmente cambiando "vts_01_1.vob" nel numero di traccia preferito e naturalmente potete usare il player MPEG2 che volete al posto di mplayer. Se siete appassionati di crittazione e DVD, vale la pena dargli una occhiata.
Molti codec di questo formato sono supportati, tra cui il popolare Cinepak e Motion JPEG. Il codec Sorenson non è supportato perchè l'algoritmo è proprietario e non è stato rilasciato.
Le applicazioni usate sono Aktion, di serie nella KDE; XMovie, MPlayer e altri.
Sotto questo nome vi sono miriadi di codec, dei quali forse il più alla moda in questi giorni è il DivX. Varie applicazioni supportano l'Avi, tra cui Aktion, Avifile, MPlayer, xanim. Per il DivX bisogna installare divx4linux, nei port, oppure mplayer che utilizza le librerie win32-codecs che includono già il codec.
È il formato più diffuso e standard. Praticamente tutte le applicazioni lo supportano.
Tra queste, Xine, Ogle e MPlayer supportano anche MPEG2.
L'installazione del port non presenta particolarità di rilievo. L'applicazione necessita di queste impostazioni da digitare da shell oppure da inserire nel file /etc/sysctl.conf
sysctl -w kern.ipc.shmmax=67108864 sysctl -w kern.ipc.shmall=32768
Questo player supporta molti formati ed è discretamente veloce nel caricarsi e nella esecuzione. Questa è la procedura di installazione che consiglio.
- Installare singolarmente tutte le librerie dipendenti in sequenza, con gli specifici parametri di ottimizzazione: win32-codecs, svgalib, sdl, png, libaudiofile, imake, gtk, glib, gettext, freetype2, esound, aalib, XFree86, Mesa, libdvdread, libdvdcss
- cd /usr/ports/graphics/mplayer, poi installare con:
make WITH_MMX=YES WITH_3DNOW=YES WITH_DSP=YES WITH_GUI=YES WITH_SVGALIB=YES \
WITH_OPTIMIZED_CFLAGS=YES WITH_CSS=YES WITH_DVD=YES WITH_XANIM=YES WITH_VORBIS=YES install
Per vedere un DVD, date il comando mplayer -dvd 1 /dev/acd0c ma se vedete questo messaggio di errore:
libdvdread: Can't open path /dev/acd0c. Couldn't open DVD device: /dev/acd0csignifica che avete una versione di dvdread inferiore alla 0.9.2, probabilmente la 0.8: il port ha un bug noto e va aggiornato.
Il comando:
ldd /usr/local/bin/mplayerdovrebbe listare tra le altre librerie una stringa simile:
... libdvdread.so.2 => /usr/local/lib/libdvdread.so.2 (0x28454000) ...Se così non è, va proprio aggiornato.
Vi sono tre alternative per office automation su FreeBSD: StarOffice sviluppato da Sun Microsystems, OpenOffice sviluppato dalla comunità open-source, KOffice sviluppato dal team della KDE.
StarOffice 6.0 e OpenOffice 6.0 sono marcati Broken, quindi rimangono StarOffice 5.2 e KOffice 1.1. Il primo è un ambiente integrato, completo e indipendente al punto da creare un proprio desktop; il secondo è perfettamente integrato nella KDE. A seconda dei casi preferisco uno o l'altro, con leggera preferenza verso StarOffice perchè sembra più maturo, ma tengo d'occhio KOffice perchè evolve velocemente. Provateli entrambi e decidete voi stessi.
Tra i programmi stand-alone vi sono diversi spreadsheet che trovate in /usr/ports/math. Provateli, però a mio avviso sono di qualità inferiore allo spreadsheet di StarOffice come interfaccia e calcoli generici. A volte riescono a risolvere problemi specifici essendo sviluppati da matemateci o fisici: in questi casi, dateci una occhiata.
Come word processor potreste provare /usr/ports/editors/AbiWord /usr/ports/editors/wordperfect, ma io non li uso molto e non posso dare informazioni precise.
Se vi interessa soltanto visualizzare file Word provato /usr/ports/textproc/wv: converte in HTML,PDF e altri formati anche se il documento contiene figure e tabelle.
Naturalmente una lettura a man mount non fa mai male, ma in questo caso voglio ricordare che per montare un filesystem non bisogna solo dare il comando giusto, ma bisogna avere anche il supporto nel kernel.
options MSDOS options NTFS ...Per montare un floppy o qualsiasi altro device si deve usare il filesystem corretto.
Per l'automounting leggete questo articolo di Deamon News:
http://ezine.daemonnews.org/200202/automounting.html
Se avete una partizione FAT su un hard disk e volete utilizzarla, potete montarla per esempio con il comando mount_msdos /dev/ad0s1 /mnt oppure montarla automaticamente al boot aggiungendo in /etc/fstab la riga
/dev/da0s1c /dos msdos rw,-uinzet 2 2Le partizioni DOS non supportano i permessi di Unix, quindi il comando mount assegna di default all'utente root tutti i file e directory della partizione a meno di diversa indicazione. Con questa opzione i files avranno come owner l'utente inzet (cambiatelo con la vostra login) e vi eviterà seccature di accesso negato quando dovete scrivere all'interno.
/dev/da0s1c /dos ntfs ro,-uinzet 0 0Gli ultimi due parametri dovrebbero essere a zero perchè non è necessario controllare la partizione in caso di crash: se l'avete marcata read-only, nessun file era aperto in scrittura.
Netatalk è una implementazione del protocollo AppleTalk di Apple Computer. Si trova nei ports in /usr/ports/net/netatalk ed è composto da un client e da un server. L'ultima versione include le modifiche apportate da A. Sun che precedentemente costituivano un pacchetto separato.
La configurazione di questo port esula dallo scopo di questo documento, ma vorrei comunque aggiungere un paio di suggerimenti specifici per FreeBSD:
- montare il filesystem con l'opzione suiddir in /etc/fstab (man fstab per maggiori informazioni)
- aggiungete options SUIDDIR nel file di configurazione del kernel e modificate opportunamente i flag delle directory che volete mettere in comune tra diversi utenti (cercate in /sys/i386/conf/LINT per maggiori dettagli)
- i resource fork vengono messi in directory nascoste chiamate .AppleDouble. È opportuno che ne teniate conto se accedete alle stesse directory da un altro client che non sia un Macintosh.
Samba è un server che implementa il protocollo NetBEUI di Microsoft. Si trova nei ports in /usr/ports/net/samba.
La configurazione di questo port esula dallo scopo di questo documento.
Di sistema viene incluso il client, smbfs, che permette di montare volumi remoti da rete. È disponibile anche tra i port in /usr/ports/net/smbfs.
Per montare un volume condiviso Windows si usa il comando mount_smbfs. Per maggiori informazioni, man mount_smbfs.
Ci sono decine di modi per configurare le stampanti, ma sostanzialmente si deve configurare il file /etc/printcap e attivare il demone di stampa; solitamente è lpd ma esistono demoni alternativi.
Il modo più semplice è installare apsfilter.
cd /usr/ports/print/apsfilter6 make && make install clean
cd /usr/local/share/apsfilter ./SETUPSe non volete usare apsfilter, volendo ci sarebbe CUPS che ha un sacco di filtri. Da provare.
Se avete installato XFree86 viene installato xpdf, una semplice applicazione per leggere file .pdf. Se desiderate l'"originale", potete installare Acrobat Reader 4.0 , in /usr/ports/print/acroread4. Si tratta purtroppo di una versione nativa per Linux, ma se la cava bene anche in FreeBSD in emulazione.
GhostView (/usr/ports/print/ghostview) è l'interfaccia X11 di Ghostscript, un emulatore Postscript. Tra le altre cose, è in grado di leggere e visualizzare file .ps e .pdf. Lo uso ancora anche se è piuttosto datato. Una versione piè aggiornata di visualizzatore è gv, nella stessa directory print.
Non sono un giocatore e non mi interessa molto l'argomento.
Segnalo che Quake 2 è disponibile alla URL:
ftp://ftp.idsoftware.com/idstuff/source/quake2.zip
In /usr/ports/games e /usr/games trovate parecchio materiale ma attenzione: se siete dei videogiocatori forse FreeBSD non è la piattaforma che fa per voi. Compratevi una Playstation.
Ci sono diversi tipi di emulazione disponibili per FreeBSD.
La più comune è sicuramente la possibilità di esecuzione di applicazioni Linux, che ricrea l'ambiente di una distribuzione Red Hat 6 o 7.
Una parziale emulazione DOS è garantita da doscmd, nel sistema base.
Una emulazione DOS più completa è fornita da pcemu, in /usr/ports/emulators/pcemu/.
L'emulazione Windows viene ottenuta installando Wine in /usr/ports/emulators/wine
L'emulazione Macintosh viene gestita da Basilisk II e vMac, rispettivamente in /usr/ports/emulators/basiliskII e /usr/ports/emulators/vMac
Molti altri emulatori sono disponibili in /usr/ports/emulators.
Anche se il nostro sistema è un personal computer non significa che non sia vulnerabile agli hacker o appetibile. Si tratta pur sempre di una macchina Unix collegata ad Internet, quindi esposta ad un potenziale attaccante.
Se siete collegati permanentemente ad Internet leggete l'articolo di Stefano Riva sui firewall e le regole di accesso.
Se avete una connessione dialup, sul sito ufficiale FreeBSD trovate un articolo sull'argomento.
Come tutti i sistemi Unix, FreeBSD consente notevoli impostazioni per ottimizzare le prestazioni.
Il primo settore in cui agire è la compilazione, in modo da produrre codice altamente ottimizzato per la propria architettura. Le opzioni che ho inserito nel mio /etc/make.conf non sono che la punta dell'iceberg delle possibilità che gcc offre: naturalmente, tali raffinate impostazioni cambiano da processore a processore, quindi vi rimando al classico man gcc per i dettagli.
Il secondo punto su cui si può intervenire sono i dischi. Abilitare le SoftUpdates migliora sensibilmente le prestazioni in scrittura: consultate /usr/src/sys/ufs/ffs/README.softupdates per informazioni, oppure lanciate /stand/sysinstall e sotto Post Configuration -> FDisk abilitatele da lí. L'operazione sottintende aver smontato i volumi e aggiunto nella configurazione del kernel l'opzione SOFTUPDATES.
Il terzo punto è come i volumi vengono montati. Per esempio, un volume che contenga la cache di Squid potrebbe essere montato in modo asincrono aggiungendo l'opzione async in /etc/fstab: in caso di crash i dati vengono persi ma sono facilmente recuperabili e di contro vengono garantite ottime prestazioni in scrittura. Un altro suggerimento è di usare l'opzione noatime dove non c'è necessità di conoscere da data e ora dell'ultimo accesso ad un file, come nel caso di volume che contenga i file di un database. La mancata scrittura di queste informazioni evita un overhead ogni volta che si accede al file, migliorando le prestazioni di lettura/scrittura.
Il quarto punto dove si può intervenire è nei buffer interni di sistema, modificando il file di configurazione del kernel e/o al runtime tramite /etc/sysctl.conf. In questi casi è impossibile dare dei suggerimenti precisi: bisogna valutare caso per caso. Per esempio una applicazione potrebbe richiedere un numero maggiore di semafori allocati, ma normalmente questo numero di default è impostato molto basso perchè mantenere queste strutture costa parecchie risorse di sistema. Ripeto che bisogna valutare caso per caso ed è impossibile dare delle regole generali. L'unico modo per conoscere è sperimentare.
Questo articolo dovrebbe servire da esempio per la vostra workstation personale che quasi certamente privilegerà aspetti che io non ho considerato. Ricordatevi che in FreeBSD, come qualsiasi macchina Unix, la configurazione dipende molto dalle esigenze dell'amministratore del sistema. Se avete qualche esigenza specifica il consiglio è di dare prima una occhiata tra i ports ove troverete circa 5000 applicazioni Unix portate su FreeBSD. Per cercare qualcosa di specifico:
cd /usr/ports make search key=qualcosa