domenica 29 settembre 2019

NetBSD 8.1 per PC a 32 bit

Brevissimo post per riportare la mia pessima esperienza con questo sistema operativo.
Dopo aver installato OpenBSD 6.5 su un Thinkpad X60s con MATE come desktop ho pensato di provare anche NetBSD ma purtroppo è stata una grande delusione, infatti tra i packages precompilati installabili di MATE ci sono solo alcuni "pezzi" e a spanne mi pare che abbia molti meno pacchetti di quanti ne abbia OpenBSD .... o almeno di quelli che interessano a me, tipo Filezilla e Geany.
Stesso discorso pare valga anche per XFCE, infatti in rete pare basti installare i seguenti meta pacchetti per avere il DE :
pkgin install xfce4 xfce4-extras
peccato che non esistano questi pacchetti ma solo una miriade di pacchetti xfce4 e qualcosa.
Una possibilità credo sia quella di compilare da pkgsrc e non è detto che faccia una prova in tal senso, anche se con questo portatile immagino ci vorrà un bel pò di tempo non essendo proprio una scheggia ( Intel Core Duo L2400 ).
Un'altra cosa che mi ha lasciato abbastanza basito è stata la fase finale dell'installazione di NetBSD, quando doveva fare l'unmount del CD e riavviarsi .... ci ha impegato una vita e il led di attività del disco lampeggiava in continuazione ..... temevo si fosse bloccato tutto ma poi alla fine si è riavviato, bah.
Però devo dire che ancora una volta OpenBSD, a mio avviso, risulta superiore a NetBSD, ovviamente la mia opinione si basa sulla facilità di installazione di pacchetti binari già pronti e sulla loro disponibilità.
Anche in questo caso il problema potrebbe essere l'archiettura a 32 bit che magari sta restando indietro rispetto a quella a 64 bit che forse gode di maggior attenzione.
A questo proposito devo trovare il tempo di installare sia OpenBSD che NetBSD a 64 bit e con MATE come DE per fare un ulteriore raffronto.
Ah già c'è anch il più famoso FreeBSD ..... tempo e voglia permettendo.

OpenBSD 6.5 su un vecchio portatile

