Archivio per la categoria Fedora

Analizzatore spettrografico di file

A seguito di uno scambio di idee con gli amici di CFItaly, mi è venuta l’idea di provare a giocare un po’ con l’analisi statistica del contenuto di un file generico. Non è una idea nuova (rif. Denis Frati), certamente no, ma al solito ogni tanto mi piace di curiosare in cose per me nuove.

Il risultato è un programmino semplicissimo, che ho chiamato Prisma.

L’idea è questa: in ogni tipologia di file la presenza di certi valori di byte non è casuale, ma è in qualche modo legata al contenuto del file stesso. Per cui un file di testo avrà una particolare distribuzione dei valori dei byte, mentre una immagine o un file eseguibile ne avranno una differente, anche in funzione della codifica. Analizzando le frequenze con cui ogni valore di byte compare nel file si potrebbero individuare anomalie nel contenuto del file stesso, come ad esempio un testo nascosto in un file audio, oppure più semplicemente file camuffati: immagini spacciate come file compressi e simili.

Funziona in questo modo: si forniscono in standard input i dati da analizzare, per esempio un file, e in uscita si hanno tre differenti tipi di output a scelta. Il primo, banale, è un file CSV con i dati di frequenza complessivi di tutti i dati forniti in ingresso. E’ utilizzabile per fare un grafico con OpenOffice Calc e simili.

L’altro output è grafico, sotto forma di immagine PNG, in due varianti: la più semplice mostra uno spettrogramma complessivo per tutti i dati in input, ed è semplicemente una differente rappresentazione dei dati forniti anche in CSV, tanto che si possono chiedere entrambi. La seconda opzione è più intrigante: produce una immagine larga 256 pixel in cui ogni riga è lo spettrogramma di un blocco di dati in input, e la dimensione del blocco è configurabile. In pratica si ha un colpo d’occhio sul contenuto del file, reso in forma grafica.

Spettro di un file di testo
Questo è lo spettro di un file di testo (la licenza GNU GPL per la precisione).

Spettro di un file Wave
Questo è quello che si ottiene usando un file Wave.

Spettrogramma di un file Wave
Questo invece è lo spettrogramma dello stesso file (clicca sull’immagine per la dimensione reale).

Il primo file è stato ottenuto col comando:


$ cat COPYING | prisma -p asciitext.png

Lo spettrogramma del file Wave invece è stato ottenuto col comando:


$ cat test.wav | prisma -p wave-big.png -b 100000

Per chi è interessato, il programma è rilasciato sotto licenza GNU GPLv2, ed il tarball dei sorgenti con il makefile per compilare ed installare il tutto, con tanto di pagine man in italiano ed inglese è scaricabile qui. Richiede le librerie e gli header di ImageMagick per la compilazione

Sono ovviamente graditi commenti e suggerimenti per il miglioramento.

Tags: , , ,

Fedora Release Party Roma: un successo, naturalmente.

Non ho molto da dire, se non che sono estremamente soddisfatto per come è andato il pomeriggio, cosa di cui va reso pieno merito agli organizzatori, in particolare a Marco Palazzotti e Gianluca Varisco.

Presenti molte persone “comuni”, niente geek pinguinari, niente fanatismi. La curiosità intorno a Linux e Fedora c’è, e si capisce dalle domande che hanno rivolto le persone, soprattutto a Gianluca, di RedHat Italia.

La sala, messa gentilmente a disposizione dall’Associazione Sportiva Roma12, era organizzata molto bene: dieci postazioni (offerte in prestito da Ergo Italia) di libero uso con installata Fedora 9, sia in versione Gnome che in “veste” KDE4. Le postazioni erano in LAN, e per gli ospiti c’era un access point Wi-Fi aperto. Un lato della sala attrezzata con sedie ed un telo di proiezione, l’angolo dei rinfreschi ben fornito, con anche torte casalinghe fornite da alcune rappresentanti del gentil sesso intervenute alla festa, nel pieno spirito di collaborazione della comunità di Fedora.

In uno dei tavoli, quasi invisibile fra i gadget, faceva mostra di sé un XO, della organizzazione no-profit OLPC, su cui ho potuto mettere le mani. Una sola parola: sbalorditivo!
L’interfaccia utente è semplicissima, è veloce, è comodo, ovviamente per chi ha le mani piccole come un bambino, visto che i tasti sono piccoli. E non è una battuta, visto che i destinatari di questo incredibile oggetto sono proprio i bambini.

