BSD MINI GUIDA HOW TO


Le pagine di questa breve guida provengono dal sito: www.paolodistefano.name


The real question is not: "Is FreeBSD good enough for you?"

The real question is: "Are you good enough for FreeBSD?"


SOMMARIO:

Premessa;

Configurazione hardware;

Partizioni e devices in FreeBSD;

Procedure post-installazione: ports e filosofia d'utilizzo;

Installazione server grafico (Xorg) e desktop manager (KDE, Gnome, Xfce)+ login grafico: KDM; Compiz ed effetti 3D

Il file /etc/rc.conf; il file /boot/loader.conf;

Montare e vedere le partizioni Windows e/o Linux e viceversa;

Firewall metodo IPWF;

Firewall metodo OpenBSD packet-filter;


Gestione e interventi vari:


Stampanti USB;

Scanner USB;

Altri dispositivi USB (Pendrive, HD USB)

Installazione Apache+MySQL+PHP+PhpMyAdmin/KMySQLAdmin;

Gestione binari Linux;

Samba (con particolare riferimento a MacOSX)

Caratteri true type MS;

Tastiera italiana nella console;

Lista dei dispositivi USB;

Verifica della memoria RAM gestita;

Plugin flashplayer;

Plugin multimediali in Firefox;

Riproduzione CD audio;

Supporto Java;

VirtualBox;

Collegamento DLNA/UpPnp con dispositivi multimediali (Playstation, TV, ecc.);

Vedere le dirette RAI con FreeBSD/PC-BSD;

Usare la rete Tor con FreeBSD/PC-BSD;

Come accedere al sistema da console per riparare errori;

OCR su *BSD;

Upgrade ad una versione successiva


PREMESSA


E' possibile un uso desktop dei *BSD? Sommariamente si può dire:

· OpenBSD e NetBSD sono *BSD specifici per uso server e non possono essere facilmente gestiti per un uso desktop, poi tutto è possibile;

· FreeBSD è un *BSD più abbordabile che permette, con un certo impegno, di avere un desktop funzionante. La presente guida è stata aggiornata alla versione 10.0 che introduce alcune novità gestionali.

· PC-BSD è un *BSD pensato proprio per un uso desktop, dove sia l'installazione che altre procedure gestionali sono state facilitate. Purtroppo, dalla versione 10.0 (Joule) il team ha fatto scelte regressive che hanno di molto diminuito proprio la facilità d'installazione.

In alternativa possono essere usati DragonFly BSD (un vero e proprio fork di FreeBSD) e DesktopBSD. Si segnala anche un'altro *BSD uso desktop più recente anche Live, sempre basato su FreeBSD: GhostBSD.


Lato utenza, si può dire che un utente Linux (specie se ha avuto trascorsi su distribuzioni come Slackware, Archlinux o Gentoo) può affrontare con una certa sicurezza l'installazione e la gestione di un *BSD. Un utente Windows può tentare d'installare PC-BSD o FreeBSD con l'accortezza di saper almeno come ritornare a rispristinare il MBR, nel caso qualcosa andasse storto.

Lo stesso dicasi per un utente Mac, ammesso e non concesso che voglia uscire dal guscio (peraltro ottimo) del MacOSX che è poi, a grandi linee, proprio un FreeBSD con in più Aqua.

Anche installando PC-BSD l'utente deve prepararsi ad approfondire in seguito, tramite lettura delle guide, i sistemi BSD. Infatti, pur facilitato nell'installazione, dovrà per forza poi affrontare tematiche da riga di comando per la gestione più spinta del suo desktop.

Detto in soldoni, una FreeBSD richiede una disciplina che in Linux ha forse paragone solo nella distribuzione Gentoo. Con la differenza, questa è una mia personale opinione, che le guide Gentoo sono insuperabili per chiarezza anche nell'affrontare temi difficili. Lo stesso non si può dire sempre per le guide o i tutorial in rete su FreeBSD che risultano spesso non aggiornate.

Questa mini-guida prende ad esempio FreeBSD e PC-BSD e si rivolge ad un'utenza di livello medio.

Installazioni su macchine virtuali (VirtualBox, ecc.) non forniranno un test completo ed autosufficiente e non porranno l'utente di fronte alla prova di settare e configurare un ambiente desktop completo dall'inizio.


Se volete installare FreeBSD anche il DVD di PC-BSD vi darà questa possibilità, installando una configurazione minimale del sistema operativo (opzione TrueOS), semplificandovi parzialmente la parte relativa alla scelta della partizione rispetto all'interfaccia poco user-friendly del DVD di FreeBSD e questo non è poco. Attenzione che PC-BSD ultimamente è solo per sistemi a 64 bit e installa solo filesystem ZFS. Quindi se avete computer non in grado di gestire il 64 bit e non siete pronti per ZFS non installatelo. Questa scelta di ZFS senza alternative (FreeBSD usa di default UFS), seppure lodevole perchè è forse il più potente filesystem in circolazione, crea non pochi problemi ed è un tantino discutibile, dato che gli sviluppatori di FreeBSD stesso lo considerano ancora sperimentale, almeno sui *BSD.


A questo punto la domanda è: conviene installare PC-BSD o FreeBSD? A questa risposta, fino all'uscita della versione 10 Joule di PC-BSD, era abbastanza facile rispondere: per un utente medio che vuole un ambiente desktop pronto senza tanti problemi meglio PC-BSD. Però da quella versione le cose sono cambiate. Stranamente il team di PC-BSD ha fatto passi indietro nella politica cosiddetta user-friendly: installazione con una grafica più spartana, abbandono della versione Live, ZFS come filesystem di default, ecc. che in parte hanno vanificato le differenze con FreeBSD. Così, ad esempio, se volete saggiare con una Live il vostro hardware dovete usare GhostBSD.


E' d'obbligo in ogni caso dare un'occhiata prima alla guida ufficiale di FreeBSD e specificatamente alla parte riguardante l'allocazione delle partizioni e l'installazione. In questa miniguida mi limito a suggerire alcune cose. Anche se installate PC-BSD, è buona cosa leggersi il manuale.


Infine, oltre a questa mia guida, consiglio la lettura integrativa di quest'altro utilissimo howto (in inglese) basato su FreeBSD versione 10.0 e sempre dedicato ad un'installazione in ambiente desktop.



CONFIGURAZIONE HARDWARE


In questa guida consiglio l'installazione di un *BSD soprattutto a chi ha schede grafiche Nvidia, per un pieno supporto 3D, anche scaricando PC-BSD per architetture a 64 bit. Ovviamente, dato che il supporto driver è un tantino carente pure rispetto a Linux, evitare di installare il sistema operativo su macchine che abbiano dispositivi di ultimissima generazione. Le schede wireless comuni presenti nei laptop più usati vengono riconosciute quasi tutte, ormai.

Per il resto dovrebbe essere normale amministrazione da affrontare caso per caso e la guida di seguito riporta come risolvere alcuni problemi con l'hardware.


Un avvertimento magari non necessario ma che potrebbe essere utile. Se avete connesso un HD esterno USB c'è il rischio, se siete sfortunati, che l'installazione di PC-BSD (o FreeBSD) si blocchi appena partita. Un'esperienza che castra fin dall'inizio e potrebbe far rinunciare all'installazione. In tal caso è sufficiente spengere l'HD USB esterno e rilanciare l'installazione. Per risolvere il problema in via definitiva è probabile che dobbiate disabilitare nel BIOS del computer il Legacy USB support. Andate con il comando previsto dal vostro computer (tasto DEL, ecc.) nel BIOS ed in una sezione dove avete la configurazione per i devices USB disabilitate l'opzione Legacy USB support. Dovrebbe funzionare.


INSTALLAZIONE: PARTIZIONI E DEVICES


Cosa importante da ricordare: un *BSD vuole una partizione primaria, meglio se installato nella prima partizione in sequenza di un HD. Comunque la regola della prima partizione può anche essere derogata senza particolari problemi ma non quella della partizione primaria. Scordatevi quindi le partizioni estese, almeno che io sappia.

Breve cenno sul modo con cui i *BSD definiscono i dispositivi. Rivolgendomi a chi viene da Linux, quello che lì è un /dev/hda (o /dev/sda/) diviene in OpenBSD /dev/wd0 ed in FreeBSD /dev/ad0 oppure /dev/ada0. Anche le partizioni sono descritte in modo diverso. Un device /dev/sda1 diviene un /dev/ad0s1 oppure /dev/ada0s1 in FreeBSD. I dispositivi USB esterni SCSI (HD esterni) sono chiamati in FreeBSD /dev/da0 e le loro partizioni /dev/da0s1, ecc. I CD e DVD sono /dev/cd0, mentre Scanner USB e stampanti USB sono rispettivamente /dev/ulpt0 e /dev/uscanner0. Per gli scanner però leggetevi la sezione apposita della guida ufficiale e comunque attenzione perchè ormai FreeBSD li denomina /dev/ugenX.X (dove X=numero). Per le schede di rete, ethernet è ale0.

Per l'installazione di FreeBSD consiglio l'uso del DVD di PC-BSD, per sfruttare l'opzione TrueOS contenuta nello stesso DVD. Così avrete la possibilità di usare un'interfaccia grafica molto più agevole per la scelta del partizionamento. Alla fine avrete una FreeBSD ridotta all'osso ma, se avete una connessione veloce, continuerete l'installazione in rete. Dopo il riavvio passate direttamente alla fase descritta qui sotto nella sezione ports. Una volta installati i ports, installarete, seguendo la guida ufficiale FreeBSD server grafico e Desktop manager e altre cose essenziali. Questo metodo è già usuale per chi viene da installazioni linuxiane toste (ArchLinux e Gentoo). Però, per esperienza e lo dico soprattutto a quelli che vengono da Linux, FreeBSD risulta più ostico e meno diretto nell'aggiunta dell'ambiente grafico ed altro. Tuttavia dalla versione 10.0 di FreeBSD, è possibile più facilmente installare il sistema grafico ed un Desktop Manager senza compilazione con i pacchetti attraverso il comando pkg di pgkng.

Altra cosa: se non siete proprio dei novellini cercate sempre di agire manualmente nella scelta delle partizioni, per attenersi quanto più rigorosamente alla scelta delle subpartizioni consigliate sul manuale ufficiale (/, /var/, /tmp/, /usr e opzionalmente /home). Comunque si può anche far fare la partizione in automatico, sempre controllando il device scelto. La quantità di spazio dedicato alle varie partizioni sarà a vostro piacimento, tenendo presente che quella più grossa (e di parecchio) va riservata a /usr. Attenzione anche a quella di /root. Dategli sempre uno spazio ragionevole (1,5/2 giga sono congrui).


Noterete che c'è la tendenza ad esagerare nello spazio SWAP. Ora, in presenza di memorie RAM direi superiori ai 3 giga, si può tranquillamente diminuire di parecchio la SWAP.


Tenete presente che, saranno i ports installati, saranno altre cose, comunque un *BSD uso Desktop non è mai tanto leggero (in questo assomiglia alla Gentoo). Con gli HD di oggi non ci saranno problemi ma tenetevi sempre sui 20 giga minimi per tutto il sistema.

Altra cosa da ricordare: con FreeBSD potete scegliere d'usare anche come filesystem lo ZFS (considerato ancora sperimentale) di Solaris e non quello di default UFS. Attenzione: con PC-BSD, a partire dalla versione 10.0 Joule, viene installato invece di default solo ZFS e non potete scegliere altri filesystem. Tenete però presente che per usare ZFS bisogna avere una macchina a 64bit e almeno 4 giga di memoria RAM. Inoltre, con ZFS, potreste avere più problemi di riconoscimento delle partizioni *BSD da ambiente Linux. Conviene ZFS? E' sicuramente un filesystem potente ma dalla gestione più complessa. Ha il problema poi di dover essere gestito, in presenza di altri sistemi operativi, con Grub 2 e non sempre è facile settare il boot loader. Infatti è noto in PC-BSD un problema con l'opzione Grub-slice (cioè non nel MBR del device d'avvio ma nella partizione di PC-BSD), opzione preferibile in presenza di altri sistemi operativi (Windows e/o Linux). In fondo, se proprio siete incuriositi da ZFS, potete sempre in un secondo momento settare un pool ZFS nell'ambente *BSD e divertirvi a vedere le potenzialità di questo file-system.

Se installate da PC-BSD usando l'opzione normale questo installerà l'ambiente KDE4 e quindi tutta una serie di pacchetti tra cui l'ambiente grafico ecc. Con apposita opzione potrete aprire un menu di scelta di altri programmi da installare. Installate il kernel-source mentre, e questo è importante, non installate con PC-BSD i ports (ovvero i pacchetti sorgenti degli applicativi). I ports vanno installati dopo, da terminale come root, seguendo le normali procedure previste nella guida ufficiale, per essere sicuri che durante la gestione del sistema poi tutto funzioni a dovere e che PC-BSD assomigli di più ad una FreeBSD.

Per far partire *BSD con filesystem UFS con altri sistemi operativi presenti sul computer è necessario un boot loader. Se venite da Windows e state provando il *BSD preparatevi a saper tornare indietro ripristinando il MBR originario, nel caso qualcosa non funzionasse.

Se avete già un boot loader, magari installato con un'altra distro Linux, tenete quello. Poi, per lanciare FreeBSD con filesystem UFS sarà sufficiente inserire, se non usate il Grub 2, nel vostro file /boot/grub/menu.lst le righe:


title PC-BSD (oppure FreeBSD)

rootnoverify (hdx,x) - dove le x stanno per la partizione secondo le regole grub.

chainloader +1


Un esempio di (hdx,x) è (hd0,2) che significa che il *BSD sta nel primo HD seconda partizione.


Con filesystem ZFS le cose si complicano. Un workaround è installare il Grub di PC-BSD non su MBR ma sulla partizione dove risiede il *BSD. In PC-BSD per farlo bisogna scegliere l'opzione Grub-slice all'atto dell'installazione del boot loader ma spesso così facendo spesso PC-BSD fallisce l'installazione! In FreeBSD l'opzione Grub-slice non solo non c'è ma ZFS occuperà tutto lo spazio sul device e non è possibile installarlo su una partizione.


POST-INSTALLAZIONE


Ognuno ha le sue procedure dopo che vede girare al riavvio il sistema. Qui segnalo alcune cose che bisogna fare per avere il sistema il più funzionante possibile.


Può sembrare strano ma la prima cosa da fare è impratichirsi subito con il modo usato da FreeBSD per installare le applicazioni e aggiornare il sistema (in questo ArchLinux e soprattutto Gentoo gli assomigliano). Specie se installate FreeBSD, alla fine dell'installazione avrete pochi applicativi pronti all'uso e dovrete aggiungere molti programmi rispetto ad una distro Linux più user-friendly. Ecco le principali cose da fare.


Installazione dei programmi, ports e filosofia d'utilizzo


