Provided by: manpages-it_0.3.4-5_all bug

NOME

       setserial - fornisce/imposta informazioni per le porte seriali in Linux

SINTASSI

       setserial [ -abqvVW ] dispositivo [ parametro1 [ arg ] ] ...

       setserial -g [ -abv ] dispositivo1 ...

DESCRIZIONE

       setserial  è   un  programma  inteso  a  impostare  e/o  riportare   le
       informazioni  di  configurazione associate a una porta seriale.  Queste
       informazioni includono le porte I/O e l’IRQ  che  sta  utilizzando  una
       particolare  porta  seriale, e precisano se il tasto break debba essere
       interpretato come il tasto Secure Attention oppure no, e così via.

       Durante il normale processo di avvio,  vengono  inizializzate  solo  le
       porte  COM 1-4, usando le porte I/O e i valori IRQ predefiniti, secondo
       l’elenco che segue.  Per qualunque porta  seriale  addizionale,  o  per
       assegnare  alle porte COM 1-4 una configurazione non standard, dovrebbe
       essere usato il programma setserial.  Esso viene  tipicamente  chiamato
       da uno script rc.serial, normalmente eseguito tramite /etc/rc.local.

       L’argomento  (o  gli  argomenti)  dispositivo  specifica il dispositivo
       seriale che deve essere modificato o interrogato.  Avrà normalmente  la
       seguente forma: /dev/cua[0-3].

       Se non viene specificato alcun parametro, setserial stamperà il tipo di
       porta (per esempio,  8250,  16450,  16550,  16550A,  etc.),  la   porta
       hardware  di  I/O,  la  linea  hardware  di  IRQ, la sua "baud base," e
       qualcuna delle sue opzioni.

       Se viene data l’opzione -g , gli argomenti passati a setserial verranno
       interpretati  come  una lista di dispositivi per la quale devono essere
       stampate le caratteristiche dei dispositivi stessi.

       Senza l’opzione -g , il primo argomento di setserial viene interpretato
       come  il  dispositivo  da  modificare  o  le cui caratteristiche devono
       essere stampate, e ogni argomento addizionale verrà  interpretato  come
       un parametro da assegnare a quel dispositivo seriale.

       Per  la  maggior  parte,  sono richiesti i privilegi da superutente per
       impostare i parametri di configurazione di una porta  seriale.   Alcuni
       parametri  di porta seriale possono tuttavia essere impostati da utenti
       normali  e  saranno  menzionati  in  questa  pagina  di  manuale   come
       eccezioni.

OPZIONI

       Setserial accetta le seguenti opzioni:

       -a     Riportando  la  configurazione di un dispositivo seriale, stampa
              ogni informazione disponibile.

       -b     Riportando la configurazione di un dispositivo  seriale,  stampa
              un  sommario  della configurazione del dispositivo, che potrebbe
              essere adatto alla stampa durante il processo di avvio,  durante
              l’esecuzione dello script /etc/rc.

       -q     È silenzioso: setserial stampa meno righe d’informazioni.

       -v     È  prolisso:  setserial  stampa  informazioni  addizionali sullo
              stato.

       -V     Mostra la versione ed esce.

       -W     Esegue un’inizializzazione selvaggia degli interrupt ed esce.

