1. A proposito di questo documento
Questo documento fornisce una lista di utili comandi per OBP che possono essere d'aiuto quando si avvia, configura o si esegue una diagnosi su hardware o cloni Sun SPARC.
Nota che non tutti i comandi sono disponibili in tutte le versioni di PROM. In modo particolare, i sistemi sun4c hanno differenti modi di input e alcune stazioni JavaStation non sono provviste di molte funzionalità di OBP.
I comandi di OBP sono qualcosa di inconsistente. Alcune frasi sono usate con parole separate, altre non lo sono. Alcuni comandi che mostrano informazioni partono o contengono un punto (convenzione FORTH).
Il termine "OBP", "OpenBoot PROM" e "PROM" sono usati alternativamente in questo documento.
In sistemi SUN normali (e cloni che usano tastiere Sun), per entrare in OBP premi Stop+A quando il sistema si avvia. Il bottone Stop è nella parte sinistra della tastiera, in alto a sinistra sopra il blocco di tasti extra (nei sistemi molto vecchi è marcato da L1).
La combinazione di tasti Stop+N durante l'avvio, causa il reset della configurazione predefinita di PROM in molti sistemi. Su alcune macchine Stop+D abilita la diagnostica
Per entrare in OBP con la console seriale, invia un break. In minicon, fai questo premendo ctrl+A F. In xc utilizza ctrl+A B.
Sistemi con tastiere non Sun (stile PC)
Nei sistemi con tastiere stile PC (come JavaStation e alcuni cloni Ultra), sono generalmente usati ctrl+break o alt+ctrl+break.
Nota che nelle JavaStation JK, ctrl+break riavvia la macchina al posto di entrare in PROM. Per accedere a OBP, devi mettere sulla scheda madre il jumper J1300 sui pin 7-8.
Il comando power-off spegne la macchina. Questo comando è a volte strano nei sistemi Ultra5/10.
Il comando reset causa un reset. Se la diagnostica è abilitata, non avviene il riavvio. In alcuni documenti, questo comando si chiama reset-all.
Il comando boot avvia il sistema. Si può utilizzare un parametro per sovrascrivere il device di boot predefinito --questo può essere un nome completo di device oppure un alias di un device come disk, cdrom oppure net. Nessun'altro parametro addizionale viene passato al bootloader o al sistema operativo.
Informazioni su PROM e sul sistema
Il comando .version visualizza la versione di OBP.
Codice 3.1: output di .version |
{0} ok .version
Release 3.7 Version 0 created 1997/01/09 13:06
OBP 3.7.0 1997/01/09 13:06
POST 3.2.1 1996/12/20 03:01
|
Il comando banner visualizza le informazioni di sistema.
Codice 3.2: output di banner |
{0} ok banner
Sun Ultra 2 UPA/SBus (2 X UltraSPARC-II 296MHz), No Keyboard
OpenBoot 3.7, 704 MB memory installed, Serial #9705521.
Ethernet address 8:0:20:94:18:31, Host ID: 80941831
|
Il comando .speed visualizza le velocità del bus.
Codice 3.3: output di .speed |
{0} ok .speed
CPU Speed : 296.00 MHz
UPA Speed : 098.66 MHz
SBus Speed : 025.00 MHz
|
Il comando show-devs visualizza la lista dei dispositivi disponibili sul sistema.
Il comando probe-scsi visualizza i dispositivi interni SCSI disponibili sul sistema. Il comando probe-scsi-all visualizza entrambi i dispositivi, interni ed esterni su ogni interfaccia SCSI. Dopo aver dato questi comandi, devi concludere con un reset-all prima di tentare il boot di un sistema operativo.
Codice 3.4: output di probe-scsi-all |
{0} ok probe-scsi-all
This command may hang the system if a Stop-A or halt command
has been executed. Please type reset-all to reset the system
before executing this command.
Do you wish to continue? (y/n) y
/sbus@1f,0/SUNW,fas@e,8800000
Target 1
Unit 0 Disk SEAGATE ST34371W SUN4.2G74629710B00491
Copyright (c) 1997 Seagate
All rights reserved
|
Nei sistemi basati su IDE è pure disponibile il comando probe-ide
Codice 3.5: output di probe-ide |
ok probe-ide
Device 0 ( Primary Master )
ATA Model: ST320420A
Device 1 ( Primary Slave )
ATA Model: Maxtor 6E040L0
Device 2 ( Secondary Master )
Not Present
Device 3 ( Secondary Slave )
Not Present
|
4. Variabili di ambiente e alias di device
Vedere e impostare il valore delle varibili di ambiente
Utilizza printenv per avere una lista delle varibili di ambiente. Per vedere il contenuto di una specifica variabile, utilizza il comando printenv fnord.
Per impostare il valore di una variabile, utilizza setenv variabile nuovo_valore.
Per ripristinare una variabile al suo valore predefinito utilizza set-default variabile. Per ripristinare tutte le variabili con il loro valore predefinito utilizza set-defaults.
Nota che solitamente le variabili booleane finiscono con ?, e che sono separate dalle variabili con lo stesso nome senza il punto di domanda. I valori utilizzati per le variabili booleane sono true e false.
Alcune variabili di sistema utili:
| Variabile | Significato |
| ttya-mode | Imposta il baud rate e relative impostazioni usate dalla console seriale. Per default viene utilizzato 9600,8,n,1,-, che significa 9600 baud, 8 bit, nessuna parità , 1 bit di stop, nessun controllo del flusso. |
| auto-boot? | Per default OBP viene automaticamente avviato. Imposta questa variabile a false se vuoi dare il comando di boot manualmente. |
| boot-device | Quando avviene l'auto-boot, e quando il comando boot è dato senza argomenti, questa variabile è usata per determinare il device per il boot. Possono essere assegnati più di un valore (separati da spazio), in questo caso vengono provate una dopo l'altra. Ogni valore può essere un percorso completo al device oppure l'alias del device. |
| diag-device | Come boot-device, ma usato quando è abilitata diag-switch?. |
| local-mac-address? | Se impostata, le interfacce di rete utilizzano il loro proprio MAC al posto del system-wide MAC. Questo è consistente al comportamento dei PC, e in violazione con le specifiche Ethernet. |
| diag-switch? | Se settato, vengono eseguiti all'avvio addizionali controlli di diagnostica. Nota che questo può impegnare un tempo molto lungo nei sistemi SMP e/o HyperSparc. In più, la variabile diag-device è anche utilizzata per determinare il device di boot invece della variabile boot-device. Alcuni sistemi hanno un jumper sulla scheda madre oppure uno switch sul davanti della macchina che forza questa impostazione. |
Vedere e impostare i device alias
Gli alias dei device possono essere utilizzati per semplificare gli argomenti di molti comandi. Invece di digitare boot /sbus/SUNW,hme@e,8c00000, per esempio, si può utilizzare boot net. Alcuni alias di device sono definiti per default in tutti i sistemi.
Per vedere tutti gli alias di device, utilizza il comando devalias. Per vedere un alias specifico, utilizza devalias nome_device. Per impostare un device alias, utilizza devalias nome_device nuovo_valore.
Cambiare la risoluzione del monitor
La variabile output-device può essere utilizzata per controllare quale framebuffer è utilizzato, e a che risoluzione è impostato per la console PROM. Per esempio, per usare la scheda Creator su Ultra 1C o 2 ad una risoluzione di 1024x768@76MHz:
Codice 4.1: Cambiare impostazioni del monitor |
{0} ok devalias screen /SUNW,ffb
{0} ok setenv output-device screen:r1024x768x76
|
I cambiamenti non hanno effetto fino a quando non si fa un reset. Non tutte le risoluzioni e refresh sono supportate dalle schede video.
Entrare nella modalità di diagnostica
Prima di entrare in qualsiasi modalità di diagnostica è consigliato abilitare diag-switch?, spegnere completamente la macchina e riaccenderla (hard power off). Maggiori informazioni sulla diagnostica sono fornite dalla console seriale quando la macchina è avviata.
Se l'autotest di accensione (POST) ha successo, possono essere ottimizzati alcuni test usando il comando watch-clock.
Il comando test device_da_testare fornisce un controllo del specifico device (patch completo o alias).
Codice 5.1: Esempio di test |
{0} ok test scsi
CE DMA fill from address fff8e000 for 80 bytes succeeded.
Dma register test -- succeeded.
Esp register test -- succeeded.
Dma read test -- succeeded.
Dma write test -- succeeded.
{0} ok test /sbus/SUNW,hme
Internal loopback test -- succeeded.
Transceiver check -- Using Onboard Transceiver - Link Up.
passed
{0} ok test ttya
!"#$%&'()*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn
|
Il comando test-all fornisce un controllo su ogni device capace di un auto test.
Il comando watch-net può essere utilizzato per vedere pacchetti broadcast inviati sulla rete.
Il comando watch-clock può essere utilizzato per verificare che il clock interno sia funzionante. Esso deve contare da 0 a 59 in un ciclo con intervallo di 1 secondo.
Diagnostica avanzata tramite l'utilizzo di obdiag
Nota: La routine obdiag è disponibile soltanto su Ultra 5/10 e successivi. |
Per abilitare la diagnostica avanzata fai come segue:
Codice 5.2: Entrare in obdiag |
ok setenv mfg-mode on mfg-mode = on ok setenv diag-switch? true diag-switch? = true ok setenv auto-boot? false auto-boot? = false ok reset-all ok obdiag |
Questo visualizza un menù. Prima scegli 16 per abilitare i messaggi proliss.
Codice 5.3: menu di obdiag |
OBDiag Menu
0 ..... PCI/Cheerio
1 ..... EBUS DMA/TCR Registers
2 ..... Ethernet
3 ..... Keyboard
4 ..... Mouse
5 ..... Floppy
6 ..... Parallel Port
7 ..... Serial Port A
8 ..... Serial Port B
9 ..... NVRAM
10 ..... Audio
11 ..... EIDE
12 ..... Video
13 ..... All Above
14 ..... Quit
15 ..... Display this Menu
16 ..... Toggle script-debug
17 ..... Enable External Loopback Tests
18 ..... Disable External Loopback Tests
Enter (0-13 tests, 14 -Quit, 15 -Menu) ===> 16
Enter (0-13 tests, 14 -Quit, 15 -Menu) ===>
|
Test individuali possono essere così eseguiti scegliendo il loro relativo numero. Nota che alcuni test (per esempio, quello delle porte seriali), presuppone che vi sia un attaccato un connettore esterno per il loopback. Il test Ethernet presuppone che il cavo di rete sia attaccato e connesso ad uno switch.
Per uscire utilizza 14.
I contenuti di questo documento sono rilasciati sotto la licenza Creative Commons - Attribution / Share Alike.