Le applicazioni sono gestite in due modi. Uno è simile al sistema portage di Gentoo, che infatti lo ha ripreso in parte. Cioè si scaricano i sorgenti e si compilano. Avete sentito bene. Si compilano. Questo significa sistema ottimizzato ma anche tempi lunghi, specie se avete computer non proprio schegge. Questo metodo fa capo ai cosiddetti ports.

Poi ci sono i pacchetti binari che si autoinstallano senza ricorrere alla compilazione ed usano un comando simile all'apt-get di Debian, ovvero pkg (che ha ormai sostituito pkg_add come spiegato in seguito) e relative opzioni.

Con PC-BSD potete usare una terza via, quella dei pacchetti con estensione .pib


In genere viene consigliato di ricorrere quanto più possibile alla compilazione. Per svariati motivi, non ultimo per il controllo delle opzioni relativo al software da installare. Purtroppo le domande che vengono poste all'atto della compilazione possono essere ostiche, perchè non è facile sapere esattamente quali opzioni scegliere. Empiricamente, è meglio lasciare le scelte di default e aggiungere solo quelle che, per esperienza e a naso ritenete opportuno aggiungere oppure quelle espressamente previste da una guida. Tuttavia questa scelta comporta spesso tempi biblici, anche su computer potenti. Diciamo che, con l'adozione del metodo a pacchetti pkgng, è ormai accettabile ricorrere ai pacchetti, velocizzando molto il tutto. Attenzione: una via ibrida d'installazione e gestione, fatta sia con i pacchetti binari che con i ports può comportare alla lunga problemi di stabilità al sistema e problemi soprattutto con gli aggiornamenti.

Con PC-BSD, poi c'è la terza via dei pacchetti .pib Tali pacchetti (disponibili in quantità inferiore ai pacchetti FreeBSD) facilitano molto le cose ma appesantiscono un po' il sistema, non essendo canonicamente una procedura *BSD e rendendo il sistema non un puro FreeBSD.


Quindi, la prima cosa da fare dopo un'installazione è aggiornare i ports.


ATTENZIONE: prima di proseguire bisogna fare un'importante distinzione tra PC-BSD e FreeBSD per quanto concerne l'uso dei ports e l'installazione di software successivo all'installazione. In sostanza, se usate PC-BSD, è praticamente obbligatorio, soprattutto dopo le migliorie apportate all'Update manager di quest'ultimo, fare la successiva installazione (compilata o meno) di programmi in una jail, cioè usando ports-jail tramite Warden. Sarebbe, in parole povere, una zona protetta dell'installazione dove vanno a piazzarsi i programmi compilati tramite ports e successiva gestione con i comandi usati secondo filosofia FreeBSD (portupgrade, ecc.). Per usare ports-jail leggere QUI per approfondire l'argomento (soprattutto la sezione 4). In aiuto, c'è anche un video su Youtube. Da tenere presente che qualsiasi programma installato nella jail non sarà accessibile dal sistema PC-BSD ma dovrà essere lanciato all'interno della jail. Il problema è che se si usa invece la procedura normale per la creazione dei ports nella directory /usr in PC-BSD come in una FreeBSD, durante la compilazione in PC-BSD si creeranno quasi certamente dei conflitti tra le librerie, con il risultato che PC-BSD avrà difficoltà nell'aggiornare il sistema con l'Update manager (opzione System updates). Questa è una delle ragioni per cui PC-BSD, pur sembrando più facile come approccio all'inizio di una FreeBSD, poi rischia di diventare più complicato. In casi come questi forse la cosa migliore da fare, se possibile, è reinstallare PC-BSD avendo poi l'accortezza di mantenere pulito il sistema tra applicazioni installate nelle ports-jail e le altre installate da PC-BSD e lasciar poi fare gli aggiornamenti a Update manager, mentre la gestione dentro ports-jail potrà essere fatta regolarmente come in una normale FreeBSD.


Il meccanismo gestionale degli applicativi da installare è considerato molto potente dai fans di FreeBSD. Senza dubbio sarà efficace ma ad un utente poco esperto risulta piuttosto macchinoso. Poi, questa è una mia considerazione, l'accavallarsi dei metodi (si possono usare varie procedure per gli aggiornamenti) creano alquanta confusione, disorientando l'utente.

E' praticamente impossibile sintetizzare qui tutte le procedure possibili. Qui indico la via che ritengo più facile.

Tutti i comandi vanno dati da console e da amministratore. E' tutto scritto chiaramente nella guida ufficiale.

Sintetizzo, dare comando:


portsnap fetch e a seguire portsnap extract


Tenete presente che il processo potrebbe durare a lungo. Non vi spaventate.

Ricordatevi che d'ora in poi l'aggiornamento dei ports si farà digitando portsnap fetch update

Se volete inserire una procedura automatizzata di aggiornamento seguite la guida per la configurazione.


Dovete essere consapevoli che qualsiasi aggiornamento del sistema potrebbe comportare tempi lunghi, dato che il sistema dovrà ricompilare parecchie cose.


Ci sono vari tools per l'aggiornamento del software e quindi dovrete per forze fare riferimento alla guida ufficiale per schiarirvi per quanto possibile le idee. Per avere una panoramica delle opzioni leggete questa panoramica di fonte ufficiale oppure qui.

Cominciamo col dire che l'uso sia di portmanager che portupgrade è considerato deprecato o obsoleto e, nonostante la comunità abbia qualche dubbio, ufficialmente addirittura portmanager non è più supportato. Quindi si riportano solo per informazione. Per usare portupgrade come tool per aggiornare il sistema o singolo software del sistema potete seguire la guida ufficiale qui

Dopo aver aggiornato il database dei pacchetti come nel wiki segnalato prima, il comando per aggiornare un singolo applicativo e relative dipendenze è: portupgrade <nome applicazione>

Però se avete aperto il link sopra per 'portupgrade' avrete letto che il suo uso risulta obsoleto (anche se la comunità FreeBSD non la pensa proprio così) e consiglia di usare il comando portmaster al suo posto.

Veniamo dunque a portmaster, scelta consigliata. Una volta installato con un comodo pkg install portmaster, questo nuovo tool permette a grandi linee:

con portmaster -L di fare un elenco di tutto ciò che è installato e relativi aggiornamenti disponibili;

