domenica 13 marzo 2016

RDI/Tadpole SPARCLE 500 : Installare Debian.

Iniziamo questo post dicendo subito che se volete provarci e ci riuscite dovete dirmi come avete fatto perchè io non ne sono venuto a capo.
Per prima cosa quando si installa linux su un sistema SPARC che usa grafica ATI troverete sempre le solite cose, che evidentemente funzionano con tutte le macchine SPARC, esclusi i portatili della defunta RDI/Tadpole.

In partica al boot dovete aggiungere questi parametri, uno o l'altro :
video=atyfb:1024x768@60
video=atyfb:off
il primo dovrebbe permettervi di usare il framebuffer e quindi il classico installatore Debian, mentre il secondo vi forza ad usare la console.
La prima opzione ha sempre l'unico effetto di visualizzare sul monitor le videate in maniera talmente distorta da rendere impossibile la lettura di quanto appare a video, cambiando la frequenza si va di solito in "OUT OF SYNC".
Considerando che il problema lo fa con un banale monitor LCD che supporta al massimo 1024x768 credo che il problema non sia il monitor ma la scheda video ATI integrata.
La seconda opzione che disabilità il frame buffer funziona solo con Debian Lenny con kernel 2.6.26, tutte le versioni successive infatti si bloccano visualizzando questa riga come ultimo messaggio a video :
console [tty0] enabled, bootconsole disabled
presumo che vada solo in seriale, e la seriale è una di quelle porte che non ci sono su questo portatile, che fortuna vero ?
Con Lenny invece l'opzione fa si che la console sia gestita dalla PROM, però, perchè c'è sempre un però una volta avviato il kernel la tastiera del portatile non funziona più.
Riavvio e questa volta attacco una tastiera USB, devo però usare quella del portatile per settare i parametri del kernel all'avvio di SILO perchè quella USB non è utilizzabile, ma lo diventa una volta avviato il kernel linux.
Un'altro parametro da passare al kernel in fase di installazione è questo :
DEBIAN_FRONTEND=text
se non lo fate verrà usato il frontend standard basato su newt che però se gestito dalla console PROM risulta inutilizzabile in quanto è tutto in bianco e nero e non si capisce dove sia posizionato il cursore, la modalità text invece fa si che l'installer comunichi con voi facendo domande e attendendo risposte da tastiera, di solito indicando S per SI o N per NO o numeri che indicano una delle opzioni offerte.
In questo modo sono riuscito a fare una installazione minimale di linux, ma al primo riavvio mi accorgo subito di un problema piuttosto serio e cioè il kernel non riconosce il chip RTC, l'orologio di sistema e quindi si perde la data e l'ora.
Installo il pacchetto ntp in modo che si aggiorni in automatico la data e l'ora però ad ogni riavvio viene fatto il controllo del file system perchè si accorge che la data sui file è nel futuro, già perchè il controllo viene fatto prima che ntp aggiorni la data e l'ora e in fase di avvio non trovando /dev/rtc la data per il sistema è sempre il fatidico 1 gennaio 1970.
Non mi perdo d'animo e modifico il sources.list per aggiornare a Squeeze.
Dopo aver aggiornato tutto il sistema quando riavvio con il kernel 2.6.32 di Squeeze mi ritrovo il problema che si abilità la console tty0 e quindi non ho più nulla video, quello che è peggio è che il sistema sembra bloccato perchè se provo a pingare la macchina questa non risponde.
Spengo di brutto e all'avvio scelgo il vecchio kernel e scopro che la scheda di rete fa pure i capricci e non viene attivata, stacca il cavo e riattacca il cavo e torna a funzionare ..... vabbè riproviamo con il nuovo kernel e succede la stessa cosa .... forse non passa alla console seriale quando appare quel messaggio ma si blocca e basta.
Riavvio ancora con il vecchio kernel, e visto che sono in vena aggiorno a Wheezy, al termine riavvio con il kernel 3.2 sperando in chissà cosa ed infatti tutto come prima, stesso messaggio a video e PC praticamente bloccato, nonostante abbia impostato IP statico e abilitato SSH non pingo, riavvio con il kernel di Lenny e trovo la scheda di rete morta, che resuscita dopo aver tolto il cavo.
In conclusione Lenny è l'unica versione che si installa ma con il problema del clock non riconosciuto diventa inutile, le versioni successive sembra che vadano ancora peggio e onestamente non capisco se si blocchi proprio il kernel o cosa possa essere che non funziona.
Diciamo che Linux su questo portatile probabilmente non ci girerà mai, tornerò su OpenBSD che fino ad ora è l'unico sistema operativo moderno che funzioni su questo hardware, però magari prima provo NetBSD che dalla versione 7 sembra aver risolto il problema per cui non rilevava la tastiera di questo portatile.