C’era una postazione automatizzata per creare versioni “live” di Fedora 9 su pen drive, che ha riscosso parecchio successo.

Anche io ho cercato di fare la mia parte, anche se non sono per niente navigato in queste cose. C’era qualcuno che è venuto con il proprio notebook per vedere se si riusciva a far funzionare qualche periferica recalcitrante. A me è capitato un portatile al quale non funzionava il wireless. Nel log del kernel c’era bene in vista il messaggio di dove andare a prendere il pezzo che mancava, ossia il firmware dai driver di Windows, che, incredibilmente, non siamo riusciti a trovare in Rete. Il colmo!

Si è parlato di Open Source, del rapporto con scuola, istituzioni e imprese. Tutto questo in maniera assolutamente tranquilla e con il tono delle chiacchiere da bar. Ma i contenuti e le idee che sono circolate erano tutt’altro che banali.

Ho potuto conoscere finalmente Serendippo, al secolo Alessandro, che ogni tanto commenta in questo blog. C’era anche Antonio, c’era il simpaticissimo Lorenzo, c’era Luca Cipriani, insomma valeva la pena esserci.

Per chiudere, ancora un ringraziamento agli organizzatori ed a tutti i partecipanti per il bel pomeriggio passato insieme.

Le foto “presentabili” che ho fatto sono qui. Qui invece quelle fatte da Gianluca.

Tags: , ,

Virtualmente: Fedora su Qemu

Se, come me, avete voglia di sperimentare cose nuove senza autodistruggervi la tanto sudata installazione di Linux su cui lavorate, potrebbe tornarvi utile la creazione di installazioni virtuali di Fedora, per esempio, da poter maltrattare a piacere.

Nella nostra distribuzione preferita, quale che sia, avremo certamente a disposizione Qemu, un completo e versatile emulatore di PC (ed anche di altro). In Fedora è fra i pacchetti pronti per l’uso e, se abbiamo aggiunto il deposito Livna, abbiamo anche a disposizione il modulo kernel per l’accelerazione (kqemu).

Partiamo con il creare il disco virtuale su cui andiamo ad installare. Qui ci riferiremo a Fedora 8, ma qualsiasi altra distribuzione è utilizzabile senza problemi. Personalmente ho installato in questo modo Debian per x86 e per ARM, Damn Small Linux, Slackware, Knoppix, System Rescue CD, RedHat 9 e varie versioni di Fedora, oltre al FreeDos, Windows 2000 e XP.

Scegliamo la dimensione del disco. Se vogliamo una installazione minima di Fedora bastano 2Gbyte, altrimenti di più, secondo le richieste della nostra distribuzione. Qui supporremo una installazione ridotta all’osso, con solo la modalità testuale, niente desktop grafico. Scegliamo 2Gbyte:


$ dd if=/dev/zero of=virt-fedora.qemu bs=1M count=1 seek=2000
1+0 records in
1+0 records out
1048576 bytes (1,0 MB) copied, 0,0111865 s, 93,7 MB/s

L’esecuzione è pressoché istantanea. Questo perché sto usando un filesystem (ext3) che permette i cosiddetti sparse files, e l’opzione seek fa il resto. Il file è visualizzato come grande 2Gbyte, ma in realtà sul disco c’è solo un Mbyte scritto. Il file si chiama virt-fedora.qemu.
A questo punto serve l’immagine ISO della distribuzione da installare, oppure il supporto, CD o DVD. Possiamo inserire il modulo di accelerazione di Qemu, da utente root:


# modprobe kqemu

Di seguito avviare Qemu per installare:


$ qemu -m 256 -boot d -cdrom Fedora-8-i386-DVD.iso -hda virt-fedora.qemu

Esaminiamo i singoli parametri per capirne il funzionamento.

  • -m 256 sta per “assegna 256 Mbyte di memoria alla macchina virtuale. Da adattare secondo i requisiti della distribuzione da installare.
  • -boot d indica alla macchina virtuale di fare il boot da CDROM. Dopo lo cambieremo in -boot c per avviare da hard disk.
  • -cdrom Fedora-8-i386-DVD.iso indichiamo a Qemu di usare un file immagine ISO. Se invece abbiamo un supporto CD o DVD, basta cambiare in -cdrom /dev/scd0 o in -cdrom /dev/cdrom.
  • -hda virt-fedora.qemu indichiamo a Qemu il file che rappresenta il disco virtuale.