con portmaster -a l'aggiornamento di tutto l'installato (aggiungendo anche il suffisso “favremo un comodo rebuilding dell'installato nel caso qualcosa andasse storto);

con portmaster <nome pacchetto> installeremo un nuovo applicativo (il nome del pacchetto sarà comprensivo della directory come nel caso di portmanager);

con portmaster –check-depends fate un check di tutte le dipendenze.

Per renderlo compatibile con pkgng (il gestionale per i pacchetti) vedere la prossima sezione sul comando pkg e pkgng. Il comando va usato comprensivo del percorso /usr/ports/ dove si trova il programma per installarlo (ad es.: portmaster /usr/ports/editors/libreoffice).


Passiamo ora alle modalità d'installazione dei programmi e relativo aggiornamento. Possibili tre alternative:


Tramite compilazione. Una volta aggiornati i ports, cercare il software con il comando whereis <nome programma> e saprete in quale subdirectory di /usr/ports/ c'è il vostro applicativo. Andate dentro la directory e date da root make install clean (potrebbe essere usato in alcuni casi il comando make config prima ma solo se sono necessarie le configurazioni).

Questo compilerà il tutto, chiedendo magari quali opzioni di compilazione volete. In questi casi se non sapete esattamente cosa fare lasciate le scelte di default. In alternativa potrete usare il comando portmaster seguito dalla subdirectory con l'applicativo da installare.


Con FreeBSD e derivate di default dalla versione 10.0 è possibile usare il metodo pkgng basato sul comando pkg, che ha sostituito pkg_add. Lo si installa da /usr/ports/ports-mgmt/pkg oppure con pkg_add -r pkg. Il Wiki ufficiale è QUI. Da leggere accuratamente, soprattutto la prima parte riguardante il file di configurazione che non è più pkg.conf ma FreeBSD.conf inserito nella directory creata (/usr/local/etc/pkg/repos/FreeBSD.conf ) e con il contenuto esattamente ricopiato dal Wiki. Un altro conciso ma efficace tutorial, tranne che per la parte obsoleta relativa alla configurazione, lo potete trovare QUI. Questa nuova opzione ha i comandi che si trovano tutti nella directory /usr/local/sbin/ che va richiamata se non vi funzionano (cioè ad esempio /usr/local/sbin/pkg update) e si scrivono senza l'underscore (_) più o meno come in pkg_add. Per avere compatibilità tra pkgng e portupgrade/portmaster bisogna aggiungere una riga al file /etc/make.conf: WITH_PKGNG=yes. Inoltre, se non vi funziona ancora con portmaster, disinstallate portmaster e reinstallatelo di nuovo. Si può migrare da pkg_add a pkg con il comando pkg2ng come spiegato nel tutorial. Attenzione: se fate quest'ultima operazione, non potrete più usare il comando pkg_add, come è spiegato QUI. Inoltre, dovete, per evitare conflitti nella ricerca del repository, controllare che nelle rispettive directory utente e root, nel file nascosto di configurazione relativo ai terminali (se usate bash=.bashrc mentre con cmd=.chsrc), sia commentata con una # davanti la riga: setenv PACKAGESITE <path al repository>. I comandi più in uso con pkgng sono pkg install <nome pacchetto> (installa ed eventualmente aggiorna con tutte le dipendenze); pkg remove <nome pacchetto> (rimuove il pacchetto); pkg update (aggiorna l'elenco pacchetti dai repositories); pkg upgrade aggiorna tutti i pacchetti alla versione più recente; pkg info (elenca i pacchetti installati); pkg info -f <nome pacchetto> (informazioni sul singolo pacchetto). Infine con pkg clean fate una pulizia dei vecchi pacchetti che avete aggiornato e che non vengono rimossi, con aumento considerevole della memoria occupata. Questo metodo, ormai consolidato, è consigliabile per i meno esperti e per chi non vuole perdere tempo con la compilazione. In effetti, usando pkg dopo l'installazione del sistema base, in poco tempo si avrà una FreeBSD uso desktop perfettamente funzionante. Inoltre è ovvio che in tutti i link qui segnalati di tutorial in cui viene usato il comando pkg_add per installare o altro pacchetti, basterà sostituirlo con pkg install, ecc.


Attenzione: pkg_add dalla versione 10.0 obsoleto e sostituito da pkg. E' qui riportato solo per dovere d'informazione nel caso d'installazioni di versioni precedenti. Installa sempre pacchetti binari. Digitando da root pkg_add -r <nome pacchetto> installeremo pacchetti anche senza esattamente sapere tutta l'estensione del nome pacchetto. Cioè per firefox basterà scrivere pkg_add -r firefox. Per togliere un pacchetto invece il comando è pkg_delete <nome esatto pacchetto> (quindi dobbiamo sapere anche l'estensione del pacchetto). Per sapere quali pacchetti avete installato (compresi i compilati) e per avere l'esatto nome del pacchetto con le esetensioni usate pkg_info. Utile il comando pkg_info -L <nome esatto pacchetto> per sapere 'dove' sono i files del pacchetto, ovvero le directories dove *BSD ha distribuito i vari files. Molto utile per disinstallare interi pacchetti e loro dipendenze, anche installati con la compilazione, è il comando pkg_delete -x <nome pacchetto> dove il nome del pacchetto è generico (ad esempio pkg_delete -x php5 disinstallerà tutto php5 installato sulla macchina).


Tramite pacchetti .pib (solo PC-BSD) Si tratta di una novità introdotta da PC-BSD. Sono pacchetti precompilati che si installano senza particolari difficoltà, cercando il software tramite il gestore pacchetti che appare sul desktop di PC-BSD o andando direttamente sul link. Attenzione che dalla versione PC-BSD 9 Isotope il gestore pacchetti .pib si lancia aprendo l'icona Appcafè (sic!).Per i novizi è una vera manna ma per i puristi no. Obiettivamente usare troppo i .pbi crea assuefazione e si rischia di perdere contatto con la filosofia *BSD, salvo andare in panico quando magari non troviamo i programmi che ci servono (ad esempio Php). Diciamo che per un'onesta e tranquilla gestione i .pbi offrono un'alternativa a procedure che, francamente, potrebbero scoraggiare i novizi, permettendo a questi di usufruire di un sistema *BSD senza seguire, almeno in parte, le procedure canoniche per installazione e aggiornamento software. Gli aggiornamenti dei files .pbi si eseguono su Appcafè.


Insomma, per la gestione del software, a grandi linee si può dire che con portsnap s'aggiornano i ports e con portmaster potete tenere aggiornato il sistema se usate la compilazione. Con il comando pkg è possibile fare update più veloci con i pacchetti binari. Attenzione però a non sovrapporre troppo il software installato con pacchetti binari con altro compilato. Le due procedure, alla lunga, se usate insieme possono creare confusione e problemi di dipendenze non facilmente risolvibili. In sostanza usare i due metodi (compilazione o pacchetti binari) in modo abbastanza indipendente scegliendo o l'uno o l'altro, salvo casi particolari.

Il sistema di aggiornamento del software nei *BSD sarà pure rigoroso ma risulta francamente macchinoso e addirittura impossibile (dati i tempi necessari) con la compilazione se il sistema contiene migliaia di pacchetti. Insomma, a parte ragioni di sicurezza, nei *BSD è bene essere un po' parsimoniosi sugli aggiornamenti. Se il sistema va bene e gli applicativi girano, non vi fate prendere troppo la mano ad aggiornare in continuazione. Un buon metodo è quello di controllare periodicamente con il comando portversion -vl '<' oppure portmaster -L quali ports siano da aggiornare e regolarsi manualmente e secondo esigenze personali. Infine, per le patches della sicurezza è opportuno dare periodicamente freebsd-update fetch e poi freebsd-update install seguito da un reboot del sistema. Se qualcosa è andato storto, con freebsd-update rollback si ritorna indietro. Per quest'ultimo aspetto vedi anche la guida ufficiale.



Infine un accenno al non indifferente spazio che occupano le directory dedicate alla gestione software. Se si rilevassero problemi di spazio sull'HD provate a pulire e liberare spazio con comandi come portmaster --clean-distfiles oppure pkg clean


Adesso che sappiamo più o meno come installare e aggiornare, vediamo i passi successivi da fare.


Prima cosa: il server grafico. Ci troveremo di fronte a due possibilità.

1. installazione di PC-BSD. Non c'è problema. La prima cosa che farà al riavvio è di chiedervi di testare la vostra scheda grafica e, se avete delle Nvidia (magari non proprio quella uscita due giorni fa), sarà tutto riconosciuto a puntino e avrete anche il famoso rendering=YES. Il che vuol dire cubo ruotante e quant'altro. Del resto, usando PC-BSD avrete Kde4 di default, quindi potrete dal menu “impostazioni sistema” attivare gli effetti direttamente, senza nemmeno Compiz, usando gli effetti 3D di Kde4.

2. Installazione di FreeBSD. Ahia! Vi troverete imbarcati nel dover gestire direttamente l'installazione del server grafico e dell'ambiente grafico. Del resto, chi viene da Archlinux è già pronto a questo. Quanto segue interessa quindi FreeBSD e non PC-BSD.


Installare server grafico e ambiente desktop su FreeBSD. Si da per scontato che avete già installato Xorg scegliendolo tra le opzioni all'atto dell'installazione (almeno questo). Altrimenti la via più rapida è usare il comodo comando pkg e relativi pacchetti. Però attenzione. Se avete interesse ad installare poi il DE di KDE4 con la versione 10.0 dovrete aggiungere nella directory /etc/pkg/ un altro file di configurazione /usr/local/etc/pkg/repos/FreeBSD-new-xorg.conf così fatto:

FreeBSD_new_xorg: {

url: "pkg+http://pkg.FreeBSD.org/${ABI}/new_xorg",

mirror_type: "srv",

signature_type: "fingerprints",

fingerprints: "/usr/share/keys/pkg",

enabled: yes

}

Dare di nuovo pkg update e poi pkg install xorg.

Una volta installato Xorg, bisogna configurarlo a seconda della vostra scheda video, soprattutto per l'uso del rendering. Il famoso file in /etc/X11/xorg.conf va scritto a mano o al massimo ritoccato dopo aver dato da console un Xorg -configure che vi prepara un file di esempio da rivedere e portare sotto /etc/X11 con il nome di xorg.conf. Tutto questo lo farete da terminale.

Per coloro che hanno già una distro LINUX installata, conviene stamparsi lo xorg.conf e ricopiarlo quanto più possibile. Se avete una scheda nvidia installerete dai ports i driver delle schede. Installarli da /usr/ports/x11/nvidia-driver (attenzione a sapere quale scheda avete, quest'ultimi funzionano con le schede più recenti).

Altri piccole dritte: fare attenzione al riconoscimento del mouse che in BSD va nel /dev/sysmouse e che “Input Protocol” in genere accetta l'opzione “auto”.

Adeguatamente configurato il 3D viene attivato ed è quindi possibile anche usare compiz su un BSD come spiegato in seguito. Comunque, ormai sotto KDE4, una volta abilitati, si hanno parecchi effetti già presenti in Compiz. Insomma, se non riuscite a far girare Compiz accontentatevi degli effetti KDE4: il cubo ruotante comunque c'e! E poi compiz è un progeto non più supportato.

Una volta assicurati con comando da console startx che il server grafico parta, avrete il problema di far girare KDE, Gnome o XFce. Per esperienza, su FreeBSD (PC-BSD fornisce di default KDE4) sono più stabili KDE4, MATE e Xfce, mentre Gnome3 potrebbe dare problemi. Su FreeBSD per l'installazione potete usare questa guida per KDE4, mentre per GNOME2 e XFCE4 quest'altra. Con XFCE4 e MATE funzionano anche le cairo-dock per gli amanti dell'estetica simil- MacOSX. Tenete presente che l'installazione tramite compilazione (ports), a causa delle numerose dipendenze, richiede molto tempo mentre quella con i pacchetti è ovviamente molto più rapida. Alla fine, se non usate un login grafico come spiegato sotto, allora per far partire uno dei due desktop bisogna creare un file nascosto di testo nella propria directory .xinitrc. Dato che non è facilissimo, è meglio usare un login grafico che si interesserà a far partire il server grafico e poi il DE.


Effetti Grafici di COMPIZ


Sebbene COMPIZ sia un progetto in disuso, sotto FreeBSD si comporta bene ad esempio sotto MATE ed è facile installarlo. Per farlo conviene usare i pacchetti binari. Con il comando pkg search compiz vediamo prima i pacchetti che lo riportano e installiamoli con pkg install <nome pacchetto>. Installate anche Emerald per i temi grafici con pgk install emerald e pkg install emerald-themes. Per farlo partire seguite queste istruzioni (in pratica uno script da lanciare). Ovviamente nell'ambiente DE assegnate lo script nelle applicazioni d'avvio ed il gioco è fatto.



Usare KDM come login grafico (solo FreeBSD)

Se si vuole il login grafico conviene usare kdm (xdm è meno graficamente attraente e gdm ha problemi a funzionare). Una volta installato bisogna andare nell'importante file /etc/rc.conf (dove sono molti parametri per far funzionare BSD) e editare una riga con kde4_enable="YES". Qualche tutorial indica che bisogna andare sul file /etc/ttys e adattare la riga ttyv8 così: ttyv8 "/usr/local/bin/kdm **nodaemon" xterm on secure. In realtà, anche commentando la riga con un '#' il login KDM sembra funzionare, quindi l'opzione è a vostra scelta.

Attenzione: potrebbe capitarvi, specie con FreeBSD, un non lieve inconveniente per cui se fate il logout e di nuovo il login con kdm, questo non vi fa rientrare più verso l'utente scelto ed in pratica si blocca quasi alla fine del caricamento. Se accade, stoppate kdm andando in console con CTRL-ALT-F2, entrate come root e date il comando killall kdm. Poi andate alla directory /usr/local/kde4/share/config/kdm/ ed editate il file kdmrc con nano o vi. Nella sezione [X-*-Core] alla fine aggiungete una riga con TerminateServer=true. Poi con il comando /usr/local/kde4/bin/kdm start fate ripartire kdm e provate a fare di nuovo un logout ed un login, dovrebbe funzionare.


Problema KDE4 in Italiano (FreeBSD ed anche PC-BSD)

Se KDE4 vi appare con le scritte in inglese (sia in PC-BSD che in FreeBSD) assicurarsi d'aver installato anche il pacchetto della lingua italiana che si trova sotto /usr/ports/misc/kde4-l10n-it e di aver settato nell'Impostazioni di sistema di KDE4 → Localizzazione → Lingue → italiano come preferita. Inoltre settate la tastiera in mappatura italiana sempre in Impostazioni di sistema di KDE4. Se, nonostante ciò, continua ad apparire un mix di inglese e italiano e Dolphin è ancora in inglese provate a scrivere nel file nascosto della directory utente .login.conf le seguenti righe:

me:\

:charset=iso-8859-1:\

:lang=it_IT.ISO8859-1:


Poi fate un reboot e dovreste aver risolto il problema


Editare e/o modificare il file /etc/rc.conf


Sul file rc.conf. E' molto importante nei *BSD (chi conosce ArchLinux lo sa) e si trova sotto la directory /etc. Poiché, nonostante la sua importanza, si trova scarso materiale in giro nella rete per configurarlo, a titolo d'esempio se ne fornisce uno tratto da una PC-BSD:

background_dhclient="YES"

compat5x_enable="YES"

sshd_enable="YES"

devd_enable="YES"

devfs_system_ruleset="devfsrules_common"

ldconfig_paths="/usr/lib/compat /usr/local/lib /usr/local/kde4/lib /usr/local/lib/compat/pkg"

# Disable Sendmail by default

sendmail_enable="NONE"

# Enable console mouse

moused_type="auto"

moused_enable="YES"

# Enable the pcbsd startup / shutdown scripts

pcbsdinit_enable="YES"

#Enable samba server

samba_enable="YES"

winbindd_enable="YES"

# Disable LPD

lpd_enable="NO"

# Enable CUPS

cupsd_enable="YES"

linux_enable="YES"

# FSCK Enhancements

fsck_y_enable="YES"

# Denyhosts Startup

denyhosts_enable="YES"

# powerd: adaptive speed while on AC power, adaptive while on battery power

powerd_enable="YES"

powerd_flags="-a hiadaptive -b adaptive" # set CPU frequency

# enable HAL / DBUS

dbus_enable="YES"

hald_enable="YES"

# Enables support for HPLIP

hpiod_enable="NO"

hpssd_enable="NO"

# Enable the firewall

pf_rules="/etc/pf.conf"

pf_enable="YES"

pf_flags=""

# Enable sound-support

snddetect_enable="YES"

mixer_enable="YES"

# Enable avahi_daemon

avahi_daemon_enable="YES"

#Enable apache and mysql

apache_enable="YES"

mysql_enable="YES"

# Run the port jail

portjail_enable="YES"

# Added for sound support in the portjail, access to /dev/random, /dev/null, etc.

jail_pcbsd_devfs_enable="YES"

# Start the swapmonitor

swapmonitor_enable="YES"

# Enable IPV6 support

ipv6_enable="YES"

# Enable BSDStats

bsdstats_enable="YES"

# Enable webcamd

webcamd_enable="YES"

# Disable writing syslogs to remote devices by default

syslogd_flags="-ss"

ntpd_enable="YES"

ntpd_sync_on_start="YES"

#Add italian keyboard to console

keymap="it.iso"

# Auto-Enabled NICs from pc-sysinstall

ifconfig_ale0="192.168.001.002 netmask 255.255.255.0"

hostname="pcbsd-2543"

defaultrouter="192.168.001.001"

ipv6_defaultrouter=""

#Warden jail enable

warden_enable="YES"


Come si vede è una lunga sfilza di comandi YES/NO che attivano servizi e quant'altro all'avvio. Una volta che ci si impratichisce nell'uso è molto comodo. La sintassi è abbastanza elementare e la riga d'aggiungere viene in genere suggerita dalle guide o dagli articoli in giro per la rete. In questo caso, basta ricopiarli uguali ed inserirli. Qui si evidenzia la presenza, aggiunta in un secondo momento, dell'abilitazione all'avvio del server Apache e di Mysql.

Da segnalare anche la settatura dei parametri della rete che, nell'esempio riportato, si riferiscono all'assegnazione al computer in uso di un indirizzo IP statico; per un indirizzo IP dinamico la riga è: ifconfig_ale0="DHCP" e va cancellata (o commentata) la riga con defaultrouter=”....” . Utile segnalare anche il linux_enable settato a YES che serve a utilizzare i binari dei programmi Linux.

Comunque, anche in questo caso, installando PC-BSD è quasi tutto pronto (tranne Apache e Mysql), mentre con FreeBSD dovrete aggiungere manualmente parecchie cose ed è quindi utile fare riferimento a questo esempio.


Il file /boot/loader.conf


Anche questo file è piuttosto importante perchè carica moduli e quant'altro, necessari e vitali per molti devices, compresa la scheda audio. A parte quando trovate nelle guide l'apposito accenno ad inserirvi alcuni comandi, ritengo utile riportare anche in questo caso un file di esempio, tratto da una PC-BSD e quindi adeguatamente configurato:

# Kernel Options

kern.ipc.shmseg=1024

kern.ipc.shmmni=1024

# Enable the splash screen

vesa_load="YES"

splash_pcx_load="YES"

bitmap_load="YES"

bitmap_name="/boot/loading-screen.pcx"

# Load Wireless Support

if_ipw_load="YES"

if_iwi_load="YES"

if_wpi_load="YES"

if_iwn_load="YES"

legal.intel_ipw.license_ack=1

legal.intel_iwi.license_ack=1

legal.intel_wpi.license_ack=1

legal.intel_iwn.license_ack=1

# Enable usb Webcam Support

cuse4bsd_load="YES"

pwc_load="YES"

# Load mmc card-reader support

mmc_load="YES"

mmcsd_load="YES"

# Load additional sata device support

ahci_load="YES"

siis_load="YES"

sdhci_load="YES"

# Load support for scd

scd_load="YES"

# Load sound-support

sound_load="YES"

snd_uaudio_load="YES"

# Load geom support

geom_journal_load="YES"

geom_uzip_load="YES"

geom_mirror_load="YES"

geom_eli_load="YES"

# Load File-System Support

libiconv_load="YES"

libmchain_load="YES"

cd9660_iconv_load="YES"

msdosfs_iconv_load="YES"

ntfs_load="YES"

ntfs_iconv_load="YES"

udf_load="YES"

udf_iconv_load="YES"

zfs_load="YES"

tmpfs_load="YES"

nvidia_load="YES"

sem_load="YES"

hw.ata.atapi_dma="1"

beastie_disable="NO"

autoboot_delay="5"

#Enable Virtualbox driver

vboxdrv_load="YES"

Come si vede, anche in questo caso la sintassi è piuttosto semplice mentre i nomi dei vari moduli rimandano a parecchi supporti necessari in un desktop. Di particolare interesse quelli inerenti alla scheda audio, quelli inerenti alla gestione dei files system (notare ntfs_load per il file system Windows) e infine quello per i drivers grafici di Virtualbox se l'avete installato.


Vedere le partizioni Windows e/o Linux sullo stesso computer


Anche qui se avete installato PC-BSD non dovreste avere problemi a vedere non solo le partizioni del sistema ma anche quelle di Windows ntfs oltrechè fat32 e poter... udite...udite anche scrivere in quelle ntfs, sempre con le dovute cautele!

Le partizioni FAT32 e NTFS non in scrittura dovrebebro essere montate in automatico su KDE4. Tuttavia, FreeBSD ha strani comportamenti nei permessi non sempre facilmente risolvibili. Ricordate, a tal proposito, che con la riga vfs.usermount=1 aggiunta al file /etc/sysctl.conf darete i permessi all'utente per il montaggio/smontaggio. Non vale però per fusefs-ntfs (ntfs-3g) che qualche volta funziona qualche altra no. Se vedete però che le partizioni FAT32 si comportano in modo strano lato permessi, conviene montarle in /etc/fstab con una riga analoga a questo esempio:

/dev/ada(x)s(x) /mnt/fat msdosfs rw 0 0


Dato che è supportato anche ntfs-3g (si trova sotto il pacchetto o ports fusefs-ntfs), conviene usarlo per le partizioni NTFS. Con PC-BSD è tutto pronto, come saranno visibili nell'apposita icona i dispositivi USB eventualmente connessi (penne o HD esterni).

Se per caso non vedete le partizioni Windows o non ci potete scrivere qui riporto alcuni consigli su ntfs-3g. Riguarda soprattutto la configurazione in FreeBSD. Siccome il sistema di denominazione dei dispositivi dei *BSD è un po' ostico si può dare un comando da console ls /dev che elenca tutti i dispositivi attivi trovati. Utile soprattutto per montare altre partizioni presenti nell'HD, specie se Linux.


Andare in /usr/ports/sysutils/fusefs-ntfs e con il solito make install clean installarlo. Da console, la partizione si monta dando un comando da terminale come ntfs-3g /dev/ada0s1 /mnt/win. Però bisogna prima caricare il modulo con kldoad fusefs.ko (eventualmente controllare con kldstat se è già caricato). Se dà errori provate a riavviare direttamente il computer per far caricare il modulo, dopo aver messo in rc.conf fusefs_enable="YES" ed eventualmente in /boot/loader.con una riga con fuse_load="YES". Inoltre è bene creare un link con questo comando da terminale: ln -s /usr/local/bin/ntfs-3g /usr/sbin/mount_ntfs-3g. Questo dovrebbe essere sufficiente per vedere sotto Dolphin o Thunar (KDE4 e XFCE) le partizioni Windows montate in lettura e scrittura. Altrimenti, agire manualmente creando nella directory /media tante directory quante sono le partizioni da montare e dare chmod 777 alla directory in modo da renderla accessibile in tutto agli utenti. Modificare poi il file etc/fstab inserendo righe come questa d'esempio:

/dev/ada0s1 /media/windows8 ntfs-3g rw, 0 0


Se questa riga di comando non dovesse funzionare, provate ad usare quest'altra sempre in fstab (esempio):

/dev/ada0s1 /media/windows8 ntfs rw,mountprog=/usr/local/bin/ntfs-3g,late 0 0


Dare poi un mount -a e vedere se funziona. Se non vedete ancora niente, provate a riavviare il computer. Attenzione: agendo manualmente in KDE4 o altri WM potreste non vedere nulla cliccando sull'icone dei dispositivi che vi vengono visualizzati, questo perchè le partizioni non sono montate dal demone HAL. Dovete andare direttamente nella cartella /media e poi nella directory creata da voi per vedere le partizioni montate con ntfs-3g.


Un discorso a parte meritano le partizioni Linux eventualmente presenti sul vostro Hard disk. Tra cugini, stranamente, le cose sono più complicate che con Windows.

Intanto, il supporto è in sola lettura con la possibilità di copia. Per vedere da *BSD una directory Linux bisogna intervenire sul file /etc/fstab. Infatti ho notato molti errori nell'autorilevamento in KDE4 (sotto HAL) per quanto riguarda le partizioni Linux. Potreste avere un “invalid argument” e niente in vista. Bisognerà intervenire a mano, creando le cartelle necessarie in /mnt o /media (comando mkdir /mnt/<nomecartella>). Attenzione a non usare nella directory /mnt o /media nomi delle cartelle uguali a quelle automontate da HAL e visibili in KDE4.

Poi editare il file /etc/fstab scrivendo per ogni cartella Linux da vedere la riga (secondo il filesystem usato da Linux):


/dev/adaXsX /media/<nomecartella> ext2fs ro 0 0


oppure:

/dev/adaXsX /media/<nomecartella> reiserfs ro 0 0


Per filesystem Linux ext4 bisogna controllare se è installata l'utility fusefs-ext4fuse sotto /usr/ports/sysutils, altrimenti installarla con il solito make install clean. Poi montate la partizione da terminale con un comando tipo: ext4fuse /dev/ada0s3 /mnt/linux

Incredibilmente se volete inserire la riga in fstab per ext4 sarà uguale a quella con ext2fs, cioè: /dev/adaXsX /media/<nomecartella> ext2fs ro 0 0

Attenzione: il supporto al filesystem ext4 è ancora sperimentale e non è detto che funzioni, anzi. Spesso può succedere che il comando ext4fuse apra la partizione ma solo come root e la riga in fstab non monta nulla.


Anche in questo caso, le X stanno al posto dei numeri che indicano le partizioni Per sapere quali sono vi potete far aiutare dal comando ls /dev che vi farà vedere tutti i dispositivi attivi nel computer.

Il comando da terminale da *BSD per vedere una partizione ext2/3/reiserfs Linux è mount -t ext2fs (o reiserfs) -o ro /dev/[dispositivo] /media/[directory], quest'ultima come al solito prima creata. Mi raccomando l'opzione -o ro


Qualcuno si chiederà se è possibile fare il contrario e vedere le partizioni *BSD da Linux. Da Linux è possibile vedere partizioni *BSD editando il file /etc/fstab:

/dev/[device] /media/[direc tory] ufs auto,ro,ufstype=ufs2,nodev,nosuid 0 0


Però così facendo potreste vedere solo la partizione /root. Infatti le subpartizioni restano nascoste a Linux, almeno che non usiate i moduli particolari (nel kernel) per fargliele vedere. Il Kernel deve essere stato compilato con l’opzione UFS file system support (read only) nel menù Miscellaneous filesystems. Però, per esperienza, ormai i kernel installati di default dovrebbero avere questa opzione attivata. Sennò dovete ricompilare il kernel, non c'è nulla da fare. Dando il comando da Linux fdisk /dev/sdx (x=lettera della vostra partizione dove c'è *BSD), entrate in un dialogo in cui prima inserite l'opzione b) e poi l'opzione p) che vi dovrebbe far vedere tutte le subpartizioni *BSD precedute da una lettera.

Dando il comando cat /proc/partitions, dovreste avere la conversione delle lettere nel numero allegato alla partizione sdx (esempio: /dev/sda = partizione *BSD in Linux ---> /dev/sda1 = subpartizione lettera a) *BSD in Linux, /dev/sda5 = subpartizione lettera b) *BSD in Linux, ecc.). A questo punto sarà sufficiente creare tante cartelle in /mnt quante sono le subpartizioni elencate e montarle.