E' passato più di un anno dal mio ultimo post e devo ammettere che in molte occasioni sono stato tentato di riprendere a scrivere su questo blog le mie vicissitudini informatiche ma poi altri impregni, problemi mi hanno fatto desistere.
Ma bando alle ciance, la prima domanda è cosa si intende per "vecchio" nel mondo dell'informatica ? Beh vedete un pò voi, in questo caso si tratta di un portatile con Pentium II a 400Mhz, 384 mega di RAM e disco fisso Toshiba dal 20 giga e 4200RPM datato 1999. E' abbastanza vecchio anche per i miei gusti.
Questo portatile ha l'alloggiamento per l'hard disk in un comodo cassetto estraibile e negli anni ho avuto la possibilità di recuperare altri di questi alloggiamenti in modo da poter cambiare il disco semplicemente estraendo un cassetto e inserendone un altro.
Questo portatile è sempre un PROSTAR ma è il fratello minore dell'8500V con Pentium III a 1Ghz e 1 giga di RAM ..... si un vecchio rudere pure questo ma entrambi ancora funzionanti al 100%, pesanti e robusti come erano i computer di una volta.
Ora su un vecchio disco c'è il venerabile Windows 98 che tengo più per nostalgia che altro, su un altro disco/cassetto avevo installato Mandrake 8.2, anche qui siamo al giurassico e quindi mi sono chiesto ma un sistema operativo moderno può girare su questo hardware e come ?
Per prima cosa c'è da mettere in chiaro che l'hardware è talmente vecchio che non ci si può certo illudere di installare un sistema operativo moderno con un ambiente grafico moderno, ma vediamo cosa si può tirare fuori.
Per non provare subito con una qualche distribuzione linux ho deciso di installare OpenBSD 6.5.
L'installazione fatta da CD è andata senza nessun problema, ma questo perchè per l'installazione standard di OpenBSD non serve altro che quello che c'è sulla ISO scaricata dal sito.
Il portatile non ha una scheda di rete integrata quindi l'unica possibilità è quella di ricorrere ad una scheda di rete di tipo PCMCIA e qui apriti cielo, i problemi sono venuti fuori alla grande.
Il problema non è tanto per l'assenza di supporto alle schede di rete PCMCIA in OpenBSD, che sono infatti supportate, il problema è che il kernel non rilevava la scheda di rete nel al boot ne inserendola successivamente, e questo con ben tre schede diverse.
La causa è da imputarsi al sottosistema ACPI o più precisamente al BIOS ACPI del portatile che fa a botte con la gestione ACPI del kernel di OpenBSD, infatti se al boot di OpenBSD passo il parametro "-c" per andare in configurazione del kernel e digito il comando :
disable acpi
seguito da "quit" il kernel rileva la scheda di rete PCMCIA e quindi sono poi riuscito a configurarla con il DHCP.
Ora per far sì che non debba ogni volta impostare questi parametri a mano ho eseguito il comando :
config -efu /bsd
seguito da :
/bin/sha256 -h /var/db/kernel.SHA256 /bsd
sfortunatamente tutto ciò non sembra essere sufficiente in quanto spesso al successivo riavvio mi ritrovo nella condizione per cui il kernel non rileva più la scheda di rete e devo ripetere la procedura per disabilitare l'acpi.
Non sono per nulla pratico di OpenBSD ma da ricerche fatte in rete semrba che il problema sia legato alla funzionalità KARL ( kernel reordering ) che non è compatibile con le modifiche al kernel standard.
Quindi per prima cosa provo a disabilitare il KARL con questo comando :
rcctl disable library_aslr
riavvio il computer e la scheda di rete non va, ancora. Tolgo la scheda e la reinserisco e a video escono messaggi di errore, provo con altre due schede di rete PCMCIA di marca diversa e ogniuna da un messaggio di errore diverso e nessuna funziona.
Colto da sconforto spengo tutto e lascio perdere fino al giorno dopo, quando riaccendendo il PC con la scheda PCMCIA inserita mi ritrovo con la rete funzionante. Incredibile direi, riavvio e indovinate un pò la scheda da di nuovo errore. Spengo e riaccendo e funziona.
Morale della storia, per qualche motivo con il riavvio non viene resettata in modo corretto l'interfaccia PCMCIA del PC, visto che da problemi con tre schdede diverse, credo che sia nel PC il problema e anche in OpenBSD per come la gestisce dato che con linux non ho mai avuto questo problema con nessuna scheda.
Ora che la rete funziona è il momento di installare un DE, la scelta cade su XFCE perchè dovrebbe essere piuttosto leggero, ci sarebbe anche LXQT, ma non lo riesco proprio a digerire, come il suo predecessore LXDE.
Non vi sto a tediare con la procedura di installazione e configurazione che è simile a quella usata per installare MATE e spiegata in dettaglio in altro post ma vado subito al sodo .... è di una lentezza esasperante, già ad arrivare al login grafico con XENODM fa fatica, non parliamo poi il tempo che passa tra il login e l'arrivo del desktop e praticamente aprendo un solo terminale siamo a 230 mega di RAM occupata, su un totale di 384 disponibili.
Qualcuno mi farà giustamente notare che le caratteristiche hardware da preistoria non dovrebberò avermi fatto pensare ad un risultato diverso, vero .... anche perchè provando la stessa identica installazione di OpenBSD con XFCE sul fratellone con Pentium III a 1Ghz e 1 giga di RAM il risultato è praticamente simile, l'ambiente grafico è troppo lento per essere usabile.
Un tentativo potrebbe essere quello di usare e configurare un WM ( openbox, i3 o altro ) per avere il massimo della leggerezza ma temo che il vero collo di bottiglia sia il server grafico che su una ATI Mach64 non può certo fare grandi cose.
Probabilmente, anzi sicuramente, sono io che non voglio rendermi conto che questi due ruderi non possono reggere nessun DE moderno e quindi sarà il caso che vi lasci installati i venerandi Windows 98, 2000 e qualche linux da nostalgia.  

mercoledì 18 settembre 2019

Chiavette USB, dischi esterni e CD/DVD in OpenBSD


Se in Linux con qualsiasi DE siamo abituati a inserire CD/DVD e chiavette USB varie ed avere al volo accesso al loro contenuto attraverso il file manager in OpenBSD la cosa non e' altrettanto immediata e richiede una certa dose di lavoro.
Sul sito bsdua.org ho trovato due piccole utility che sono gia' presenti nei package binary di OpenBSD, a riprova dell'ottimo lavoro fatto dal loro autore. 

