[Day Striders] Una volta quì era tutta campagna

Ore 18:29 ~ Io gioco ad Ikaruga, mentre GODS gioca a Ninja Baseball Batman.

E lo sapete perchè? Perchè, dopo una settimana di compilazioni finalmente qualcosa funziona. E perchè non ce la facevamo più.

L'immagine per l'idea di un personaggio per una campagna o cose così

Ed allora, per festeggiare, beccatevi quest'illustrazione. Vedete se riuscite a sfruttarla per un personaggio.

L'immagine per l'idea di un personaggio per una campagna o cose così

Ma, sì, dai, beccatevi anche l'idea per un NPC...

Vabbeh, a parte la pubblicazione d’immagini a cazzo nella speranza che alcuni di voi giochino a giochi di ruolo, passiamo a recapitolare rapidamente quello che è stato fatto oggi.

Nell’articolo precedente ho parlato di come abbiamo fatto (pardon, di come ha fatto GODS, alla fine, perchè sul mio PC crosstool si è RIFIUTATO di compilare qualunque combianazione di GCC, quindi sto usando il suo) a creare un cross-compilatore per la piattaforma che stiamo usando.

Beh, ieri io ho passato tutta la giornata a provare a crearmi una toolchain mentre GODS ha smadonnato in tutte le maniere per compilare Apache, un server Web, con scarsi risultati a sua volta. Io, usando la sua toolchain, invece, sono riuscito a produrre un Lighthttpd.

Ieri eravamo un bel po’ abbattuti, per non parlare del fatto che la sera ci siamo guardati assieme a War “Bitch Slap”. Un “capolavoro”, eh, sul serio.

Come lo può essere, chessò? “Ninja contro Alieni” oppure “Robot-Geisha”…

Oggi, però, non poteva andare come ieri, perciò ci abbiamo dato dentro come dei bastardi (NO HOMO). Vi ricordate la metafora di noi due vestiti da esploratori di fine 1800? Beh. Oggi abbiamo abbandonato le buone maniere ed abbiamo deciso che le cose andavano fatte.

Pausa di un secondo, per favore…

Uno screenshot di Ikauruga per Nintendo Game Cube

Vorrei piangeste di gioia assieme a me. Sono finalmente riuscito a farlo girare sul mio PC. Adesso non solo posso giocarci sull'XBOX ma anche quì. 😀

A-HEM. Ok, fine della pausa. Torniamo a quello che abbiamo fatto oggi.

Come vi ho già detto fare cross compilazione è un’operazione delicata e lunga.

Ed oggi abbiamo fatto tutto, ma proprio tutto il possibile perchè funzionasse tutto facendo le cose in maniera pulita. E se non andavano… Andavamo di Hax. Ed ha funzionato. Come direbbe GODS:

Impossiboru.elf

In pratica, quello che siamo riusciti a compilare/far funzionare come dei BOSS oggi è stato:

  • Libz, libreria di compilazione usata quasi dappertutto
  • Libpcre: libreria per usare le regular Expressions “Perl Compatibili”
  • OpenSSL: Opensource Toolkit per SSL/TSL. Librerie per la sicurezza delle comunicazioni via Internet
  • OpenSSH: Ci serviva soprattutto per scp e sftp, ovvero copia di files e FTP sicuri
  • Dropbear: Server SSH ultraleggero e compatibile con sftp
  • LightHttpd: Server HTTP ultraleggero con Modrewrite (il mod preferito da GODS XD)
  • SQLite: Server SQL ultraleggero a sua volta. Integrato in PHP, ma avercelo separato non fa mai male.

La prossima cosa da fare sarà compilare PHP5, e lì saranno bestemmie, perchè il progetto è ciccionissimo!

“Perchè ci è servita tutta questa roba?” vi chiederete (O forse no, ma beccatevi comunque la spiegazione).

Beh, fondamentalmente costruire tutte queste applicazioni richiede un casino di procedure, di trial and error, di trasferimenti di file e cose così, perciò volevamo accelerare tutta la procedura.