Esempio: se /mnt/bsd1, /mnt/bsd5, /mnt/bsd6 sono le tre cartelle create per le tre subpartizioni di *BSD, allora in /etc/fstab,avremo le righe:

/dev/sda1 /mnt/bsd1 ufs auto,ro,ufstype=ufs2,nodev,nosuid 0 0

/dev/sda5 /mnt/bsd5 ufs auto,ro,ufstype=ufs2,nodev,nosuid 0 0

/dev/sda6 /mnt/bsd6 ufs auto,ro,ufstype=ufs2,nodev,nosuid 0 0


Possibile problema: se dando il comando dmesg | grep bsd invece della giusta stringa che identifica le subpartizioni *BSD (tipo: [ 23.054946] sda2: <bsd: sda11 sda12 sda13 sda14 sda15, che vi dice che le subpartizioni sono sda11, ecc.) vi esce una stringa con:

sdb1: <bsd:bad subpartition – ignored sdb7> allora la cosa si complica e di parecchio. Sostanzialmente significa che il vostro Linux non riesce a leggere le subpartizioni. In tal caso la questione si fa delicata e non ho una soluzione, almeno finora, a questo problema, anche dopo aver cercato a lungo nella rete. Forse una soluzione è imbarcarsi in una delicata procedura di ridenominazione delle etichette (label) con tutto quello che ciò comporta. Se qualcuno ha risolto un problema anche analogo, sarebbe gradita una informativa.


E' possibile vedere partizioni *BSD da Windows?

Se volete provare date un'occhiata a questo progetto, anche se sembra un po' vecchiotto e testato fino a Windows XP: http://ffsdrv.sourceforge.net/


Infine si ricorda che l'accesso a una o più directory tra computer in rete con sistemi operativi diversi è possibile via Samba o ssh con Windows, Linux e Mac e, in Linux, anche via NFS (net file system).


Firewall


Potete scegliere nei *BSD tra due tipologie di firewall, tenuto conto che la sicurezza è ovviamente uno dei punti di forza di questo sistema operativo.

Metodo IPWF

L'attivazione del firewall si ha, come al solito, nel file /etc/rc.conf aggiungendo la riga firewall_enable="YES". Per una semplice configurazione con il metodo seguire questa guida. E' possibile settare già delle protezioni predisposte nel file /etc/rc.conf/firewall_type="<select>" Le selezioni possibili sono leggibili nel file /etc/rc.firewall (open, client, simple le più usate su un desktop).

Altrimenti si può configurare un file di regole d'accesso. Per un esempio di regole è utile questo esempio di file di configurazione per un uso normale (da mettere in /usr/local/etc/ipfw_rules):


IPF="ipfw -q add"

ipfw -q -f flush

#loopback

$IPF 10 allow all from any to any via lo0

$IPF 20 deny all from any to 127.0.0.0/8

$IPF 30 deny all from 127.0.0.0/8 to any

$IPF 40 deny tcp from any to any frag

# statefull

$IPF 50 check-state

$IPF 60 allow tcp from any to any established

$IPF 70 allow all from any to any out keep-state

$IPF 80 allow icmp from any to any

# open port ftp (20,21), ssh (22), mail (25)

# http (80), dns (53) , torrent (6881,4444), amule 4662,4672)

$IPF 110 allow tcp from any to any 21 in

$IPF 120 allow tcp from any to any 21 out

$IPF 130 allow tcp from any to any 22 in

$IPF 140 allow tcp from any to any 22 out

$IPF 150 allow tcp from any to any 25 in

$IPF 160 allow tcp from any to any 25 out

$IPF 170 allow udp from any to any 53 in

$IPF 175 allow tcp from any to any 53 in

$IPF 180 allow udp from any to any 53 out

$IPF 185 allow tcp from any to any 53 out

$IPF 200 allow tcp from any to any 80 in

$IPF 210 allow tcp from any to any 80 out

$IPF 220 allow tcp from any to any 6881 in

$IPF 230 allow tcp from any to any 6881 out

$IPF 240 allow udp from any to any 4444 in

$IPF 250 allow udp from any to any 4444 out

$IPF 255 allow tcp from any to any 4662 in

$IPF 260 allow tcp from any to any 4662 out

$IPF 265 allow udp from any to any 4672 in

$IPF 270 allow udp from any to any 4672 out

# deny and log everything

$IPF 500 deny log all from any to any


Come si può vedere le porte aperte sono: ftp, mail, http, dns, bittorent e amule. In /etc/rc.conf vanno aggiunte le righe firewall_enable="YES" e firewall_script="/usr/local/etc/ipfw.rules"

Si controllano le regole dando il comando da console ipfw list.


Metodo OpenBSD packet-filter

Di default su PC-BSD. E' un altro firewall che usa le regole dei packet-filter di OpenBSD (mitico!).

Su PC-BSD, la sola cosa da fare è di andare, come amministratore, sotto "impostazioni di sistema ----> Firewall" e accedere al menu grafico per le opzioni e soprattutto per le eccezioni, dato che, per default, il traffico in uscita è permesso a tutto, mentre in ingresso è permesso secondo le regole. Si tratta di gestire solo le eccezioni, qualora sia necessario. La settatura di un'eccezione è abbastanza facile, l'unica cosa è conoscere prima il dispositivo su cui agire (per esempio ethernet è ale0). Una comoda guida è qui consultabile

Però.... Ho riscontrato che usando il menu grafico non si ha il pieno controllo del tutto. Meglio aprire (sempre da amministratore) il file /etc/pf.conf ed editare manualmente le regole da aggiungere. Per esempio, se vi accorgete di accedere a Emule con Id basso si scriveranno due righe aggiuntive al file:


pass in on ale0 proto tcp from any to (ale0) port 4662 keep state

pass in on ale0 proto udp from any to (ale0) port 4672 keep state

Le due porte 4662 e 4672 sono quelle standard, potrebbero essere diverse se voi le avete cambiate nella configurazione di Emule.


Ancora più importante è abilitare il Firewall alla porta 631 che è quella del server CUPS per la stampa da remoto, se per esempio usate Samba. Si farà dando:

pass in on ale0 proto tcp from any to (ale0) port 631 keep state

pass in on ale0 proto udp from any to (ale0) port 631 keep state


Per avviare il Firewall dare da root il comando pfctl -e, mentre per disabilitarlo dare pfctl -d

Per riavviare il firewall da terminale e da root caricando nuovi filtri dare il comando:

pfctl -f /etc/pf.conf

in /etc/rc.conf vanno aggiunte le righe:

pf_rules="/etc/pf.conf"

pf_enable="YES"

pf_flags=""


Con il comando sudo pfctl -s all si verifica lo stato di tutte le regole in azione

IMPORTANTE: potreste avere un errore al boot del firewall di questo tenore:

no IP address found for lo1:network
/etc/pf.conf:4: could not parse host
specification
no  IP address found for lo1:network
/etc/pf.conf:5: could not parse host
specification

In tal caso dovrete dare da terminale, dopo aver stoppato il firewall con il comando /etc/rc.d/pf stop, il comando /usr/local/etc/rc.d/portjail restart, poi far ripartire il firewall con /etc/rc.d/pf start e ricaricare le regole.

 

Per coloro che vogliono usare questo metodo per il Firewall, riporto un esempio di file di configurazione che va bene per un normale uso:

set skip on lo0

set block-policy return

scrub in all

# VirtualBox

nat on vboxnet0 from ale0:network to any -> (vboxnet0)

antispoof quick for lo0 inet

block in from no-route to any

# Block all other incoming

block in log

# Allow all outgoing traffic

pass out keep state

# Block blacklist

table <blacklist> persist file "/etc/blacklist"

block from <blacklist> to any

# Enable ICMP for IPv4 IPv6

pass proto icmp all

pass proto icmp6 all

# Rules section

# Nic Specific Rules

pass in quick on ale0 proto {tcp,udp} from any to any port 49152:65535 keep state

pass in quick on ale0 proto udp from any to (ale0) port 137 keep state

pass in quick on ale0 proto udp from any to (ale0) port 138 keep state

pass in quick on ale0 proto udp from any to (ale0) port 111 keep state

pass in quick on ale0 proto udp from any to (ale0) port 1110 keep state

pass in quick on ale0 proto udp from any to (ale0) port 2049 keep state

pass in quick on ale0 proto udp from any to (ale0) port 4045 keep state

pass in quick on ale0 proto udp from any to (ale0) port 5353 keep state

pass in quick on ale0 proto udp from any to 224.0.0.251/32 port 5353 keep state

pass in quick on ale0 proto tcp from any to (ale0) port 445 keep state

pass in quick on ale0 proto tcp from any to (ale0) port 137 keep state

pass in quick on ale0 proto tcp from any to (ale0) port 139 keep state

pass in quick on ale0 proto tcp from any to (ale0) port 111 keep state

pass in quick on ale0 proto tcp from any to (ale0) port 1110 keep state

pass in quick on ale0 proto tcp from any to (ale0) port 4045 keep state

pass in quick on ale0 proto tcp from any to (ale0) port 5353 keep state

# Allow Emule

pass in quick on ale0 proto tcp from any to (ale0) port 4662 keep state

pass in quick on ale0 proto udp from any to (ale0) port 4672 keep state

# Allow CUPS remote

pass in quick on ale0 proto tcp from any to (ale0) port 631 keep state

pass in quick on ale0 proto udp from any to (ale0) port 631 keep state

# Allow TOR

pass in quick on ale0 proto tcp from any to (ale0) port 8118 keep state

# Allow ps3mediaserver

pass in quick on ale0 proto tcp from any to (ale0) port 5001 keep state

pass in quick on fwe0 proto {tcp,udp} from any to any port 49152:65535 keep state

pass in quick on fwe0 proto udp from any to (fwe0) port 137 keep state

pass in quick on fwe0 proto udp from any to (fwe0) port 138 keep state

pass in quick on fwe0 proto udp from any to (fwe0) port 111 keep state