sabato 12 marzo 2016

RDI/Tadpole SPARCLE 500 : "The IDPROM contents are invalid"

Tra l'hardware più o meno funzionante ho anche questo particolarissimo portatile con cpu UltraSPARC IIe a 500Mhz sul quale è installato OpenBSD 5.6 che un bel giorno ha pensato bene di trasformarsi in un ingombrante fermacarte.

Partiamo dall'inizio e cioè quando accendendolo mi accorgo che il display non visualizza nulla, ma non solo, sembra che anche il disco non lavori molto dopo che il relativo led ha lampeggiato per poco, troppo poco perchè il sistema abbia fatto il boot.
Visto che vi è installato OpenBSD, con IP statico e server ssh attivo provo a collegarmi da un altro PC ma nulla da fare, anche il ping non da segni di vita, quindi sembra che non si sia avviato il sistema operativo.
Quindi forse non è solo un problema di display ma c'è qualcosa di più serio, per prova aggancio un monitor LCD alla presa VGA del portatile e lo riaccendo e con il monitor esterno almeno vedo cosa succede e il computer si blocca fermandosi al prompt OK di OBP dopo aver visualizzato il seguente messaggio :
The IDPROM contents are invalid
digitando il comando :
boot disk
si avvia OpenBSD ma vedo subito che la data di sistema è andata in cavalleria, ma poi si sistema attraverso il servizio ntp e il sistema sembra funzionare.
Una veloce ricerca in rete e scopro, che come per i normali PC, vi è una batteria che mantiene la memoria nvram e quando questa è in esaurimento si incasina il contenuto della IDPROM ed esce questo errore.
Quindi un problema è il display e l'altro la batteria, per il primo non credo di poterci fare nulla al momento ma per il secondo il discorso è diverso. 
Fortunatamente questo portatile è molto semplice da smontare, una volta capovolto basta rimuovere batteria, lettore DVD, sportellini della memoria e del disco e con esso si rimuove anche il disco e poi via a rimuovere tutte le viti, alla fine si solleva la base inferiore e ... tadà salta subito all'occhio questa piccola batteria gialla :
rimuoverla è molto semplice, acquistarne un'altra un pò meno perchè non si trovano così facilmente, ma per fortuna esiste ebay, e tempo una decina di giorni mi è arrivata la batteria nuova da un rivenditore inglese.
Dopo aver montato la batteria, riassemblato tutto e riacceso il portatile il problema ovviamente si ripresenta uguale con la differenza che nel banner che viene visualizzato in fase di boot l'indirizzo MAC della scheda di rete è ora tutto a 0 così come l'host ID.
Ma come si imposta l'IDPROM in modo che risulti valido ? beh qui è stata dura perchè anche se in rete si trova qualcosa ci sono purtroppo alcune differenze rispetto a quanto fattibile su questo portatile, differenza nell'implementazione della OBP a quanto pare.
Per iniziare vediamo qualcosa di più sulla IDPROM, che è una sequenza di 16 caratteri, di cui l'ultimo è di controllo, uno XOR sui primi 15 bytes.
Il formato è questo :
1 byte : indica il tipo di macchina SUN
2 byte : è il 1^ byte dell'host ID
3-8 bytes : è l'indirizzo MAC della scheda
9-12 bytes : è una data ma può anche essere una sequenza di 0
13-15 bytes : sono il 2^, 3^ e 4^ byte dell'host ID
16 byte : checksum
adesso che sappiamo da cosa è composto l'IDPROM bisogna trovare un modo per impostare questi valori.
Qui di seguito riporto la procedura che ho seguito io, e che mi ha portato ad avere una IDPROM valida, tenete presente che come indirizzo MAC e host ID potete metterci quello che vi pare, meglio sarebbe indicare i dati corretti se ve li siete segnati da qualche parte o li potete recuperare in qualche modo, almeno l'indirizzo MAC, io purtroppo non ho trovatto uno straccio di adesivo/scritta che riportasse questo valore.
Procediamo, al prompt di OBP digitiamo :
show-devs
e verrà visualizzato un elenco dei componenti del sistema, cercate quello che indica la eeprom, e poi spostatevici come se fosse una directory con :
cd /pci@1f,0/ebus@c/eeprom@1,0
a questo punto digitate il comando :
.properties
e verrà visualizzata una serie di informazioni, tra cui il tipo di NVRAM, che dovrebbe essere mk48t59 e l'indirizzo di memoria al quale si trova.
Nel mio caso l'indirizzo è FFFCE000, l'offset dove è memorizzata la IDPROM è 1FD8, quindi l'indirizzo della IDPROM è FFFCFFD8.
Per visualizzare il contenuto della memoria si usa questo comando :
FFFCFFD8 10 dump
che in pratica visualizza 16 bytes dall'indirizzo indicato, come avrete notato si usa l'esadecimale quindi quel 10 è in esadecimale e indica 16 bytes.
Una precisazione, l'offset lo ho trovato eseguendo il dump della memoria dall'indirizzo base FFFCE000 fino a che ho trovato i byte della IDPROM, questo prima di togliere la batteria perchè in seguito sono diventati tutti zeri.
Ciò significa, visto che la IDPROM era già invalida, che l'indirizzo MAC e l'host ID, quasi certamente, non fossero valori corretti.
Ora per inserire i valori nella IDPROM bisogna scrivere nelle relative posizioni di memoria, la procedura è la seguente :
01 FFFCFFD8 c!
A0 FFFCFFD9 c!
90 FFFCFFDA c!
08 FFFCFFDB c!
30 FFFCFFDC c!
03 FFFCFFDD c!
45 FFFCFFDE c!
00 FFFCFFDF c!
54 FFFCFFE0 c!
94 FFFCFFE1 c!
64 FFFCFFE2 c!
10 FFFCFFE3 c!
00 FFFCFFE4 c!
9A FFFCFFE5 c!
60 FFFCFFE6 c!
18 FFFCFFE7 c!
la sequenza è per primo il byte da scrivere, seguito dall'indirizzo e poi il comando per scrivere un byte ( c! ).
In base a quanto detto relativamente al contenuto della IDPROM abbiamo messo 01 come identificativo dell'hardware, anche se non è corretto.
Per l'indirizzo MAC abbiamo usato 90:08:30:03:45:00, che non esiste, per l'host ID A0009A60, per la data 54946410 che indica il 28 settembre 1971.
Il checksum calcolato è 18, una volta resettato il sistema con il comando :
reset-all
la IDPROM è risultata valida, anche se i dati inseriti non lo sono formalmente, e il sistema si è avviato in maniera corretta.  