Se il comando è corretto dovremmo immediatamente vedere la prima schermata di boot del disco di installazione. In Fedora 8 è questa sotto.

Nel nostro caso installeremo usando la seconda voce, in modo solo testo. Possiamo riferirci al manuale della distribuzione scelta per avere dettagli sull’installazione.

Qualche avvertenza: al momento di partizionare, il file da 2Gbyte da noi scelto viene visto ed usato come un normale disco della dimensione complessiva pari al file, quindi nello spazio disponibile ci andranno almeno due partizioni, quella di root e quella di swap, teniamone conto. La macchina virtuale avrà una scheda di rete NE2000 compatibile e scheda video SuperVGA. Qemu agirà da server DHCP, da DNS e da default router, assegnando alla macchina virtuale un indirizzo IP 10.0.2.15. Per maggiori dettagli ci riferiremo alla documentazione di Qemu.

Al termine dell’installazione possiamo configurare tutto come di nostro gradimento, poi salviamo il file del disco virtuale da qualche parte. Non lo useremo mai direttamente, ma ne faremo delle copie “a perdere” che devasteremo a piacere. Quando non serviranno più le potremo buttare e riprendere l’originale, intatto, per farne una copia di lavoro, che conserverà intatte tutte le caratteristiche dell’originale.

Gli usi possibili sono infiniti. Supponiamo di avere una immagine disco raw presa con dd al cui interno vi sono due partizioni in NTFS. Possiamo installare “virtualmente” una versione di Windows capace di leggere NTFS, e far partire Qemu con il disco acquisito raw come disco secondario. Potremo accedere alle partizioni come se avessimo installato il disco dentro un computer con Windows. Oppure possiamo far partire una macchina virtuale con una distribuzione Linux di tipo Forensics, vedi Helix, ed usare l’immagine acquisita con dd direttamente, connessa come un disco.

Insomma, ora sta a noi. Buon lavoro!

Tags: , ,

Fedora 9 a Roma: io ci sarò!

Ci siamo! Fra pochi giorni verrà rilasciata la versione 9 di Fedora. Si sta tentando di organizzare una festa per il rilascio a Roma. Per ora i dettagli sono disponibili qui e sulla mailing list dedicata agli utenti italiani di Fedora.

La data scelta è il 24 maggio, un sabato, alle ore 16.00.
La partecipazione è aperta a tutti, e saranno disponibili DVD di installazione e Live CD.

Per quanto mi riguarda ci sarò, se avete tempo passate e potremo conoscerci di persona.

Aggiornamento

Come Serendippo mi fa notare, mi sono dimenticato di citare la postazione di creazione di versioni Live su pen-drive: portate la vostra penna USB (vuota ovviamente) e potrete crearvi la vostra Fedora Live da portachiavi!

Se intendete partecipare vi prego di farmelo sapere, o di segnalarlo nella Mailing list. Ci serve per l’organizzazione.

Aggiornamenti

Ne parla anche Punto Informatico.

Durante l’evento parlerò brevemente di come Fedora mi aiuta nel lavoro di tutti i giorni.

Tags: , , ,

VPN tra SonicWall e Linux con OpenSWAN

Per accedere al server Linux di un cliente mi sono stati forniti un client VPN ed i dati di accesso. Ovviamente il client è solo per Windows, e dovendo scambiare file con il server Linux ero costretto a fare il reboot del computer e passare a Windows, dopo aver lavorato i file con Linux. Insomma, un bagno di sangue.

Smanettando per qualche ora sono riuscito a far funzionare OpenSWAN con l’appliance SonicWall, di cui, per non precisati motivi di sicurezza, non mi è stato fornito alcun dettaglio: modello, configurazione, tipo di VPN, algoritmi. Praticamente ho dovuto fare tutto da solo.

Ecco il risultato della battaglia.

Prosegui la lettura »

Tags: , , ,

HP Proliant™ ML350G5: da 0 a Fedora 8 in 60 minuti

Per un progetto in cui Linux non c’entra nulla, mi è capitato sottomano questo server della categoria “value” di HP: prezzo onesto e prestazioni correlate al prezzo.