pass in quick on fwe0 proto udp from any to (fwe0) port 1110 keep state

pass in quick on fwe0 proto udp from any to (fwe0) port 2049 keep state

pass in quick on fwe0 proto udp from any to (fwe0) port 4045 keep state

pass in quick on fwe0 proto udp from any to (fwe0) port 5353 keep state

pass in quick on fwe0 proto udp from any to 224.0.0.251/32 port 5353 keep state

pass in quick on fwe0 proto tcp from any to (fwe0) port 445 keep state

pass in quick on fwe0 proto tcp from any to (fwe0) port 137 keep state

pass in quick on fwe0 proto tcp from any to (fwe0) port 139 keep state

pass in quick on fwe0 proto tcp from any to (fwe0) port 111 keep state

pass in quick on fwe0 proto tcp from any to (fwe0) port 1110 keep state

pass in quick on fwe0 proto tcp from any to (fwe0) port 4045 keep state

pass in quick on fwe0 proto tcp from any to (fwe0) port 5353 keep state

pass in quick on fwip0 proto {tcp,udp} from any to any port 49152:65535 keep state

pass in quick on fwip0 proto udp from any to (fwip0) port 137 keep state

pass in quick on fwip0 proto udp from any to (fwip0) port 138 keep state

pass in quick on fwip0 proto udp from any to (fwip0) port 111 keep state

pass in quick on fwip0 proto udp from any to (fwip0) port 1110 keep state

pass in quick on fwip0 proto udp from any to (fwip0) port 2049 keep state

pass in quick on fwip0 proto udp from any to (fwip0) port 4045 keep state

pass in quick on fwip0 proto udp from any to (fwip0) port 5353 keep state

pass in quick on fwip0 proto udp from any to 224.0.0.251/32 port 5353 keep state

pass in quick on fwip0 proto tcp from any to (fwip0) port 445 keep state

pass in quick on fwip0 proto tcp from any to (fwip0) port 137 keep state

pass in quick on fwip0 proto tcp from any to (fwip0) port 139 keep state

pass in quick on fwip0 proto tcp from any to (fwip0) port 111 keep state

pass in quick on fwip0 proto tcp from any to (fwip0) port 1110 keep state

pass in quick on fwip0 proto tcp from any to (fwip0) port 4045 keep state

pass in quick on fwip0 proto tcp from any to (fwip0) port 5353 keep state

pass in quick on lagg0 proto {tcp,udp} from any to any port 49152:65535 keep state

pass in quick on lagg0 proto udp from any to (lagg0) port 137 keep state

pass in quick on lagg0 proto udp from any to (lagg0) port 138 keep state

pass in quick on lagg0 proto udp from any to (lagg0) port 111 keep state

pass in quick on lagg0 proto udp from any to (lagg0) port 1110 keep state

pass in quick on lagg0 proto udp from any to (lagg0) port 2049 keep state

pass in quick on lagg0 proto udp from any to (lagg0) port 4045 keep state

pass in quick on lagg0 proto udp from any to (lagg0) port 5353 keep state

pass in quick on lagg0 proto udp from any to 224.0.0.251/32 port 5353 keep state

pass in quick on lagg0 proto tcp from any to (lagg0) port 445 keep state

pass in quick on lagg0 proto tcp from any to (lagg0) port 137 keep state

pass in quick on lagg0 proto tcp from any to (lagg0) port 139 keep state

pass in quick on lagg0 proto tcp from any to (lagg0) port 111 keep state

pass in quick on lagg0 proto tcp from any to (lagg0) port 1110 keep state

pass in quick on lagg0 proto tcp from any to (lagg0) port 4045 keep state

pass in quick on lagg0 proto tcp from any to (lagg0) port 5353 keep state


Notare la riga con nat on vboxnet0, inserita per VirtualBox e la connessione della macchina virtualizzata. Nell'esempio sono poi state aperte le porte per CUPS in remoto, Emule, Tor e Ps3mediaserver (collegamento DLNA).


GESTIONE E INTERVENTI VARI


Stampanti USB

Dopo aver installato cups e gutenprint-cups (e hplip per stampanti HP), bisogna settare la stampante CUPS tramite il famoso localhost:631 da browser. Durante la scelta della stampante USB se avete problemi e vedete caratteri strani all'atto della stampa, provate a spuntare l'opzione “USB (no reset) e non quella solo “USB”. Potrebbe essere necessario per usare CUPS disabilitare lpd nel file /etc/rc.conf con una riga: lpd_enable="NO". Altri problemi, potrebbero far capo a questione di permessi. In sostanza, potreste stampare da root ma non come semplice utente.

In tal caso provate ad:

- editare il file /etc/devfs.conf e aggiungere (o modificare la riga) perm /dev/ulpt0 0666

- editare il file /etc/group e alla riga daemon:*:1: aggiungere il nome utente desiderato.

Comunque, leggere attentamente quanto detto nel Wiki ufficiale su CUPS. Attenzione che alla riga della guida add path 'usb/X.Y.Z” dovete cercare in /dev/usb il corrispettivo file verso cui punta in /dev il file ugenX.x segnalato dal comando dmesg


Far ripartire il server CUPS tramite il comando /usr/local/etc/rc.d/cupsd restart e.... sperate che funzioni!

Per permettere le stampe da remoto (ad esempio attraverso Samba) dalla stampante collegata al computer dove risiede *BSD, bisogna abilitare CUPS a farlo. Si andrà nella solita amministrazione da browser (localhost:631) ed oltre a spuntare le opzioni sotto Server settings (meglio spuntarle tutte se non si hanno problemi di sicurezza), è meglio aggiungere (editando il file di configurazione aperto cliccando sull'apposito tasto a destra) sotto alla riga con scritto Port 631 e prima della riga Listen /var/run/cups.sock le righe:

Listen localhost:631

Listen [IP della macchina]:631 ad esempio: 192.168.1.2:631


Scanner USB

Premesso che bisogna sempre leggere la guida ufficiale su questo link. Tutta la guida ufficiale si basa sull'uso di SANE e di X-sane come GUI. L'uso di SANE riguarda anche scanner presenti su stampanti All-in-one.

Attenzione: certe volte, il vero problema è che lo scanner potrebbe non esser proprio riconosciuto come dispositivo USB. Per vedere se è visto ci sono vari comandi da usare e riguardano tutti i dispositivi USB. Intanto, però un dmesg a scanner acceso ci dirà se qualcosa è visto o no. Il trucco sta nel dare il comando, accendere lo scanner e ridarlo. In fondo alla schermata dopo il comando dmseg, dovrebbe apparire qualcosa. Niente? Ahia! Dopo parecchie peripezie, un magico comando è stato trovato nascosto in una delle miriadi di discussioni in giro per la rete. Sito in inglese, naturalmente. Ecco la risposta a uno che non vedeva un dispositivo USB su *BSD data da un laconico ma geniale interlocutore: prova con il comando sysctl hw.usb.ehci.no_hs=1. Non commentava altro: duro e puro.

Infatti è così; dato da root 'sto comando benedetto nel terminale ed editando poi usbconfig list è possibile che il vostro scanner appaia magicamente nell'elenco dei dispositivi USB, con il suo nome identificativo. Del resto il comando syctl è un comando molto potente, uno dei fiori all'occhiello degli Unix-like.

Diamo allora un comando usbconfig dump_device_desc e vedremo tutti i dettagli (ID, vendor, ecc.) del nostro scanner. A questo punto e solo adesso, possiamo seguire la guida citata e installare, se abbiamo bisogno di Sane, nell'ordine: sane-backends, sane-frontends e xsane. L'installazione può avvenire o tramite compilazione o molto più velocemente con pkg install. Controllare comunque con un pkg info prima se qualcosa è installato già. Quando installerete sane-frontends vi chiederà un sacco di opzioni. Se tutto è andato a buon fine, allora si da un sane-find-scanner -q. Se lo scanner è trovato, tutto ok. Si passa al comando scanimage -L e se anche qui tutto ok, significa che lanciando X-sane (o anche altre interfaccia grafiche per scanner) avrete l'interfaccia grafica dello scanner pronta all'uso. Sennò leggete la guida. Molto probabilmente dovrete solo editare, come spiegato,il file /usr/local/etc/sane.d/<nome scanner>.conf

L'unica cosa è che la guida è un po' vecchia (difetto piuttosto frequente nelle guide *BSD) ed adesso gli scanner sono ormai riconosciuti sotto il nome di /dev/ugenX.x (esempio del mio: /dev/ugen7.2) e non più sotto /dev/usbscanner. Inoltre, per chi usa scanner Epson, spesso il file da modificare non è epson.conf ma epson2.conf (state attenti!) e basta inserire il codice ID e VEND trovato con i comandi precedenti.

Anche nel caso dello Scanner potrebbero esserci problemi di permessi. Specie in FreeBSD vi trovate ad usare lo scanner solo come amministratore. Bisogna cambiare il file /etc/devfs.conf ed il file /etc/devfs.rules. In devfs.conf inserite una riga che punta esattamente al dispositivo del vostro scanner (individuato come visto prima), ad esempio: perm /dev/ugen7.2 0777, mentre in devfs.rules mettete una riga simile: add path 'ugen*' mode 0777.

Infine, solo nel caso si sia dovuto usare il comando syctl per far riconoscere lo scanner, sarà necessario rendere permanente il tutto, dato che al riavvio del computer sareste costretti a ridare il comando sysctl. Basta aggiungere la riga hw.usb.ehci.no_hs=1 (senza sysctl prima) al file /etc/sysctl.conf. Esempio:

.

# Allow to recognize an usb-scanner

hw.usb.ehci.no_hs=1

.....

E questo dovrebbe essere tutto.


Altri dispositivi USB

Qui ci si riferisce alle pendrive USB ed agli HD esterni USB ed in particolare al riconoscimento, montaggio e/o automontaggio da parte del sistema operativo, una volta inseriti nella/e porta/e USB. Con le ultime versioni di FreeBSD e con KDE4 o MATE dovreste vedere in automount i dispositivi. Se avete problemi nell'automount, le soluzioni sono in genere tre: provare una sequela di configurazioni, usare un'utility apposita chiamata 'automount', adottare il classico sistema manuale da riga di comando. Le procedure di configurazione trovate sulla Rete sono un pò ostiche per gli utenti cui è dedicata questa guida e non è nemmeno garantito che funzionino ma comunque le potete leggere QUI se volete. Più semplice usare un'utility automount che si trova sotto /usr/ports/sysutils/automount e che s'installa con i soliti comandi make install clean. Poi si può settare il file in /usr/local/etc/automount.conf.sample a proprio piacimento e lo si salva come automount.conf. Questo è un esempio:

USERUMOUNT=YES

ATIME=NO

REMOVEDIRS=YES

FM="nautilus"

USER=<nome user>

ENCODING=it_IT.ISO8859-1

#CODEPAGE=cp852

Con FM scegliete il Window manager di vostro gradimento (dolphin, pcmanfm, ecc.), però tenete presente che non tutti vi faranno vedere i dispositivi montati se non andando direttamente nella directory /media. Ciò significa che avrete difficoltà a smontarli se non ricorrendo al terminale. E alla fine è proprio questo che dà più garanzie, come al solito. Infatti, tenete presente che se siete abituati ad avere l'HD USB inserito ed accesso insieme al computer, allora si ricorre facilmente alla configurazione in /etc/fstab secondo il tipo di filesystem sull'HD. Per cui se c'è Microsoft NTFS, la riga sarà analoga a questa (dopo aver creato la directory /mnt/hdusb): /dev/da0s1 /mnt/hdusb ntfs-3g rw 0 0

Ricordarsi che con ls /dev vedete i dispositivi riconosciuti e che con la riga vfs.usermount=1 aggiunta al file /etc/sysctl.conf date i permessi all'utente al montaggio/smontaggio. Non vale però per fusefs-ntfs (ntfs-3g) che qualche volta funziona qualche altra no.

Se invece inserite in un secondo momento il dispositivo USB lo montate da terminale con i soliti comandi e a seconda del filsystem: mount -t msdosfs -o rw /dev/da0s1 /mnt/usb (usato per le penne USB), oppure ntfs-3g -o rw /dev/da0s1 /mnt/usb o, in caso di Linux, mount -t ext2fs -o ro /dev/da0s1 /mnt/usb. Potete, ovviamente, in parte automatizzare questa procedura con un'icona sul desktop che punta ad uno script scritto con questi comandi.


Installazione Apache+MySQL+PHP+PhpMyAdmin/KMySQLAdmin su Freebsd e PC-BSD


Qui ci si rivolge ad un'installazione in locale, ad esempio per poter effettuare delle prove di gestione di siti WEB dinamici. Non ha quindi la pretesa di considerare gli aspetti della sicurezza tipici di un'installazione di un server WEB. Comunque, a parte l'aspetto della sicurezza da affrontare con le configurazioni, i passi fondamentali per l'installazione sono analoghi.


Poichè non è possibile installare (almeno per i comuni mortali) sotto *BSD il comodo pacchetto XAMPP (esistente per Win, Mac e Linux), bisognerà installare i tre componenti separatamente.

Qualcuno si è lamentato di questo fatto e della mancanza di un porting di questo pacchetto. La risposta è che non ce n'è bisogno perchè è facile installare le componenti separatamente. E' una tipica risposta del mondo *BSD. A solo titolo di informazione con PC-BSD è disponibile un pacchetto denominato AMP – Inmate. Tuttavia non è un normale pacchetto .pbi ma in altro formato, da installare all'interno delle Jail gestite da Warden.

Installare i singoli componenti non è semplicissimo, soprattutto per le configurazioni e le guide in giro sulla rete propongono di tutto e di più. Questa l'ho trovata sintetica ma efficace. Qui propongo una mia personale via per installare il tutto. Intanto qui è meglio compilare. Attenzione perché ultimamente c'è parecchia confusione con i numeri delle versioni di Apache, PHP e MySQL (installabile al suo posto anche MariaDB). PC-BSD installa di suo Apache e MySQL (non PHP), mentre ha il solo Apache come pacchetto .pbi ma è meglio non usarlo.


La strada consigliata è da terminale come root:

installare Apache2x (ultima versione consigliata la 2.4) dando cd /usr/ports/www/apache2x e poi il solito make config install clean oppure con portmaster;

installare PHP dando cd /usr/ports/lang/php5x e poi il solito make config install clean. Attenzione perché il modulo per Apache va installato dopo a parte;

installare Php5-extensions (o l'ultima versione che si trova nei ports) dando cd /usr/ports/lang/php5-extensions e poi il solito make config install clean.

Infine installare /usr/ports/www/mod_php5. Facendolo con portmaster probabilmente verrano esaudite delle dipendenze dovute a versioni diverse.

Alla fine dell'installazione, aprire il file di configurazione di Apache httpd.conf (directory /usr/local/etc/apache2x) come previsto nella guida segnalata prima. E' un punto delicato, comunque le cose importanti presenti devono essere:

a) nella sezione LoadModule la presenza di una riga “LoadModule php5_module libexec/apache22/libphp5.so” (significa che il modulo per gli script PHP è presente);

b) subito dopo questa sezione l'aggiunta di due righe con:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

