je me suis offert une Liveradio Vintage (http://boutique.orange.fr/ESHOP_mx_orange/?tp=F&ref=30820&ID(...)
c'est une radio web se connectant en wifi ou ethernet pouvant aussi lire des mp3 d'un serveur uPNP ou d'une clef USB.
En fouillant dans les forums, j'ai trouvé une ancienne mise à jour destinée à cette radio web.
Ce n'est normalement pas dispo. en téléchargement puisqu'elle se met à jour directement à partir des serveurs Orange.
Ce fichier compressé "firmware" contenait en fait:
- une image kernel uboot: u-boot legacy uImage, linux-2.6.19, Linux/ARM, OS Kernel Image (Not compressed) ...
- une image rootfs: Linux Compressed ROM File System data, little endian ...
- une doc. expliquant la méthode de mise à jour par clef USB.
En montant cette image rootfs en en "loop", j'ai pu avoir accés au contenu du filesystème de la Liveradio.
Malheureusement, aucun daemon telnet ou ssh permettant d'accéder par le réseau n'est installé (d'ailleur nmap ne m'a retourné aucun port ouvert).
Je me suis mis dans l'idée de modifier cette image pour inclure un daemon sshd "dropbear" en partant de zéro puisque je ne l'ai jamais fait.
J'ai téléchargé buildroot pour pouvoir compiler en arm (processeur AT91SAM9260 pour être précis d'aprés les info. trouvées)
Choix dans menuconfig
BR2_arm=y
BR2_generic_arm=y
BR2_TARGET_AT91SAM9260=y
J'ai inclus "dropbear" dans les packages et lancé la compilation que j'ai relancée uniquement pour le compiler en "static".
j'obtiens bien un binaire arm:
$ file dropbear
dropbear: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped
Ma première question concerne le type de fichier: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped
en comparant avec le binaire de busybox inclus dans l'image, j'ai:
# file bin/busybox
bin/busybox: ELF 32-bit LSB executable, ARM, version 1, statically linked, for GNU/Linux 2.6.9, stripped
il y a t'il une compatibilité de fonctionnement puisque le type de binaire semble être légérement différent (le SYSV entre autre) ?
dropbear: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped
busybox: ELF 32-bit LSB executable, ARM, version 1, statically linked, for GNU/Linux 2.6.9, stripped
ma deuxième question concerne l'image rootfs du firmware.
j'ai voulu copié les fichiers dans un autre répertoire (puisque je ne peux écrire dans un montage de type "loop" !
mais j'ai trouvé quelques incohérences avec des liens hard:
J'ai plusieurs fichiers (dont les devices) ou répertoirse dont leur inode pointe sur "/boot" (inode=1) et bien sur ma copie ne fonctionne pas !
L'inode "1" a t'il une signification ?
Aucune copie cp/tar ne fonctionne avec ces liens hard, Quelle incidence sur l'image que j'ai copié ?
# l -i /mnt/img/
total 12K
340 drwxr-xr-x 1 root root 784 1 janv. 1970 bin/
1 drwxr-xr-x 1 root root 0 1 janv. 1970 boot/
1124 drwxr-xr-x 1 root root 1,2K 1 janv. 1970 dev/
2280 drwxr-xr-x 1 root root 832 1 janv. 1970 etc/
3556 drwxr-xr-x 1 root root 1,1K 1 janv. 1970 lib/
2282728 lrwxrwxrwx 1 root root 11 1 janv. 1970 linuxrc -> bin/busybox*
4664 drwxr-xr-x 1 root root 84 1 janv. 1970 mnt/
4748 drwxr-xr-x 1 root root 16 1 janv. 1970 opt/
7252 drwxr-xr-x 1 root root 16 1 janv. 1970 proc/
1 drwxr-xr-x 1 root root 0 1 janv. 1970 root/
7308 drwxr-xr-x 1 root root 704 1 janv. 1970 sbin/
1 drwxr-xr-x 1 root root 0 1 janv. 1970 sys/
1 drwxr-xr-x 1 root root 0 1 janv. 1970 tmp/
8012 drwxr-xr-x 1 root root 24 1 janv. 1970 tsrpm/
8036 drwxr-xr-x 1 root root 124 1 janv. 1970 usr/
8484536 lrwxrwxrwx 1 root root 8 1 janv. 1970 var -> /tmp/var
# l -i /mnt/img/dev
total 1,1M
1 crw-rw-rw- 1 root root 206, 0 1 janv. 1970 analogin
1 crw-rw-rw- 1 root root 5, 1 1 janv. 1970 console
1 crw-rw-rw- 1 root root 14, 3 1 janv. 1970 dsp
1 crw-rw-rw- 1 root root 204, 0 1 janv. 1970 fmtuner
1 crw-rw-rw- 1 root root 1, 7 1 janv. 1970 full
1 crw-rw-rw- 1 root root 202, 0 1 janv. 1970 gpios
1 crw-rw-rw- 1 root root 205, 0 1 janv. 1970 infrared
1 brw-rw---- 1 root disk 1, 250 1 janv. 1970 initrd
...
# l -i /mnt/img/etc
total 29K
621228 -rwxr-xr-x 1 root root 1,5K 1 janv. 1970 aliases*
621908 -rwxr-xr-x 1 root root 1,5K 1 janv. 1970 bashrc*
622608 -rwxr-xr-x 1 root root 686 1 janv. 1970 csh.cshrc*
623016 -rwxr-xr-x 1 root root 513 1 janv. 1970 csh.login*
1 -rwxr-xr-x 1 root root 0 1 janv. 1970 environment*
1 -rwxr-xr-x 1 root root 0 1 janv. 1970 exports*
623296 -rwxr-xr-x 1 root root 59 1 janv. 1970 filesystems*
Sinon, une autre solution pour avoir un accés root à la Liveradio sans l'ouvrir car encore sous garantie ?
merci d'avance pour toute aide,
# Idée.
Posté par Grunt . Évalué à 9.
Y'a peut-être des modifications qui ont été faites, entre temps.
THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.
[^] # Re: Idée.
Posté par khivapia . Évalué à 6.
[^] # Re: Idée.
Posté par domos . Évalué à 1.
Mais à part le noyau Linux, busybox et quelques binaires pour le wifi par exemple, tout l'applicatif de la Liveradio est géré par des programmes propriétaires installés dans /opt/awox.
Je suppose que pour ces programmes, ils ne sont pas tenus de fournir les sources ?
Personne n'aurai l'info concernant la compatibilité de ces 2 types de baire ?
Le but étant d'exécuter le premier compilé par mes soins sur la Liveradio où je trouve le 2ième type.
ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped
ELF 32-bit LSB executable, ARM, version 1, statically linked, for GNU/Linux 2.6.9, stripped
merci,
# Intéressant
Posté par Tony Ducrocq . Évalué à 1.
Merci pour l'info.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.