Immediatamente prima di destinarlo al suo uso definitivo, ho inserito il DVD di Fedora 8 ed ho installato il tutto (senza server web) in 60 minuti, orologio alla mano. Buoni 40 minuti se ne vanno per la formattazione in ext3 della partizione più grande, da 2,3T.

Qualche dettaglio:

  • Processore Intel Xeon Dual Core 2.66GHz con 4Mb di cache
  • 4Gbyte di RAM ECC
  • Controller dischi Smart Array P400 (S-ATA) con 512M di cache con batteria di back-up
  • 6 dischi S-ATA hot-plug da 750G a 7.200 rpm
  • Configurazione dischi: 5 in RAID5 + 1 in hot spare, con stripe di 256kB, tre volumi logici da 100G, 500G e 2,3T

Per installare nessun problema, unico inconveniente il volume da 2,3T che, per problemi delle partizioni MBR, viene limitato a 2T. Basta prendere Gnu Parted, si crea una tabella in modalità GPT e tutti i 2,3T sono accessibili.

Qualche test di velocità dei dischi

Ho usato prima questi due comandi:

# time dd if=/dev/zero of=file1 bs=1M count=20000
20000+0 records in
20000+0 records out
20971520000 bytes (21 GB) copied, 231,807 s, 90,5 MB/s

real    3m51.888s
user    0m0.017s
sys     0m50.507s

# time dd if=/dev/zero of=file2 bs=1M count=20000
20000+0 records in
20000+0 records out
20971520000 bytes (21 GB) copied, 232,349 s, 90,3 MB/s

real    3m52.955s
user    0m0.026s
sys     0m51.120s

per verificare la velocità di scrittura senza altre interferenze, con file da 20G per ridurre l’impatto del meccanismo di caching disco di Linux. Direi che 90MB/sec in scrittura è più che accettabile per un controller RAID di questa fascia.

In lettura le cifre diventano:

# time dd if=file1 of=/dev/null bs=1M
20000+0 records in
20000+0 records out
20971520000 bytes (21 GB) copied, 71,0002 s, 295 MB/s

real    1m11.022s
user    0m0.034s
sys     0m16.535s

# time dd if=file2 of=/dev/null bs=1M
20000+0 records in
20000+0 records out
20971520000 bytes (21 GB) copied, 72,012 s, 291 MB/s

real    1m12.053s
user    0m0.027s
sys     0m16.646s

Ed anche qui non è vietato dire che 290MB/sec sia una cifra di tutto rispetto.

L’installazione del sistema operativo con cui il server dovrà lavorare, invece, è stata molto meno indolore, ma questa è un’altra storia.

Aggiornamento del 29 gennaio 2008

Quanto detto per la partizione da 2,3TB non vale. Nel senso che per mie fisime non ho lasciato fare a Fedora, ma in una successiva installazione su un unico volume logico da 3TB è andato tutto liscio: Fedora ha creato la partizione GPT ed ha installato senza nessuna lamentela. La sorpresa è arrivata dal BIOS del server che non supporta GPT per il boot. Quindi occorre comunque dividere lo spazio disco in almeno due volumi logici, uno per il sistema operativo, da partizionare con MBR per poter fare il boot, ed uno per i dati. In Fedora si può usare un volume da 20GB per la partizione di root/swap, ed il resto per le varie /home, /usr, ecc.

Recuperare dati da pen drive (ed altro)

Chi non si è mai trovato nella situazione in cui al momento di inserire un pen drive nella presa USB il nostro sistema operativo mostra una allarmante finestrella come questa:

Formatto?

con conseguente copiosa fuoriuscita di sudore freddo da fronte e ascelle?

Qui c’è un breve documento che potrebbe in qualche caso aiutarci a recuperare qualcosa.

Flash Player in Fedora con yum

Cambio di computer in ufficio, cambio di versione di Fedora. Per poter accedere a Google Analytics occorre Flash Player, quindi puntiamo Firefox su Adobe e scegliamo il link “Get Flash Player”.

Il sito web riconosce che stiamo usando Linux e propone tre alternative: installare da .tar.gz, da .rpm o usando yum. Per usare la terza basta cliccare sul link “Scarica file .rpm” della relativa opzione. E’ un file di soli 4k, e contiene la configurazione del deposito yum di Adobe.