Ma per prima cosa abilitiamo il servizio hotplug :
rcctl enable hotplug
poi ho installato il pacchetto hotplug-diskmount ed eseguito il programma di inizializzazione :
/usr/local/libexec/hotplug-diskmount init
poi ho creato il file /etc/hotplug/attach con questo contenuto :
    #!/bin/sh

    DEVCLASS=$1
    DEVNAME=$2

    case $DEVCLASS in
    2)
/usr/local/libexec/hotplug-diskmount attach -u utente -f dirty "$DEVNAME"
     LABEL=`disklabel $DEVNAME|grep label|awk -F ": " '{print $2}'`
     env DISPLAY=:0.0 notify-send "hotplug-diskmount" "/vol/$LABEL mounted"
     ;;
    esac
al posto di "utente" dovrete indicare il vs. utente, non sono riuscito a fargli accettare $USER, o meglio lo accetta ma come root.
Poi visto che hotplug-diskmount non comunica nulla ho usato notify-send per avere un popup della cartella appena montata.

Ora riavvio il servizio :
/etc/rc.d/hotplugd restart
a questo punto se inserisco una chiavetta USB vedrò la notifica del punto di montaggio sotto il quale avrò accesso ai file in essa contenuti.
OK ma poi per rimuovere la chiavetta ? E qui viene in aiuto la seconda utility, o meglio sono tre utility nel pacchetto tray-app ma quella che ci interessa è una sola, ovvero il programma eject.
Anche qui c'è un pò di lavoro da fare in quanto per smontare il device servono i permessi di root, quindi ho aggiunto al file /etc/doas.conf una seconda regola :
permit nopass setenv { DISPLAY=:0.0 } utente as root cmd /usr/local/libexec/tray-app/eject
questa mi permette di lanciare il programma eject come root e senza password, con l'opzione setenv { DISPLAY=:0.0 }  gli dico che nonostante sia eseguito come root deve "lavorare" sul display della sessione utente, così da avere l'icona nella tray icon di Mate, altrimenti niente icona e quindi il programma è inutilizzabile.
Per ultimo bisogna far si che il programma eject venga lanciato ad ogni avvio di Mate in modo che ci sia questa icona per la rimozione sicura, questa è la parte facile perchè basta andare in Sistema, Preferenze, Personale, Applicazioni d'avvio e creare un nuovo lanciatore che esegua questo comando:
doas /usr/local/libexec/tray-app/eject &
a questo punto quando inserisco una chiavetta ho la notifica del nuovo punto di montaggio e con l'icona posso fare comodamente la rimozione. 
Purtroppo per quanto riguarda i CD/DVD hotplug non li gestisce e quindi vanno montati manualmente da terminale.
Ho notato anche che i dischi formattati in NTFS vengono montati ma non elencati nell'applicazione eject e quindi vanno smontati manualmente.
Quindi da questo punto di vista le limitazioni rispetto a linux sono piuttosto evidenti anche se ci si aspetta che se uno si avvicina a OpenBSD abbia comunque una certa famigliarità con i comandi unix da terminale e pertanto non è un problema così importante.

lunedì 16 settembre 2019

OpenBSD 6.5 come ambiente desktop

In un precedente post ho illustrato i passi necessari per installare Mate Desktop in OpenBSD ma a questo punto no ho ancora un ambiente desktop completo, nemmeno per uno come me che sono piuttosto minimalista.

Per prima cosa c'è da dire che i pacchetti binari pronti per l'installazione con pkg_add sono in numero di molto inferiore rispetto a quelli presenti nelle distribuzioni linux, quindi c'è il rischio di non trovare quella particolare applicazione che tanto ci interessa.

Ma andiamo per gradi, la prima cosa che ho cambiato è stata la shell, si ormai sono assuefatto alla bash onnipresente in linux e quindi la ho subito installata e resa come shell predefinita per il mio utente usando il comando chsh e impostanto la path a /usr/local/bin/bash

