Sony NEWS: inizio di un restauro complicato

Mentre questo articolo viene scritto, nel mondo imperversa ancora la pandemia da COVID, in particolare la variante omicron che appare estremamente più contagiosa ma fortunatamente molto meno aggressiva. La situazione attuale scoraggia spostamenti e organizzazioni di eventi in presenza, ma facilita, per così dire, l’attività di restauro delle macchine piccole, specie su problematiche software.

Il logo della linea Sony NEWS

Nel settembre 2020 è stata acquisita una workstation Sony NWS-3410 della linea NEWS (NEt WorkStation), nata nella seconda metà degli Anni ’80 del secolo scorso e destinata a competere con i prodotti Silicon Graphics, Sun Microsystems e degli altri produttori di macchine ad alte prestazioni. L’acquisizione è avvenuta attraverso uno scambio con un collezionista italiano di macchine Acorn/ARM (Domenico Martini, probabilmente il più grande esperto italiano di questa piattaforma): in cambio della NWS-3410, ho ceduto una RISCstation R7500 con processore ARM 7500FE.

Le macchine NEWS sono interessanti nell’ambito della storia dell’informatica e dell’informatizzazione per almeno 5 motivi:

  • Sono una delle “varianti” di workstation RISC equipaggiate con Unix che si sono affacciate sul mercato quando ancora i PC erano degli oggetti piuttosto primitivi;
  • Sono una eccezione rispetto all’egemonia americana (Sun Microsystems, Silicon Graphics, IBM, HP, NeXT, Digital), benché il sistema operativo sia in linea con la concorrenza;
  • Rispetto alle varie SPARCstation, Indy e simili, le Sony NEWS hanno ben poca documentazione su web e sono pressoché introvabili agli eventi del settore (le workstation sono solitamente poco presenti);
  • Dalle ceneri della linea NEWS è nata la prima PlayStation: stessa CPU RISC (MIPS R3000), stessa ambizione per la grafica;
  • Infine, il linguaggio Ruby è stato concepito da Yukihiro Matsumoto su una Sony NEWS: questo basterebbe a qualificarla come di interesse storico! Non diversamente dal fatto che si ricordano le macchine NeXT (anche) per aver dato i natali al primo browser e al primo server web della storia.

I punti appena elencati sono un vigoroso incoraggiamento ad intraprendere il restauro e la documentazione della macchina.