Firefox ci chiede se deve salvare il file sui disco o passarlo al “Programma di installazione software”. Scegliamo di salvarlo su disco, nel Desktop, poi chiudiamo Firefox. Facciamo un doppio clic sul file RPM, ci viene chiesta la password di root. Appena confermata la password, si apre l’applicazione di installazione specifica di Fedora.

Installazione deposito Adobe da RPM

Un messaggio avverte che il pacchetto RPM non è firmato digitalmente, ma dato che lo abbiamo scaricato da una fonte attendibile, possiamo installare comunque.

Avvertimento per file RPM non firmato

In pochi secondi la configurazione del deposito yum di Adobe è pronta. Possiamo passare ad un terminale e da utente root dare il comando:

# yum repolist
Loading "fastestmirror" plugin
repo id              repo name                                 status
InstallMedia         Fedora 8                                  enabled
adobe-linux-i386     Adobe Systems Incorporated                enabled
fedora               Fedora 8 - i386                           enabled
livna                Livna for Fedora Core 8 - i386 - Base     enabled
updates              Fedora 8 - i386 - Updates                 enabled

che mostra l’elenco dei depositi configurati ed il loro stato di abilitazione.
Confermato che il deposito Adobe è installato, passiamo ad installare il plugin:

# yum install flash-plugin
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
 * livna: rpm.livna.org
 * fedora: fedora.mirror.garr.it
 * adobe-linux-i386: linuxdownload.adobe.com
 * updates: fedora.mirror.garr.it
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package flash-plugin.i386 0:9.0.115.0-release set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 flash-plugin            i386       9.0.115.0-release  adobe-linux-i386  2.9 M

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)         

Total download size: 2.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/1): flash-plugin-9.0.1 100% |=========================| 2.9 MB    00:16
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID f6777c67
Importing GPG key 0xF6777C67 "Adobe Systems Incorporated (Linux RPM Signing Key) " from /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
Is this ok [y/N]: y   Ci viene chiesto di importare la chiave di verifica dei pacchetti Adobe
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: flash-plugin                 ######################### [1/1] 

Installed: flash-plugin.i386 0:9.0.115.0-release
Complete!

E’ tutto. Possiamo ora riavviare Firefox, ed il plugin Flash è pronto per l’uso.
Il vantaggio di questa procedura è che per aggiornare il plugin ad una nuova versione non occorre fare nulla di diverso dal normale aggiornamento del sistema: essendo incluso nei depositi abilitati, ad ogni yum update verrà controllata l’esistenza di una nuova versione ed installata se necessario.

N.B.

Questo articolo sostituisce il precedente, che rimane per documentazione storica.

Installare Fedora Linux

Nuova versione di Fedora, nuova versione della guida all’installazione.

La guida è qui, buona lettura.

La vecchia guida, ferma a Fedora Core 6 è qui.

Generare file PDF da qualsiasi programma in Fedora

Non tutti i programmi possono stampare direttamente in PDF, e la stampa su file, quando prevista, genera un file Postscript, che poi necessita di essere lavorato con programmi a riga di comando come ps2pdf.

Non che sia impossibile da fare, ma c’è un sistema molto più comodo: basta installare il pacchetto cups-pdf e riavviare il servizio CUPS.

Poi dal menù Sistema, Amministrazione, Stampa creare una nuova stampante selezionando come connessione il dispositivo CUPS-PDF, come driver prendere il tipo “Generic” e come modello “postscript color printer”.

Terminate le impostazioni, la stampante virtuale è immediatamente disponibile. Il comportamento predefinito è di generare un file PDF sul desktop dell’utente che avvia la stampa, con un nome derivato dall’oggetto che si va a stampare. Per esempio, una pagina web viene stampata con il nome simile a questo:
“Print_to_PDF_titolo_della_pagina_web.pdf”

Per chi volesse modificarne il comportamento, o fare una regolazione fine, le impostazioni sono nel file /etc/cups/cups-pdf.conf.

Avvertenze

  • SELinux può interferire con CUPS-PDF
  • Per poter funzionare richiede che CUPS giri con i diritti di root
  • Il driver Postscript Color appare solo dopo un riavvio del servizio CUPS

Riferimenti

Il sito originale: http://www.cups-pdf.de/
Il blog in cui ho trovato l’idea.