In realtà, almeno con l'OBP presente su questo portatile, è possibile usare il comando set-host-id, che imposta appunto l'host ID e calcola il checksum e quindi genera una IDPROM valida senza dover andare a scrivere byte nella memoria, operazione piuttosto delicata.
Onestamente non mi è molto chiaro come vada usato, quello che ho dedotto è che al prompt bisogna indicare una sequenza di caratteri esadecimali, che dovrebbero essere almeno 6 e dovrebbero essere l'ultima parte dell'indirizzo MAC della scheda di rete, infatti una volta messo sullo stack questo valore si può digitare il comando set-host-id seguito da reset-all e al riavvio vedrete che l'indirizzo MAC della scheda è stato modificato con i caratteri indicati, che corrispondo anche agli ultimi 3 bytes dell'host ID.

In ogni caso la parte fondamentale è il valore di checksum, è solo quello che se sballato fa bloccare il boot e riporta il messaggio di errore, certo sarebbe cosa buona e giusta aver potuto recuperare i valori originali o almeno quello della scheda di rete .... ma così è andata, e alla fine è andata ancora bene.

sabato 5 marzo 2016

OpenBSD 5.8 su PowerBook G4

Come ho già avuto modo si scrivere in altri post gli ultimi kernel linux per PowerPC hanno il driver nouveau buggato che fa si che lo schermo del portatile risulti completamente nero, almeno questo fino al kernel 4.2 l'ultimo che ho provato, adesso dovrebbe esserci il 4.3, ma io ho avuto la temerarietà di provare a installare un BSD per macppc.
Inizialmente ho provato con NetBSD, ma nonostante abbia fatto due CD diversi non sono riuscito nemmeno a fare il boot, quindi ho provato con OpenBSD.
In fase di installazione potevo scegliere tra un layout del disco in HFS o MBR, in realtà HFS è un formato di file system per cui è un pò fuorviante come cosa, ma visto che pensavo di installare solo OpenBSD come unico OS ho optato per MBR, poi la procedura di installazione di OpenBSD è semplice e lineare e non ho incontrato particolari difficoltà.
Al riavvio ho avuto la prima brutta sorpresa in quanto il notebook non avvia il sistema operativo appena installato.
Ho riavviato nuovamente tenendo premuti i tasti "alt"+"mela"+"O"+"F" per accedere al prompt di OpenFirmware, il BIOS dei vecchi Mac per intenderci.
A proposito io lo chiamo tasto "alt" perchè c'è questa scritta e sotto un simbolo che non interpreto, ma credo che in gergo Mac questo tasto abbia un nome specifico.
Tornando a noi, al prompt di OF ( OpenFirmware in breve ), digito la sequenza :
boot hd:,ofwboot /bsd
e così si avvia OpenBSD, questa sequenza si può impostare poi come default in OpenFirmware, cosa che al momento non ho fatto, cosa che per essere pignoli l'installazione di Debian presumo faccia in automatico perchè il problema non si era presentato a suo tempo, anche in quel caso linux era l'unico OS installato sulla macchina.
I problemi però sono solo all'inizio, infatti non è possibile, non ci sono riuscito io almeno, a impostare la tastiera con layout italiano, il comando provato è stato :
wsconsctl keyboard.encoding=it
 che rispondeva con un bel INVALID ARGUMENT, controllando l'output di :