Prima di oggi, ogni volta che finivamo di compilare un’applicazione, una libreria o queste cose, dovevamo spegnere tutta la board, smontare la memoria, montarla sul lettore, installare, riavviare il sistema sulla ML310, aspettare che comparisse qualcosa via seriale, testare.

Se c’erano errori, bestemmiare. Tantissimo. Come se non l’avessimo fatto abbastanza per compilarla, l’applicazione. E, una volta finito il repertorio, ricominciare con la procedura.

Uno degli obiettivi principali, comunque, da sempre, era quello di far funzionare Dropbear, che ci avrebbe permesso di connetterci via SSH alla piattaforma attraverso Ethernet (invece che la lentissima Seriale), ed è anche stata la prima cosa che siamo riusciti ad ottenere.

Dopo aver trappolato oggi ci siamo chiesti “Ma scusa, perchè non montiamo la memoria VIA SSH, così da fare tutte le procedure d’installazione in remoto senza dover riavviare tutto ogni volta?”. Così abbiamo installato sshfs solo per scoprire che… Ha bisogno di sftp, che pensavamo Dropbear fornisse di base.

E INVECE!

Abbiamo scoperto che Dropbear è sftp compatibile, ma non lo fornisce, quindi bisognava compilarlo direttamente dal progetto OpenSSH. Il quale richiedeva OpenSSL. Il quale, a sua volta, richiedeva Libz. Quella Libz che è richiesta, ma disattivabile, da Dropbear e LightHttpd.

È stato così che abbiamo deciso di compilare anche quella libreria e quindi ricompilare tutto. Quì sto riassumendo, ma tutta questa roba ci ha richiesto l’intera giornata a causa di autoconfigurazioni bacate, automake che utilizzano applicazioni delle toolchain hard-codate, quindi anche se gli dicevamo di prendere le nostre usavano quelle di sistema e così via.

Dopo una giornata di Hack manuali, script che chiamano altri script, modifiche di variabili di sistema e così via siamo arrivati al risultato finale:

Poter montare ‘sta cazzo di Compact Flash via rete, così da poter fare:

sshfs root@192.168.1.1:/ /media/remote
cd /tmp/sqlite-autoconf-3070701/
make DISTDIR=/media/remote install

E vederci installato il server SQL direttamente sulla macchina a caldo, senza cazzate, per poi fare, sulla shell SSH:

sqlite3

E veder partire la comand line interattiva del server SQL. Cazzo sì.

Certo, ovviamente mancava l’ultima cazzata, ovvero i link sbagliati agli eseguibili (ovvero sftp-server era in /usr/local/libexec invece che in /usr/libexec), quindi giù di link simbolici in giro per il sistema target.

Quindi, di cose importanti, come ho già detto, manca:

  • Compilare e far girare PHP5
  • Fare in modo che Dropbear, LightHttpd e SQLite partano in automatico PRIMA del login (ovvero senza dover usare ogni volta la seriale per loggarsi e lanciarli a manina…)
  • Mettere su un NetHack/Rogue-like di qualche tipo

Si incomincia sul serio a vedere la fine. (DISSE Il Signor Jazzinghen prima di perdere tutte le immagini della Compact Flash)

E stasera Exalted! 😀 Cazzo sì!

Pubblicato il luglio 29, 2011, in La Storia Vera, Sgaggio Time! con tag , , , , , , . Aggiungi il permalink ai segnalibri. 3 commenti.

  1. … oppure un interpreter Brainfuck?

    Seriamente però, PHP è una chiavica, compilate una qualche implementazione di Scheme e fornite a Sgaggio un linguaggio degno del suo nome.

    Congratulazioni per il successo ottenuto, anche se egoisticamente devo dire che mi mancheranno le cronache delle vostre (dis)avventure in Sgaggiolandia. E ora la parte più divertente: documentare tutti gli hax che avete usato per arrivare a questo punto! XD

  1. Pingback: O quì sono tutti stronzi o io non ho capito nulla « NightCrawlers – Jazzinghen's Blog

Lascia un commento