PARAMETRI

       A una porta seriale possono essere assegnati i seguenti parametri.

       Si presume che per tutti gli  argomenti  i  valori  siano  espressi  in
       decimale salvo quando preceduti da "0x".

       port numero_della_porta
              L’opzione port imposta la porta di I/O, come illustrato sopra.

       irq numero_di_irq
              L’opzione irq imposta l’IRQ hardware, come illustrato sopra.

       uart tipo_di_uart
              Questa  opzione  viene  usata  per impostare il tipo di UART:  i
              tipi consentiti sono none (nessuno) oppure 8250,  16450,  16550,
              16550A,  16650,  16650V2  e 16750.  Poiché gli UART 8250 e 16450
              non hanno FIFO, e poiché  i  16550  originali  hanno  bachi  che
              rendono  inutilizzabile  la  coda  FIFO, FIFO sarà usato solo su
              chip identificati come UART 16550A.  Impostare il  tipo  UART  a
              8250,  16450  o  16550 abilita la porta seriale senza cercare di
              usare la coda FIFO. Usare il tipo UART none disabilita la porta.

              Alcuni  modem  interni  sono  reclamizzati  come  muniti  di una
              "16550A UART with a 1k buffer": è falso! hanno  un UART  che  in
              realtà  non è 16550A compatibile; quello che invece posseggono è
              un UART 16450 compatibile con un buffer in ricezione di  1k  per
              prevenire  gli  intasamenti  (overrun)  del  ricevitore.   Ciò è
              importante,  poiché   non  dispongono  di  una  coda   FIFO   in
              trasmissione.   Pertanto,  essi non sono compatibili con un UART
              16550A e il  processo  di  autoconfigurazione  li  identificherà
              correttamente  come 16450.  Se si tenta di forzare ciò usando il
              parametro uart , verranno a mancare  dei  caratteri  durante  la
              trasmissione  dei  file.   Di  solito  questi  UART  hanno altri
              problemi: spesso deve  essere  specificato  anche  il  parametro
              skip_test.

       autoconfigure
              Dando  questo parametro, setserial chiederà al kernel di tentare
              di configurare automaticamente la porta seriale.  La  porta  I/O
              deve  essere  impostata  correttamente;  il  kernel  cercherà di
              determinare  il  tipo  UART,  e  se  è  impostato  il  parametro
              auto_irq,  Linux  cercherà di determinare automaticamente l’IRQ.
              Il  parametro  autoconfigure  dovrebbe  essere  dato  dopo  aver
              specificato i parametri port,auto_irq, andskip_test.

       auto_irq
              Durante l’autoconfigurazione, cerca di determinare l’IRQ.  Non è
              garantito  che  questa  opzione  produca  sempre  il   risultato
              corretto;  qualche configurazione hardware potrebbe ingannare il
              kernel Linux.  Di  solito  è  più  sicuro  non  usare  l’opzione
              auto_irq  ,  ma  piuttosto  specificare  esplicitamente l’IRQ da
              usarsi, servendosi del parametro irq.

       ^auto_irq
              Durante l’autoconfigurazione, non cerca di determinare l’IRQ.

       skip_test
              Durante l’autoconfigurazione, salta il test UART.  Alcuni  modem
              interni  non  hanno UART  compatibili National Semiconductor, ma
              hanno  invece  imitazioni  economiche.  Alcuni  di  questi  UART
              imitati  non  supportano perfettamente il modo di riconoscimento
              loopback, usato dal kernel per assicurarsi che  ci  sia  davvero
              uno  UART  a  un  particolare  indirizzo  prima  di  tentare  di
              configurarlo. Quindi, per certi modem interni,  c’è  bisogno  di
              specificare   questo   parametro  onde  consentire  a  Linux  di
              inizializzare l’UART correttamente.

       ^skip_test
              Durante l’autoconfigurazione, non salta il test UART.

       baud_base base_in_baud
              Questa  opzione  imposta  la  velocità  base  in  baud,  che   è
              rappresentata   dalla   frequenza   di   clock  divisa  per  16.
              Normalmente questo valore è  115200,  che  è  anche  la  massima
              velocità in baud che l’UART possa sostenere.

       spd_hi Usa   57.6kb  quando  l’applicazione  richiede  38.4kb.   Questo
              parametro può essere specificato da un utente non  privilegiato.

       spd_vhi
              Usa   115kb   quando  l’applicazione  richiede  38.4kb.   Questo
              parametro può essere specificato da un utente non  privilegiato.

       spd_cust
              Usa  il divisore personalizzato per impostare la velocità quando
              l’applicazione richiede 38.4kb. In questo caso, la velocità sarà
              la  base_in_baud  diviso  per il divisore.  Questo parametro può
              essere specificato da un utente non privilegiato.

       spd_normal
              Usa  38.4kb  quando  l’applicazione  richiede  38.4kb.    Questo
              parametro  può essere specificato da un utente non privilegiato.

       divisor divisore
              Questa opzione imposta il divisore personalizzato.  Verrà allora
              usato   questo   divisore,  quindi  sarà  selezionata  l’opzione
              spd_cust e la porta seriale verrà impostata dall’applicazione  a
              38.4kb.   Questo  parametro  può essere specificato da un utente
              non privilegiato.

       sak    Imposta il tasto break come il tasto Secure Attention.

       ^sak   disabilita il tasto Secure Attention.

       fourport
              Configura la porta come una scheda AST Fourport.

       ^fourport
              Disabilita la configurazione AST Fourport.

       close_delay ritardo
              Specifica la quantità di tempo, in centesimi di secondo, per  la
              quale  il  segnale  DTR deve rimanere basso su una linea seriale
              dopo che il dispositivo chiamante  (callout  device)  sia  stato
              chiuso, prima che il dispositivo di chiamata in ingresso (dialin
              device) bloccato alzi di nuovo il segnale DTR. Questa opzione  è
              predefinita a 50, ossia un ritardo di mezzo secondo.

       closing_wait ritardo
              Specifica  la quantità di tempo, in centesimi di secondo, per la
              quale il kernel deve attendere la  trasmissione  di  dati  dalla
              porta  seriale  mentre  chiude la porta, prima che il ricevitore
              sia stato disabilitato. Se viene specificato "none", non vi sarà
              alcun   ritardo.  Se  viene  specificato  "infinite"  il  kernel
              attenderà indefinitamente la trasmissione dei dati  nel  buffer.
              L’impostazione predefinita è "none".

       closing_wait2 ritardo
              Specifica  la quantità di tempo, in centesimi di secondo, per la
              quale il kernel deve attendere la  trasmissione  di  dati  dalla
              porta seriale mentre chiude la porta, dopo che il ricevitore sia
              stato disabilitato.  Come  per  il  comando  closing_wait  ,  si
              possono  specificare  sia "none" sia "infinite".  L’impostazione
              predefinita è di 3000, ossia un ritardo di 30 secondi.

              Le impostazioni predefinite di closing_wait e  di  closing_wait2
              sono di solito appropriate per la maggior parte dei dispositivi.
              Se viene selezionato un ritardo troppo lungo,  allora  la  porta
              seriale  potrebbe  rimanere  appesa  per lungo tempo qualora sia
              chiusa mentre una porta seriale non è collegata, e abbia dati in
              attesa. Se viene specificato un ritardo troppo corto, allora c’è
              il rischio che qualcuno dei dati  trasmessi  non  venga  affatto
              emesso.

              Se  il  dispositivo  è  estremamente  lento,  come un plotter, i
              valori   di   closing_wait   o   closing_wait2   devono   essere
              ulteriormente allungati.

              Se  il  dispositivo  usa  normalmente  l’handshaking XON/XOFF, i
              valori predefiniti  di  closing_wait  and  closing_wait2  devono
              essere  invertiti.  Ciò  presenta  tuttavia  il  pericolo di non
              sopprimere le lotte di echi fra Linux e un modem che continui  a
              mandare segnali echo.

       session_lockout
              Blocca gli accessi alla porta chiamante (/dev/cuaXX) fra diverse
              sessioni.  Cioè, una volta che  un  processo  abbia  aperto  una
              porta,   non   consente   che   un   processo   con  un  diverso
              identificativo di sessione apra quella  porta  finché  il  primo
              processo non l’abbia chiusa.

       ^session_lockout
              Non   blocca  gli  accessi  alla  porta  chiamante  fra  diverse
              sessioni.

       pgrp_lockout
              Blocca gli accessi alla porta chiamante (/dev/cuaXX) da  diversi
              gruppi  di processi. Cioè, dopo che un processo abbia aperto una
              porta, non consentire a un processo  di  un  diverso  gruppo  di
              processi  di  aprire  quella  porta finché il primo processo non
              l’abbia chiusa.

       ^pgrp_lockout
              Non blocca accessi alla porta chiamante  da  diversi  gruppi  di
              processi.

       hup_notify
              Notifica  a  un  processo bloccato sull’apertura di una linea in
              ingresso  quando un processo ha terminato di usare una linea  in
              uscita   (sia  mediante  chiusura  della linea, sia per avvenuto
              riaggancio) restituendo EAGAIN all’apertura.

              Questo parametro viene usato per i processi  getty  bloccati  su
              una linea di ingresso di una porta seriale. Ciò permette a getty
              di reimpostare il modem (la cui  configurazione  potrebbe  esser
              stata   modificata  dall’applicazione  che  usa  il  dispositivo
              chiamante) prima di bloccarsi ancora sull’apertura.

       ^hup_notify
              Non mandare notifiche a un processo  bloccato  sull’apertura  di
              una  linea  di  chiamata  in  ingresso   quando  il  dispositivo
              chiamante viene riagganciato.

       split_termios
              Tratta le impostazioni termios usate dal dispositivo chiamante e
              le  impostazioni  usate  dal  dispositivo  di  composizione come
              separate.

       ^split_termios
              Usa la stessa struttura termios per  immagazzinare  entrambe  le
              porte   di   ingresso    e   di  chiamata.  Questa  è  l’opzione
              predefinita.

       callout_nohup
              Se questa particolare porta seriale è  aperta  come  dispositivo
              chiamante  non  riappende  il  tty  quando  viene  a  mancare il
              riconoscimento della  portante.

       ^callout_nohup
              Non omette di riagganciare il tty quando  una  porta  seriale  è
              aperta  come  dispositivo  di  chiamata. Naturalmente, l’opzione
              HUPCL di termios deve essere abilitata se sta  per  avvenire  il
              riaggancio.