Sì non centra nulla con il discorso desktop, così come poco centra anche la configurazione del comando doas, ovvero perchè installare il solito sudo, che in OpenBSD è un pacchetto esterno al sistema operativo, quando quest'ultimo offre il comando doas ?
In pratica come in ogni unix che si rispetti molti comandi e/o modifiche di file di sistema vanno fatti da root e invece di installare l'ormai famigliare sudo o provato doas.
Per farla breve è il comando che leggendo la configurazione che andremo a creare con il file /etc/doas.conf ci permetterà di eseguire comandi come utente privilegiato, doas permette di fare anche altro ma a me interessa usarlo come rimpiazzo di sudo.
Questa una configurazione minima :
permit persist utente as root
I pacchetti standard che uso in ambiente desktop sono i soliti firefox per navigare in rete, libreoffice per la gestione di documenti, VLC per guardarmi qualche video.

Sfortunatamente firefox non è accompagnato dal file di localizzazione in lingua italiana, o meglio c'è un file in versione più vecchia rispetto al browser e quindi il browser è in lingua inglese, cosa che a me personalmente non da nessun fastidio. Sul mio portatile di prova, un Thinkpad X60, funziona pure YouTube in maniera più che accettabile, considerando che il portatile non è una scheggia.

Anche con  VLC video e audio senza problemi.

Tutto OK allora ? Beh, non proprio. Se in Linux siamo abituati a inserire CD/DVD e chiavette USB varie ed avere al volo accesso al loro contenuto attraverso il file manager in OpenBSD non sono riuscito ad ottenere lo stesso risultato e la stessa semplicità ed immediatezza d'uso.
Ma questo sarà oggetto di un post specifico.

Altro problema che ho notato e il numero di file core che si creano, soprattutto da parte del window manager di Mate e dal file manager.
In pratica quando eseguo un programma dal menù di Mate spesso e volentieri il windows manager Marco va in crash e crea un file di core, però a parte un effetto sfarfallio dello schermo non sembrano esserci altri inconvenienti. In altri casi invece ho notato che lanciando qualche applicazione questa andasse in crash e ho dovuto rilanciarla una seconda volta perchè si avviasse.
Forse anche Mate per i sistemi i386/32 bit non e' molto stabile in OpenBSD.

In conclusione non credo che OpenBSD possa essere un'alternativa valida a linux come sistema desktop, almeno non per la grande maggioranza degli utenti che non amano "smanettare" con i comandi unix da terminale.
Per quanto mi riguarda continuerò a lavorarci e magari seguiranno altri post e magari proverò anche ad installare tutto su un PC più moderno, almeno a 64 bit, per vedere se il supporto, anche a livello di pacchetti, è piu' completo.




domenica 15 settembre 2019

Configurazione wireless in OpenBSD

Questo brevissimo post per spiegare come configurare la rete wireless con OpenBSD, un'operazione di una facilità disarmante.

Nel mio caso la scheda di rete wireless è una intel e il nome assegnatovi da OpenBSD è wpi0 quindi come utente root creo il file /etc/hostname.wpi0 e inserisco i parametri di rete :
nwid <nome rete> wpakey <password della rete>
dhcp
a questo punto è sufficiente riavviare, o eseguire /etc/netstart, e la rete wireless sarà funzionante.

Più facile di così.

venerdì 13 settembre 2019

Installare Mate in OpenBSD 6.5

Ultimamente ho comiciato a smanettare su OpenBSD con una certa frequenza e per poterlo fare al meglio mi serviva anche un ambiente desktop il più possibile completo, tra i tanti ho voluto provare uno dei miei preferiti e cioè Mate.
Di guide su come installarlo ce ne sono parecchie però poi alla fine ci sono sempre una serie di dettagli che non mi tornano tra le varie guide e quindi mi sono trovato a dover mettere insieme i pezzi da più fonti.
Ed ecco il motivo di questo post, sperando di non essermi perso qualche passaggio nei vari tentativi fatti per raggiunge l'agoniato risultato.
Dopo aver installato OpenBSD al primo avvio ci logghiamo come root per procedere con l'installazione di Mate aggiungendo questi pacchetti :
pkg_add mate mate-extras
al termine bisogna abilitare un login manager grafico, si può usare xenodm oppure installare slim come ho fatto io.
In ogni caso bisogna abilitarlo all'avvio con :
rcctl enable slim
poi bisogna abilitare i seguenti servizi :
rcctl enable messagebus
rcctl enable avahi-daemon
in molte guide si indica di aggiungere i servizi da avviare attraverso la modifica del file /etc/rc.conf.local, non so se cambi qualcosa ai fini pratici.
Bisogna aggiungere poi il proprio utente al gruppo operator, al gruppo wheel dovrebbe essere già stato aggiunto in fase di installazione. 
usermod -G operator utente
Ora possiamo loggarci da un altro terminale con il nostro utente creato in fase di installazione e procedere con gli ultimi dettagli.
Per avere la localizzazione in lingua italiana aggiungere al file .profile nella propria home directory la seguente istruzione :
export LC_ALL=it_IT.UTF-8
per ultimo dobbiamo creare, sempre nella home del nostro utente, un file .xinitrc con questa riga :
exec ck-launch-session dbus-launch --exit-with-session mate-session
ora possiamo riavviare e avremo il login grafico con slim e dopo l'inserimento di utente/password accediamo al nostro Mate, e a questo punto possiamo iniziare a configurarlo a nostro piacimento aggiungendo anche tutti i pacchetti che ci interessano.