c) nella sezione DirectoryIndex, l'aggiunta di “index.php”

d) avere abilitato (togliendo l'#') il modulo rewrite, cioè avera la riga: LoadModule rewrite_module modules/mod_rewrite.so


Per far partire il server Apache meglio usare il comando:

/usr/local/etc/rc.d/apache2x onestart (stop e onerestart sono le altre 2 opzioni utili) e non quello segnalato sulla guida ufficiale. Per convincersene, guardare questo Forum. Se, durante l'avvio, pur partendo il server vi dice qualcosa sull'impossibilità di trattare il nome di dominio, dovete aggiungere nel file httpd.conf una riga con ServerName localhost (sezione ServerName).

Fate inoltre una copia del file php.ini-production (o analogo) nella directory /usr/local/etc/ così: cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Ora, per vedere se tutto funziona, aprite il browser e scrivete nella barra indirizzi localhost. Se vi appare una scritta "it works", significa che il server Apache funziona. Per vedere se funziona anche lo scripting di PHP, aprite un file di testo e inserite:

<?php

echo "OK";

?>

salvate con il nome prova.php e inseritelo nella directory /usr/local/www/apache2x/data. Ricordate: questa è la directory dove dovrete piazzare le vostre pagine PHP. Ora, riscrivendo sul browser localhost/prova (oppure localhost/prova.php), dovreste vedere solo la scritta OK. Se è così, allora è fatta e passiamo a installare MySQL. Attenzione, se usate PC-BSD forse potete saltare questo passo. Per controllare se una versione MySQL è installata date il comando pkg info e scorrete in ordine alfabetico. Se trovate MySQL server e client allora è già installato, sennò dovete andare su /usr/ports/database/mysql55-server (potrebbe esserci una versione successiva alla 55 allora installate quella). Da lì il solito make install clean. Mysql-server installerà anche il client.

Su MySQL dovreste lavorare sulla sicurezza. Qui non mi dilungo, supponendo che state in ambiente locale e su computer sicuri e non avete database di particolare importanza da proteggere! I comandi da usare in tal caso sono: /usr/local/etc/rc.d/mysql-server onestart (avvia MySQL)

/usr/local/bin/mysql_install_db (installa il database per i permessi, ecc.)


Ora non resta che testare se possiamo connetterci attraverso uno script PHP al database sito in MySQL. Per farlo potete scrivere un altro file di testo da mettere nella directory /data di apache, come quello di prima. Solo che il testo sarà:

<?php

// Connessione a MySQL

$link = mysql_connect('localhost', 'root', '') or die('Connessione fallita: ' . mysql_error());

// Selezione database di test

mysql_select_db('test') or die('Selezione DB fallita: ' . mysql_error());

// E' tutto ok e chiudo la connessione

echo 'OK. Prova di collegamento al database test di MySQL con scripting PHP: entrambi risultano funzionanti!';

mysql_close($link);

?>

Salvate e chiamatelo connect.php e inseritelo nella directory /data. Ora nel browser scrivete l'indirizzo localhost/connect (oppure localhost/connect.php). Se tutto funziona, magicamente vedrete la scritta che dà l'OK della connessione. Se è così significa che da ora in poi potrete accedere ad un database MySQL con pagine PHP; ovviamente si suppone che sappiate cosa farne di tutto questo.

ATTENZIONE!: Può darsi che lo script di prova per la connessione fallisca con un messaggio più o meno simile:

Fatal error: Call to undefined function: mysql_connect() in /usr/local/www/data/connect.php on line 3

Ciò significa che bisogna verificare se in /usr/local/etc/php/extension.ini (che è un semplice file di testo) ci sia una riga uguale a: extension=mysql.so

Se non c'è bisogna installare il modulo da /usr/ports/databases/php5-mysql sempre con il comando make install clean. Alla fine dovreste avere la riga aggiunta nel file citato in automatico. Fate ripartire Apache e riprovate.

Per far partire Apache e MySQL in automatico all'avvio del computer aggiungere al file /etc/rc.conf due righe:

apache2x_enable="YES"

mysql_enable="YES"


Attenzione: se notate strani messaggi (tipo: “Invalid argument: Failed to enable the 'httpready' Accept Filter...”) lanciando il server Apache o dando il comando /usr/local/sbin/httpd (con il server ovviamente non in funzione), è probabile che dobbiate inserire anche una riga apache2x_http_accept_enable="YES" al file /etc/rc.conf e inserire questa direttiva nel file /usr/local/etc/apache2x/httpd.conf

<IfDefine !NOHTTPACCEPT>

AcceptFilter http httpready

AcceptFilter https dataready

</IfDefine>


Nel caso seguiate la strada (non sbagliata) di rendere più sicura la connessione cambiando la password e l'utente d'accesso di MySQL (ricordarsi che l'utente root non è l'utente root del sistema ma vale solo per MySQL), nello script precedente dovrete inserire il nome dell'utente scelto al posto di "root" e inserire l'eventuale password al posto dei due apici "" ma sempre dentro due virgolette. Se poi il computer dove si trova il database è diverso da "localhost", dovrete inserire l'IP del computer sempre tra tra virgolette.

Per correttezza segnalo una guida molto completa soprattutto per chi volesse cimentarsi nell'installazione con Apache server versione 2 e successive


A questo punto possiamo installare il PhpMyAdmin che ci permette di gestire i databases MySQL (crearli, vederli, modificarli, ecc.). L'installazione di PhpMyAdmin, che si gestisce attraverso un browser richiamandolo in genere all'indirizzo “localhost/phpmyadmin”, non è difficile in sé ma può comportare malfunzionamenti dovuti alle configurazioni non proprio agevoli da fare. Per installarlo, andare nella directory /usr/ports/databases/phpmyadmin e dare il solito comando make config install clean. Poi seguire questo WIKI che dà un'idea delle cose da configurare. Fate attenzione: la guida segnalata in precedenza su caffetine.org va seguita solo in parte, perchè un pò datata. In particolare, usate la procedura della creazione in /usr/local/www/phpMyAdmin/ di una sub-directory config (con permessi assegnati 777) e poi accedete dal browser alla configurazione con <nomehost>/phpMyAdmin/setup (esempio: localhost/phpMyAdmin/setup). Cliccate per aggiungere un server e poi per la configurazione si presuppone che abbiate un minimo di conoscenza della gestione dei database MySql. Alla fine salvate, scegliete il server aggiunto che dovrebbe comparire nella lista e la lingua da usare e salvate di nuovo. Se tutto è a posto, un file config.inc.php è stato creato nella directory scelta. Copiatelo nella directory principale di PhpMyAdmin, restringete i permessi a 444 del file e cancellate la directory config.

Comunque se qualcosa non funziona, non vi scoraggiate e cercate soluzioni sul Web (oppure scrivetemi che se sono in grado rispondo). Ricordarsi comunque che potrebbe essere necessario nel file config.inc.php avere le due righe:


$cfg['UploadDir'] = '/tmp';

$cfg['SaveDir'] = '/tmp';


Dove la directory /tmp è aperta alla lettura e scrittura per gli utenti.


Inoltre nel file “httpd.conf” di Apache (versione 2.4) avere le righe nella sezione <Directory>:

<Directory "/usr/local/www/phpMyAdmin"> (ovviamente la directory può cambiare e anche le opzioni)

Options Indexes FollowSymLinks ExecCGI Includes

AllowOverride All

Require all granted

</Directory>


e questa nella sezione <IfModule mod_alias.c>:

Alias /phpmyadmin "/usr/local/www/phpMyAdmin"


Per aiutare riporto un file config.inc.php d'esempio:

<?php
/* Servers configuration */
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['MaxTableUiprefs'] = 200;
$cfg['Servers'][$i]['controluser'] = 'pma';
/* End of servers configuration */
$cfg['blowfish_secret'] = '4f9586ee0efa53.72722816';
$cfg['DefaultLang'] = 'it';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>

Nell'esempio, notare l'Allow no password settato a true se volete in locale lasciare sprotetto l'accesso a PhpMyAdmin.

Attenzione: è molto probabile che dopo l'installazione PhpMyAdmin fornisca dei warning relativi a delle funzioni disabilitate. Infatti, per rendere completa l'installazione, è opportuno creare un user "pma" e un database "phpmyadmin" su MySql. L'utente deve essere creato prima a livello di sistema (con il comando adduser) e poi aggiunto nella tabella user del database mysql. Controllate comunque se esista già un utente _pma (con l'underscore) installato di default durante la compilazione da FreeBSD. In tal caso modificherete solo il nome dell'utente in _pma nella tabella user e nel file config.inc.php. Il database va invece creato importando il file create_tables.sql presente nella directory /usr/local/www/phpMyAdmin/examples/. Solo così le righe presenti nell'esempio a partire da quella con $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin' e fino alla fine della configurazione del server avranno effetto. Ricordatevi di riavviare il server MySql dopo queste operazioni.

Infine, specie su FreeBSD, se PhpMyAdministrator dà messaggi di file not found, potrebbe essere necessario fare un link da /usr/local/www/<cartella di phpmyadministrator> verso /usr/local/www/apache22/data/



Gestione binari Linux

I *BSD hanno sviluppato la possibilità di usufruire dei binari Linux, per ovviare alla carenza di applicativi ed altro, spesso associata con lo scarso supporto delle aziende di software e hardware per i sistemi Unix. In sostanza, si ammette che per Linux c'è più roba in giro che per i *BSD. L'esempio più eclatante è forse il plugin flashplayer per Firefox e Opera che non è possibile installare direttamente su *BSD.

Per farsi un'idea della gestione dei binari Linux, bisogna leggersi la guida ufficiale

Se avete installato PC-BSD non c'è problema perchè è già tutto pronto e potete saltare il seguito

La guida, pur esauriente, potrebbe spaventare qualcuno. In realtà si tratta di installare da /usr/ports/emulator/linux_base-fcxx (prendete la versione più alta disponibile) con un make install distclean. Parte una compilazione lunghetta e incrociate le dita! Se tutto è andato a buon fine aggiungerete al file rc.conf la riga:

linux_enable=”YES”

Oltre ad editare il file /etc/fstab e aggiungere questa riga:

linproc /usr/compat/linux/proc linprocfs rw 0 0


Reboot e avrete ora una directory /usr/compat/linux che vi permetterà di poter installare applicativi Linux in FreeBSD (anche se a mio parere non è così semplice per frequenti problemi di incompatibilità di librerie)


Samba


Si presuppone che sappiate cosa sia Samba, come si installa e configura. Nei *BSD bisogna fare le stesse procedure, seguendo magari la guida ufficiale

Qui si affronta un caso particolare di post-installazione per un collegamento tra due computer, magari meno frequente ma penso utile: collegare un *BSD con un computer Apple (MacOSX Leopard e Snow Leopard) via Samba.

Una volta installato Samba sul *BSD dovreste vedere le cartelle sull'Apple da *BSD (si dà per scontato come già effettuata la procedura lato Apple per rendere pubbliche una o più cartelle nel MacOSX). Il modo migliore per farlo (non fallisce mai o quasi) è inserire l'indirizzo IP (qui un esempio supponendo che la macchina abbia IP 192.168.1.4) del computer Apple cui bisogna connettersi. Si può fare in vari modi (esempio in ambiente KDE4):

Dolphin ---> Rete --- Samba shares ---> inserire 192.168.1.4 in alto;

Dolphin ---> cliccare tasto sx in alto sotto alle icone (aprirete una finestrella per immettere indirizzi come con konqueror) e scrivere smb://192.168.1.4;

Aprire Konqueror (buon vecchio konqueror!) e scrivere l'indirizzo smb://192.168.1.4;

Aggiungere un'icona al desktop scrivendo come URL: smb://192.168.1.4

Il problema è che, nonostante abbiate settato correttamente i permessi in MacOsx, dalla macchina Apple potreste invece non vedere le cartelle condivise in *BSD.

Ci sono varie procedure lato *BSD per riuscirvi, provate nell'ordine:

- aggiungere (da root) un utente per Mac con il comando adduser -a [nome utente]. Se le cartelle da vedere appartengono ad un utente già esistente potete saltare questo passo, usando magari il nome dell'utente già esistente;

- aggiungere però lo stesso utente a SAMBA con smbpasswd -a [nome utente] dove la pwd è ovviamente uguale a quella impostata per l'utente creato o esistente. Cioè se devo vedere le cartelle di un utente già esistente ”pippo” devo solo aggiungere a SAMBA l'utente con: smbpasswd -a pippo e inserire la pwd di quell'utente che già è in uso. Ritornate sul Mac, chiedere la connessione al server, scegliere l'opzione no ospite (utente registrato) e digitare nome utente e pwd;

·         accertarsi che nel file di configurazione di Samba /usr/local/etc/smb.conf ci sia una riga con encrypt passwords = true e rilanciare Samba con /usr/local/etc/rc.d/samba restart;

·         se ancora non vedete le cartelle forzate i permessi della cartella/e condivisa/e a chmod 777, in pratica aperta/e a chiunque (chmod -R 777 /[directory]/[cartella]);

·         se non funziona ancora usare da console il comando pdbedit -a -u <username> con gli stessi criteri di smbpasswd (immettere una pwd di un utente esistente su *BSD) e rilanciare samba

In genere, applicando le prime tre procedure dovreste vedere la cartella condivisa su *BSD dal Mac!!

Leggersi comunque la guida ufficiale.

Una volta viste le cartelle da entrambe le macchine, bisogna configurare su Apple la stampante collegata al *BSD. Per farlo, meglio scordarsi il comodo settaggio previsto in preferenze di sistema del vostro MacOSX. Aprirete invece il browser Safari (solo Safari non Firefox o altro altrimenti non vi farà accedere) e digiterete nella barra indirizzi localhost:631. Esattamente come negli Unix, perchè MacOSX è comunque un Unix-like e peraltro CUPS è un prodotto della casa di Cupertino, pensate un po'! Cliccate su “Amministrazione” e poi “aggiungi stampante” sul menu e sceglierete la seconda configurazione ipp (ipp) e continuate. Nella casella seguente che apparirà scriverete questo indirizzo: ipp://<indirizzo server>:631/printers/<nome stampante>

Per esempio, supponendo che il computer *BSD abbia indirizzo 192.168.1.3 ed il nome della stampante nel file di configurazione smb.conf di *BSD sia “myprinter”, l'indirizzo sarà ipp://192.168.1.3:631/printers/myprinter.