CONSIDERAZIONI SULLA CONFIGURAZIONE DI PORTE SERIALI

       È  importante  notare che setserial si limita soltanto a dire al kernel
       di Linux dove dovrebbe aspettarso di trovare la porta di I/O e le linee
       di  IRQ  di una particolare porta seriale.  *Non* configura l’hardware,
       cioè la scheda seriale effettiva, per usare una particolare porta  I/O.
       Per  fare  ciò,  avete  bisogno  di  programmare  fisicamente la scheda
       seriale,  normalmente  impostando  alcuni  jumper  o  spostando  alcuni
       interruttori DIP.

       Questa sezione fornirà alcuni suggerimenti per aiutarvi a decidere come
       configurare le porte seriali.

       Le associazioni delle  porte  secondo  lo  "standard  MS-DOS"  sono  le
       seguenti:

              /dev/ttys0 (COM1), porta 0x3f8, irq 4
              /dev/ttys1 (COM2), porta 0x2f8, irq 3
              /dev/ttys2 (COM3), porta 0x3e8, irq 4
              /dev/ttys3 (COM4), porta 0x2e8, irq 3

       A  causa  dei  limiti  progettuali  dell’architettura  del  bus AT/ISA,
       normalmente una linea di IRQ non può esser  condivisa  fra  due  o  più
       porte  seriali.  Se  si  prova a farlo, una o entrambe le porte seriali
       diventano inaffidabili quando usate simultaneamente. Questa limitazione
       può  essere superata da speciali schede serialei multi-porta, disegnate
       per condividere porte seriali multiple su di una singola linea di  IRQ.
       Le  schede seriali multi-porta che Linux può utilizzareincludono la AST
       FourPort, la scheda Accent Async, la scheda Usenet Serial II, le schede
       Bocaboard BB-1004, BB-1008 e BB-2016, e la scheda seriale HUB-6.

       La  selezione di una linea IRQ alternativa è difficile, poiché molte di
       loro  sono  già  usate.  La  seguente  tabella  elenca   l’assegnazione
       "standard MS-DOS" delle linee di IRQ disponibili:

              IRQ 3: COM2
              IRQ 4: COM1
              IRQ 5: LPT2
              IRQ 7: LPT1

       La  maggior  parte  delle  persone  ritengono  che  IRQ 5 sia una buona
       scelta, supponendo che ci sia  solo  una  porta  parallela  attiva  nel
       computer.  Un’altra  buona scelta è IRQ 2 (oppure IRQ 9); benché questo
       IRQ sia talora usato da schede di rete e, molto  raramente,  da  schede
       VGA  configurate  per  usare  IRQ  2  come  interrupt di ritracciamento
       verticale. Se la propria scheda VGA è configurata in  questo  modo,  si
       cerchi di disabilitare la configurazione, inutile per Linux e per molti
       altri sistemi operativi, per poter disporre di quella linea di IRQ  per
       qualche altra scheda.

       Le  uniche  altre  linee  IRQ  disponibili sono 3, 4 e 7, e queste sono
       probabilmente usate da altre porte seriali e parallele; ma se la scheda
       seriale  ha  un  connettore  marginale  a  16bit  e  accetta  numeri di
       interrupt più alti, allora sono anche disponibili gli IRQ 10, 11, 12  e
       15.

       Su  macchine  di  classe  AT,  IRQ  2  è  visto  come IRQ 9, e Linux lo
       interpreterà in questo modo.

       Gli IRQ diversi da 2 (9), 3, 4, 5, 7, 10, 11,  12,  e  15,  non  devono
       essere  usati, poiché sono assegnati a altro hardware e non possono, in
       genere, essere modificati. Ecco gli assegnamenti "standard":

              IRQ  0      Timer canale 0
              IRQ  1      Tastiera
              IRQ  2      Cascade per controller 2
              IRQ  3      Porta seriale 2
              IRQ  4      Porta seriale 1
              IRQ  5      Porta parallela  2 (riservato nel PS/2)
              IRQ  6      Lettore di dischetto
              IRQ  7      Porta parallela 1
              IRQ  8      Orologio in tempo reale
              IRQ  9      Rediretto a IRQ2
              IRQ 10      Riservato
              IRQ 11      Riservato
              IRQ 12      Riservato (dispositivo ausiliario nel PS/2)
              IRQ 13      Coprocessore matematico
              IRQ 14      Controller per il disco rigido
              IRQ 15      Riservato