Prima di entrare nel merito di questa attività, può essere utile una panoramica su questa linea di macchine. La lista di seguito (copiata dalla pagina https://katsu.watanabe.name/doc/sonynews/model.html) raggruppa i modelli prodotti suddividendoli per anno e per tipo di CPU:

CPUAnnoModelli
680201987NWS-811, NWS-820, NWS-830, NWS-831, NWS-841
680201988NWS-711, NWS-721, NWS-891, NWS-911, NWS-921
680301988PWS-1550, NWS-1750, NWS-1830, NWS-1850,
680301989NWS-1450, NWS-1460, PWS-1520, PWS-1560, PWS-1630, NWS-1720, NWS-1860, NWS-1960
680301990NWS-1230, NWS-1250, NWS-1410
R30001990NWS-3860 (dicembre 1989), NWS-3460, NWS-3840,
R30001991NWS-3260, NWS-3410, NWS-3470, NWS-3720, NWS-3865, NWS-3870,
R30001992NWS-3150, NWS-3880
R40001992NWS-5000 (SA, SB, TF, TG, VI, VN, VP), NWS-5900
R44001993NWS-5000 (UA, UF, WI, WN, WP)
R40001994NWS-5000 (TA, TB)
R44001994NWS-5000 (G)
R44001995NWS-7900
R4700, R48001995NWS-4000
R100001995NWS-7000
Modelli Sony NEWS suddivisi per CPU e anno di produzione

A parte la lista, ben poco rimane sul web di tutte queste macchine. In Europa e negli Stati Uniti arrivò un sottoinsieme di tutti questi modelli ed è estremamente difficile trovarne funzionanti. I due modelli NWS-3410 (desktop) e NWS-3260 (portatile) sono gli unici due esemplari presenti nella collezione del MMCC, entrambi con CPU RISC MIPS R3000.

Finora si è parlato dell’hardware, ma è importante soffermarsi anche sul software. Le workstsion NEWS avevano il sistema operativo NEWS-OS, inizialmente derivato da BSD 4.2 e 4.3 e, poco prima dell’abbandono della linea da parte di Sony, System V R4.2. Per un certo periodo, il sistema operativo è stato disponibile per entrambe le architetture CISC (Motorola 68k) e RISC (MIPS), salvo poi proseguire lo sviluppo solo della versione RISC.

Come si vedrà nel seguito, l’installazione di NEWS-OS è tutt’altro che scontata, poiché software e documentazione scarseggiano. Terminata la produzione ufficiale, le NEWS sono state pressoché ignorate dai sistemi operativi futuri, ad eccezione di NetBSD, di cui esiste un porting per le architetture 68k e MIPS. Le pagine del progetto NetBSD sono molto utili, perché documentano, tra le altre cose, la procedura di boot via PROM e la configurazione dei dip-switch frontali.

Fatta questa breve panoramica della linea NEWS, vediamo nel dettaglio il restauro della workstation desktop NWS-3410.

Sont NWS-3410
La Sony NWS-3410, equipaggiata con CPU MIPS R3000

Le condizioni estetiche erano ottime: nessun danno, nessuna spaccatura, nessuna ossidazione sulla struttura e sulle porte di comunicazione. Mouse e tastiera perfetti. Non restava che collegare il monitor e accenderla.

Ecco la prima complicazione: l’uscita video non è la classica DB13W3 delle workstation a colori.

Connettore DB13W3 comune a SPARCstation, NeXTstation, Indy.

Si tratta, invece, di una uscita basata su connettore 3W3 molto meno comune (utilizzato soprattutto sulle macchine Digital), visibile qui sotto:

Il connettore 3W3 della Sony NWS-3410 (accanto alla scritta DISPLAY).

La workstation ricevuta aveva in dotazione un cavo 3W3 con uscita su 5 connettori BNC: sfortunatamente non era disponibile un monitor CRT con ingressi BNC (conservato in un magazzino difficilmente accessibile) ed è stato necessario trovare un adattattore diverso.

A sinistra, la motherboard con CPU e RAM. A destra, la scheda video denominata NWB-251.

È stato, dunque, acquistato su eBay un adattatore Digital P/N 17-03851-01 da 3W3 a VGA (per monitor con Sync-On-Green). Benché la macchina si accendesse, non appariva nulla sullo schermo. Effettivamente, Domenico Martini l’aveva ricevuta come funzionante e, non disponendo di un monitor compatibile, l’aveva provata, per quanto possibile, verificandone l’accensione e il tipico rumore dell’hard disk in fase di boot.

La “via facile” è ovviamente sfumata e si è resa necessaria un’analisi più approfondita della macchina.

È noto che molte workstation (probabilmente tutte!) utilizzino un componente con funzione RTC/NVRAM (Real Time Clock e Non-Volatile RAM, ovvero il mantenimento di data e ora più una piccola area di memoria non volatile in cui sono memorizzati alcuni parametri di boot). RTC e dati nella NVRAM sono alimentati da una batteria tampone, la cui durata stimata è di circa 10 anni. Quando la batteria è totalmente scarica, la macchina non funziona correttamente e i comportamente possono essere diversi a seconda del modello. Le SPARCstation, ad esempio, possono avviarsi correttamente: è sufficiente digitare i parametri necessari dal prompt della PROM; la SGI Indy, pur avviandosi, non ha possibilità di effettuare il boot da rete, poiché il MAC address della scheda di rete è scritto nella NVRAM e un chip con batteria esaurita notifica un errore al sistema impedendo la lettura corretta dei parametri (evidentemente, malgrado sia alimentata, la NVRAM non è in grado di leggere/scrivere correttamente i dati in memoria). Nel caso della NWS-3410, invece, l’esaurimento della batteria interna al modulo RTC/NVRAM rende la macchina non avviabile. È necessario sostituire il modulo o avviare il sistema con una opportuna sequenza che permetta di avviare la macchina con i comandi manuali (non avendo le informazioni nell NVRAM, infatti, la ROM non saprebbe quale disco selezionare per il processo di boot).

La NWS-3410 monta un modulo ST MK48T02B-25, visibile nella foto seguente:

Nell’immagine sono visibili alcuni fili che fuoriescono dal modulo stesso: si tratta di una modifica effettuata da uno dei proprietari precedenti, nel tentativo di fornire alimentazione con una batteria esterna. La modifica consiste in un circuito assemblato su una basetta millefori, un diodo e la batteria stessa. Purtroppo, anche in questo caso la batteria sostitutiva è giunta a fine vita, ma, rispetto a quella integrata nel modulo RTC, si è manifestata una perdita di acido che ha iniziato a corrodere le lamiere interne. L’esito è visibile di seguito:

Il problema, per così dire, si è raddoppiato: ripristinare la funzionalità del modulo RTC/NVRAM e fare un intervento di pulizia e protezione del telaio metallico. E, dunque, di smontaggio completo della macchina.

(continua…)

SGI Indy e HP 712/60 presso Bit.Old

Continua con entusiasmo la collaborazione tra Bit.Old e il MMCC. Nei giorni scorsi due nuove macchine hanno raggiunto l’esposizione di Colleferro. In particolare, si tratta di una Silicon Graphics Indy con processore MIDP R5000 e una HP 712/60 dotata di processore PA-RISC. Sulla prima è stato installato il sistema operativo ufficiale SGI Irix 6.5.19 ed è stata configurata la webcam originale; sulla seconda è stato installato un porting del sistema operativo NeXTSTEP versione 3.3.

Le due macchine esposte a Colleferro (foto di Maurizio Candito)

È interessante spendere qualche riga per raccontare la storia di queste due macchine.

La prima proviene da un centro di ricerche che la stava smaltendo ed è stata recuperata in una situazione abbastanza disastrosa: cover superiore frantumata, accessori mancanti (mouse, tastiera, webcam), sistema operativo sul disco inaccessibile. In primo luogo, è stato acquistato un coperchio intatto, indispensabile per poter esporre la macchina dignitosamente.

La cover originale della Indy, irrimediabilmente danneggiata

Successivamente, è stata predisposta la configurazione software, utilizzando i CDROM originali e una Raspberry Pi 3 con Ubuntu Server come boot server (ed evitare, dunque, di “impazzire” caricando tutti i CD manualmente). È stato possibile trovare su eBay un esemplare di tastiera PS/2 originale SGI, che ha subito una profonda pulizia prima di essere collocata nella esposizione.

La membrana della tastiera SGI

Il mouse è stato sostituito con uno nuovo con tecnologia ottica Logitech.

La seconda macchina, invece, è stata acquistata online e purtroppo è stata gravemente danneggiata durante il trasporto. A parte la vistosa spaccatura su uno spigolo del guscio superiore, si sono spaccati i supporti plastici che reggono la motherboard.

Lo spigolo frantumato della HP 712/60
Il primo supporto (rotto) della motherboard
Il secondo supporto (rotto) della motherboard
I supporti “volanti”

Senza questi supporti, la motherboard è “volante” all’interno del case e, dunque, a rischio cortocircuito in caso di spostamento accidentale (ad esempio, durante l’inserimento dei connettori mouse/tastiera o VGA). In questo caso, fortunatamente, è stato possibile fissarla sfruttando un cilindretto metallico posto al centro del lato lungo interno e che ha permesso di infilare una vite, seppure non perfettamente allineata. Apparentemente, questa soluzione è sufficientemente robusta e stabile da consentire l’utilizzo normale nella esposizione (sicuramente occorreranno altre cautele nel caso in cui fosse necessario trasportare ulteriormente la macchina).

La vite “di fortuna” che mantiene bloccata la motherboard sul fondo del case metallico

Networking su NeXTstation

Supponendo di aver appena ricevuto una macchina NeXT, fatte le prime doverose pulizie, se il sistema operativo è già installato, il primo desiderio è quello di connettere la macchina in rete. Questo è senz’altro una pretesa del nostro tempo: noi siamo connessi e altrettanto devono fare le macchine, nuove o vecchie che siano! Rispetto alle intrinseche deviazioni della piattaforma NeXT su video, tastiera e mouse, il networking è l’ambito dove almeno la parte hardware è facile: sul retro del case è presente una porta Ethernet 10Mbps (il Gigabit era ancora fantascienza) che consente di connettere immediatamente la macchina ad una rete locale “moderna”. Volendo, è presente anche un connettore BNC (per reti 10BASE2), ma di questi tempi è molto più facile trovare uno switch con una presa RJ45 libera piuttosto che un segmento di rete con cavo RG58 a cui agganciare un nuovo nodo. Dunque, connesso un tipico cavo patch, la configurazione hardware è risolta.

Lato software la configurazione è abbastanza semplice, ma richiede un minimo di guida rispetto ai pannelli di setup degli ambienti più moderni. Innanzi tutto è utile sapere che NeXTStep si aspetta di trovare un server che si occupi della configurazione della macchina (un DHCP ante litteral, visto che il Dynamic Host Configuration Protocol sarà introdotto solo nel 1993). Non ho dettagli su questo aspetto, non ho ancora letto a fondo i manuali dell’amministrazione di sistema dunque non so fornire dettagli in merito. Peraltro, per poter mettere in piedi un sistema client/server è necessario disporre di almeno due macchine, cosa non da poco  per la maggior parte di noi (la mia seconda NeXT sarà oggetto di restauro in autunno, dunque per ora anche io ho una sola workstation funzionante, ndr).

Ci occuperemo, dunque, della sola configurazione base del TCP/IP, per connettere una macchina con NeXTStep 3.3 alla rete di casa o dell’ufficio. Occorre tenere sotto mano:

  • l’indirizzo IP da assegnare alla NeXT
    • non essendo disponibile DHCP, onnipresente nei router moderni, occorre necessariamente attribuire un indirizzo statico alla workstation.
    • Solitamente i router assegnano gli IP dinamici all’interno di un intervallo stabilito (ad esempio, da 192.168.0.50 a 192.168.0.150). Si hanno, dunque, due possibilità: assegnare alla workstation un indirizzo IP all’interno di questo range (ad esempio, 192.168.0.123), avendo cura di indicare al router che tale indirizzo è riservato ad un certo MAC address (quello, ovviamente, della scheda di rete della NeXT) oppure assegnare staticamente un indirizzo fuori dal range (192.168.0.199) assicurandosi che non venga utilizzato da nessun’altra macchina sulla rete. Una nota: nel primo caso il router non riceverà mai la richiesta di attribuzione dell’IP da parte della NeXT, ma la configurazione salvata eviterà che il router assegni tale indirizzo ad un’altra macchina.
  • l’indirizzo IP del router
    • probabilmente il più classico dei 192.168.QUALCOSA.1, nell’esempio mostrato sopra 192.168.0.1. È sufficiente consultare il pannello di amministrazione del router o la configurazione dinamica di una macchina già connessa alla rete per scoprirlo.
  • la maschera della sottorete
    • in ambiente domestico la solita 255.255.255.0; valgono le considerazioni del punto precedente
  • l’indirizzo (o gli indirizzi) del server DNS
    • si possono utilizzare quelli dell’Internet Provider in uso, ma potrebbero cambiare nel tempo. Una soluzione potrebbe essere quella di utilizzare i DNS pubblici di Google, che hanno IP 8.8.8.8 e 8.8.4.4, o magari uno privato locale che poi inoltri la richiesta al server del provider. Insomma, come nel caso dell’indirizzo della workstation, occorre rendere statico anche il riferimento al server DNS.

Vediamo, dunque, come configurare NeXTStep 3.3 per accedere alla rete avendo a disposizione le informazioni di cui sopra. Prima di tutto, occorre accedere alla macchina con l’utente root ed avviare l’applicazione HostManager contenuta nella categoria (cartella) NextAdmin:

(ricordo che le immagini sono in scala di grigio perché si tratta di screenshot presi su una NeXTstation N1100, che è monocromatica)

Dal menù dell’HostManager è necessario selezionare la configurazione locale agendo sulla voce Local: si presenterà la finestra Local Configuration sulla quale è possibile impostare tutti i parametri.

Vediamoli nel dettagli:

  • NetInfo Binding
    • a meno che non abbiate un server di questo tipo, è consigliabile selezionare l’impostazione “Use local domain only”
  • Hostname
    • possiamo attribuire un nome alla macchina (nella migliore tradizione delle workstation Unix!). Nel mio caso, la macchina si chiama gerdanext, in onore del mio nick gerdavax.
  • NIS Domain Name
    • selezionare “None”
  • Internet Address
    • in questa posizione è necessario inserire l’indirizzo IP assegnato alla macchina (nell’esempio: 192.168.0.199)
  • Broadcast Address
    • è possibile lasciare il valore di default (che sarà 192.168.0.255 nell’esempio di configurazione finora seguito, ndr).
  • Time Standard
    • ho lasciato l’impostazione di default, ma non so se NeXTStep abbia un elenco di server NTP predefiniti. Probabilmente è una informazione che arriva dal server di configurazione. Finora l’impostazione di default non ha creato problemi, dunque ho lasciato così.
  • Netmask
    • ho specificato esplicitamente quella standard
  • Router
    • ho specificato esplicitamente l’indirizzo del router

A questo punto è sufficiente salvare per rendere operative le modifiche, previo reboot come richiesto dalla dialog mostrata di seguito:

Al riavvio la macchina avrà l’indirizzo IP assegnato. Sarà sufficiente eseguire un ping verso il router per assicurarsi che tutto funzioni correttamente. L’ultimo passo è impostare il server DNS. In questo caso non si può fare affidamento sull’interfaccia grafica, ma occorre passare alla shell di sistema. Sempre con l’utente root, è necessario modificare (o creare ex-novo, come nel mio caso) il file /etc/resolv.conf, analogamente a quanto avviene su altri sistemi Unix:

ed inserire una riga con la keywork nameserver seguita dall’indirizzo IP del server DNS (nel mio caso, proprio il server pubblico di Google con indirizzo 8.8.8.8):

È possibile inserire riferimenti a più server, ciascuno su una riga. In questo caso non è necessario un riavvio della macchina ed è sufficiente utilizzare l’utility nslookup per verificare la corretta risoluzione dei nomi:

Ultimo dettagli: l’indirizzo MAC della NeXT è visibile all’avvio della macchina, mostrato dalla BOOT ROM. Ad esempio, sulla mia NeXT è quello evidenziato nella foto qui sotto:

Pulizia del mouse NeXT N4000A

Dopo aver smontato e pulito la tastiera, ho proseguito con la pulizia del mouse. L’operazione è stata ovviamente più semplice e rapida. A parte il guscio esterno, le parti più soggette ad accumulare sporcizia sono la pallina, i rulli dei sensori ottici e il capstan (o roller pinch), ovvero il rullo con molla che tiene in posizione la sfera di gomma pressata sui rulli dei sensori.

Lo smontaggio è stato abbastanza semplice, con sole quattro viti sul fondo del mouse e il guscio superiore che si è rimosso senza difficoltà. Curiosamente, il mouse mantiene lo stesso design della tastiera, con un profilo in gomma che costituisce la giunzione tra i due gusci superiore e inferiore.

Come dicevo, gli elementi da pulire sono stati la pallina e i rulli. Questi ultimi in particolare sono apparsi subito piuttosto sporchi, come di solito accade sui mouse meccanici.

La pallina è stata lavata con acqua e sapone neutro, rapidamente e senza abrasioni. Nella foto qui sotto è ancora visibile un po’ di sporcizia.

Il rullo in teflon che tiene in posizione la pallina si è pulito molto rapidamente con un po’ di sgrassatore. Nelle due foto successive è possibile vedere il “prima e il dopo”:

I rulli degli encoder ottici sono apparsi ossidati, arruginiti oltre che sporchi. Nell’immagine successiva è possibile vedere lo stato in cui sono stati trovati:

Ovviamente la pulizia con i detergenti ha dato scarsi risultati: è stata rimossa un po’ di polvere sedimentata, ma ovviamente non la ruggine. Ho provato a levigare lievemente e con molta attenzione utilizzando una spatolina metallica: lo strato di ossido superiore è stato rimosso senza difficoltà, ma è rimasto il danno alla cromatura del rullo.

Evidentemente la miscela di polvere, sporcizia e un po’ di umidità ha aggredito il metallo proprio in corrispondenza del contatto con la pallina di teflon. Inutile – mi sono detto – agire ulteriormente. Devo ancora valutare se utilizzare dei prodotti specifici per la pulizia del metallo, ma non essendo compromesso né l’utilizzo né l’estetica, per ora lascerò stare.

Un particolare, segno del perfezionismo dietro al lavoro di design e sviluppo della NeXT: il connettore proprietario del mouse riporta il logo dell’azienda, suggerendo all’utente di rivolgerlo verso l’alto per avere il corretto inserimento nella tastiera. Finezze alla Jobs, potremmo dire.

Osservando con attenzione il connettore, mi sono accorto che il pin centrale è leggermente storto. Vista la brutta esperienza con la tastiera e visto che questo leggero difetto non pregiudica né il collegamento elettrico né la funzionalità della periferica, anche in questo caso ho deciso di lasciare le cose come stanno e dunque di non intervenire.