DGA4130 Compilazione NATIVA in C per ARM

  • 2 Risposte
  • 4092 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline uomoukko

  • Membro Anziano
  • ***
  • 121
    • github.com/uomoukko
DGA4130 Compilazione NATIVA in C per ARM
« il: 19 Febbraio 2018, 16:01 »
Ciao, amici!.
Ecco i passi necessari per compilare nativamente sul modem DGA4130.
Procurarsi innanzitutto una chiavetta usb GRANDE che verra' formattata ext3/ext4
Come dite? non sapete dove trovare il programma per formattare da Windows?
Scaricatevi il Mini tool partition wizard eccovi il link:  https://www.partitionwizard.com/free-partition-manager.html

Adesso inserite la chiavetta che verra' riconosciuta e montata automaticamente dal sistema. Verifichiamo!
Nel mio caso e' inserita sulla porta 1 quindi vedrete /dev/sda1
Codice: [Seleziona]
utente@modemtim:~$ mount
/dev/sda1 on /tmp/run/mountd/sda1 type ext4 (rw,relatime,data=ordered)

Bene, Adesso dovremo procurarci la toolchain nativa mini-native-armv4l.tar.bz2
Non sapete dove trovarla? eccovi il link:  https://www.uclibc.org/downloads/binaries/0.9.30.1/

A questo punto inviamo al modem il mini-native-armv4l.tar.gz
Possiamo farlo copiando mini-native-armv4l.tar.gz  in una chiavetta usb
e poi da modem copiandolo dalla cartella /tmp/run/mountd/sda1
Oppure più semplicemente usando scp:
Assumendo che il vostro modem si trovi all'indirizzo 192.168.1.1
(non dimenticate il : finale, e' la chiave di tutto)
Codice: [Seleziona]
utente@superfast:~$ scp mini-native-armv4l.tar.gz 192.168.1.1:

Ci colleghiamo al modem per estrarre il pacchetto
Codice: [Seleziona]
utente@superfast:~$ ssh 192.168.1.1
utente@modemtim:~$ sudo ash
root@modemtim:/home/utente#

Ora ci portiamo nella cartella della nuova radice e dezippiamo
Per estrarre non userò il comando tar xvaf perché non riconosce i files bz2
invece userò il programma bzcat che riversa l'output al tar (grazie della correzione, @shdf)
(per convenienza la rinomino la cartella creata come m)
Codice: [Seleziona]
root@modemtim:/home/utente# cd /tmp/run/mountd/sda1
root@modemtim:/tmp/run/mountd/sda1# mv /home/utente/mini-native-armv4l.tar.gz .
root@modemtim:/tmp/run/mountd/sda1# bzcat mini-native-armv4l.tar.bz2 | tar -xvf -
root@modemtim:/tmp/run/mountd/sda1# mv mini-native-armv4l m
root@modemtim:/tmp/run/mountd/sda1# cd m
root@modemtim:/tmp/run/mountd/sda1/m# ls
bin   dev   etc   lib   proc  sbin  sys   tmp   usr
Come potete osservare abbiamo un secondo albero simile a quello che sta in /

Dobbiamo preparare l'ambiente ristretto copiando il file delle password
perché una volta dentro il chroot non potremo accedere a quello originario
attenti che il percorso destinazione e' relativo, quindi NON scrivere /etc
nella destinazione al posto di etc
Codice: [Seleziona]
root@modemtim:/tmp/run/mountd/sda1/m# cp /etc/passwd etc
root@modemtim:/tmp/run/mountd/sda1/m# cp /etc/shadow etc
root@modemtim:/tmp/run/mountd/sda1/m# cp /etc/group etc

Dobbiamo creare la home directory dentro la quale compileremo
(al posto di utente e gruppo inserite il vostro nome utente/ gruppo)
(anche stavolta attenti a non creare cartelle nel posto sbagliato
es. NON scrivere mkdir /root)
Codice: [Seleziona]
root@modemtim:/tmp/run/mountd/sda1/m# mkdir root
root@modemtim:/tmp/run/mountd/sda1/m# mkdir home
root@modemtim:/tmp/run/mountd/sda1/m# mkdir home/utente
root@modemtim:/tmp/run/mountd/sda1/m# chown utente.gruppo home/utente

E ora viene il bello, facciamo un chroot che ci taglierà fuori dal sistema principale
ma ci permetterà di compilare i nostri programmi.
Subito dopo cambierò utente in modo da portarmi in condizione
di utente normale col quale non posso fare danni
Codice: [Seleziona]
root@modemtim:/tmp/run/mountd/sda1/m# chroot /tmp/run/mountd/sda1/m ash
root@modemtim:/# su utente
utente@modemtim:~$

Ora creiamo un semplice programmetto
Codice: [Seleziona]
utente@modemtim:~$ cat >test.c
#include <stdio.h>
main() { printf("ciao\n"); }
control-d

Lo compiliamo banalmente
Codice: [Seleziona]
utente@modemtim:~$ cc test.c
utente@modemtim:~$ a.out
ciao

Usciamo prima dalla shell di utente premendo control-d
e poi dall'ambiente chroot premendo control-d
Ci ritroveremo dove eravamo partiti, nell'ambiente non chroot. superuser.
Usciamo anche dalla shell di root premendo control-d
Codice: [Seleziona]
utente@modemtim:~$ control-d
root@modemtim:/home/utente# control-d
root@modemtim:/tmp/run/mountd/sda1# control-d
utente@modemtim:/tmp/run/mountd/sda1$ cd m/home/utente
utente@modemtim:/tmp/run/mountd/sda1/m/home/utente$ a.out
ciao
E come potete vedere il programma continua a funzionare.
Adesso potete compilarvi nativamente ogni tipo di programma da soli !!

Se poi vorrete usare i programmi del toolchain nuovo senza chroot potrete aggiungere al .profile
export PATH=$PATH:/tmp/run/mountd/sda1/m/bin

Se la mia guida e' stata chiara, scrivetelo. Se manca qualcosa, notate delle sviste
o non avete capito un passaggio, scrivetemelo e vedrò di chiarire.

N.B. tutti i link citati in questa guida si riferiscono a programmi gratuiti.



« Ultima modifica: 19 Febbraio 2018, 21:25 da uomoukko »

Offline shdf

  • Esperto
  • ****
  • 981
  • Sesso: Maschio
Re:DGA4130 Compilazione NATIVA in C per ARM
« Risposta #1 il: 19 Febbraio 2018, 19:26 »
https://www.uclibc.org/downloads/binaries/0.9.30.1/
C'è un problema, però il modem in questa fase non riconosce i files bz2
:o
Ciao, sei sicuro ?
per installare la gui di Ansuel non usiamo un file bz2 ? ???
Codice: [Seleziona]
bzcat /tmp/GUI.tar.bz2 | tar -C / -xvf -
« Ultima modifica: 19 Febbraio 2018, 19:31 da shdf »
Scusa, sono francese non parlo molto bene italiano
DGA4130 sbloccato firmware 2.2.0 + GUI TIM Unlocked
DGA4132 sbloccato firmware 2.2.0 + GUI TIM Unlocked

Offline -Mirco-

  • Global Moderator
  • Esperto
  • *****
  • 1832
  • Sesso: Maschio
  • "Non esiste curva in cui non si può superare"
    • Ilpuntotecnicoeadsl
Re:DGA4130 Compilazione NATIVA in C per ARM
« Risposta #2 il: 19 Febbraio 2018, 22:41 »
Complimenti @uomoukko   :clap: guida molto chiara, ottimo lavoro!
"Non esiste curva in cui non si può superare"
Ayrton Senna