kbd -l
viene riportato anche it come layout di tastiera, la cosa triste, o ridicola se volete, è che provando a settare la tastiera in tedesco o spagnolo funziona.
Immagino che la considerazione del Bel Paese anche in informatica non sia migliore di quella in politica.
Procedo con l'installazione di XFCE in modo da poter avere un DE leggero e funzionale, e vedere se funziona la grafica ovviamente.
pkg_add xfce
dopo il download di un bel pò di pacchetti viene installato XFCE in versione 4.12, e lo avvio da shell con il comando :
startxfce
e si avvia il DE senza problema alcuno a livello grafico, questo mi fa piacere lo ammetto.
Purtroppo anche da XFCE non sono riuscito a configurare la tastiera in maniera tale da renderla usabile, incredibilmente anche provando i vari modelli "apple" e con layout italiano non si riesce ad ottenere una mappatura che rispecchi la tastiera reale del notebook.
A questo punto ho ritenuto inutile insistere oltre, non sono uno sfegatato di OpenBSD e in ogni caso mi sembra piuttosto indietro rispetto a linux come supporto per questo notebook.
Quindi reinstallo linux ? ... forse, adesso ho rimesso su il vecchio Mac OSX 10.5.8 più che altro per ricordarmi come funziona con OSX, ho pensato anche di considerare di ripartizionare il disco in modo da installare anche Debian, così da avere entrambi i sistemi operativi, ma il disco è di soli 80 giga e al momento dovrei lasciare a OSX almeno 50 giga e quindi solo 30 a Debian, che per un'installazione minimale dovrebbero bastare.
Vedremo, voglia e tempo permettendo.