Para empezar, necesitamos un Cross Toolchain, que serian las herramientas necesarias para poder compilar un programa escrito en C, en una máquina con otra arquitectura distinta a ARM, en mi caso es Fedora y la arquitecutra i686. Y el móvil es un HTC, que como la mayoria de los smartphones, lleva un procesador ARM.
Primero, descargamos el Cross toolchain.
# cd /etc/yum.repos.d/
# wget http://ftp.linux.org.uk/pub/linux/arm/fedora/cross/cross.repo
# yum install armv5tel-redhat-linux-gnueabi-gcc
Ahora ya tenemos el compilador que vamos a usar para compilar nuestro código en C, que posteriormente ejecutaremos en el móvil.
(Este es el código que vamos a compilar)
#include "stdio.h"
int main (int argc, char* argv[])
{
printf("Hello World\n");
return 0;
}
Compilamos:
$ armv5tel-redhat-linux-gnueabi-gcc -static helloworld.c -o hola
$ file hello
(Nos saldrá esto: hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.14, not stripped)
Ahora vamos a pasarlo al aparato en el que lo vamos a ejecutar, en este caso es un smartphone, que tiene android. Así que instalamos Android Tools desde los repositorios de fedora.
$ sudo yum install android-tools
Ahora podremos entrar al terminal escribiendo.
$ adb shell
$ cd sdcard
$ mkdir ProgramasC
$ exit
$ adb push hola /sdcard/ProgramasC/hola
(Aquí teneis que poner la ruta donde querais tener el ejecutable)
ahora podeis comprobar si lo podeis ejecutar.
$ adb shell
$ cd sdcard/ProgramasC
$ chmod 777 hola
$ ./hola
(Si no lo podemos ejecutar, comprobaremos con mount, a ver si tiene puesta la opción de noexec)
$ mount | grep -i sdcard
Si tiene noexec, tendremos que hacer un remount poniendola en exec.
$mount -o remount,exec -t vfat /dev/block/vold/179:1 /mnt/sdcard
(Aquí tendreis que poner el lugar donde este montada vuestra tarjeta SD)
Una vez hecho esto, ya podreis ejecutar vuestro código escrito en C en vuestro ARM :)
jueves, 15 de diciembre de 2011
miércoles, 7 de diciembre de 2011
Instalar Wireshark
Primero, instalamos wireshark.
$ sudo yum install wireshark
Ahora añadimos nuestro usuario al grupo wireshark, para que no tengamos que ejecutar siempre wireshark como root.
$ sudo nano /etc/group
Buscamos el grupo wireshark y añadimos nuestro usuario, quedando algo así:
wireshark:x:991:manu
(siendo manu el usuario)
$ chgrp wireshark /usr/sbin/dumpcap
$ chmod 4750 /usr/sbin/dumpcap
Ahora cerramos sesión, y volvemos a entrar. Y ya podemos ejecutar wireshark con nuestro usuario.
$ sudo yum install wireshark
Ahora añadimos nuestro usuario al grupo wireshark, para que no tengamos que ejecutar siempre wireshark como root.
$ sudo nano /etc/group
Buscamos el grupo wireshark y añadimos nuestro usuario, quedando algo así:
wireshark:x:991:manu
(siendo manu el usuario)
$ chgrp wireshark /usr/sbin/dumpcap
$ chmod 4750 /usr/sbin/dumpcap
Ahora cerramos sesión, y volvemos a entrar. Y ya podemos ejecutar wireshark con nuestro usuario.
Suscribirse a:
Entradas (Atom)