Ma è proprio adesso che viene il bello, ovvero può OpenBSD essere usato come sistema desktop al pari di una qualsiasi distribuzione linux ? Mah .... ad un prossimo post le mie considerazioni.



domenica 1 settembre 2019

Sottosistema Windows per Linux

Non sono un fanatico e nemmeno un purista linux però devo ammettere che questa funzionalità di Windows 10 mi sembra quasi un'eresia ..... avere una distribuzione linux emulata dal kernel di Windows ..... mette quasi i brividi.
Di solito ho sempre virtualizzato Windows sotto linux, mai il contrario. E sui PC con Windows 10 non ho mai nemmeno virtualizzato linux.
Però mi sono fatto prendere dalla curiosità e ho deciso di provare.
L'installazione è molto banale e dalla PowerShell basta eseguire il comando :
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
e poi riavviare il computer quando richiesto.
Per l'installazione della distribuzione ho seguito le istruzioni dal seguente link in quanto sulla mia installazione Windows 10 ho rimosso il Microsoft Store.
La mia scelta è ovviamente caduta su Debian e al termine dell'installazione è sufficente eseguire il comando debian per avviarlo. La prima volta viene chiesto di creare un utente di lavoro con relativa  password che viene abilitato in automatico all'uso di sudo.
Ho provato ad aggiornare il sistema con apt e installare qualche pacchetto e tutto sembra funzionare come in una installazione linux reale ( o virtualizzata con VirtualBox e simili ).
Per default il disco C è montato in automatico sotto /mnt/c in modo da rendere accessibili i files di Windows.
Per dovere di cronaca io ho installato e provato la prima versione di WSL, già perchè c'è anche una versione 2 che tecnicamente è molto diversa, e che forse proverò in futuro.
Questo WSL crea una directory rootfs nella directory nascosta AppData\Local\Packages<la distribuzione scelta> dell'utente in esecuzione, in questa rootfs si trovano directory e files proprio come in un vero sistema linux.
Ho installato gli strumenti di sviluppo e fatto il solito programmino "hello world" in C e dopo averlo compilato lo ho eseguito, ovviamente senza problemi. Quindi ho copiato l'eseguibile su una macchina linux ( debian anche questa ) e lo ho eseguito direttamente senza nessun problema, anche il contrario funziona, ovvero compilo sulla macchina linux, copio sulla macchina Windows e il programma viene eseguito correttamente.
Quindi con WSL è possibile avere un vero e proprio ambiente linux su Windows, ovviamente senza la possibilità di avere un ambiente grafico.
Come dicevo mette un pò i brividi questa cosa, ma a ben pensarci è anche una buona opportunità, per esempio se mi tocca lavorare con un PC Windows, come adesso, e non ho sempre la possibilità di accedere ad una macchina linux posso usare WSL per sviluppare i miei programmi ( o shell script ) che di solito sono sempre applicazioni da linea di comando, o al più usano ncurses, infatti sotto WSL è possibile installare anche Midnight Commander e usarlo pari pari come in ambiente linux nativo.
Come ho detto all'inizio non sono un purista di linux, non so nemmeno cosa questo possa significare per MicroSoft, ma alla fine è solo una possibilità in più per l'utente .... e più possibilità ci sono meglio è, almeno credo.