CONFIGURAZIONE MULTIPORTA

       Alcune schede seriali multi-porta che condividono porte multiple su  un
       singolo IRQ usano una o più porte per indicare se ci sia, o no, qualche
       porta  appesa  che  abbia  bisogno  di  esser  servita.  Se  la  scheda
       multiporta  ha  questo  tipo di  porte, bisognerebbe usarle per evitare
       potenziali blocchi nel caso in cui l’interrupt andasse perso.

       Per impostare queste porte, si specifichi il  parametro  set_multiport,
       seguito  dai  parametri  della multiporta. I parametri della multiporta
       specificano la porta (port) che deve essere controllata,  una  maschera
       (mask)  che indica quali bit nel registro sono significativi e, infine,
       un  parametro  corrispondenza  (match)  che  specifica  a  cosa  devono
       corrispondere  i  bit  significativi  in  quel registro, in mancanza di
       altro lavoro in attesa di esser eseguito.

       Possono  essere  specificate  fino  a  quattro  di  tali   combinazioni
       porta/maschera/corrispondenza.   La  prima  di  queste  dovrebbe essere
       specificata impostando i parametri port1, mask1e match1.  La seconda di
       tali combinazioni dovrebbe essere specificata con port2, mask2e match2,
       e così  via.   Per  disabilitare  questo  controllo  della  multiporta,
       impostate port1 a zero.

       Per vedere le attuali impostazioni multiporta, si specifichi sulla riga
       di comando il parametro get_multiport.

       Ecco alcune impostazioni multiporta per alcune schede seriali comuni:

              AST FourPort    port1 0x1BF match1 0xf mask1 0xf

              Boca BB-1004/8  port1 0x107 match1 0xff match1 0

              Boca BB-2016    port1 0x107 match1 0xff match1 0
                              port2 0x147 match2 0xff match2 0

CAUTELE

       ATTENZIONE: L’uso  di  una  porta  invalida  può  bloccare  la  propria
       macchina.

FILES

       /etc/rc.local /etc/rc.serial

VEDERE ANCHE

       tty(4), ttys(4), kernel/chr_drv/serial.c

AUTORE

       La   versione  originale  di  setserial  fu  scritta  da  Rick  Sladkey
       (jrs@world.std.com)  ed  è  stata  modificata  da  Michael  K.  Johnson
       (johnsonm@stolaf.edu).

       Da  allora,  questa versione è stata riscritta daccapo da Theodore Ts’o
       (tytso@mit.edu) il  giorno  1/1/93:  tutti  i  bachi  e  problemi  sono
       solamente colpa sua.