Continuate a configurare la stampante cercando il driver per il modello come fareste nell'ambiente usuale del MacOSX, riprodotto in modo analogo sul browser ora. Se tutto è andato bene, cercando normalmente nelle preferenze di sistema ---> stampanti e fax, dovreste vedere come inattiva ma pronta l'iconcina della stampante configurata... non è poi così difficile.


Per finire, a mò d'esempio, riporto una semplicissima configurazione del file /usr/local/etc/smb.conf che funziona in una normale rete domestica tra computer in cui non c'è bisogno di particolari protezioni sui dati. Si presuppone che *BSD sia il server cui è collegata una stampante di rete ed il computer Apple sia client.


# Global parameters

[global]

workgroup=[inserire nome gruppo di lavoro]

server string = localhost

security = SHARE

encrypt passwords = true

password server =

server signing = auto

preferred master = No

domain master = No

ldap ssl = no

admin users = root

printcap name = cups

cups options = raw

[homes]

comment = Home Directories

read only = No

guest ok = Yes

[inserire nome collegamento]

comment = Collegamento BSD

path = [inserire percorso alla cartella condivisa di *BSD]

read only = No

guest ok = Yes

[inserire nome stampante configurata su *BSD]

path = /var/tmp

printable = Yes

create mask = 0700

guest ok = Yes

printer name = [nome stampante in *BSD esattamente come è configurato in CUPS]

oplocks = No

share Modes = No

[printers]

comment = All Printers

path = /var/lib/samba/drivers

create mask = 0700

printable = Yes


Attenzione. Per la stampante controllare che il Firewall (specie se OpenBSD packet-filter) sia aperto alla porta 631 tramite le righe spiegate sopra nella sezione “Firewall”. Inoltre controllare l'abilitazione nel file di configurazione di CUPS alla stampa da remoto come spiegato nella sezione “stampanti”.


Caratteri TrueType MS


Se non vedete i caratteri TrueType di MS in LibreOffice ed altre applicazioni provate a seguire la guida: http://www.freebsd.org/doc/it/books/handbook/x-fonts.html alla sezione font TrueType. Dovete però avere il set Microsoft di font come spiegato da copiare e incollare. Il set in questione va ricavato e copiato da un Windows installato dove i fonts sono nella directory di Win C:\Windows\fonts. Per chi usa PC-BSD c'è già un pacchetto .pbi pronto che si cerca editando “truetype” nel gestore pacchetti ed installandolo.

Se ancora non vedete i fonts TrueType provate a creare una cartella nascosta .fonts nella directory utente e lì copiate direttamente il set di fonts ricavato da Windows.


Tastiera italiana nella console.

Se nella console non potete usare la tastiera in italiano dovete aggiungere al file /etc/rc.conf la stringa come: keymap="it.iso"


Visualizzare i dispositivi USB connessi. Molti comandi in *BSD sono diversi rispetto a Linux. Per vedere i dispositivi USB connessi in Linux si da lsusb o simili. In BSD il comando è sysctl (un po' diverso) ma dalla FreeBSD 8.0 in poi è usbconfig.


Controllo della quantità di RAM gestita

Dato che ormai i computer hanno RAM sempre più grandi, è sempre bene vedere quanta RAM il sistema operativo riesce a gestire e in che modo. Sotto Linux in genere si usa il comando free, seguito da opzioni (es.: free -m). Sotto *BSD si può usare il comando tool, che però da conto anche dei processi in atto.

E' possibile però avere un comando simile a free di Linux, usando uno script in perl. Per installarlo, eseguire da amministratore nella console e nell'ordine:


fetch http://www.cyberciti.biz/files/scripts/freebsd-memory.pl.txt

mv freebsd-memory.pl.txt /usr/local/bin/free

chmod +x /usr/local/bin/free


Ora dando il comando free da terminale (come in Linux), avrete la quantità di memoria RAM gestita e altri dettagli.


Flashplayer in Firefox


Il plugin non esiste per *BSD. Anche in questo caso, PC-BSD vi semplifica la vita, perchè fa tutto lui. Su FreeBSD bisogna seguire una procedura un pò macchinosa. Per installarlo è dato per scontato che avete già installato i linux-ports (spiegato sopra). E' necessario per prima cosa installare il programma nspluginwrapper. Solita procedura: cd /usr/ports/www/nspluginwrapper e date make install clean oppure usate comando portmaster. Dopo installate /usr/ports/www/linux-f10-flashplugin(xx) dove le 'xx' stanno per la versione che trovate. Andate in /usr/local/lib/browser_plugins e dovreste vedere una cartella flashplugin. Create (se non c'è) nella directory /root un'altra cartella .mozilla/plugins. Date da console dentro la cartella flashplugin citata il comando nspluginwrapper -a -i -v <libflashplayer.so>. Verrà creato nella cartella /root/.mozilla/plugins un file npwrapper.libflashplayer.so

Copiate il plugin poi anche nella directory .mozilla/plugins (eventualmente crearle) degli utenti che usano il computer *BSD. In alternativa, per installarlo potete aiutarvi con questa guida, anche se è un po' datata.


Plugin multimediali del browser Firefox


Per i recenti FreeBSD installare gecko-mediaplay in /usr/ports/www/gecko-mediaplayer con portmaster, ovviamente dopo aver installato mplayer. Per fare prima potete usare pkg install gecko-mediaplayer.

PC-BSD installa di default una serie di plugin che vanno bene per la maggior parte dei casi.


Riproduzione CD AUDIO


Mentre non dovreste avere problemi a riprodurre files .mp3 ed altri files multimediali, potrebbe accadere che con i normali CD Audio, sia impossibile la riproduzione! Purtroppo è un problema dei *BSD e non è facilmente risolvibile. In giro per la rete è pieno di richieste d'aiuto per questo problema. Ovviamente per risolvere il problema diamo per scontato che la scheda audio sia stata riconosciuta e funzioni. Ciò significa che potete ascoltare tranquillamente l'audio di altri files multimediali, tipo filmati, riproduzione .mp3, ecc. Altro presupposto è che il lettore CD/DVD funzioni correttamente e sia in grado di aprire i CD o DVD con altri contenuti, come files di dati, foto, ecc.

I problemi possono essere di due tipi: l'audio da un CD audio inserito nel lettore non va, nonostante il CD inserito sia riconosciuto dal lettore e si accende la spia apposita. E' un problema che su FreeBSD e PC-BSD può accadere con una certa frequenza. La soluzione è quella di provare a far funzionare l'audio del CD musicale con programmi appositi. Qui si consigliano tre soluzioni che in genere funzionano.

Prima soluzione: uso comando cdda2wav. Si tratta di una soluzione a riga di comando e quindi non molto comoda ma è utile per testare se c'è soluzione nel vostro computer a questo problema. Bisogna dare da terminale prima il comando sudo cdda2wav -scanbus. Si otterrà un elenco analogo:

scsibus2:

2,0,0 200) *

2,1,0 201) 'HL-DT-ST' 'DVD-RAM GH22LS30' '1.00' Removable CD-ROM

2,2,0 202) *

2,3,0 203) *

2,4,0 204) *

2,5,0 205) *

2,6,0 206) *

2,7,0 207) *


Alla terza riga come si può vedere è stato individuato il lettore con tre numeri che lo identificano. A questo punto, dare il comando cdda2wav -eN dev=2,1,0 -t1, dove ovviamente i 3 numeri del dev= sono presi dall'output del vostro comando precedente relativi al dispositivo cdrom trovato. In genere il CD Audio dovrebbe partire e dovreste sentire la musica.

Si segnala che il comando cdcontrol, spesso suggerito nei Forum per trovare soluzione al problema, non funziona in quanto il CD si avvia ma non esce il suono. Meglio usare cdda2wav.

Seconda soluzione: uso di programmi appositi. Nonostante sul Web si dica che MPlayer funziona, ho constatato che anche questo applicativo fa partire il CD ma l'audio non si sente. L'alternativa è data da altri due applicativi: VLC. Si tratta di un noto applicativo per la gestione dei files multimediali. Installarlo con un pkg_add -r vlc. Una volta installato, lanciarlo, andare sulla scelta "Media" e poi "Apri disco". Spuntare la casella CD audio e inserire il device corretto che, in caso di un solo lettore sul PC, è /dev/cd0. Attenzione: /dev/adc0 è obsoleto dalla versione 9. Dopodichè tasto in basso "Riproduci" e il CD si avvierà e ascolterete la musica dalla prima traccia.

L'altro tipo di problema, riscontrato nelle recenti versioni, è più complicato e sembra connesso anche a problemi di permessi. In sostanza, accedete solo da root alla lettura del CD audio. Per testare se questo è il problema basta vedere se il comando cdda2wav visto prima funziona da root ma fallisce da utente. Per tentare di risolvere, date il comando da terminale camcontrol devlist e dovreste vedere nell'elenco il riferimento al vostro dispositivo ottico, con una serie di parametri. Ad esempio: <ASUS DRW-24B3ST 1.00> at scbus3 target 1 lun 0 (pass1,cd0).

Andate a modificare il file /etc/devfs.conf che deve contenere questi parametri:

link cd0 cdrom

link cd0 dvd

own /dev/cd0 root:operator

own speaker root:operator

perm speaker 0666

perm /dev/xpt0 0666

perm /dev/pass0 0666

perm /dev/pass1 0666

perm /dev/pass2 0666


Notare che deve essere presente un perm /dev/passX con il numero uguale a quello dato dal comando camcontrol in precedenza. Inoltre l'utente deve esser nel gruppo 'operator' Riavviare il computer.

Se ancora il CD audio non funziona, provate ad andare, in ambiente KDE, in System Settings (impostazioni sistema) ---> Multimedia ---> Cd Audio e spuntare la casella “specifica il dispositivo CD” quindi avviate l'applicativo KsCD che però con le ultime versioni sembra avere problemi. Altrimenti ricorrete ad Audacious che, in genere, non falla mai. Sulla versione 10.0 funzionano VLC e Audacious. Se nonostante tutto il CD audio non si sente, spiacente ma ho esaurito le soluzioni...


Supporto Java


Con FreeBSD bisogna installare il pacchetto openjdk da /usr/ports/java/ oppure con pkg install openjdk

Per il plugin nel browser si deve poi installare il plugin icedtea-web da /usr/ports/java/icedtea-web e fare il link nella directory /<nome utente>/.mozilla/plugins al plugin con suffisso .so che si troverà nella directory /usr/local/lib/IcedTeaPlugin.so

Ulteriori spiegazioni al link della guida ufficiale. Andare al capitolo 7.2.2 della guida.

Con PC-BSD si può scaricare dal packet manager un file .pbi che installa e pensa a fare tutti i link necessari, compreso quello con Firefox.


VirtualBox (virtualizzare Windows su FreeBSD/PC-BSD)


Anche sui *BSD è possibile rendere il sistema operativo un host per una macchina virtuale guest che virtualizza un altro sistema operativo a scelta. Qui si presuppone che abbiate una conoscenza minimale delle possibilità di virtualizzazione. Si è scelto come esempio VirtualBox (ex prodotto Sun ora sotto Oracle) perchè effettivamente è al momento uno dei più performanti (almeno per un uso normale) software di virtualizzazione totalmente libero in circolazione.

Nel caso particolare, ci si riferisce alla possibilità di far girare WindowsXP e Windows 7 dentro a PC-BSD/FreeBSD esattamente come l'originale, come sa bene chi è avvezzo alle virtualizzazioni! E' appena il caso di ricordare che virtualizzare un Windows è oltremodo comodo dentro ad un *BSD, dato che tali sistemi soffrono ancor più delle distro Linux di alcune limitazioni nel parco software a disposizione.


Premessa importante è che sui *BSD è possibile installare solo la versione OSE di Virtualbox. Comunque, dato che nei ports ormai si trova la versione 4.x.x di Virtualbox, questa implementa anche il supporto ai dispositivi USB, a differenza della versione 3 che non li supportava.


Per installare Virtualbox-OSE su FreeBSD è meglio farlo con i pacchetti binari dando il comando:

pkg install virtalbox-ose-kmod e poi pkg install virtualbox-ose

Alla fine dell'installazione attenzione a fare un copia e incolla delle avvertenze che appaiono sul terminale. Infatti, dovrete:

- caricare il modulo vboxdrv scrivendo vboxdrv_load="YES" nel file /boot/loader.conf;

- aggiungere la riga vboxnet_enable="YES" nel file /etc/rc.conf;

- aggiungere gli utenti che useranno VirtualBox al gruppo “vboxusers” dando il comando pw groupmod vboxusers -m <nomeutente>;

- fare un reboot;

Si avverte anche che eseguire VirtualBox come utente non root potrebbe causare un errore “NS_ERROR_FACTORY_NOT_REGISTERED”. In tal caso cancellate il file /tmp/.vbox-*-ipc


Questa comunque è la guida ufficiale di FreeBSD, anche se potreste non avere bisogno, per fortuna, di tutte le procedure descritte...


Su PC-BSD risulta tutto, come al solito, più facile perchè è possibile installare un pacchetto .pbi dal Software-manager. Ora dobbiamo avere solo una copia di WindowsXP o Seven a disposizione per installarlo nella VirtualBox.


