L'indirizzo della versione aggiornata delle LDR: Linux Domande e Risposte è:
<http://web.tiscalinet.it/linuxfaq>
Il sito suddetto è inoltre stato riprodotto nella sezione ildp del sito del Pluto:
<http://www.pluto.linux.it/ildp/LDR/>,
sul sito della rivista Inter.net:
<http://linux.interpuntonet.it/LDR>,
sul sito di Michel Morelli:
<http://www.ziobudda.net/mirror/linuxfaq>,
sul server di David Pisa:
sul sito GaliLINUX:
<http://galileo.fis.uniroma2.it/galilinux/documenti>,
sul sito di Claudio Dentice:
<http://utenti.tripod.it/fireboy9>,
sul sito di Paolo Squaratti:
<http://digilander.iol.it/kranz2/linuxfaq/>.
Sul sito del LUG Trieste (<http://trieste.linux.it/docs/LDR>) è possibile consultare la versione html delle LDR.
Il sito di Scorpion (Vincenzo) (<members.xoom.it/Vincenzo79/>) ospita la versione pdf delle LDR.
Due formati .zip (non generati da me) delle LDR sono disponibili presso: <http://www.guidainlinea.com/manuali.net/linux.htm> e <http://linuxiso.hypermart.net/Documentazione/>.
La versione 2000.04.12 di Appunti Linux di Daniele Giacomini ospita nell'ultimo tomo dell'opera, il corpo della versione 2.4 delle LDR.
La versione 2000.07.31 di Appunti di informatica libera di Daniele Giacomini ospita negli ultimi due tomi dell'opera, il corpo della versione 2.8 delle LDR free e nonfree.
LDR nei CD-ROM delle riviste: CD n° 52-1 Inter.net (v. 1.8); CD 87-1 PC-Action (v. 2.2); CD n° 56-1 Inter.net (v. 2.2); CD n° 1 Linux Magazine (v. 2.6).
Michel Morelli ha anche inserito la totalità delle LDR in un database interrogabile presso http://www.ziobudda.net/FAQ
La diffusione di questo documento è incoraggiata in base ai termini della licenza. |
2.3 Come fermare l'arresto o il riavvio del sistema una volta che se ne è impartito il comando
2.5 Concedere la possibilità di arrestare il sistema a tutti gli utenti
2.7 Come vietare agli utenti la possibilità di riavviare con Ctrl-Alt-Canc
2.9 Impostazione di runlevel a 0; il sistema si accende e si rispegne
2.10 Spegnimento automatico della macchina alla fine dello shutdown
2.11 Impossibile spegnere la macchina con una scheda madre Soyo 5-EM
2.13 Strana facoltà che ogni utente ha di dare il comando halt in Red Hat 6.1
2.18 Messaggio di errore all'avvio: /dev/hdxy :UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
2.19 Messaggio di errore all'avvio: Parallelizing fsck version x.yy
7.3 Conoscere il nome dell'immagine del kernel che è stata caricata
7.6 Kernel appena compilato, ma in /boot c'è la vecchia immagine
7.10 Ricompilazione del kernel dopo applicazione di una patch
7.13 Trasporto dell'immagine del kernel da una distribuzione ad un'altra
7.14 Cosa è il file initrd-x.x.xx.img nella directory /boot?
7.21 Verifica dei pacchetti del kernel installati in un sistema basato su pacchetti rpm
7.22 Problemi tra i pacchetti rpm del kernel e i pacchetti di kernel.org in Red Hat
7.23 Spazio su disco diminuito dopo la ricompilazione del kernel
7.28 Messaggio di avvertimento: System.map versione kernel sbagliata dopo ricompilazione
7.29 Messaggio di errore: /dev/lp0 :not detected dopo ricompilazione del kernel
7.30 Messaggio di errore: /dev/lp0: not detected inserendo il modulo lp
7.31 Messaggio di errore: signal 11 nella compilazione del kernel
7.32 Messaggio di errore: No setup Signature found all'avvio
29 Connessione al provider - ppp
29.1 Facilitare la connessione al provider con Debian GNU/Linux
29.3 Visualizzazione in tempo reale dei processi di connessione
29.4 Messaggio di errore «pppd: The remote system is required to authenticate itself but...»
29.7 Come sapere il proprio IP estrapolando l'informazione da ifconfig
29.9 Cambiare gli indirizzi DNS se ci si connette a più di un provider
29.12 Connessi ad internet ma il navigatore non riesce a connettersi ai siti
29.14 Automatizzare delle operazioni da effettuare durante la connessione ad Internet
29.17 Doppia composizione del numero telefonico del provider in Red Hat 6.1
29.19 ppp, attributo del set user ID ed uso per gli utenti comuni
29.20 Mandrake 6.1, linuxconf e ppp - file di configurazione
29.22 Salvare i file di configurazione della connessione ad Internet finalmente funzionante
29.23 Crash della Red Hat 6.1 utilizzando lo strumento per configurare la connessione
29.24 Procedura per connettersi a diversi fornitori di accesso Internet con Red Hat
31.5 Spedire messaggi in una rete locale facendo risultare un indirizzo esterno
31.11 Inviare un file di testo compresso in allegato con un unico comando
31.12 Associare un file di testo ad un messaggio da riga di comando
31.14 Applicazione per eliminare duplicati di posta elettronica
31.17 I client di una rete non riescono ad inviare i messaggi al di fuori della rete stessa
31.19 Come spedire un file allegato con mutt da riga di comando
31.20 mutt, configurare la stringa che introduce il messaggio riportato
68.6 Eliminare le prime n righe o le ultime n righe di un file di testo
68.7 Cancellare tutte le righe di un file che cominciano con una determinata stringa.
68.13 Conversione in minuscolo dei nomi dei file nei collegamenti ipertestuali di una pagina html
68.14 File di testo con nomi di file .html convertiti in collegamenti ipertestuali
68.28 Aggiungere una stringa alla fine di ogni riga di un file testo
Appendice B Problemi con le licenze e con il software che sembra «libero»
Questo è un libro di FAQ su GNU/Linux in italiano.
Esso vuole essere una semplice raccolta di domande e risposte che potrebbero risultare utili a chi utilizza Linux. (702 FAQ: 619 free e 83 non free)
Ho scelto il nome LDR, Linux Domande e Risposte in quanto questo conferisce una decisa connotazione italiana all'opera preferendolo quindi a comuni acronimi anglosassoni.
Questo documento non si propone di fornire la soluzione completa a tutte le problematiche trattate. Si faccia quindi riferimento alla documentazione più specifica (altri libri, pagine di manuale, HOWTO, guide LDP, ecc.) per ottenere una spiegazione esauriente e dettagliata degli argomenti in questione.
Le LDR sono rivolte sia agli utenti che cominciano ad utilizzare questo meraviglioso sistema operativo che a quelli più esperti.
Dalla versione 2.8 (Agosto 2000) le LDR cessano di essere un unico documento e si scindono in due documenti indipendenti:
LDR free
LDR nonfree
Nel primo dei due documenti saranno comprese FAQ riguardanti software libero; nel secondo saranno invece presenti le FAQ su software di altro genere.
Nel primo documento non sono state omesse le FAQ in cui si parla di altri sistemi operativi proprietari in relazione all'interazione tra questi e un sistema GNU/Linux. In pratica la descrizione delle metodiche utilizzate da chi utilizza un sistema GNU/Linux per accedere alle risorse presenti su dischi o reti la cui natura deriva da software proprietario è stata considerata argomento libero visto che i mezzi per farlo sono liberi.
Per software libero nel primo documento si intende software la cui licenza con cui il software stesso viene distribuito risponde in qualche modo ai requisiti esposti nel manifesto GNU. Questo vale sia per il software che gira su sistemi operativi liberi che per software che gira su sistemi operativi non liberi.
Quando inizialmente comunicai la mia decisione di dividere le LDR in due ai miei conoscenti ed amici, incontrai una reazione che non mi sarei aspettato. Sentii insomma un senso di «attesa», come per dire: «L'idea non è male, vediamo cosa ne viene fuori». Nessuno mi chiese il perché del mio gesto.
Il perché però sono tenuto a darlo, anzi lo voglio comunicare specialmente a chi, completamente digiuno del mondo che ruota attorno al software libero, preferirebbe disporre di un documento unico e non del frutto di una separazione fonte di ulteriore confusione.
Molti iniziano ad utilizzare sistemi GNU/Linux per moda. Altri perché hanno sentito che è gratuito. Altri ancora perché sono stufi di sistemi operativi non conformi alle proprie esigenze. Non sono motivazioni errate, certo, ma l'insieme di programmi ed applicativi di un sistema GNU/Linux, è nato da motivazioni ideologiche e di natura differente.
É il caso di spiegare meglio il significato del termine «libero». In inglese si dice «free», ma free in inglese vuol dire anche gratuito.
Nel 1984 Richard Stallman lasciò il suo posto presso il laboratorio di intelligenza artificiale del MIT. Le motivazioni di questa decisione vanno ricercate nel disagio provato nei confronti di alcune tendenze che il mondo dell'informatica stava prendendo. Le restrizioni nell'utilizzo del software erano quello che più preoccupava Stallman. L'essere costretti, a causa di limitazioni di vario tipo, a non poter condividere con altri il software in tutti i suoi aspetti (il codice sorgente, l'utilizzo, la facoltà di distribuzione, ecc.), spinse Stallman a reagire. Egli decise allora di creare un sistema operativo dall'inizio. Decise che sarebbe stato compatibile con Unix per permettere agli utenti di Unix di potervi migrare una volta pronto. Lo chiamò GNU, acronimo ricorsivo che significa «GNU's Not Unix» (GNU Non è Unix). Nacque il progetto GNU.
Il software libero secondo il progetto GNU deve essere contraddistinto da queste caratteristiche:
l'utente deve avere libertà di eseguire il programma per qualsiasi scopo;
l'utente deve avere la possibilità di modificare il programma e deve essere quindi in possesso del sorgente del programma stesso per farlo;
l'utente deve avere la possibilità di distribuire il programma in maniera gratuita o dietro compenso;
l'utente deve avere la possibilità di distribuire liberamente versioni modificate del programma;
Stallman si rese conto che riscrivere un sistema operativo ex novo sarebbe stata un'impresa lunga ed ardua e integrò software GNU con altro software libero in circolazione (il Kernel Linux ad esempio). Nacquero allora le prime distribuzioni GNU/Linux.
Con il passare del tempo però, un sempre più elevato numero di pacchetti di software proprietario si è affiancato al software libero sfruttandone la «moda». L'appendice B, tratta da «Appunti di informatica libera» di Daniele Giacomini, elenca alcune delle particolarità che contraddistinguono il software che «sembra libero».
Utilizziamo software libero su un sistema sognato per essere tale!.
Ecco allora perché ho diviso in due le LDR, separando le domande e risposte sul software libero da quelle sul software proprietario. Spero che questo non provochi disagio o maggiori incomprensioni; inoltre spero che la valenza didattica del gesto sia efficace.
Le domande e le risposte su GNU/Linux che troverete, sono tratte da gruppi e liste di discussione italiane ma ultimamente sono sempre più spesso il risultato del mio approfondimento su determinati argomenti. Sono raccolte 702 domande e risposte classificate per argomenti. Le FAQ sul software libero sono 619 e quelle sul software proprietario 83.
Alla fine del documento è presente un'appendice in cui vengono raccolti i nomi dei collaboratori le discussioni dei quali sono state utilizzate per la stesura di questo documento. I numeri presenti al fianco dei nomi si riferiscono alle Domande e Risposte cui hanno collaborato. |
É disponibile, tramite una lista annuncio, un servizio che permette agli iscritti di essere informati sull'evoluzione delle LDR (novità, rilascio nuove versioni, errata corrige, ecc.)
Ci si può iscrivere alla lista ldr-annuncio@egroup.com, inviando un messaggio qualunque a <mailto:ldr-annuncio-subscribe@egroup.com>. Per cancellare la propria iscrizione basta mandare un altro messaggio a <mailto:ldr-annuncio-unsubscribe@egroup.com>. La lista è in sola lettura, per cui non è possibile inviare messaggi al suo indirizzo.
L'elenco seguente si riferisce ad altra documentazione originale in italiano sul software libero, di una certa consistenza, pubblicata secondo la filosofia del software libero.
Daniele Giacomini, Appunti di informatica libera
Daniele Medri, Linux facile
Prima di tutto vorrei ringraziare Eugenia Franzoni; le ho sempre chiesto sin dalle prime versioni consigli e pareri su questo progetto. Eugenia mi ha aiutato molto nell'impostazione iniziale di questo libro.
Grazie anche a Daniele Giacomini. Autore di «Appunti di informatica libera», una delle più belle opere di documentazione italiana su GNU/Linux, ha contribuito a miglioramenti stilistici e tipografici delle LDR. Daniele ha inserito il corpo principale delle LDR (2.4 e 2.8) nelle due ultime versioni della sua opera.
Un particolare ringraziamento va inoltre a tutti coloro che facendo domande o rispondendo hanno contribuito, seppur indirettamente, alla costituzione di questo libro. Un elenco di questi collaboratori è contenuto in un'appendice presente in fondo al documento. Ringrazio inoltre tutti coloro che mi inviano FAQ complete e tutti quelli che mi fanno critiche, appunti, annotazioni su questo lavoro perché è grazie a loro che le LDR si migliorano.
Ringrazio inoltre Michel Morelli, Giorgio Zarrelli, Ivan Fabris, Claudio Dentice, gli amici del LinuxTrent, quelli del LUG Trieste, quelli del GaliLINUX (Claudio Panichi e Emiliano Gabrielli), per avere contribuito alla diffusione dell'opera.
Grazie a Roberto Kaitsas (autore di <http://jump.to/linuxlinks>) per l'impagabile aiuto che mi fornisce nella creazione di questo progetto.
Infine un grande ringraziamento va all'Olivetti PS1 (Processore 8088 senza disco rigido con due lettori floppy da 720 Kbyte) acquistato da un negoziante sotto casa per L. 20 000 e su cui ho curato le LDR nelle fasi iniziali. Per questioni di RAM le nuove versioni vengono stilate su un'altra macchina più potente. Ultimamente grazie ad un sistema ELKS, sono riuscito a far girare su questa macchina obsoleta un sistema Unix.
Vorrei sapere come posso fare una copia del dischetto di avvio (boot) o come crearne uno nuovo.
__________
per leggere il floppy:
#
dd if=/dev/fd0 of=floppy.img
[Invio]
per scriverlo:
#
dd if=floppy.img of=/dev/fd0
[Invio]
oppure puoi usare mkbootdisk, per crearne uno nuovo, ecco un esempio per il kernel 2.2.7:
#
mkbootdisk --device /dev/fd0 2.2.7
[Invio]
oppure ancora:
#
cp bzImage /dev/fd0
[Invio]
Per indicare la partizione del disco rigido su cui dovrà essere montato il root file system (/) si deve utilizzare il comando rdev:
#
rdev /dev/fd0 /dev/hd_partizione_dove_montare_root
[Invio]
#
init 6 (riavvio)
[Invio]
Imposta nel BIOS l'avvio da dischetto e il gioco è fatto.
Come creo i dischetti di installazione di una distribuzione Debian GNU/Linux da Dos?
__________
Come per quelli Red Hat, rawrite è un comando valido per copiare qualsiasi immagine di dischetto. In Debian GNU/Linux trovi rawrite nella directory:
tools/rawrite2
(meglio usare la versione 2)
e le immagini dei dischetti in:
dists/stable/main/disks-i386/current
. Il numero di dischetti da usare dipende dal metodo di installazione.
Come creo i dischetti di installazione per una distribuzione Red Hat da Dos?
__________
Devi usare il programma rawrite presente nella directory \i386\dosutils
della distribuzione che hai.
Il comando è:
D:\>
rawrite immagine a:
[Invio]
dove immagine è il nome del file dell'immagine presente in \i386\images
. I file sono 2 per creare i 2 dischetti. La terza immagine è per la risoluzione dei problemi di installazione.
Vorrei regalare a Linux un altro giga, so che esiste fips, come si usa? Io lo lancio da Windows 98 in una finestra dos ma ci capisco poco ed infatti ad un certo punto (dopo che mi ha fatto domande strane sulla geometria) si blocca tutto e rimane il cursore lampeggiante ed immobile.
__________
fips deve essere lanciato da DOS puro, non da emulazione Windows. Esegui la deframmentazione del disco rigido e riavvia in modalità Dos e in seguito esegui fips e segui le istruzioni.
Attenzione. È consigliabile leggere con attenzione la documentazione di fips, che dovreste trovare insieme all'eseguibile, e comunque fare il backup del contenuto del disco Windows (o almeno dei file non recuperabili in altri modi)
Al momento di suddividere in partizioni il disco con l'uso di fdisk mi viene restituito il seguente errore:
The number of cylinders for this disk is set to 2105.
This is larger than 1024, and may cause problems with:
1) software that runs at boot time (e.g. LILO)
2) booting and partitioning software from other OSs (e.g. DOS FDISK, OS/2 FDISK)
__________
Non ti preoccupare, più che un errore è un avvertimento sul fatto che alcuni programmi (LILO) o sistemi operativi non sono in grado di accedere ai cilindri oltre il 1024° (il n° 1023) per problemi del BIOS.
Accorgimenti:
attiva la modalità LBA del BIOS, che traduce il disco (divide il n° dei cilindri per un certo numero e moltiplica il numero di testine per lo stesso)
crei (e questo forse è meglio) una partizione di boot entro il 1024° cilindro, ad es. /boot per GNU/Linux, senza abilitare la modalità LBA
C'è da dire in ogni caso che le ultime versioni di LILO non presentano più queste limitazioni. Scarica quindi una versione aggiornata del LInux LOader.
Avevo installato Windows su una partizione di , poi ho comprato un nuovo disco rigido più potente. Ho modificato i ponticelli come da prassi, ho spostato il vecchio «hda» da primario master a primario slave e ho messo il nuovo disco rigido al posto del vecchio. Installo Linux sul disco nuovo, installo LILO, e Linux funziona. Windows invece non ne vuole sapere di avviarsi da questa nuova posizione, quindi mi serve un modo per ingannarlo e fargli credere di essere su /dev/hda
anziché su /dev/hdb
. Come faccio?
__________
Dal BIOS disabilita il disco rigido primario master, salva le impostazioni e riavvia. In questo modo Windows si trova effettivamente sul primo disco rigido in fase di boot e parte normalmente.
se non dovesse partire vuol dire che si è compromesso il MBR (master boot record), quindi avvia da disco di ripristino di Windows (lo hai ?) e digita:
#
fdisk /MBR
[Invio]
per rimettere a posto il MBR. Riavvia da disco rigido e Windows dovrebbe avviarsi.
nella sezione relativa a Windows aggiungi le seguenti impostazioni:
other = /dev/hdb1 #nel mio caso label = DOS table = /dev/hdb #le seguenti 4 righe dicono #a LILO di far credere che #i dischi rigidi siano scambiati, cioè #che lo slave primario sia sul #master primario e viceversa map-drive=0x80 to = 0x81 map-drive=0x81 to = 0x80
In questo modo i dischi vengono rimappati istantaneamente al contrario rispetto a come sono impostati.
Altro problema è cercare di installare Windows su disco slave mentre sul master c'è già Linux.
I passi da seguire sono i seguenti:
copia il kernel su un dischetto, in modo da poter eventualmente riavviare da floppy. Il comando necessario è:
#
cat /boot/vmlinuz > /dev/fd0
[Invio]
dove /boot/vmlinuz
è il percorso assoluto per raggiungere il kernel in uso. (prova a fare un boot da floppy col dischetto appena creato per verificare che il procedimento vada a buon fine.)
Da BIOS, disabilita il disco master;
lancia il setup di windows (avvio direttamente da cd, oppure avvio da floppy e poi installazione da cd);
aspetta che Windows concluda i suoi numerosi riavvii per terminare l'installazione;
riavvia, rientra nel BIOS e riabilita il primo disco rigido;
riavvia da dischetto con il disco-kernel che si era creato al passo 1;
in Linux, modifica /etc/lilo.conf
nel modo indicato sopra;
lancia LILO.
In questo modo, avviando la macchina con LILO si dovrebbe riuscire a caricare entrambi i sistemi operativi.
Ho provato a creare il disco di boot e di root ma dopo l'inserimento delle informazioni relative alla lingua, alla tastiera ecc., mi viene richiesta la fonte di installazione tra queste opzioni:
CD-ROM
RETE (NFS)
RETE (FTP)
Disco rigido
l'NFS su parallela è una soluzione, ma sul server devo esportare il CD-ROM . Come si fa ad esportare una risorsa (ad esempio il CD-ROM )?
__________
Aggiungi il percorso al file /etc/exports
facendo riferimento alle pagine di manuale di nfs e di exports
/cdrom host_che_mi_pare(ro)
dove ro sta per read only; poi fai ripartire l'NFS con:
#
/etc/init.d/nfs restart
[Invio]
Ovviamente dovrai avere installato nfsd, oppure avere compilato il supporto per server NFS nel kernel (c'è nei kernel 2.2, ma non è ancora del tutto stabile)
Come si arresta il sistema? Come si riavvia?
__________
Per arrestare il sistema dai il comando:
#
shutdown -h now
[Invio]
oppure:
#
init 0
[Invio]
Per riavviare il sistema:
#
shutdown -r now
[Invio]
o:
#
init 6
[Invio]
Sto avendo dei problemi con un portatile che si blocca all'avvio molto probabilmente a causa dell'APM. È possibile disabilitarlo all'avvio?
__________
Al prompt di LILO digita (ipotizzando che linux sia il nome che hai inserito nel lilo.conf
per il sistema linux):
LILO boot:
linux apm=off
[Invio]
Così dovrebbe partire senza abilitare l'APM.
Non c'è la possibilità di annullare il comando di arresto o di riavvio? A volte mi accorgo che avrei voluto fare ulteriori operazioni sul sistema ma non sono riuscito a bloccarne il riavvio per eseguirle.
__________
Per fermare il riavvio (o l'arresto) devi dare il comando:
#
shutdown -c
[Invio]
(-c: cancel shutdown) ma normalmente non puoi farlo perché appena dai il comando di riavvio, le console vengono disattivate. Se invece si posticipa il riavvio con il comando:
#
shutdown -r ore:minuti &
[Invio]
(il sistema si riavvierà alle ore:minuti), è possibile interrompere il riavvio con:
#
shutdown -c
[Invio]
Usando shutdown con l'opzione -n il riavvio o lo spegnimento della macchina sono velocissimi. Penserei di usare sempre questa opzione, definendo un alias in .bashrc
. È pericoloso?
__________
Direi di sì.
Hai letto la man page di shutdown?
-n [DEPRECATED] Don't call init(8) to do the shutdown but do it ourself. The use of this option is dis-couraged, and its results are not always what you'd expect. -n [SCONSIGLIATO] Non impartite init(8) per lo shutdown ma fatelo voi. L'utilizzo di questa opzione è sconsigliato, e i risultati ottenuti non sono quelli che ci si aspettava.
Come spiego a Linux che voglio che tutti gli utenti possano effettuare lo spegnimento senza per questo dotarli di ulteriori privilegi?
__________
si può fare o selezionando l'attributo del set user ID per il comando shutdown:
#
chmod 4755 /sbin/shutdown
[Invio]
(così il comando shutdown verrà sempre eseguito come se fosse lanciato dall'utente root)
oppure una via più raffinata (e selettiva) è quella di creare un utente tipo questo:
halt:x:0:0:,,,:/home/halt:/sbin/halt
così l'arresto del sistema lo possono fare tutti e solo quelli che hanno la password per quell'utente.
Come si fa ad assegnare ad un utente il permesso di riavviare il sistema senza che intervenga l'utente root?
__________
Con sudo. (man sudo per maggiori informazioni)
Devi modificare il file /etc/sudoers
con il seguente comando:
$
visudo
[Invio]
(che sarebbe il vi per sudo con controllo congruenza ecc.)
e aggiungere una riga tipo questa:
pippo pluto=/sbin/shutdown -[hr] now
dove pippo è l'utente e pluto il nome della macchina. -[hr] significa che può lanciare sia shutdown -h che -r.
Una volta fatte le modifiche, l'utente pippo dovrà impartire:
$
sudo shutdown -h now
[Invio]
e gli verrà chiesta la password per proseguire con l'arresto o il riavvio.
È possibile fare in modo che un utente non root non possa usare tale combinazione di tasti?
__________
Devi commentare la riga con ctrlaltcanc in /etc/inittab
.
Come posso far partire Linux senza LILO?
__________
Devi solo copiarti i vari kernel in una directory del Dos/Windows e scompattarli usando Loadlin (è possibile usare:
install=c:\linux\Loadlin.exe
nel config.sys
o Loadlin.exe
in una riga dell'autoexec.bat o ancora usare un batch file appropriato).
Esempi:
rem C:\LINUX\LINUX2.BAT rem l'immagine corrisponde al kernel 2.2.2 rem la partizione è la seconda di un disco SCSI @pause @echo Premere Ctrl-C per interrompere C:\LINUX\LOADLIN C:\LINUX\bzImage.222 root=/dev/sda2 ro rem C:\LINUX\LINUX_R.BAT rem l'immagine corrisponde al kernel 2.0.36 della Red Hat rem la partizione è la seconda di un disco IDE master @pause @echo Premere Ctrl-C per interrompere C:\LINUX\LOADLIN C:\LINUX\vmlinuz2.036 root=/dev/hda2 ro rem C:\LINUX\SINGLE.BAT rem l'immagine corrisponde al kernel 2.0.36 della Red Hat rem la partizione è la seconda di un disco IDE slave rem NOTARE L'OPZIONE SINGLE PER PARTIRE IN MONOUTENZA @pause @echo Premere Ctrl-C per interrompere C:\LINUX\LOADLIN C:\LINUX\vmlinuz2.036 single root=/dev/hdb2 ro
Facendo alcuni esperimenti ho impostato involontariamente il runlevel a zero e adesso in fase di caricamento dopo il montaggio del file system la macchina si spegne. Cosa posso fare per rimediare?
__________
Al prompt di LILO scrivi:
#
linux init=/bin/bash
[Invio]
(dove al posto di «linux» metti l'etichetta scelta per caricare il tuo Linux). Una volta entrato dovrai montare a mano in modalità lettura-scrittura il file system root:
#
mount -n -o remount,rw /
[Invio]
ora puoi operare.
Un'altra soluzione è di dare un linux 1 e cambiare subito il runlevel.
Disponendo di un elaboratore con BIOS APM compatibile ho deciso di attivare le funzionalità di risparmio energetico dei nuovi Kernel tra cui c'è quella dello spegnimento automatico della macchina. Come faccio?
__________
Va inserito 'halt -p' al posto di 'halt' nel file /etc/rc.d/init.d/halt
-------------------------------------- case "$0" in *halt) message="The system is halted" command="halt -p" ;; *reboot) --------------------------------------
Ovviamente dovrai avere ricompilato il kernel con il supporto APM, attivando l'opzione power off on shutdown.
Avevo compilato il Kernel 2.2.5 per poter spegnere la macchina automaticamente in seguito allo shutdown. Purtroppo la cosa non ha funzionato pur avendo seguito le indicazioni necessarie. Sono andato sul sito della Soyo <http://www.soyo.com> nella sezione software. Lì ho trovato una directory chiamata «Patch» con due patch per Linux. Una per la mia scheda madre e una per una Soyo 5 ema. Ho scaricato quella relativa alla mia scheda madre e ho visto che era per il kernel 2.2.14. Me lo sono procurato, ho fatto il patch del kernel e l'ho ricompilato seguendo le indicazioni allegate alla patch.
Chi sa indicarmi come effetuare lo spegnimento del sistema con la pressione di una combinazione di 2 o 3 tasti?
__________
In /etc/inittab
troviamo la seguente sezione:
# Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Sostituisci -r con -h. Quando premi [ctrl+alt+delete] al posto di riavviarsi si spegnerà.
Come mai ogni utente in Red Hat 6.1 può spegnere il sistema con halt o riavviarlo con shutdown -r?
__________
Per evitare che gli utenti comuni possano impartire i comandi halt e shutdown, basta creare il file:
/etc/halt.users
e aggiungere due righe ai file:
/etc/pam.d/halt
e /etc/pam.d/shutdown
in modo che risultino così:
#%PAM-1.0 auth sufficient /lib/security/pam_rootok.so auth requisite /lib/security/pam_listfile.so \ onerr=3Dfail sense=3Dallow item=3Duser file=3D/etc/halt.users auth required /lib/security/pam_console.so auth required /lib/security/pam_pwdb.so account required /lib/security/pam_permit.so
in questa maniera solo gli utenti menzionati in /etc/halt.users
possono utilizzare i servizi di halt e di shutdown. Ovviamente il controllo della password dell'utente rimane, per essere sicuri che sia proprio l'utente che sta digitando.
Mi piacerebbe che il mio sistema, all'avvio, visualizzasse un messaggio scritto in testo semplice.
__________
Se, vuoi che compaia durante il LILO basta mettere in /etc/lilo.conf
la riga:
message= /percorso/nomefile
e rilanciare LILO.
All'avvio ti apparirà la scritta contenuta in /percorso/nomefile
.
Se puoi installi lilo-color (lo trovi su Freshmeat) puoi avere il messaggio colorato. Per avere un messaggio al login di GNU/Linux c'è welcome2l reperibile in rete.
Esiste anche linuxlogo configurabile e personalizzabile.
Se ricompilate il kernel col supporto per fbcon, avrete la possibilità di fare apparire durante l'avvio del sistema il pinguinone preferito in modalità grafica e avrete pure la possibilità di cambiare l'insieme di caratteri, il numero di colonne sullo schermo ed altre amenità.
Completo la ricapitolazione:
in lilo.conf
: message=/percorso/nomemessaggio
(eventualmente usando lilo color).
fbcon ricompilando il kernel
welcome2l - linuxlogo
/etc/issue
+ modifica a rc.local
che lo riscrive ogni volta.
Avevo solo un disco rigido, con due partizioni: hda1 per Windows 98 e hda2 per Linux. Ho installato Red Hat 6.0 e ho messo LILO sulla partizione Linux in modo che reinstallando Windows 98 LILO rimanesse. All'avvio mi veniva chiesto se partire con Windows 98 o con Linux con Windows 98 come valore predefinito.
Ora però ho comprato un nuovo disco rigido. L'ho montato come primario (quindi il vecchio C è diventato D). Ho cancellato Windows 98 dal vecchio e l'ho installato sul nuovo.
Ora all'avvio parte Windows 98 ma non riesco più ad accedere a Linux...
Ho provato a disabilitare da BIOS il primo hard disk. Linux si avvia correttamente, parte LILO che mi chiede con quale sistema operativo partire: Windows 98 o Linux. Scelgo Linux e inizia a caricarsi.
Ecco il problema: durante l'avvio si ferma con questo messaggio di errore: KERNEL PANIC: VFS: Unable to mount root fs on 03:03.
__________
Avvia dal CD della Red Hat 6.0 o dal dischetto di avvio quindi carica Linux con:
linux 1 root=/dev/hdXY initrc= initrd=
[Invio]
(mi sembra che initrc= sia superfluo ma non si sa mai...)
Dopo ciò modifica /etc/fstab
mettendo la nuova partizione di root, e fai la stessa cosa per /etc/lilo.conf
. Lancia quindi LILO e riavvia.
Se sul nuovo disco primario non c'è nessuna partizione Linux dovrai installare LILO nel master boot record.
Non fare mai nessuna di queste operazioni se:
non sai esattamente quello che stai facendo (mi riferisco soprattutto alla modifica di /etc/lilo.conf
)
non hai un floppy di boot per ognuno dei sistemi operativi presenti sul tuo sistema
Il sistema non funziona più perché LILO, non trova più Linux su hda2 come prima. Devi avviare da dischetto, e dire a LILO che deve cercare Linux non su hda2, ma su hdb2 (se ora il disco vecchio è come secondario sulla stessa catena IDE) o su hdc2 (se è primario sulla seconda catena IDE).
Ho ricompilato il kernel e all'avvio mi appare il messaggio:
Kernel panic; che vuol dire? Non ho apportato nessun cambiamento alla mia macchina dall'ultima ricompilazione.
__________
Quando ricompili il kernel, puoi mettere tutto quello che vuoi come modulo (anzi, lo consiglio caldamente). Le uniche cose che non puoi mettere come modulo sono i driver che ti servono all'avvio. Quindi, ad esempio, se hai compilato il filesystem ext2 come modulo oppure i dischi IDE come modulo, allora il kernel non potrà partire.
Sono andato a controllare il file /var/log/boot.log, per vedere se c'erano dei problemi all'avvio di Linux e ho trovato alcune cose che non capisco. Ecco i seguenti messaggi;errore:
Jun 24 13:17:19 galileo swapon: swapon: warning: /dev/hda1 has insecure permissions 0660, 0600 suggested
__________
Accedi al sistema come utente root e digita:
#
chmod 0600 /dev/hda1
[Invio]
In questo modo cambierai i permessi di /dev/hda1
da:
-rw-rw----
a
-rw-------
Poco prima di accedere alla shell, mi vengono segnalati una serie di «multiple duplicate inode» e viene visualizzato il seguente messaggio:
/dev/hda3 :UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
(i.e.)without -a or -p options
__________
dai il comando:
#
e2fsck /dev/hdxy
[Invio]
dovrebbe funzionare, nel tuo caso probabilmente ti chiederà di clonare inode e messaggi similari; tu rispondi affermativamente. Un messaggio di questo tipo vuol dire che il filesystem si è danneggiato molto gravemente, e se il comando e2fsck manuale non funziona, probabilmente è irrecuperabile. Forse hai spento il computer senza avere prima avviato la procedura di shutdown, o è andata via la corrente.
Durante un riavvio il sistema dice che ha problemi di coerenza (inconsistency) sul filesystem, di lanciare manualmente fsck senza opzioni -a o -p.
Il problema è che lancio fsck (ho provato tutti i parametri) e non succede nulla. Es.:
# fsck (qualunque cosa anche sbagliata o inesistente)
e il sistema risponde:
Parallelizing fsck version 1.14
Che fare?
__________
Gli devi dire di quale filesystem fare il controllo:
#
fsck /dev/hda1
[Invio]
oppure dai:
#
e2fsck /dev/xxx
[Invio]
(è equivalente)
Come si fa ad «avvertire» Linux che alcune directory le ho messe su altri dischi?
__________
Se voglio che Linux monti la directory /var
che risiede sulla terza partizione del secondo disco rigido, bisogna aggiungere una riga al file /etc/fstab
:
/dev/hdb3 /var ext2 defaults 1 2
Come posso visualizzare la struttura delle partizioni del mio file system?
__________
#
fdisk -l dispositivo
[Invio]
restituisce il partizionamento di un dispositivo (cioè di un disco). Per vedere quali partizioni sono montate nel mio sistema, è sufficiente:
#
df
[Invio]
Come creo un filesystem ext2 nella terza partizione del secondo disco ide?
__________
devi digitare:
#
mke2fs /dev/hdb3
[Invio]
se vuoi controllare ed eventualmente fissare i blocchi difettosi, utilizza l'opzione -c:
#
mke2fs -c /dev/hdb3
[Invio]
Su un filesystem ext2 temo di avere settori danneggiati. Che posso fare?
__________
monta il filesystem e digita:
#
fsck.ext2 -c
[Invio]
o
#
e2fsck -c
[Invio]
Se ti viene reso qualche numero, hai dei settori danneggiati. È equivalente dare il comando badblocks; ad esempio, per un dischetto:
#
badblocks /dev/fd0H1440 1440
[Invio]
Esiste un prodotto simile a fips per Linux in grado di ridimensionare le partizioni ext2?
__________
Prova GNU parted.
Oppure ho trovato su Freshmeat: <http://www.dsv.nl/~buytenh/ext2resize> (licenza GPL)
che consente di ridimensionare (quindi sia di rimpicciolire che di allargare) partizioni con filesystem ext2, anche montate.
Come creo un filesystem FAT (Dos FAT 16)?
__________
Con il comando:
#
mkdosfs /dev/dispositivo
[Invio]
Su una partizione FAT temo di avere settori danneggiati. Che posso fare?
__________
monta il filesystem e digita:
#
fsck.msdos -r dispositivo
[Invio]
(ti verrà chiesto che tipo di correzione vuoi effettuare).
Come creo altro spazio swap?
__________
O crei una partizione di swap o crei un file. Quest'ultimo si deve creare così:
#
dd if=/dev/zero of=/file_swap bs=1024 count=1024
[Invio]
(si deve creare uno spazio di dimensioni multiple di 4; in questo caso si sta creando un file da un mega circa).
Ora bisogna rendere questo file uno spazio di swap:
#
mkswap /file_swap 1024
[Invio]
Il file di swap è stato creato ma non è utilizzato dal kernel. Per farlo occorre dare il comando:
#
swapon percorso
[Invio]
(in questo caso /file_swap
)
Ma se non vogliamo ogni volta lanciare questo comando, basta elencare in /etc/fstab
la nuova area di swap e gli script di avvio penseranno ad inizializzarla:
/file_swap none swap sw 0 0
Dopo l'ultima installazione di Linux mi sono ritrovato con una partizione da 20 MB in più inutilizzata. Vorrei che diventasse partizione di swap. Quali passi devo eseguire?
Diciamo che puoi attivare un'altra partizione di swap aggiungendo una riga al file /etc/fstab
, per esempio per /dev/hda9
/dev/hda9 swap swap defaults 0 0
Il tipo di partizione deve essere impostato mediante fdisk come tipo 82 che è ovviamente il tipo «swap».
É necessario però attivare con mkswap e swapon la partizione:
#
mkswap /dev/hda9 20480
[Invio]
#
swapon /dev/hda9
[Invio]
Se invece vuoi sommare lo spazio delle due partizioni, devi necessariamente effettuare lo swapoff (in runlevel 1), eliminare la prima partizione di swap e rieseguire fdisk di nuovo.
Come posso formattare un dischetto che possa essere utilizzato per copiarci dentro un file Dos?
__________
#
fdformat /dev/fd0
[Invio]
#
mkfs -t msdos /dev/fd0
[Invio]
#
mount /dev/fd0 /mnt/floppy
[Invio]
#
cp file.txt /mnt/floppy
[Invio]
#
umount /mnt/floppy
[Invio]
Non riesco a montare dischetti con filesystem ext2; se uso dischetti con filesystem DOS invece non ho problemi, è normale?
__________
Sì, infatti nel tuo file /etc/fstab
, nella riga riguardante /dev/fd0
, avrai, nel campo tipo di filesystem , la voce msdos o vfat. Se modifichi, ad esempio, tale file, inserendo ext2 al posto di dos o vfat, vedrai che riuscirai a montare perfettamente floppy con filesystem ext2.
Ti conviene in ogni caso, piuttosto che sostituire ext2 a msdos, aggiungere una seconda riga in /etc/fstab
, in modo da montare ad esempio i dischetti Dos sotto /floppy/dos
e quelli ext2 sotto /floppy/ext2
(se sostituisci la riga come indicato sopra, potrai sì montare i dischetti ext2, ma non più quelli Dos).
Ho ricompilato il kernel 2.2.10 con il modulo per accedere alla partizione di NT4; ora mi chiedo: il montaggio del filesystem nt come si esegue?
__________
Con il seguente comando
#
mount -t NTFS /dev/partizione_di_nt /punto_di_mount
[Invio]
Come faccio a montare la partizione di Windows 2000?
__________
Devi avere il supporto per NTFS o inserito nel kernel o dichiarato come modulo. Nei kernel della serie 2.2.x c'è anche il supporto sperimentale in scrittura, se lo vuoi, abilita anche questo.
Dopodiché:
#
mount -t ntfs /dev/XXX /mnt/QUALCOSA
[Invio]
Sostituisci XXX con il dispositivo della partizione Windows (hda1, ecc.)
Ci sono poi le varie opzioni che puoi trovare in /usr/src/linux/Documentation/filesystems/ntfs.txt
Come si impostano i permessi per permettere all'utente comune di poter montare il lettore dischetti e il lettore CD-ROM?
__________
Procedi in questo modo:
modifica il file /etc/fstab
alla voce /mnt/cdrom
dove ci sono tutte le opzioni (di solito trovi default) aggiungi 'users,noauto'
fai lo stesso per /mnt/floppy
.
Ora riesco a montare il lettore di dischetti in qualità di utente. Che differenza c'è tra l'opzione user e users dell'fstab?
__________
Eccoti un estratto di man mount:
[...] For more details, see fstab(5). Only the user that mounted a filesystem can unmount it again. If any user should be able to unmount, then use users instead of user in the fstab line. ^^^^^ ^^^^ [...] [...] Per ulteriori dettagli, controllate fstab(5). Solamente l'utente che ha montato un filesystem può montarlo di nuovo. Se tutti gli utenti dovessero avere la facoltà di smontare, allora utilizzate users al posto di user nella riga dell'fstab. [...]
C'è il modo per dare a qualsiasi utente il permesso di scrittura su una particolare partizione?
__________
Nel file:
/etc/fstab
aggiungi la riga:
/dev/hda1 /mnt/msdos vfat quiet,umask=000 0 0
legenda:
quiet: ignora gli avvisi dei programmi che ti danno errore quando cercano di cambiare i permessi dei file su partizioni dos e vfat , visto che i permessi non li gestiscono. umask: permette di stabilire quali permessi inibire nel filesystem montato, quindi con 000 dai tutti i permessi a qualsiasi utente in particolare i permessi si impostano: 1=permesso in esecuzione 2=permesso in scrittura 4=permesso in lettura 3=permesso in scrittura+esecuzione 5=permesso in lettura+esecuzione e così via sommando i numeri 1,2 ,4 nelle diverse combinazioni possibili.
Le tre cifre dopo '=' indicano:
la prima: i permessi di root;
la seconda: i permessi del gruppo appartenente a colui che monta il filesystem (se viene montato all' avvio il gruppo sarà root);
la terza: i permessi per tutti gli altri
In fase di avvio mi compare la seguente scritta:
[mntent] warning: no final new line in /etc/fstab
[mntent] warning: no final new line in /etc/fstab
perché compare e cosa significa?
__________
Manca un'ultima riga vuota in /etc/fstab
, aggiungila.
I dispositivi devono essere montati e smontati ogni volta che li utillizzo? Se dichiaro i dispositivi nel file /etc/fstab, dove devo inserire le righe «mount ...» per poter montare automaticamente tali dispositivi?
__________
/etc/fstab
è un file di configurazione composto da righe.
Ogni riga indica quale dispositivo deve essere montato, dove deve essere agganciato al filesystem, di che tipo è (FAT, ext2, iso9660, nt, ecc.) e presenta altre opzioni. Tra queste abbiamo l'opzione 'auto'. Le righe che presentano tale opzione consentono al dispositivo in questione di venire montato automaticamente all'avvio del sistema, senza bisogno di alcun tipo di comando. Le partizioni che non vengono montate automaticamente presentano invece l'opzione 'noauto' (il CD-ROM ad esempio).
Inoltre si deve aggiungere che quando viene elencato un dispositivo in /etc/fstab
è sufficiente dare il comando:
#
mount dispositivo
[Invio]
o
#
mount /directory/di/montaggio
[Invio]
per montare il dispositivo in questione; evitando così di specificare quindi le ulteriori opzioni.
Quando cerco di montare partizioni Dos, si presenta un errore del tipo: il kernel non gestisce questo tipo di filesystem.
__________
Un errore del genere è dovuto al fatto che nel kernel che stai usando non c'è il supporto per filesystem vfat: dovrai ricompilarlo inserendo tale opzione. Una volta compilato il kernel, per montare le partizioni Dos/Windows devi specificare l'opzione -t vfat; quindi:
#
mount -t vfat /dev/dispositivo /dir/di/montaggio
[Invio]
Devo montare automaticamente una partizione vfat in modo che tutti gli utenti possano accedervi sia in scrittura che in lettura. Come si modifica il file /etc/fstab
?
__________
Basta attivare le opzioni user e umask=000 e indicare vfat come tipo. È consigliabile usare anche l'opzione quiet:
/dev/hdxx /dir/di/montaggio vfat user,quiet,umask=000 0 0
Ho aggiunto nel file .bashrc dell'utente root una riga per montare la partizione Windows. Il problema è che se accedo a Linux da un'altra console come root, ovviamente mi dice che il dispositivo è già stato montato. Come posso fare per eliminare questi messaggi di errore?
__________
Semplicemente, li redirigi su /dev/null
Il comando risulta così:
#
mount /dev/hdX /puntomount 2>/dev/null
[Invio]
Il 2 vuol dire che redirige solo gli errori.
In realtà montare la partizione win da .bashrc è un errore, dovresti montarla automaticamente da /etc/fstab
. Se non vuoi che gli utenti vi accedano è sufficiente non aggiungere l'opzione user.
C'è il modo di rendere visibili partizioni ext2 a Windows?
__________
Si, si possono usare ext2tool oppure fsdext2, entrambi distribuiti sotto GPL. I Pacchetti possono essere prelevati presso:
<ftp://ftp.flashnet.it/mirror/12/sunsite.unc.edu/system/filesystems/ext2/ext2tool_1_1.zip>
o
<ftp://ftp.pg.gda.pl/pub/linux/util/fsdext2.zip>
Il primo è a riga di comando, il secondo permette di montare partizioni ext2 come se fossero dischi Dos, solo che è molto pericoloso (leggere bene la documentazione) e molte volte blocca i canali EIDE. Il primo è molto più sicuro.
C'è anche explore2fs, anche esso sotto GPL prelevabile presso:
<http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm>
Come si installa LILO sul Master Boot Record di hda e come si imposta se Linux si trova in hdb e Windows in hda?
__________
Si organizza il file /etc/lilo.conf
nel seguente modo:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 other=/dev/hda1 label=dos table=/dev/hda image=/boot/vmlinuz-2.2.5-15 label=linux root=/dev/hdb1 read-only
e poi si da il comando:
#
lilo -v
[Invio]
per rendere effettive le modifiche.
Come dovrei fare ad avviare Linux da un dischetto facendo in modo che il kernel risieda su disco fisso? Fino ad ora Linux si avvia mediante il LILO installato nel master boot record, tuttavia vorrei far partire il sistema da dischetto abbastanza velocemente (ho provato con un dischetto di avvio contenente il kernel compresso, ma è veramente molto lento).
__________
fai una copia di /etc/lilo.conf
:
#
cp /etc/lilo.conf /ect/lilo.conf.old
[Invio]
Modifica il file /etc/lilo.conf
e scrivici dentro questo :
boot=/dev/fd0 vga=3 compact ----------> Su alcuni sistemi non funziona read-only prompt timeout=0 image = /vmlinuz -------------> Specifica la tua immagine root = /dev/hdb2 -------------> Specifica la tua dir di root label = LinuZ -------------> Scegli un nome a piacere
salva questo file, esci dall'editor di testi, inserisci un dischetto formattato nel lettore dei dischetti, e poi scrivi /sbin/lilo al prompt. Riavvia e prova.
Nel caso il kernel non si dovesse avviare, prova a rimodificare il file /etc/lilo.conf
cancellando la riga «compact» perché è raro, ma su alcuni sistemi non funziona stando alla documentazione. In questo modo va un po' più lento, diciamo un paio di secondi in più all'avvio.
Con questo metodo puoi anche provare varie configurazioni di LILO in modo da far partire anche Windows e NT, tanto provare da disco non costa niente e non fai danni; una volta che sei riuscito a configurare il LILO in modo che avvii i sistemi operativi che ti occorrono puoi cambiare la prima riga del lilo.conf
in boot=/dev/hda e poi ridare il comando /sbin/lilo, così eviterai questo noioso floppy.
Come faccio ad installare LILO in una posizione diversa da quella in cui si trova adesso?
__________
Il file /etc/lilo.conf
contiene la riga:
boot=
che specifica su quale dispositivo o su quale partizione andrà installato LILO.
Indicando /dev/hda
verrà installato nel settore di boot del primo disco ide, indicando invece hdb2
, verrà installato nella seconda partizione del secondo disco ide.
In questo ultimo caso, la partizione deve essere resa avviabile (comando «a» di fdisk o comando «b» di cfdisk).
Dopo aver fatto le modifiche deve, ovviamente, essere rilanciato LILO.
Ho trovato comodo installare LILO sul master boot record della partizione GNU/Linux e poi con fdisk impostare quest'ultima come partizione attiva (al posto di Windows 9x)
__________
Debian GNU/Linux lo fa in maniera predefinita, aggiungendo nel master boot record un piccolo ma potente codice per scegliere la partizione di avvio al volo (quell'inquietante messaggio simile a 1FA:, che leggendo bene /usr/doc/mbr/README
si capisce che inquietante non è, anzi!).
In breve, il messaggio 1FA: che si ottiene tenendo premuto [SHIFT] (oppure [CTRL] o [ALT]) all'avvio indica che è possibile premere:
[1] per l'avvio dalla prima partizione;
[F] per l'avvio da dischetto;
[A] per opzioni avanzate, tipo l'avvio da una partizione arbitraria.
Così non c'è più bisogno di configurare LILO per l'avvio di più sistemi operativi.
Non sono riuscito mai a impostare il LILO per Debian GNU/Linux cioè Linux mi parte ma la partizione per Windows non riesco a farla avviare.
__________
avvii cfdisk, predisponi come avviabile la partizione Windows e salvi;
all'avvio tieni premuto [MAIUSC], poi premi il numero della partizione che vuoi avviare (Windows o Linux).
apri /etc/lilo.conf, e aggiungi alla fine (sostituisci X con i tuoi valori):
other=/dev/hdaX label=windows
esegui /sbin/lilo;
all'avvio tieni premuto [MAIUSC] e digita il nome del sistema operativo da avviare;
se vuoi puoi modificare la prima riga da:
install=/dev/hdaX
a:
install=/dev/hda
__________
da Windows:
C:\>
FDISK /MBR
[Invio]
oppure, dopo essere partito con un disco di ripristino di Windows:
C:\>
sys c:
[Invio]
da Linux:
#
lilo -U
[Invio]
oppure puoi utilizzare dd per riscrivere il file di backup che LILO fa quando si installa. (Lo trovi nella directory /boot
con un nome tipo boot.0300 o qualcosa di simile).
Attenzione a non riscrivere la tavola delle partizioni per cui:
#
dd if=boot.* of =/dev/hda bs=446 count=1
[Invio]
Linux è il sistema operativo predefinito ma vorrei che fosse Windows.
Windows è il sistema operativo predefinito ma vorrei che fosse Linux.
__________
boot=/dev/sdb1 map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz label=linux root=/dev/sdb1 initrd=/boot/initrd read-only other=/dev/sda1 label=dos table=/dev/sda
Così si avvia Linux. Se voglio far partire Windows, devo semplicemente invertire la parte con image con quella con other:
boot=/dev/sdb1 map=/boot/map install=/boot/boot.b prompt timeout=50 other=/dev/sda1 label=dos table=/dev/sda image=/boot/vmlinuz label=linux root=/dev/sdb1 initrd=/boot/initrd read-only
Ma ad ogni cambiamento si deve reinstallare LILO:
#
lilo -v
[Invio]
Ho installato Debian GNU/Linux e Red Hat rispettivamente nella partizione hda1 e hda4; come devo modificare il file lilo.conf per scegliere con LILO quale distribuzione avviare?
__________
Ammesso che ora il tuo file /etc/lilo.conf
sia qualcosa del tipo:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/bzImage label=linux.debian root=/dev/hda1 read-only
ti consiglio di copiarti il kernel nella directory /boot
da cui esegui LILO. Cioè se sei in Debian GNU/Linux e hai il file della Red Hat vmlinuz-2.2.5-15 lo copi in /boot
e aggiungi una nuova sezione in /etc/lilo.conf
, dopo aver copiato anche la directory relativa ai moduli del 2.2.5-15 nella relativa directory /lib/modules
.
Esempio:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/bzImage label=linux.debian root=/dev/hda1 read-only image=/boot/vmlinuz-2.2.5-15 label=linux.redhat root=/dev/hda4 read-only
Visto che ho trovato un secondo disco rigido d'occasione abbastanza capiente, avrei intenzione di dedicarlo interamente a NT. È possibile installarlo senza dover reinstallare Linux?
__________
Certo.
Il tuo caso:
Hai il primo disco con Linux e Windows: hda1 e hda2 ad esempio.
Hai lo slave con NT (o vorresti lo slave con NT).
Ti consiglio di installare NT come se fosse il master disabilitando il primo disco con Linux e Windows dal BIOS.
Così facendo partirà solo nt.
A questo punto rimonta il disco con Linux e Windows come master e rimetti quello con NT come slave. Rientra in Linux e modifica il lilo.conf come segue. Esegui /sbin/lilo affinché tale nuova tabella venga scritta nel master boot record del primo disco (boot=/dev/hda) e riavvia il sistema.
Al momento del boot il BIOS leggerà il master boot record dal disco master.
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=30 other=/dev/hda1 label=dos table=/dev/hda image=/boot/vmlinuz-2.2.5-15 label=linux root=/dev/hda2 read-only other=/dev/hdb label=nt map-drive=0x80 to = 0x81 map-drive=0x81 to = 0x80
Allora, avrai tre scelte: dos, linux, nt
se fai dos si avvierà Windows;
se fai linux partirà Linux;
se fai nt il master verrà mappato come slave e viceversa; il sistema si riavvierà leggendo il master boot record dello slave. Da quel momento, fino al prossimo riavvio del sistema, i dischi saranno invertiti (a livello logico naturalmente).
Ho Linux su primo disco fisso, e Windows sullo slave; ora LILO non riesce ad avviare Windows, come posso fare?
__________
ecco un esempio di /etc/lilo.conf
per ovviare al problema: modificalo secondo le tue esigenze e riesegui LILO per reinstallarlo.
boot=/dev/hda map=/boot/map install=/boot/boot.b default=linux prompt timeout=20 read-only root=/dev/hda1 image=/vmlinuz label=linux other=/dev/hdb1 label=win map-drive=0x80 to=0x81 map-drive=0x81 to=0x80
Ho dovuto reinstallare per l'ennesima volta Windows, e il master boot record è stato ovviamente sovrascritto causando quindi la cancellazione del LILO. Come posso fare per reinstallarlo? Ho una Red Hat.
__________
Dunque, è un po' empirico ma è utile.
Occorrono il dischetto di installazione della distribuzione nel lettore di disco 'A' e il CD-ROM Red Hat nel lettore cd.
Si procede come segue
accendi il computer e scegli aggiornamento del sistema;
a richiesta scegli di aggiungere altri pacchetti;
scegline uno a caso purché molto piccolo (questo riduce il tempo di installazione).
Finito questo sarà il programma di installazione stesso a chiederti se vuoi un dischetto di avvio o se vuoi installare LILO nel master boot record. Il tutto in meno di cinque minuti.
Ho una macchina con un unico disco ma suddiviso in più partizioni in modo da funzionare con Windows e con Linux. L'avvio viene fatto da LILO, che sta sul master boot record. Vorrei che Windows partisse solo dopo l'inserimento di una password. La cosa ovvia sarebbe mettere la password del BIOS ma non voglio, dato che voglio poter riavviare Linux in remoto.
In poche parole adesso al riavvio la macchina parte in maniera predifinita con Linux, e fin qui poco male dato che poi per entrare serve un account. Ma con Windows è diverso, dato che non ha protezioni efficaci.
Dunque la domanda è: Esiste la possibilità di configurare LILO in modo che faccia partire in maniera predefinita e senza password Linux ma richieda la password non appena si avvia Windows?
__________
Da man lilo.conf:
password=password Protect the image by a password. (Proteggere l'immagine mediante una password)
Dove va inserita la password in LILO?
__________
Va tolto restricted ed il punto del /etc/lilo.conf
è quello delle opzioni generali (prima dei sistemi operativi)
Al prompt di LILO ho inserito «linux 1». Il risultato è stato che ho avuto accesso al sistema in qualità di utente root senza digitare nessuna password. Come mai accade ciò?
Tutto dipende dal fatto che per poter dare questo comando bisogna avere l'accesso fisico al sistema. Un server di solito, al contrario di macchine casalinghe, si trova in luoghi protetti il cui accesso è riservato a poche persone. Riavviare un server è un operazione a volte possibile esclusivamente via hardware. Ecco quindi che la possibilità di dare un comando a LILO è una facoltà riservata solo a coloro che possono accedere fisicamente alla macchina.
Puoi in ogni caso impostare una password aggiungendo la riga:
password="LA_TUA_PASSWORD"
nel file /etc/lilo.conf
. Se aggiungi anche la riga:
restricted
LILO ti chiederà la password ogni volta che cercherai di passargli degli argomenti. Dal momento che la password viene scritta in chiaro, per ovvii motivi il file dovrà essere leggibile solo da root.
Su hda1 ho Windows, su hdb1 Linux. Facendo avviare da hdb (sul cui master boot record c'è LILO), invece di avviare Linux, appaiono un ciclo infinito di 01 sul monitor e si blocca. Con un dischetto che utilizza Syslinux, o con uno che utilizza LILO tutto funziona.
Controlla che hdb sia in modo LBA e/o fai in modo che la partizione di root risieda al di sotto del cilindro 1024. Se così non è, LILO non funziona. Fatto quello, verifica che il master boot record sia sul primo disco e non sul secondo.
Quando cerco di entrare in Linux (dopo che LILO mi ha chiesto quale sistema operativo voglio lanciare) mi appare un messaggio in cui c'è scritto che è stato rilevato un virus nel boot e che per evitare che questo si diffonda nell'elaboratore bisogna spegnere la macchina e riavviarla con un dischetto di boot per pulirlo dal virus: cosa devo fare?
__________
È l'antivirus del BIOS, disattivalo. Il BIOS confonde il LILO con un virus.
C'è un modo per evitare di usare LILO?
__________
GAG è un ottimo boot-manager insieme anche a chos.
Alternativamente, puoi fare un dischetto di boot ed usare quello quando vuoi fare partire Linux, oppure usare Loadlin.
Come faccio a sapere quale è l'ultima versione del kernel?
__________
Con finger:
[root@fokhouse /root]#
finger @linux.kernel.org
[Invio]
[linux.kernel.org] The latest stable version of the Linux kernel is: 2.2.12 The latest beta version of the Linux kernel is: 2.3.18 The latest prepatch (alpha) version *appears* to be: none
comunque si consiglia di utilizzare:
[root@fokhouse /root]#
finger @finger.kernel.org
[Invio]
Quale è il comando per visualizzare la versione del kernel?
__________
$
uname -r
[Invio]
Come faccio a sapere il nome dell'immagine del kernel caricata?
__________
Per fare ciò, esiste la variabile BOOT_IMAGE di LILO. Ma la variabile BOOT_IMAGE creata da LILO viene azzerata da qualche processo, per cui dopo il login non esiste più. Bisogna usarla prima di depmod in rc.sysinit per ottenerla.
Con:
#
uname -a
[Invio]
mi viene restituita una riga di questo tipo:
Linux server 2.2.13 #4 Sun Nov 21 14:13:37 CET 1999 i586 unknown
Da cui posso capire almeno la versione del kernel caricata.
Vorrei sostituire il mio kernel. Quali sono tutte le operazioni necessarie?
__________
Non è una cosa molto difficile:
Nella directory /usr/src
è generalmente presente un link chiamato linux che punta alla directory che contiene tutti i sorgenti del kernel installato sulla macchina. Altre volte non è presente tale link ma c'è la semplice directory linux
o linux-x.y.z
che contiene la versione precedente del kernel.
Se c'è il link cancellalo. Se c'è la directory linux rinominala in linux.old
:
#
mv /usr/src/linux /usr/src/linux.old
[Invio]
se c'è la directory linux-x.y.z
lasciala così.
Copia il file linux-ver.del.nuovo.kernel.tar.gz
in /usr/src
A questo punto scompatta il file linux-ver_del_nuovo_kernel.tar.gz nella directory /usr/src
con:
#
tar -zxvf linux-ver_del_nuovo_kernel.tar.gz
[Invio]
A questo punto è stata creata una nuova directory chiamata linux dove sono stati messi i sorgenti del nuovo kernel ancora da compilare. Ora puoi andare direttamente nella directory appena creata con:
#
cd linux
[Invio]
oppure spostare la directory da linux
a linux-ver_del_nuovo_kernel
(linux-2.2.2):
#
mv linux linux-ver_del_nuovo_kernel
[Invio]
e creare un nuovo link linux che punti direttamente alla nuova directory appena fatta:
#
ln -s linux-ver_del_nuovo_kernel linux
[Invio]
Ora entri nella directory /usr/src/linux
(link o directory che sia).
Vanno eseguite queste azioni passo dopo passo:
#
make mrproper
[Invio]
(che cancella il file .config
riazzerando tutte le opzioni selezionate nell'ultimo tentativo di ricompilazione)
È un comando 'facoltativo'. (perché se voglio ricompilare il kernel una seconda volta modificando pochissimi valori dall'ultima ricompilazione, se reimpartisco 'make mrproper' devo ricominciare e selezionare le opzioni da capo. Se invece non faccio make mrproper ritroverò tutte le opzioni selezionate in precedenza).
#
make menuconfig
[Invio]
(se lo vuoi testuale da console) oppure:
#
make xconfig
[Invio]
Scegli tutte le opzioni aiutandoti con l'help o con Appuntilinux
Alla fine salva la configurazione (che verrà salvata nel file .config
) e fai:
#
make dep
[Invio]
#
make clean
[Invio]
#
make bzImage
[Invio]
può anche essere tutto ridotto in
#
make dep clean bzImage
[Invio]
Conviene fare make bzImage e non make zImage perché la seconda crea un kernel più grande che il LILO può non accettare; per cui conviene subito compilare con bzImage.
Se sono stati inseriti i moduli va fatto:
#
make modules
[Invio]
#
make modules_install.
[Invio]
A questo punto l'immagine del kernel la dovresti trovare nella directory /usr/src/linux-2.2.2/arch/i386/boot
con il nome bzImage.
Ora copia il file bzImage nella directory /boot
:
#
cp bzImage /boot
[Invio]
Modifica il file /etc/lilo.conf
cambiando il nome dell'immagine. C'è scritto image=vmlinuz che tu cambierai in image=bzImage (oppure rinomina bzImage in vmlinuz o in quello che vuoi).
A questo punto esegui LILO:
#
/sbin/lilo
[Invio]
e se tutto è andato bene dovrebbe scrivere:
Added Linux Added Dos o W95 ecc.
secondo le etichette dei sistemi operativi che hai specificato. Il sistema operativo predefinito è indicato da un asterisco.
A questo punto fai il reboot e partirà la nuova versione del Kernel compilata di fresco.
Come si ricompila il kernel in Debian GNU/Linux?
__________
Installate il pacchetto kernel-package (e libncurses4-dev se usate 'make menuconfig'). Poi:
scaricate il sorgente del kernel;
spostatelo nella directory /usr/src;
decompattatelo;
entrate nella directory linux (o se viene creata la directory linux_x_x_x rinominatela in linux semplicemente);
date un bel make menuconfig;
configurate le opzioni che vi servono;
uscite dal menu.
Non servono i seguenti comandi:
make dep
make clean
make zlilo
make modules
make modules install
Dopo il 'make menuconfig', fate:
#
make-kpkg kernel_image
[Invio]
per installarlo:
#
dpkg -i /usr/src/kernel-image
[Invio]
#
shutdown -r now
[Invio]
Nella directory esterna ai sorgenti del kernel vi trovate un bel pacchetto .deb con il kernel compilato e tutti i moduli necessari. Copiatelo e installatelo su tutti i computer che volete e riavviate.
Non è necessario compilare il kernel sulla stessa macchina su cui dovrà essere usato, andate su quella che lo compila più velocemente.
Il pacchetto kernel-package contiene il comando make-kpkg, che permette di compilare automaticamente un kernel e generare i pacchetti Debian GNU/Linux corrispondenti a:
kernel-image (pacchetto binario del kernel)
kernel-headers (.h per compilare programmi dipendenti dal kernel)
kernel-source (crea un pacchetto con i sorgenti del kernel)
kernel-doc (documentazione del kernel)
Può essere usato sia partendo dai sorgenti Debian GNU/Linux del kernel come anche da un kernel ufficiale eventualmente corretto con una patch. make-kpkg sostituisce il processo di compilazione e installazione del kernel.
I file .deb generati possono essere tranquillamente copiati in giro, ed installati con un semplice 'dpkg -i'.
State attenti a dselect, che potrebbe andare a sovrascrivere il vostro kernel (con una versione presumibilmente nuova, secondo lui). Se entrate in select premete il tasto '=' sul kernel-image installato, così non verrà più toccato da dselect/dpkg.
Ho ricompilato il kernel ed ottenuto il mio file bzImage. L'ho rinominato in vmlinuz e ora cerco di copiarlo nella dir /boot/ ma qui trovo una sfilza di vmlinuz-2.2.5-15...
Cosa dovrei fare a questo punto?
__________
Dipende dal boot manager che usi. Se adoperi LILO, puoi immettere il tuo nuovo kernel nella dir /boot
con il nome che più ti piace; poi, inserisci il nome in /etc/lilo.conf
come immagine predefinita. Infine, dai il comando:
#
/sbin/lilo
[Invio]
Ho ricompilato svariate volte il kernel e mi è sorto il seguente dubbio: serve molto spazio libero sul disco? Se si quanto?
circa 65 Mb per i sorgenti decompressi poi qualche centinaio di Kbyte per il binario.
Come si applica una patch al kernel?
__________
#
cd /usr/src
[Invio]
#
bzip2 -dc nomefile |patch -p1
[Invio]
o:
#
gzip -dc patch.gz |patch -p0
[Invio]
se è in .gz
oppure:
si copiano le patch nella directory /usr/src e si entra nella stessa.
Dopo essersi posizionati in tale directory si impartisce il comando:
#
linux/scripts/patch-kernel
[Invio]
lo script provvede a cercarsi le patch nella dir /usr/src/ e ad applicarle.
Sono abituato ad installare pacchetti in formato tar.gz, ora vado nel sito <www.it.kernel.org> e trovo che le ultime patch del kernel sono in formato .tar.bz2. Come si decompattano tali file?
__________
$
bzip2
[Invio]
avendocelo installato puoi decomprimere un file con:
$
bunzip2 nomefile
[Invio]
Per i tar.bz2 conviene usare l'opzione I di:
$
tar tIf pacchetto.tar.bz2
[Invio]
per listare e:
$
tar xIf pacchetto.tar.bz2
[Invio]
per estrarre.
Ma dopo avere applicato la patch, devo ricompilare il kernel come al solito?
__________
Sì, a quel punto tutti i file modificati tra le due versioni sono stati aggiornati ed hai la tua /usr/src/linux
esattamente uguale a come l'avresti avuta se avessi scaricato il kernel completo di quella versione.
Dopo aver applicato la patch è bene aggiornare la configurazione con il comando:
#
make oldconfig
[Invio]
e, cosa molto importante, ricordarsi prima di passare alla compilazione vera e propria di dare il comando:
#
make dep
[Invio]
Non riesco a fare
# make xconfig
perché mi dice che manca il programma wish. Chi mi sa dire in che pacchetto é contenuto?
__________
wish non è altro che l'interprete per il tcl/tk (estensioni grafiche della shell tclsh).
Quindi devi installare il Toolkit Tk e per farlo devi prima installare TCL (Tool Command Language).
Il pacchetto viene di solito fornito con qualunque distribuzione.
Creata l'immagine del nuovo kernel come posso verificarne la funzionalità in tutta sicurezza? Come posso creare una scelta multipla tra i kernel presenti?
__________
Do per scontato che tu abbia il tuo nuovo file bzImage nella directory /boot
e che tu abbia già verificato che questo funzioni, tramite dischetto di avvio. A questo punto il tuo file /etc/lilo.conf
dovrebbe risultare circa così:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.0.36-3 label=linux root=/dev/hda3 read-only (eventuale altro sistema operativo)
dove vmlinuz-2.0.36-3
è il vecchio kernel e /dev/hda3
è la partizione root. Se invece di vmlinuz-2.0.36-3
si chiama semplicemente vmlinuz è meglio rinominarlo in questo modo:
#
mv /boot/vmlinuz /boot/vmlinuz-2.0.36
[Invio]
(al posto di 2.0.36 utilizza il numero della versione del vecchio kernel)
Ora, dovresti ad esempio chiamare l'immagine del kernel che vuoi provare 'vmlinuz-2.2.2':
#
mv /boot/bzImage /boot/vmlinuz-2.2.2
[Invio]
A questo punto non devi fare altro che duplicare una parte del tuo lilo.conf
, così:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.0.36-3 (o il nome del vecchio kernel) label=linux root=/dev/hda3 read-only image=/boot/vmlinuz-2.2.2 label=prova root=/dev/hda3 read-only (eventuale altro sistema operativo)
Per installare LILO, devi dare il comando:
#
lilo -v
[Invio]
(-v ti dice ciò che sta facendo).
Quindi, riavvia il sistema e quando compare il prompt di LILO digitando prova entri con il nuovo kernel. Se qualcosa andasse storto, l'etichetta linux ti permette sempre di utilizzare il vecchio kernel.
Prima di eliminare del tutto il vecchio kernel, io proverei il nuovo per un certo periodo. Quando sei proprio soddisfatto, puoi modificare di nuovo il lilo.conf
e cancellare la sezione del vecchio kernel e cambiare «prova» in «linux»:
map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.2.2 label=linux root=/dev/hda3 read-only (eventuale altro sistema operativo)
ridai il comando:
#
lilo -v
[Invio]
per rendere effettive le modifiche.
Voglio installare di nuovo la Suse 6, ma voglio portarmi dietro il kernel che ho ricompilato a fatica. Cosa devo copiare? Solo vmlinuz oppure anche la directory include? Cos'altro?
__________
Per poter 'esportare' il kernel sono necessari il file bzImage (zImage oppure vmlinuz o come avete chiamato l'immagine del kernel) presente generalmente in /boot
, la directory /usr/src/linux/include
e la dir /lib/modules/x.x.xx
relativa alla versione del kernel.
Qualcuno sa che cos'è il file initrd-2.2.12-20.img che c'è in boot? L'ho riscontrato in RH 6.0.
__________
Cito da:
The Official Red Hat Linux Reference Guide
trovato sul sito di Red Hat:
An initrd image is needed for loading your SCSI module at boot time. The shell script /sbin/mkinitrd can build a proper initrd image for your machine if the following conditions are met:
The loopback block device is available.
The /etc/conf.modules file has a line for your SCSI adapter; for example: alias scsi_hostadapter BusLogic
Viene richiesta un'immagine initrd per caricare il vostro modulo SCSI all'avvio. Lo script shell /sbin/mkinitrd può costruire un'immagine initrd corretta per la vostra macchina se si presentano le seguenti condizioni:
È disponibile il dispositivo di blocco del loopback
Il file /etc/conf.modules presenta una riga per l'adattatore SCSI; ad esempio: alias scsi_hostadapter BusLogic
Quindi in pratica è un'immagine utilizzata per caricare il modulo SCSI all'avvio. La si può creare con il comando /sbin/mkinitrd.
Qualcuno mi sa dire se il kernel 2.2.12 riconosce le porte USB?
No, non le riconosce. Devi avere un kernel 2.2.14 con il backport oppure un 2.3.xx
C'è un modo per ricompilare il kernel ottimizzandolo per processori Pentium?
__________
Lo si può fare modificando il makefile che si trova in /usr/src/linux
. In pratica bisogna cercare le voci:
HOSTCFLAGS
MAKE
CFLAGS
e modificare il loro contenuto nel seguente modo:
HOSTCFLAGS =-Wall -Wstrict-prototypes -O3 -march=pentium -mcpu=pentium -ffa st-math -funroll-loops -fomit-frame-pointer -fforce-mem -fforce-addr -malign-dou ble -fno-exceptions MAKE =make -j 4 CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -O3 -march=pentium -mcpu=pentium -ffast-math -funroll-loops -fomit-frame-pointer -fforce-mem -fforce-addr -malig n-double -fno-exceptions
(nella versione 2.3.47 si trova CFLAGS := $(CPPFLAGS) mentre fino alla 2.2.14 c'è solo CFLAGS =).
È da notare che ho utilizzato come compilatore il pgcc (un compilatore gcc ottimizzato per processori pentium) che si trova nei contributi della Red Hat (sono naturalmente disponibili i pacchetti nei vari formati).
In pratica basta non installare o disinstallare l'egcs fornito dalla Red Hat e installare il pgcc.
Ho un problema con il kernel: sono nella directory /usr/src/linux e se da lì impartisco il comando make xconfig, la risposta è:
__________
make** no rule to make "xconfig"
nella directory di interesse c'è un file READ-ME dove dice che è necessario installare kernel-source binary RPM. Secondo il manuale si dovrebbe installare l'albero gerarchico dei file sorgente del kernel; che cosa devo fare?
Immagino che tu abbia una distribuzione Red Hat (ma il concetto è valido anche per altre distribuzioni); se è così monta il CD-ROM di installazione, vai nella directory dove ci sono tutti i pacchetti RPM:
#
cd /mnt/cdrom/RedHat/RPMS
[Invio]
e installa il pacchetto con i sorgenti del kernel:
#
rpm -i kernel-source-XXXXX.i386.rpm
[Invio]
(al posto delle X ci sarà la versione del kernel della tua distribuzione)
Ora nella directory /usr/src/linux troverai tutti i sorgenti del kernel e puoi riprovare con make xconfig.
Dove trovo nella compilazione del kernel l'opzione: IP: forwarding/gatewaying? L'ho cercata dappertutto (nella parte relativa alla rete, s'intende), ma non sono stato capace di trovarla.
__________
Non si tratta di un'opzione da compilare nel kernel ma di un parametro da impostare nel filesystem /proc
. Il file in questione è /proc/sys/net/ipv4/ip_forward
.
Se infatti esegui il comando 'cat' su questo file:
#
cat /proc/sys/net/ipv4/ip_forward
[Invio]
otterrai uno zero.
Quindi devi eseguire il seguente comando per portarlo al valore di uno:
#
echo 1 > /proc/sys/net/ipv4/ip_forward
[Invio]
poi ricontrolla con cat.
Ovviamente questa operazione va ripetuta ogni volta che esegui l'avvio (quindi va automatizzata). Se usi Red Hat è sufficiente portare a 'vero' «FORWARD_IPV4» presente nel file /etc/sysconfig/network
.
Penso che anche altre distribuzioni offrano qualcosa di simile. Altrimenti inserisci il comando nel file /etc/rc.d/rc.local
.
Dopo aver ricompilato il kernel 2.2.6 per configurare la mia macchina come firewall tramite ipfwadm, mi sono accorto che questa versione del kernel, a differenza di quanto accadeva con il kernel 2.0.32, non colloca il parametro 'ip_forward' in /proc/net (cioè quello che si aspetta ipfwadm), ma sotto: /proc/net/ipv4/
Qualcuno ha qualche idea del perché tutto ciò si verifica?
__________
Perché dai kernel della serie 2.2.X non si usa più ipfwadm ma ipchains.
Nel ricompilare il kernel 2.2.5 ho notato l'assenza dell'opzione drop source-routed frames mi è forse sfuggita?
__________
da /usr/src/linux/Documentation/Changes
:
In 2.0.x the kernel could be configured to drop source routed IP packets via a compile time configuration option. In 2.2.x, this has been replaced by a sysctl.
Nei kernel della serie 2.0.x ci potrebbe essere la configurazione che (ri)lasci i pacchetti IP sorgenti (originali??) instradati mediante un'opzione di configurazione del tempo di compilazione. Nella serie 2.2.x, questa caratteristica è stata sostituita da un 'sysctl'.
Come faccio a controllare quali pacchetti del kernel ho installato? Utilizzo una distribuzione basata su rpm.
__________
Ecco come:
#
rpm -qa | grep kernel | sort
[Invio]
kernel - pacchetti rpm
Ci sono delle piccole precisazioni da fare sulla ricompilazione del kernel sulla Red Hat. Applicando le patch ufficiali al kernel fornito con la Red Hat (proveniente da rpm) ottengo una serie di errori (di solito non trova il file cui applicare la patch).
Provo ad installare un kernel 'ufficiale' e il medesimo file di patch non restituisce nessun messaggio di errore.
Ricompilo il kernel senza controllare i link /usr/include/
[asm linux scsi] confidando nella Red Hat (a dire il vero senza pensarci sù) e con stupore mi accorgo di una serie di messaggi di avvertimento e di errori di compilazione legati ai file che gestiscono le periferiche SCSI.
Verifico l'esattezza dei link per prima cosa e mi accordo che Red Hat mette in /usr/include
una directory SCSI e non un link simbolico.
Rinomino la directory, creo il link e ricompilo. Tutto torna a posto.
Red Hat inserisce una directory al posto del link simbolico e quindi si possono avere errori nella ricompilazione del kernel 'ufficiale' (intendendo quello scaricato da <www.kernel.org>).
In definitiva occorre verificare le seguenti predisposizioni:
/usr/include/linux -> ../src/linux/include/linux/ /usr/include/scsi -> ../src/linux/include/scsi/ /usr/include/asm -> ../src/linux/include/asm
e che ci sia in /usr/src/linux/include
: asm -> asm-i386
Leggendo i messaggi sulle liste di discussione e nei gruppi di discussione, consiglierei di utilizzare una riga del genere per ricompilare il kernel:
#
make dep;make clean;make bzImage > LOG-k 2> ERR-k;make modules > LOG-m 2> ERR-m
[Invio]
in questo modo in una sola volta si ottengono i file di log (si reindirizza lo standard output su LOG-? con >)
e i file contententi gli avvertimenti e gli errori di compilazione (si reindirizza lo standard error su ERR-? con 2>).
Risulta quindi più facile individuare i problemi.
Ho ricompilato il kernel, ma rilevo 25 Mb in meno. Devo forse cancellare il vecchio kernel?
__________
Non il kernel, basta dare:
#
make clean
[Invio]
da /usr/src/linux
.
Come si fa a dire al sistema di caricare all'avvio i file /boot/System.map
corretti, a seconda dell'immagine del kernel che si è scelto di caricare?
__________
Devi fare una piccola modifica al file:
/etc/rc.d/init.d/syslog
Cerca la riga:
daemon klogd -k /boot/System.map
e modificala in:
daemon klogd -k /boot/System.map-`uname -r`
Copia in /boot
il file System.map e rinominalo nel seguente modo:
#
mv System.map System.map-`uname -r`
[Invio]
installa i moduli fai un:
#
depmod -a `uname -r`
[Invio]
modifica il LILO e riavvialo.
Ho da poco installato e compilato il nuovo kernel stabile 2.2.12. Tutto bene nella fase di compilazione, il sistema parte regolarmente ma nella fase in cui carica i vari servizi (sendmail, gpm, atm, ecc.) appare un messaggio di avvertimento: /boot/Sistem.map... e mi dice che questo file punta ad una versione sbagliata del kernel; in effetti guardando in /boot ho:
lrwxrwxrwx 1 root root 19 Jun 5 14:38 System.map -> System.map-2.2.5-15 -rw-r--r-- 1 root root 186846 Apr 20 1999 System.map-2.2.5-15
Ora mi chiedo come posso generare il file Sistem.map-2.2.12 e se è un'operazione corretta. Posso anche spostare momentaneamente il file System.map affinché in avvio non venga letto?
__________
Quando ricompili il kernel devi copiare (una volta finita la compilazione) i seguenti file:
#
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.x.x
[Invio]
e:
#
cp /usr/src/linux/System.map /boot/System.map-2.x.x
[Invio]
ed eventualmente se è necessario, aggiornare i collegamenti simbolici della directory /boot
(a seconda della distribuzione).
Nella mia macchina ho da tempo installato la distribuzione Debian GNU/Linux 2.1 (che fornisce in maniera predefinita il kernel 2.0.36) ma ora volevo installare il kernel 2.2.10. Ho seguito i passi indicati negli HOWTO e va tutto bene fino a quando, lanciato il comando make zImage, ad un certo punto la creazione dell' immagine del kernel si ferma a causa del seguente errore:
make[1]: Entering directory '/prova/linux/arch/i386/boot'
as -0 -a -o bootsect.o bootsect.s
make[1]: as86: command not found
make[1]: *** [bootsect.o] Error 127
make[1]: Leaving directory '/prova/linux/arch/i386/boot'
make: *** [zImage] Error 2
Come faccio a risolvere il problema?
__________
Ti manca il pacchetto bin86 perché as86 fa parte di bin86.
Che vuol dire unresolved symbol? Ogni volta che si fa make modules e make modules_install bisogna rinominare la directory dei moduli (presente in /lib/modules)?
__________
Non tutti sanno che molti messaggi di 'unresolved symbol' dipendono dal fatto che il kernel nella parte monolitica è legato ai suoi moduli, per cui ogni volta prima di dare i comandi:
#
make modules; make modules_install
[Invio]
è necessario rinominare la vecchia directory.
Uso la Red Hat 6.0 che fornisce il kernel 2.2.5; ultimamente ho compilato ed installato il 2.2.9, solo che all'avvio del sistema mi appaiono tutta una serie di avvertimenti che mi fanno notare che la versione del kernel è sbagliata. Il sistema si avvia poi normalmente, c'è un modo per eliminare tutti quei fastidiosi messaggi o comunque comportano niente all'integrità del sistema?
__________
Probabilmente si tratta del file System.map
che appartiene alla versione precedente del kernel. Io ho risolto il problema in modo pratico, trasformando /boot/System.map
in un link simbolico a /usr/src/linux/System.map
; in questo modo ogni volta che aggiornerai il kernel il collegamento farà sempre riferimento alla versione di System.map appena generata in fase di compilazione che si troverà sempre in /usr/src/linux/
Sono in possesso di una stampante HP LaserJet 5P che con il kernel 2.0.36 non mi ha mai dato nessun problema. Da quando ho aggiornato il kernel alla versione 2.2.3 (utilizzando i pacchetti rpm della Mandrake 5.3, che è la distribuzione che uso) non ne ha voluto più sapere di funzionare, anzi, mentre prima con il kernel 2.0.36 il printtool mi vedeva tranquillamente le porte parallele, ora mi comunica:
/dev/lp0 :not detected
/dev/lp1: not detected
/dev/lp2: not detected
__________
Inserisci in /etc/conf.modules
le seguenti righe:
alias parport_lowlevel parport_pc options parport_pc io=0x378,0x278 irq=7,auto
Se provo ad inserire il modulo lp, non mi viene riconosciuta la porta parallela... Perché?
__________
Se non viene riconosciuta la porta parallela può dipendere dal fatto che in `/etc/conf.modules' manca la riga riguardante il modulo `parport_pc.o'. Basta aggiungere:
alias parport_lowlevel parport_pc
Se insomma si inserisce il modulo lp (mediante 'insmod lp') potrebbe non esserci la chiamata a lp0, per cui la riga 'modprobe lp' funziona se in /etc/conf.modules
vi sono le dipendenze sopra descritte.
Uso Linux da parecchio tempo e su diverse macchine; su una mi capita sempre, quando provo a compilare il kernel, di riscontrare un errore particolare che penso sia dovuto a qualche problema nell'hardware, anche se non sono in grado di capire dove. Infatti, dopo un tempo casuale dall'inizio del make bzImage, viene visualizzato questo messaggio:
__________
Internal compiler error: program cc1 got fatal signal 11
e la compilazione si arresta. La compilazione dell'ultimo sorgente crea un file .o troncato (poche centinaia di byte) e ovviamente, prima di ripetere l'operazione, devo cancellarlo.
A cosa può essere dovuto? E in più, stranamente (visto che ovviamente ho messo anche una partizione di swap), certe volte capita che la compilazione si arresta col messaggio:
Memory exhausted
È un sintomo di malfunzionamento della RAM. Potrebbe essere difettosa.
Durante l'avvio ottengo il seguente messaggio:
LILO boot: , Loading linux ; No setup signature found.
E si ferma tutto. Cosa succede?
__________
Hai impartito il comando rdev per la nuova immagine del kernel?
#
rdev /vmlinuz /dev/nome_della_partizione
[Invio]
sostituisci /vmlinuz con la posizione esatta nel tuo filesystem dell'immagine del kernel (es. /boot/vmlinuz
, /boot/vmlinuz-2.2.9
, /boot/bzImage
, ecc.)
Come mi devo comportare con i moduli se voglio ricompilare il kernel?
__________
Prima di ricompilare il kernel, cambia nome alla directory /lib/modules/x.y.zz
, oppure cancellala (io lo farei dopo la sicurezza che tutto vada bene).
Quando darai il comando:
#
make modules modules_install
[Invio]
ti verrà ricreata automaticamente.
Come si fa a caricare i moduli del kernel all'avvio? Ad esempio, se dovessi eseguire ipoteticamente:
#
modprobe ip_masq_ftp
[Invio]
all'avvio, cosa si dovrebbe fare (possiedo una Red Hat 6.0)?
__________
Inserisci nel file /etc/rc.d/rc.local
:
/sbin/depmod -a /sbin/modprobe ip_masq_ftp.o
Ho una Red Hat 5.2 con kernel 2.2.5, apparentemente funzionante. Quando mi collego ad Internet, nel file /var/log/messages appaiono questi messaggi:
May 7 20:59:12 localhost modprobe: can't locate module ppp-compress-21
May 7 20:59:12 localhost modprobe: can't locate module ppp-compress-26
May 7 20:59:12 localhost modprobe: can't locate module ppp-compress-24
Mi devo preoccupare?
__________
Si eliminano i seguenti messaggi inserendo le seguenti righe nel file /etc/modules.conf
alias ppp-compress-21 bsd-comp alias ppp-compress-26 ppp_deflate alias ppp-compress-24 ppp_deflate
Come si fa a far convivere due o più Linux?
__________
Ecco una metodica:
Nel lilo.conf
che segue, c'è una sezione per Debian GNU/Linux, una per Red Hat e una per il Dos
In /boot
ho messo tutti i kernel coinvolti, con i rispettivi System.map e in /lib/modules
del primo disco ho copiato la directory dei moduli di Debian GNU/Linux, ovviamente compilati in Debian GNU/Linux.
/etc/lilo.conf
:
boot=/dev/hda3 map=/boot/map install=/boot/boot.b prompt timeout=50 password=********** restricted default=linux image=/boot/vmlinuz-2.2.5-15 label=linux root=/dev/hda2 read-only image=/boot/vmlinuz-2.2.12 label=nuova root=/dev/hda2 read-only image=/boot/vmlinuz.debian label=debian root=/dev/hdc5 read-only other=/dev/hda1 label=dos table=/dev/hda
[giuliano@localhost giuliano]$
ls /lib/modules
[Invio]
total 3 drwxr-xr-x 9 root root 1024 Oct 28 19:32 2.0.36/ drwxr-xr-x 6 root root 1024 Oct 31 18:34 2.2.12/ drwxr-xr-x 11 root root 1024 Oct 27 01:59 2.2.5-15/
[giuliano@localhost giuliano]$
ls /boot
[Invio]
total 3735 -rw-r--r-- 1 root root 145794 Nov 1 13:07 System.map-2.0.36 -rw-r--r-- 1 root root 149820 Oct 31 17:30 System.map-2.2.12 -rw-r--r-- 1 root root 186846 Apr 20 1999 System.map-2.2.5-15 -rw-r--r-- 1 root root 512 Oct 27 01:55 boot.0303 -rw-r--r-- 1 root root 4544 Apr 13 1999 boot.b -rw-r--r-- 1 root root 612 Apr 13 1999 chain.b drwxr-xr-x 2 root root 12288 Oct 27 01:30 lost+found/ -rw------- 1 root root 26624 Nov 1 15:31 map lrwxrwxrwx 1 root root 20 Oct 27 01:38 module-info -> module-info-2.2.5-15 -rw-r--r-- 1 root root 11773 Apr 20 1999 module-info-2.2.5-15 -rw-r--r-- 1 root root 620 Apr 13 1999 os2_d.b -rwxr-xr-x 1 root root 1469449 Apr 20 1999 vmlinux-2.2.5-15* -rw-r--r-- 1 root root 715260 Nov 1 13:08 vmlinuz-2.0.36 -rw-r--r-- 1 root root 454123 Oct 31 17:30 vmlinuz-2.2.12 -rw-r--r-- 1 root root 617431 Apr 20 1999 vmlinuz-2.2.5-15 lrwxrwxrwx 1 root root 14 Nov 1 15:20 vmlinuz.debian -> vmlinuz-2.0.36
Per i vari kernel Red Hat, nel file /etc/rc.d/init.d/syslog
ho sostituito la riga:
daemon klogd
con:
daemon klogd -k /boot/System.map-`uname -r`
per far riconoscere senza problemi ai vari kernel i loro System.map e /lib/modules/versione_che_ti_serve
Come posso trovare un programma tipo l'utilità di deframmentazione dischi di Windows?
__________
Il deframmentatore per Linux esiste ma non usatelo. Se proprio volete, è necessario utilizzare Linux in una modalità particolare per evitare che processi diversi vadano a scrivere sul filesystem mentre lo si deframmenta. Inoltre c'è lo svantaggio che non vi offre alcuna garanzia sul suo corretto funzionamento (il numero di versione parla chiaro). Normalmente la deframmentazione di un filesystem ext2 si stabilizza fra il 4 e 5 per cento, a meno che non ci siano una grande quantità di installazioni.
Per chi non lo sapesse, ext2 è più ottimizzato rispetto alla FAT perché quando si salvano le informazioni, esse si vanno a ricercare zone del disco per spezzare al minimo i file.
Fino ad ora, il solo mezzo che ho usato per deframmentare un disco è:
Creare un nastro di backup, ricreare il file system, ripristinare il nastro.
È un po' macchinoso ma se proprio bisogna deframmentare è il metodo più sicuro.
Che differenze e relazioni ci sono tra i file: /etc/bashrc, /etc/profile, home/.bashrc, home/.bash_profile? , , ,
__________
Il primo contiene gli alias e le funzioni per il sistema mentre il terzo quelle valide per l'utente.
Il secondo contiene le variabili d'ambiente e i programmi di avvio del sistema mentre il quarto quelli dell'utente.
I file /etc/profile
e ~/.bash_profile
contengono le configurazioni per una shell di login, mentre gli altri due per quelle non di login. In pratica i primi file vengono letti ed eseguiti solo per la prima shell che si apre, e non per le successive le quali eseguono ogni volta i bashrc (nota: ricordarsi che ogni volta che viene eseguito uno script, viene aperta una shell non interattiva)
Ho dichiarato alcuni alias nel file /etc/bashrc
ma posso usarli solo se sono root mentre se accedo da utente essi non vengono abilitati. Il problema è relativo al file /etc/bashrc
o ai permessi dell'utente?
__________
Inserisci nel file .bashrc
dell'utente:
if [ -f /etc/bashrc ]; then . /etc/bashrc fi
Quando si modifica un file rc (es .bashrc o .kshrc) nella propria directory, come si fa a rendere attive le modifiche senza riavviare la macchina?
__________
basta fare:
#
source .bashrc
[Invio]
#
source .kshrc
[Invio]
oppure, al massimo, logout e poi di nuovo login.
Mi è capitato in situazioni di emergenza di apportare modifiche al filesystem ma al riavvio del sistema, è come se non avessi mai effettuato nessun cambiamento. Perché?
__________
Questo succede perché non si è scaricata la memoria cache, quindi le modifiche non sono state applicate. Per fare scrivere effettivamente quello che si è fatto occorre digitare:
#
sync
[Invio]
In ogni caso è bene riavviare dando:
#
shutdown -r now
[Invio]
e non premendo il pulsante di reset. Anche in situazioni di emergenza, se si possono fare modifiche al filesystem, si può anche avviare lo spegnimento.
Devo attivare un programma scritto da me in fase di avvio di una macchina Debian GNU/Linux 2.0. Vi chiedo quale possa essere un modo intelligente per farlo. Cioè se devo lanciare uno script, oppure inserire il mio programma in uno script che viene eseguito al boot.
__________
Crea uno script che richiami il tuo programma;
metti il tuo script in /etc/init.d;
crea un link (ln -s) a questo script nella directory /etc/rcX.d dove X è il runlevel. (Può anche essere collegato in più di una directory).
In Debian GNU/Linux non trovo nessun'applicazione in grado di farmi configurare i servizi che devono essere lanciati all'avvio. Come si procede?
__________
Il comando update-rc.d fa al caso tuo. In ogni caso puoi entrare nelle directory /etc/rcx.d/
, dove rcx=rcS,rc0,rc1,...,rc6 e creare nella directory /etc/init.d/
i link agli script con un nome opportuno (leggiti /usr/doc/sysvinit/README.runlevels.gz
).
Durante la procedura di installazione della Red Hat 6.0, ho scelto i servizi che desideravo si attivassero automaticamente ad ogni avvio del sistema. Ora però ho l'esigenza di disattivarne alcuni. Il punto è come fare? Devo riconfigurare il kernel per escluderli oppure devo modificare un particolare file di configurazione?
__________
All'interno di /etc/rc.d/rcX.d/
(con x = il tuo runlevel abituale,normalmente 3) sono presenti dei collegamenti (link) simbolici agli script dei servizi presenti all'interno della directory /etc/rc.d/init.d/
.
Se dai il comando:
#
ls -l
[Invio]
vedrai i link che puntano ai suddetti file. Questi link sono fatti così:
S = start cioè partenza K = kill cioè fine;
xx = numero, ordine di partenza del servizio
Se vuoi eliminare un servizio, basta che elimini il link Sxxnome_servizio.
Se poi ti riservirà basta che rifai il link allo script in /etc/rc.d/init.d
In Red Hat e nelle distribuzioni da essa derivate, nella directory /etc/rc.d/
esistono le directory dei vari livelli di esecuzione (runlevel); esse sono caratterizzate dal nome rcn.d
dove «n» può assumere i seguenti valori:
0 livello di spegnimento; 1 livello monoutente; 2,3 livelli di «lavoro»; 5 livello grafico; 6 livello di riavvio.
Oltre alle suddette directory c'è la directory /etc/rc.d/rc.local
. Queste directory contengono dei collegamenti a script presenti in /etc/rc.d/init.d
. Praticamente se in /etc/rc.d/rc.local
inserisci un collegamento ad uno script presente in /etc/rc.d/init.d
, ad ogni avvio questo verrà eseguito; se ne inserisci un altro in /etc/rc.d/rc3.d
questo verrà eseguito quando il sistema sarà avviato in runlevel 3 e verrà chiuso quando spegnerai, riavvierai o passerai ad un altro livello. Se ad esempio in /etc/rc.d/rc3.d
esistono:
K75netfs -> ../init.d/netfs S10network -> ../init.d/network S50inet -> ../init.d/inet
all'avvio «netfs» non verrà eseguito (perché la «K» nel nome del collegamento ne nega l'esecuzione), mentre «network» e «inet» saranno eseguiti seguendo l'ordine indicato dal numero dopo la «S».
Se modifico alcuni file di configurazione di alcuni demoni, come posso rendere effettive tali modifiche senza dover riavviare la macchina?
__________
Devi far ripartire i demoni appropriati per fargli rileggere i file che hai modificato.
Se individui il pid del comando attraverso ps:
#
ps -aux | grep nome comando
[Invio]
puoi utilizzare il comando:
#
kill -HUP numero_di_pid
[Invio]
per arrestare il demone del processo e per farlo ripartire, facendogli in questo modo leggere il file di configurazione modificato.
Per riavviare, di solito si può anche mandare il sengale 1 al processo con:
#
kill -1 pid-del-processo
[Invio]
In Apache ad esempio basta uccidere il primo dei processi attivi (definito root) per far ripartire con le nuove impostazioni anche i processi figli.
Un modo ancora più pulito è andare nella directory /etc/init.d
o /etc/rc.d/init.d
e fare ripartire il demone usando lo script di inizializzazione, ad esempio
#
./apache restart
[Invio]
Vorrei chiedere come si cambia il nome della mia macchina (da localhost a pinguino per esempio). Ci avevo già provato qualche tempo fa, col pessimo risultato che sendmail presentava lunghi rallentamenti all'avvio di Linux
__________
cambia nel file /etc/hosts
la riga:
127.0.0.1 localhost localhost.localdomain
in (ad esempio):
127.0.0.1 pinguino pinguino.my.home
aggiorna di conseguenza la voce 'HOSTNAME=' del file /etc/sysconfig/network
comando:
#
hostname pinguino
[Invio]
Come imposto l'orologio di sistema?
__________
Con:
#
hwclock
[Invio]
(timeconfig in una distribuzione Red Hat)
Ci sono delle utility scaricabili da Internet per aggiornare l'orologio?
__________
se uccidi xntpd e dai il comando:
#
ntpdate www.clock.org
[Invio]
ti trovi l'orologio di sistema aggiornato tramite un server collegato ad un orologio atomico.
Ecco un altro metodo simile:
#
rdate -sp tempo.cstv.to.cnr.it ; hwclock --systohc &
[Invio]
Esiste un sistema per cambio automatico dell'ora legale su Linux?
__________
Funziona automaticamente se hai impostato l'orario del CMOS a GMT.
Visualizzare il calendario del mese corrente:
$
cal
[Invio]
Visualizzare il calendario dell'anno corrente:
$
cal -y
[Invio]
Visualizzare il calendario del 2002:
$
cal 2002
[Invio]
Visualizzare solo il mese di Febbraio 2000:
$
cal 2 2000
[Invio]
Vorrei che all'inizio, quando parte il sistema, il tasto numlock sia abilitato. Che modifiche devo effettuare?
__________
Se da BIOS non è possibile, nella Red Hat modifica
/etc/rc.d/rc.sysinit
e inserisci queste linee:
for t in 1 2 3 4 5 6 do /usr/bin/setleds -D +num < /dev/tty$t > /dev/null done
Nella Debian GNU/Linux crea in /etc/rc.boot
uno script con le stesse righe, e nella slackware mettile nel file rc.keymap
Si può cancellare brutalmente il contenuto di /tmp?
__________
Per evitare interferenze con eventuali programmi che stanno usando file dislocati in quella directory, nel caso che tu non sappia se e quali file sono, può essere una buona pratica farlo ad ogni boot della macchina: puoi inserire in uno dei file di avvio (di quelli dedicati a operazioni varie) una riga del genere:
cd /tmp; rm -rf *
Alcune distribuzioni lo fanno di regola.
Se invece sei certo che quanto vuoi cancellare di /tmp
in una dato momento non sia essenziale per l'integrità del sistema, allora cancellalo.
Se lo vuoi fare per bene tenendo in considerazione tutto (il fatto che uno ci possa aver montato un fs su /tmp
, ecc.) fai così: (tratto da /etc/init.d/bootmisc.sh
[Debian GNU/Linux 2.1])
( cd /tmp && \ find . -xdev \ ! -name . \ ! \( -name lost+found -uid 0 \) \ ! \( -name quota.user -uid 0 \) \ ! \( -name quota.group -uid 0 \) \ -depth -exec rm -rf -- {} \; ) rm -f /tmp/.X*-lock
Come vedo quanto spazio disponibile ho sul disco rigido?
__________
Utilizza:
#
df
[Invio]
che ti dà la percentuale di occupazione di ciascun filesystem montato, con i blocchi liberi. Con l'opzione -h ti dà lo spazio in Mb.
Come visualizzo le variabili d'ambiente?
__________
Occorre digitare:
#
printenv
[Invio]
Sto installando un compilatore e il programma di configurazione mi chiede di impostare determinate variabli di ambiente con il comando setenv. Ma la shell mi risponde: command not found.
__________
Il comando setenv fa parte della csh, se non usi questa shell ma usi la bash, utilizza export:
#
$ export VARIABILE=valore
[Invio]
Qualche esempio:
#
export HOSTNAME="`cat /etc/HOSTNAME`"
[Invio]
#
export MOZILLA_HOME=/usr/lib/netscape
[Invio]
#
export MAILDIR=/var/spool/mail
[Invio]
#
export TERM=linux
[Invio]
#
export PS1='\n\u@\h:[`pwd`] [\t] --> \!\n* '
[Invio]
Come faccio a visualizzare che librerie usa un determinato programma?
#
ldd programma
[Invio]
Cosa faccio se un programma vuole le librerie libjpeg 61 (KDE-1.2) e gli altri della mia distribuzione vogliono le 62?
__________
Se ho ben capito il programma vuole una versione più vecchia. Accontentalo.
Vai in /usr/lib
e fai un collegamento simbolico con il comando:
#
ln -s libjpeg.so.62 libjpeg.so.61
[Invio]
così quando cercherà la libreria vecchia troverà quella nuova e sarà lo stesso. In genere questo trucchetto funziona...
C'è un modo per non scrivere sempre un comando molto lungo?
__________
Si crea un alias. Es.:
#
alias ls='ls -la --color'
[Invio]
basterà scrivere ls per avere un elenco dettagliato di tutti i file (anche quelli nascosti) e l'elenco sarà colorato. Gli alias vanno inseriti in ~/.bash_profile
se sono specifici di un utente, o in /etc/profile
se sono per tutto il sistema.
È da tenere presente anche la possibilità di completare il nome dei comandi e dei file con il tasto [Tab].
Mi chiedevo se anche con Linux potevo fare arrestare il sistema con il metodo di ibernazione. Con Windows 98 e 2000 ci riesco benissimo ma su Linux non ho mai visto tale prospettiva di spegnimento.
__________
Installa l'APM nel kernel e poi con:
#
apm --suspend
[Invio]
mandi in sospensione la macchina.
Dove trovo un elenco di tutte le caratteristiche degli utenti?
__________
Queste informazioni sono raccolte in:
/etc/passwd
ma se si usano le shadow password, ricordarsi anche di controllare i file:
/etc/shadow
/etc/gshadow
Quale è l'elenco dei gruppi di utenti?
__________
L'elenco è contenuto nel file:
/etc/group
in ogni caso ricordarsi anche dei file:
/etc/shadow
/etc/gshadow
se si usano le shadow password.
Come posso eliminare un account?
__________
Con la riga di comando:
#
userdel userid
[Invio]
tenendo presente che alcune distribuzioni usano deluser al posto di userdel.
In ogni caso elimina i suoi dati da /etc/passwd
e da /etc/group
e poi elimini la /home/utente
#
rm -rf /home/utente
[Invio]
Chi può suggerirmi come cancellare, con un unico comando, i file appartenenti ad un proprietario?
#
find percorso_iniziale -user uid -exec rm {} \;
[Invio]
o con:
#
find / -uid `id -u PROPRIETARIO` | xargs rm -f
[Invio]
dove uid è il valore numerico dell'utente del quale vuoi cancellare i file (da rilevare in /etc/passwd
).
Per evitare di commettere errori che potrebbero risultare spiacevoli è meglio controllare cosa questo comando andrà a cancellare con:
#
find percorso_iniziale -user uid
[Invio]
Come posso diventare temporaneamente un altro utente?
__________
Con il comando:
#
su nome-utente
[Invio]
Per ritornare alla console, digitare:
#
exit
[Invio]
__________
Con:
#
passwd
[Invio]
Come cambio la password di un utente?
__________
#
passwd utente
[Invio]
ma devo essere l'amministratore del sistema (root)
__________
È un modo di gestire le password degli utenti. Invece che, come succede normalmente, avere le password nel file /etc/passwd
(che è leggibile da tutti, anche se le password sono criptate), con le shadow password queste vengono tenute nel file /etc/shadow
, che è leggibile solo da root.
Come si avvia Linux in modalità singola (nessun login e nessuna password?)?
__________
Al prompt del LILO, digita:
#
linux single
[Invio]
oppure, sempre al prompt di LILO:
lilo:
linux init 3
[Invio]
Questo vale per Red Hat.
Per quanto riguarda le altre distribuzioni è probabile che in /etc/inittab
ci sia una riga del tipo:
--:S:wait:/sbin/sulogin ?
prova a sostituirla con su root e vedi che ti troverai direttamente in shell.
Volevo chiedere se esiste un metodo per eliminare la richiesta della password all'avvio di Linux
__________
nel file che contiene le pw basta che elimini la pw (che compare crittata)
Per esempio:
root:Wteoh1TDSxhyA:0:0:root:/root:/bin/bash studente::100:100:,,,:/home/studente:/bin/bash
Se il file è come sopra, per l'utente root è richiesta la pw, mentre per l'utente studente no.
Dato che il mio computer a casa lo uso solo io, vorrei che all'avvio non mi venissero chiesti nessun login e nessuna password. C'è un modo semplice di fare questo?
__________
Certo che c'è, il modo semplice. Però, essendo le modifiche un po' critiche (ti consiglio di farti prima un dischetto di avvio), è necessaria qualche spiegazione.
Come già detto, è necessario spiegare alcune cose:
/etc/inittab
contiene le azioni che /sbin/init
deve compiere dopo l'avvio del kernel. Dopo tutte le azioni, viene lanciato il mingetty per effettuare il login ed abilitare i terminali virtuali. La scritta respawn (vedi contenuto /etc/inittab
) significa che il processo indicato deve ripartire una volta che è terminato. Ecco perché, scrivendo exit dalla shell in modalità testo, si ritorna al prompt del login.
bash, usato in modalità login (/bin/bash -login), cerca il file /etc/profile
e, se esiste, lo elabora. Poi cerca il file $HOME/.bash_profile
(per root "$HOME=/root"). Se non esiste, allora cerca $HOME/.bash_login
. Se non esiste neanche questo, allora prova con $HOME/.profile
.
La variabile d'ambiente HOME viene modificata a seguito del normale processo di login. Questo perché, insieme alle informazioni relative ad utente e password, sono memorizzati anche directory casa ed interprete dei comandi (shell) di partenza. Il normale processo di login quindi, quando effettua la verifica sulla password e sull'utente, avvia anche l'interprete dei comandi adatto, impostando poi la corretta variabile d'ambiente HOME. Di conseguenza, saltando il processo di login, la HOME rimane impostata a«/», e non alla directory dell'utente che accede.
Spiegati questi 3 punti, ecco come procedere:
Modifica il file /etc/profile
inserendo le righe seguenti (o comunque facendo in modo che quanto indicato venga eseguito):
HOME="/root" export HOME
Questo ti permetterà di mantenere le configurazioni salvate nella home directory (come le impostazioni del gestore delle finestre).
Modifica il file /etc/inittab
. Cioè, individua le seguenti linee (generalmente sono le ultime):
# Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 # Run xdm in runlevel 5 # xdm is now a separate service x:5:respawn:/etc/X11/prefdm -nodaemon
e sostituiscile con queste (ottenute commentando tutte le righe sopra ed aggiungendone due):
#Avvio senza login 1:12345:wait:/bin/bash -login # Run gettys in standard runlevels #1:2345:respawn:/sbin/mingetty tty1 #2:2345:respawn:/sbin/mingetty tty2 #3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6 # Run xdm in runlevel 5 # xdm is now a separate service #x:5:respawn:/etc/X11/prefdm -nodaemon
L'opzione wait significa che si aspetta la fine del processo, senza farlo ripartire: si avrà un comportamento un po' diverso da quello normale. Infatti, digitando exit, (sempre in modalità testo), l'interprete dei comandi si chiuderà e sarà necessario avviare lo spegnimento.
(opzionale) Metti alla fine di $HOME/.bash_profile
la riga
cd $HOME
Attenzione, non sarà più possibile passare da un terminale virtuale all'altro [ALT+Fx], in quanto non esistono (non sono stati inizializzati).
Se ho dimenticato la password di root che devo fare?
__________
All'avvio digita:
LILO:
linux single
[Invio]
poi, dopo essere entrato, cerca il file /etc/passwd
o l'equivalente se usi le shadow password (/etc/shadow
).
Al suo interno troverai tutti i dati relativi agli utenti, con le password criptate. Cancella semplicemente il campo con la password di root (rimarranno due caratteri ':' adiacenti). A questo punto potrai entrare come root lasciando in bianco la password. Provvedi poi a assegnare una nuova password di root.
Questo vale per Red Hat.
Per quanto riguarda le altre distribuzioni è probabile che in inittab ci sia una riga del tipo:
--:S:wait:/sbin/sulogin ?
prova a sostituirla con su root e ti troverai direttamente in shell.
Nella directory /etc
mi ritrovo un file chiamato .pwd.lock
. È vuoto, posso cancellarlo senza problemi? A che serve?
__________
Sì, lo puoi cancellare. Se è presente non puoi accedere in scrittura al file /etc/passwd
.
Come visualizzo i nomi di chi è connesso attualmente al sistema?
__________
Con:
#
w
[Invio]
o:
#
who
[Invio]
Come cambio il proprietario ed il gruppo di un file?
__________
La sintassi è:
#
chown nuovopropietario.nuovogruppo file
[Invio]
Se vuoi cambiare solo il proprietario o solo il gruppo è sufficiente non indicare l'altro:
#
chown nuovoproprietario file
[Invio]
o:
#
chown .nuovogruppo file
[Invio]
(attenzione al ., se non lo mettete il nuovo gruppo viene interpretato come un nuovo utente).
Come abilito il permesso di esecuzione di un file?
__________
Con i seguenti comandi:
$
chmod a+x file
[Invio]
(il permesso di esecuzione è abilitato a tutti)
$
chmod u+x file
[Invio]
(il permesso di esecuzione è abilitato al proprietario del file)
$
chmod g+x file
[Invio]
(il permesso di esecuzione è abilitato al gruppo proprietario del file)
$
chmod o+x file
[Invio]
(il permesso di esecuzione è abilitato agli altri utenti)
Potete anche combinare le cose:
$
chmod ug+x file
[Invio]
ad esempio aggiunge il permesso sia all'utente che al gruppo.
Come abilito il permesso di lettura di un file?
__________
Stesse regole del permeso di esecuzione (11.1), basta sostituire x con r.
Come abilito il permesso di scrittura di un file?
__________
Stesse regole del permeso di esecuzione (11.1), basta sostituire x con w.
Come cambio i permessi di una directory?
Per cambiare i permessi delle directory si seguono le stesse regole seguite per i file (11.1).
Cosa significa il permesso di esecuzione per una directory?
__________
Se manca, non è possibile accedere al suo contenuto.
Vorrei sapere come si fa per fare in modo che l'utente che ho creato, possa montare i dischi locali, ma non scriverci sopra. Ad esempio, io ho due unità, hda1 e hda2 con filesystem vfat, e vorrei che il mio utente, possa montarli per leggere quello che c'è, ma che non possa scrivere o modificare nulla.
__________
Devi utilizzare umask.
Per dare il permesso in lettura e in scrittura a tutti su hda1 si inserisce questa riga in /etc/fstab
:
/dev/hda1 /mnt/hardc vfat quiet,users,umask=000 0 0
I tre numeri dopo umask sono i parametri che impostano i permessi rispettivamente del proprietario del file, del gruppo cui appartiene il file, e di tutti gli altri; indicano quali permessi vengono tolti. Nell'esempio non viene tolto nessun permesso a nessuno.
Se volessi lasciare la scrittura al solo proprietario:
umask=022
Se volessi lasciare scrittura e lettura al solo proprietario:
umask=066
Se vogliamo che i nostri file assumano permessi predefiniti dobbiamo utilizzare il comando umask. In genere questo comando viene posizionato in file quali .profile
o .bash_profile
. Il valore per umask viene calcolato sottraendo i permessi che volete dal valore massimo. Si assume che i file siano non eseguibili per cui il loro valore massimo sarà 666. Se quindi desiderate che i file assumano permessi 664 il valore di umask da utilizzare sarà quindi 002. Questo valore fornirà alle directory i permessi 775.
Come copio, sposto o cancello i file?
__________
Copiare: cp origine destinazione. Es.:
#
cp /root/dog.gif /home/pino/
[Invio]
#
cp -i origine destinazione
[Invio]
(chiede conferma prima di sovrascrivere)
Spostare: mv origine destinazione. Es.:
#
mv /root/dog.gif /home/pino/
[Invio]
Cancellare: rm file
#
rm -i *.html
[Invio]
(chiede conferma per ogni file che deve essere cancellato)
Cancellare una directory con tutto il suo contenuto:
#
rm -rf directory
[Invio]
Nota. Se nella copia dei file si vogliono copiare i collegamenti simbolici e mantenerli come tali si deve utilizzare l'opzione -d. Se questo è richiesto durante la copia di directory con sottodirectory, l'opzione -r diventerà -R.
Dalla directory radice (/) ho digitato:
#
ls -R *.html
[Invio]
ottenendo come risultato un bel niente, invece speravo che il comando equivalesse a quello Dos:
C:\>
dir *.html /s
[Invio]
Come faccio a trovare nel mio sistema tutti i file con estensione html?
__________
Con uno dei seguenti comandi:
#
find / -name "*.html"
[Invio]
#
find / -print | grep -i "html$" > ./all_html.txt
[Invio]
Sapete come evitare che un file sia cancellabile da parte dell'utente root?
__________
Non credo che un semplice utente possa evitare la cancellazione dei suoi file da parte dell'utente root. Però dipende da cosa intendi fare. Per esempio, se un file è stato impostato da root con:
#
chattr +i nome_file
[Invio]
esso non potrà venire rinominato, cancellato, modificato da nessuno, utente root compreso, almeno non prima che l'attributo i venga tolto.
Come faccio a copiare una directory (e il suo contenuto) per intero?
__________
Il comando che cerchi è:
#
cp -av origine (/usr) destinazione (/home/dove_vuoi_tu)
[Invio]
Se si aggiunge anche l'opzione «-x» (--one-file-system) verranno escluse dalla copia le sottodirectory che risiedono su filesystem diversi da quello da cui si è iniziata la copia.
Esistono funzioni di undelete in Linux?
Alcune delle tecniche che puoi usare per effettuare il recupero dei file cancellati su filesystem ext2 sono descritte nel Linux Ext2fs Undeletion mini-HOWTO (<http://www.praeclarus.demon.co.uk/tech/e2-undel/>)
In questo HOWTO si parla di una caratteristica apposita del Midnight Commander (mc), che sembra ideale per utenti alle prime armi ma nulla di più. Tieni presente che la cancellazione, nei filesystem ad inode (quasi tutti quelli Unix, più HPFS e NTFS) è un provvedimento molto più drastico che non sotto Dos (che si limita a sostituire il primo carattere del nome del file con «?»). Mc credo che sostituisca il comando 'rm' con un finto 'rm' che sposta il file su una directory di file cancellati da cui eventualmente 'unrm' effettua i recuperi.
In che posizione del filesystem mi trovo?
__________
Puoi dare il comando:
$
pwd
[Invio]
Come faccio a visualizzare il contenuto di un file?
__________
Con uno dei seguenti comandi:
$
cat file
[Invio]
$
more file
[Invio]
(una schermata alla volta)
$
less file
[Invio]
(una schermata alla volta, si può tornare 'indietro' nella visualizzazione del file, per uscire quando si è arrivati alla fine, si preme il tasto 'q')
Tutti questi comandi valgono solo per file di testo.
C'è un comando per visualizzare solo una riga di un file?
__________
Se intendi visualizzare la n-sima riga del file pippo fai:
$
cat pippo | head -n | tail -1
[Invio]
In quanti modi posso visualizzare il contenuto di una directory?
__________
Ecco i vari modi:
$
ls
[Invio]
$
ls -la
[Invio]
per vedere tutti i file compresi quelli nascosti e i relativi permessi;
$
ls -la |more
[Invio]
per vedere il contenuto della directory una schermata alla volta;
$
ls -la > testo
[Invio]
per creare un file chiamato testo contenente l'elenco del contenuto della directory attuale.
Per aggiungere il contenuto di un'altra directory al file:
$
ls -la >> testo
[Invio]
$
ls |sort |more (o less)
[Invio]
visualizza in ordine il contenuto della directory corrente una schermata alla volta;
$
ls --color
[Invio]
per visualizzare con colori uguali, tipi di file uguali: directory, eseguibili, ecc.
Come si ottengono i colori che distinguono i diversi tipi di file quando si esegue il comando ls?
__________
Nel ~/.bash_profile
ho messo:
alias ls='ls -lF --color=always'
Come mantenere il colore di ls in ambiente grafico xterm? Devo ridare il comando:
alias ls='ls --color'
se voglio avere i colori che ho sulla console testuale.
__________
Utilizza:
#
xterm -ls
[Invio]
Vorrei che ls * mi visualizzasse tutti i file con il percorso relativo alla directory in cui mi trovo.
__________
Usa:
$
find .
[Invio]
Vorrei visualizzare il contenuto di tutti i file di una directory. Come si fa?
__________
Con:
$
cat /nome_dir/* | less
[Invio]
o:
$
less /nome_dir/*
[Invio]
Se volessi vedere il contenuto dei file rp_filter contenuti nelle varie directory /proc/sys/net/conf/*
con un solo comando, come posso fare?
__________
Eccoti tre metodi:
#
cat `find /proc/sys/net/conf -name rp_filter -print`
[Invio]
#
for i in `find /proc/sys/net/conf -name rp_filter -print` ; do echo $i; cat $i; done
[Invio]
#
find /proc/sys/net/conf -name rp_filter -exec "echo '{}' && cat '{}'" ;
[Invio]
Qualcuno saprebbe dirmi come fare per vedere le voci colorate col comando in oggetto? Se metto '|more', tutto funziona, ma se uso '|less', che è più pratico, compaiono invece questi codici:
ESC[01;34mat-3.1.7ESC[0m/
ESC[01;34maudiofile-0.1.6ESC[0m/
ESC[01;34maumix-1.18.2ESC[0m/
ESC[01;34mawesfx-0.4.3aESC[0m/
__________
less protegge di norma il terminale evitando di mandare sequenze di caratteri che potrebbero «sporcarlo». Ovviamente questo è sconveniente a volte, quindi c'è l'opzione -r
Puoi ottenere ciò che dici infatti con il comando:
#
ls -alF --color=always |less -r
[Invio]
chiaramente in questi casi si fa un alias.
Come creo un file all'istante?
__________
#
touch file
[Invio]
(lo crea e basta)
#
cat > file
[Invio]
(lo crea e ci scrive tutto quello che voglio fino a quando non premo ctrl+d)
Esiste un comando che permetta di concatenare più file di testo, fra di loro?
__________
O così:
$
cat file1.txt > ris.txt
[Invio]
$
cat file2.txt >> ris.txt
[Invio]
$
cat file3.txt >> ris.txt
[Invio]
o, più facilmente:
$
cat file1.txt file2.txt file3.txt > ris.txt
[Invio]
Come faccio a sapere di che tipo è un file?
__________
Con il comando:
$
file nome_file
[Invio]
Se ho un elenco in un file, come faccio a metterlo in ordine alfabetico?
__________
Con il comando:
$
sort < file.txt > fileinordine.txt
[Invio]
Come si crea e come si cancella una directory?
__________
Creare:
$
mkdir nome
[Invio]
Cancellare:
$
rmdir nome
[Invio]
(la directory deve essere vuota)
$
rm -rf /prova
[Invio]
(elimina la directory prova e tutte le sue eventuali discendenti) [Attenzione: è un comando cui bisogna prestare attenzione].
Qualcuno (leggasi intrusione) ha cambiato un file di sistema con uno modificato; ora lo voglio sostituire con il file corretto, ma non riesco a cancellarlo:
cp: overwrite `/bin/login', overriding mode 4755? y cp: cannot create regular file `/bin/login': Permission denied [...] rm -rf /bin/login rm: /bin/login: Operation not permitted
__________
Vedi gli attributi estesi:
#
lsattr
[Invio]
per cambiarli:
#
chattr
[Invio]
Forse hanno impostato il file come immutabile (una 'i' negli attributi estesi).
Per la documentazione sui due comandi naturalmente:
#
man lsattr
[Invio]
#
man chattr
[Invio]
Come mi muovo tra le directory del filesystem?
__________
$
cd nome
[Invio]
(per entrare in una directory figlia di quella attuale)
$
cd /nome/nome2/
[Invio]
(per entrare nella directory di secondo livello 'nome2' figlia di 'nome')
$
cd ..
[Invio]
(per tornare alla directory di livello superiore a quello attuale)
$
cd ~
[Invio]
(per tornare alla directory home)
$
cd ../conti
[Invio]
(per spostarmi alla directory conti, sorella della directory in cui mi trovo)
$
cd -
[Invio]
(per tornare nell'ultima directory in cui sono stato)
Qualcuno mi spiega i vari tipi di link e che differenze ci sono?
__________
Un link soft è praticamente un nome diverso che tu dai allo stesso file. Non occupa spazio su disco (se non per un inode). Un link hard è praticamente una copia fisica del file con il più il fatto che ogni cambiamento che fai all'originale (o alla copia) verrà fatta anche sulla copia (o sull'originale).
Se hai un link soft e cancelli l'originale, il file viene perso; se il link è hard resterà il link (ed il contenuto viene mantenuto).
__________
#
ln -s /home/mario/resoconto.txt /root/resocontomario
[Invio]
dove /home/mario/resoconto.txt è il file che già esiste, e /root/resocontomario è il link.
Come posso trovare un file in tutto il mio filesystem?
__________
Con il comando:
#
find / -name nomefile -print
[Invio]
Oppure, usando locate:
#
locate nomefile
[Invio]
Locate è più veloce di find, ma per usarlo bisogna prima aggiornare il suo archivio (da root) con:
#
updatedb
[Invio]
Come posso sapere se c'è un determinato file nella directory /var e nelle sue discendenti?
Con:
#
find /var -name nomefile -print
[Invio]
Come faccio a cercare tutti i file di un certo tipo (*.png) e a copiarli in una directory? (/home/pippo/pngfile/)
__________
#
find / -name "*.png" -exec cp -p {} /home/pippo/pngfile \;
[Invio]
Come posso sapere tutti i file che contengono la stringa «resoconti»?
__________
$
grep resoconti *
[Invio]
oppure
$
find nome_percorso -print -exec grep stringa {} \;
[Invio]
il comando restituisce tutti i file trovati nel percorso più le stringhe trovate.
Dovrei cercare un certo termine all'interno di alcuni file. Come effettuare la ricerca in tutti i file presenti in tutte le directory?
__________
$
rgrep -r altre_opzioni stringa_da_cercare directory_di_partenza
[Invio]
oppure:
$
find directory_di_partenza -type f -exec grep -l altre_opzioni {} \;
[Invio]
Come trovo tutti i file che iniziano per 'conf'?
__________
Con:
#
find / -name conf\*
[Invio]
Qualche volta ho la necessità di portare sul mio elaboratore di casa che ha Linux dei file di grosse dimensioni che scarico all'università. Fino a questo momento ho utilizzato WinZip per spezzare i file e ricostruirli a casa. Poi, da Linux, montavo la partizione Windows e copiavo i file sul filesystem di Linux. In verità questo è l'unico motivo per cui ho ancora Windows. Considerato che all'università, oltre alle macchine con Windows, ci sono alcune Sun con Solaris, mi sapreste suggerire una procedura per spezzare i file di grosse dimensioni su dischetti per ricostruirli poi a casa sotto Linux?
__________
Usa split:
$
split -b 1400k nome_file
[Invio]
ti separa nome_file in file di 1400k chiamati di default xaa, xab, ecc. C'è anche su Sun Solaris.
Una volta copiati nella macchina Linux di casa, usi:
$
cat xaa xab ... > nome_file
[Invio]
oppure direttamente:
$
cat x* > nome_file
[Invio]
In alternativa puoi usare il comando tar con l'opzione M, scrivendo direttamente su /dev/fd0
.
Un inconveniente: il tar scrive direttamente sul disco senza badare al filesystem, per riutilizzare il dischetto lo devi riformattare (l'mformat è ottimo in questo caso)
Es.:
$
tar cvfM /dev/fd0 pippo
[Invio]
Per estrarre ovviamente:
$
tar xvfM /dev/fd0
[Invio]
Come si utilizzano le variabili nella shell bash?
__________
In genere si utilizzano nomi di variabili con caratteri maiuscoli e si dichiarano da riga di comando nel seguente modo:
NOMEVARIABILE=valore
e l'utilizzo della variabile si effettua con il simbolo $ davanti il nome della variabile:
RICOMP_KERNEL=/usr/src/linux cd $RICOMP_KERNEL
Come si visualizzano tutte le variabili d'ambiente del sistema?
il comando è:
#
set
[Invio]
Per vedere il contenuto di una variabile si utilizza il comando:
#
echo $NOME_VARIABILE
[Invio]
e per svuotarne il contenuto si usa:
#
unset NOME_VARIABILE
[Invio]
Ad ogni riavvio della shell o ad ogni cambio shell, le variabili si riazzerano. Per rendere disponibile una variabile anche all'esterno, si usa il comando:
#
export NOME_VARIABILE
[Invio]
Come si personalizza l'aspetto del prompt con la shell bash?
__________
Il prompt si personalizza assegnando formattatori particolari alla variabile PS1:
#
PS1="\w\$>"
[Invio]
Ecco i formattatori:
\d data; \h nome macchina; \n a capo; \s nome della shell; \t ora; \u nome utente; \w directory corrente; \W il nome di base della directory corrente; \# il numero del comando corrente; \$ emette # se l'utente è root altrimenti $; \! il numero nello storico del comando corrente; \\ backslash; \[ inizia una sequenza di caratteri non stampabili; \] chiude la sequenza.
Quali sono le variabili di sistema più comuni?
HOME directory home; HOSTTYPE tipo di macchina; PS1 prompt primario; PWD directory corrente; UID numero identificativo utente; $ PID della shell; ! PID dell'ultimo processo in background.
Che prompt mi consigliate di usare? Ne avete uno utile e pratico?
__________
Metti nel tuo file /home/.profile
(o /home/.bash_profile
) la seguente riga: (a scopo pratico la riga degli esempi di prompt, sono state suddivise in 3; ricordate di ricomporle su una stessa riga una di seguito l'altra)
export PS1='\[\033[1;34m\]\n\u@\h \[\033[1;33m\]---\[\033[1;34m\ ][`pwd`] \[\033[1;33m\]---\[\033[1;34m\] [\t]\[\033[1;33m\]--- \ [\033[1;31m\]\!\n\[\033[1;31m\]*\[\033[0;37m\] '
export PS1="\[\033[1;31m\][\u@\h]\[\033[1;35m\]:\ [\033[1;33m\][\d]\[\033[1;35m\]:\[\033[1;36m\][\t] \[\033[1;35m\]:\[\033[1;32m\][\w]\[\033[1;35m\]:\n\[\033[0;34m\] -\[\033[1;34m\]-\[\033[1;31m\]>\033[1C\[\033[0m\]"
export PS1="\[\033[0;44m\]\u@\h \[\033[1;45m\]\w\[\033[0;39m\]# "
export PS1="\[\033[1;34m\]\n\u@\h \[\033[1;33m\]--- \[ \033[1;34m\]\w\[\033[1;33m\]---\[\033[1;34m\] [\t] \[\033[1;33m\]--- \[\033[1;31m\]\!\n\[\033[1;31m\]$\[\033[0;39m\] "
YLOBRN='\[\033[01;33;43m\]' WHTBRN='\[\033[01;37;43m\]' REDBRN='\[\033[00;31;43m\]' REDBLK='\[\033[00;31;40m\]' PPLBLK='\[\033[01;35;40m\]' WHTBLK='\[\033[01;37;40m\]' NONE='\[\033[00m\]' HBLK='\[\033[00;30;30m\]' HBLU='\[\033[01;34;34m\]' BLU='\[\033[00;34;34m\]' YEL='\[\033[00;33;33m\]' WHT='\[\033[01;37;37m\]' PRPL='\[\033[00;34;35m\]' RED='\[\033[01;31;31m\]' NORM='\[\033[01;00;0m\]' CYAN='\[\033[00;31;36m\]' case "$TERM" in xterm | xterm-color | xterm-debian | rxvt) # nei terminali grafici (xterm) imposta anche il titolo della finestra e dell'icona PS1="\[\033]1;\u: \w\007\033]2;\u: \w\007\033[01;37m\]$NORM\u@\h: $WHT\w $HBLU<\t>$NORM\n$CYAN"'\$'"$NORM " ;; linux) # in console PS1="$NORM\u@\h: $WHT\w $HBLU<\t>$NORM\n$CYAN"'\$'"$NORM " ;; *) # altrimenti un prompt semplice PS1='\u@\h: \w \$ ' ;; esac export PS1
Come posso disabilitare una console virtuale?
__________
Apri il file /etc/inittab
, ci sono delle righe come queste:
1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6
corrispondenti alle sei console virtuali. Commenta (apponendo # all'inizio della riga) quelle che non ti interessano.
Gli apici retroversi (`), a cosa servono esattamente?
__________
Esattamente la shell effettua un'espansione, eseguendo il comando all'interno degli apici inversi e catturandone lo standard output. Quest'ultimo verrà poi opportunamente sostituito.
Lo stesso risultato si può ottenere utilizzando le due forme:
`nome_comando` e $(nome_comando)
Alcuni esempi:
#
ls -l `which man`
[Invio]
espansione: il comando which man ha come standard output /usr/bin/man
, la shell eseguirà quindi ls -l /usr/bin/man
#
BLA= `cat /etc/inetd.conf`
[Invio]
#
echo $BLA
[Invio]
nella variabile BLA viene registrato tutto l'output del comando cat /etc/inetd.conf, infatti con echo $BLA possiamo rivedere tutto il contenuto del file.
#
kill -1 `pidof inetd`
[Invio]
il comando pidof inetd restituisce in standard output l'attuale pid di inetd, quindi la shell eseguirà kill -1 63, per esempio.
Come si utilizza lo storico dei comandi?
__________
si da il comando:
#
history
[Invio]
e viene visualizzata una lista di comandi eseguiti con il numero corrispondente. Per eseguire uno di questi comandi si utilizza il punto esclamativo (!)davanti al numero del comando da rieseguire:
#
!267
[Invio]
Per richiamare dallo storico tutti i comandi che iniziano con una stringa si utilizza:
#
!stringa
[Invio]
Da quando ho installato Linux la prima console virtuale (quella che si attiva premendo Alt+F1) si riempie di messaggi che finiscono su /dev/console
, lasciando comunque la possibilità di fare login.
Come posso mandare questi messaggi su un'altra console virtuale?
__________
Basta aggiungere nel file /etc/lilo.conf
la riga:
append="console=tty6"
nella sezione image.
Esempio:
image=/boot/vmlinuz-2.0.36-1 label=linux root=/dev/hda2 append="console=tty6" read-only
Poi devi dare il comando:
#
/sbin/lilo
[Invio]
per rendere effettive le modifiche.
Come si fa a cambiare la modalità grafica della console? (adesso ho 80x25 ma vorrei aumentare il numero delle righe)
__________
se usi LILO come gestore degli avvii, puoi usare la direttiva 'vga' con vga=extended e avrai 80x50
(altri valori sono 'normal','ask','number')
Altrimenti puoi usare vidmode (rdev) per impostare la modalità video.
Quella predefinita è impostata attraverso la variabile SVGA_MODE nel Makefile del kernel.
Quando da utente root provo a passare ad un utente con il comando 'su utente', mi viene restituito il seguente messaggio:
#
su pinco
[Invio]
shell-init: could not get current directory: getcwd: cannot access parent directories
__________
Se esegui:
$
su - nome_utente
[Invio]
carichi anche l'ambiente dell'utente.
Dalla console, se lancio l'utilità setup i riquadri di contorno delle finestre appaiono con a accentate e altri caratteri non congrui.
__________
Prova a scrivere, sempre da console:
#
export TERM=vt100
[Invio]
Come visualizzo i file di log degli accessi al sistema?
__________
Con:
#
last
[Invio]
e se voglio solo gli ultimi n elementi posso usare:
#
last -m
[Invio]
Chi si occupa in Linux della gestione degli eventi del sistema?
__________
È il demone syslogd configurato dal file /etc/syslogd.conf
che gestisce la registrazione degli eventi importanti. Questi saranno registrati nei file indicati in /etc/syslog.conf
.
Avrei bisogno di controllare i file di log. Come si fa?
__________
Principalmente il meccanismo usato dalla gran parte dei sistemi Unix per registrare le attività del sistema è syslog, anche se alcune macchine Unix hanno dei demoni appositi per fare 'auditing' che creano file di log binari consultabili con appositi programmi proprietari.
Linux, almeno nelle distribuzioni più comuni, usa solo syslog. In genere syslog (ma anche questo dipende dalla distribuzione e può essere cambiato dall'utente) registra tutto nella directory /var/log
, nel file messages.
Red Hat ad esempio registra il comportamento dei demoni in daemon.log sempre in /var/log
, e ha anche altri file di log oltre al consueto messages.
Morale della favola, tutto dipende dalla distribuzione Linux che si usa, ma un:
#
tail -f /var/log/messages
[Invio]
dovrebbe mostrare le ultime righe del file, ed anche quelle che man mano vanno aggiungendosi.
Chiaramente un:
#
more /var/log/messages
[Invio]
permetterà la consultazione di tutto il file di log.
Per fare ricerche sul file di log si può usare qualcosa del genere:
#
cat messages | grep pattern_che_si_vuole_trovare
[Invio]
Esistono comunque vari programmi di utilità che permettono di effettuare resoconti sui log e altre amenità; ti consiglio di cercare su <www.Freshmeat.net>.
Per la pulizia del file di log, alcune distribuzioni hanno in automatico la funzione di 'rotatelog', ovvero rinominare e comprimere il file di log dopo un determinato numero di giorni (chiaramente definibile dall'utente).
La cosa si integra anch'essa con uno dei soliti programmi di utilità reperibili in rete.
Mi sapete dire se esiste un analizzatore di file di log tale che possa cancellare tutti i messaggi di log più vecchi di una certa data? Eventualmente come si realizza uno script che lo faccia?
Ecco il comando:
#
find /var/log -name 'file*' -ctime numero -exec rm {}\;
[Invio]
Vorrei sapere se c'è la possibilità di ricevere i log di sistema via email. Vorrei che ad intervalli regolari di tempo il sistema dovrebbe prendere i log generati dai vari programmi: ftp, http, samba, ecc. e dovrebbe spedirmeli alla mia casella di posta personale.
Lo puoi fare con mpack. Comprimi il file:
#
tar zcvf log_A_.tar.gz /var/log/filedilog
[Invio]
impacchetta e spedisci:
#
mpack -s subject -d file_con_descrizione archivio_tar destinatario
[Invio]
Ho notato che il file /var/log/wtmp
(che tiene conto delle informazioni sugli accessi dei vari utenti) aumenta drasticamente le sue dimensioni nel corso del tempo. Dato il suo formato particolare (non di testo), esiste un'applicazione per ridimensionarlo?
__________
No, ma puoi fare così:
#
cp wtmp wtmp.old
[Invio]
#
cat /dev/null > wtmp
[Invio]
Per reindirizzare lo standard error su un file (che quindi conterrà gli eventuali errori) digitare:
#
patch < patchfile 2> errori
[Invio]
Come posso visualizzare con calma tutti i messaggi che il sistema fornisce all'avvio? dmesg|less si limita solo ad una porzione di essi.
__________
dmesg ti da solo i messaggi d'avvio del kernel. Per avere tutti i messaggi del sistema da quando è nato guarda in:
#
/var/log/syslog
[Invio]
per i messaggi del sistema e in:
#
/var/log/kern.log
[Invio]
per i log del kernel. Infatti quest'ultimo, insieme a:
#
dmesg
[Invio]
rappresentano i messaggi dell'avvio che stai cercando.
Come faccio a sapere se cron è attivo?
Dobbiamo assicurarci che sia attivo il suo demone (crond) con il comando:
#
ps ax|grep cron
[Invio]
Se cron non è attivo, come lo possiamo attivare?
__________
con il comando:
#
/etc/init.d/crond start
[Invio]
o:
#
/etc/rc.d/init.d/crond start
[Invio]
a seconda delle distribuzioni
__________
Sono i file crontab che si trovano in /var/spool/cron
ed il file /etc/crontab
.
Come si modificano i file crontab?
__________
#
crontab -e
[Invio]
Come sono strutturati i file crontab?
__________
data comando
e più precisamente:
min. ore gg.mese mesi gg.settim. comando 30 10 * * * pppd (eseguirà ogni giorno alle 10.30 la connessione ad Internet); * 10 * * 1-5 pppd (eseguirà alle 10 la connessione ad Internet ma solo dal lunedì al venerdì); 10 18 * 1-5,11-12 1 pppd (eseguirà la connessione ad Internet alle 18.10 di tutti i lunedì da gennaio a maggio e da novembre e dicembre); */15 * * * * pppd (esegue la connessione ad Internet ogni 10 minuti); * */15 * * * pppd (esegue la connessione ad Internet ogni 15 ore).
Come visualizzo il file crontab?
__________
#
crontab -l
[Invio]
Come cancello il file crontab?
__________
#
crontab -r
[Invio]
__________
#
crontab -u tizio
[Invio]
È possibile fare in modo che gli script vengano eseguiti anche se è passato l'orario indicato nelle crontab? Oppure l'unica soluzione è avviare a mano gli script?
__________
A questo ci dovrebbe pensare anacron che è appunto pensato per quelle macchine che non restano accese 24 ore al giorno.
Anacron lavora utilizzando il file /etc/anacrontab
e lancia gli script contenuti in /etc/cron.[daily/weekly/monthly]
.
É possibile usare il comando at con programmi che girano sotto il server X? Ho provato indicando semplicemente il nome del programma ma mi ha restituito questo errore:
«mozilla: cannot connect to X server»
Ecco i comandi che devi invocare:
#
DISPLAY=:0; export DISPLAY
[Invio]
#
xhost +local:
[Invio]
#
mozilla
[Invio]
#
xhost -local:
[Invio]
Ultimamente ho avuto un problema: stavo comodamente girando per il web quando ad un tratto il disco rigido ha cominciato a rumoreggiare incessantemente. Il sistema era talmente lento che ho dovuto riavviare. Cosa succede?
__________
È il demone cron, bastava aspettare del tempo. Tra i comandi più lunghi che cron esegue ti cito solo updatedb e e2fsck. Capisci quindi perché il sistema rallenta così tanto. Per modificare i comandi di cron è sufficiente modificare /etc/crontab
(man crontab per la sintassi). Non è indicato disattivare cron del tutto, perché esso attiva delle procedure necessarie per il buon funzionamento del sistema (come ad esempio la rotazione dei file di log).
Come faccio a vedere sulla mia macchina come sono messe le risorse? Vale a dire memoria libera e utilizzo del processore? Solo da console non da X.
__________
top, free (memoria) , tload (media di carico)
/proc/meminfo
/proc/loadavg
/proc/swaps
Come faccio a vedere sulla mia macchina come sono messe le risorse in termini di memoria libera e utilizzo cpu?
__________
Con il comando:
$
vmstat
[Invio]
Come faccio a sapere quanta memoria occupa un processo?
__________
Con top si può vedere quali e quante sono le risorse occupate da un processo (memoria, processore, ...).
Cos'è fork? Ha a che fare con i processi?
__________
È la duplicazione di un processo e ciò esita con la creazione di un figlio. Tale figlio in genere ha le stesse proprietà del padre. Un processo così può rispondere contemporaneamente a più richieste di servizi, oppure può portare avanti in parallelo diversi compiti.
Come faccio a sapere quali programmi sono in esecuzione ed eventualmente come faccio a terminarne l'esecuzione di alcuni?
__________
Per visualizzare:
#
ps
[Invio]
Per uccidere (concludere):
#
kill NUMERO
[Invio]
(dove numero è il numero del processo che si vuole concludere, identificabile con ps).
Come posso sapere il PID di un processo per metterlo in uno script?
__________
Con ps vengono elencati tutti i processi con i loro PID. Per alcuni processi dentro /var/run
esistono i file processo.pid che contengono il numero del PID e, a volte, la riga di comando con cui il processo è stato attivato; ad esempio il file sendmail.pid può risultare:
174 /usr/sbin/sendmail -bd -q10m
Per cui nella programmazione di script shell li posso utilizzare per arrestare un processo.
Ad esempio se volessi interrompere il processo 'Apache' potremmo creare uno script che contiene:
#!/bin/csh #mette il pid di apache in una variabile set MYVAR = `more /var/run/httpd.pid` echo "Il PID di Apache è : $MYVAR" echo "Sto per eseguire il comando: kill -9 $MYVAR" # Uccide il demone kill -9 $MYVAR
ora la spiegazione:
La prima riga (#!/bin/csh) dice allo script quale interprete/linguaggio/shell usare.
Tutte le altre righe con il # iniziale sono commenti;
il set serve per inizializzare/dichiarare/impostare una variabile, nota che in `more /var/run/httpd.pid`, il segno ` [nota che questo simbolo non è né l'apostrofo né le doppie virgolette] è importantissimo perché fa eseguire come comando di sistema tutto ciò che vi è racchiuso;
con l'echo si visualizza il risultato sullo schermo;
l'ultima riga rappresenta l'uccisione del processo.
Per la shell bash:
#!/bin/sh #mette il pid di apache in una variabile MYVAR = `more /var/run/httpd.pid` echo "Il PID di Apache è : $MYVAR" echo "Sto per eseguire il comando: kill -9 $MYVAR" # Uccide il demone kill -9 $MYVAR
Come si fa a sapere il pid del processo che tiene occupato un dispositivo?
__________
#
fuser -m /dev/???
[Invio]
se risulta essere bash o chi per lei, allora il dispositivo è occupato perché si è nella directory montata o in una delle sue sottodirectory.
Come si fa a terminare un applicazione bloccata?
__________
Dobbiamo ucciderne il processo:
#
kill -9 pid
[Invio]
(pid è il Process ID del processo bloccato, ottenibile con ps)
Riporto qui di seguito non una vera e propria FAQ ma un racconto di un'impresa sufficientemente eroica che ha portato l'amico Manfredo Marsili a recuperare i propri dati su un disco la cui tavola delle partizioni si era corrotta.
«La situazione del mio disco rigido, prima del disastro era questa:
Partizione primaria 7MB Boot Manager di OS/2 Partizione primaria C:\ 203MB Dos 6.20 (boot) Partizione primaria (non formattata e nascosta) 3004MB Partizione Estesa D:\ 1004MB Dos 6.20 (dati) Partizione Estesa E:\ 603MB OS/2 (boot) Partizione Estesa F:\ 3231MB OS/2 (dati)
Le partizioni OS/2 erano quelle con i dati più preziosi.
Dopo il disastro il disco era completamente inaccessibile. I vari fdisk del DOS, di Linux e di OS2 mi riportavano dati completamente incoerenti oppure non vedevano neanche più il disco rigido. Fortunatamente potevo avviare Linux da un dischetto e con il comando
#
less -f /dev/hda
[Invio]
riuscivo a leggerne il contenuto. Apparentemente le mie due partizioni OS/2 erano intatte ma ovviamente non riuscivo nemmeno a montarle. Almeno ero certo di non aver sovrascritto parti del disco perciò quasi certamente era danneggiata soltanto la tabella delle partizioni.
Il fatto è che avevo un'idea piuttosto vaga di cosa fosse una tavola delle partizioni, men che mai sapevo dove mettere le mani per ricostruirla.
Una ricerca veloce mi ha permesso di raccogliere un po' di documentazione che ho studiato avidamente prima di mettermi all'opera: <http://www.win.tue.nl/~aeb/linux/partitions/> La tabella delle partizioni si trova nel Master Boot Record, il settore di avvio di 512 byte, che è a sua volta il primo settore del disco rigido. I primi 445 byte contengono il codice eseguibile dell'MBR, quello per intenderci che viene ripristinato con:
#
fdisk /mbr
[Invio]
A partire dall'indirizzo 0x1be=446, ci sono quattro gruppi di sedici byte ciascuno che identificano le partizioni. Infine, il byte di chiusura del settore deve essere sempre «55 AA». Quattro gruppi di sedici byte significa che c'è posto solo per quattro partizioni. Infatti un disco rigido non può avere più di quattro partizioni primarie tutte insieme. Tralasciamo per un momento il problema delle partizioni estese. Vediamo prima il significato dei sedici byte che identificano una partizione:
stato HD sec/cyl Tipo Head sec/cyl settore boot num. settori ===== == ======= ==== ==== ======= ============ ============ 80 01 01 00 0A FE 3F 00 3F 00 00 00 82 3E 00 00
i valori sono espressi in numeri esadecimali.
80: indica che la partizione è attiva (inattiva = 00); 01: indica il numero della testina (Head) da cui inizia la partizione. (valori possibili: 0-255); 01 00: indicano il settore e il cilindro (Sector-Cylinder) di inizio della partizione. Valori possibili: Settore=0/1024 Cilindro=1/63; 0A: indica il tipo di partizione (Fat16 - HPFS - Linux, ecc.); FE 3F 00: segnalano rispettivamente la testina, settore e cilindro di fine partizione; 3F 00 00 00: l'indirizzo del settore di boot della partizione; 82 3E 00 00: il numero di settori in uso alla partizione.
La procedura consiste nel trovare in qualche modo questi dati, a mano o servendosi di qualche utility adatta allo scopo e riscriverli poi nel MBR. Ho provato a cercare tutti i marcatori «55 AA» che segnalano l'inizio della partizione. Ho scoperto che sul mio HD ce ne erano una sessantina. Allora pazientemente ho selezionato indirizzo dopo indirizzo ed esaminato i settori per capire se potevano essere l'inizio delle partizioni che cercavo. Fortunatamente ricordavo, con buona approssimazione la dimensione di quelle che avevo perso e quindi ho potuto ritrovarle con relativa facilità.
Ogni volta che ne trovavo una, mi segnavo i valori di CHS (Cylinder/Head/Sector) e il numero del settore. Queste informazioni sono necessarie per ricostruire i 16 byte che identificano la partizione. Il problema da affrontare a questo punto era quello di mettere nella giusta sequenza i 16 byte. I valori di CHS (Cilinder/Head/Sector) sono espressi in formato compresso.
Durante una delle mie esplorazioni su Internet mi sono imbattuto in una utility, gpart. Qui trovate l'ultima versione: <http://www.stud.uni-hannover.de/user/76201/gpart> Come altri programmi che ho trovato, ma che non mi hanno convinto troppo, gpart, permette di recuperare le partizioni perse di un disco rigido.
Da Linux, ho eseguito:
#
gpart -vfn s -l /home/manfred/gpart.log /dev/hda
[Invio]
dopo quasi un'ora di elaborazione avevo come risultato un file di log con tutto il necessario per la ricostruzione delle mie partizioni.
Questo è uno stralcio dell'output di gpart:
dev(/dev/hda) mss(512) chs(1027/255/63)(LBA) #s(16498755) size(8056mb) [...] Primary partition(3) type: 010(0x0A)(OS/2 Boot Manager or OPUS) (BOOT) size: 7mb #s(16002) s(63-16064) chs: (0/1/1)-(0/254/63)d (0/1/1)-(0/254/63)r hex: 80 01 01 00 0A FE 3F 00 3F 00 00 00 82 3E 00 00 Possible partition(OS/2 HPFS), size(603mb), offset(4220mb) type: 000(0x00)(unused) size: 603mb #s(1236940) s(8643033-9879972) chs: (538/1/1)-(614/254/61)d (538/1/1)-(614/254/61)r hex: 00 01 81 1A 00 FE BD 66 D9 E1 83 00 CC DF 12 00 Possible extended partition at offset(4824mb) Possible partition(OS/2 HPFS), size(3231mb), offset(4824mb) type: 000(0x00)(unused) size: 3231mb #s(6618716) s(9880038-16498753) chs: (615/1/1)-(1023/254/63)d (615/1/1)-(1026/254/62)r hex: 00 01 81 67 00 FE FF FF E6 C1 96 00 5C FE 64 00 End scan.
Quello riportato qui sopra è la parte del file di log che mi interessava al fine del recupero delle mie due partizioni OS/2. Inoltre ho avuto un riscontro sui dati che avevo visualizzato. Leggete il manuale di gpart ed esaminate attentamente il vostro MBR con un editor di disco per capire bene il significato di questi dati. gpart è anche dotato di un comando che permette di scrivere direttamente la tabella sul primo settore del disco, ma ho preferito fare da solo. Per Linux non fa alcuna differenza di che tipo siano le partizioni che andiamo a montare, primarie o estese, l'importante è che si trovino dove lui si aspetta di trovarle. Quindi con un editor inserisco i miei tre gruppi di sedici codici esadecimali a partire dall'indirizzo 446 (1be) dal cilindro 0, testina 0, settore 1 (CHS 0,0,1). Al successivo avvio, il gestore di avvio riappare come per magia e posso avviare Linux direttamente. Con dmesg verifico quali sono le unità che identificano le mie due partizioni OS/2 (hda2 e hda3), una rapida modifica a /etc/fstab
e un montaggio dei filesystem mi conferma finalmente che le mie due partizioni esistono ancora e sono integre.
Esistono delle combinazioni di tasti per le parantesi graffe visto che sulla tastiera italiana sono assenti?
__________
Da console testuale:
[AltGr-8]
e
[AltGr-9]
in applicazioni X:
[AltGr-7]
e
[Alt-Gr-0]
Non riesco a fare la tilde sotto Linux, con i codici che uso in Windows, non funziona ([alt+126]), come si fa?
__________
nella console testuale:
[AltGr+0]
nelle applicazioni X:
[alt_gr ed ì]
(a sinistra del backspace)
Dove sono dichiarate le modalità per generare i caratteri speciali? (caratteri non presenti sulla tastiera)
__________
In XF86Config
sono impostati i seguenti valori:
Section "Keyboard" LeftAlt Meta RightAlt ModeShift ScrollLock Compose RightCtl Control
e in X avrai con:
[AltGr ì]
la ~
[AltGr 7]
la {
[AltGr 0]
la }
[AltGr 8]
la [
[AltGr 9]
la ]
È anche possibile ridefinire parzialmente o totalmente i tasti in X usando il comando xmodmap (man xmodmap) e nella console testuale con loadkeys (man loadkeys).
Come posso cercare tutte le pagine man che contengono una determinata parola chiave?
__________
Per cercare tutte le voci di manuale che hanno a che fare con una data parola chiave, usa:
#
man -k parola_chiave
[Invio]
Ad esempio se vuoi vedere un elenco di comandi e pagine man relative al boot puoi usare:
#
man -k boot
[Invio]
Puoi anche usare il comando apropos, che fa esattamente la stessa cosa.
Se non trovi alcuna informazione, può darsi che non sia stato creato il database contenente le informazioni. In tal caso devi prima eseguire il comando:
#
makewhatis
[Invio]
da root.
Come si stampano le pagine man?
__________
#
man -t which >ps.ps
[Invio]
#
lpr ps.ps
[Invio]
(Così stampi il man di which. Ovviamente puoi sostituire which con qualsiasi man che desideri stampare).
Qualcuno sa come convertire le pagine man in postscript?
__________
Con il comando:
#
man -t comando > file.ps
[Invio]
devo aggiungere un host virtuale al server apache della mia rete locale (dominio principale www.master.com, dominio virtuale www.service.com) utilizzando lo stesso indirizzo IP.
__________
Brevemente:
Assumo che tu stia usando apache 1.3.x e che l'unico file di configurazione sia httpd.conf
In httpd.conf
aggiungi:
NameVirtualHost <IP dell'host su cui hai installato il server web apache> </p>
quindi aggiungi la direttiva Virtual Host:
ServerAdmin webmaster@tua.macchina.it DocumentRoot /usr/local/httpd/virtual/service/htdocs # Ovviamente DocumentRoot sarà il percorso effettivamente presente sul # tuo sistema, ho fatto solo un esempio ServerName www.service.com Aggiungici tutte le direttive che vuoi.
Affinché tutto funzioni ci deve però essere un DNS che dica alle macchine client che a www.service.com risponde l'host con IP IP_dell'host_su_cui_hai_installato_il_server_web_apache.
Voglio creare dei domini virtuali, in modo da poter creare sullo stesso server più siti e vorrei poter raggiungere questi digitando indirizzi come mattia, web, software, informazioni, studio, ecc. e non digitando l'indirizzo IP.
__________
Nel tuo caso sarebbe fatica sprecata configurare un name server con bind, mentre ti sarebbe sufficiente affidarti al file /etc/hosts
per l'impostazione di alcuni alias.
Aggiungerai per esempio al tuo /etc/hosts
:
192.168.1.1 mattia 192.168.1.1 web 192.168.1.1 informazioni
Se hai una versione recente di Apache, l'unico file di configurazione da modificare sarà httpd.conf
, in fondo al quale potrai inserire le direttive per i domini virtuali.
Ecco un esempio che modificherai con i tuoi dati corretti:
NameVirtualHost 192.168.1.1 <VirtualHost 192.168.1.1> ServerAdmin root@localhost DocumentRoot /dir_che_contiene/i_files_da_servire ServerName mattia ErrorLog log/mattia-error_log CustomLog log/mattia-access_log common </VirtualHost> <VirtualHost 192.168.1.1> ServerAdmin root@localhost DocumentRoot /dir_che_contiene/i_files_da_servire ServerName web ErrorLog log/web-error_log CustomLog log/web-access_log common </VirtualHost>
e così via...
A questo punto, dal navigatore ti sarà sufficiente caricare l'indirizzo http://mattia, oppure http://web per visualizzare le pagine corrispondenti.
Non vorrei avere dei servizi inutilmente attivi e fonte di possibili attacchi. Come posso eliminare questi servizi o addirittura come posso disabilitare le porte della mia macchina?
Nel file /etc/inetd.conf
commenta con un «#» tutti i servizi che non ti servono e poi dai:
#
killall -HUP inetd
[Invio]
In /etc/init.d
o in /etc/rc.d/init.d
(attenzione: il percorso cambia a seconda della distribuzione) controlla quali sono i demoni che non ti occorrono. Cancella a questo punto i collegamenti simbolici a questi demoni presenti nella directory /etc/rcn.d/
dove n corrisponde al numero del tuo tuo runlevel predefinito.
Cercavo uno strumento per console testuale in grado di visualizzarmi la banda e il traffico. Mi servirebbe che fosse in grado di calcolare il traffico sui vari servizi, tipo pop3 e smtp.
__________
Potresti utilizzare ipchains come 'contabilizzazione del traffico'. Nell'HOWTO di ipchains c'e' tutto spiegato ma se hai già familiarità ecco lo script che uso sulle mie macchine:
#!/bin/sh # Flusho i rules ipchains -F # Cancello i vari chain ipchains -X HTTP ipchains -X IMAP ipchains -X POP3 ipchains -X SMTP-OUT ipchains -X SMTP-IN #creo i vari chain ipchains -N HTTP ipchains -N IMAP ipchains -N POP3 ipchains -N SMTP-OUT ipchains -N SMTP-IN #ridirigo il traffico verso i chain creati ipchains -I output -j HTTP --source-port 80 -p tcp ipchains -I output -j IMAP --source-port 143 -p tcp ipchains -I output -j POP3 --source-port 110 -p tcp ipchains -I output -j SMTP-OUT --source-port 25 -p tcp ipchains -I input -j SMTP-IN --destination-port 25 -p tcp
e ora con un
#
ipchains -L -n -v
[Invio]
ti verrà visualizzato il traffico giorno per giorno.
Ti ricordo che per utilizzare ipchains devi avere il kernel 2.2.X configurato con:
CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=y
Altrimenti se proprio non puoi utilizzare ipchains per la contabilizzazione del traffico, potresti fare uno script che prima di ruotare i file di log ti controlla la dimensione di ogni messaggio inviato o prelevato e li somma.
Il problema è che per accedere in ftp al mio sistema facendo:
#
ftp 127.0.0.1
[Invio]
devo sempre dare prima il comando:
#
ifup lo
[Invio]
Ho provato con netcfg a dirgli di farlo partire all'avvio ma sembra che non mi voglia dare retta. Adesso netcfg dice che l'interfaccia viene attivata ad ogni avvio ma non è così... e l'ifconfig conferma.
__________
guarda cosa hai in /etc/sysconfig/network-scripts
; dovresti avere un file chiamato ifcfg-lo
aprilo e controlla che l'opzione ONBOOT sia =yes (se non è così, inseriscila).
Per impostare firewall e masquerade in Suse si usava Yast e in 60 secondi tutto fatto. Come si fa con Red Hat 6.0? non ho trovato niente in Linuxconf.
Per quanto riguarda il firewall devi installare ipchains.rpm (con il comando rpm -i ipchains.rpm) poi riavvii ed avrai il tuo firewall configurato con, come politica predefinita, quella di far passare tutto. A questo punto ti devi studiare tutte le funzionalità di ipchains. Per quanto riguarda il masquerading ipchains fa tutto. Devi ricordarti di abilitare nel kernel tutte le opzioni necessarie.
Come imposto le funzioni di masquerade in Debian GNU/Linux?
__________
Dopo aver ricompilato il kernel con le opzioni adeguate, puoi usare il pacchetto ipmasq, che configura automaticamente ipfwadm o ipchains (a seconda del kernel usato) per il masquerading. È possibile anche aggiungere delle regole a quelle usate da ipmasq, inserendole nella directory /etc/ipmasq/rules
con estensione .rul. Ipmasq è un ottimo strumento per chi non ha voglia di studiarsi ipchains e ipfwadm e vuole avere il masquerading configurato in un secondo.
Ho due macchine collegate in rete, il server (192.168.0.1) e un client (192.168.0.2). Come posso abilitare il masquerading?
Per prima cosa ricompila il kernel dei sistemi seguendo le seguenti indicazioni (versione del kernel 2.2.xx o superiori):
Network Firewalls Y IP: firewalling Y IP: always defragment Y IP: transparent proxy supp Y IP: Masquerading Y IP: ICMP masquerading Y
Sul computer connesso alla rete dovrai lanciare questo script provvedendo ad automatizzare il tutto.
--------------------------------------------- #/bin/sh echo "1" > /proc/sys/net/ipv4/ip_forward ipchains -M -S 7200 10 160 ipchains -P forward DENY ipchains -A forward -s 192.168.0.0/24 -j MASQ ---------------------------------------------
__________
Per impostare un firewall basta seguire i seguenti passaggi:
avere la scheda n.1 (supponiamo eth0) sulla rete interna (a.b.c.0)
avere la scheda n.2 (supponiamo eth1) sulla rete esterna (A.B.C.0)
eseguire l'instradamento come segue:
route add -net a.b.c.0 ... dev eth0 route add -net A.B.C.0 ... dev eth1
(se abbiamo il kernel 2.2.x, questo succede già all'ifconfig)
ovviamente il firewall deve usare il router come gateway:
#
route add default gw ip_del_tuo_gateway dev eth1
[Invio]
(opzionale) se sei sotto 2.2.x abiliti il forward dei pacchetti:
#
echo 1 >/proc/sys/net/ipv4/ip_forward
[Invio]
Utilizzando il kernel 2.2.13, l'opzione Always Defrag che era una #define attivabile e disattivabile in fase di compilazione, è divenuta una syscall. Dato che questa opzione è molto importante, e è disabilitata in maniera predefinita, vi consiglio di aggiungere un:
#
echo 1 > /proc/sys/net/ipv4/ip_always_defrag
[Invio]
Ricordo che questa opzione si preoccupa di riassemblare i datagrammi IP entranti prima che questi siano elaborati dal firewall o reindirizzati o altro ancora.
Stesso discorso vale per i SYN cookies (ma ormai da un po' di tempo).
Se per qualche ragione non vi avvalete del file system /proc, l'unico altro modo per attivare l'ALWAYS DEFRAG è quello di utilizzare la chiamata di sistema sysctl(2).
Infine lo convinci ad inoltrare solo i pacchetti che vuoi con ipfwadm (2.0.x) o ipchains (2.2.x)
Ovviamente seguendo questa procedura e saltando il punto (6) non hai un firewall, perché *tutti* i pacchetti passano... ma mettere sù un firewall sicuro non è cosa da tutti i giorni. Consiglio di sperimentare e ancora sperimentare, magari con un sistema finto e non quello dell'isp.
È possibile conferire ad un utente il potere di avere soltanto l'account ftp e non il telnet ?
__________
sì, dai il comando:
#
usermod -s /bin/false/ nomeutente
[Invio]
e l'utente non potrà più fare il login.
Alternativamente, quando crei l'utente, fallo impostandogli come shell /bin/false.
Come faccio a vietare ad alcuni utenti il servizio ftp?
__________
Dai un'occhiata al file /etc/ftpusers
: in esso sono elencati gli utenti che non possono accedere al servizio ftp.
Se lancio da telnet un ftp per scaricare molti file da server a server e faccio [Ctrl+Z] mi si ferma normalmente l'operazione; ma alcuni siti ftp mi danno dei problemi quando cerco di portare in background il processo mediante il comando bg.
__________
Prova così:
#
nohup nome_programma &
[Invio]
Vedi man nohup per ulteriori informazioni.
Ho impostato il servizio FTP sulla mia macchina. Ho provato ad accedere da remoto e non ci sono problemi. Quando però provo a fare:
$
ls
[Invio]
si ferma tutto. Come mai?
O hai in qualche modo posto dietro firewall la porta 20 (ftp-data) in uscita oppure il «remoto» da cui ti sei collegato aveva un firewall sulla stessa porta in entrata. In entrambi i casi funziona comunque l'FTP passivo: digitare «passive» al prompt del client FTP.
Avendo un account su una macchina Linux collegata in rete mi chiedevo se fosse possibile avviare su di essa una sessione ftp in background e magari disconnettersi per riconnettersi a trasferimento completato.
__________
Una volta collegato al sito, e lanciato il comando get per scaricare il file, ed una volta che l'operazione di scaricamento è partito, puoi interrompere il processo con [Control-Z] e mandarlo in secondo piano col comando bg, e sconnetterti. Comunque tieni a mente che se il sito da cui vuoi scaricare è lento, ed il downloading va in stallo per troppo tempo il programma ftp si scollegherà. In questi casi ti conviene utilizzare un programma come wget che permette automaticamente di riprovare a connettersi per un certo numero di volte e di riprendere downloading interrotti. anche questo può essere mandato in background.
Usa ncftp è potentissimo può fare anche il resuming.
Ecco uno script che può fare tutto questo:
----- cut here #!/usr/bin/expect -f set FTP /bin/ftp set HOST host_della_macchina_remota set USER nome_utente set PASS mia_password set COMMAND "put /path/del/file/che_voglio /path_locale/del/file" set PROMPT ftp> spawn $FTP $HOST send "$USER\r" expect Password: send "$PASS\r" expect $PROMPT send "$COMMAND\r" expect $PROMPT send "quit\r" --------
Definisci le variabili nella parte superiore dello script con i valori esatti, dai i permessi di esecuzione allo script e inseriscilo nel crontab dell'utente da cui verrà lanciato. Esempio:
$
crontab -e entropika
[Invio]
ed inserisci:
*/1 * * * * /bin/script 1> /dev/null 2> /tmp/error_download
Come faccio ad abilitare l'utente anonymous a caricare file nella directory pub del mio server ftp?
__________
Crea una directory col permesso di scrittura abilitato. Ricorda che il proprietario deve essere ftp.
Come posso inserire in uno script shell le seguenti procedure ftp?
scaricare nella directory da cui lo script viene lanciato tutti i file contenuti in una directory remota;
copiare questi file in una directory remota di un altro server.
__________
Ecco uno script che fa al tuo caso:
#!/bin/bash ftp -ni www.server.com << __EOA__ user tuoaccount TuaPassword cd /directory/log/incriminata/ mget * bye __EOA__ ftp -ni www.server2.com << __EOB__ user tuoaccount2 TuaPassword2 cd /directory/destinazione/ mput * bye __EOB__
FTP ed Ip Masquerading. Dopo aver configurato il server con Ip Masquerading, il tutto funziona: Web ed e-mail... ma l'ftp no, nel senso, che se da un client della mia rete voglio connetermi ad un server ftp, posso connettermi, mi da il messaggio di benvenuto, ma quando gli do il classico ls per vedere il contenuto della directory, si ferma tutto. Se invece lo stesso server ftp lo apro dal mio server, tutto bene... Si tratta penso di un filtro che l'Ip Masquerading applica (forse per motivi di sicurezza). Come faccio?
__________
devi caricare il modulo ip_masq_ftp.
Come si fa a vedere cosa sta digitando un utente collegato mediante telnet?
__________
Per vedere cosa digita in una shell bash, sapendo il numero del processo (es. 1000) puoi dare:
#
$ strace -p 1000 -etrace=read
[Invio]
l'output non è dei più chiari ma si capisce.
Come si può fare per far sì che telnetd resti in ascolto su un'altra porta mantenendo attiva anche quella predefinita?
__________
Il servizio telnet viene predisposto attraverso la combinazione di 2 file: /etc/inetd.conf
e /etc/services
.
Per il telnet sulla porta 23, che è la predefinita, avrai queste impostazioni nel file inetd.conf
:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
e queste altre nel file services
:
telnet 23/tcp
Nel file inetd.conf
puoi lasciare quella che già c'è; nel services
dovrai aggiungere qualcosa del tipo:
telnet 8888/tcp
in modo che telnetd accetti le chiamate sulla porta 8888.
A questo punto riavvii il demone inetd per costringerlo a rileggere i file di configurazione e potrai digitare sul client:
#
telnet tuo_host 8888
[Invio]
indicando al comando telnet client il nome dell'host ed il numero della porta su cui il demone è in ascolto.
È possibile accedere al sistema esclusivamente tramite telnet? Cioè, voglio evitare che gli utenti tocchino la macchina fisica, e vi accedano esclusivamente tramite la rete.
__________
Modifica /etc/inittab
e togli (commenti con #) le righe:
1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6
anche se almeno una la lascerei...
Come si fa ad accedere come root ad una macchina remota tramite telnet?
__________
Questo è qualcosa che crea un buco di sicurezza enorme. Se si è ben coscienti di ciò che si sta facendo e dei rischi che si corrono, si deve rimuovere il file /etc/securetty
. Ma se non ne hai una reale necessità, ti conviene creare un utente ed accedere al sistema con quello, ed al limite acquisire i privilegi di root con:
$
su -
[Invio]
Nella mia piccola rete casalinga (486 12 Mb RAM , PMMX 200 64Mb Ram collegati via RJ45) ho un piccolo problema di prestazioni. Quando provo a collegarmi (un po'con tutti i servizi telnet, ftp, http, ecc.) riscontro un'enorme lentezza nell'instaurarsi del collegamento stesso verso il server Linux che sebbene non particolarmente notevole in termini hardware ha però anche pochi servizi attivi. Telnet ci mette anche 30 secondi prima di mostrarmi il messaggio di login ed ftp pure. Una volta connesso però tutto procede regolarmente.
__________
Allora, inserisci nel file /etc/hosts
:
IP NOME_MACCHINA_REMOTA
dove IP è l'ip della macchina da dove tenti di collegarti con la macchina Linux. Il tempo di attesa è dovuto al fatto che Linux tenta di riuscire a capire chi sei, ma dopo 30 secondi perde le speranze e ti considera un conoscente.
Come si può automatizzare un processo telnet?
__________
Il seguente script apre una sessione telnet, esegue dei comandi (passati allo script come parametri) e chiude la sessione:
#!/usr/bin/expect # # 7/9/99, Doni Stefano # # Collegamento telnet in modalità batch # # # comandi di impostazione variabili # # $argv contiene tutti i parametri passati allo script set cmd $argv # send_human occorre per l'opzione -h (human) di send set send_human {.1 3 1 .05 2} # Inizio del processo di connessione batch. spawn telnet localhost 23 expect "ogin: " send "intruso\r" expect "assword: " send -h "kevin\r" expect "intruso" send -h "$cmd\r" expect "intruso" send -h "exit\r"
Notate la presenza dell'opzione -h di send: essa fa in modo che l'invio dei caratteri avvenga a velocità umana, secondo quanto impostato nella variabile send_human. Anzi, i migliori risultati li ho ottenuti mediante l'opzione -s (send slow): il problema riguarda il buffer di lettura di login. Per maggiori informazioni sulle opzioni di send, consultate la relativa pagina di manuale (man expect). Per chi volesse un minimo di controllo di flusso sull'esecuzione dello script, ne riporto un altro che fa uso di un ciclo while:
#!/usr/bin/expect # # 26/7/99, Doni Stefano # # Preleva la posta via POP3 # set num_msg 1 set n 3 spawn telnet mail.commedia.it 110 expect "+OK" send "USER stefano\r" expect "welcome" send "PASS quique\r" expect "+OK" send "STAT\r" expect "+OK" while {$num_msg <= $n} { send "RETR $num_msg\r" expect "+OK" puts "\rScaricato messaggio numero $num_msg\r" set num_msg [ expr $num_msg + 1 ] } send "QUIT\r"
Fra l'altro, questo script presenta un grosso problema: esso preleva solo i primi 3 messaggi della casella di posta, in quanto non sono stato in grado di inserire in una variabile il contenuto comando STAT (del protocollo POP3) che indica infatti il numero preciso di messaggi presenti in una casella di posta elettronica.
Se eseguo una connessione telnet alla mia macchina, essa viene registrata in /var/log/daemon.log con la riga seguente:
Oct 6 19:23:51 irish in.telnetd[221]: connect from irish
Come fa il syslogd a sapere che c'è stata una connessione telnet?
__________
In /etc/services
c'è la definizione dei servizi; quindi avrai una riga con:
telnet 23/tcp
Le richieste sulla porta 23 sono quindi da considerarsi telnet. Poi, in /etc/inetd.conf
avrai la definizione del server da attivare in caso di richiesta di uno specifico servizio e quindi:
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
Quindi ad ogni richiesta telnet si attiva /usr/sbin/in.telnetd
.
Tutto questo è gestito ovviamente da inetd.
Per evitare che tutti accedano via telnet ad una macchina, come devo fare?
__________
Devi modificare i file /etc/hosts.allow
e /etc/hosts.deny
(ti consiglio di usarne uno solo). Lì puoi mettere quali sono gli hosts o i domini da cui accetti collegamenti telnet. Se non ne vuoi in assoluto basta che metti:
ALL: ALL: DENY
Esiste un modo per connettersi direttamente come root ad una macchina remota?
__________
Si deve rimuovere il file /etc/securetty
ma è un buco di sicurezza enorme. Accedi come utente comune e poi dai:
#
su -
[Invio]
Altrimenti installati:
ssh (secure shell)
devi installare il demone sshd sulla macchina server e dal client basta dare:
$
ssh -l root server
[Invio]
Trovi il pacchetto Debian GNU/Linux di ssh nella sezione non-US <ftp://ftp.debian.org/debian/dists/stable/non-US>, ad esempio, mentre il pacchetto Red Hat non è inserito nella distribuzione ufficiale, e lo trovi solo in <ftp://ftp.replay.com/pub/crypto/redhat/i386/>
esiste anche un client per Windows, chiamato putty: <http://www.chiark.greenend.org.uk/~sgtatham/putty.html>
Come copio tutti i file della directory in cui mi trovo in una directory che si trova su una macchina remota accessibile via ssh?
__________
Con il comando:
$
scp * tuoaccount@www.server2.com:/directory/destinazione/
[Invio]
Copia di intere directory con il comando scp preservando i collegamenti simbolici.
É possibile effettuare questa operazione con:
#
scp -r nomedir username@hostdidestinazione:nomedir2
[Invio]
dove il formato di «nomedir» è /mia/dir
.
Per copiare ad esempio la directory /home/utente/pippo
sulla macchina fulmine1 si da:
#
scp -r /home/utente/pippo pino@fulmine1:/tmp/pipporemota
[Invio]
dove «pino» è il nome dell'utente della macchina «fulmine1».
Ho una rete con indirizzi IP statici del tipo 192.168.x.x. Riesco a fare telnet fra le macchine ma non riesco però a montare il filesystem di un macchina sull'altra. Quando provo a fare mount mi appare un messaggio di errore:
mount: RPC: Program not registerd
mountd è presente nel file /etc/rpc
ma non è in esecuzione sulla macchina e non lo trovo in /sbin
(così come nfsd).
__________
Assicurati che:
/sbin/rpc.portmap
/usr/sbin/rpc.mountd
/usr/sbin/rpc.nfsd
vengano avviati all'avvio del sistema, controllando nei file rc*
. Altrimenti prova ad avviarli manualmente e guarda se tutto funziona. Le directory da condividere vanno configurate in /etc/exports
.
Per le varie opzioni ti rimando alla pagina di manuale:
$
man 5 exports
[Invio]
Vorrei usare il mio sistema come terminale X di un altra macchina. Come posso fare?
__________
Se vuoi usare la tua macchina come terminale grafico di un altro pc, puoi usare una sessione broadcast (fai attenzione che tutto viene passato in chiaro, password comprese). Poniamo che linux2 sia la macchina remota da cui avviare X, e linux1 la macchina su cui lavori (il terminale).
Questo è possibile se su linux2 è attiva una sessione xdm (gdm o kdm), per cui lanciando da una console virtuale:
$
X -indirect linux2
[Invio]
dovresti vedere il logo di benvenuto. Naturalmente in questo caso stai usando linux1 come terminale X.
In pratica X è nato con questo scopo. Se una macchina rende disponibile il suo X, l'altra (o le altre) possono usare quell'ambiente per lavorare.
Vorrei accedere dalla mia macchina Linux ad un X presente su un'altra macchina; come posso fare?
__________
Innanzitutto sulla macchina dove ti trovi devi avere già una sessione X aperta; dai il comando:
#
xhost +nomeserver
[Invio]
con nomeserver si intende il nome o l'ip della macchina da cui vuoi attivare le applicazioni.
Fatto ciò, dalla macchina dove ti trovi fai telnet sull'altra con:
$
telnet nome_host
[Invio]
esegui il login per collegarti alla stazione remota. Ora, a seconda della shell che hai sul sistema remoto, dai il comando:
#
export DISPLAY=nome_tua_macchina:0.0
[Invio]
se la shell è bash
#
setenv DISPLAY nome_tua_macchina:0.0
[Invio]
se la shell è cshrc
che dice all'host di inviare il client sul tuo monitor.
A questo punto fai partire il client, e lo vedrai sul tuo schermo.
Ovviamente la macchina remota deve avere il modo di capire a chi corrisponde nome_tua_macchina: o c'è quindi un DNS che gli dà l'informazione, o questa va messa in /etc/hosts
, così:
xxx.xxx.xxx.xxx nome.dominio nome
Entro in X come utente, apro un terminale grafico e impartisco il comando:
#
su -
[Invio]
come faccio a questo punto a lanciare applicazioni come utente root? Ricevo degli errori.
__________
Da utente comune dai il comando:
$
xhost localhost
[Invio]
poi da utente root dai:
#
export DISPLAY=localhost:0.0
[Invio]
così ridirezioni il display di root sull'attuale che è quello dell'utente, come se lo stessi facendo tra due macchine diverse.
Attenzione, prima di tutto ciò si deve avere già una sessione X aperta!
Mi trovo a dover montare una porzione di filesystem di una macchina Solaris con una Linux, che però non risulta tra le macchine autorizzate poiché appena attivata. Consultando i man ho trovato i file vfstab ed alcuni altri: in particolare /etc/dfs
. Come posso fare?
Il file da modificare è dfstab
in /etc/dfs
. Poi devi dare il comando:
#
shareall
[Invio]
se la macchina è Solaris 2. Per Solaris 1 invece il file è in /etc/exports
e il comando è:
$
exportfs -a.
[Invio]
Ho collegato due macchine in rete. Vorrei riuscire ad entrare nell'altra macchina e spostare file da una parte all'altra. Come faccio?
__________
Puoi considerare l'ipotesi di utilizzare gli r-command per eseguire shell e comandi in remoto. Devi creare nella directory principale (/
) delle due macchine (o nella $HOME
dell'utente che usi) il file .rhosts
, nel quale dovrai inserire il sistema al quale permetti l'accesso e l'utente abilitato a farlo. Se vuoi consentire l'accesso a tutti ti basta dare:
#
echo "+ +" > /.rhosts
[Invio]
su entrambe le macchine.
A questo punto potrai dare:
#
rlogin NOME_HOST
[Invio]
per accedere all'altra macchina senza richiesta di login e password, e soprattutto potrai copiare file da un sistema all'altro senza FTP:
#
rcp HOST_REMOTO:/home/pippo/* .
[Invio]
oppure:
#
rcp * HOST_REMOTO:/PATH
[Invio]
Posso simulare sul mio sistema un terminale?
__________
Si possono simulare fino a 6 console virtuali attraverso la combinazione [Alt+Fn] dove n è un numero che va da 1 a 6
Vorrei installare Linux su dei 486 con 200 Mb spazio disco allo scopo di far partire l'ambiente X e poterli usare come terminali grafici. Sapete se è possibile in così poco spazio disco e quali sono i minimi pacchetti da installare?
__________
Devi installare tutto ciò che è la base, niente per lo sviluppo, escludi praticamente tutti i pacchetti tranne quelli necessari alla rete. Così, la macchina non potrai utilizzarla per fare altro che da terminale. In pratica, entra come utente root e esegui il comando:
#
X -query nome_macchina_a_cui_connettersi
[Invio]
Se preferisci puoi modificare /etc/inittab
in modo che appena avvii la macchina entri in runlevel 5 e ti connetti alla macchina che desideri. So che ci sono anche dei sistemi per scegliere a quale Server attaccarsi con un 'hostchooser'.
Mi collego alle macchine della mia università in telnet ma quando lancio pine mi obietta: terminal type not supported: linux se il telnet è fatto da console, se invece è fatto da X tutto bene. Come posso aggirare il problema?
__________
La macchina remota non è un linux.
Sulla console remota dai un:
#
$ setenv TERM ansi
[Invio]
oppure:
#
setenv TERM vt100
[Invio]
se usi le shell derivate da sh usa:
#
export TERM=vt100
[Invio]
(o simili, dipende dalla shell che stai usando)
Ho installato apache, ed ho inserito un file index.html in /var/www
; quando però mi collego al server (http://localhost/index.html) invece del documento html, mi appare il documento come se fosse solo testo (quindi mi appaiono tutti i tag html). Come posso risolvere?
__________
Nel file /etc/mime.types
devi identificare la porzione in cui è specificato 'htm' e aggiungere un'altra riga simile ma con 'html'.
Ho una pagina html in cui c'è una casella di testo e un bottone 'Submit' e nella parte action del form ho inserito il riferimento a una pagina check.php3 la quale dovrebbe recuperare i dati immessi dall'utente ed elaborarli. Come faccio a gestire questi dati?
__________
Funziona sia con get che con post; se tu chiami nel tuo form una variabile (name=) ad esempio PIPPO, allora nella pagina che il tuo form richiama (check.php3) tale variabile (contenuto compreso) si chiamerà $PIPPO.
Possiedo un sistema Red Hat 6.0 e vorrei configurare Apache per gestire php ma non riesco a farlo. Mi potete dare una mano?
__________
Guardando nella directory /etc/httpd
, si trova il file php3.ini
che gestisce molti aspetti del comportamento di php. Php lo cerca in determinati percorsi (compresi quelli indicati dalla variabile d'ambiente PATH). Per essere sicuri che venga sempre trovato, è necessario creare la variabile d'ambiente PHPRC (inserendola in /etc/profile
oppure in ~/.profile
, a seconda delle necessità) ed inizializzarla con il percorso del file php3.ini
stesso.
è necessario far caricare ad Apache i moduli relativi a php. I file /etc/httpd/conf/httpd.conf
e /etc/httpd/conf/srm.conf
contengono le linee necessarie allo scopo (di solito sono commentate: basta eliminare il carattere # di commento). In httpd.conf
sono due i punti da modificare, entrambi nella sezione Dynamic Shared Object (DSO) Support. Nella parte di caricamento dei moduli, in «extra modules», vanno aggiunte (o vanno tolti i commenti se già esistono) le linee seguenti:
LoadModule php_module modules/mod_php.so LoadModule php3_module modules/libphp3.so
Nella parte di aggiunta dei moduli (dopo la riga «ClearModuleList»), sempre in «extra modules», vanno aggiunte (o vanno tolti i commenti se già esistono) le linee seguenti:
AddModule mod_php.c AddModule mod_php3.c
In srm.conf
, vanno aggiunte (o vanno tolti i commenti se già esistono) le linee seguenti, che permettono di associare php ai file con estensione .php3
:
AddType application/x-httpd-php3 .php3 AddType application/x-httpd-php3-source .phps
Per rendere effettive le modifiche ad Apache senza prima riavviare il sistema, si può far ripartire il demone httpd.
/etc/rc.d/init.d/httpd restart
Come si fa a configurare un server web Apache in modo che utilizzi l'asp?
__________
Installando e configurando le opportune librerie (sotto Debian GNU/Linux libapache-asp-perl e forse anche libapache-mod-perl).
Come si convertono gli script asp in php?
Con asp2php:
<http://home.i1.net/~naken/asp2php/>
Per permettere l'accesso ad alcune pagine web solo a chi ha la password ho usato il comando htpasswd. L'accesso alle pagine viene giustamente negato, solo che non appare la finestra che chiede nome utente e password. Cosa devo fare?
Devi inserire le direttive in /etc/apache/access.conf
(o comunque nel file access.conf
presente nel tuo filesystem)
<Directory /directory/da/proteggere> AuthType Basic AuthName Nome_della_struttura_di_appartenenza AuthGroupFile /file/dei/gruppi AuthUserFile /file/degli/utenti <Limit GET POST> require valid-user </Limit> </Directory>
Ho qualche problema a configurare correttamente SAMBA su Linux. Quando da Risorse di Rete di Windows interrogo la rete, vedo la macchina con Linux, ma quando provo ad accedere alla directory condivisa di questa macchina, mi viene chiesta una password. Ho provato a digitare di tutto, dalla stringa vuota alla password dell'utente root, ma nulla di tutto questo mi ha permesso di risolvere il problema. Questione analoga se da Gestione Risorse di Windows cerco di creare una nuova unità di rete: digitando come percorso la stringa '\\linux\public' e premendo 'Ok' mi viene chiesta una password (nessuna delle password mi permette di accedere alle risorse). Ho già inserito nel registry di Windows la chiave per forzare le password in testo puro, ma sembra non aver sortito effetto alcuno.
__________
Dovresti risolvere così:
null passwords = yes
nella sezione global di smb.conf
.
Inserisci poi gli utenti Windows in samba e/o Linux con:
#
smbpasswd
[Invio]
Potreste inviarmi un smb.conf funzionante? Sto avendo dei problemi e mi potrebbe chiarire molti dubbi.
__________
Ho modificato come segue il file smb.conf
che si trova in /etc/
e mi funziona. Come vedi ho condiviso le directory /home/utente
, /tmp
e /publicfiles
e la stampante lp. Dopo aver modificato smb.conf
devi far ripartire samba.
[global] printing = bsd printcap name = /etc/printcap log file = /var/log/samba-log.%m lock directory = /var/lock/samba share modes = yes workgroup = WORKGROUP [lp] comment = Stampante Linux path = /var/spool/lpd/lp writable = no public = yes printable = yes browsable = yes [homes] comment = Directory Personale browsable = no read only = no create mode = 0750 [tmp] comment = Spazio per file temporanei path = /tmp read only = no public = yes [public] comment = Pubblicamente Accessibile path = /publicfiles public = yes writable = yes
Qualcuno sa come fare a ricevere i messaggi di WinPopUp con LinPopUp? A mandarli ad utenti Windows NT o Windows riesco, ma quando arrivano alla mia macchina Linux, LinPopUp non fa nulla.
Dopo aver installato Samba e LinPopUp devi inserire in /etc/smb.conf
nella sezione [global]:
message command = /usr/bin/LinPopUp "%f" "%m" %s; rm %s
eventualmente correggi il percorso di LinPopUp.
Perché non si vedono le icone su «risorse di rete» delle macchine Linux connesse alla macchina Windows? Pur avendo impostato correttamente il workgroup e tutto il resto?
__________
Devi mettere la seguente riga nella sezione [global] di /etc/smb.conf
:
interfaces = <numero_ip_interfaccia_di_rete_macchina_linux>/24
cito la mia riga:
interfaces = 192.168.1.1/24
salva, esci e digita:
#
smb restart
[Invio]
e vedrete che la macchina Linux apparirà poi nella cartella risorse di rete delle macchine Windows.
Ho messo in rete due macchine: una con Linux e una con Windows. Le due si vedono e tutto sembra funzionare. Ora mi rimane solo una cosa da fare: come posso copiare, spostare file sulla macchina con Windows dalla macchina Linux?
__________
Da Windows a Linux ti colleghi in telnet o ftp verso l'indirizzo della macchina e utilizzi i comandi convenzionali. Da Linux a Windows, puoi montare le directory condivise com smbmount, che ha una sintassi diversa da versione a versione, una di queste è:
# smbmount //macchina_windows/dir /punto_di_montaggio
Ho una macchina Linux e sono collegato ad una rete Windows mediante Samba. Come posso stampare anche da Linux?
__________
Lo puoi fare con un comando del genere:
$
cat $1 | NOMEDELFILTRO | smbclient "\\\\SERVER\\STAMPANTE" PASSWORD -U UTENTE -P -c 'print -'
[Invio]
Ho il seguente problema: devo connettere una macchina Linux via smbclient ad una macchina Windows.
Il problema è che la macchina Windows ha solo l'indirizzo numerico (non è stato registrato sul DNS). Dando a smbclient il numerico non riesco a connettermi. Come faccio?
__________
Inserisci il nome e l'ip della macchina Windows nel file /etc/hosts
di Linux
Qual è un esempio di smb.conf in cui un percorso 'public' non richieda una password? (voglio che da una macchina con Windows non mi chieda la password per accedere alla directory public ma solamente per accedere alla cartella personale dell'utente).
__________
# Global parameters workgroup = SOFTHOR netBIOS name = LINUX.SOFTHOR server string = Linux Server security = SHARE update encrypted = Yes map to guest = Bad Password log level = 0 printcap name = /etc/printcap guest account = guestpc hosts allow = 192.168.0. 127. printing = bsd [public] comment = Public Directory path = /home/samba read only = No guest ok = Yes [backup] comment = Backup Directory path = /hdb/backup read only = No guest ok = Yes [lp] comment = Linux Printer path = /var/spool/samba guest ok = Yes print ok = Yes
Ho installato Samba. Dopo averlo configurato, la macchina con Linux mi compare, sfogliando la rete, nel gruppo «Workgroup» invece di «alenet»; se ci clicco, mi chiede una password: ho messo su Linux l'utente corrispondente a quello con cui faccio il login in Windows, ma non c'è verso di entrare.
__________
Per cambiare il gruppo devi modificare la voce 'workgroup' del file /etc/smb.conf
:
workgroup = alenet
Per la password, ammesso che il resto dei dati presenti nel file /etc/smb.conf
siano corretti, devi stare attento ad una cosa. Microsoft da qualche versione tardiva di Windows 95 in poi compreso NT sp3 ha modificato l'utilizzo standard delle password da non criptate a criptate. A questo punto hai due soluzioni:
Abilitare la criptazione delle password in samba sempre dal file /etc/smb.conf
e poi utilizzare smbpasswd per creare le password per ogni utente da inserire in un file che deve a sua volta essere specificato all'interno di /etc/smb.conf
(man smbpasswd; man smb.conf)
Modificare i registri di Windows con regedit, in questo modo:
Trovare la chiave /HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/VxD/VNETSUP
Selezionare Modifica/Nuovo/Valore DWORD dal menù
Rinominare l'etichetta da Nuovo Valore #1 in EnablePlainTextPassword
Premere [Invio] sopra la voce e inserire il numero 1 nella finestra che si apre.
Puoi anche usare il file Win98_PlainPassword.reg
presente nella distribuzione Samba.
Come devo configurare smb.conf per dare un nome su netBIOS alla macchina Linux nella rete aziendale servita da un server DHCP?
__________
Aggiungi nella sezione global di /etc/smb.conf
:
netBIOS name = tuo_nome_netBIOS
dhcp ti fornisce solo un ip automaticamente, e non controlla il nome netBIOS della macchina. Se non inserisci un nome, credo che utilizzi quello della configurazione di rete.
È possibile utilizzare un server samba al di là di un router?
__________
Se il client è Unix puoi accedere a un server netBIOS con il comando:
#
smbclient ////SERVER//SHARE -I ip.del.server.netBIOS -U utente
[Invio]
Se il client è Windows devi aggiungere nel file LMHOST
una voce per quella macchina oppure attivare il supporto per wins (sul server Samba deve essere in esecuzione nmbd)
Come si imposta il mtu per una connessione plip?
__________
Generalmente nell'impartire il comando ifconfig per impostare la connessione si dà una riga del tipo:
#
ifconfig plip0 1.1.1.1 pointopoint 2.2.2.2 up
[Invio]
e invece nel tuo caso basta fare:
#
ifconfig plip0 mtu 512 1.1.1.1 pointopoint 2.2.2.2 up
[Invio]
Esiste per Debian GNU/Linux un'applicazione che faciliti la connessione al provider?
__________
C'è pppconfig:
<ftp://ftp.it.debian.org/debian/dists/stable/main/binary-i386/base/pppconfig_1.1.deb>
Come posso controllare se ho installato il ppp?
__________
Dai il comando:
#
cat /usr/include/linux/autoconf.h | grep PPP
[Invio]
e vedi se esiste, se è compilato come modulo o all'interno del kernel;
#
lsmod | grep ppp
[Invio]
(se è compilato come modulo, assicurati che esso sia caricato)
Se proprio non esiste, devi ricompilare il kernel.
Quando impartisco il comando di connessione al mio provider, come faccio a sapere quando mi sono connesso?
__________
Digita ifconfig e quando vedrai le linee riguardanti l'interfaccia ppp allora sarai connesso. Un metodo più comodo è sicuramente quello di vedere in tempo reale gli aggiornamenti del file /var/log/messages
. Questo può essere fatto con:
#
tail -d /var/log/messages
[Invio]
eventualmente inserendo tale comando in uno script:
#!/bin/sh pppd (o ifup, insomma il comando di connessione) xterm -e tail -f /var/log/messages
Nel tentativo di connessione al mio provider con pppd, ricevo il seguente messaggio di errore:
«pppd: The remote system is required to authenticate itself but I couldn't find any secret (password) which would let it use an IP address.»
Occorre mettere «noauth» in /etc/ppp/options
, e si dovrebbe risolvere il problema
Esiste un comando da lanciare o un procedimento da seguire per poter vedere la velocità di connessione ad Internet?
__________
pppstat ti da qualche informazione.
Come faccio a vedere l'indirizzo IP della mia macchina?
__________
Con:
#
ifconfig
[Invio]
poi guarda sull'interfaccia principale il numero di inet addr.
#
/sbin/ifconfig | head -9 | tail -1 | cut -d\ -f12 | cut -d\: -f2
[Invio]
ma bisognerebbe accertarsi che l'interfaccia ppp sia la seconda in ordine di apparizione. In caso non fosse così si deve adattare questo comando alle proprie esigenze. Se infatti è presente una scheda di rete al posto di «head -9» si deve mettere «head -17» e così via aggiungendo «8» per ogni dispositivo di rete che precede l'interfaccia ppp.
Come faccio a risalire ai dns dei provider?
__________
Con nslookup:
#
nslookup
[Invio]
>
server dns2.nic.it
[Invio]
>
set query=any
[Invio]
>
pluto.linux.it
[Invio]
Server: dns.nic.it Address: 193.205.245.5 pluto.linux.it preference = 10, mail exchanger = keycomm.pluto.linux.it pluto.linux.it preference = 20, mail exchanger = r-vicenza3.keycomm.it pluto.linux.it preference = 30, mail exchanger = r-vicenza1.keycomm.it pluto.linux.it preference = 40, mail exchanger = dns.keycomm.it pluto.linux.it Internet address = 192.106.105.10 pluto.linux.it text = "PLUTO Linux User Group" pluto.linux.it nameserver = serena.keycomm.it pluto.linux.it nameserver = snoopy.psy.unipd.it pluto.linux.it nameserver = ns.publinet.it pluto.linux.it origin = serena.keycomm.it mail addr = dalla.pluto.linux.it serial = 1999110100 refresh = 86400 (1D) retry = 7200 (2H) expire = 2592000 (4w2d) minimum ttl = 86400 (1D) pluto.linux.it nameserver = serena.keycomm.it pluto.linux.it nameserver = snoopy.psy.unipd.it pluto.linux.it nameserver = ns.publinet.it keycomm.pluto.linux.it Internet address = 194.184.117.31 r-vicenza3.keycomm.it Internet address = 194.184.117.4 r-vicenza1.keycomm.it Internet address = 194.184.117.2 dns.keycomm.it Internet address = 194.184.116.2 serena.keycomm.it Internet address = 194.184.117.3 snoopy.psy.unipd.it Internet address = 147.162.146.17 ns.publinet.it Internet address = 151.99.137.2
>
> geocities.com
[Invio]
Server: dns.nic.it Address: 193.205.245.5 Non-authoritative answer: geocities.com nameserver = NS2.geocities.com geocities.com nameserver = NS1.YAHOO.COM geocities.com nameserver = NS2.DCA.YAHOO.COM geocities.com nameserver = NS4.geocities.com Authoritative answers can be found from: geocities.com nameserver = NS2.geocities.com geocities.com nameserver = NS1.YAHOO.COM geocities.com nameserver = NS2.DCA.YAHOO.COM geocities.com nameserver = NS4.geocities.com NS2.geocities.com Internet address = 209.1.224.100 NS1.YAHOO.COM Internet address = 204.71.200.33 NS2.DCA.YAHOO.COM Internet address = 209.143.200.34 NS4.geocities.com Internet address = 209.1.224.143
>
tiscalinet.it
[Invio]
Server: dns.nic.it Address: 193.205.245.5 Non-authoritative answer: tiscalinet.it nameserver = ns.tiscalinet.it tiscalinet.it nameserver = sns.tiscali.it tiscalinet.it origin = ns.tiscalinet.it mail addr = nsadmin.tiscali.it serial = 2000042802 refresh = 86400 (1D) retry = 3600 (1H) expire = 604800 (1W) minimum ttl = 86400 (1D) Authoritative answers can be found from: tiscalinet.it nameserver = ns.tiscalinet.it tiscalinet.it nameserver = sns.tiscali.it ns.tiscalinet.it Internet address = 195.130.224.18 sns.tiscali.it Internet address = 195.130.225.129
In ogni caso si può fare anche con il comando host:
#
host -t ns dominio_tuo_provider
[Invio]
[bigpaul@capo.retemia]:[Fri May 5]:[22:25:41]:[~]:
host -t ns flashnet.it
[Invio]
flashnet.it NS dns2.flashnet.it flashnet.it NS dns.flashnet.it
[bigpaul@capo.retemia]:[Fri May 5]:[22:25:41]:[~]:
ping dns2.flashnet.it
[Invio]
PING dns2.flashnet.it (194.247.160.8): 56 data bytes 64 bytes from 194.247.160.8: icmp_seq=0 ttl=252 time=178.5 ms --- dns2.flashnet.it ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 150.0/163.7/178.5 ms
[bigpaul@capo.retemia]:[Fri May 5]:[22:25:41]:[~]:
ping dns.flashnet.it
[Invio]
PING dns.flashnet.it (194.247.160.1): 56 data bytes 64 bytes from 194.247.160.1: icmp_seq=0 ttl=252 time=165.5 ms --- dns.flashnet.it ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 150.0/157.7/165.5 ms
Se volessi usare più accessi ad Internet come dovrei fare con il /etc/resolv.conf
? Dovrei forse mettere tutti i DNS dei provider nello stesso file o dovrei cambiarli ogni volta?
__________
Puoi tranquillamente lasciare i DNS di un provider o sceglierne un paio tra quelli che ti sembrano più veloci e affidabili. Le richieste generalmente sono permesse a tutti gli host, quindi non ha importanza quale abbonamento stai usando.
Con il mio provider, mi vengono assegnati automaticamente i DNS. Come mi devo comportare?
Puoi impostare l'opzione «usepeerdns» di pppd. Se usi questo metodo non puoi impostare i DNS delle macchine che non hanno il modem. In ogni caso usando l'opzione citata puoi sempre leggere i DNS di Libero dal file di log che in genere è /var/log/messages
.
Durante la connessione ad Internet, il DNS della rete locale (che risiede in /etc/resolv.conf
), mi viene sostituito automaticamente dal DNS che utilizzo per navigare (/etc/ppp/resolv.conf/
). Quando però mi sconnetto, la modifica resta. Come posso evitare ciò?
__________
Inserisci in /etc/sysconfig/network-scripts/ifcfg-ppp0
la riga:
'PEERDNS=no'
Mi sembra di essere riuscito a collegarmi ad Internet con Linux. Il navigatore però non si riesce a collegare a nessun sito e restituisce errore. Come faccio?
__________
Devi indicare gli indirizzi DNS del tuo provider nel file /etc/resolv.conf
. Questo file serve per tradurre gli indirizzi mnemonici in indirizzi ip numerici, ed è costituito da più righe del tipo:
nameserver indirizzo-ip-del-server-DNS
Sto tentando di collegarmi ad Internet. Ho letto l'HOWTO e tutto funziona solo che quando digito «atdt12345» il modem non compone il numero perché mi risponde no dialtone
__________
Prova la stringa di inizializzazione del modem atx3dt12345 invece di atdt12345.
Vorrei che un singolo script mi permettesse:
connessione ad Internet
operazioni varie
sconnessione da Internet
Questo mi potrebbe essere utile ad esempio per collegarmi esclusivamente per scaricare la posta. Come si fa?
__________
Prova a creare uno script di questo tipo:
#!/bin/bash # _LOCK=/var/lock/ppp.LOCK # pon if [ "$?" = "0" ] ; then .... tuoi comandi .... poff rm -f $_LOCK exit 0 else rm -f $_LOCK exit 1 fi
Come posso fare a collegarmi ad Internet senza usare kppp e simili? Ho sentito che si può fare tramite degli script, ma come faccio?
__________
La connessione tramite script è il metodo più classico per connettersi ad un provider Internet sui sistemi come Linux. In effetti kppp ed i programmi simili non fanno altro che andare a scrivere degli script.
In Linux si usano due programmi, essenzialmente: chat che invia i comandi al modem e pppd il demone che instaura il dialogo secondo il protocollo ppp con il server del provider.
I file su cui interverremo sono sostanzialmente 5:
/etc/ppp/pap-secrets
/etc/resolv.conf
/etc/host.conf
/bin/ispup
/bin/ispdown
Come si può intuire tratterò il caso di accesso con autenticazione PAP.
Innanzitutto dovremo inserire il nostro nome utente e la password, comunicateci dal provider, nel primo di questi file, in questo modo:
# /etc/ppp/pap-secrets username * password
Poi dovremo modificare il secondo, che semplicemente indica al nostro sistema i dns da usare durante la connessione:
# /etc/resolv.conf search dominioprovider.it nameserver 111.222.111.222 nameserver 222.111.222.111
dove ovviamente dovremo inserire i dati forniteci dal provider al momento della stipulazione del contratto al posto degli esempi che ho scritto.
Bisogna poi comunicare al sistema in che modo deve risolvere i nomi dei computer nella rete (non importa se non avete una rete locale e l'unica rete per voi è Internet, dovete specificarlo lo stesso). Per fare questo bisogna operare su /etc/host.conf
.
# /etc/host.conf order hosts,bind multi on
Fatto tutto ciò il nostro sistema è pronto, e possiamo quindi passare alla realizzazione dei veri e propri script di connessione, cioè quelli che eseguiremo quando vorremo connetterci o disconnetterci.
Questo per connettersi:
# /bin/ispup IP_ISP="0.0.0.0" IP_LOCALE="0.0.0.0" DISPOSITIVO="/dev/modem" # oppure il nome della seriale cui è collegato il modem VELOCITA="57600" TELEFONO="0123456789" NOMEUSER="username" /usr/sbin/pppd \ connect "/usr/sbin/chat -v \ TIMEOUT 3 \ ABORT BUSY \ ABORT 'NO CARRIER' \ '' \dATZ \ OK \dATX0 \ OK \dAT\d$TELEFONO \ TIMEOUT 60 \ CONNECT '' " \ user $NOMEUSER -d \ -detach crtscts modem \ defaultroute noipdefault \ $IP_LOCALE:$IP_ISP \ $DISPOSITIVO \ $VELOCITA
e questo per disconnettersi:
# /bin/ispdown kill -INT `cat /var/run/ppp0.pid`
A questo punto, se volete collegarvi senza essere utente root, la via più semplice anche se la meno sicura è quella di dare i permessi di esecuzione degli script a tutti gli utenti (oppure vi create un gruppo di utenti apposito) e di selezionare l'attributo del set user ID per il comando pppd.
Per connettervi digitate al prompt:
$
ispup &
[Invio]
(la & serve a mandare il processo in secondo piano, in modo che abbiate ancora libera la console per compiere altre operazioni.)
Digitate:
$
ispdown
[Invio]
per terminare la connessione.
Quali sono gli script di connessione a Tiscali e quali file devo modificare?
__________
Il file da eseguire lo potremo chiamare tiscali
", dovremo conferirgli i permessi giusti e dovremo metterlo in una directory di percorso (path).
#!/bin/sh #Parametri della connessione. #Numero di telefono del provider: deve contenere anche il prefisso. #Nodo di Roma (RM) TELEFONO=06XXXXXXXXXXXX #Nome da cercare in "pap-secrets" NOME_UTENTE=ggabriele.gvgsoft #Rende disponibili le variabili allo script "dialup". export TELEFONO #Dove si trova lo script "dialup" SCRIPT_DIALUP=/etc/ppp/dialup #Nuovo "resolv.conf" NUOVO_RESOLV=/etc/ppp/resolv.tisc #Vecchio "resolv.conf" VECCHIO_RESOLV=/etc/resolv.conf #Modifica "resolv.conf" rm -f $VECCHIO_RESOLV cp $NUOVO_RESOLV $VECCHIO_RESOLV #Avvio della connessione. exec /usr/sbin/pppd connect $SCRIPT_DIALUP user $NOME_UTENTE
File /etc/ppp/resolv.tisc
domain tiscalinet.it nameserver 195.130.224.18 nameserver 195.130.225.129
File /etc/ppp/options
#Fa sì che lo script non venga eseguito in secondo piano #e che possa essere ucciso con CTRL-C. -detach #Usa il lock per assicurarsi un accesso esclusivo #al dispositivo seriale. Questo potrebbe provocare #in kppp un messaggio del tipo "Trovata l'opzione #lock. Rimuoverla perché gestita automaticamente". lock #Porta su cui è attaccato il modem: #ttyS0=COM1 ttyS1=COM2 ttyS2=COM3 ttyS3=COM4 /dev/ttyS3 #Velocità di connessione porta-modem. 115200 #Controllo di flusso hardware. crtscts #Non vengono assegnati indirizzi IP di default noipdefault defaultroute modem asyncmap 0 #Massima grandezza del pacchetto trasmesso. mtu 1024 #Massima dimensione del pacchetto ricevuto. mru 1024
File /etc/ppp/dialup
#!/bin/sh # # This is part 2 of the ppp-on script. It will perform the connection # protocol for the desired connection. # exec /usr/sbin/chat -v \ TIMEOUT 3 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rAT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 30 \ SAY "Composizione del numero ed\n" \ SAY "avvio della connessione...\n" \ OK ATDT$TELEFONO \ CONNECT ''
Naturalmente, il file etc/ppp/pap-secrets contiene la password in questa maniera:
nome_utente [TAB] * [TAB] password
Come mai il numero di telefono del provider viene composto due volte in Red Hat 6.1?
__________
C'è un baco per cui il numero di telefono viene composto due volte prima di accedere ad Internet. Sul sito di Red Hat <http://www.redhat.com> è disponibile la versione corretta. Si trova anche l'aggiornamento di `rp3', il programma per la gestione degli account Internet.
C'è il modo, connnettendosi tramite script, di vedere i tempi di durata della connessione?
__________
Il pppd scrive nel suo file di log i tempi di inizio e fine connessione, da esso puoi ricavarti le durate. Il file di log predefinito è /var/log/messages
, ma io l'ho modificato nel syslog.conf
così:
*.info;mail.none;authpriv.none;daemon.none /var/log/messages # Daemon daemon.* /var/log/daemon
In questo modo il file di log è /var/log/daemon
.
Se cerco di usare il ppp per il collegamento ad Internet, mi compare una casella di dialogo che mi avverte che il demone pppd non è installato correttamente e bisogna installarlo con il set user ID. Che vuol dire?
__________
Normalmente l'uso del ppp è riservato all'utente root. Per permetterne l'uso anche agli altri utenti, si fa in modo che quando questo viene eseguito, il sistema pensi che sia root a farlo. Per questo esiste un bit speciale nei permessi.
Per attivarlo usa:
#
cd /usr/sbin
[Invio]
#
chmod u+s pppd
[Invio]
Ho una Mandrake 6.1 (helios); ho installato e configurato tutto. Linuxconf fra le varie opzioni imposta anche la connessione ad Internet. Dove va a posizionare gli script?
__________
La Red Hat 6.0 da cui Helios è derivata li mette in /etc/sysconfig/network-scripts/
Se eseguo la connessione ad Internet senza usare diald va tutto bene, usando diald la chiamata viene effettuata ma l'autenticazione non va a buon fine. Perché?
__________
Devi dirgli chi è l'utente che accede. Questo in genere si fa in tre modi. Innanzitutto inserisci in /etc/ppp/pap-secret
nome_utente e password e poi:
nel file /etc/ppp/options
inserisci la riga:
user <nome utente>
puoi specificare il nome utente direttamente dentro lo script di chat invece che nel file 'option', ma poi dopo avrai problemi se lavori, come dovrebbe essere, con un account diverso da quello di root.
Il modo migliore è inserire in /etc/diald.conf
la riga:
ppp-options = user = <nome utente>
Visto che dopo tanto faticare sono riuscito a configurare Linux per la connessione ad Internet, potreste dirmi tutti i file che devo salvare per ripristinare il tutto un secondo tempo in caso mi dovesse capitare qualcosa al sistema?
__________
Oltre ad i singoli file eseguibili attivanti la connessione (connetti, if-up, ecc.):
/etc/ppp/options
/etc/ppp/pap-secrets
/etc/ppp/chat-script
/etc/resolv.conf
Perché quando lancio il dialup configuration tool mi viene restituito un bel messaggio di crash?
__________
Lancia:
#
netcfg
[Invio]
ed in 'interfaces' troverai che una delle due è senza nome e non attiva. È sufficiente cancellarla per rimuovere il problema.
Come si può configurare il proprio sistema per accedere ad Internet con diversi provider?
__________
Basta uno script che cambi i file:
/etc/ppp/options
/etc/ppp/pap-secrets
/etc/ppp/chat-script
/etc/resolv.conf
quindi prima di tutto occorre copiare questi file al sicuro!
Creiamo un file .spec per ogni provider che abbiamo. (I file .spec servono a creare i pacchetti rpm)
tiscali.spec, tin.spec, ecc. con il seguente contenuto (copiate le righe tra gli **********)
Ad esempio ora mi collego felicemente con Tiscali e scrivo questo file:
************************************************************************ Name: Connessione_tiscali Summary: Tutte le impostazioni e gli scripts per la connessione a Tiscali Version: 1.0 Release: 1 Copyright: Uso personale Gaetano Paolone Group: Applications Packager: Gaetano Paolone <gaetano@pluto.linux.it> %description Ecco i file per la connessione a tiscali. %files /etc/ppp/options /etc/ppp/pap-secrets /etc/ppp/chat-script /etc/resolv.conf **************************************************************************
Creiamo ora l' rpm:
#
rpm -bb tiscali.spec
[Invio]
(che creerà qualcosa come Connessione_tiscali-1.0-1.rpm)
Fatto il primo, cambio i file e quando funzionano con la nuova configurazione (ad esempio con tin), creo il secondo rpm:
#
rpm -bb tin.spec
[Invio]
ecc. e ricominciamo.
Fatti tutti gli rpm creiamo vari script per attivarli:
#
attiva_tiscali
[Invio]
che conterrà la riga:
#
rpm -Uvh Connessione_tiscali-1.0-1.rpm
[Invio]
(o qualcosa del genere)
attiva_tin ecc.
Diamo loro il permesso di esecuzione e copiamoli in una directory di percorso (path).
Ora basterà digitare il nome dello script per cambiare tutti i file di configurazione.
Come posso collegarmi a diversi fornitori di accesso Internet?
__________
Ecco come si può impostare Linux per connettersi a due provider (es. Tiscali e Infostrada).
È necessario modificare o aggiungere alcuni file contenuti in /etc/ppp nel modo seguente:
Cancellare il contenuto di chap-secrets;
Creare due file:
dial-infostrada
dial-tiscali
ciascuno con un contenuto del tipo:
REPORT CONNECT ABORT "BUSY" ABORT "NO CARRIER" ABORT "NO DIALTONE" "" ATL0M0X4 OK ATDTnum_tel_provider CONNECT
Creare il file options fatto più o meno così (con opzioni generiche rispetto al provider):
/dev/modem 57600 debug lock crtscts defaultroute
Modificare pap-secrets nel seguente modo:
# Secrets for authentication using PAP # client server secret IP addresses tuo_username_infostrada infostrada tua_password_infostrada tuo_username_tiscali tiscali tua_password_tiscali
Per avviare gli script e le opzioni corrette per ciascun provider creare due file diversi al posto di ppp-on e cioè ppp-tiscali-on e ppp-infostrada-on fatti così:
/usr/sbin/pppd connect '/usr/sbin/chat -v -f /etc/ppp/dial-nome_provider'\ /dev/modem 57600 debug lock crtscts defaultroute call options-nome_provider\ -d -detach &
Creare la directory peers sotto /etc/ppp
e inserire due file, options-infostrada e options-tiscali ciascun con il seguente contenuto:
name tuo_nomeutente_presso_quel_provider
Volendo, per Infostrada, si può aggiungere:
mtu 552 mru 552
Modificare il file /etc/resolv.conf
inserendo i nomi di server di entrambi i provider e modificare /etc/hosts
in modo che contenga gli indirizzi ip di entrambi i server di posta (eventualmente ricavandoli effettuando un ping su i due server) per evitare che la connessione con uno dei due provider impedisca il prelievo della posta presso il server dell'altro.
Se tutti i permessi sono impostati correttamente, il tutto dovrebbe essere pronto a funzionare correttamente, anche per più di due provider con le ovvie aggiunte (tutte le opzioni particolari riguardanti i singoli provider non vanno poste, ovviamente, in options che contiene le opzioni generiche e non va eliminato, ma bensì in peers/options-nome_provider).
Sto provando a configurare un accesso dial-up ad una macchina con Linux e modem. Che operazioni devo compiere?
__________
Occorre installare mgetty e avere il supporto per il ppp (dovrebbe essere presente in tutte le distribuzioni).
Nel file /etc/mgetty/login.config
va abilitata l'opzione AutoPPP:
/AutoPPP/ - a_ppp /usr/sbin/pppd /dev/ttySy
dove ttySy è la porta utilizzata dal modem.
Sul file /etc/mgetty/mgetty.config
non occorre inserire alcuna opzione particolare, al limite la velocità della porta.
Nel file /etc/ppp/options
vanno abilitate le opzioni valide per le connessioni entranti (in conflitto con eventuali connessioni uscenti):
asyncmap 0 auth crtscts lock modem netmask 255.255.255.0 passive +pap login lcp-echo-interval 30 #o altro a piacere lcp-echo-failure 4 #o altro a piacere
Nel file /etc/ppp/options.ttySx
(ttySx è sempre la porta del modem) vanno inseriti l'indirizzo della macchina che fa da server e l'indirizzo di quella client:
#pc.server:pc.client 192.168.0.1:192.168.0.2 #o altri indirizzi a piacere, ma sempre di una stessa rete!
Nel file /etc/ppp/pap-secrets
va inserita una riga per permettere l'accesso al ppp a tutti gli utenti:
* pc.server "" -
al posto di pc.server metti il nome che hai assegnato al tuo host. Nel file /etc/hosts
vanno inseriti i nomi e gli indirizzi utilizzati:
127.0.0.1 localhost 192.168.0.1 pc.server #o quello che vuoi 192.168.0.2 pc.client #idem come sopra
Nel file /etc/networks
vanno inserite le informazioni relative alla rete locale che si crea durante la connessione oltre alla rete virtuale localnet:
127.0.0.0. localnet 192.168.0.0 rete.mia
Nel file /etc/inittab
va inserito naturalmente l'mgetty sulla porta usata dal modem (in modalità respawn), quindi occorre che ci sia una riga tipo:
T1:23:respawn:/sbin/mgetty -x5 -s 57600 ttySx
Da notare che 57600 può essere aumentato a velocità superiori, specialmente se si possiede un modem veloce, e ci si deve ricordare di sostituire ttySx con ttyS1, 2, ecc.
A questo punto, all'avvio di Linux, mgetty attende una chiamata sulla sua porta e con l'opzione AutoPPP fa partire il ppp non appena la connessione è andata in porto. Il ppp negozia il login e la password (opzione +pap) automaticamente andando a controllare direttamente il file delle password di Linux (quello degli utenti comuni). Attenzione: devi aver installato anche il PAM.
Ho una macchina con Linux. Vorrei che essa accetti connessioni dall'esterno. Cosa devo fare?
__________
Devi installare mgetty e inserire una riga come questa in /etc/inittab
:
T3:3:respawn:/sbin/mgetty -D -n5 -x5 -s 57600 ttyS2
l'opzione -n indica il numero di squilli dopo i quali accettare la connessione. Leggiti il manuale di mgetty per le altre funzioni, come quella che prevede di non rispondere la prima volta, ma se dopo 30 secondi e entro un altro tot arriva un'altra chiamata, mgetty connette il modem.
Per disabilitarlo, basta cambiare runlevel:
#
telinit 2
[Invio]
sempre che il runlevel 2 sia quello predefinito e il 3 quello indicato nella riga citata sopra su /etc/inittab
(il secondo campo dopo T3).
Se hai bisogno di gestire la cosa in base all'orario, inserisci una riga in /etc/crontab
e fai tutto automaticamente. Attenzione: la configurazione del ppp per le chiamate in entrata non è la stessa per quelle in uscita (per connettersi a Internet).
Ho un account su un sistema remoto. A volte lo utilizzo per scaricare dei file. Come posso impartire i comandi ftp o wget in modo che essi possano continuare se mi sconnetto?
__________
Con i seguenti comandi:
$
nohup ftp -f ( oppure -n) < ftp-file
[Invio]
in ftp-file
metti i comandi da trasmettere ad ftp.
Oppure usa wget, passando nome e password alla riga di comando. Ciò è comodo perché, se viene supportato dal server remoto, wget permette di riprendere eventuali interruzioni nello scaricamento.
In ogni caso puoi semplicemente lanciare in background il comando:
$
tail -f nohup.out &
[Invio]
e di seguito avviare la tua sessione ftp o wget con nohup. Potrai seguire così l'andamento delle operazioni sulla console.
Qualcuno mi può descrivere configurazioni funzionanti di fetchmail e procmail per scaricare e smistare la posta?
__________
Ecco la mia configurazione. Qui c'è un esempio relativo allo scaricamento e allo smistamento dei miei messaggi dai diversi server di posta. I messaggi scaricati (qui c'è l'esempio della mailing list angolinux) possono essere spostati, reindirizzati o cancellati in base a filtri.
Io faccio tutto con uno script chiamato MAIL:
---------- BEGIN: /script/MAIL --------- #!/bin/bash # creo i file temporanei (a zero byte) per contare quante mail sono # arrivate. cat /dev/null > .angolinux.count # scarico la posta fetchmail -v # scrivo il report echo echo " +--------+" echo " | report |" echo " +--------+" echo echo "angolinux mail:`wc -w < ~/.angolinux.count`" # rimuovo i file temporanei di conteggio rm ~/.angolinux.count 2> /dev/null ---------- END: /script/MAIL ---------
nella mia directory home c'è il file .fetchmailrc
per dire a fetchmail come scaricare la posta tramite POP3 (server, login, pass, ecc.) e smistarla tra i vari utenti (nel mio caso sono io -oltre a root- l'unico utente):
---------- BEGIN: /home/fritz/.fetchmailrc --------- poll "mail.dada.it" proto pop3 user "fritz" with pass "CENSORED" is "fritz" here forcecr smtpaddress localhost poll "mail.mdsnet.it" proto pop3 user "fritz2" with pass "CENSORED" is "fritz" here forcecr smtpaddress localhost # così per tutti gli altri account pop3 [...] ---------- END: /home/fritz/.fetchmailrc ---------
e .procmailrc
:
---------- BEGIN: /home/fritz/.procmailrc --------- DATE=`date +%m-%y` PATH=/bin:/usr/bin:/usr/bin MAILDIR=$HOME/mail #you'd better make sure it exists DEFAULT=/usr/spool/mail/fritz LOGFILE=~/.log_procmail #recommended # -- BACKUP DI TUTTE LE MAIL IN backup/all.gz -- # quando si maneggia con la posta, è sempre meglio fare un backup # preventivo di tutto, per evitare di poter perderla a causa di una cattiva # configurazione. Queste due righe mi hanno salvato due volte appena ho iniziato a # giocare con procmail, causa cattiva impostazione e e-mail sparite. :0 c | gzip >> backup/all.$DATE.gz # -- ANGOLINUX -- # funziona così: se c'è una mail incrementa il file contatore di una # parola (1 o oblurasci sarebbe stato equivalente, poiché dopo # «wc -w» conta solo il numero di parole presenti) senza cancellarla, # poi una copia la mette nella cartella angolinux, e un'altra la mette come # backup (sì sono un po' paranoico, pena l'esperienza) nel file # backup/angolinux.$DATE.gz, che le salva in base al mese. :0 c * ^To.*angolinux@systems.it | echo 1 >> ~/.angolinux.count :0 Ac: angolinux :0 A: | gzip >> backup/angolinux.$DATE.gz [...] (tutte le altre mailing list) # -- MISC: tutte le altre -- # le mail che arrivano fino qui non appartengono a nessuna mailing list, # sono le mie personali, quindi lascio che il client (nel mio caso # Pine) le prenda da /var/spool/mail/fritz :0 c | echo 1 >> ~/.misc.count :0 Ac: | gzip >> backup/misc.$DATE.gz ---------- END: /home/fritz/.procmailrc ---------
questa è la mia configurazione, adatta per Pine, ma abbastanza uniforme per molti gestori di posta.
A rigor di cronaca, ecco il risultato del comando MAIL non connessi, quindi non scarica nulla, perché non riesce a connettersi al server pop3:
darkstar:~$ MAIL fetchmail: 5.1.2 querying mail.dada.it (protocol POP3) at Thu, 10 Feb 2000 17:21:27 +0100 (CET) fetchmail: POP3 connection to mail.dada.it failed: temporary name server error fetchmail: Query status=2 fetchmail: normal termination, status 2 [...] +--------+ | report | +--------+ angolinux mail: 0 n3wblist mail: 0 sppgroup mail: 0 blacksun mail: 0 bugtraq mail: 0 pizza_ml mail: 0 md_ml mail: 0 misc mail: 0
Come faccio a configurare Fetchmail in modo che scarichi anche la posta di altri utenti e la ridistribuisca (agli altri utenti)?
__________
defaults proto pop3 poll <POP3> user <ut1> pass <pass1> is <localhost> here mda \ "procmail -d <ut1>" poll <POP3> user <ut2> pass <pass2> is <localhost> here mda \ "procmail -d <ut2>" ...............
(procmail ti serve se vuoi filtrare la posta in diversi modi...)
Ovviamente i termini entro parentesi acute nascondono i corrispondenti valori reali. I valori POP3 saranno diversi, se i provider sono diversi.
Come si configura .fetchmailrc?
__________
Il mio file di configurazione (.fetchmailrc
) ha una serie di voci (una per ciascun server di posta, ovviamente) con il seguente aspetto:
#---------------------------- poll "pop.tiscalinet.it" protocol pop3 username "tuo_nomeutente_presso_tiscali" password "tua_password" #----------------------------
e con tale configurazione non ho problemi con alcuno dei server di posta che utilizzo.
Inoltre la riga di comando con cui viene avviato fetchmail è:
#
fetchmail -d 300
[Invio]
che controlla la presenza di posta sul server ogni 300 secondi. Spesso è necessario un pò di attesa (1 minuto circa) prima che fetchmail cominci effettivamente a scaricare la posta.
Qulacuno mi mostra i propri .fetchmailrc e .procmailrc funzionanti?
__________
fetchmailrc
poll pop.tiscalinet.it with proto POP3 user "user" password "pass" \ mda '/usr/bin/procmail -d %T'
.procmailrc
PATH=/bin:/usr/bin:/usr/bin MAILDIR=$HOME/mail #you'd better make sure it exists DEFAULT=$MAILDIR/altre #completely optional LOGFILE=$MAILDIR/log #recommended :0: * ^TOmioindirizzodiposta@mioprovider.it inbox
Cosa devo configurare il sistema per gestire i messaggi interni ad una rete locale con il dominio Internet? Se devo mandare un messaggio ad un mio collega e voglio inviarlo come utente@provider_Internet.it senza farlo però uscire dalla rete locale, cosa devo configurare?
__________
Devi modificare il sendmail.cf
in modo che includa la caratteristica use_cw. Quindi nel file sendmail.cw
scriverai i domini da trattare come locali. Per fare questo, dovrai però aver configurato anche un name server locale che gestisca per finta la zona provider_Internet.it, con il Mail eXchanger (l'host dedicato alla gestione della posta per un dominio indicato nei file di zona del bind con MX) che punta all'host del tuo server di posta locale e gli altri (www e altri, se esistono) che puntano ai loro effettivi IP Internet, onde evitare spiacevoli disguidi. Poiché per esempio utente@provider_Internet.it non corrisponderà all'utente locale utente, avrai bisogno di impostare anche la virtusertable del sendmail (con la caratteristica omonima nel sendmail.cf
) che ti permette di associare gli indirizzi virtuali a quelli locali esistenti, nella forma:
utente@provider_Internet.it utente_locale
(il separatore è un tab)
Utilizzando procmail, questi mi mette la posta in /var/spool/mail/enrico
. La vorrei in ~/Maildir
. Come faccio?
__________
Puoi risolvere facilmente creando un file .procmailrc
con:
$
touch .procmailrc
[Invio]
nella directory home dell'utente. Nel file, specificherai le variabili di ambiente che ti interessano, ad esempio:
PATH=3D/bin:/usr/bin:/usr/bin MAILDIR=3D$HOME/Maildir DEFAULT=3D$MAILDIR/mbox
Qualora non si utilizzino le soluzioni sotto forma di pacchetto, i sorgenti si troveranno in due versioni: una del formato «postfix-xyz.tar.gz» che rappresenta l'attuale versione stabile e l'altra «snapshot-jwy.tar.gz» che è una versione su cui si sta ancora lavorando. Una volta scaricato, il sorgente va decompresso:
#
tar -zxvf sorgente.tar.gz
[Invio]
Entriamo nella directory creata dal processo di decompressione e impartiamo il comando:
#
make
[Invio]
Dopo aver fatto questo, occorre rinominare alcuni file:
#
mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF
[Invio]
#
mv /usr/bin/newaliases /usr/bin/newaliases.OFF
[Invio]
#
mv /usr/bin/mailq /usr/bin/mailq.OFF
[Invio]
#
chmod 755 /usr/sbin/sendmail.OFF
[Invio]
Poi si da il comando:
#
useradd postfix
[Invio]
In /etc/passwd
dovremo avere qualcosa del genere:
postfix:*:12345:12345:postfix:/no/where:/no/shell
Aggiungiamo in /etc/aliases
:
postfix: root root utente_non_privilegiato MAILER-DAEMON: postmaster postmaster: root
In seguito, dalla directory dove è stato decompresso digitiamo:
#
sh INSTALL.sh
[Invio]
rispondendo alle domande che ci vengono poste. Mettiamo in /etc/postfix/main.cf
queste righe:
# tenta di spedire la coda ogni 5 min. queue_run_delay = 300 # 3 giorni in coda maximal_queue_lifetime = 3 biff = no relayhost = [smtp.tiscalinet.it] sender_canonical_maps = hash:/etc/postfix/sender_canonical virtual_maps = hash:/etc/postfix/virtual
Poi creiamo /etc/postfix/sender_canonical
così:
utente_locale veroindirizzoposta@provider.it
e /etc/postfix/virtual
così:
veroindirizzoposta@provider.it utente_locale
Poi diamo il comando:
#
postmap hash:/etc/postfix/sender_canonical
[Invio]
e
#
postmap hash:/etc/postfix/virtual
[Invio]
diamo il comando per inizializzare il database degli alias:
#
newaliases
[Invio]
Ora bisogna avviare postfix:
#
postfix start
[Invio]
I comandi:
sendmail -bp visualizza la coda delle mail in uscita mailq visualizza la coda delle mail in uscita sendmail -q dice a postfix di mandare i messaggi in attesa postfix -flush dice a postfix di mandare i messaggi in attesa
Ad ogni avvio mi appare You have new mail , ma digitando 'mail' la risposta è command not found.
__________
Non hai installato il comando mail o un qualsiasi MUA, un semplice programma di posta elettronica. Se lo state facendo per root, è giusto così (per motivi di sicurezza è bene che root non usi programmi per la posta), e potete usare:
#
less /var/spool/mail/root
[Invio]
altrimenti è consigliabile installare un programma per la posta (non tanto mail, che è piuttosto poco intuitivo, quanto ad esempio mutt).
Ogni volta che accendo la macchina, durante l'avvio mi si blocca su sendmail e devo aspettare qualche minuto. È molto noioso, posso evitarlo?
__________
Se la macchina non è direttamente connessa alla rete, modifica il file /etc/hosts affinché contenga:
127.0.0.1 localhost
Se invece è connessa costantemente alla rete ed ha un IP fisso, sendmail si blocca se /etc/hosts contiene la riga:
127.0.0.1 localhost host_name
modificalo così:
127.0.0.1 localhost w.x.y.z host_name
Qual è l'indirizzo cui fare telnet per verificare la configurazione di sendmail relativamente all'antispamming?
__________
mail-abuse.org
Come posso mandare un file di testo in allegato dopo averlo compresso?
$
tar czf - nomefile.txt | uuencode prova.tgz | mail -s "Oggetto della mail"
[Invio]
Conosco il comando mail -s "soggetto del messaggio" ma poi non riesco a capire come fare per associare anche un testo al messaggio.
__________
$
mail utente@server -s "Soggetto del messaggio" < file.txt
[Invio]
oppure:
$
cat file.txt | mail -s "Soggetto del messaggio" utente@server
[Invio]
Vorrei spedire lo stesso messaggio allo stesso indirizzo ogni 30 minuti per un periodo indeterminato di tempo. Come posso fare?
__________
Lo puoi fare con questo script (shell tcsh):
#!/bin/tcsh touch go_on while(1) if (-f go_on) then mail indirizzo < file.in sleep 3 else break endif end
così, fino a quando non cancelli il file go_on
, ogni tre secondi verrà spedito un messaggio contenente il file file.in
(in cui puoi scrivere quello che vuoi) all'indirizzo che scrivi al posto di indirizzo.
Come faccio ad eliminare i duplicati dei messaggi di posta elettronica?
__________
Il programma formail ha un'opzione per togliere i duplicati, controllando la stringa di identificazione che viene via via memorizzata in un file temporaneo durante la scansione della mailbox.
In particolare, ecco lo script che ho costruito:
#!/usr/bin/bash > cache.tmp cp $1 $1.original formail -D 2000000 cache.tmp -s <$1 > x.tmp cp x.tmp $1 rm x.tmp
Lo script l'ho chiamato dedup. Occorre lanciarlo nella directory dove stanno le cartelle (in formato MBOX), tipicamente ~/Mail
, mettendo come argomento il nome della cartella stessa. Il parametro dopo -D rappresenta la dimensione massima (impostabile a piacere) che deve avere il file temporaneo.
Nel caso di più cartelle di posta, ecco qui un altro script che automatizza ogni cosa:
#!/usr/bin/bash export MAILDIR=~/Mail export PROGDIR=~/scripts cd $MAILDIR rm cmd rm .*.index ls -1 > lista awk '$1!="lista" && match($1,"dedup")==0 {printf("echo \042Esamino mailbox %s.\042\n$PROGDIR/dedup %s\n",$1,$1);}' lista > cmd chmod 755 cmd ./cmd rm -f cmd cache.tmp lista cd
ovviamente cambiando le directory secondo il proprio ambiente. Lo script, che ho chiamato dedup_all, in pratica prepara la lista delle cartelle, poi con awk crea uno script che richiama lo script mostrato prima per ogni cartella da ripulire. Alla fine dell'elaborazione, oltre alle cartelle ripulite, si hanno a disposizione anche le cartelle originali (qualora qualcosa fosse andato storto). Esse, col suffisso .original, possono benissimo essere cancellate se si vede che l'operazione è andata a buon fine.
Quale è la sintassi esatta del file .forward, per poter reindirizzare le e-mail che mi arrivano ad un indirizzo e-mail verso un altro indirizzo?
__________
devi specificare l'utente (o gli utenti separati da una virgola), se vuoi ad esempio che venga fatto un reindirizzamento completo imposta il file $HOME/.forward
a:
indirizzo destinatario
se invece vuoi un duplicato delle mail:
indirizzo1, indirizzo2
Come è possibile scegliere la signature in maniera casuale?
__________
Con sig_rotate.pl (su <http://www.Freshmeat.net>)
Ho una rete interna con gateway e server di posta sulla stessa macchina. Non riesco ad inviare la posta dall'interno della rete verso l'esterno; dal server invece, tutto funziona.
__________
Devi abilitare il relay per i client. Se non specificato diversamente, sendmail dovrebbe leggere gli ip abilitati nel file /etc/mail/relay-domains
. Se non ce l'hai, crealo e inserisci gli ip delle macchine che dovranno usare il gateway come server di posta.
Esempio:
192.168.1.1 192.168.1.2 192.168.1.3
Sto cercando di configurare mutt. Riesco a spedire i messaggi, ma se provo a scaricarli, ricevo il messaggio:
l'host POP non è stato definito.
In .fetchmailrc
ho messo:
poll popmail.iol.it proto pop3 user skywalker2 password miapassword keep
Perché non riesco?
__________
Utilizza questa sintassi:
poll popmail.iol.it proto POP3 user skywalker2 password "tua_password" is tua_login here
In questo modo le e-mail vanno direttamente nella mailbox del tuo utente.
Se invece intendi configurare mutt per scaricare direttamente dal server pop della iol, devi ricompilarlo col supporto per il pop e scrivere in .muttrc:
set pop_delete #per cancellare le mails dal server set pop_host="popmail.iol.it" set pop_port=110 set pop_pass="tua_pass" set pop_user="skywalker2
È possibile spedire un allegato con mutt da riga di comando?
__________
Sì, lo puoi fare con:
$
echo "testo messaggio" | mutt -a "nome_attachment" -s "soggetto" destinatario@dominio.net
[Invio]
Come si fa in mutt a cambiare la stringa di risposta (quella che dice "On Wed, 31 Feb 2010 xyz wrote" o qualcosa del genere)?
__________
Inserisci nel file ~/.muttrc
:
set attribution = "On %d, %n wrote"
Quando rispondo e cambio il soggetto del messaggio, vorrei che mutt aggiungesse [Was vecchiosoggetto] come fa pine. Come si fa?
__________
Inserisci nel file ~/.muttrc
:
set reply_regexp="^(re([\\[0-9\\]+])*|aw):[ \t]*"
Che cosa devo impostare per vedere i colori di mutt anche nel terminale grafico di Gnome?
__________
Prova a scrivere:
$
export TERM=linux
[Invio]
e poi lancia mutt.
Presto andrò in vacanza e vorrei che il computer scaricasse la posta. Vorrei che tutto funzionasse senza problemi e penso che Linux lo possa fare. (utilizzo fetchmail) Come?
__________
Un crontab chiama un solo script più o meno così:
#!/bin/sh pon while ! (/sbin/ifconfig | grep -q ppp0) do sleep 1 done fetchmail poff
dove pon è lo script che inizializza il collegamento, e poff chiude il collegamento. Lo script non fa altro che aspettare, scaricare la posta e chiudere il collegamento. Se non c'è posta il collegamento viene chiuso subito, e se ci sono problemi tecnici, fetchmail va in timeout dopo circa un minuto, dopo di che il collegamento viene comunque chiuso.
Mi capita talvolta di ricevere via e-mail degli allegati mime inseriti direttamente nel testo e quindi non decodificati automaticamente dal client e-mail.
__________
Non sono allegati mime ma uuencode e li decodifichi salvando il messaggio e usando il comando:
$
uudecode -o nomefile filesalvato
[Invio]
Vorrei chiedere due cose su postfix:
Come faccio a ricevere la posta in locale (tipo /etc/sendmail.cf
) perché mi restituisce il solito 'relay denied'.
Procmail non mi divide più le mail in base al mio file ~/.procmailrc
, devo impostare qualcosa in /etc/postfix/main.cf
? tipo:
mailbox_command = /some/where/procmail</p>
__________
Devi impostare la variabile $mynetworks in main.cf
. Oltre a mynetwork devi anche impostare la variabile $mydestination
# The mydestination parameter specifies the list of domains that this # machine considers itself the final destination for. # # The default is $myhostname + localhost.$mydomain. On a mail domain # gateway, you should also include $mydomain. Do not specify the # names of domains that this machine is backup MX host for. Specify # those names via the relay_domains or permit_mx_backup settings for # the SMTP server (see sample-smtpd.cf. # # The local machine is always the final destination for mail addressed # to user@[the.net.work.address] of an interface that the mail system # receives mail on (see the inet_interfaces parameter). # # Specify a list of host or domain names, /file/name or type:table # patterns, separated by commas and/or whitespace. A /file/name # pattern is replaced by its contents; a type:table is matched when # a name matches a lookup key. Continue long lines by starting the # next line with whitespace. # #mydestination = $myhostname, localhost.$mydomain
Ho una piccola rete e ho problemi con la posta elettronica. Se invio una e-mail al di fuori dell'intranet mi risponde che il server SMTP non riconosce il 'recipient' e mi chiede di modificarlo. Accetta soltanto e-mail verso altri utenti dello stesso server. Perché?
__________
Perché la versione di sendmail ha sicuramente un filtro chiamato anti-relay, perciò devi creare un file
/etc/sendmail.cR
e dichiararlo in /etc/sendmail.cf
.
in /etc/sendmail.cf
:
####### ######### ####### start antispamming rules ######### ####### ######### FR-o /etc/sendmail.cR Scheck_rcpt # anything terminating locally is ok R<$+@$=w> $@ OK R<$+@$=R> $@ OK # anything originating locally is ok R$* $: $(dequote "" $&{client_name} $) R$=w $@ OK R$=R $@ OK R$@ $@ OK # anything else i bogus R$* $#error $: "550 Relaing Denied" ####### ######### ####### end antispamming rules #########
mentre il file /etc/sendmail.cR
(nota la R maiuscola) deve avere la struttura
pc1.name.it [192.168.0.2] pc2.name.it [192.168.0.3] pc3.name.it [192.168.0.4] pc4.name.it [192.168.0.5]
Qualcuno di voi ha idea di come si controlla il colore dello sfondo di lynx?
__________
Puoi creare un alias in .bashrc
del tipo:
alias lynx='xterm -bg X -fg Y -fn 10x20 -geometry 80x25 -e lynx'
dove:
bg è il colore di sfondo
fg quello del testo
fn è il font
geometry la dimensione dell'xterm
inoltre puoi configurare i colori del testo, dei link e quant'altro nel file /etc/lynx.cfg
.
Come si fa con lynx a fare il refresh di una pagina?
__________
[Ctrl-L] per il refresh della videata,
[Ctrl-R] per il reload del file che stai leggendo.
Come faccio a leggere le news dopo averle scaricate?
__________
Per leggere le news una volta sconnessi da Internet occorre utilizzare leafnode per scaricare i messaggi. In seguito si può utilizzare il proprio programma preferito. leafnode è un server NNTP concepito per soddisfare un traffico molto ridotto e ben si adatta al leggere e postare news anche se non collegati ad Internet.
Una volta installato, il pacchetto è gestito da inetd. Esso resta in ascolto di richieste sulla porta 119. Per fare questo basta assicurarsi che nel file /etc/inetd.conf
sia presente la seguente riga:
nntp stream tcp nowait root /usr/local/sbin/leafnode leafnode
Il percorso dell'eseguibile di leafnode potrebbe essere diverso, anche se solitamente si trova nel percorso riportato.
Bisogna poi effettuare la configurazione del server. Tutto è fatto tramite il file config
presente, in /etc/leafnode/
o in /usr/local/lib/leafnode/
a seconda delle distribuzioni. Il file solitamente è commentato e presenta alcuni esempi. Bisogna stabilire da quale server recuperare i messaggi, con la riga:
server = news.mioserver.it (ad es. news.libero.it, oppure news.tiscalinet.it, ecc.)
Si stabilisce poi dopo quanti giorni gli articoli dovranno essere considerati ormai obsoleti, con la riga:
expire = 7
In questo modo gli articoli più vecchi di una settimana potranno essere eliminati. Questa operazione garantisce di non riempire la directory /var/spool/news
di migliaia di messaggi già letti che potrebbero rallentare il server e che comunque non sono di alcuna utilità. È bene quindi di tanto in tanto lanciare (da utente root) il comando texpire che provvede a eliminare i messaggi datati.
Se poi il vostro provider richiedesse l'autenticazione per accedere al server delle news, potete anche aggiungere (o togliere il commento) le righe:
username = nome_utente password = mia_pass
È possibile specificare un altro server alternativo per i gruppi non presenti nel primo:
supplement = news.altroserver.it
e gli eventuali:
username = nome_utente_2 password = mia_pass_2
Se si sono sottoscritti gruppi particolarmente interessanti di cui si vuole mantenere i messaggi più a lungo, leafnode permette di specificare tempi diversi per i vari gruppi:
groupexpire it.comp.retrocomputing = 20
ed è possibile anche usare gli * per indicare più gruppi della stessa famiglia:
groupexpire it.comp.linux.* = 5
Quanto poi al numero massimo di nuovi messaggi recuperati ogni volta, se ne imposta il valore con:
maxfetch = 500
Se invece si vuole impostare il numero di articoli da scaricare dai gruppi appena sottoscritti, si utilizza:
initialfetch = 100
Per evitare di recuperare messaggi recanti spam, è possibile utilizzare un trucchetto, che però aggira solamente il problema e non lo risolve veramente. Si tratta di fare un controllo su eventuali messaggi inviati a più gruppi di discussione. Attenzione però che si potrebbero perdere articoli che non erano vera spam!
maxcrosspost = 5
Leafnode permette anche di impostare un'età massima per gli articoli recuperati, evitando di scaricare articoli ormai vecchi ma ancora presenti sul server del provider:
maxage = 10
Vi sono poi una serie di altre opzioni di controllo meno usate ma che si possono rivelare utili in alcuni casi:
maxlines = 100 (recupera i messaggi con massimo 100 linee) minlines = 2 (non scarica i messaggi con meno di 2 linee) maxbytes = 50000 (non scarica i messaggi più grossi di 50000 bytes) timeout_short = 1 (dopo un giorno smette di scaricare gruppi accidentalmente aperti; il valore predefinito è di 2 giorni) timeout_long = 6 (dopo 6 giorni che un gruppo non viene più letto esso smette di scaricarlo; il valore predefinito è 7 giorni)
Terminata la configurazione di base, leafnode è pronto per entrare in azione. Basta riavviare la macchina in modo che si rendano effettive le nuove configurazioni fatte. Dopo si lancia la connessione ad Internet e, da utente root, si lancia fetch (o fetch-news o ancora fetchnews, dipende dalla versione di leafnode che si utilizza).
A questo punto, la prima volta, leafnode inizia a recuperare la lista dei gruppi presenti sul server del provider (questa operazione può richiedere svariati minuti, durante i quali si vedrà il modem ricevere dati).
Quando si ripresenterà la shell dei comandi, vorrà dire che la lista dei gruppi è stata recuperata. A questo punto bisogna entrare nel programma per leggere le news, e, dopo aver impostato come server nntp «localhost» (o il nome che si è dato alla propria macchina), entrare nei gruppi che interessano.
Non basta sottoscriverli, bisogna proprio entrarci come per leggerne gli articoli. All'interno si troverà un messaggio fantoccio che informa che sul server (cioè la propria macchina) sta girando leafnode e che il gruppo è stato marcato per il recupero degli articoli la successiva volta che si lancerà fetch o i comandi descritti sopra. Ora si esce dal programma e si lancia, sempre da root, di nuovo fetch o i comandi descritti sopra e saranno scaricati i messaggi dei gruppi che si sono appena sottoscritti e visitati.
Bisogna notare che il comando di recupero dei messaggi va lanciato come root o come utente «news».
Una volta restituita la shell, leafnode avrà scaricato i messaggi dei gruppi, e sarà possibile chiudere la connessione con il provider.
Qualora la sottoscrizione di alcuni gruppi risulti vana se eseguita dal programma adibito alla lettura dei messaggi, occorrerà provare a sottoscriversi a tali gruppi mediante la creazione di file vuoti (di nome uguale al gruppo cui si vuole iscriversi) con i seguenti comandi:
#
touch /var/spool/news/interesting.groups/nome_gruppo
[Invio]
Perché dopo pochi giorni che mi sono iscritto ad un newsgroup, leafnode mi dice:
skipping it.xxxx.yyyyy from now on.
e non mi scarica più le news? Come posso evitarlo?
__________
Puoi oltrepassare questo inconveniente ricreando ogni volta i file presenti in /var/spool/news/interesting.groups/
.
Automatizza il tutto con uno script: il mio è:
rm -rf /var/spool/news/interesting.groups/* touch /var/spool/news/interesting.groups/comp.os.linux.setup touch /var/spool/news/interesting.groups/it.comp.linux.setup touch /var/spool/news/interesting.groups/it.comp.linux.pluto touch /var/spool/news/interesting.groups/it.comp.linux fetch -vvv #o fetchnews a seconda della versione di leafnode che utilizzi
Come è possibile controllare eventuali tentativi di connessione al mio sistema? Mi servirebbe specialmente quando utilizzo IRC.
__________
Esegui:
$
xconsole -fn 6x10 -geometry 485x100+470+0 -file /dev/xconsole &
[Invio]
/dev/xconsole
deve avere il permesso di lettura ovviamente.
Esiste un programma per Linux tipo Go!zilla oppure Getright di Windows?
__________
gtm per Gnome; wget per riga di comando.
Ho bisogno di scaricare un grosso file in più riprese. Ho provato con:
$
wget -n indirizzo
[Invio]
ma purtroppo ogni volta che lo rilancio fa ripartire lo scaricamento dall'inizio.
__________
La sintassi corretta è:
$
wget -c indirizzo
[Invio]
tieni presente che l'opzione -c funziona solo se non c'è un proxy di mezzo e se il reget (la funzione che rende possibile questa caratteristica) è abilitato sul server, anche se è quasi sempre presente. Per ciò che riguarda il proxy, è possibile impostare due variabili:
export ftp_proxy=proxy.domain.com:8080 export http_proxy=proxy.domain.com:8080
una volta dichiarate, puoi attivare o meno il proxy con l'opzione -Y
$
wget -Y on indirizzo
[Invio]
In questo caso non funziona l'opzione -c
Come si riprende lo scaricamento di un file da un sito FTP se se ne è scaricato solamente una parte?
Se il server ftp lo accetta, il comando è reget altrimenti utillizza wget con l'opzione -c
Voglio copiare il contenuto di un sito fino ai primi 5 link consecutivi, anche quelli che puntano fuori dal dominio del sito di partenza, ma non riesco. Mi copia solo quello che c'è nel dominio e non vuole andare fuori.
__________
$
wget -r -k -l 5 -H http://sito
[Invio]
Come si fa il mirror di un sito?
__________
Con wget, dai il comando:
$
wget -m http://www.sito.it
[Invio]
e fai il mirror completo di http://www.sito.com
Se volessimo fare il mirror di una directory di un sito FTP e di tutte le sue discendenti, dovremo dare il comando:
wget --mirror --relative --no-parent -nH "ftp://anonymous@ftp.pluto.linux.it/pub/pluto/ildp/AppuntiLinux"
ammesso che il server FTP principale sia: ftp.pluto.linux.it e che il ramo di directory cui siamo interessati sia /pub/pluto/ildp/AppuntiLinux
.
Mi servirebbe un qualcosa di simile al wget che però supporti i server proxy
__________
Devi impostare le variabili:
#
export http_proxy="http://proxy.server.it:8080/"
[Invio]
#
export ftp_proxy="http://proxy.server.it:8080/"
[Invio]
naturalmente si usa -Y per abilitare l'uso del proxy:
#
wget -Y on URL
[Invio]
attenzione che però, usando il proxy, il wget -c non funziona (per la cronaca -c significa continua da dove ti eri fermato)
Come si può indicare a wget la password da utilizzare per scaricare un file mediante ftp?
__________
Dal man di wget:
You may encode your username and/or password to URL using the form: ftp://user:password@host/dir/file
che però non funziona se c'è un proxy di mezzo.
Ho installato un server Linux (Debian GNU/Linux 2.1 Kernel 2.2.10), funziona tutto ma ho il seguente problema:
quando, via ftp, scarico sul server un file, i permessi di quest'ultimo vengono impostati così: rw-r-----
__________
Si deve cambiare l'umask. Prova a dare il comando:
#
umask 000
[Invio]
all'utente ftp Così ottieni:
rw-rw-rw-
Come posso automatizzare lo scaricamento di file in orari particolari?
__________
Ingredienti: wget, uno scriptino bash, un paio di demoni.
Innanzitutto se sulla nostra distribuzione ancora non fosse presente vediamo di procurarci wget, un programma potentissimo, estremamente facile da utilizzare, avente la capacità di scaricare file o interi siti da Internet, offrendo tra l'altro la possibilità di riprendere i download interrotti.
Poi dobbiamo decidere se e quando operare lo scaricamento dei file da noi scelti. Il momento migliore chiaramente è quando la riga è meno intasata, ossia verso le 5 del mattino.
Linux incorpora almeno un paio di demoni che possono fare al caso nostro: Crond (se pensiamo di ripetere ad intervalli regolari nel tempo una certa operazione, tipo tutti i giorni alle 5 del mattino) o Atd (per operazioni univoche. Consultiamo le relative pagine di manuale.
Vcron, è molto semplice da utilizzare e mi evita di dovermi ricordare la noiosa sintassi del crontab.
A questo punto ci scriviamo un piccolo script che, richiamato da cron ad una certa ora, si colleghi ad Internet, lanci wget, al termine dello scaricamento dei file interrompa la connessione, e spenga il pc.
#!/bin/sh #d_script = download script #Script di Roberto Veronico #(da utilizzare con Vcron ma non necessariamente) ###lancio la connessione in secondo piano /usr/sbin/pppd & ###aspetto che si colleghi until test -f /var/run/ppp0.pid do cat /dev/null done ###aspetto 15 secondi per l'assegnazione dell'ip dinamico a=$[SECONDS] b=$[$a+15] until test $[SECONDS] -gt $[b] do cat /dev/null done ###lancio wget che scaricherà quanto scritto in d_file /usr/bin/wget -c -i /home/rob/d_file -P /home/rob/temp/download ; ###uccido la connessione kill `cat /var/run/ppp0.pid`
È sufficiente quindi avere l'indirizzo del file da scaricare nel file /home/rob/d_file
(o, ovviamente, modificare il nome del file da scaricare nello script).
Come si installano i programmi forniti come tar.gz o tgz?
__________
Dopo avere scompattato i pacchetti, conviene leggersi i file README
ed INSTALL
che troviamo nella directory dove sono stati scompattati i file e che spiegano tutto quello che ti serve sapere in maniera molto semplice.
Generalmente i comandi che dovrai dare sono:
./configure
(Verifica se il tuo sistema ha tutto quello che serve per la compilazione del programma)
make
(Compila tutti i sorgenti)
make install
(Copia i file compilati nelle adeguate directory)
make clean
(Elimina eventuali file temporanei generati durante la compilazione)
Ripeto però che è sempre meglio leggere la documentazione, perché non sempre il procedimento è così semplice.
Talvolta invece i pacchetti che scarichi sono già compilati, in quel caso non devi far altro che copiarteli nella directory desiderata (o specificata nei README
) e chiamarli all'occorrenza.
Quando lancio un programma è necessario fare precedere il nome del programma da ./? C'è il modo di evitarlo?
__________
in .bash_profile
della tua home directory aggiungi in fondo alla dichiarazione della variabile PATH, un due punti seguito da punto (:.).
Se lancio un programma da un terminale e poi chiudo il terminale stesso, anche il programma che ho lanciato si interrompe. C'è un modo di evitarlo?
__________
Se nel terminale grafico utilizzate [Ctrl+D] il terminale si chiude ma il processo sopravvive. al [Ctrl+D] equivale il comando:
$
exit
[Invio]
Voglio solo l'applicazione, non mi interessa che il terminale sopravviva. Come posso lanciare l'applicazione senza che rimanga attivo il terminale?
__________
Per avviare qualcosa da terminale grafico e subito chiudere lo stesso, scrivi:
$
applicazione & exit
[Invio]
Da quando ho installato la Red Hat 6.1 non riesco più a lanciare programmi X come root da una finestra di terminale.
__________
È tutta una questione di permessi. Devi prima dire (da utente comune) che è possibile collegarsi a quell'X-Server, poi da root (o anche da un'altro utente) devi dire che DISPLAY punta a te.
In pratica:
Entri come utente comune;
Consenti la connessione al tuo server X (xhost localhost):
Accedi come root (su - root);
Dici ai tuoi programmi che il DISPLAY è quello dell'utente comune
#
export DISPLAY=localhost:0.0
[Invio]
Lanci i programmi.
Come posso sapere dove risiede un programma che è eseguibile in ogni parte del file system grazie alla facoltà conferitagli dalla variabile PATH?
Con:
$
which nome-comando
[Invio]
Come applico una patch ad un programma?
__________
Ti posizioni nella directory dove è stata installata la versione precedente e digito:
$
patch < patchfile
[Invio]
Va fatta attenzione, però, perché se in questo modo vengono restituiti molti errori, probabilmente va usata l'opzione -p (dipende da come è stata creata la patch).
Ho scaricato un file con estensione .elf.tar Il tar lo conosco ma ELF cos'è e come si installa?
__________
.elf vuol semplicemente dire che il file eseguibile (già compilato) è in formato elf (Executable Linkable Format). Linux usa librerie collegate dinamicamente, il che gli permette di avere eseguibili più piccoli e quindi un minor consumo di memoria. Le librerie collegate dinamicamente (e quindi gli eseguibili ad essi collegati) possono essere di diversi formati, ma quello più usato al momento è l'elf, che ha ormai soppiantato il vecchio a.out.
È possibile far girare alcune applicazioni di SCO Unixware con Linux?
__________
Esiste iBCS che è un modulo che permette di far girare programmi scritti per SCO Unixware. Dovrebbe essere disponibile con tutte le distribuzioni.
Dopo avere scompattato un pacchetto, dove posso trovare eventuali informazioni?
__________
Generalmente il programma viene commentato nel file README (caratteristiche, aggiornamenti della nuova versione, ecc.) e le modalità di installazione risiedono di solito nel file INSTALL. Tutti e due i file si trovano nella directory dove è stato scompattato il pacchetto.
Dopo l'installazione, è a volte possibile trovare nella directory /usr/doc
una directory (che generalmente ha lo stesso nome del programma installato) che contiene il manuale del programma o comunque documentazione varia.
__________
Quando un programma termina inavvertitamente, cioè con qualche errore, il kernel, che deve terminare il processo, scrive un'immagine del processo in memoria su questo file core. Da quel file si dovrebbe risalire al tipo di errore e correggerlo.
Come si fa a visualizzare il contenuto dei file core?
__________
Il file core è, di solito, il risultato di un 'Segmention fault' che si verifica quando un programma 'fa a pugni' con la memoria (es. overflow) e contiene una fotografia della memoria quando l'errore si è verificato. Questo file va analizzato con un programma apposito (es. gdb)
Come faccio a sapere quale programma ha provocato l'errore e quindi il file core?
__________
Si deve andare nella directory del file core, e digitare:
#
size core
[Invio]
Qualcuno ricorda come impostare il file .profile affinché un utente possa disabilitare i file core nella propria home directory?
__________
in /etc/profile
c'è una riga:
ulimit -c 1000000
se la cambi con:
ulimit -c 0
non saranno più generati i file core...
Qualcuno mi potrebbe spiegare come si eliminano tutti i file core?
__________
Con il seguente comando:
#
find / \( -name core \) -exec rm {} \;
[Invio]
o meglio ancora:
#
find / -name core -type f -xdev -exec rm {} \;
[Invio]
Come posso convertire un pacchetto [tar|deb|rpm] in un altro formato?
__________
Con il programma alien, che serve a convertire da/a vari formati. È anche disponibile come pacchetto deb/rpm nella maggior parte delle distribuzioni. È preferibile prendere il pacchetto alien creato per la propria distribuzione, in modo che il risultato della conversione sia il più possibile coerente con il resto del sistema.
Visto che uso la Slackware 3.6 c'è un modo per installare i programmi per le versioni Red Hat, Suse, ecc. usando i file di istallazione delle stesse (.rpm se non sbaglio)? O questi sono già degli eseguibili?
__________
Si possono convertire i pacchetti rpm in tgz con il comando:
#
rpm2targz
[Invio]
È possibile convertire un file tgz in un file formato rpm?
__________
Se il file compresso è stato predisposto per farlo, allora usa la seguente sintassi:
#
rpm -ta myprogram.tar.gz
[Invio]
Cosa sono i file .bin? Come li posso decomprimere?
Sono degli eseguibili autoscompattanti: conferisci loro i permessi di esecuzione e lanciali.
Come visualizzo il contenuto di un file tar.gz o tgz?
__________
Devi prima decomprimerlo con gunzip:
#
gunzip file.tar.gz (o file.tgz)
[Invio]
poi scrivi:
#
tar -t file.tar
[Invio]
oppure, in un solo comando, con:
#
tar -tzf file.tar.gz
[Invio]
Come scompatto un file tar.gz (o tgz)?
__________
Con:
#
tar -zxvf file.tar.gz (o tgz)
[Invio]
Se voglio disinstallare un programma che originariamente era stato installato da un pacchetto con estensione tar.gz come faccio?
__________
Puoi usare:
installwatch
che, se lanciato al momento del 'make install', tiene traccia di tutto ciò che accade durante l'installazione. Se vuoi puoi crearti un file di testo per ogni programma che installi e ripescare così a distanza di tempo i file da cancellare.
Alcuni sorgenti permettono anche:
#
make uninstall
[Invio]
In ogni caso puoi leggerti il Makefile
e controllare a livello del tag install quali sono le directory in cui il programma viene installato.
Quando si compila un'applicazione, presa da un file .tar, con ./configure, make , ecc. come si fa per disinstallarla? Soprattutto poi se si vuole installare una versione più recente della stessa.
__________
Spostati nella directory in cui hai installato i sorgenti ed esamina il Makefile se ha le opzioni per make uninstall o make distclean.
A volte si trovano anche dei file log con l'elenco dei file installati e la loro posizione.
Come posso salvare in un archivio compresso le directory che mi interessano?
__________
Con:
#
tar zcvf nome_archivio.tar.gz /etc /home /root /var /usr/local
[Invio]
Come posso creare uno script che mi archivi in un file tar.gz una directory e che nel nome del file contenga la data della creazione?
#
tar zcvf nome-`date +%d%m%Y`.tar.gz /directory
[Invio]
Come archivio su dischetti sequenziali la directory /home e le discendenti?
Con:
#
tar -c -f /dev/fd0 -L 1440 -M -v /home
[Invio]
Come ripristino il contenuto dell'archivio sequenziale su dischetti?
__________
mi posiziono nella directory in cui voglio ricreare il contenuto dell'archivio e digito:
#
tar -x -f /dev/fd0 -L 1440 -M -v -p --same-owner
[Invio]
Trovo difficoltà ad utilizzare il dselect. Qualcuno mi spiega i rudimenti?
__________
dselect è un programma molto comodo anche se al primo approccio può sembrare un po' ostico. Parte con:
#
dselect
[Invio]
Scegliere da Access dove sono i pacchetti (multi_cd o altro).
Poi scegliere Select che serve a selezionare i pacchetti che ci interessa installare o rimuovere.
Appare subito l'help, premiamo la barra spaziatrice per eliminare questa schermata.
Ci appare una lista di pacchetti.
Con i tasti cursore cerchiamo quello che vogliamo installare o rimuovere oppure cerchiamalo con lo slash (/). (lo slash è quello sopra il 7 non quello del tastierino numerico).
Se il primo risultato della ricerca non ci soddisfa possiamo cercare la voce successiva con il backslash (\).
Una volta trovato il pacchetto che ci interessa, premiamo:
+ per installarlo;
- per rimuoverlo conservando però i file di configurazione;
_ per eradicare tutto quello che è relativo a quel pacchetto.
Il + ed il - sono quelli vicino l'[Invio], non quelli del tastierino numerico. Se non ci sono dipendenze, non appare nulla; a quel punto premiamo [Invio] per uscire; dopo ciò premiamo [Invio] su Install ed il pacchetto verrà installato oppure premiamo [Invio] su Remove se vogliamo disinstallarlo.
Se invece ci sono dipendenze, (dopo un messaggio di avvertimento che elimineremo con la barra spaziatrice) appariranno una serie di pacchetti necessari o consigliati.
Se ad esempio io seleziono il modulo php3 per Postgresql (premendoci sopra il tasto '+'), mi apparirà la seguente lista di dipendenze: apache, postgres, postgres_doc, apache_doc, php3, ecc.
Sulla lista di dipendenze, si può sempre agire con i tasti + o - per installare o rimuovere le eventuali dipendenze. (Posso infatti ad esempio cliccare - su postgres_doc se non voglio installare la documentazione).
Se si è installato un pacchetto che per qualche ragione non è stato configurato al momento dell'installazione, selezionare Configure.
Scegliere Quit per uscire.
Come installo un pacchetto deb?
__________
#
dpkg -i nome.deb
[Invio]
Come rpm -i, però, quest'ultimo non tiene conto delle dipendenze tra pacchetti; è preferibile configurare apt-get indicando in /etc/apt/sources.list
da dove prendere i pacchetti (se dal CD o dalla rete), dare:
#
apt-get update
[Invio]
per aggiornare l'elenco dei pacchetti disponibili;
e poi:
#
apt-get install nomepacchetto
[Invio]
questo controllerà che non ci siano dipendenze non soddisfatte e, in caso, proporrà di installare anche gli altri pacchetti necessari.
Come aggiorno un pacchetto deb?
__________
Il comando è lo stesso che per l'installazione:
#
dpkg -i nome.deb
[Invio]
o:
#
apt-get install nome
[Invio]
se il pacchetto proposto è una versione più recente di quello già installato viene fatto l'aggiornamento.
Come funziona questa utility per aggiornare i pacchetti in Debian GNU/Linux?
__________
in /etc/apt/sources.list
metti:
deb ftp://ftp.it.debian.org/debian unstable main contrib non-free (oppure stable)
con:
#
apt-get update
[Invio]
aggiorni le liste in /var/apt/state/list
, mentre con:
#
apt-get install nome_pacchetto_senza_numero_versione
[Invio]
aggiorni i pacchetti; tieni presente che se ci sono dipendenze da rispettare, se ne occupa apt-get
Come disinstallo un pacchetto deb?
__________
Con:
#
dpkg -r nome
[Invio]
È consigliabile prima provare a fare:
#
dpkg --no-act -r nome
[Invio]
per controllare se la disinstallazione del pacchetto compromette l'integrità del sistema (ci possono essere altri pacchetti che dipendono da quello) oppure:
#
apt-get remove nome
[Invio]
Come verifico la corretta installazione del pacchetto?
__________
Con:
#
dpkg -s nome
[Invio]
rende, oltre allo stato di installazione, anche altre informazioni sul pacchetto (come la descrizione del suo contenuto e i pacchetti da cui dipende).
#
apt-get check
[Invio]
controlla la corretta installazione dei pacchetti del sistema.
Da quale pacchetto è stato installato il file std.elm?
__________
Con:
#
dpkg -S std.elm
[Invio]
ovviamente va dato anche l'eventuale percorso per std.elm.
Come faccio a sapere le dipendenze di un pacchetto già installato nel mio sistema?
__________
Lo puoi fare con il comando:
#
dpkg -s nome_del_pacchetto
[Invio]
tra le altre informazioni, troverai infatti la riga con:
Depends: ......
Come posso avere una descrizione del pacchetto?
__________
Con:
#
dpkg -s nome
[Invio]
se questo è installato,
#
dpkg --info nome.deb
[Invio]
se non è installato.
Per sapere quali file sono contenuti in un pacchetto, se è installato:
#
dpkg -L nome
[Invio]
se non lo è:
#
dpkg --contents nome.deb
[Invio]
ne visualizza invece l'elenco dei file.
Come posso avere una lista dei pacchetti installati?
__________
Con:
#
dpkg -l
[Invio]
Ho scaricato un programma in formato rpm. Come si installa?
__________
Con:
#
rpm -i nome.rpm
[Invio]
oppure:
#
rpm -ivh nome.rpm
[Invio]
(installa il pacchetto con dettagli e barra di progressione)
Come aggiorno un pacchetto rpm?
__________
Con:
#
rpm -U nome.rpm
[Invio]
oppure:
#
rpm -Uvh nome.rpm
[Invio]
(aggiorna il pacchetto con dettagli e barra di progressione)
Come disinstallo un pacchetto rpm?
__________
Con:
#
rpm -e nome_pacchetto_senza_versione
[Invio]
Come verifico la corretta installazione del pacchetto?
__________
Con:
#
rpm -V nome_pacchetto_senza_versione
[Invio]
Da quale pacchetto è stato installato il file std.elm?
__________
Puoi saperlo con:
#
rpm -qf std.elm
[Invio]
Come posso avere una descrizione del pacchetto?
__________
Con:
#
rpm -qpi nome.rpm
[Invio]
Come posso avere una lista dei pacchetti installati?
__________
Con:
#
rpm -qa
[Invio]
Come faccio a verificare tutti i pacchetti installati?
__________
Con:
#
rpm -Va
[Invio]
Come verifico che ci sia corrispondenza tra quanto è installato e il pacchetto originale?
__________
Con:
#
rpm -Vp nome.rpm
[Invio]
Come installare gli rpm in directory diverse da quelle predefinite?
__________
Con:
#
rpm -i --prefix percorso_dove_installare file.rpm
[Invio]
__________
Con:
$
gzip file
[Invio]
__________
è un file compresso con gzip e si decomprime con:
$
gzip -d file
[Invio]
oppure con:
$
gunzip file
[Invio]
Ho una serie di file compressi mediante gzip. Ora dovrei decomprimerli tutti. Il comando:
#
gunzip *.gz
[Invio]
non funziona, come devo fare?
__________
Crea ed esegui questo script:
---------------------- for file in `ls *.zip` do gunzip $file done ----------------------
Ho trovato su un CD un file *.tar.bz2. Come faccio a decomprimerlo?
__________
Con bzip2:
$
bzip2 -d nomefile.tar.bz2 ; tar -xvf nomefile.tar
[Invio]
o:
$
tar -xIvf nomefile.tar.bz2
[Invio]
Volevo cambiare desktop manager, ma non riesco a trovare nessun file .xinitrc da nessuna parte. È mai possibile ciò? come posso fare ?
__________
Semplicemente, apri una finestra del terminale, scrivi switchdesk, e poi scegli il desktop manager che preferisci.
Come faccio a sapere la versione del mio server X?
__________
Con il comando:
#
X -version
[Invio]
Restituisce versione, data di rilascio, sistema operativo, driver supportati, ecc.
XFree 4 gestisce i true type «nativamente» senza xfs, la soluzione più semplice è eliminare xfs. I caratteri true type vanno nella loro directory e poi occorre mettere in /etc/XF86Config
(o dove troviamo questo file nel filesystem, ad es. in /etc/X11/XF86Config
) il percorso dei caratteri a mano e togliere la riga «unix:/1»;
----------------------------------------------------- FontPath /usr/X11R6/lib/X11/fonts/TrueType FontPath /usr/X11R6/lib/X11/fonts/100dpi FontPath /usr/X11R6/lib/X11/fonts/Speedo FontPath /usr/X11R6/lib/X11/fonts/misc FontPath /usr/X11R6/lib/X11/fonts/PEX -----------------------------------------------------
e così via per qualunque altra directory dei caratteri. Togliendo «unix:/1» si mette fuori causa xfs. X 4.0 gestisce autonomamente i caratteri true type a differenza delle versioni precedenti del server grafico. É possibile a questo punto disinstallare Xfstt.
Come si può fare in modo che all'avvio di Linux non compaia il login dall'ambiente grafico X?
__________
Si deve disabilitare xdm o gdm; Se si utilizza una distribuzione Debian GNU/Linux, basta disinstallare il relativo pacchetto. Se si è in possesso di un'altra distribuzione, un modo per farlo è modificare il file /etc/inittab
e dove vedi scritto:
id:5:initdefault:
sostituire il 5 con un 3:
id:3:initdefault:
Un altro modo ancora è eliminare xdm dagli script di inizializzazione.
Ho installato la distribuzione Debian ma c'è il login in modalità grafica e vorrei eliminarlo.
In Debian non cambiate il runlevel per eliminare la modalità grafica. La modalità grafica automatica si attiva o disattiva rispettivamente installando o rimuovendo il pacchetto che gestisce il login grafico (che a scelta può essere xdm, gdm o wdm).
Come si fa a lanciare un'applicazione in X senza che in quest'ultimo venga caricato il gestore delle finestre?
__________
Supponiamo che tu debba lanciare Staroffice che risiede in /opt/Office51
. Da riga di comando impartisci il comando:
$
xinit /opt/Office51/bin/./soffice
[Invio]
(presta attenzione al punto davanti a soffice).
Si aprirà una sessione X con Staroffice. Lo stesso vale per tutte le altre applicazioni.
È possibile far partire X in modo che contenga solo un terminale grafico? Non voglio che vengano caricati i gestori delle finestre ed altre cose.
__________
Esegui i comandi che seguono:
$
X &
[Invio]
$
export DISPLAY=:0
[Invio]
$
xterm
[Invio]
Nota: dopo aver lanciato da console il primo comando, partirà il server grafico; dovrai quindi tornare alla console di prima con [CTRL+ALT+F_num_console].
A questo punto puoi digitare gli altri comandi.
C'è un modo per catturare le immagini da X?
__________
sia Gimp che Xv lo permettono;
poi c'è xgrab
oppure c'è il comando xwd ma è da riga di comando:
$
xwd -root > nome.jpg
[Invio]
ti cattura l'intero schermo e lo mette in un file che si chiama nome.jpg.
xwud per vedere le immagini senza un editor esterno.
Come si imposta xv per cambiare lo sfondo della scrivania ad intervalli regolari di tempo?
__________
Nel mio $HOME/.xinitrc
le ultime tre righe sono queste:
cd $HOME xv -root -bg Black -rmode 5 -flist $HOME/space.list -wait 60 -wloop -viewonly & exec icewm || exec twm
il comando che lancia xv fa si che legga la lista di file da mostrare nel file space.list (-flist $HOME/space.list);
le mostri nella finestra root (-root);
su sfondo nero (-bg Black);
centrate (-rmode 5);
con pausa di 60 secondi tra l'una e l'altra (-wait 60);
ripetendo ciclicamente (-wloop);
senza mostrare la finestra dei controlli (-viewonly).
Ho messo una risoluzione di 1280x1024. Come si può ingrandire la dimensione di tutti i caratteri che vengono comunemente visualizzati?
__________
Il problema nasce dal fatto che X-windows usa, in maniera predefinita, una risoluzione di 75 dpi, mentre i monitor sono ottimizzati per una risoluzione di 96dpi, lo standard di Windows.
La soluzione è passare ad una risoluzione di 100 dpi. Farlo è molto semplice.
Si accede come root; si controlla di avere il pacchetto 100dpi-fonts installato:
#
dpkg -l | grep 100
[Invio]
o:
#
rpm -qa | grep 100
[Invio]
si apre il file /etc/X11/fs/config
o a seconda delle versioni /etc/X11/xfs/config
con un editor, si cercano le seguenti righe che nel file (si trovano una di seguito l'altra):
/usr/X11R6/lib/X11/fonts/75dpi:unscaled, /usr/X11R6/lib/X11/fonts/100dpi:unscaled,
si inverte l'ordine delle due righe precedenti per ottenere questo:
/usr/X11R6/lib/X11/fonts/100dpi:unscaled, /usr/X11R6/lib/X11/fonts/75dpi:unscaled,
salvare il file.
Impartire il comando:
#
kill -SIGUSR1 $ (pidof xfs)
[Invio]
se si riavvia, non è necessario
lanciare di nuovo X.
Ecco alcune modifiche opzionali da fare sempre ad /etc/X11/fs/config
:
da:
#100 x 100 and 75 x 75 default-resolutions = 75,75,100,100
a:
#100 x 100 and 75 x 75 default-resolutions=100,100,75,75
Mi si è fermato X e l'unica soluzione è stato premere il tasto reset. Se mi ricapita, cosa devo fare?
Di norma ci sono delle alternative. Se la macchina è collegata in rete, si può provare da lì, altrimenti si tenta con [Ctrl+Alt+Backspace] (per uccidere X) o [Ctrl+Alt+Canc] per chiudere il sistema in maniera corretta.
Se neanche questo funziona si può usare JSR: (<http://www.geocities.com/CapeCanaveral/Lab/7731/jsr.html>) che serve per chiudere X o fare il riavvio del sistema tramite i tasti del joystick.
Ultima risorsa: nei kernel 2.2.x si può compilare il supporto per le SysRq Magic:
(alt+sysrq+s, alt+sysrq+u, alt+sysrq+b)
e si dovrebbe ottenere un riavvio pulito. Maggiori informazioni presso: /usr/src/linux/Documentation/sysrq.txt
__________
Puoi fare i seguenti tentativi:
si determina l'indirizzo in memoria del buffer video esaminando i messaggi del server X durante l'avvio di startx:
#
startx 2> messaggi
[Invio]
L'indirizzo si trova in una riga del tipo:
S3: PCI: trio32/64 rev 54 linear FB 0xe4000000
in questo caso è 0xe4000000.
su root si lancia il seguente comando:
#
echo "base=0xe4000000 size=0x200000 type=write-combining" > /proc/mtrr
[Invio]
Il campo size è l'ammontare di memoria video (per il frame buffer) della vostra scheda video.
Per fugare ogni dubbio date un'occhiata al file mtrr.txt
nella directory Documentation
dei sorgenti del kernel.
L'incremento di prestazioni si vede nelle operazioni che comportano la copia da memoria in memoria video, in alcuni casi i valori sono più che raddoppiati, nel caso di operazioni di disegno da parte dell'acceleratore grafico (linee, rettangoli, ecc) non si ha nessun miglioramento.
Per misurare le differenze di prestazioni ho usato x11perf.
Attenzione i test sono centinaia, se decidete di farli tutti, ci vogliono quasi 4 ore.
Per esaminare il file generato da x11perf (l'output va rediretto sul file in cui si vogliono salvare i risultati) si può usare Xmark
Non mi funziona X, come faccio a capire perché?
__________
Indirizza gli errori in un file:
#
startx 2> report_errori
[Invio]
e poi dai un:
#
cat report_errori
[Invio]
Avendo impostato le risoluzioni video 800x600 e 1024x780 come posso scegliere quale delle due avere in maniera predefinita al lancio di X?
__________
Modifica /etc/XF86Config
in modo che la risoluzione voluta sia la prima della lista. Per esempio, nel mio /etc/XF86Config
ho:
Section "Screen" Driver "accel" Device "Primary Card" Monitor "Primary Monitor" DefaultColorDepth 16 SubSection "Display" Depth 8 Modes "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1024x768" "800x600" "640x480" Virtual 1024 768 EndSubSection EndSection
Poiché DefaultColorDepth = 16, allora le risoluzioni valide sono quelle della quartultima riga (Modes): X mi si avvierà quindi con 1024x768.
Come si imposta la profondità dei colori?
__________
Il comando esatto per cambiare la profondità dei colori è:
#
startx -- -bpp 16
[Invio]
oppure:
#
startx -- -bpp 24
[Invio]
oppure:
#
startx -- -bpp 32
[Invio]
Si può anche impostare una riga DefaultColorDepth in /etc/X11/XF86Config
, ad esempio:
Section "Screen" Driver "svga" Device "Chips & Technologies CT65550" Monitor "DSTN" DefaultColorDepth 16 Subsection "Display" Depth 8 # Omit the Modes line for the "Generic VGA" device Modes "800x590" ViewPort 0 0 # Use Virtual 320 200 for Generic VGA EndSubsection
Come posso evitare di impartire il comando per definire la profondità di colori ogni volta? Insomma, invece di creare uno script con il comando:
$
startx -- -bpp 16
[Invio]
dove devo definire tale impostazione?
__________
Controlla il file /etc/X11/xdm/Xservers
; nell'ultima riga si può impostare la profondità:
:0 local /usr/X11R6/bin/X -bpp 32
Come faccio a togliere quel fastidiosissimo scorrimento dell'intefaccia di X?
__________
Modifica /etc/X11/XF86Config
e commenta le righe virtual nella sottosezione Display della sezione Screen.
Come cambio le modalità dello schermo virtuale?
__________
[Ctrl+Alt +/-] (tastierino numerico)
Quando lancio X tutto va alla meraviglia tranne per il fatto che l'immagine è decisamente fuori asse verso destra (correggo attraverso i pulsanti dello schermo per ora) Come faccio ad evitarlo?
__________
Prova ad aggiustare l'immagine con:
#
xvidtune
[Invio]
poi copi i valori corretti nel tuo XF86Config.
Dai anche un'occhiata a man xvidtune e all'XFree-Video-Timings HOWTO.
Dopo aver aperto una nuova console di testo da ambiente grafico con [Ctrl+Alt-Fn] (n=1...6) come faccio a ritornare all'ambiente grafico? Se ritorno alla console dove ho lanciato startx mi trovo solo i messaggi di X
__________
Quella è la console dove hai lanciato X, non quella grafica da cui lo stavi usando. Devi passare alla console grafica contrassegnata dal primo tasto funzione dopo quelli da cui accedi alle console testuali: se ho 6 console, è [F7], quindi:
[Alt+F7]
Per tornare invece da X alla console testuale n,
[Ctrl+Alt-Fn]
Qualcuno di voi riesce a far sì che anche enlightenment si chiuda al comando di Gnome? Se sì, come avete fatto?
__________
Per uscire correttamente da Gnome+enlightenment devi comunque usare il tasto di uscita di Gnome. Per fare in modo che esca pulito hai due possibilità:
nel file xinitrc fai partire il tutto con gnome-session
nel file xinitrc fai partire il tutto con :
enlightenment & gmc & panel
L'importante è che il panel sia l'ultimo ad essere chiamato e non sia lanciato in secondo piano (&).
Ho deciso di provare Gnome. Purtroppo capita, che al comando startx appaia la schermata grigia tipica di quando sta caricando il server X e si fermi li per un bel po'; a volte devo uccidere tutto e a volte invece procede tutto regolarmente.
__________
Io ho risolto il problema aggiungendo queste righe nel file rc.local
:
rm -rf /var/gdm/* rm -rf /home/nome_utente/.ICE* /home/nome_utente/.Xauth* rm -rf /tmp/.ICE-unix /tmp/.X11-unix
Da quel che ho capito sembra che il gdm abbia qualche problema di autenticazione dei client. Direi comunque che si tratti di un problema di gioventù di Gnome.
Sarebbe mio desiderio che cliccando su un file html mi si aprisse lynx e non Netscape (navigatore predefinito). Utilizzo Gnome. Di solito vado nel pannello di controllo - tipo MIME e modifico l'applicazione con cui aprire il tipo di file. Il problema è che qui devo richiedere l'esecuzione in un terminale. Come posso fare?
Inserisci:
xterm -e lynx %f
Con Gnome ho utilizzato per la prima volta enlightenment e ho provato ad aggiungere un tema scaricato da e.themes.org ma non ci sono riuscito. Come faccio?
__________
Metti il tema in:
/root/.englightenment.themes
riavvia enlightenment, lancia la configurazione (di enlightenment, non di Gnome!) e ti ritrovi il tema appena scaricato pronto per l'uso.
Un'altra soluzione: lo sposti in:
/usr/share/enlightenment/themes
e poi dai un:
#
gunzip nomefile
[Invio]
A questo punto, con il configuratore di enlightenment (e-conf) puoi selezionare il tema.
Ho disattivato il pannello di windowmaker ma non riesco più a farlo comparire! Qualcuno può aiutarmi?
__________
A me era successa la stessa cosa e guardando in un'altra distribuzione ho scoperto che nel file ~/GNUstep/Defaults/WMState
si era alterata la riga:
Command = "";
all'inizio, c'era un trattino tra gli apici. L'ho tolto e il pannello è tornato.
Come fate, se avete più finestre aperte, a richiamare quelle momentaneamente in secondo piano? Sono ridotte ad icona ma essendo dietro alla finestra attiva devo ogni volta ridurre questa e richiamare quella che voglio mettere in primo piano. C'è un metodo più veloce?
__________
Se hai più finestre aperte, puoi girare tra di esse con [Alt+Tab] (come in Windows). Se le finestre che vuoi attivare sono minimizzate e le icone sono coperte dalla finestra corrente perché è aperta, aggiungi:
NoWindowOverIcons = YES;
in ~/GNUstep/Defaults/WindowMaker
Inoltre se schiacci sul desktop il pulsante centrale del mouse (o i due pulsanti del mouse insieme) ti appare l'elenco delle finestre attive. Se sposti questo elenco in basso sulla scrivania lasciando in evidenza solamente il titolo di questo elenco, potrai sollevarlo ogni volta che ci passa sopra il mouse. Inoltre questo elenco è sempre in primo piano. Ottieni quindi un elenco delle finestre a scomparsa. Molto comodo.
Come si fa ad installare un tema per Window Maker? i file tar.gz dove li devo decomprimere?
In ~/GNUstep/Library/WindowMaker/Themes
Come è possibile cambiare le impostazioni di icewm? Come si aggiungono i bottoni sulla barra degli strumenti? Si possono avere icone sulla scrivania?
__________
Devi agire sui file:
menu
;preferences
;taskbar
; toolbar
;winoptions
che trovi o in $HOME/.icewm
per cambiare le impostazioni solo del tuo account o in /usr/X11R6/lib/X11/icewm
(se non li trovi lì fai un find, ovviamente varia da distribuzione a distribuzione) per cambiare le impostazioni di base di tutti gli utenti.
Nel file toolbar puoi aggiungere dei pulsanti per la barra di stato, la sintassi è evidente.
L'unico modo per far apparire delle icone sul desktop è di impostare icewm per farle apparire quando si riduce ad icona una finestra. Va fatto con l'opzione:
MiniMizeToDesktop=1
nel file preferences
.
È possibile impostare uno sfondo su icewm?
__________
Nella directory $HOME/.icewm
dovresti avere i file: menu
, preferences
, taskbar
, toolbar
, winoptions
.
Se non li hai cercali nel filesystem, crea la directory e copiaceli dentro.
Poi, nel file preferences:
# Display desktop background centered and not tiled DesktopBackgroundCenter=0 # 0/1
...serve per impostare lo sfondo centrato o affiancato e...
DesktopBackgroundImage="mieimmagini/sfondo.xpm"
...per impostare l'immagine di sfondo
Se si vuole utilizzare un programma esterno per impostare lo sfondo, bisogna lasciare vuoto il parametro così:
DesktopBackgroundImage=""
Come si fa a mettere una immagine di sfondo su icewm? Ho guardato dentro il file /etc/X11/icewm/preferences
, c'è una sezione con una serie di parametri che interessano anche lo sfondo del desktop:
DesktopBackgroundImage=""
Ho provato ad inserire il percorso di alcune immagini, ma senza risultato. Come posso fare?
Icewm è in grado di gestire solamente immagini di formato .xpm. Puoi comunque usare gimp o qualsiasi editor di immagini per trasformare formati diversi in formati .xpm
Perché se sono in modalità grafica e lancio un processo in background da un terminale e poi chiudo il terminale il processo lanciato muore?
Durante la sua «vita», un processo può allocare molte risorse (memoria, finestre, aprire file ecc.). Il sistema tiene traccia di tutto ciò che è legato ad un processo e, quando questo termina, si preoccupa anche di liberare le risorse eventualmente dimenticate dal processo stesso. Questo è utilissimo ad esempio quando un programma genera un «segmentation fault»; dal momento che il processo è terminato in modo anomalo, lascerebbe in giro molta «sporcizia» che viene pulita dal sistema operativo. É il bello di Unix: ecco perché puoi avere una macchina che gira per degli anni senza doverla mai spegnere: perché il sistema si occupa di mantenere pulito sé stesso. Ad esempio, quando dall'interprete dei comandi si impartisce il comando ls, il processo dell'interprete dei comandi lancia un sotto-processo «ls». Tecnicamente, si dice che l'interprete dei comandi esegue una fork() con ls. Dal momento che l'interprete dei comandi è un processo come un altro, se questo viene chiuso, il sistema si occupa di chiudere tutti i sotto processi ad esso collegati, quindi anche eventuali comandi lanciati con l'opzione di spawn (&).
Per evitare che un sotto-processo termini alla chiusura del «genitore», esiste il comando nohup (che significa «No Hang-Up») che assegna come padre del sotto-processo, non l'interprete dei comandi dal quale il sotto processo è stato lanciato, ma init (processo 1) che non può mai essere chiuso, in quanto è il padre di tutti i processi. Per avere un riscontro "grafico" di tutto ciò, lancia qualcosa da un terminale (qualcosa che non si blocca, tipo «top») e poi, da un'altro interprete dei comandi dai:
#
pstree -p | less
[Invio]
e guarda l'albero dei processi.
Ho aperto un terminale grafico e avevo l'intenzione, dopo essere diventato momentaneamente utente root tramite il comando su, di lanciare un'applicazione X. Mi viene restituito però il seguente messaggio:
Xlib: connection to ":0.0 " refused by server Xlib: Client is not authorized to connect to Server xemacs: cannot connect to x server :0
Se sei diventato root nel terminale questo messaggio è normale. Ogni utente per motivi di sicurezza ha un file nella sua cartella che si chiama .Xauthority
che contiene le informazioni per accedere ai vari display locali e remoti che richiedano autenticazione. Se tu non dai all'utente che lancia l'applicativo, il permesso di accedere al Display egli verrà respinto dal server in quanto non è in grado di autenticarsi a questo. Il metodo da utilizzare in questi casi è quello di utilizzare xauth per esportare la chiave di autenticazione nel file .Xauthority
di root.
Supponendo che l'utente proprietario del display sia pippo e la sua directory home /home/pippo
, quello che devi fare è estrarre la chiave da /home/pippo/.Xauthority
e metterla in /root/.Xauthority
. Il tutto si traduce nel comando:
#
xauth -f /home/pippo/.Xauthority extract - :0|xauth merge -
[Invio]
Chi utilizza la distribuzione Mandrake deve sapere che il file .Xauthority
degli utenti, che ha permessi 600 per motivi di sicurezza, dopo questo comando diventa di proprietà di root, quindi l'utente che è proprietario del Display non può più autenticarsi e non riesce più ad avviare le applicazioni. Su questa distribuzione quindi, oltre al comando sopracitato è necessario il comando:
#
chown pippo.«gruppo di pippo» /home/pippo/.Xauthority
[Invio]
Come si cambiano i colori nel terminale grafico?
__________
Usa le opzioni -fg e -bg per cambiare il colore dei caratteri e dello sfondo.
es.:
$
xterm -fg white -bg black -fn 10x20
[Invio]
Vorrei che il terminale grafico avesse un determinato aspetto; mi riferisco alla possibilità di poter cambiare i colori del testo, i colori dello sfondo, il tipo di carattere ecc.
__________
Metti in ~/.Xresources
le seguenti righe:
XTerm*foreground: white XTerm*background: black XTerm*font: -*-lucidatypewriter-medium-r-normal-sans-14-140-75-75-m-90-*-*
Come si fa ad ottenere il login sul terminale grafico (xterm)?
__________
$
xterm -ls
[Invio]
Perché non mi funzionano i terminali grafici (xterm) sotto Red Hat 6.0? Sono inutilizzabili e al loro interno c'è solo un cursore in alto a sx ma totalmente immobile.
__________
Il problema è in /etc/fstab
che nella Red Hat 6.0 viene creato in questo modo:
/dev/hda3 / ext2 defaults 1 1 /dev/hda4 swap swap defaults 0 0 /dev/fd0 /mnt/floppy ext2 noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0 none /proc proc defaults 0 0 none /dev/pts devpts mode=0622 0 0
Probabilmente avete ricopiato il vostro vecchio fstab in /etc
sovrascrivendo l'originale, ma il vecchio file non conteneva l'ultima riga (none /dev/pts devpts ecc.) importantissima, anzi vitale per il funzionamento dei terminali grafici in Red Hat 6.0.
Come posso configurare il tasto 'Canc' nei terminali grafici (xterm)? Adesso ha lo stesso comportamento del tasto backspace.
__________
Puoi risolvere con xmodmap.
Se lo lanci con -pke e dirigi l'output su un file e te lo leggi con calma.
Vedrai che è molto inutitivo. Quando hai visto qual è il codice tasto che vuoi impostare (cercando Backspace) lanci:
$
xmodmap -e "keycode xx=KP_Delete"
[Invio]
dove xx è il numero che hai ottenuto.
Per trovare il codice tasto si può anche usare xev premendo poi il tasto interessato e leggendo il numero restituito.
La definizione adatta a essere inserita con xmodmap si trova nel file:
/usr/X11R6/include/X11/keysymdef.h
togliendo XK_
Qualcuno sa come si possa copiare e incollare il testo tra due finestre di X?
__________
Selezioni con il tasto sinistro del mouse il testo di origine e nella finestra di destinazione clicchi sul tasto centrale (se hai un mouse a 2 tasti clicchi insieme i 2 tasti).
Chi mi illustra i comandi essenziali per vi?
__________
i - Modalità di inserimento alla posizione del cursore I - Modalità di inserimento a inizio riga A - Modalità di inserimento a fine riga r - Sovrascrivere un carattere R - Modalità di sovrascrittura x - Cancellazione (come tasto Canc) dd - Cancellare una riga :w - Salvare :wq - Salva e esce (come ZZ) :q! - Esce senza salvare
Questi dovrebbero bastare per fare qualche modifica.
Come molti uso 'vi' che, nella Slakware è un collegamento ad 'elvis'; pur trovandomi molto bene nell'ordinaria amministrazione tipo modifica dei file o creazione degli stessi, usandolo com mutt mi da dei problemi di ritorno a capo, ovvero se non lo mando a capo a mano, mi fa delle righe di n caratteri che vengono visualizzati in fila indiana e sono molto innervosenti quando vengono letti da un client di posta. Vi chiedo quale sia il file di configurazione per elvis-vi nel quale possa configurare il ritorno a capo dopo una settantina di caratteri (colonne).
__________
Per vi:
Il comando da vi è:
:
tw=72
[Invio]
(o quanto vuoi che sia).
Crea un .vimrc
con dentro scritto:
set tw=72
Per elvis:
scrivi un file .elvisrc
nella tua directory home e all'interno di questo metti la riga:
set textwidth=70
Per vim:
la stessa cosa, ma il nome del file è .vimrc
L'opzione è impostata a 0 in maniera predefinita e ovviamente può essere modificata anche all'interno di una sessione vi con il comando:
:set textwidth=65
(Il problema è stato risolto dallo stesso autore della domanda in altro modo vista la particolarità della configurazione dell'editor elvis nella distribuzione Slackware. NdR):
ecco com'è la stringa giusta: in ~/.exrc
(o ~/.elvisrc
o ~/elvis.rc
, a scelta)
:set ttycolumns=num
Come si cambiano le impostazioni in minicom?
__________
Con il comando:
#
minicom -s
[Invio]
Non riesco ad inviare fax. Mi restituisce l'errore: «NO DIALTONE»
__________
Va cambiata la stringa di inizializzazione del modem; Bisogna sostituire nel file ~/.efaxrc
la riga:
INIT="-iZ -i&FE&D2S7=120 -i&C0"
con questa:
INIT="-iZ -i&FX3E&D2S7=120 -i&C0"
Come posso convertire delle immagini gif in png?
__________
Con:
gif2png
Greg Roelofs - September 18th 1999, 18:07 EST gif2png is a simple command-line utility to convert images from GIF to PNG format. It automatically preserves transparency, interlacing and text comments, and it can do multiple images in one command (e.g., gif2png *.gif). The distribution also includes a web2png script that can be used to convert an entire web tree; it calls gif2png to do image conversions, then patches IMG SRC tags correctly in referring pages.
Puoi scaricare questo programma OpenSource alla seguente URL:
<http://www.tuxedo.org/~esr/gif2png/>
Qualcuno sa dirmi se ci sono dei programmi per Linux relativi alla matematica? Del tipo: grafici tridimensionali, sequenze, equazioni parametriche, manipolazione simbolica (derivate, equazioni differenziali, ecc.).
__________
Puoi provare:
R-lab e octave
che sono applicazioni del tipo matlab.
Che differenza c'è tra db e dbms?
__________
Un db è un data base, un archivio cioè un insieme di dati. Chi li gestisce? li gestisce il dbms (Data Base Management System)
ho il seguente problema: quando compilo php con il supporto a postgres (./configure --with-pgsql; make), la compilazione si interrompe con il seguente esito:
/usr/src/packages/SOURCES/php-3.0.12 # make [...] functions/php3_pgsql.h:46: libpq-fe.h: No such file or directory functions/php3_pgsql.h:47: libpq/libpq-fs.h: No such file or directory [...] make: *** [internal_functions.o] Error 1
Perché non ci sono quei libpq? È un pacchetto che devo aggiungere? Dove lo trovo?
__________
Nel postgres-devel.
Ho una Debian GNU/Linux 2.1. Questo è l'errore che mi si presenta quando mi connetto ad un archivio con uno script php3:
Unable to connect to PostgresSQL server: connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port '5432'? in /var/www/prova.php3
oppure
Unable to connect to PostgresSQL server: connectDB() failed: Is the postmaster running with the '-i option?
Ho provato i vari modi di connessione (mettendo e omettendo il nome del server). Non va sia che l'archivio sia stato creato da un utente apposito (creato con createuser da postgres) che da postgres. Il postmaster funziona molto bene visto che riesco a utilizzare psql normalmente. Nella documentazione c'è scritto che se appare questo errore, o il postmaster non gira (invece gira) o mi connetto al server sbagliato (non mi pare di sbagliare). Il problema è apparso dopo l'aggiornamento del Postgres.
__________
In questo caso è proprio la mancanza dell'opzione -i che nel caso di aggiornamento del PostgreSQL non viene ripristinata.
Per ovviare al problema, devi modificare il file:
/etc/postgresql/postmaster.init
Questo file contiene una riga che serve ad abilitare le connessioni TCP/IP. Questa riga (che probabilmente attualmente è commentata o ha valore 'no'), deve risultare essere qualcosa del genere:
: PGALLOWTCPIP=yes
e ci deve essere anche la configurazione della porta:
: PGPORT=5432
Ci si deve anche ricordare che esiste anche il file pg_hba.conf che ti permette connessioni a distanza.
Ho installato regolarmente il postgres, ma non riesco a creare un archivio. Da cosa dipende?
__________
Dipende dal fatto che si devono creare utenti abilitati alla generazione degli archivi.
La creazione degli utenti è un'operazione che può fare solo l'utente postgres con il comando:
$
createuser nome
[Invio]
dando prima il comando:
$
su postgres
[Invio]
Se l'utente non è ancora in grado di creare l'archivio (e in realtà neanche l'utente postgres può farlo), allora vuol dire che non è stata inizializzata la struttura delle directory del database di postgres: occorre quindi eseguire:
$
su postgres
[Invio]
e:
$
initdb
[Invio]
É possibile esportare un database da Access a PostgreSQL con il driver ODBC di PostgreSQL. Da <http://www.postgresql.org> occorre scaricare il driver ODBC di PostgreSQL per Windows e poi impostarlo da Windows stesso affinché punti alla sorgente ODBC (la macchina Linux dove c'è PostgreSQL).
Da Access esporti verso quella sorgente le tabelle che ti interessano L'unico problema sta nelle chiavi che non vengono correttamente esportate.
Come si crea un db con PostgreSQL?
$
createdb nomedb
[Invio]
(deve essere però un utente abilitato alla creazione degli archivi. Questi poteri glieli conferisce l'utente postgres con il comando createuser)
Per accedere, modificare, aggiungere dati e strutture all'archivio si da il comando:
$
psql nome_archivio
[Invio]
(deve essere però un utente abilitato . Questi poteri glieli conferisce l'utente postgres con il comando createuser)
Ho due PC collegati in rete, uno ha Red Hat 5.2 ed un altro la Debian GNU/Linux 2.1 Volevo condividere lo stesso archivio mediante PostgreSQL. Sul server (dove sta l'archivio) ho lanciato il demone postmaster con l'opzione -i.
All'atto però di connettermi all'archivio con:
psql -h 192.168.1.1 db_name
riscontro il seguente errore:
Connection to database 'nome_db' failed. Unsupported frontend protocol.
Da che dipende?
__________
È un problema di compatibilità tra le due versioni di Postgres. Devono essere necessariamente le medesime. Le due distribuzioni hanno infatti versioni diverse.
Qualcuno mi spiega la strutturazione del file /etc/printcap?
__________
È il file letto dal demone lpd e contiene le informazioni relative ai dispositivi di stampa. È diviso in varie sezioni che possono definire stampanti diverse o proprietà diverse della stessa stampante.
Ogni sezione è composta da più righe ognuna delle quali inizia con : e termina con :\ tranne la prima che non ha i : iniziali e l'ultima che termina solo con :
Se non abbiamo linee di commento (che iniziano con #) la prima riga definisce il nome della stampante cui si farà riferimento. Più nomi sono separati dal carattere |:
lp|hpgettoinc:\
In questo caso si usano due nomi per indicare la stessa stampante. Poi viene indicata la directory della coda di stampa:
:sd=/var/spool/lpd/lp:\
poi c'è il limite della dimensione del file che vogliamo stampare e viene lasciato generalmente a 0:
: mx#0:\
poi troviamo il comando che evita la stampa della pagina di separazione tra 2 processi:
:sh:\
poi troviamo l'indicazione del dispositivo che usiamo per stampare:
:lp=/dev/lp0:\
dove si deve sostituire lp0 con il dispositivo del proprio sistema, ed infine troviamo in genere un if cioè un input filter che serve ad invocare quel file che è in grado di gestire una stampa di un file particolare (ps, gif, ecc.):
:if=/var/spool/lpd/lp/filter:
Questo in genere conclude una sezione del file.
Con la distribuzione Red Hat 6.1 quando provo a configurare la stampante , printtool mi dice che non trova il dispositivo /dev/lp0-1-2.
__________
È un problema della Red Hat 6.1.
In /etc/conf.modules
bisogna aggiungere la riga:
alias parport_lowlevel parport_pc options parport_pc io=0x378,0x278 irq=7,auto
Ho installato la Red Hat 6.1 ma non sono riuscito a configurare la stampante. Che operazioni devo compiere?
__________
Nella Red Hat 6.1 hanno tolto il programma che configurava la stampante durante l'installazione. Comunque puoi farlo in X con 'printtool', ma prima devi caricare i giusti moduli per la porta parallela.
in /etc/conf.modules
scrivi:
alias parport_lowlovel parport_pc options parport_pc io=0x3bc,0x378,0x278 irq=none,7,auto
Poi carica i moduli:
#
insmod parport
[Invio]
#
insmod parport_pc
[Invio]
#
insmod parport_probe
[Invio]
#
insmod lp parport=0,2
[Invio]
lancia il demone lpd:
#
lpd
[Invio]
o:
#
killall -HUP lpd
[Invio]
Ho la Stampante Canon bj200. Le ho provate tutte ma non riesco a stampare.
__________
Il dispositivo (device) del ghostscript bj200 non funziona. Infatti tutte le chiamate che il filtro, sia magicfilter che quello del printtool di Red Hat, fanno al gs è con il device bj200. Ma lui, non funziona.
Prova un altro dispositivo: con epson o ibm proprinter ad esempio.
Alcuni dispositivi che non funzionano con il gs di GNU funzionano con l'Aladin gs.
Come posso visualizzare il contenuto della coda di stampa?
__________
Con:
#
lpq -l
[Invio]
Ho visualizzato con lpq i processi di stampa e vorrei eliminare il processo n. 12. Come posso fare?
__________
Con:
#
lprm 12
[Invio]
Come elimino tutta la coda di stampa?
__________
Con:
#
lprm -
[Invio]
Perché quando stampo un file di testo, mi viene un effetto tipo scalettatura?
__________
Perché in un testo Unix alla fine della riga c'è solo l'avanzamento alla riga successiva e non il ritorno carrello. Le stampanti nella maggior parte di casi si aspettano il codice di ritorno carrello. Per ovviare si può creare un filtro in perl:
#!perl while (<STDIN>) {chop $_; print "$_\r\n";};
e farlo invocare da /etc/printcap
in una sezione dedicata ad una stampante (ovviamente sempre la stessa) che verrà scelta quando si stampa un file di testo.
Ricordarsi di assegnare i permessi di esecuzione allo script.
Quando stampo, ogni volta viene stampato anche un separatore con il nome dell'utente e il nome del processo; come posso eliminare questa cosa?
__________
Devi inserire nel file /etc/printcap
la riga:
:sh:\
che elimina il separatore (che serve per la stampa in grosse reti, per capire chi è l'autore della stampa).
__________
Con:
$
lpr nome
[Invio]
(stampa il file 'nome' o meglio lo mette in coda ed il demone lpd si occupa di stampare la coda di stampa)
Come stampo il contenuto della directory corrente?
Con:
$
ls -la |lpr
[Invio]
Come stampo da riga di comando un file ps (postscript?)
__________
Con:
$
gs -dNOPAUSE -sDEVICE=deskjet (o laserjet, ecc.) -sOutputFile=|lpr file.ps
[Invio]
Ho cercato fiducioso di mandare un file in stampa, ma niente da fare. La coda c'è, sembra funzionare (cioè digerisce i file in coda di stampa), ma non stampa nulla.
L'inghippo è che con il kernel 2.2.xx la gestione della stampante si fa con il modulo parport, quindi inserisci in /etc/conf.modules
le righe:
alias parport_lowlevel parport_pc options parport_pc io=0x378,0x278 irq=7,auto
Qualcuno conosce un programma che trasformi le pagine da formato html a formato testo?
__________
Puoi utilizzare lynx:
$
lynx -dump pagina.html > pagina.txt
[Invio]
Mi potete segnalare un buon visualizzatore di file .ps per Windows?
__________
C'è il Ghostview per Windows.
Prova presso: <http://www.cs.wisc.edu/~ghost/gsview/index.html> o <http://www.research.att.com/~jba/ghost/win95.html>
Ho scaricato sotto Linux diversi file .ps. Ora ho la necessità di stamparli da Windows. C'è un modo?
__________
Lo puoi fare utilizzando i GS Tools che permettono di visualizzare e stampare da Windows file .ps.
Sto tentando di aprire un file pdf ma, mentre sotto Windows va tutto bene, in Linux sia PSViewer che xpdf aprono il file, la qualità dei font è buona, ma le lettere non sono quelle del documento originale: il mio nome è diventato gklmn e così anche tutte le altre parole sono incomprensibili.
__________
Succede perché non ci sono sul sistema i caratteri (font) adatti per visualizzarlo. In genere conviene usare font convenzionali per aumentare la compatibilità, oppure installare anche i font TTF sotto Linux.
Quando utilizzo il comando sgml2txt noto che alcune parti di testo delimitate da alcuni marcatori vengono male interpretate. Ad esempio molte volte trovo delle parole con lettere ripetute, invece di prova trovo «ppp rr o vv aaaa».
basta aggiungere l'opzione -f al comando.
Mi aiutate a trovare un qualche programma che legga i documenti di Word? Non vorrei ricorrere però a programmi di grossa mole.
__________
Se consideri Abiword (licenza: GPL) un programma di grossa mole, esistono delle applicazioni eseguibili da riga di comando:
catdoc (licenza: GPL)
trasforma i file .doc in file di testo, e:
mswordview (licenza: GPL)
li traduce in html.
Esiste anche:
word2tex (licenza: GPL)
Un modo per aumentare la compatibilità è in ogni caso usare, da Word, il formato .rtf e non il .doc.
Ho bisogno di aprire mediante Emacs documenti creati sotto DOS ma appaiono diversi «^M» in fondo alle righe,
Il fine-riga in Linux è il carattere LF, mentre nel DOS è la coppia di caratteri CR+LF. Quando importi i file-testo dal DOS devi usare il comando:
$
mcopy -t nome_del_file_dos nome_da_assegnare
[Invio]
Il parametro «-t» informa il comando che il file da copiare è testuale, così nel trasferimento verranno messi a posto i fine-riga.
Come si fa a cambiare i caratteri del prompt?
Avendo installato kbd e/o consoletool devi usare o setfont o consolechars seguito dal nome del carattere da utilizzare.
All'avvio di X, ricevo questo errore:
Removing unix/:7101 from the valid list of fontpaths Removing /usr/X11R6/lib/X11/fonts/Speedo/ from the valid list of fontpaths Warning: locale not supported by C library, locale unchanged Warning: locale not supported by C library, locale unchanged Warning: locale not supported by C library, locale unchanged Killed
In /etc/profile
la variabile LANG è impostata in questa maniera:
export LANG=it_IT
__________
A quest'ultima riga prova ad aggiungere:
export LC_ALL=POSIX
e se ancora non va, togli entrambe e metti:
localedef -f ISO-8859-1 -i it_IT IT
Qualcuno può descrivere più o meno ordinatamente il processo da seguire per permettere di utilizzare i caratteri True Type?
__________
Dovrai avere installato xfs.
Procurati i caratteri True Type dalla directory C:\WINDOWS\FONTS\
o da un'altra fonte e mettili in una directory ttfonts
che creerai per questo scopo:
#
cd /usr/X11R6/lib/X11/fonts
[Invio]
#
mkdir ttfonts
[Invio]
Se necessario, converti i nomi dei caratteri in caratteri minuscoli.
Posizionati nella directory ./ttfonts
ed esegui questi due comandi:
#
ttmkfdir -o fonts.scale
[Invio]
#
ttmkfdir -o fonts.dir
[Invio]
Ricordati che dovranno essere ripetuti quando aggiungerai nuovi caratteri nella directory.
Adesso configuriamo il server dei caratteri. Modifica questa sezione del file /etc/X11/fs/config
(o /etc/X11/xfs/config
a seconda delle distribuzioni) in modo che la prima riga punti alla directory dove abbiamo messo i caratteri. Il mio appare così:
catalogue = /usr/X11R6/lib/X11/fonts/ttfonts, /usr/X11R6/lib/X11/fonts/misc:unscaled, /usr/X11R6/lib/X11/fonts/75dpi:unscaled, /usr/X11R6/lib/X11/fonts/100dpi:unscaled, /usr/X11R6/lib/X11/fonts/misc, /usr/X11R6/lib/X11/fonts/Type1, /usr/X11R6/lib/X11/fonts/Speedo, /usr/share/fonts/default/Type1, /usr/X11R6/lib/X11/fonts/75dpi, /usr/X11R6/lib/X11/fonts/100dpi,
Impostiamo xfs in modo che parta automaticamente ad ogni avvio della nostra macchina:
#
chkconfig --add xfs
[Invio]
Forziamone l'esecuzione con:
#
/etc/rc.d/init.d/xfs restart
[Invio]
(anche questo devi farlo ogni volta che aggiungi dei nuovi caratteri)
Dobbiamo sistemare l'X Server:
Apri il file /etc/X11/XF86Config
e controlla che nella sezione sottostante, se hai più righe dedicate a FontPath, quella con l'istruzione unix/:-1, sia la prima:
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "unix/:-1" EndSection
Come installo i caratteri TTF in Linux?
__________
Ecco i passaggi da eseguire:
crea un directory nella quale copiare i caratteri, ad es. /usr/ttfonts
;
copiaci i TTF che interessano;
installa il server xfstt
prepara lo script seguente, dandogli un nome a scelta (io lo ho chiamato addettf
). Il percorso è esplicito e si riferisce ovviamente alla directory dove io ho collocato xfstt e xset:
#!/bin/sh /usr/X11R6/bin/xfstt --sync /usr/X11R6/bin/xfstt & /usr/X11R6/bin/xset fp+ unix/:7100
rendi eseguibile lo script e mettilo in /usr/local/bin:
#
chmod 700 addettf
[Invio]
#
mv addettf /usr/local/bin
[Invio]
A questo punto sorge il problema di rilanciare lo script. Ciò può avvenire:
ad ogni avvio di Linux
aggiungere la riga
/usr/local/bin/addettf
nel file /sbin/init.d/boot.local
(per Red Hat il file è rc.local
)
solo quando si fa partire X
aggiungere allo script la riga startx
aggiungere a XF86Config la riga FontPath "unix:/7100"
Se usi la riga:
/usr/X11R6/bin/xset fp+ unix/:7100
nello script sopra proposto, non devi inserire questa riga in XF86Config.
Qualcuno può descrivere più o meno ordinatamente il processo da seguire per permettere ad X di utilizzare i caratteri True Type?
__________
Copiati i TTF che hai in una directory di Linux (ad esempio /usr/lib/X11/fonts/ttf)
vai in quella directory e digita:
#
ttmkfdir -o fonts.dir
[Invio]
Dai il comando:
#
chkfontpath --add /usr/lib/X11/fonts/ttf
[Invio]
penso che il comando ttmkfdir vada ridato ogni volta che aggiungi dei caratteri.
Ho cercato di installare xfstt, ma in fase di compilazione mi viene restituito il seguente errore:
c++ -g -Well - pedantic -DMAGNIFY=0 -c xfstt.cpp -I/usr/X11R6/include/X11/fonts \ -I/usr/X11R6/include/ xfstt.cpp:47: X11/fonts/FS.h: no such file o directory xfstt.cpp:48: X11/fonts/FSprolo.h: no such file o directory
tutto questo in corrispondenza della linea in cui si trovano le due istruzioni di include:
#include <X11/fonts/FS.h> #include <X11/fonts/FSprolo.h>
in effetti questi due file sulla mia macchina non ci sono. Cosa devo fare? Dove recupero i due file?
__________
Installa il pacchetto xlib6g-dev
Non ho capito se si deve comunque installare xfstt e modificare Fontmap per poter stampare.
__________
Xfstt non serve come gestore di font, ma è utile per evitare di crearsi a mano la lista dei font per il file di gs, Fontmap
. Dopo averlo usato per riempire il file Fontmap
, lo puoi disinstallare.
Ragazzi, nessuno sa come creare uno script di avvio (da mettere nell'albero degli init) per fare partire automaticamente xfstt all'avvio di Linux? Uso Red Hat 6.0.
__________
Ho fatto così:
Ho installato e compilato xfstt, in /etc/rc.d/init.d/xfs
;
ho aggiunto nella riga sotto quella che lancia xfs la riga seguente:
xfstt --daemon
Ecco le righe in questione:
... start) echo -n "Starting X Font Server: " rm -fr /tmp/.font-unix daemon xfs -droppriv -daemon -port -1 xfstt -daemon #nuova riga touch /var/lock/subsys/xfs echo stop) echo -n "Shutting down X Font Server: " killproc xfs killproc xfstt #nuova riga rm -f /var/lock/subsys/xfs
per quel che riguarda le opzioni di xfstt guarda i file inclusi insieme ai sorgenti. non dimenticare di aggiungere in XF86Config
:
FontPath "unix/:7100"
Esiste un modo per fare l'immagine di un disco o di una partizione? Per esempio come si copia tutta la partizione di un disco messo come slave?
__________
#
cat /dev/partizione > filedest
[Invio]
partizione= es. hda1
Invece del cat puoi usare tar:
#
tar czf filedest.tar.gz /dev/partizione
[Invio]
Per rimontarli:
#
mount -o loop filedest /mnt/XXX
[Invio]
Come creo l'immagine di un dischetto?
__________
Con:
$
dd if=/dev/fd0 of=immagine.img
[Invio]
Come ricreo nel dischetto il contenuto di un'immagine?
__________
Con:
$
dd if=immagine.img of=/dev/fd0
[Invio]
Posso montare un'immagine e vederne il contenuto?
__________
Sì, il comando è:
$
mount -o loop -t ext2 immagine.img /mnt/floppy
[Invio]
(ovviamente se l'immagine ha un filesystem ext2; se ha un filesystem diverso è sufficiente sostituire ext2 con, ad esempio, msdos).
È possibile creare un'immagine vuota da 650Mb, montarla, e poi metterci dentro con un banale cp tutti i file che mi servono?
__________
No. Ma puoi farlo prima. Metti tutti i file che ti servono in una directory temporanea e, poi da quella, crei l'immagine della directory.
Come si aggiungono all'immagine iso altri files?
__________
Non puoi aggiungere file a un'immagine, devi espandere il file e costruirti un'altra immagine:
#
insmod loop
[Invio]
#
mount -o loop image.iso /mnt
[Invio]
poi copia il contenuto di mnt (perché è a sola lettura) in una dir temp
, aggiungi quello che vuoi fino a 650 Mb e crea una nuova immmagine.
Volevo giusto iniziare ad usare Linux per la masterizzazione. Che programma si usa? Si deve prima creare l'immagine del cd? Insomma come funziona?
Devi creare l'immagine e masterizzarla.
Per creare l'immagine:
#
mkisofs -a -r -v -T -o ~/immagine.img /doc
[Invio]
cioè crea un'immagine (-o nome.img) nella tua directory home della directory /doc e delle discendenti, con estensioni RockRidge (-r) (così mantieni i permessi, i nomi lunghi visto che lo standard iso9660 è 8+3 e senza permessi) ti dice anche qualche informazione (-v) include tutti i file anche quelli nascosti (-a) crea il file trans.tbl per la conversione qualora (-T) utilizzi il CD in un sistema 8+3.
In seguito la monti per verificare che sia stata creata come la volevi tu:
#
mount -o loop -t iso9660 ~/immagine.img /mnt/dovevuoi
[Invio]
la smonti:
#
umount /mnt/dovevuoi
[Invio]
la masterizzi:
#
cdrecord -v speed=k dev=x,y,z -data immagine.img
[Invio]
sostituisci k con 1 se hai un masterizzatore 1x sostituisci k con 2 se hai un masterizzatore 2x sostituisci k con 4 se hai un masterizzatore 4x e così via...
la x in dev indica l'adattatore SCSI (se ne hai uno solo ometti il valore)
la y indica il numero del dispositivo nella catena SCSI (1-6)
la z è generalmente 0 (assenza di LUN).
Ad esempio:
#
cdrecord -v speed=6 dev=3,0 -data immagine.img
[Invio]
masterizzerà l'immagine della directory corrente nel masterizzatore 6X che riesiede al posto n° 3 della catena SCSI dell'unico adattatore SCSI che c'è nel sistema.
mkisofs -a -l -J -R -T -v \ -b percorso/ImmagineAvvio -c percorso/FileCatalogo
percorso=«directory dove hai copiato i file»/«directory file avvio»
(Si assume che le coordinate dell'unità di masterizzazione siano 0,1,0).
Creare la prima sessione di un cd multisessione:
#
mkisofs -R -r -J -D -l -T -v -o /1/2/isoimage /directory
[Invio]
#
cdrecord -v -speed=4 dev=0,1,0 -multi /1/2/isoimage
[Invio]
Creare la seconda sessione:
#
cdrecord -msinfo dev=1,0
[Invio]
(si otterranno dei numeri del tipo 0,11702 ossia la prima traccia dal settore 0 al settore 11702)
#
mkisofs -o isoimage2 -R -C 0,11702 -M /dev/scd1 /directory
[Invio]
#
cdrecord -v -speed=4 dev=1,0 -eject -multi isoimage2
[Invio]
Per le successive sessioni basta cambiare i numeri che richiede l'opzione -C usando l'opzione msinfo di cdrecord.
Come si masterizza un CD audio?
__________
Prima si estraggono le tracce audio:
#
cdparanoia -B -s
[Invio]
che estrae le tracce audio separate (-B) e cerca (-s) da solo il drive con il CD audio nel caso si abbiano 2 lettori CD (lettore e masterizzatore).
Verranno creati i file delle tracce:
track01.cdda.wav
, track02.cdda.wav
, ecc.
Dopo ciò, si lancia il comando per masterizzare:
#
cdrecord -v speed=4 dev=3,0 -audio track*.wav ecc.
[Invio]
-v emette informazioni:
speed=4 registra a 4X (2 registra a 2X ecc.)
dev=3,0 ID e LUN del proprio masterizzatore.
L'ID si ottiene con il comando:
#
cdrecord -scanbus
[Invio]
che restituisce qualcosa simile a:
scsibus0: 0) * 1) * 2) * 3) 'YAMAHA ' 'CRWxxxx ' '1.0h' Removable CD-ROM 4) * 5) * 6) * 7) *
il LUN è generalmente 0.
Non riesco a registrare CD audio. Ho un masterizzatore EIDE.
__________
Forse sbagli qualcosa nel procedimento:
Se decidi di adoperare cdda2wav (come ti consiglio), non puoi usare l'emulazione SCSI. Puoi però usare il kernel IDE che è venuto fuori dall'installazione di Linux (insomma quello che non contiene emulazione SCSI). Allora, dopo aver inserito il CD nel lettore ed avere scelto la directory dove vuoi inserire i file audio, puoi copiare un brano musicale:
#
cdda2wav -tnn audio_xx.wav
[Invio]
dove:
nn= numero del brano musicale nel cd;
xx= numero che vuoi assegnare al file.
Ma, se vuoi copiare tutto il CD, non è necessario eseguire il comando brano per brano, basta fare:
#
cdda2wav -B
[Invio]
Troverai tutti i brani ricopiati sotto forma audio_nn.wav. Se hai una scheda sonora, puoi controllare con play, wavplay o wavp. Per masterizzare con cdrecord è necessario riavviare con il kernel con emulazione SCSI, poi:
#
cdrecord -v -audio speed=2 dev=1,0 audio_*.wav
[Invio]
Ma, se vuoi masterizzare solo un determinato brano, userai il numero al posto dell'asterisco.
Potrebbe capitarti di voler utilizzare file .wav prodotti da Microsoft. Questi brani sono un po' particolari, perché prima di funzionare sotto Linux devono essere opportunamente trattati con sox:
#
sox nomefile.wav -x nomefile.cdr
[Invio]
puoi ascoltare il file così ottenuto con playcdr o masterizzarlo con:
#
cdrecord -v -audio speed=2 dev=1,0 *.cdr
[Invio]
Come posso copiare una distribuzione Linux. Se il disco è avviabile, come posso renderlo tale?
__________
Come prima cosa se hai un masterizzatore IDE controlla nella sezione SCSI support del kernel che sia abilitato il supporto SCSI per i CD-ROM e il supporto SCSI generico e nella sezione Block Devices l'opzione per il supporto dell'emulazione SCSI.
Se il masterizzatore è SCSI seleziona il driver opportuno nella sezione SCSI low level.
Se vuoi fare un CD avviabile, devi copiare il contenuto del CD d'origine in una directory dopodiché devi utilizzare mkisofs per creare l'immagine iso e le informazioni relative all'avvio:
#
mkisofs -a -l -J -R -T -v -b percorso/ImmagineAvvio -c percorso/FileCatalogo
[Invio]
-oimmagine.iso
-ainserisce tutti i file
-labilita l'uso dei 32 caratteri nei nomi dei file
-JJoliet
-RRock Ridge
-Tgenera il file TRANS.TBL
-vmodalità prolissa
-bImmagineAvvio è un file che contiene il codice di avvio, LILO, syslinux, kernel... (boot.img)
-cdeve esistere la directory per poter creare il file di catalogo
percorsodirectory_dove_hai_copiato_i_file/directory_file_avvio
Creata l'immagine la puoi verificare prima di scriverla:
$
mount -o loop immagine.iso /mnt/cdrom -t iso9660
[Invio]
$
cd /mnt/cdrom
[Invio]
e ti trovi nel futuro cd.
Smonti con:
$
umount /mnt/cdrom
[Invio]
e passi alla masterizzazione:
#
cdrecord dev=X,Y,Z -v -eject -speed=T immagine.iso
[Invio]
dove:
dev= se sai i valori scsibus,target,lun da assegnare bene altrimenti:
#
cdrecord -scanbus
[Invio]
-v= modalità prolissa;
-eject= espelle il CD quando ha finito;
-speed= velocità di scrittura.
Facendo un'immagine di un CD come posso renderlo avviabile?
__________
i CD avviabili contengono un'immagine di un floppy di avvio.
Una volta stabilito qual è il tuo floppy, crei l'immagine con dd e specifichi con l'opzione -b di mkisofs che quel floppy dovrà fare l'avvio, esempio per creare il file-immagine:
#
dd if=/dev/fd0 of=floppy_avvio.img
[Invio]
per creare il file iso della directory attuale '.':
#
mkisofs -b floppy_avvio.img -J -R -o file.iso .
[Invio]
alcuni interessanti articoli e link:
<http://www.pluto.linux.it/journal/pj9709/joliet.html>
<http://www.pluto.linux.it/journal/pj9807/writecd-1.html>
<http://www.pluto.linux.it/ildp/HOWTO/CD-Writing-HOWTO.html>
Come si ottiene un CD avviabile in Linux?
__________
Usando mkisofs, specifichi -b floppy_di_avvio.img
ti spiego: se hai una directory che contiene la Red Hat, esempio /RH60
, devi usare:
#
mkisofs -r -o percorso/miofile.iso -b /RH60/images/boot.img
[Invio]
Per i CD riscrivibili qualcuno ha qualche indicazione da darmi?
I CD riscrivibili utilizzano un sistema per la scrittura dei dati chiamato packet writing, che come substrato ha un filesystem chiamato UDF.
Il supporto per l'udf non è ancora incluso nei kernel comuni.
Per ora l'unica cosa che ho visto in giro è un modulo per il kernel che permette l'accesso in sola lettura ai filesystem UDF.
Puoi trovare questo modulo presso Freshmeat (<http://www.Freshmeat.net>), inserendo come chiave di ricerca «udf».
È possibile fare una formattazione di un CD riscrivibile?
__________
Puoi ridare verginità al tuo CD riscrivibile con:
#
cdrecord dev=1,0 blank=fast
[Invio]
#
cdrecord dev=1,0 blank=all
[Invio]
Quest'ultimo comando è più lento ma permette una ripulitura più completa
Quali programmi esistono, in ambiente Linux, per masterizzare?
__________
cdrecord, cdwrite e l'interfaccia grafica xcdroast.
Vorrei installare i moduli Alsa. Come si fa?
__________
Alsa è diverso rispetto ad oss. Requisito essenziale è che il kernel preveda il supporto dell'audio, ma non in modo monolitico. La compilazione e l'installazione prevede nell'ordine:
Dalla directory dei dispositivi eseguire:
#
./configure --help
[Invio]
per ottenere un aiuto sulla configurazione.
Per una scheda PCI sarà:
#
./configure --sequencer=yes; make; make install
[Invio]
Eseguire lo script:
#
./snddevices
[Invio]
Sia per le librerie che per le utility eseguire:
#
./configure; make; make install
[Invio]
Prima di caricare il modulo della propria scheda si deve tenere presente che non vi devono essere già altri moduli audio caricati e bisogna attivare con isapnp le schede ISA (se non si è fatta la scelta --with-isapnp=yes). Fare riferimento a: 82.1.
Commentare le righe di /etc/conf.modules
relative alle scelte effettuate tramite sndconfig o manualmente. (oppure scaricare tutti i moduli con lo script presente in: 82.1.
eseguire:
#
modprobe nome_modulo
[Invio]
per caricare la propria scheda, considerando che alcune schede richiedono parametri aggiuntivi come si legge nel file INSTALL posto nella directory dei driver.
Impostare il volume come descritto in 65.2
9. Tenendo presente che ALSA è pienamente compatibile con OSS se si vogliono usare applicazioni non native alsa, caricare i moduli oss-like:
#
modprobe snd-pcm1-oss
[Invio]
#
modprobe snd-mixer-oss
[Invio]
10.Una volta attivata la scheda, si possono conservare le impostazioni con:
#
alsactl store
[Invio]
(che crea un file /etc/asound.conf) che si potranno ripristinare con:
#
alsactl restore
[Invio]
Ho installato i driver Alsa per la mia scheda audio ma non riesco a sentire nulla. Penso che siano stati caricati correttamente ma del suono neanche l'ombra.
__________
Con Alsa appena si installa, i volumi sono impostati a mute, quindi devi impostare il mixer con:
#
amixer set Master on
[Invio]
#
amixer set PCM on
[Invio]
#
amixer set Master 75%
[Invio]
#
amixer set PCM 75%
[Invio]
dopo puoi usare il mixer che vuoi (se carichi snd-pcm1-oss, anche quelli di oss, tipo aumix).
Dopo avere installato Alsa, il volume è a zero. Come si alza?
__________
Su questo sito ho trovato uno script per Desktop e Laptop:
<http://www.sr.bham.ac.uk/~sjt/opl3sa2.html>
--Desktop-- #!/bin/sh AMIX='/usr/bin/amixer -q' $AMIX set Master 100% unmute $AMIX set PCM 85% unmute $AMIX set 'Input Gain' 40% $AMIX set Line 40% unmute capture
--Laptop-- /usr/bin/amixer -q set Master 90% unmute /usr/bin/amixer -q set PCM 90% unmute /usr/bin/amixer -q set Line 60% unmute capture /usr/bin/amixer -q set CD 60% unmute /usr/bin/amixer -q set 'Input Gain' 50% /usr/bin/amixer -q set FM 60% unmute
Capita anche a voi che il mixer non mantenga il livello dei toni? Ogni volta che attivo il mixer i toni sono al minimo livello.
__________
Prova ad usare aumix, salva le impostazioni con S e metti nei file di avvio (rc.local
o nel .bash_profile
):
/usr/bin/aumix -L
Come si possono disabilitare i 'bip' che senti quando premi [tab] sulla riga di comando?
__________
Puoi modificare il file /etc/inputrc
oppure ~/.inputrc
e inserire la riga:
#
set bell-style none
[Invio]
Invece con:
#
set bell-style visible
[Invio]
si fa il contrario
oppure si da il comando (in bash):
#
echo -en "\33[11;00]"
[Invio]
che emette il suono per zero ms.
Ho abilitato i suoni di sistema, ma sono talmente bassi che devo alzare al massimo il volume delle casse per sentire qualcosa.
__________
Forse dovresti impostare con aumix il valore che preferisci e ricaricarlo all'avvio con:
#
aumix -L percorso/.aumixrc
[Invio]
Ho un problema con i CD audio, non riesco a montarli!
__________
I CD audio non li puoi montare perché non hanno un filesystem. Devi inserirli e ascoltarli, ad es. con cdplay.
Sapreste consigliarmi un buon programma per estrarre tracce dai CD audio ed uno per decodificare i .wav in .mp3, possibilmente per X altrimenti vanno bene anche per riga di comando.
__________
cdda2wav (licenza: GPL) per estrarre le tracce audio. Scrive anche in cdr così i file sono pronti per essere scritti su cd.
BladeEnc (licenza: LGPL) per scrivere da wav a mp3;
tutti gli altri formati tranne l'mp3 si fanno semplicemente con sox (licenza: GPL).
Sto cercando un programma che trasformi dei brani da formato .wav a formato .mp3.
Ci sono molti applicativi adatti a questo scopo:
notlame (licenza: GPL)
LAME (licenza: GPL)
bladenc (licenza: LGPL)
gogo (licenza: LGPL)
Come potrebbe essere uno script in grado di estrarre brani audio da un CD musicale sotto forma di file *.wav e di passarli infine ad un programma che le trasformi in mp3?
Ecco uno script chiamato makemp3:
---------------------------- #!/bin/bash cd ~ for T in $*; do cdparanoia -w -Y $T temp.wav gogo temp.wav $T.mp3 rm -f temp.wav done ----------------------------
Si usa lanciandolo con:
$
makemp3 tracciadatrasf1 [tracciadatrasf2] [tracciadatrasf3] ...
[Invio]
Es.:
$
makemp3 1 5 7
[Invio]
(trasforma le tracce 1,5 e 7). In uscita emette le traccie come n.mp3 (nel nostro esempio 1.mp3, 5.mp3, ecc.).
Esiste un'applicazione in grado di leggere i Tag ID3 dei file .mp3?
__________
Esiste il pacchetto MP3info (licenza: GPL).
Qualcuno sa dirmi perché se lancio freeamp, appena parte il brano mi si blocca tutto e devo impartire un killall?
__________
Clicca sul tasto in alto a sinistra, quello che ti apre il menù di configurazione; vai su options o opzioni e dai ok su tutte le varie schede che ti compaiono, senza cambiare nulla e tutto dovrebbe funzionare.
Come, mai se faccio uno script stupidissimo come questo:
#!/bin/sh cd /home/aur
e lo avvio, non mi va alla directory /home/aur
?
__________
Perché lo script viene eseguito da una shell secondaria (/bin/sh
), che termina quando finisce lo script e pertanto perde tutte le impostazioni (compresa PWD, cioè la directory corrente). Per farlo eseguire dalla shell principale (cioè quella che accetta i tuoi comandi) dovresti creare un alias, una funzione oppure fare:
$
source nomescript
[Invio]
o:
$
. nomescript
[Invio]
in questo caso infatti sarà la shell corrente ad eseguire i comandi e non un processo figlio.
__________
Certo, dagli l'estensione .cgi, forniscigli i permessi con:
#
chmod 755 file.cgi
[Invio]
e richiamalo mediante link o fornendo l'indirizzo esatto. Come cgi puoi usare qualunque linguaggio interpretato o compilato che sia in grado di leggere lo standard input, scrivere su standard output e leggere il contenuto delle variabili d'ambiente.
Esiste un comando o un sistema per contare i caratteri presenti in un file di testo?
__________
$
cat nomefile | wc -l
[Invio]
conta le linee;
$
cat nomefile | wc -c
[Invio]
conta i caratteri;
$
man wc
[Invio]
per dettagli.
Come si fa a sapere lo stato di uscita di un comando?
Utilizzando il parametro speciale '?', ad esempio:
#
ls ; echo -e "\nEXIT_CODE: $?\n"
[Invio]
EXIT_CODE: 0
#
ls dir_che_non_esiste; echo -e "\nEXIT_CODE: $?\n"
[Invio]
EXIT_CODE: 1
Non ho capito la differenza tra il parametro posizionale $@ e $#. Chi me li spiega?
__________
Scrivi questo file: prova.sh
#!/bin/bash echo $@; echo $#;
Ora, dopo avergli dato i permessi di esecuzione, prova a lanciarlo in questo modo:
$
./prova.sh ciao bla "un esempio"
[Invio]
Penso che ti sarà molto chiaro il risultato.
$@ stamperà tutti i parametri passati da linea di comando, mentre $# indicherà la posizione dell'ultimo di essi, nel nostro caso 3.
Aggiungi allo script anche la riga:
echo $3
Come puoi vedere, verrà restituito un esempio.
Carica i file da modificare (o parte di essi, se sono davvero troppi) con il vim, tutti in una volta:
$
vim file1 file2 file3 file4 file5
[Invio]
(oppure usa l'asterisco se li puoi raggruppare con uno stesso prefisso o suffisso).
A questo punto scrivi dopo avere premuto il tasto [ESC]:
:nmap z gg:d10<CR>G20kd20<CR>:w<CR>:n<CR>
«z» è il nuovo tasto mappato per eseguire le operazioni che ci interessano, mentre al posto di 10 e di 20 scriverai rispettivamente il numero delle prime n righe ed il numero delle ultime m righe da cancellare. In pratica, lasciando 10 e 20, vengono cancellate le prime 10 righe e le ultime 20.
Dunque, ora ti basta premere il tasto «z» ripetutamente, per quanti sono i file che hai aperto. Automaticamente vim eseguirà le operazioni richieste nella mappatura. I file vengono sovrascritti, quindi in ogni caso prestare attenzione. Quando vim avrà modificato l'ultimo file aperto, ti avvertirà che non ce ne sono altri cui applicare le operazioni. A questo punto salva ed esci normalmente con :wq
Ammettiamo che la stringa sia «pD:» Fai riferimento alla sezione 68.6 e modifica la mappatura in questo modo:
:nmap z /pD\:<CR>dd
Il «\» davanti a «:» protegge quest'ultimo carattere dall'interpretazione del vim.
Come si aggiungono i numeri di riga ad un file di testo? Mi serve di numerare progressivamente tutte le righe di un file.
__________
Lo puoi fare con perl. Crea un file pippo.pl
e rendilo eseguibile:
#!/usr/bin/perl $nr=0; while (<STDIN>){ # Cambia eventualmente %04d con quello che vuoi print sprintf("%04d: %s",$nr,$_); $nr++; } exit;
e poi dai il comando:
$
cat pluto.txt | ./pippo.pl > filenumerato
[Invio]
Ecco un altro metodo:
$
cat pluto.txt | awk '{print FNR,$0}'
[Invio]
reindirizzando opportunamente l'output.
Mi chiedevo se esiste già o se è possibile realizzare un comando che esegua il seguente compito:
comando percorso_directory_scelta
con un output costituito da un file a caso (senza tutto il percorso) contenuto nella directory_scelta.
__________
$
ls -1 | sed -e $(random -e `ls -1 | wc -l` ; echo $(( RAND=$?+1 )))p --quiet
[Invio]
Possiamo sopperire alla mancanza di 'random' con l'equivalente in perl:
$
perl -e '@files=`ls -1`;print "@files[int(rand($#files))]\n";'
[Invio]
Come faccio a trovare tutti i file che contengono una stringa e che ho modificato negli ultimi 30 minuti?
Se intendi farlo nella directory corrente e nelle sue discendenti:
$
find . -mmin -30 -exec grep -l aabbcc "{}" \;
[Invio]
se invece vuoi farlo in tutto il filesystem:
#
find / -mmin -30 -exec grep -l aabbcc "{}" \;
[Invio]
Ho la necessità di cercare in una directory e nelle relative discendenti, se ci sono o meno dei file con nomi uguali e che il risultato di questa ricerca venga poi inviato ad un file di testo
__________
------ #!/bin/sh # $1= directory dove cercare i file. for $i in `find $1 -name *`; do $n= basename $i if [ `find $1 -name $n |wc -l` -gt 1]; then find $1 -name $n fi done ------
Forse un po' lento ma dovrebbe andare. Per mettere l'output in un file di testo basta redirigere l'output con un '>'.
Oppure:
$
for F in `ls -1 -R percorso_dir1`; do find percorso_dir2 -name $F; done > lista_files_doppi
[Invio]
dove per percorso_dir1 si intende il percorso completo della prima directory da confrontare, e per percorso_dir2 il percorso della seconda, analogamente.
Come si può creare uno script che mi rinomini in minuscolo tutti i file di una directory? Oppure esiste già un comando apposito?
__________
$
perl -e '@files = `ls -1`; chop @files; foreach $f(@files){!-e lc($f) && rename ($f, lc($f))}'
[Invio]
o con:
$
for FILE in `/bin/ls`; do FILELOWER=`echo $FILE | tr A-Z a-z`; mv -i $FILE $FILELOWER; done
[Invio]
o con:
------------------------------------ for i in * do echo $i j = `echo $i | dd conv=lcase 2>&-` mv $i $j done ------------------------------------
o con:
------------------------------------ for i in * do mv -i `echo $i | awk '{print tolower($1)}' -` done ------------------------------------
Ho una pagina html con dei collegamenti a file che hanno lettere maiuscole e minuscole, ad esempio:
<A HREF="/dir-a/dir-b/pAGInA.html">
vorrei convertire pAGInA.html in pagina.html e così per tutti i collegamenti.
Questo script dovrebbe fare al caso tuo:
cat page.html | perl -e 'while($l=<STDIN>){$l=~s/a href=\"(.*)\"\s*/a \ href=\"\L$1\" /ig;print $l;}' > new.html
Ho un file di testo composto da tante righe ognuna delle quali è il nome di un file html. C'è un sistema per trasformare queste righe in altrettanti collegamenti ipertestuali?
Se il tuo file è qualcosa del tipo:
file1.html file2.html file3.html file4.html [...] file34575.html
Potresti utilizzare il seguente comando (interprete bash):
for i in `cat il_tuo_file`; \ do echo "<a href="$i">$i</a>"; \ done > file_destinazione
Il comando è stato suddiviso in 3 righe per comodità ma può essere eseguito su una singola riga.
Ho ricevuto dei file di dati (.txt) in cui gli stessi sono ordinati (con la data ad inizio riga) cronologicamente dal più recente al più vecchio. Mi servono al contrario. In pratica la prima riga deve diventare l'ultima; la seconda la penultima, ecc..
__________
$
cat -n nome_file | sort -r | awk '{$1="";print}' | sed -e s/\ // > nuovo_file
[Invio]
oppure:
$
cat nome_file | perl -e '@a=< STDIN >; while(@a){print pop(@a)};' > nuovo_file
[Invio]
Non basta il semplice:
$
cat nome_file | sort -r > nome_file.rev
[Invio]
che funzionerebbe se il primo campo di ogni riga fosse la data in formato aa/mm/gg. Ma se è invece in formato gg/mm/aa le righe verrebbero ordinate in base al giorno e non in base all'anno.
Vorrei sostituire da una frase una parola con un'altra. Come si fa?
__________
Con il comando sed, eccoti un esempio:
$
echo 'Il miglior sistema operativo: Windows' | sed /Windows/s//Linux/g
[Invio]
Come si fa a sapere quante volte compare una parola in un file?
__________
$
grep parola file|wc -w
[Invio]
Molto spesso negli script che contengono if compare l'opzione -f. Cosa sta ad indicare?
__________
Credo che tu intenda questo:
#!/bin/bash if [ -f "$1" ]; then echo "file regolare"; fi
Se il percorso passato come argomento a questo script rappresenta un file regolare, lo script te lo segnala. Per file regolare si intende un qualsiasi file normale, che non sia quindi un dispositivo, un socket, una directory, ecc.
In alcuni script shell mi interessa utilizzare la data. Digitando però:
$
date
[Invio]
mi vengono restituite informazioni inutili e fastidiose per il mio script. Come posso eliminarle?
__________
Il comando:
$
echo `date +%x`
[Invio]
ti restituisce il formato: mm/gg/aa. Utilizzare invece:
$
echo `date +%x` | sed "/\//s///g"
[Invio]
ti potrebbe essere più utile in quanto restituisce il formato: mmggaa.
Le virgolette nell'ultimo comando sono necessarie a causa della '\'. Lo stesso risultato lo ottieni con:
$
echo `date +%x | sed 's/\///g'`
[Invio]
Con i parametri %d %m %y o %Y si possono quindi ottenere tutte le combinazioni per manipolare il formato della data.
$
date +%Y%m%d
[Invio]
20010304
Il parametro %Y restituisce l'anno a quattro cifre mentre %y quello a due.
Vorrei che nel file pippo.txt
tutte le stringa fossero sostituite da stringa1. Quale è il comando?
__________
Eccolo:
$
sed s/'stringa'/'stringa1'/g pippo.txt > filemodificato.txt
[Invio]
Come faccio a cercare tutti i file di un certo tipo (*.png) e a copiarli in una directory?
__________
Se la directory di destinazione è /root/pngfile
:
#
find / -name "*.png" -exec cp -p {} /root/pngfile \;
[Invio]
Come si può creare uno script che mi permetta di cambiare solo le estensioni di gruppi di file?
__________
#!/usr/bin/perl $old_ext = @ARGV[0] || usage(); $new_ext = @ARGV[1] || usage(); print "$old_ext --> $new_ext\n\n"; @files = `ls -1`; chop @files; foreach $f(@files) { $f =~ /(^.*)\.$old_ext/ && rename ($f, "$1.$new_ext"); } sub usage { print <<"END"; Usage: ./script.pl old_ext new_ext Example: ./script.pl tar.gz zip END exit(1); }
Dai i permessi di esecuzione e invocalo nella directory in cui devi rinominare i file.
Siccome lo script per semplicità non effettua alcun controllo sulla nuova estensione richiesta dall'utente, è meglio usarlo con prudenza.
Oppure ecco un altro metodo:
for i in *.vecchiaestensione do echo $i | awk -F. '{print $1 ".nuovaestensione"}' done
o più semplicemente:
for i in *.vecchiaestensione do echo ${i%.vecchiaestensione}.nuovaestensione done
$
pppstats -r -v ppp0
[Invio]
ottengo qualcosa tipo:
IN PACK VJCOMP VJTOSS NON-VJ RATIO UBYTE | OUT PACK VJCOMP VJSRCH VJMISS RATIO UBYTE 48089 366 16 0 99 1.00 0 | 308840 385 54 212 8 1.00 0
vorrei togliere la prima riga e avere la seconda tale e quale, ma tra un numero e l'altro non ci devono essere gli spazi ma dei caratteri di tabulazione.
__________
Ecco i comandi necessari:
#
pppstats -r -v ppp0 | grep -v VJCOMP | perl -e '$i=<STDIN>;$i=~s/\s+/\t/g;print $i;' | cut -f 2-
[Invio]
#
perl -e '@a=split(/\s+/, `pppstats -r -v ppp0|grep -v VJCOMP`);shift(a);foreach $b(@a) {print "$b\t"};'
[Invio]
#
pppstats -r -v ppp0 | grep -v OUT | sed -e 's/\ \+/ /g' | cut -f 2-
[Invio]
(N.B.: nella parte con il sed il tab è scritto con [Ctrl+v] e [tab])
Esiste un modo per rimpiazzare da riga di comando alcuni caratteri contenuti in un file di testo con altri caratteri? In sostanza, mi serve un modo per convertire tutti i «<» contenuti in un file in «:»
__________
$
sed -e s/\</:/g nomefile > nuovofile
[Invio]
Come faccio a ricavare da una pagina html tutti gli indirizzi e-mail in essa contenuti? Mi servirebbe per automatizzare un lavoro che adesso sto facendo a mano. Ho fatto qualche prova con il grep ma senza molti risultati.
__________
Se hai installato l'interprete perl, puoi risolvere con una riga di comando di questo tipo che ti garantisce una certa precisione:
$
cat file.html | perl -e 'while ($l=<STDIN>) {$l=~/mailto:\s*([\w-_\.]+\@[\w-_\.]+\.[\w-_\.]+)/ && print "$1\n";}'
[Invio]
Se gli indirizzi e-mail da estrapolare non compaiono sotto forma di tag HTML, puoi togliere la stringa relativa al mailto e lo spazio nella regexp.
Quale potrebbe essere lo script che prende tutti i file di una directory e li rinomina progressivamente (1.zip 2.zip ecc.) ?
__________
#!/usr/bin/perl $my_dir = @ARGV[0] || die "Non è stata specificata la directory\n"; @files = `ls $my_dir`; chop @files; foreach $f(@files) { $count++; $f =~ /\.(.*)/; rename("$my_dir/$f", "$my_dir/$count.$1"); }
oppure:
#!/bin/bash # _N=1 for _F in 'ls' do mv $_F ${_N}.zip _N='expr $_N + 1' done
se invece vuoi aggiungere solamente il suffisso .zip allora:
#!/bin/bash # for _F in 'ls' do mv $_F ${_F}.zip done
Come si fa in modo semplice quello che in Dos si faceva per esempio con:
ren abc*.txt abc*.asc ?
__________
Si può fare così:
$
for i in abc*.txt; do mv $i ${i%.txt}.asc; done
[Invio]
Se i file sono tantissimi ed eccedi la lunghezza massima di una riga di comando, puoi sempre fare:
$
find . -name "abc*.txt" | while read i; do mv $i ${i%.txt}; done
[Invio]
ma attenzione che find è ricorsivo.
Le forme:
${nomevariabile%%pattern}
${nomevariabile%pattern}
${nomevariabile##pattern}
${nomevariabile#pattern}
vengono espanse dalla shell nel contenuto della variabile tranne la parte all'inizio (`#') o alla fine (`%') che soddisfa il pattern. Il pattern è al solito un pattern di shell (*,?,[a-z]), e non un'espressione regolare.
Con `##' e `#' il pattern viene eventualmente tolto dall'inizio, mentre con `%%' e `%' viene eventualmente tolto dalla fine. La differenza tra `##' e `#' (o `%%' e `%') sta nel fatto che il primo rimuove il pattern più lungo possibile, mentre il secondo rimuove il più corto possibile.
Come si fa ad aggiungere una stessa parola alla fine di ogni riga di testo?
__________
$
cat file-name | sed "s/$/xxx/"
[Invio]
dove xxx è la stringa da aggiungere.
creare 2000 directory;
inserire in ognuna di esse un file .zip;
entrare nelle directory una ad una e lanciare unzip nomefile di volta in volta.
__________
La shell è lì apposta per questo genere di lavori basta dirgli cosa fare più o meno nei termini in cui l'hai descritto a parole, ossia:
#!/bin/sh cd /zipdir for f in * do mkdir /destinazione/$f unzip $f -d /destinazione/$f done
Lo script assume che tutti gli zip siano in /zipdir
e che la directory /destinazione
esista già.
Per il resto non fa altro che elaborare i file uno per uno, creare una directory con lo stesso nome del file .zip, e decomprimercelo dentro.
Che cosa sono precisamente i file *.h e *.o in un programma C?
__________
Supponendo di lavorare sul file miofile
, il codice sorgente vero e proprio viene scritto in miofile.c
. miofile.h
, detto file di intestazione contiene le dichiarazioni delle variabili e delle funzioni implementate nel file miofile.c
.
Infine il codice oggetto risultante dalla compilazione risiederà in miofile.o
.
Come faccio ad avviare il compilatore C++ dalla shell di Linux?
__________
Con:
$
g++ -o nomefile nomefile.cpp
[Invio]
-o serve a dare un nome all'eseguibile diverso dal nome predefinito, che è 'a.out'.
Qualcuno sa dirmi in quali condizioni si verifica un errore di tipoBus Error? Ho scritto un'applicazione C++ che ogni tanto senza spiegazioni cessa di funzionare e restituisce un Bus Error in zone di codice diverse.
__________
Compila il programma con l'opzione -g ed eseguilo. Quando si interrompe, analizza le cause con:
$
dbx nomeprogr core
[Invio]
e tramite l'istruzione where puoi vedere dove è accaduto l'errore.
Solitamente Bus Error accade per un superamento dei limiti di memoria, un indice di un array che supera il limite, un fine-stringa mancante ecc.
Girovagando tra i miei passati programmi compilati col Turbo C++ ne ho trovato uno che mi potrebbe servire anche in Linux. Questo programma però include alcuni file tipo conio.h, graphics.h e dos.h che in Linux naturalmente non ci sono. Il mio problema è quello di sapere se è possibile trovare file .h omologhi anche in Linux o devo cambiare radicalmente il sorgente?
__________
Cerca su sunsite.unc.edu un file che si chiama:
linux-conio-x.yy.tgz
che sostituisce il conio.h della Borland; ho avuto qualche problemino ma l'ho ritoccato e funziona discretamente.
Comunque, molto brevemente (e imprecisamente):
conio.h -> ncurses.h graphics.h -> vga.h dos.h -> ???
Tuttavia le librerie sotto Linux hanno un modo di operare completamente diverso e ti consiglio uno studio accurato della documentazione.
Posso convertire un sorgente Pascal in C?
__________
Esiste p2c che sta per «da pascal a c». Dato un sorgente Pascal, esso genera un altro sorgente C che puoi compilare tranquillamente con gcc.
Il nome di Pascal-to-C è indicato dal suo autore come P2c. Tuttavia, P2C è anche il nome di un altro compilatore analogo, realizzato per sistemi speciali: <http://www.geocities.com/SiliconValley/Network/3656/p2c/linux.html>. In questo secondo caso, oltre alla particolarità del compilatore stesso, c'è da considerare il fatto che non si tratta di software libero. |
Esistono dei compilatori Cobol per Linux?
__________
GNU Cobol2c Versione 0.0.0 (in sviluppo) Home Page: <http://www.gnu.org/software/cobol> (licenza: GPL)
Tiny Cobol (licenza: GPL)
rpcobol (licenza: GPL)
Il modo migliore per installare i moduli in Perl è con il comando:
#
perl -MCPAN -eshell
[Invio]
e al prompt digita:
>
install Tk
[Invio]
(Tk in questo caso è un esempio di modulo da installare) Sarà necessaria una breve fase di configurazione guidata se installi i moduli in questo modo per la prima volta, ma tutta la fase di scarico del modulo, test, installazione è automatica, comprendendo anche eventuali installazioni di moduli necessari a quello in oggetto. In alternativa, per installare un modulo Perl a mano, dopo averlo scompattato ed essere entrati nella directory dove è stato decompresso, si può inizializzare la procedura di installazione con:
#
perl Makefile.PL
[Invio]
Il modulo viene creato mediante il comando:
#
make
[Invio]
testato con:
#
make test
[Invio]
ed installato con:
#
make install
[Invio]
durante tutte queste fasi si possono presentare inconvenienti, ad esempio altri moduli da installare che sono necessari a quello in oggetto, oppure test falliti per qualche ragione.
Ho un paio di problemi con un Acer Travel Mate 312D. Non mi trova la scheda audio che è una OPL3-Sax; la riconosce tramite pnp ma non sembra riconoscere le impostazioni che fornisco io manualmente.
Ho modificato /etc/modules.conf, ma così ho solo risolto parzialmente il problema. Ho provato a modificare /etc/isapnp.conf ma non mi accetta 10 come DMA a 16 bit, peccato che sia proprio quello che mi serve.
__________
Puoi provare a crearti un nuovo file con:
#
pnpdump --config>opl3sa.conf
[Invio]
e poi lo adatti.
Dovresti arrivare a qualcosa come questo:
###### (READPORT 0x0203) (ISOLATE PRESERVE) (IDENTIFY *) (VERBOSITY 2) (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING (CONFIGURE YMH0030/2156265473 (LD 0 (IO 0 (SIZE 16) (BASE 0x0220)) (IO 1 (SIZE 8) (BASE 0x0530)) (IO 2 (SIZE 8) (BASE 0x0388)) (IO 3 (SIZE 2) (BASE 0x0330)) (IO 4 (SIZE 2) (BASE 0x0370)) (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 0)) (DMA 1 (CHANNEL 1)) (NAME "YMH0030/2156265473[0]{OPL3-SA3 Snd System }") (ACT Y) )) (CONFIGURE YMH0030/2156265473 (LD 1 (IO 0 (SIZE 1) (BASE 0x0201)) (NAME "YMH0030/2156265473[1]{OPL3-SA3 Snd System }") (ACT Y) )) (WAITFORKEY) ########
Naturalmente:
#
isapnp opl3sa.conf
[Invio]
va eseguito senza moduli audio caricati.
Per inserire i moduli nel corretto ordine, ti consiglio:
#
modprobe mpu401
[Invio]
#
modprobe ad1848
[Invio]
#
modprobe opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=5 dma=0 dma2=1
[Invio]
#
modprobe opl3 io=0x388
[Invio]
come si legge anche nei sorgenti del kernel.
Ho tentato di installare la Red Hat 6.0 sul mio portatile, ma al login non posso usare alcun tasto. Perché?
__________
Disabilita il pcmcia; all'avvio fa dei danni. Lo puoi far partire dopo e funziona.
Per ovviare all'inconveniente, all'avvio di LILO scrivi:
LILO:
linux init 1
[Invio]
dalla shell vai in /etc/rc.d/init./ e fai:
#
mv pcmcia pcmcia.old
[Invio]
Riavvia il sistema.
La macchina ripartirà e non si bloccherà; come utente root dal 'setup' di Red Hat disabilita da 'system service' il pcmcia alla partenza.
C'è un altro metodo: andare a vedere nel BIOS del portatile e mettere sotto la voce pc card il controller mode come Cardbus/16 -bit. Dopodiché il demone pcmcia funzionerà anche al boot.
Il kernel non sembra riconoscere il mio modem pcmcia sul mio portatile. Consigli?
__________
Il supporto seriale va compilato nel kernel e non come modulo altrimenti il modem pcmcia non funzionerà.
Avevo intenzione di comprare un K6. Ci sono problemi con Linux?
__________
Il K6 III sembra avere dei problemi con i kernel 2.0.x e i primi 2.2.x.
__________
inserisci in ~/.xinitrc
, prima della riga deputata al caricamento del gestore delle finestre, le righe:
xset dpms 420 540 900 xset +dpms
È possibile realizzare una stazione di montaggio video sotto Linux? Ossia esistono schede di acquisizione compatibili e programmi per farlo?
__________
Il movimento sta crescendo.
Attualmente le schede TV con i chipset BT8xx sono quasi tutte garantite. Io uso la mia scheda TV e prendo immagini e filmati direttamente dalla televisione oppure dall'ingresso S-VHS presente sulla mia scheda.
Per informazioni sui driver BTTV: <http://www.metzlerbros.de/bttv.html>
Tra i programmi per vedere la televisione e catturare troviamo:
<http://www.in-berlin.de/User/kraxel/xawtv.html> (licenza: GPL) per i filmati crea file avi
Ovviamente la risoluzione che offrono è quella di uno schermo TV
Entrambi i programmi sono reperibili in diversi formati al sito <http://www.linuxberg.com>
Sul fronte delle schede Matrox sono nati dei progetti che stanno dando ottimi risultati:
per la Rainbow Runner si possono usare i driver scaricabili dal sito <http://www.penultima.org/~iconnor/mgavideo/>
per quello che la riguarda la Marvel si possono avere informazioni al sito: <ftp://ftp.rwii.com/pub/linux/system/Meteor/meteorman.html>
Esistono anche progetti (che stanno portando i loro frutti) per schede di qualità superiore:
per la MV100 basta recarsi al sito: <http://wpfd25.physik.uni-wuerzburg.de/~karrer/mv1000/mv1000.html>
Per le schede Mirò invece: Dc1 e Dc1Plus: <http://www.net4you.net/users/scherr/dc1plus/index.html>
Per la Dc30: <http://stud3.tuwien.ac.at/~e8125426/dc30/>
Anche per Iomega BUZZ esistono i driver: <http://www.lysator.liu.se/~gz/buz/>
Esiste poi un hardware dedicato a Linux: la scheda LML33 (prezzo ~ 490$) prodotto da LinuxMedialabs <http://www.linuxmedialabs.com/>
Per maggiori dettagli sui driver per la cattura fotogramma tenere sott'occhio il sito: <http://www.atlantek.com.au/USERS/wes/linux/frame/drivers.html>
Tutti i progetti sono raccolti nel Video4Linux: <http://roadrunner.swansea.uk.linux.org/v4l.shtml> che sta arrivando anche alla seconda versione.
Da tenere sotto controllo gli sviluppi di Trinity (licenza: GPL) <http://members.xoom.com/NicholasF/> e Vstream (licenza: GPL) <http://www.ee.up.ac.za/~justin/bttv/>
Se poi hai bisogno di sottotitolare i tuoi film, puoi usare b@k@sub (licenza: GPL) <http://www.allusion.net/bakasub/>.
Per la scheda video G200 AGP, nelle versioni da 8 e da 16 Mb di RAM, occorre aprire il file /etc/X11/XF86Config
(se non risiede in questa directory cercalo nel file system perché purtroppo la sua posizione varia da distribuzione a distrubuzione) ed inserire questa sezione:
------------------------ Section "Device" Identifier "G200" VendorName "Matrox" BoardName "AGP" VideoRam 8192 EndSection ------------------------
Come faccio a configurare Linux con la mia scheda SiS 6326
__________
Ho una SiS 6326 ed è gestita Tier 3 (ovvero va, ma solo al 50% delle possibilità) almeno fino all'Xfree86 3.3.5.
Il 3.3.6 dovrebbe avere un sopporto opportuno delle SiS.
Comunque bisogna aggiungere in XF86Config
, nella sezione Device:
Section "Device" Identifier "Silicon Integrated Systems [SiS]|86C326" VendorName "Unknown" BoardName "Unknown" #VideoRam 4096 Option "no_accel" Option "sw_cursor" Option "no_imageblt" # Option "no_bitblt" Option "fast_vram" Option "pci_burst_on" EndSection
Se hai ancora problemi, prova a decommentare l'opzione no_bitblt.
Così non dovrebbe dare problemi, ma girerà senza alcuna accelerazione.
Ho una tastiera particolare con parecchi tasti aggiuntivi. Sotto Windows parte di questi tasti servono per controllare l'audio (volume + e -; muto, ecc.) e il CD (play/pausa; stop, chiudi/espelli), altri sono programmabili per far partire determinati programmi, aprire certe cartelle ecc.
C'è un modo per poter assegnare delle funzioni a questi tasti anche sotto Linux? Ho letto da qualche parte che c'è chi ha riprogrammato i tasti Windows e Menù Contestuale delle tastiere Windows, immagino sia la stessa procedura, ma ignoro come si faccia e non so dove trovare informazioni.
__________
Io utilizzo una tastiera a 108 tasti (3 di Windows + sole nascente, mezzaluna e power) che ho riprogrammato così:
con showkey -k controlli quali tasti sono già associati a un codice tasto: premi i vari pulsanti e ti segni il numero decimale corrispondente (per uscire attendi 10s senza premere alcun tasto);
se alcuni tasti non danno segni di vita ripeti l'operazione con showkey -s: ad es. a me i 3 tasti di Windows risultavano assegnati già a 125, 126, 127, mentre i 3 tasti aggiuntivi apparivano muti. Con showkey -s invece ho ottenuto:
0xe0 0x63 0xe0 0xe3
pressione e rilascio del tasto col sole
0xe0 0x5f 0xe0 0xdf
pressione e rilascio del tasto con la luna
0xe0 0x5e 0xe0 0xde
pressione e rilascio del tasto col simbolo power
Ora devi assegnare un codice tasto a tali tasti, col comando:
#
setkeycodes scancode keycode
[Invio]
Es.:
#
setkeycodes e063 122
[Invio]
Attenzione: non utilizzare una mappa della tastiera già utilizzata! Meglio controllare prima l'organizzazione della tastiera attiva.
Modifica poi la tua mappa della tastiera per assegnare le funzioni che desideri ai nuovi tasti: io ho proceduto con delle stringhe che contengono i comandi da eseguire, ad es. per spegnere la macchina col tasto power ho modificato così il file /etc/kbd/default.map.gz
(ho una Debian GNU/Linux 2.1)
[...] keycode 124 = F69 [...]
e più avanti:
[...] string F69 = "shutdown -h 1 &\n" [...]
(ho messo un ritardo di un minuto in modo da avere il tempo di cancellare lo 'shutdown' in caso di pressioni accidentali. Altrimenti basta spegnere il monitor e andarsene, se è attivo il supporto per APM nel kernel e hai selezionato l'opzione power off on halt la macchina si spegne da sé).
Attenzione anche a concludere la stringa con «\n»! Con questa procedura la pressione di un tasto speciale viene interpretata come la battitura della stringa corrispondente, e come per ogni comando dopo ci vuole l'invio.
Come si imposta la tastiera italiana nel mio sistema?
__________
Ecco i passaggi da seguire per impostare la tastiera italiana nella propria macchina.
Posizionarsi in /usr/lib/kbd/keymaps
:
#
cd /usr/lib/kbd/keymaps
[Invio]
qui sono presenti diverse sottodirectory (a seconda della piattaforma), occorre posizionarsi nella directory corrispondente alla propria. Nel caso di Intel sarà i386:
#
cd i386
[Invio]
In questa directory è presente un'ulteriore struttura che presenta tante sottodirectory quanti sono i modelli di tastiera. In genere, il modello più diffuso è qwerty (dalle prime lettere della tastiera in alto a sinistra)
#
cd qwerty
[Invio]
a questo punto, con:
#
ls it*
[Invio]
è possibile verificare che esista il file di configurazione corrispondente alla lingua italiana.
Se non c'è, frugate nei vostri CD che lo trovate.
Le scelte dovrebbero essere: it-ibm.kmap.gz
it.kmap.gz
it2.kmap.gz
(di solito it.kmap.gz
dovrebbe andar bene, salvo casi particolari)
Per installare, eseguire il comando:
#
loadkeys it
[Invio]
che restituirà:
Loading it.kmap.gz
Se vi interessa verificare l'impostazione della tastiera:
#
dumpkeys
[Invio]
(meglio redirigere l'output in un file, visto che è piuttosto prolisso):
#
dumpkeys > tastiera.txt
[Invio]
questi passi dovrebbero consentire di configurare la tastiera per la console testuale.
Per X si utilizzi Xf86Setup.
Come faccio a impostare la tastiera italiana?
__________
Devi inserire nel file /etc/sysconfig/keyboard
la riga:
KEYTABLE="usr/lib/kbd/keytables/it.map"
o comunque indica il percorso dove c'è il file it.map
.
In ogni caso:
#
loadkeys it.map
[Invio]
(oppure solo it, è indifferente).
Solitamente le mappe delle tastiere sono in /usr/lib/kbd/keytables
Alcune volte la mappa caricata in realtà è un collegamento verso la mappa reale, così basta che cambi il collegamento e sei a posto.
Qualcuno sa come impostare la tastiera americana estesa?
__________
La tastiera si imposta con:
#
loadkeys nome-file
[Invio]
dove nome-file è il file di mappa della tastiera, normalmente reperibile nella directory:
/usr/share/keytables/
Tali file terminano con .map e hanno un nome abbastanza significativo, tipo it.map
it2.map
.
È possibile generare i caratteri accentati su una tastiera statunitense?
__________
Per quanto riguarda X la cosa è molto semplice, basta modificare il file XF86Config
mettendo la riga:
XkbLauout "us_intl"
In particolare ho questo file:
Section "Keyboard" Protocol "Standard" AutoRepeat 500 30 LeftAlt Meta RightAlt Meta ScrollLock Compose RightCtl Control XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc102)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc102" XkbLayout "us_intl" EndSection
Per quanto riguarda il terminale il problema sono riuscito a risolverlo copiando il file us-acent.kmap.gz
.
Se si vuole fare il carattere è basta premere in sequenza `e, Il bello è che si può fare anche È o È premendo 'E o `E! Se si vuole esagerare con "e si ottiene ë, oppure ~a genera ã. L'unica nota di demerito è che se si vuole fare realmente il carattere ` o ' o ancora " o ~ si deve premere successivamente al carattere lo spazio.
Come posso modificare le impostazioni dei tasti della tastiera?
__________
Con:
#
xkbcomp :0 -
[Invio]
viene scaricata su standard output la mappa della tastiera. Se la redirigi su un file, la modifichi, e la reinstalli con il procedimento inverso, puoi configurare la tastiera come vuoi, e far sì, per esempio, che le parentesi graffe siano in corrispondenza di 8 e 9 come con la console testuale.
Durante l'installazione di Debian GNU/Linux 2.1 ho impostato il mouse come seriale, invece del PS2. Se eseguo startx non funziona come dovrebbe. Come devo fare per riconfigurare il mouse?
__________
C'è il programma gpmconfig, che funziona da console. Lo lanci, e visto che anch'io ho avuto diversi problemi con i mouse su X, ti conviene aggiungere l'opzione -R allo script che lancia gpm, comunque gpmconfig ti chiede se vuoi aggiungere qualche opzione.
Poi configuri il mouse in XF86Config così:
Section "Pointer" Protocol "MouseSystems" Device "/dev/gpmdata"
(BaudRate non so se deve essere cambiato, prova con 1200)
In pratica in questo modo il mouse lo comanda sempre gpm, e passa le informazioni a X attraverso /dev/gpmdata
.
Il dispositivo per il mouse PS/2 è /dev/psaux
. O metti quello quando lanci gpmconfig, oppure fai il link e metti /dev/mouse
.
Esiste anche gpm-mouse-test, per controllare la configurazione.
Chi saprebbe indicarmi come attivare la rotellina del mouse? Il mouse in questione è PS2, un Logitech MouseWare.
Devi aggiungere nella sezione Pointer di /etc/X11/XF86Config
le voci:
Buttons 5 ZAxisMapping 4 5
(N.d.A. Questa metodica funziona solo sotto il Desktop Manager Gnome. Questa purtroppo è una mancanza delle librerie QT che non supportano la rotellina in modo nativo, questo vale almeno per le QT 1.x. La soluzione potrebbe essere caricando qualche modulo di Xwindows)
Mi compare un messaggio di errore relativo al controller IDE e quindi non riesco ad accedere al disco rigido. Ho una scheda madre il cui controller gestisce il dischi UltraDMA 66 (UltraATA).
__________
I dischi UltraDMA 66 (detti anche UltraATA) utilizzano un controller speciale che permette una velocità di trasferimento di picco di 66mbytes/sec, (siglato HPT366). I kernel della serie 2.2.x non lo gestiscono e bisogna quindi passare ai kernel sperimentali (HPT366 supportati dalla versione 2.3.12 del kernel).
Ne va da sé che tentando di installare una distribuzione che abbia un kernel obsoleto su di un disco UltraATA 66 questa operazione risulterà non possibile. Si potrebbe anche utilizzare un altro disco IDE normale, per l'aggiornamento del kernel e la reinstallazione sul disco UltraATA ma è un lavoro alquanto macchinoso.
Per i più pazienti basterà attendere il rilascio del kernel 2.4.x: l'installazione da CD-ROM di una distribuzione con questo kernel riconoscerà automaticamente i dischi UltraDMA 66.
Qualcuno sa dirmi come posso far vedere a Linux un CD-ROM esterno connesso via porta parallela?
__________
Fai un link che fa puntare /dev/cdrom
alla tty della parallela.
Quando lancio startx il server grafico parte regolarmente ma sulla console da dove ho lanciato X (CTRL+ALT+F1, per intenderci) mi viene segnalato un loop infinito questo errore:
VFS: busy inodes on changed media. Atapi device hdd: Error : Not ready -- (Sense key = 0x02) (reserved error code) -- ( osc = 0x3a,ascq =0x02) The failed "Test unit Ready" packet command was: "00 00 00 00 00 00 00 00 00 00 00 00 "
__________
La soluzione dovrebbe essere in gnome control center. Prova a disattivare l'«automounter» di Gnome. Basta entrare in «Periferiche» alla voce CD «Properties».
Come faccio a far riconoscere a Linux il mio masterizzatore ide?
__________
Devi ricompilare il kernel con il supporto emulazione SCSI sui CD-ROM i quali si configurano come SCSI reali.
nel processo di ricompilazione del kernel seleziona:
BLOCK DEVICE e alla voce SCSI EMULATION SUPPORT
scegliere la Y.
Selezionare SCSI SUPPORT e alla voce:
SCSI GENERIC SUPPORT
scegliere la Y.
Salvare e compilare il kernel (se ovviamente gli altri parametri erano rimasti invariati). I CD-ROM IDE verranno riconosciuti automaticamente. come periferiche SCSI e dovrai riconfigurare il file /etc/fstab
di conseguenza. Dovrà risultare qualcosa del tipo:
/dev/scd0 /cdrom iso9660 ro,noauto,user 0 0
Quali sono, più o meno esattamente, le impostazioni necessarie al kernel per fargli credere che il masterizzatore IDE sia una periferica SCSI?
__________
Il kernel va ricompilato includendo:
SCSi support SCSI generic support SCSI CD-ROM support SCSI emulation support
e disattivando il supporto per i CD-ROM IDE. (riguardo quest'ultimo punto, leggere l'LDR intitolata: Configurazione masterizzatore IDE pt. 3/3)
quando hai fatto tutto, lancia "cdrecord -scanbus" in un terminale grafico per verificare la tua situazione.
Ma se per far vedere il masterizzatore IDE devo disattivare il supporto per i CD-ROM EIDE, come faccio a utilizzare il CD-ROM (ide)? Emulo pure quello attraverso lo SCSI?
__________
Non eliminare il supporto per i CD-ROM IDE che sarebbe la voce:
include IDE/ATAPI CDROM support
Aggiungi invece la seguente riga a /etc/lilo.conf
, nella sezione relativa al linux:
append="hdd=ide-scsi"
(o hdb, hdc, a seconda di dov'è il masterizzatore).
L'accesso in lettura al masterizzatore, avverrà comunque come se fosse uno SCSI.
Pare che il mio kernel abbia riconosciuto il mio masterizzatore ide ma ora come accedo? Quale è il nome del dispositivo? /dev/cosa?
__________
Dovrebbe essere /dev/hdL (dove L è una lettera: a,b,c,d, ecc.)
Dipende da dove è stato connesso, e segue la stessa regola dei dischi fissi:
prima catena ide: master=hda, slave=hdb;
seconda catena ide: master=hdc, slave=hdd.
Se non sai come è stato connesso, prova per tentativi, eliminando i dispositivi cui corrispondono i dischi e il CD-ROM.
Es.:
inserire un CD-ROM nel masterizzatore, creare la directory di mount:
#
mkdir /mnt/masterizzatore
[Invio]
(va fatto solo una volta) montare il CD-ROM presente nel masterizzatore:
#
mount -t iso9660 /dev/hdb /mnt/masterizzatore
[Invio]
se vengono emessi segnali di errore provare con un'altra lettera.
Per provare a vedere il contenuto della directory principale del CD-ROM nel masterizzatore:
#
ls -la /mnt/masterizzatore
[Invio]
se la directory appare vuota, allora il CD non è stato montato.
Ho acquistato un masterizzatore SCSI, come faccio a farlo riconoscere?
__________
Ricompila il Kernel attivando:
Enhanced IDE/MFM/RLL....(attivo) IDE Atapi cd rom (attivato) SCSI HostAdaptor emulation (attivo) Loopback device (modulo) SCSI support (attivo) SCSI cd rom support (attivo/modulo) Enable vendor specific (attivo) Scsi generic support (attivo) ISO 9660 cdrom filesystem (attivo) Microsoft Joliet (attivo)
Compila il nuovo kernel e rinomina l'immagine (bzImage) ad esempio in 'scsi'. Quando vuoi masterizzare in LILO scegli l'etichetta 'scsi' che punta alla nuova immagine.
Pare che il mio kernel abbia riconosciuto il mio masterizzatore SCSI ma ora come accedo? Quale è il nome del dispositivo? /dev/cosa?
__________
Dovrebbe essere /dev/scdX
(devi fare dei tentativi sostituendo X con 0,1,2,3, ecc. durante il montaggio).
Es.:
inserire un CD-ROM nel masterizzatore, creare la directory di mount:
#
mkdir /mnt/masterizzatore
[Invio]
(va fatto solo una volta) montare il CD-ROM presente nel masterizzatore:
#
mount -t iso9660 /dev/scd0 /mnt/masterizzatore
[Invio]
se vengono emessi segnali di errore provare con un altro numero.
Per provare a vedere il contenuto della directory principale del CD-ROM nel masterizzatore:
#
ls -la /mnt/masterizzatore
[Invio]
se la directory appare vuota, allora il CD non è stato montato.
Ho una scheda NE 2000 compatibile. Come faccio a farla riconoscere a Linux?
__________
Devi dichiarare come modulo il supporto per questa scheda durante la ricompilazione del kernel.
Fatto questo, se la scheda è PCI fai:
#
modprobe ne2k-pci
[Invio]
Se è ISA prova:
#
insmod ne io=0x300H
[Invio]
ma controlla i ponticelli per sapere l'indirizzo o rilevalo servendoti del dischetto che di solito accompagna la scheda.
Se rilevi errore prima fai:
#
insmod 8310
[Invio]
Se tutto funziona inserisci nel file /etc/rc.d/rc.sysinit
le righe funzionanti per automatizzare la procedura all'avvio.
Come si fa a rilevare una scheda audio PNP?
__________
Prima di tutto il kernel deve essere compilato prevedendo l'uso dei moduli oss e dei moduli audio appositi oppure si può anche utilizzare alsadriver.
Poi si devono scaricare i moduli audio altrimenti il riconoscimento delle periferiche PNP potrebbe venire compromesso.
Questa momentanea depurazione la si ottiene con questo script:
cat /proc/modules|gawk '/^uar/{print $1}'|xargs -i rmmod {} cat /proc/modules|gawk '/^snd/{print $1}'|xargs -i rmmod {} cat /proc/modules|gawk '/^opl/{print $1}'|xargs -i rmmod {} cat /proc/modules|gawk '/^ad/{print $1}'|xargs -i rmmod {} cat /proc/modules|gawk '/^sound/{print $1}'|xargs -i rmmod {} cat /proc/modules|gawk '/^mpu/{print $1}'|xargs -i rmmod {} cat /proc/modules|gawk '/^isa/{print $1}'|xargs -i rmmod {}
poi si deve creare il file isapnpNEW.conf
per ottenere il file di configurazione generico delle periferiche PNP (e questo vale solo per le schede isa, non per le pci):
#
pnpdump --config>isapnpNEW.conf
[Invio]
e poi si da il comando:
#
isapnp isapnpNEW.conf
[Invio]
Bisogna poi inserire i moduli soundcore e sound con i seguenti comandi:
#
insmod soundcore
[Invio]
e:
#
insmod sound
[Invio]
Fatto questo bisogna inserire il modulo della scheda audio.
In ogni caso l'elenco dei moduli, le sequenze e le modalità di inserimento cambiano da scheda a scheda e sono presenti in genere nei documenti della directory /usr/src/linux/Documentation/sound/
per cui è consigliabile fare riferimento prima a tale documentazione.
Ho tentato di compilare il kernel 2.2.9 per la mia scheda audio (OPTi 931S su slot ISA) senza però risultato.
__________
La scheda funziona con i moduli OSS: la devi attivare con isapnp e inserire i moduli nel corretto ordine, per questo basta leggere nei sorgenti del kernel; il file è:
/usr/src/linux/Documentation/sound/Opti.
di cui questo è una parte:
This is the sound part of my /etc/conf.modules file. Following that I will explain each line. alias mixer0 mad16 alias audio0 mad16 alias midi0 mad16 alias synth0 opl3 options sb mad16=1 options mad16 irq=10 dma=0 dma16=1 io=0x530 joystick=1 cdtype=0 options opl3 io=0x388 post-install mad16 /sbin/ad1848_mixer_reroute 14 8 15 3 16 6
Ho una SBLive!. Come faccio a farla riconoscere al mio sistema?
__________
Devi scaricarti il file emu10k1***.tar.gz
dal sito della Creative, in seguito occorre ricompilare il kernel secondo le indicazioni del file README. Occorre poi impartire:
#
make
[Invio]
e:
#
make install
[Invio]
Comunque, nel kernel-2.3.99-pre6 emu10k1 è integrata. (Si può ancora compilare come modulo o come parte integrante del kernel)
Sto tentando di configurare la mia scheda audio, una Sound Blaster pnp PCI 128. Il sistema mi riconosce una scheda audio PCI, ma poi mi restituisce un errore:
Device or resource busy.
Lo stesso errore si verifica al momento di caricare il modulo all'avvio.
__________
Prova ad includerne il supporto nel kernel (non a dichiararla come modulo) e controlla che l'irq della scheda non sia in conflitto con qualche altro dispositivo. (la porta parallela ad esempio).
Come si configura la scheda in questione?
__________
Si devono mettere queste impostazioni nel kernel:
Sezione sound:
<*> Sound card support <*> Ensoniq AudioPCI (ES1370)
(o Creative Ensoniq AudioPCI97 ES1371)
<*> OSS sound modules <*> 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support (220) I/O base for SB Check from manual of the card (7) Sound Blaster IRQ Check from manual of the card (1) Sound Blaster DMA 0, 1 or 3 (5) Sound Blaster 16 bit DMA (330) MPU401 I/O base of SB16, Jazz16 and ES1688 (-1) SB MPU401 IRQ <*> Generic OPL2/OPL3 FM synthesizer support <*> SoftOSS software wave table engine (22050) Sampling rate for SoftOSS 8000 to 48000 (32) Max # of concurrent voices for SoftOSS 4 to 32 <*> FM synthesizer (YM3812/OPL-3) support
e in 'Additional low level sound drivers' seleziona:
<*> AWE32 synth
Bene. Questi sono le impostazioni del kernel; ricompila, riavvia e imposta i permessi giusti con i comandi:
#
chmod 666 /dev/dsp
[Invio]
#
chmod 666 /dev/mixer
[Invio]
#
chmod 666 /dev/sequencer
[Invio]
#
chmod 666 /dev/audio
[Invio]
integrando i driver nel kernel non hai poi bisogno del comando insmod.
Facendo:
#
cat /dev/sndstat
[Invio]
al successivo riavvio, dovrebbe mostrarti almeno, tra altre cose, un
*********** Synth devices: 0: SoftOSS ***********
Infine devi configurare la parte midi (caricare i banchi col comando sfxload)
Ho cercato di installare la scheda sonora Yamaha opl3-sax, ma non ci riesco.
__________
Innanzitutto dovresti attivare la scheda con isapnp, dopo esegui:
#
modprobe mpu401
[Invio]
#
modprobe ad1848
[Invio]
#
modprobe opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=5 dma=0 dma2=1
[Invio]
#
modprobe opl3 io=0x388
[Invio]
(modificando opportunamente i valori).
Prova a vedere lo stato della scheda con:
#
cat /dev/sndstat
[Invio]
#
cat /proc/modules
[Invio]
e poi puoi provare il suono:
#
play /usr/share/afterstep/desktop/sounds/train.au
[Invio]
Come si fa a configurare ed usare una scheda audio Avance Logic als 110?
__________
L'unico modo che ho trovato per abilitare la als100 è quello di disabilitare il DMA 1 nel file di configurazione:
#/etc/als100.conf (READPORT 0x020b) (ISOLATE PRESERVE) (IDENTIFY *) (VERBOSITY 2) (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING (CONFIGURE ALS0110/-1 (LD 0 (IO 0 (BASE 0x220)) (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 0)) # (DMA 1 (CHANNEL 0)) # volutamente commentato per conflitto dma (NAME "ALS0110/-1[0]{PnP Sound Chip }") (ACT Y) )) (CONFIGURE ALS0110/-1 (LD 1 (NAME "ALS0110/-1[1]{PnP Sound Chip }") (ACT Y) )) (CONFIGURE ALS0110/-1 (LD 2 (NAME "ALS0110/-1[2]{PnP Sound Chip }") (ACT Y) )) (CONFIGURE ALS0110/-1 (LD 3 (INT 0 (IRQ 9 (MODE +E))) (NAME "ALS0110/-1[3]{PnP Sound Chip }") (ACT Y) )) (WAITFORKEY)
Commenta le righe di /etc/conf.modules
e rimuovi i moduli audio caricati; dopo riesegui:
#
isapnp /etc/als100.conf
[Invio]
ti dovrebbe restituire qualcosa del tipo:
Board 1 has Identity a3 ff ff ff ff 10 01 93 05: ALS0110 Serial No -1 [checksum a3] ALS0110/-1[0]{PnP Sound Chip }: Port 0x220; IRQ5 DMA0 --- Enabled OK ALS0110/-1[1]{PnP Sound Chip }: --- Enabled OK ALS0110/-1[2]{PnP Sound Chip }: --- Enabled OK ALS0110/-1[3]{PnP Sound Chip }: IRQ9 --- Enabled OK
Prova poi a inserire i moduli sound, uart401 e sb come descritto in /usr/src/linux/sound
Ho una scheda 16 bit 100% Sound Blaster compatibile ISA, ed un kernel 2.2.x ricompilato con tutto il supporto audio modulare; ho istallato e configurato isapnptools, e all'avvio qualcosa di nuovo viene riconosciuto, anche se non so se è la scheda in questione. Ora cosa devo fare?
__________
Inserisci in /etc/conf.modules
le righe:
alias sound sb pre-install sound insmod sound dmabuf=1 alias midi opl3 options opl3 io=0x388 options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
in /etc/modules
inserisci solo la riga:
auto
Ovviamente il tuo kernel deve essere ricompilato prestando attenzione che nella sezione Loadable Modules tutte e tre le opzioni siano abilitate. Ovviamente devi sostituire gli indirizzi nel caso cambiassero con quelli della tua scheda.
Ho una Sound Blaster 16 Vibra pnp, come faccio a farla riconoscere da Linux?
__________
Segui le istruzioni indicate in 82.1 fino al passaggio «# isapnp isapnpNEW.conf» compreso.
Poi dai i seguenti comandi:
#
modprobe sound
[Invio]
#
insmod uart401
[Invio]
#
insmod sb io=0x220 irq=5 dma=1 dma16=7
[Invio]
(ma questi valori li devi correggere con i tuoi)
Verifica con:
#
play /usr/X11R6/lib/tkdesk/sounds/newmail.au
[Invio]
o un altro suono; cercali con:
#
find / -name "*.au" (o *.wav)
[Invio]
Da /usr/src/linux/Documentation/sound/Soundblaster:
modprobe sound insmod uart401 insmod sb ... This loads the driver for the Sound Blaster and assorted clones. Cards that are covered by other drivers should not be using this driver. The Sound Blaster module takes the following arguments io I/O address of the Sound Blaster chip (0x220,0x240,0x260,0x280) irq IRQ of the Sound Blaster chip (5,7,9,10) dma 8-bit DMA channel for the Sound Blaster (0,1,3) dma16 16-bit DMA channel for SB16 and equivalent cards (5,6,7) mpu_io I/O for MPU chip if present (0x300,0x330)
Ho una scheda audio opl3sax, come posso fare per farla riconoscere?
__________
Segui le istruzione preliminari in 82.1.
Dopo ciò carica i moduli necessari per la scheda:
Se avete comiplato i moduli OSS:
#
modprobe mpu401
[Invio]
#
modprobe ad1848
[Invio]
#
modprobe opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=5 dma=0 dma2=1
[Invio]
#
modprobe opl3 io=0x388
[Invio]
sostituendo i valori validi per la vostra scheda.
Per ALSA invece:
#
modprobe snd-card-opl3sa2 snd_port=0x370 snd_wss_port=0x530 \ snd_midi_port=0x300 snd_fm_port=0x388 snd_irq=5 \ snd_dma1=0 snd_dma1_size=4 snd_dma2=1 snd_dma2_size=4
[Invio]
#
modprobe snd-pcm1-oss.o
[Invio]
#
modprobe snd-mixer-oss.o
[Invio]
#
aumix -L
[Invio]
Ho una Sound Blaster PCI 64V, integrata su scheda madre, che non riesco a far funzionare; vorrei provare con i driver ALSA. Cosa devo fare?
__________
Devi ricompilare il kernel con il solo supporto del suono, senza alcun driver specifico. Installa i driver ALSA, e modifica il file /etc/conf.modules inserendo:
alias char-major-116 snd alias snd-card-0 snd-card-ens-1371 alias char-major-14 soundcore alias sound-slot-0 snd-card-0 alias sound-service-0-0 snd-mixer-oss alias snd-service-0-1 snd-seq-oss alias snd-service-0-3 snd-pcm1-oss
Se lanci il comando:
#
cat /proc/modules
[Invio]
dovresti ottenere qualcosa tipo:
snd-pcm1-oss 13260 0 (autoclean) snd-card-ens1371 2332 0 (autoclean) snd-ens1371 7824 0 (autoclean) [snd-card-ens1371] snd-pcm1 18108 0 (autoclean) [snd-pcm1-oss snd-ens1371] snd-timer 8380 0 (autoclean) [snd-pcm1] snd-ac97-codec 20384 0 (autoclean) [snd-ens1371] snd-mixer 26688 0 (autoclean) [snd-card-ens1371 snd-ac97-codec] snd-midi 13388 0 (autoclean) [snd-card-ens1371 snd-ens1371] snd-seq-device 3136 1 (autoclean) [snd-card-ens1371] snd-pcm 8812 0 (autoclean) [snd-pcm1-oss snd-card-ens1371 snd-pcm1] snd 34880 1 (autoclean) [snd-pcm1-osssnd-card-ens1371 snd-ens1371 sn d-pcm1 snd-timer snd-ac97-codec snd-mixer sn d-midi snd-seq-device snd-pcm]
Prova anche a dare il comando:
#
cat /proc/asound/cards
[Invio]
e dovresti ottenere qualcosa tipo:
0 [card1 ]: AudioPCI - Ensoniq AudioPCI Ensoniq AudioPCI ES1371 at 0xe400, irq 11
Ricordati che ora il volume è impostato come muto. Fai riferimento a 65.2.
Per montare il suddetto lettore ZIP:
#
mount -t vfat /dev/hdc4 /zip
[Invio]
se si scrive «hdc1» (come la logica suggerirebbe) viene restituito errore.
Come devo configurare il kernel per renderlo in grado di gestire un lettore Iomega Zip esterno da 100M connesso via porta parallela?
__________
Io possiedo il lettore ZIP Parallelo e viene visto come /dev/sda4
. Per farlo funzionare devi includere nella compilazione del kernel le opzioni adatte.
Queste sono:
SCSI Support: Yes SCSI Disk Support: Yes
All'interno della sezione SCSI Low Level Driver:
IOMEGA ZIP: Yes
All'interno della sezione Character Device:
Printer Support: Yes
Ricompila e guarda nei messaggi del kernel (con dmesg) se lo ZIP è stato riconosciuto.
Per montarlo:
#
mount -t vfat /dev/sda4 /mount_point
[Invio]
Per ulteriori informazioni esiste lo ZIP-Drive mini HOWTO.
Ho un problema con lo Zip Plus. Ho da poco aggiornato la mia distribuzione. Prima per utilizzare lo Zip, utilizzavo i seguenti comandi:
insmod imm.o mount -t vfat /dev/sda4 /zip
dove /zip è il mount point che avevo creato per lo zip
ora, quando digito insmod ottengo i seguenti messaggi di errore:
/lib/modules/2.2.9-27mdk/scsi/imm.o: unresolved symbol parport_release_Rcdfb4d19 /lib/modules/2.2.9-27mdk/scsi/imm.o: unresolved symbol parport unregister_devoce_R528dbb47 /lib/modules/2.2.9-27mdk/scsi/imm.o: unresolved symbol parport_register_device_R2c1b91b /lib/modules/2.2.9-27mdk/scsi/imm.o: unresolved symbol parport_claim_r4664b1b5 ...
Che devo fare?
__________
Manca il supporto per la porta parallela, che sui kernel 2.2.x è a sé stante. Devi ricompilare il kernel con questo supporto, e poi dare:
modprobe parport modprobe parport_pc io=0x3bc,0x378,0x278 irq=none,7,auto
Lo Zip è esterno e parallelo, la porta parallela è libera ed unica; c'è un metodo che mi consente di montare questa periferica senza andarmi a ricompilare il Kernel?
__________
Vedi se in:
/lib/modules/versione_kernel/scsi
hai il modulo ppa.o
Se ce l'hai, è anche possibile che tu abbia il resto dell'armamentario SCSI necessario per montare un lettore zip (se poi hai dischi SCSI non c'è problema).
Prova a vedere se con:
#
mount -t vfat /dev/sda4 /mnt/dir_che_crei_appositamente
[Invio]
funziona.
Questo è il metodo più veloce.
Poi potresti controllare se ti riconosce la partizione sullo zip:
carichi il modulo (modprobe ppa) e dai:
#
fdisk -l
[Invio]
se trova la partizione sullo zip te lo comunicherà.
Come faccio a compilare il modulo ppa?
__________
Nella scelta delle componenti del kernel da make menuconfig (o da make xconfig se stiamo in X) alla voce SCSI vai alla voce:
SCSI LOWLEVEL OPTIONS
e lì seleziona i moduli riguardanti lo Iomega Zip. Usa ppa se hai uno zip100 e imm se hai lo Zip Plus.
Se usi i kernel 2.2.x, ed hai uno Zip parallelo, dovrai inserire anche il supporto per la parallela in GENERAL SETUP:
Parallel port support, PC-style hardware (preferibilmente come modulo)
Poi continui la configurazione del kernel. Se lo hai compilato come mudulo il kernel potrebbe non caricarlo all'avvio (il ppa) in quel caso basta dare:
#
modprobe ppa
[Invio]
Di solito il dispositivo lo trovi sotto /dev/sdb4.
Non riesco ad utilizzare la periferica per il backup DAT che legge delle cartucce da 90 e 60 Mb; questa periferica è collegata ad un controller SCSI che sembra venir riconosciuto correttamente. Se provo a montare la periferica /dev/st0 mi restituisce errore st0 is not a block device. Se eseguo un fsck sul DAT creando un filesystem ext2 incomincia a leggere nella periferica e dopo circa trenta secondi mi restituisce errore dicendo che la partizione non è ext2, provando con altri tipi di partizioni mi restituisce lo stesso errore.
__________
Un nastro non è un disco, non si può montare! Su un nastro puoi fare TAR o un CPIO, ma non lo puoi montare.
Infatti il driver ti dice che non è un dispositivo ad accesso casuale (a blocchi), ma ad accesso sequenziale (a caratteri).
Se vuoi verificare se il tuo streamer funziona, fai:
#
tar cvf /dev/st0 /
[Invio]
e se vedi accendere la lucetta del nastro, aspetta che finisca e poi fai:
#
tar tvf /dev/st0
[Invio]
ti dovrebbe ridire i nomi dei file del tuo disco fisso.
La prima cosa da fare è comunque accertarsi che il controller veda il dispositivo:
#
cat /proc/scsi
[Invio]
la seconda è inserire nel kernel il modulo Scsi Tape:
#
modprobe st
[Invio]
la terza è creare un link simbolico abbastanza utile:
#
ln -s /dev/st0 /dev/tape
[Invio]
la quarta è provare il DAT con mt (magnetic tape):
#
mt status
[Invio]
Ho un'unità DAT che non riesco ad utilizzare. Il controller SCSI viene visto correttamente ed anche l'unità (lo vedo quando, all'avvio, inizializza il controller). Devo fare un mount? E con quale dispositivo?
__________
Lo puoi usare con il classico tar, il dispositivo dovrebbe essere /dev/nst0
:
#
tar cvvf /dev/nst0 file1 file2 dir/
[Invio]
puoi anche specificare la grandezza dei blocchi con:
#
tar cvvbf 64 /dev/nst0 file1 file2 dir/
[Invio]
Per riavvolgere il nastro si usa il comando mt (move tape); se usi sempre quel dispositivo puoi fare un link:
#
ln -s /dev/nst0 /dev/tape
[Invio]
Ecco altri comandi:
#
mt rewi
[Invio]
riavvolge il nastro;
#
mt offl
[Invio]
riavvolge ed espelle il nastro;
#
mt fsf
[Invio]
avanza di un archivio;
#
mt fsf n
[Invio]
avanza di n archivi;
#
mt bsf
[Invio]
torna indietro di un archivio;
#
mt bsf n
[Invio]
torna indietro di n archivi;
Come faccio a visualizzare la situazione della RAM?
__________
Lo puoi fare con:
#
free
[Invio]
Per chi possiede più di 64MB di RAM, quale riga deve aggiungere nel lilo.conf?
__________
La riga è:
append = "mem=quantitaramM"
es. altre 64 MB di ram richiederanno:
append="mem=64M"
Come mai la riga:
append="mem=96M"
che ho aggiunto nel file /etc/lilo.conf
, non funziona?
__________
È possibile che tu abbia una scheda video integrata nella scheda madre. Se così fosse vanno sottratte dalle 96 Mega, quelle che sono dedicate alla scheda video. Se la scheda video richiede 4 Mb, allora la riga sarà:
append="mem=92M"
Mi potete dire i sintomi (messaggi d'errore, blocchi, ecc.) di Linux se nel sistema c'è della RAM difettosa?
__________
Se durante attività intensiva (ad esempio la ricompilazione del kernel) ti restituisce:
SIGNAL 11
allora potresti avere la ram difettosa.
Il mio scanner (HP 6100C) non funziona correttamente. Ho seguito tutta la documentazione al riguardo ma non c'è nulla da fare. Idee?
__________
Occorre modificare il file:
/usr/src/linux/drivers/scsi/scsi.c
in particolare occorre cercare le seguenti stringhe:
{"HP", "C1750A", "3226", BLIST_NOLUN}, /* scanjet iic */ {"HP", "C1790A", "", BLIST_NOLUN}, /* scanjet iip */ [1] {"HP", "C2500A", "", BLIST_NOLUN}, /* scanjet iicx */
ed aggiungere:
[2] {"HP", "C2520A", "3644", BLIST_NOLUN}, /* scanjet 6100C */
ricavi le informazioni sui valori C2520A e 3644 da Windows,
modifichi scsi.c
e ricompili il kernel.
Se dai:
#
cdrecord -scanbus
[Invio]
dovresti avere una verifica che tutto funzioni.
Ci sono i driver per i winmodem? Dove posso trovarli?
__________
I driver per ora ci sono solo per i Lucent, per gli altri non credo. Per le ultime notizie potresti provare a guardare qui:
<http://www.o2.net/~gromitkc/winmodem.html>
Posso utilizzare un Winmodem con Linux?
__________
I Winmodem attualmente gestiti da Linux sono:
Lucent LT Chipset CL-MD5620DT e PCTel
Ulteriori informazioni: <http://www.o2.net/~gromitkc/winmodem.html>, <http://linmodems.org> e <http://www.geocities.com/SiliconValley/3217/Documents/WinModems.html>
Come faccio a riconoscere il mio modem? Non dà segni di vita
__________
Il modem sotto Linux non dovrebbe creare problemi di sorta: il 99.99% dei modem sono Hayes compatibili, ossia hanno un set di istruzioni standard e come tali poco importa quale sia la casa costruttrice.
Magari per farlo andare al massimo delle sue possibilità sarà necessario intervenire un pochino sulla stringa di inizializzazione, ma personalmente non ne ho mai avuto bisogno (oltre a dover dare il famoso comando X3 perché molti modem non riconosco il segnale di libero italiano).
Questo è vero sempre che tu abbia un modem vero e non un winmodem.
Questi sono costituiti da un processore DSP (Digital Signal Processor) che elabora i segnali in modo da renderli uguali a quelli generati o ricevuti da un modem normale, molto bello sulla carta, ma ha bisogno di driver appropriati per funzionare e non ce ne sono sotto Linux, dato che le specifiche non vengono rese pubbliche.
Esclusa quindi questa strada, un modo per vedere se riesci a comunicare con il tuo modem è questo:
#
echo ath1 > /dev/ttyS?
[Invio]
In pratica chiedi al tuo modem di alzare la cornetta (dovresti sentire il click del relé ed il tu-tu dall'altoparlante del modem).
Al punto interrogativo devi naturalmente sostituire un numero:
0 per la com1 sotto Windows
1 per la com2 ...
Così dovresti verificare solo che riesci a chiacchierare con il tuo modem.
Per riattaccare basta dare:
#
echo ath0 > /dev/ttyS?
[Invio]
Il mio modem non dialoga col sistema (oppure è il contrario, comunque non si capiscono), né attraverso minicom né attraverso ppp.
Mi hanno detto di usare 'setserial' (ho già ricompilato il kernel con il supporto pnp) o isapnp, solo che i manuali non mi hanno aiutato a capire bene cosa devo fare.
Il modem è sulla com 3, quindi /dev/cua2 o /dev/ttyS2.
__________
Anch'io avevo il tuo stesso problema, e l'ho risolto impostando l'irq dell'modem su 4, che è l'irq che Linux utilizza per la ttyS0 e ttyS2.
Io ti consiglio di provare questo:
vedere se Linux ha visto il modem, scrivendo come root da console:
#
setserial /dev/ttS2
[Invio]
se Linux ha riconosciuto il modem, ti dovrebbe apparire qualcosa del genere:
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 4.
se ti appare questa scritta, devi impostare l'irq del tuo modem su 4, facendo una di queste tre cose:
impostare manualmente (se ci sono) i ponticelli sul tuo modem su com 3, irq 4;
se hai un BIOS plug and play, andare in PNP/PCI configuration e cambiare la scritta di fianco a irq 4 dal 'legacy isa' a 'pnp isa card';
usare l'utility isapnp.
Se usando setserial ti appare :
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
puoi fare:
sempre da console :
#
setserial /dev/ttyS2 uart 16550a
[Invio]
usare isapnp.
Così il modem dovrebbe funzionarti.
Ho un modem US Robotics ISDN TA e non riesco a farlo funzionare. Ho una Red Hat 6.0. Ho cercato della documentazione ma il panorama è un po' scarso. Qualcuno è in grado di darmi una mano?
__________
Come prima cosa devi assicurarti di avere avviato i seguenti moduli: ppp, shlc e bsd_comp. La configurazione è equivalente ad un normale ppp, l'unica cosa da controllare sono, appunto i moduli e le stringhe da inviare (le trovi sulle istruzioni del modem). Controlla che non utilizzi in maniera predefinita l'hdlc ma l' async ppp to sync ppp e soprattutto la configurazione della comunicazione seriale.
Ho ISDN + un adattatore US Robotics ISDN TA interno, come configuro e connetto a Internet la mia macchina Linux con KDE?
__________
Compila il kernel inserendo le opzioni ISDN per lo Sportster caricando ppp e HISAX come modulo.
Preleva il pacchetto kisdn (<http://www.millenniumx.de>) e configura hisax come modulo da caricare.
(io=268 - sostituisci gli ultimi tre 0 con 268 )
irq=quello che hai impostato sulla scheda con il ponticello.
Preleva isdn4win (<ftp://ftp.suse.com>) e compila oppure usa un rpm pronto.
Un unica attenzione: se il kernel non contiene il pacchetto ISDN aggiornato devi applicare la patch da prelevare sempre su ftp.suse.com.
Te ne accorgi se una volta configurato isdn4win non riesci a compilare a causa della mancanza di alcuni file.
Dove posso trovare un elenco di tutte le stampanti compatibili con Linux?
__________
Cerca su <http://www.picante.com/~gtaylor/pht/printer_list.cgi>
Viene qui presentata una configurazione funzionante (non per il colore però) per stampare con una stampante HP 720C Deskjet. Il risultato è stato ottenuto mediante il pacchetto pbm2ppa scritto da Tim Norman. La stampa viene effettuata attraverso l'interfaccia Postscript presente in pbm2ppa. Ecco il file /etc/printcap
che è stato utilizzato:
------------------------------------ lp:\ :lp=/dev/lp1:\ :sd=/var/spool/lpd/lp:\ :lf=/var/spool/lpd/lp/log:\ :af=/var/spool/lpd/lp/acct:\ :if=/usr/local/bin/ps.if:\ :la:mx#0:\ :sh:sf: ------------------------------------
Il file ps.if
:
---------------------------------------------------------- #! /bin/sh gs -sDEVICE=pbmraw -q -dNOPAUSE -r600 -sOutputFile= - | \ /usr/local/bin/pbm2ppa - - ----------------------------------------------------------
Non riesco a stampare con la mia Epson Stylus Color. Come mi devo comportare?
Prova a mettere queste configurazioni nel file /etc/printcap
.
------------------------------------------------------- lp|Stylus 360 dpi :sd=/var/spool/lpd/lp :sh :rw :lp=/dev/lp0 :mx#0 :if=/etc/magicfilter/stylus_color_360dpi-filter lp720|Stylus 720 dpi :sd=/var/spool/lpd/lp720 :sh :rw :lp=/dev/lp0 :mx#0 :if=/etc/magicfilter/stylus_color_720dpi-filter -------------------------------------------------------
Quali opzioni in quali sezioni vanno impostate durante la compilazione del kernel per far lavorare la stampante? Devo per caso, dopo la compilazione, modificare LILO per passare parametri speciali al kernel, oppure aggiungere qualche riga allo stesso?
__________
Se usi il kernel 2.0.3x è sufficiente includere il modulo per la parallela (lp.o), se invece sei passato al 2.2.xx la situazione è più complessa:
nella procedura di ricompilazione del kernel:
CONFIG_MODULES=y CONFIG_MODVERSIONS=y CONFIG_KMOD=y CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARIDE_PARPORT=m
e in /etc/conf.modules
:
alias parport_lowlevel parport_pc options parport_pc io=0x378,0x278 irq=7,auto
Come vengono gestite le periferiche ide in emulazione SCSI? Come funziona e perché esiste l'emulazione SCSI?
__________
L'emulazione SCSI è nata con uno scopo ben preciso, cioè quello di evitare di dover riscrivere i driver per le periferiche ed i programmi che già esistono per il protocollo SCSI (masterizzatori, lettori ZIP, ecc.). In pratica quello che viene effettuato al caricamento del modulo ide-scsi è la creazione nel modulo SCSI di una catena SCSI virtuale dove vengono attaccate tutte le periferiche ide che non hanno supporto nativo nel kernel caricato.
In pratica, se io compilo come modulo il supporto per i CD-ROM ATAPI, il supporto per l'emulazione ide-scsi, ed il supporto per il CDROM SCSI, quello che accade è questo:
Se carico il modulo ide del CD-ROM ottengo il supporto ide per il CD-ROM
Se carico il modulo ide-scsi e tutte le periferiche ide sono supportate da un qualche driver, allora sul bus SCSI virtuale non avrò periferiche
Se carico il modulo ide-scsi e poi carico il modulo scd (supporto CD-ROM SCSI, ottenuto invece tutti CD-ROM SCSI.
Se ad esempio avessi necessità, per qualche ragione, di avere a disposizione i dischi come SCSI invece che come ide, allora dovresti togliere il supporto per i dischi ide e caricare il supporto per quelli SCSI.
Quale driver del kernel bisogna scegliere per questa scheda scsi?
Devi selezionare «aic7xxx» (vale anche per la famiglia 7xxx e 29xx)
#
modprobe aic7xxx
[Invio]
Ho una scheda SCSI Adaptec 1510A che non viene individuata dal sistema. Ho letto di provare a forzare l'individuazione della scheda inserendo la riga:
aha152x=0x340,11,7,1
durante l'avvio. Ma in quale file?
__________
In /etc/lilo.conf
aggiungi:
append="aha152......."
poi riesegui LILO:
#
/sbin/lilo
[Invio]
È come scrivere sul prompt di LILO.
Come faccio durante l'avvio, a far riconoscere la mia scheda SCSI NCD53C710?
__________
Ricompila il kernel con il supporto per questa scheda. All'avvio dovresti inserire la riga che andrebbe messa poi nel /etc/lilo.conf
:
LILO boot:
append = "tiposcheda=IOPorts,IRQ"
[Invio]
la sintassi comunque non è la stessa per tutte le schede. Trovi tutto nella documentazione del kernel nella directory /usr/src/linux/drivers
.
Il mio controller Adaptec 1505 non viene riconosciuto da Linux. Come mi devo comportare?
__________
Ho il tuo stesso controller; inserisci nel file /etc/conf.modules
queste due righe:
options scsi_hostadapter aha152x=0x340,9,7,1,1 alias scsi_hostadapter aha152x
crea il file /etc/rc.d/rc.modules
e rendilo eseguibile; all'interno inserisci questa linea:
/sbin/insmod -f aha152x aha152x=0x340,9,7,1,1
nella Red Hat 6.1 funzionava a meraviglia e il modprobe installava la scheda subito ma nella 6.2 ho dovuto aggiungere l'opzione -f altrimenti mi restituiva errore.
Come faccio a far riconoscere al sistema la mia scheda SCSI aha152x?
__________
Gli vanno passati dei parametri specifici: se lo inserisci come modulo in /etc/conf.modules
inserisci queste 2 righe:
options scsi_hostadapter aha152x=0x340,9,7,1,1 alias scsi_hostadapter aha152x
(I parametri sono: aha152x=IOPORT,IRQ,SCSI_ID,RECONNECT,PARITY,SYNCHRONOUS,DELAY,EXT_TRANS)
Se invece lo si compila monolitico, si può specificare sulla riga di comando di LILO o nel lilo.conf
, con i seguenti parametri:
aha152x=<IOPORT>[,<IRQ>[,<SCSI-ID>[,<RECONNECT>[,<PARITY>[,<SYNCHRONOUS>[,<DELAY> [,<EXT_TRANS]]]]]]]
ecco lo schema dei ponticelli:
guardando la scheda con il pettine verso il basso:
alt j1 o o =140h-15fh o-o =340h-35fh i12 j2 o-o =irq12 i11 j3 o-o =irq11 i10 j4 o-o =irq10 i9 j5 o-o =irq9
naturalmente uno solo dei ponticelli j2-j5 deve essere chiuso, esempio: se tu vuoi l'irq 9 con indirizzo 340h chiudi j1 e j5 e gli altri liberi.
Importante! Controlla di non avere altre periferiche con lo stesso irq.
Se al riavvio, nel file /var/log/messages
non vedi che la scheda è stata configurata, dai il seguente comando direttamente da riga di comando. Questo consente di accedere alla periferica al momento opportuno (scanner, ecc.), anziché tenerlo acceso fin da prima dell'avvio, come è d'obbligo con Windows.
#
/sbin/modprobe aha152x.o aha152x=0x340,9,7,1,1
[Invio]
Ho comprato un drive ls-120 interno (ide). Non so come farlo riconoscere a Linux (all'avvio mi dice unknown atapi drive).
__________
Assicurati di avere abilitato il supporto per ATAPI FLOPPY DRIVE nel kernel; dopo averlo fatto lo monti e smonti come un disco rigido normale.
Nel mio caso l'ls-120 è lo slave primario:
#
mount -t vfat /dev/hdb /mnt/floppy
[Invio]
Come posso gestire periferiche plug & play?
__________
Lo puoi fare con il pacchetto isapnptools. Esso è composto da isapnp e pnpdump. A grandi linee pnpdump legge le varie porte del pnp (ammesso che la scheda madre gestisca le schede isa plug & play) e restituisce dei valori che possono essere reindirizzati su un file.
Isapnp andrà a leggere i valori da tale file per attivare la periferica (scheda audio, rete o altro), esempio:
#
pnpdump > isapnp.conf
[Invio]
oppure con le ultime versioni:
#
pnpdump --config > isapnp.conf
[Invio]
nel secondo caso ottieni un file già decommentato, nel primo invece devi decommentare le linee per arrivare a qualcosa del genere (valido per un chip opl3-sax):
##### #/etc/isapnp.conf (READPORT 0x0203) (ISOLATE PRESERVE) (IDENTIFY *) (VERBOSITY 2) (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING (CONFIGURE YMH0030/2156265473 (LD 0 .........snip ....... (ACT Y) )) (WAITFORKEY) ##########
per cui se hai chiamato il file /etc/isapnp.conf
devi digitare:
#
isapnp /etc/isapnp.conf
[Invio]
a questo punto dovresti avere a video delle stringhe di conferma con:
ENABLED OK
IMPORTANTE: prima di eseguire isapnp non ci devono essere caricati moduli audio (verifica con cat /proc/modules).
Ho voluto creare un link simbolico da cua0 (e cua1) a ttyS0 (e ttyS1) ma ho cancella gli originali. Il problema è che ora X non mi parte più. Parte la schermata grigia ma il mouse non si muove e il gestore delle finestre non viene caricato.
__________
Puoi ricrearti i dispositivi con:
#
cd /dev
[Invio]
#
mknod -m 600 ttyS0 c 4 64
[Invio]
#
mknod -m 600 ttyS1 c 4 65
[Invio]
e poi ricrei il link del mouse (ammesso che il tuo mouse sia su ttyS0 (com1 per Dos):
#
ln -sf /dev/ttyS0 /dev/mouse
[Invio]
Ho sovrascritto inavvertitamente il file /dev/dsp. Cosa devo fare?
__________
Dai il comando:
#
mknod -m 666 /dev/dsp c 14 3
[Invio]
Ho montato una Red Hat 5.2, dopodiché ho deciso di aggiornare il kernel al 2.2.1. Ora il pc mi è diventato pretenzioso e mi dice che i dispositivi /dev/cuan
sono obsolete e mi chiede di aggiornare per usare le /dev/ttySn
. Volevo chiedere: è possibile ad esempio rimpiazzare il link /dev/mouse -> /dev/cua0 con /dev/mouse -> /dev/ttyS0 o l'operazione è più complicata?
__________
Sì, certo, e non avrai più quei fastidiosi messaggi di warning. Non è il pc ad essere pretenzioso, ma il kernel che ti avverte che presto le cuax saranno abbandonate. Lo stesso dovrai fare con il link del modem, naturalmente.
Come si passa dai device cuaX ai ttySX? Dove posso documentarmi?
__________
Si tratta solo di ridirezionare i devices cuax a ttySx, per esempio per il mouse sarà:
#
ln -sf /dev/ttyS0 /dev/mouse
[Invio]
Come si ricrea il device /dev/null?
__________
Con il comando:
#
mknod -m 666 /dev/null c 1 3
[Invio]
Preso da un bel raptus di idiozia ho fatto: rm /dev/lp*, sicuro di poterli ricreare con il MAKEDEV... cosa che invece pare non si possa fare... avete qualche consiglio per ripristinare la situazione?
__________
Per ricreare i dispositivi lp0, lp1 e lp2:
#
cd /dev
[Invio]
#
mknod -m 660 lp0 c 6 0
[Invio]
#
mknod -m 660 lp1 c 6 1
[Invio]
#
mknod -m 660 lp2 c 6 2
[Invio]
#
chown root.daemon /dev/lp*
[Invio]
Perché nel kernel 2.2.x non mi viene rilevato l'IRQ della porta parallela, ma solo l'indirizzo? Nel BIOS ho provato a impostare la parallela sia come EPP che come ECP che come EPP+ECP e il problema persiste. Nei kernel 2.0.36 e 2.0.37 l'IRQ viene rilevato perfettamente. Il fatto è che mi servirebbe l'IRQ per collegarmi in plip con l'altro computer, il messaggio di errore che mi da plip è:
parport0 has no IRQ
e poi mi dice che non può registrare il device plip1.
__________
La porta parallela dei compatibili e specialmente la sua gestione, sono da sempre rognosi, questo a causa di come sono fatte le parallele nei pc.
Controlla con un kernel 2.0.x su quale IRQ e quale I/O ti viene impostata la porta, ed inseriscili nella configurazione del modulo parport_pc:
modprobe parport modprobe parport_pc io=0x378, irq=7
È possibile con gli strumenti base di Linux scoprire gli IRQ e gli indirizzi I/O di una periferica?
__________
Prova con il comando:
#
cat /proc/interrupts
[Invio]
#
cat /proc/ioports
[Invio]
Qualcuno potrebbe spiegarmi cosa è il progetto Beowulf?
__________
Si tratta di utilizzare gruppi (cluster) di macchine per sommarne quasi in modo aritmetico capacità di CPU e Memoria. Ad esempio per avere un calcolatore molto potente con 16,32,..256 PC.
Comunque la spiegazione dettagliata la trovi al sito <http://www.beowulf.org>
GNU GENERAL PUBLIC LICENSE - Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.> Copyright (C) 19yy <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice
This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.
Ci possono essere tanti modi per classificare il software; tuttavia, non basta una classificazione, perché le sfumature possono essere troppe; piuttosto, occorre leggere e interpretare le licenze particolari, quando queste non sono perfettamente uguali a quelle più comuni e conosciute.
Questa appendice cerca di raccoglie alcune annotazioni sulle licenze che possono creare dei problemi di qualche tipo, anche per il solo fatto di essere state mal formulate. Dal momento che si tratta di un argomento molto delicato, si tenga presente che le informazioni che appaiono qui potrebbero essere imprecise. In caso di dubbio, ciò che si legge qui va poi confrontato con le licenze reali, tenendo conto che nel tempo le cose potrebbero cambiare.
Qualunque informazione utile a migliorare le informazioni qui contenute, è gradita all'autore.
Quello che segue è un brano tratto da The Open Source Definition di Bruce Perens. Viene riportato perché descrive bene i problemi legati alla licenza Artistic.
Sebbene questa licenza sia stata sviluppata in origine per il Perl, è stata utilizzata per altro software. A mio parere si tratta di una licenza formulata male, in quanto impone dei requisiti e fornisce poi delle scappatoie che rendono facile aggirarli. Forse è questa la ragione per cui quasi tutto il software sotto licenza Artistic, ha oggi una seconda licenza, offrendo la scelta fra la licenza Artistic e la GPL.
La sezione 5 della licenza Artistic vieta la vendita del software, ma permette che sia venduta una distribuzione di software aggregato di più di un programma. In questo modo, se si raggruppa un programma sotto licenza Artistic con un
hello-world.c
di cinque righe di codice, si può vendere la raccolta.[...]
La licenza Artistic richiede che le modifiche siano rese gratuitamente, ma fornisce poi una scappatoia (nella sezione 7) che permette di mantenerle private e perfino di porre sotto dominio pubblico parti del programma sotto licenza Artistic!
LyX viene rilasciato con la licenza GNU GPL; tuttavia, dipende dalla libreria XForms, la cui licenza non consente la commercializzazione. In altri termini, il sorgente di LyX è software libero, ma da un punto di vista operativo non può esserlo, dal momento che dipende da altro software che non lo è.
La licenza di Mpage, un programma per generare file PostScript a partire da file di testo e per rielaborare in parte i file PostScript stessi, ha una licenza particolare che non consente la modifica. Questo complica la distribuzione di pacchetti già pronti (già compilati).
La licenza di Pine, il programma di gestione della posta elettronica della Washington University, non consente la distribuzione di versioni modificate, consentendo invece la circolazione di file di differenze. Questo implica di conseguenza l'impossibilità di distribuire pacchetti già pronti (già compilati).
Per questo motivo, l'unico modo di distribuire Pine è in forma sorgente, assieme ai file di differenze necessari per l'installazione. Questo non pone limiti al suo utilizzo, ma crea qualche problema per la sua installazione da parte di chi non sia competente a sufficienza.
La licenza del pacchetto PSUtils non è standard, è contraddittoria e di conseguenza è di difficile interpretazione.
Quello che segue è un articolo di Michele Dalla Silvestra, apparso in particolare su LDR: Linux Domande e Risposte. Viene riportato perché descrive bene i problemi legati alla licenza QPL, che è in pratica la licenza della libreria grafica Qt.
La QPL, per il rotto della cuffia, è considerata una licenza libera. La sostanziale differenza dalla GPL è l'obbligo di distribuire versioni modificate in particolari formati (patch).
Però per compilare un programma GPL è necessario che tutti i componenti utilizzati ricadano su una licenza compatibile GPL, o che la licenza di questi componenti rientri nella GPL.
Ad esempio, la licenza BSD permette tutto quello che permette la GPL, quindi un programma GPL si può linkare ad una libreria BSD. Invece un programma GPL non si può linkare ad una libreria QPL visto che la GPL permette di modificare e ridistribuire liberamente il codice, la QPL invece pone delle piccole condizioni sulla ridistribuzione di versioni modificate.
A.Tiziano Demaria, 27.4
Achille Guido, 80.8
Alberto Marmodoro, 77.1
Alessandro allxsan, 87.6
Alessandro De Rinaldis, 5.3
Alessandro Piattoli, 69.3
Alex Cava, 2.3
Andrea Foco, 7.1
Antonio Bellezza, 9.8
Antonio Bonifati, 9.16
Antonio Doldo, 1.1, 1.7, 2.10, 4.2, 5.13, 7.26, 7.27, 7.29, 7.30, 9.10, 13.3, 22.9, 24.2, 27.3, 27.5, 31.15, 31.26, 35.2, 35.3, 35.7, 35.8, 39.5, 43.16, 62.6, 63.7, 63.8, 65.1, 65.2, 65.3, 65.4, 65.6, 67.2, 68.17, 73.1, 82.1, 82.2, 82.7, 82.9, 82.10, 84.2, 88.4, 89.2, 91.1, 92.1, 92.6
Antonio Fragola, 31.7
Antonio Gallo, 31.7
Antonio Messina, 78.1
Antonio Pennino, 68.12
area[c], 35.7
BBK, 6.6
Beppe Pavoletti, 36.9
Bonjo the Sniff Dog, 59.1
Boomby, 16.9
Bruno Marracino, 24.3
Cesare, 3.5
Christian Surchi, 43.8
Conver, 21.9
Cosimo Vagarini, 2.6, 5.4, 7.2, 7.10, 9.4, 9.7, 9.18, 12.11, 15.9, 22.1, 22.7, 22.8, 26.5, 27.6, 29.1, 42.3, 46.7, 47.1, 61.6, 68.8, 68.16, 68.19, 89.3, 92.2
Daniele, 6.16
Daniele Sapio, 12.31
DarioB, 73.2
Davide Alberani, 6.10, 7.1, 7.10, 9.3, 12.30, 13.3, 31.7, 37.5, 38.1, 43.11, 43.17, 88.1
Davide Bozzelli, 14.3
Davide Menzoni, 6.17
Domenico Crupi, 9.11
Elisa Manara, 2.4, 2.9, 9.18, 9.21, 12.3, 13.3, 13.5, 16.2, 20.2, 21.2, 21.3, 21.4, 21.6, 24.1, 29.2, 29.9, 30.3, 31.5, 31.6, 31.17, 31.18, 31.19, 31.22, 32.2, 43.8, 46.1, 46.5, 47.2, 68.4, 68.5, 68.6, 68.9, 68.11, 68.12, 68.13, 68.15, 68.18, 68.22, 68.23, 68.24, 68.25, 68.26, 77.3
Emilio Riva, 12.23
Enrico Boni, 1.6
Enrico Donelli, 82.11
Enrico Fracasso, 31.20
Enrico Galli, 7.28
Enrico Porcarelli, 61.4
Ettore Robustelli, 71.1
Eugenia Franzoni, 1.2, 3.2, 20.7, 40.2, 40.3, 40.5, 40.6, 40.7, 40.9, 40.10
EugeniX, 43.8
Fabio Pietrosanti, 20.4
Fabrizio Lippolis, 3.5, 7.11, 9.2, 9.15, 13.4, 34.1, 65.5, 68.2, 69.4, 75.1
Federico Guerri, 87.4
Federico Motta, 43.20
Fedriano Ziglio, 12.4
Francesco Ferrante, 16.7
Francesco Ortuso, 21.1
Francesco P. Lovergine, 6.15
Fredo, 52.3
Gabbroral Complex, 37.1
Gabriele Bertolucci, 40.8
Gabriele Zugliani, 31.7
Gaspare Albano, 6.6, 7.6, 7.32, 10.3, 31.2, 62.5, 63.5, 63.10, 89.6
Giancarlo Laffranchi, 46.6
Gianfranco Di Tommaso, 21.1
Gianluca Montecchi, 2.5, 7.15, 9.25, 29.5, 30.2, 30.3, 74.1, 77.3, 88.3
Gianluca redbear, 18.3
Gianluca Vezzù, 7.16, 7.21, 7.22, 7.24, 9.1, 32.1, 51.1, 63.6, 86.1
Gianna F., 80.7
Giansante Gabriele, 8.1, 10.11, 16.5, 26.3, 29.16, 38.3, 80.4, 80.5
Giorgio, 9.11
Giorgio Basanisi, 31.25
Giovanni Bassoli, 41.7
Giovanni Bortolozzo, 58.1
Giuliano Grandin, 1.5, 5.6, 9.1, 12.10, 40.4, 45.2, 45.4, 59.1
Giulio Orsero, 9.17
Guido Milanese, 61.4
Guido Piazzi, 43.14
Gwido Trotter, 31.24
Imagino, 36.1
Ivan Fabris, 53.3
JavaKids, 90.1
Lele, 5.7
Leonardo Buffa, 24.2
Lorenzo Bettini, 21.5
Luca Bertoncello, 36.5
Luca Manganelli, 43.18
Luca Pedrielli, 35.1
Luzi, 87.5
Mammola Domenico, 2.2
Marcello Valenti, 6.6
Marco Ambu, 67.4
Marco Atzeri, 29.20
Marco Berrettini, 87.1
Marco Calignano, 2.11
Marco d'Itri, 46.4
Marco Fiocchi, 35.5
Marco Meloni, 2.13
Marco Mililotti, 83.4
Marco Pace, 56.2
Marco Penitenti, 27.9
Marco Schwarz, 56.1
Massimiliano Perantoni, 25.2, 29.10, 38.4, 39.6, 43.7, 46.1, 46.2, 78.2, 87.2, 89.1
Massimo Colurcio, 27.8
Massimo Fubini, 12.21
Matteo Cottini, 5.10
Matteo De Luigi, 53.2
Matteo Ianeselli, 68.27
Matteo Riva, 45.3
Maurizio Coccioli, 29.25
Maurizioc, 31.3
Mauro Cicio, 36.2
Mauro Condarelli, 37.4
Mauro Sanna, 31.25
Mauro Silvia, 87.5
Max in the Fax, 43.6
Maxter, 27.10
Michel Morelli, 2.7, 2.17, 5.5, 7.8, 9.6, 12.5, 12.23, 20.5, 22.3, 22.5, 26.2, 29.8, 31.16, 52.2, 59.1, 80.1, 85.4
Michele Mariottini, 7.25
Miguel Beccari, 29.8
Moreno Risorti, 80.3
Nicola Piazza, 87.3
Osvaldo Frassine, 29.4
Over, 45.7
Paolo Filippi, 93.1
Paolo Mastroianni, 21.5
Paolo nemesis, 2.18
Paolo Tortoli, 5.2
Pardo, 43.3
Pepe, 66.1
Pierluigi De Rosa, 7.23
Razzauti Marco, 12.28
Renato Ramonda, 43.20
Riccardo Corsanici, 7.11, 12.2, 14.6, 22.2, 22.4, 24.2, 24.6, 29.14, 68.3, 68.26, 77.2
Riccardo Richini, 29.12
Riccardo Signorotto, 46.8
Riccardo Silvetti, 6.11
Roberto Bagnoli, 19.3
Roberto Del Bianco, 31.14
Roberto Kaitsas, 1.1, 7.4, 9.9, 12.4, 19.3, 20.8, 26.1, 29.3, 33.2, 35.8, 39.3, 53.4, 53.9, 55.1, 68.10, 83.2, 87.2, 89.4, 92.8
Roberto L'Ombroso, 10.9
Roberto Previdi, 68.11
Roberto Veronico, 35.10
Samuel John Porter, 70.1
Seby, 7.14
Silvestro Roberto, 31.11
Simone Stevanin, 79.1
Spada Matteo, 35.8
Sprint, 37.3
Spuri Aldo Yuri, 24.5
Stef, 83.3
Stefano (lindt), 43.19
Stefano Cislaghi, 20.6
Stefano Doni, 22.6
Stefano Falsetto, 9.17
Stephane Bortzmeyer, 52.8
Striscio, 82.4
Taedium, 31.7
The Hitman, 2.9, 2.10, 5.8, 5.11, 12.17, 13.10, 37.4, 45.5, 47.2, 59.1, 61.1, 61.2, 67.2, 67.3, 76.3
Tiziana Manfroni, 26.6
Tullio Chersi, 88.2
Ugo Tartaglino, 19.1
Vanni Brutto, 31.4
Vanni Della Ricca, 12.31
Visitors, 7.7
$@ - $#, 68.5
*.bin, 38.4
*.h, 69.1
*.o, 69.1
*.tar.gz, 39.6
-f in script, 68.18
./ evitabile?, 36.2
.deb - dipendenza, 40.8
.fetchmailrc, 31.3
.fetchmailrc e .procmailrc, 31.4
.forward, 31.15
.ps in Windows, 56.1
.pwd.lock, 10.13
/dev/dsp - ricreare, 92.2
/dev/lp* - ricreare, 92.6
/dev/lp? non trovato in Red Hat 6.1, 53.2
/dev/null - ricreare, 92.5
/dev/ttyS* - ricreare, 92.1
/etc/bashrc, 9.3
/etc/fstab, 5.9
/etc/fstab - distribuire il filesystem su più partizioni, 3.1
/etc/printcap, 53.1
/etc/profile, 9.3
/etc/rc.d/*, 9.10
/lib/modules/x.y.zz, 8.1
/tmp/* - eliminare?, 9.18
/var/log/wtmp - ridimensionare, 14.6
accedere solo da remoto, 22.3
accentate su tastiera statunitense, 77.5
Access > PostgreSQL, 52.5
accesso dial-up - configurare, 30.1
account - eliminazione, 10.3
Adaptec 1505 - riconoscimento, 89.5
adaptec aha2904, 89.2
alias, 9.24
alien, 38.1
alsa - installazione, 65.1
alt+126, 18.3
anacron, 15.9
Apache - password per pagine, 26.6
apache con asp, 26.4
apache e php, 26.3
apici retroversi, 13.5
APM, 9.25
APM - disabilitare all'avvio, 2.2
applicazioni - avvio da remoto, 24.3
applicazioni bloccate, 16.9
apt-get, 40.4
arresto del sistema, 2.1
Artistic, B.1
asp > php3, 26.5
at, 15.10
automatizzare connessione, operazioni, sconnessione, 29.14
automatizzare procedure telnet, 22.6
Avance Logic ALS 110, 82.7
badblocks, 3.4
bash script - aggiungere una stringa alla fine di ogni file di testo, 68.28
bash script - cambiare estensione a gruppi di file, 68.22
bash script - cercare, trovare e copiare i file, 68.21
bash script - convertire in minuscolo nome file, 68.12
bash script - esempi, 68.29
bash script - ordinare le righe di un file, 68.15
bash script - ricerca doppioni file, 68.11
bash script - rinominare file progressivamente, 68.26, 68.27
bash script - scelta di file a caso, 68.9
bash script - sostituire caratteri in un file, 68.24
beep del pc speaker, 65.5
beowulf, 93.1
Calendario, 9.16
cambio desktop manager, 43.1
cancellare i file, 12.1
Canon bj200 e device errato, 53.4
capture screen, 43.8
caratteri del prompt, 61.1
caratteri piccoli ad alte risoluzioni, 43.10
caricare file in ftp per anonymous, 21.7
cat, 12.7
cattura fotogramma video, 76.1
cattura immagini, 43.8
cd audio, 66.1
CD audio > mp3, 67.3
CD multisessione, 63.3
CD-ROM esterno parallelo, 80.1
chattr, 12.21
cilindro 1024, 1.5
client di rete non inviano messaggi fuori, 31.17
cobol e linux, 71.1
compilatore c++, 69.2
composizione doppia numero provider in Red Hat 6.1, 29.17
compressione file, 42.1
conio.h, 69.4
connessione ad Internet - problemi, 29.12
connessione ad Internet - quando sono in rete?, 29.3
connessione ad Internet - salvare gli script, 29.22
connessione ad Internet - strumenti per facilitare, 29.1
connessione ad Internet - un provider di esempio, 29.16
connessione ad Internet con script, 29.15
connessione dial-up, 30.2
console - cambio modalità grafica, 13.8
console - caratteri «strani», 13.10
console testuale > X, 43.20
console virtuali, 13.4
contare i caratteri, 68.3
contare le linee, 68.3
copia delle directory, 12.4
copia ed incolla in X, 46.8
copiare i file, 12.1
core - cosa sono, 37.1
core - impedirne la creazione, 37.4
core - individuare il programma responsabile, 37.3
core - l'eliminazione completa dal filesystem, 37.5
core - visualizzare il contenuto, 37.2
cosa fa un utente, 22.1
creazione filesystem, 3.3
creazione filesystem FAT, 3.6
cron, 16.1
cron - attivazione, 15.2
cron - verificare se è in esecuzione, 15.1
cron su macchine non costantemente accese, 15.9
crontab - cancellazione, 15.7
crontab - file di configurazione, 15.3
crontab - strutturazione, 15.5
crontab - visualizzazione, 15.6
Ctrl-Alt-Canc non per utenti, 2.7
Cut & paste in X, 46.8
data negli script, 68.19
db e dbms, 52.1
deb - aggiornamento pacchetti, 40.3
deb - descrizione pacchetti, 40.9
deb - disinstallazione, 40.5
deb - dselect, 40.1
deb - installazione, 40.2
deb - lista pacchetti installati, 40.10
deb - provenienza dai pacchetti, 40.7
deb - verifica, 40.6
diald - problemi autenticazione, 29.21
dialup configuration tool - crash in Red Hat 6.1, 29.23
dimensioni sorgenti kernel, 7.7
dir *.xxx /s - il corrispettivo in linux, 12.2
directory - cancellare, 12.20
directory - creare, 12.20
dischetti vfat, 5.1
Dischetto DOS - Dischetto Linux , 5.2
Dischi di installazione Debian GNU/Linux, 1.2
Dischi installazione Red Hat, 1.3
dischi rigidi, inversione, 1.6
disco di avvio, 1.1
disco rigido in attività, 16.1
display - reindirizzare, 24.4
Distribuzioni Linux - copia, 63.2
DNS, 29.10
DNS - con più provider, 29.9
DNS provider - trovarli, 29.8
DNS sovrascritto, 29.11
domini virtuali, 20.2
DOS > Linux, 60.1
drop source-routed frames, 7.20
dselect, 40.1
duplicati posta elettronica, 31.14
e2fsck -c, 3.4
enlightenment - impostare i temi, 45.1
enlightenment e gnome panel - chiusura, 44.1
Epson Stylus Color, 88.3
errore: as86 Command not found, 7.26
errore: bus error, 69.3
errore: KERNEL PANIC: VFS: Unable to mount root fs on 03:03, 2.15
errore: LILO - Error 0x10, 6.15
errore: modprobe: can't locate module xxxxx, 8.3
errore: no final new line, 5.8
errore: No setup Signature found, 7.32
errore: Parallelizing fsck version x.yy, 2.19
errore: shell-init: could not get current directory, 13.9
errore: signal 11, 7.31
errore: terminal type not supported, 25.3
errore: unknown recipient, 31.26
errore: unresolved symbol, 7.27
eseguibili - dove risiedono nel filesystem, 36.6
esportare le risorse, 1.7
estrazione tracce audio, 67.1
ext2 - ridimensionare partizioni, 3.5
ext2 da Windows, 5.13
ext2resize, 3.5
fetchmail e procmail - scaricare la posta e distribuzione, 31.2
file - creazione, 12.16
file .elf, 36.8
file .gz, 42.2
file .tar.bz2, 42.4
file allegati uuencode, 31.24
file di grosse dimensioni, 12.31
fips, 1.4
firewall, 20.9
fork, 16.5
free, 85.1
freeamp - arresto in esecuzione brano, 67.5
FS.h e FSprolo.h mancanti in fase di compilazione, 61.6
fsck.ext2, 3.4
fsck.msdos, 3.7
ftp - automatizzarlo negli script, 21.8
FTP - mirror, 35.6
ftp e non telnet, 21.1
ftp in background su remoto, 30.3
ftp solo per alcuni, 21.2
g++, 69.2
G200 AGP e Linux, 76.2
Getright o Go!zilla per Linux, 35.1
gif > png, 50.1
gnome - schermata grigia, 44.2
gruppi, 10.2
gruppo file, 10.15
gunzip, 42.3
head, 12.8
history, 13.6
home/.bashrc, 9.3
home/.bash_profile, 9.3
host virtuale, 20.1
HP 720C Deskjet, 88.2
html > txt, 55.1
I/O, 92.8
icewm - configurazione, 45.5
icewm - sfondo, 45.6
Icewm e sfondo, 45.7
icone macchine linux non presenti in Risorse di Rete, 27.4
ifconfig, 29.7
ifup lo ogni volta, 20.5
immagine kernel caricata, 7.3
immagini - copia da dischetto, 62.2
immagini - copia su dischetto, 62.3
immagini - i. delle partizioni, 62.1
immagini - montare, 62.4
immagini - visualizzare il contenuto, 62.4
index.html testuale, 26.1
initrd-x.x.xx.img, 7.14
invertire master e slave all'avvio, 1.6
ip forwarding/gatewaying, 7.18
IP macchina - visualizzazione, 29.6
ip masquerading, 21.9
ipfwadm - ipchains, 7.19
IRC - controllo intrusioni, 34.1
IRQ, 92.8
IRQ porta parallela, 92.7
isapnp, 82.1
ISDN - US Robotics ISDN TA, 87.5
ISDN TA US Robotics int., 87.6
K6 e Linux, 74.1
kernel - pacchetti rpm, 7.21
kernel - spazio disco dopo ricompilazione, 7.23
kernel immagine riutilizzabile, 7.13
leafnode - la guida, 33.1
leafnode - messaggio: skipping nome_ng from now, 33.2
less e colori ls, 12.15
libjpeg, 9.23
librerie di un programma, 9.22
licenza: Artistic, B.1
licenza: LyX, B.2
licenza: Mpage, B.3
licenza: Pine, B.4
licenza: PSUtils, B.5
licenza: QPL, B.6
LILO - dischetto e kernel su disco rigido, 6.2
LILO - eliminazione, 6.6
LILO - le alternative, 6.17
LILO - sistema operativo predefinito, 6.7
LILO - virus nel boot, 6.16
LILO con più distribuzioni, 6.8
LILO e NT Loader, 6.9
LILO sovrascritto da Windows, 6.11
link hard, 12.23
link simbolico, 12.24
link soft, 12.23
LinPopUp - Samba, 27.3
linux 1, 6.14
linux e la deframmentazione, 9.2
loadlin, 2.8
locate, 12.25
log - eliminare i vecchi, 14.4
log degli accessi, 14.1
log file, 14.3
log via posta elettronica, 14.5
loghi all'avvio, 2.14
login grafico, 43.4
Login grafico - Debian, 43.5
ls, 12.9
ls 120, 90.1
lynx - lo sfondo, 32.1
lynx - refresh, 32.2
lynx - reload, 32.2
LyX, B.2
mail, 31.8
mail - associare un file, 31.12
man - conversione in ps, 19.3
man - ricercare una parola nelle, 19.1
man - stampare le pagine, 19.2
Masquerading, 20.8
masterizzare - copiare distribuzioni linux, 63.6
masterizzare - guida pratica, 63.1
masterizzare - i programmi, 64.1
matematica - applicazioni per linux, 51.1
memoria libera, 16.2
memoria occupata dai processi, 16.4
messaggi - invio cadenzato, 31.13
messaggi all'avvio, 2.14
messaggi con dominio esterno in rete locale, 31.5
messaggi dell'avvio della macchina, 14.8
Messaggio di errore: kernel panic, 2.16
minicom - impostazioni, 48.1
mirror di un sito, 35.5
mke2fs, 3.3
modalità singola, 10.9
moduli, 8.2
moduli e directory /lib/modules/x.y.zz, 8.1
montare automaticamente i dispositivi, 5.9
montare partizioni da utenti ma solo lettura, 11.6
montare partizioni DOS/Windows, 5.10
montare Solaris, 24.5
Mouse - rotellina, 78.2
mouse PS2, 78.1
mp3 - leggere i tag ID3, 67.4
Mpage, B.3
mtu per connessione plip, 28.1
multiple duplicate inode, 2.18
mutt - allegati da riga di comando, 31.19
mutt - colori anche in terminale grafico, 31.22
mutt - configurare il nuovo soggetto + [Was ...], 31.21
mutt - configurare: il 19 Set xyz disse, 31.20
mutt - host pop non definito, 31.18
NE 2000 - schede di rete, 81.1
netBIOS e nome macchina inux, 27.10
nohup, 30.3
nome macchina, 9.12
nomi immagini del kernel, 7.6
numerare file di testo, 68.8
numlock acceso all'avvio, 9.17
occorrenza parola in file, 68.17
opl3sax, 82.10
OPTi 931S, 82.2
ora legale in Linux, 9.15
ordinamento alfabetico file, 12.19
parentesi graffe, 18.1
partizioni NT, 5.3
pascal e linux, 70.1
password con wget, 35.8
password dimenticata, 10.12
patch - applicare una p. ad un programma, 36.7
pcmcia - modem, 73.3
pdf - imperfetta resa grafica, 57.1
periferiche pnp, 91.1
Perl - installare i moduli, 72.1
permessi - esecuzione, 11.1
permessi - lettura, 11.2
permessi - riavvio sistema, 2.6
permessi - scrittura, 11.3
permessi accesso utenti alle partizioni, 5.7
permessi file scaricati tramite ftp, 35.9
permessi per le partizioni, 5.11
permettere o meno l'accesso telnet, 22.8
php post e variabili, 26.2
più di una distribuzione linux, 9.1
Pine, B.4
plug & play, 91.1
pnpdump, 82.1
portatili - Acer TM 312D, 73.1
portatili - tastiera, 73.2
porte, 20.3
posizione nel filesystem, 12.6
posta elettronica - scaricare, smistare e statistica messaggi scaricati, 31.1
postfix, 31.25
Postfix, 31.7
PostgreSQL - modifica e aggiunta dati, 52.7
postgresql - unsupported frontend protocol, 52.8
ppa, 83.5
pppconfig, 29.1
pppd - installato?, 29.2
pppd e attributo del set user ID, 29.19
pppd errori, 29.4
pppstats, 68.23
prestazioni X, 43.12
processi, 16.6
procmail - reindirizzamento posta, 31.6
profondità colori, 43.15
profondità di colori, 43.16
programmi - documentazione allegata, 36.10
proprietario file, 10.15
ps - stampa, 54.3
ps sotto windows, 56.2
psql, 52.7
PSUtils, B.5
QPL, B.6
Qt, B.6
ram > 64 Mb, 85.2
RAM - aggiunta non riconosciuta, 85.3
RAM aggiunta, 85.2
RAM difettosa, 85.4
RAM disponibile, 85.1
rawrite2, 1.2
registrazione accessi telnet, 22.7
regolazione toni del mixer, 65.4
reindirizzare gli errori su altra console, 13.7
reindirizzare lo standard error, 14.7
rete win-linux - operazioni sui file, 27.5
riavvio - come arrestarlo, 2.3
riavvio dei demoni, 9.11
riavvio del sistema, 2.1
ricerca di file e loro copia, 12.27
ricerca e-mail in file html, 68.25
ricerca file che iniziano per, 12.30
ricompilazione del kernel dopo patch, 7.10
ricompilazione kernel per processori pentium, 7.16
riproduzione speculare di un sito, 35.5
risoluzione predefinita X, 43.14
risorse - visualizzare, 16.3
risparmio energetico monitor, 75.1
rpm - aggiornamento, 41.2
rpm - da quale pacchetto proviene il file..., 41.5
rpm - descrizione pacchetto, 41.6
rpm - disinstallazione, 41.3
rpm - installazione, 41.1
rpm - lista pacchetti installati, 41.7
rpm installati in directory non predefinite, 41.10
rpm su Slackware, 38.2
runlevel 0, 2.9
samba e windows, 27.7
SBLive! - riconoscimento, 82.3
scanner hp 6100c, 86.1
scaricare file in orari determinati, 35.10
scaricare la posta in automatico, 31.23
schede audio pnp, 82.1
schede di rete NE 2000, 81.1
schede TV, 76.1
SCO Unixware e Linux, 36.9
sconnettersi da remoto con processi in atto, 30.3
scorciatoie, 9.24
script di connessione in Red Hat - Mandrake, 29.20
script shell in www, 68.2
SCSI - l'emulazione, 89.1
SCSI - riconoscimento in avvio, 89.4
sed - sostituzione, 68.16
sendmail - blocco, 31.9
server samba oltre un router, 27.11
servizi all'avvio, 9.9
servizi di rete lenti, 22.5
setserial, 87.4
sfondo, 43.9
sgml2txt, 58.1
shadow password, 10.8
shell script - perché cd non funziona, 68.1
shutdown - opzione -n, 2.4
signal 11, 85.4
signature scelta casualmente, 31.16
SiS 6326, 76.3
smb.conf, 27.2
sorgenti del kernel, 7.17
sospendi in Linux, 9.25
sostituire una stringa, 68.16
sostituire una stringa in un file, 68.20
Sound Blaster PCI 128, 82.4
Sound blaster PCI 64V, 82.11
Sound Blaster PCI 64V, 82.5
source, 9.5
Soyo 5-EM, 2.11
spazio su disco, 9.19
spegnimento - come arrestarlo, 2.3
spegnimento automatico macchina, 2.10
spegnimento con combinazione di tasti, 2.12
spegnimento veloce, 2.4
split, 12.31
spostare i file, 12.1
spostarsi nel filesystem, 12.22
ssh e copia, 23.1
stampa - eliminazione coda, 53.7
stampa - eliminazione processo, 53.6
stampa - problemi con kernel 2.2.x, 54.4
stampa - scalettatura, 53.8
stampa - separatori di pagina, 53.9
stampa - visualizzare coda, 53.5
stampa contenuto directory, 54.2
stampa file, 54.1
stampante, 88.4
stampante in Red Hat 6.1, 53.3
stampanti gestite da Linux, 88.1
stampare da Linux con Samba, 27.6
statistiche connessione, 29.5
storico dei comandi, 13.6
swap, 4.1
Swap, 4.2
switchdesk, 43.1
sync, 9.6
syslogd - il demone dei log, 14.2
tail, 12.8
tar.gz - come scompattare, 39.2
tar.gz - creazione pacchetti, 39.5
tar.gz - installazione, 36.1
tar.gz - visualizzare il contenuto, 39.1
tastiera - estera, 77.4
tastiera - portatili, 73.2
tastiera - riconfigurare, 77.6
tastiera - tasti accessori, 77.1
tastiera statunitense e accentate, 77.5
tasto 'Canc.' in xterm, 46.7
Tavola delle Partizioni, 17.1
telnet su altre porte, 22.2
Temi Window Maker, 45.4
tempi di connessione, 29.18
terminale grafico - chiuderlo dopo aver lanciato un'applicazione, 36.4
terminale grafico - colori, 46.3
terminale grafico - colori e caratteri, 46.4
terminale grafico - login, 46.5
terminale grafico - se lo chiudo si chiude anche l'applicazione, 36.3
terminali, 25.1
terminali - 486, 25.2
terminali grafici non funzionanti in Red Hat 6.1, 46.6
test dell'immagine del kernel, 7.12
tgz > rpm, 38.3
tilde, 18.2
tipo di file, 12.18
ultima versione del kernel, 7.1
UltraDMA - UltraATA, 79.1
umask, 11.7
undelete in linux, 12.5
unione file, 12.17
upload file per anonymous, 21.7
USB, 7.15
utenti - cancellare i file, 10.4
utenti connessi al sistema, 10.14
utilizzo processore, 16.2
versione del kernel, 7.2
vi - caratteri per linea, 47.2
vi - comandi essenziali, 47.1
video 4 linux, 76.1
virus nel boot - LILO, 6.16
visualizzare il contenuto di molti file, 12.13
visualizzare il contenuto di una directory, 12.9
visualizzare il percorso dei file, 12.12
visualizzare le partizioni, 3.2
visualizzare un file, 12.7
visualizzazione traffico, 20.4
visualizzazione variabili, 13.1
volume audio, 65.6
warning: /dev/hdxy has insecure permissions 0660, 0600 suggested, 2.17
warning: System.map versione del kernel sbagliata, 7.28
wav > mp3, 67.2
wget, 35.4
wget - riprendere scaricamento, 35.2
wget e i proxy, 35.7
which, 36.6
window maker - pannello scomparso, 45.2
window maker - selezionare finestre nascoste, 45.3
Windows 2000 - montare, 5.4
winmodem, 87.1
Winmodem e Linux, 87.2
wish, 7.11
word - gestire documenti w. in linux, 59.1
X > console testuale, 43.20
X - applicazioni senza wm, 43.6
X - blocco, 43.11
X - immagine decentrata, 43.19
X - reindirizzare errori, 43.13
X - root non avvia più applicazioni da terminale, 36.5
X - versione server, 43.2
X e applicazioni senza wm, 43.7
X remoto, 24.2
Xfree 4 e caratteri, 43.3
xfstt, 61.7
xfstt - automatizzare l'avvio, 61.8
xterm - chiuderlo dopo aver lanciato un'applicazione, 36.4
xterm - colori e caratteri, 46.4
xterm - se lo chiudo si chiude anche l'applicazione, 36.3
xterm e applicazioni, 46.2
xv, 43.9
Yamaha opl3-sax, 82.6
ZIP Atapi, 83.1
ZIP Plus, 83.3