La configurazione di VirtualBox è analoga a quella usuale per altri sistemi operativi host (compresa l'installazione delle guest additions), ricordando solo che per Windows 7, come spiegato anche nel sito ufficiale di Oracle, è necessario installare manualmente i driver audio, scaricandoli da qui. Per risolvere eventuali problemi con l'audio consultare anche la pagina del mio sito, appositamente dedicata alla questione audio con Windows 7 virtualizzato.

Come configurare la macchina guest Windows 7 è spiegato bene in questo sito, dove troverete anche ulteriori notizie sulla configurazione da fare in FreeBSD nel caso quello che ho scritto prima non bastasse e ci fossero problemi. Su PC-BSD non c'è bisogno e potete andare direttamente alla configurazione di VirtualBox.

Comunque, dato che ho rilevato fastidiosi freeze completi del computer con PC-BSD ed una guest Windows 7 Ultimate (WindowsXP non dà in genere problemi), riporto una configurazione di VirtualBox che funziona su una PC-BSD con una scheda grafica Nvidia (le altre opzioni lasciarle come da deafult):

Sistema – Scheda madre (yes solo so IO/APIC) – Processore (no a PAE/NX) – yes a VTx/AMD-5yes a paginazione nidificata;

Schermo – potete abilitare l'accelerazione 3D e 2D altrimenti se crea problemi toglietela;

Archiviazione – Sotto Controller IDE ---> Tipo ICH6; yes a Usa cache;

Archiviazione – Sotto Controller SATA – yes a Usa cache;

Scheda di Rete – NAT – Avanzate ---> Intel PRO/1000 MT Server (82545em)


Ricordo solo il comando da dare in Windows per aprire una comoda cartella condivisa creata in VirtualBox e corrispondente ad una cartella presente in *BSD. In Windows da Start (Avvio) ---> Esegui, scrivere il comando net use x: \\vboxsvr\<nome cartella condivisa> (attenzione allo spazio dopo la “x:” Si ricorda che in Windows 7 è scomparso da “Start” il comando “Esegui”. Qui un rimando per come fare ad attivarlo.


Collegamento DLNA/UpPnp con dispositivi multimediali (Playstation, TV, ecc.)


Qui trattiamo un uso ancora più spinto nel campo del multimediale di un *BSD. Attraverso il DLNA (acronimo di Digital Living Network Alliance) è possibile mettere in comunicazione dispositivi multimediali con il computer. In particolare ci interessiamo alla possibilità di interfacciare un dispositivo multimediale come una PlayStation o un televisore che supporta il DLNA per esempio all'interno di una rete LAN casalinga. Sarà possibile così vedere le foto oppure un film contenuti nel PC direttamente sul televisore anche se i due dispositivi sono lontani tra loro e non connessi direttamente.

Per farlo sotto un *BSD (FreeBSD o PC-BSD) non è più ostico che con Linux. Ovviamente, si dà per scontato che il dispositivo (TV o altro) sia connesso già ad Internet e la connessione sia funzionante.

Qui verranno trattati due metodi: uno tramite software ps3mediaserver, l'altro attraverso MediaTomb (soprattutto se usate TV di ultima generazione Samsung). Il secondo metodo è alternativo, qualora il primo non funzionasse.


METODO ps3mediaserver


E' il sistema più semplice con FreeBSD per connettersi in DLNA e con PS3.

PS3 media server, come dice il nome, è un media server multipiattaforma perchè scritto in Java. Ha quindi bisogno di Java installato. Inoltre, è meglio controllare d'avere installate alcune applicazioni (si trovano tutte in FreeBSD o sotto i ports o come pacchetti). In breve, sono: xtrans, xproto, xextproto, javavmwrapper, ffmpeg, mplayer, mencoder, gtk.

L'unico problema lo può dare l'installazione di Java (cfr. la sezione precedente di questa guida sotto “Supporto java”). Per PC-BSD conviene installare il comodo pacchetto .pbi. Una volta installate le dipendenze, bisogna scaricare da qui la versione per Linux. Una volta scompattata, basterà andare nella cartella e farlo partire con PMS.sh o in alternativa con il comando java -jar pms.jar. Il programma dovrebbe riconoscere il dispositivo DLNA acceso. Se non lo fa, molto probabilmente è colpa del firewall. Con il firewall OpenBSD bisogna aggiungere questa riga al file /etc/pf.conf: pass in quick on ale0 proto tcp from any to (ale0) port 5001 keep state. Attenzione che la porta 5001 potrebbe risultare già occupata ed in tal caso nell'apposita casella della configurazione inseritene un'altra (ad es.: 5003) e regolate le regole del firewall di conseguenza.

Riavviare il firewall con pfctl -f /etc/pf.conf. Riavviate ps3mediaserver. Se ancora non dovesse funzionare, provate ad inserire l'IP direttamente del vostro computer nella configurazione (linguetta configurazione generale) sotto “Forza IP del server” (es. 192.168.1.1) e scegliere il vostro dispositivo d'interfaccia nella casella “Forza interfaccia di rete” (es. ale0). In genere non si dovrebbero avere problemi particolari di rilevamento. In seguito, potrete creerete un'icona sul desktop per lanciare il programma.

Anche se potreste vedere dei “warning” , in realtà il collegamento è stato effettuato a meno che non appaia un enorme cerchio rosso con una “X” centrale. Comunque, per sincerarsi se tutto funziona, si andrà al dispositivo multimediale (TV, ecc) e lì dovrebbe apparire una connessione DLNA tra le opzioni a disposizione delle sorgenti/connessioni del vostro dispositivo. Da questo punto in poi, se tutto funziona, dovrete fare riferimento al manuale del vostro dispositivo collegato per gestire i files multimediali che si trovano sul computer. Lato “ps3mediaserver” vi potrete sbizzarrire nella configurazione ma in genere è sufficiente la configurazione di default, tenendo presente che il media server, di sua scelta, è settato per far vedere tutte le directory presenti sul computer alla TV ma ovviamente potrete gestire solo quelle con all'interno files multimediali (audio, video, immagini, ecc.).

 

METODO MediaTomb (TV Samsung) – alternativa più difficile da gestire


La guida da cui partire è questa. In sostanza, installare MediaTomb con pkg install mediatomb o con portmaster. Poi dare come semplice user (non come root) il comando mediatomb &. Nella directory personale verrà creato un file nascosto .xml di configurazione chiamato .mediatomb/config.xml

Per usare come DLNA MediaTomb, bisogna discostarsi leggermente da quanto dice la guida segnalata. Intanto, se usiamo MySql come database sul nostro computer, andremo a creare un database chiamato mediatomb e bisognerà riportare esattamente il nome nel file di configurazione nella sezione <mysql enabled="yes"> (settate a “no” Sqlite3 e viceversa). Poi in una sezione <autoscan> metterete gli indirizzi alle cartelle dei file multimediali. Ora, per avere MediaTomb come DLNA specificatamente per TV Samsung, bisogna aggiungere due righe decommentando la sezione <custom-http-headers> e facendola divenire:

<custom-http-headers>

<add header="X-User-Agent: redsonic"/>

<add header="transferMode.dlna.org: Streaming"/>

<add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=017000 00000000000000000000000000"/>

</custom-http-headers>

 

Settiamo poi a “yes” la riga <protocolInfo extend="yes"/>. Infine, aggiungere per scrupolo questa riga <map from="avi" to="video/mpeg"/> alla sezione <map>. Entrambe le soluzioni sono tratte da qui.

A questo punto, modificare /etc/rc.conf con le seguenti righe per averlo attivato al boot, come segnalato nella guida

Vedere le dirette del sito della RAI


Per quasi tutte le dirette, ora è possibile vedere i video RAI che sono trasmessi con flusso FLASH per *nix (Linux e anche *BSD), compresa RAI Replay (con qualche eccezione). Resta fuori RAI ON Demand dove il sito RAI continua a chiedere Silverlight e l'add-on non parte più.



Connessione Web con TOR (connessioni anonime)


Quest'operazione può essere eseguita per rendere più sicura la navigazione sul Web. La rete TOR ci fornirà un indirizzo IP alternativo con cui navigare. Non è la sede per discutere i pro ed i contro e sull'effettiva sicurezza garantita: si presuppone che l'utente sappia già qualcosa sull'argomento. Naturalmente anche sotto un *BSD si può usare TOR. L'installazione qui proposta ricalca quella in genere prevista per le distro Linux, in particolare usando 'privoxy' come proxy. Per prima cosa andiamo ad installare 'TOR' e come proxy 'privoxy' dai ports. Il primo è in /usr/ports/security/tor mentre il secondo si trova sotto /usr/ports/www/privoxy. Entrambe le volte daremo da root il comando make install clean.

Diamo un'occhiata ai messaggi finali dopo l'installazione di entrambi che ci informano sulla settatura di alcune cose e di come avviare i servizi. Qualcuno storce il naso da purista, però, dato che vidalia si installa facilmente anche su *BSD, facciamolo. Si tratta di una GUI che ci permette l'avvio ed altro di Tor con interfaccia grafica. Si trova sotto /usr/ports/net-mgmt/vidalia e lo installaremo sempre da root con make install clean. Comunque TOR lo potete avviare anche con /usr/local/etc/rc.d/tor onestart ed al boot aggiungendo al file /etc/rc.conf la riga

Privoxy va avviato a parte prima con /usr/local/etc/rc.d/privoxy onestart, oppure ad ogni boot inserendo nel file /etc/rc.conf la riga privoxy=”YES. Il punto delicato è il file di configurazione denominato 'config' da avere nella cartella /usr/local/etc/privoxy. Infatti, c'è un file d'esempio ma se non ci sapete mettere le mani capirete ben poco. Comunque potete tranquillamente rinominare il file d'esempio, lasciarlo così com'è tranne alla sezione 5.2 (forward socks) dove dovete inserire queste righe (comprensive del punto):

forward-socks5 / 127.0.0.1:9050 .

forward-socks4a .onion 127.0.0.1:9050 .


Per problemi con Privoxy seguire questa guida.

Fatto questo, non resta che controllare eventualmente il Firewall. Se usate il file /etc/pf.conf, potreste avere bisogno di aprire la porta 8118 aggiungendo una riga come questa e dopo rifare le procedure di ricarica delle regole:

pass in on ale0 proto tcp from any to (ale0) port 8118 keep state


A questo punto il funzionamento del tutto avviene come al solito. Avviato il proxy s'abilita Firefox alla rete cliccando su Modifica->Preferenze->Avanzate->Rete->Impostazioni. Qui abilitare la casella della configurazione manuale del proxy ed inserire per ogni preferenza 127.0.0.1 e porta 8118 ed infine abilitare socks5. Noterete subito se siete nella rete Tor andando all'indirizzo https://check.torproject.org/ e quindi da questo momento la navigazione sarà relativamente anonima. Per esserne sicuri andate sul sito http://www.mio-ip.it/. Se apparirà un indirizzo IP diverso da quello assegnatovi dal vostro provider e proveniente da altre zone geografiche significa che siete nella rete Tor. Naturalmente che appaia un indirizzo IP di località diversa da quella italiana può essere d'aiuto in molti casi e si ricorda che, con Vidalia, è possibile settare il file di configurazione torcc presenta nella vostra directory user per forzarlo ad usare indirizzi IP (o anche uno solo) proveniente da zone geografiche specifiche. Questi argomenti però esulano da questa guida.

Nota: la scelta di privoxy è dovuta anche alla sua facile settatura se volete usare anche la rete i2p (analoga a quella .onion di TOR). Tuttavia su FreeBSD potreste avere difficoltà ad usare insieme le due reti con privoxy anche inserendo la riga forward .i2p localhost:4444 alla sezione 5.1 del suo file 'config'.


Accedere al sistema per riparare eventuali errori


Potrebbe capitare che, per qualche motivo, il sistema non parte e bisogna intervenire per risolvere errori da console, dopo il boot. La procedura in un *BSD è leggermente diversa da quella su Linux e potrebbbe spiazzare il neofita. Se il boot fallisce e c'è necessità di entrare per controllare il sistema, bisogna lanciare l'opzione single user mode se viene presentato il menu di scelta all'avvio (in genere opzione 2). Qualora non si presenti il menu, bisogna editare boot -s al prompt. Terminato l'avvio dare ENTER (come consigliato dal messaggio che appare) per entrare nella shell. Per accedere come root editare mount -u /

A questo punto, per poter avere accesso ai programmi e a tutti i comandi del sistema dovrete editare mount -a Attenzione: se vi trovate in un filesystem zfs il comando da editare è: zfs mount -a

Dopo aver dato questi comandi sarete in grado di avere accesso alle directory dell'intero sistema e quindi modificare files di configurazione, cancellare, copiare, ecc. (ovviamente da riga di comando!).


Usare OCR con *BSD

E' possibile usare programmi OCR su *BSD come con Linux. La preferenza è qui accordata a OCRFeeder + tesseract. L'unico problema è che per essere sicuri di avere un OCR ben funzionante bisogna compilare e questo richiederà molto tempo a causa delle numerose dipendenze da risolvere. Meglio usare il comando pkg. Quindi installate prima ocrfeeder, poi tesseract ed infine tesseract-data

Finalmente dovremmo essere in grado di lanciare OCRfeeder. Si presuppone che abbiate già installato uno scanner funzionante sotto *BSD. Dopodichè OCRfeeder va usato nel solito modo, ricordandosi di modificare sotto Strumenti --> Motore --> tesseract --> modifica, la linea di comando aggiungendo un -l ita alla stringa $IMAGE $FILE (cioè farla divenire: $IMAGE $FILE -l ita). Questo per usarlo con la lingua italiana. Potreste avere un problema di permessi, nel senso che OCRfeeder fa il riconoscimento testi solo da root e non come user. In tal caso, modificate i permessi alla cartella /usr/local/share/tessdata dando un chmod -R 777 /usr/local/share/tessdata. Fatta questa operazione dovreste essere in grado di usare il riconoscimento testi come normale utente. Naturalmente potete usare anche altri motori di riconoscimento (Ocrad, GOCR) installandoli sempre con pkg.


Upgrade del sistema ad una versione successiva


L'upgrade non è difficile farlo in sé. Generalmente è piuttosto indolore ma comunque tenete in conto che dopo l'upgrade potrebbero sempre esserci qualche problema. Ricordarsi poi che l'upgrade non vi aggiorna tutti gli applicativi ma solo il sistema in sé. La procedura qui indicata è consigliata soprattutto per FreeBSD. Con PC-BSD è preferibile usare la procedura apposita prevista. Con FreeBSD useremo la procedura descritta nella sezione 25.2.3.2 del manuale ufficiale. In pratica si tratta di dare il comando da terminale e come amministratore freebsd-update -r 9.1-RELEASE upgrade. Naturalmente se l'upgrade è ad una versione diversa bisogna scrivere il nome corrispondente. Partirà una lunga procedura e bisogna stare attenti a leggere in inglese attentamente i messaggi che ogni tanto compariranno. Dare “yes” ai messaggi che avvertono che alcuni componenti non sembrano installati. Successivamente apparirà il messaggio di inspecting system e poi preparing to download. Naturalmente i tempi dell'upgrade saranno condizionati dalla velocità della connessione. Dopo l'applicazione delle patches necessarie, si passa ad una fase più delicata in cui probabilmente FreeBSD chiederà di agire manualmente su alcuni files di configurazione attraverso l'editor da terminale vi. Se non sapete bene cosa fare è buona norma entrare in ognuno di essi, non modificare nulla e poi premere ESC e scrivere in basso a sinistra :x (inserire due punti e x): così salvarete il file. Successivamente FreeBSD potrebbbe chiedere conferma se è ragionevole che esistano certi parametri in alcuni files. Anche qui se non sapete cosa fare dite sempre “yes”. Alla fine, dovrebbe partire una lunga lista di files da upgradare che bisogna scorrere il più velocemente possibile (tasto pagina giù) per arrivare alla fine e seguire l'istruzione data, cioè digitare nel terminale: /usr/sbin/freebsd-update install. FreeBSD installerà il nuovo kernel e poi chiederà un reboot (digitare reboot e tasto invio). Al reboot statere già dentro al nuovo ambiente e sempre come root ridate esattamente il comando di prima. A questo punto FreeBSD installerà tutti i pacchetti necessari all'upgrade (non quelli degli applicativi trovati ma quelli del server grafico, ecc.). Di nuovo date un reboot ed avrete finito l'upgrade.

------------------------------------------------------------------

Paolo Di Stefano (update: 30 ottobre 2014)

www.paolodistefano.name

info@paolodistefano.name


E' ovviamente permessa la riproduzione parziale o totale; gradita la citazione della fonte