Comstackdor para architecture LSB MIPS MIPS32 de 32 bits

Tengo un decodificador de TV en el que estoy experimentando actualmente:

enter image description here

Establecí una connection de console serial a través de un serial port ubicado en el tablero. Estoy intentando comstackr un simple ejecutable en C para ejecutar en este dispositivo, pero parece que no puedo encontrar la manera de hacerlo.

Intenté CodeSourcery, cross-compiler-mipsel y uClibc pero no funcionaron y en el posterior era muy confuso de build con sus opciones de configuration.

Aquí están los datos que pude recostackr sobre el sistema:

Una architecture de file de muestra:

apps-startup: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked (uses shanetworking libs), for GNU/Linux 2.6.12, stripped 

Información del sistema:

 tangox[/]# uname -a Linux tangox 2.6.22.19-40-sigma #3230 PREEMPT Thu Oct 3 15:54:23 IST 2013 mips GNU/Linux 

cpuinfo:

 tangox[/]# cat /proc/cpuinfo system type : Sigma Designs TangoX processor : 0 cpu model : MIPS 24K V7.12 FPU V0.0 Initial BogoMIPS : 332.59 wait instruction : yes microsecond timers : yes tlb_entries : 32 extra interrupt vector : yes hardware watchpoint : yes ASEs implemented : mips16 shadow register sets : 1 VCED exceptions : not available VCEI exceptions : not available SMP8XXX Chip ID : 8653 SMP8XXX Rev ID : 2 System bus frequency : 333000000 Hz CPU frequency : 499500000 Hz DSP frequency : 333000000 Hz 

dmesg:

 tangox[/]# dmesg Linux version 2.6.22.19-40-sigma (buildmgr@hulk) (gcc version 4.3.2 (Sourcery G++ Lite 4.3-51) ) #3230 PREEMPT Thu Oct 3 15:54:23 IST 2013 Mixed DRAM usage enabled. Configunetworking for SMP865x, detected SMP8653 (revision ES2). Detected CPU/System/DSP Frequencies: 499.50/333.00/333.00MHz SMP86xx Enabled Devices under Linux/XENV 0x9f3fbff4 = 0x003303f8 .... 

Archivos y directorys:

 tangox[/]# ls apps@ images/ mrua_SMP8654F/ sysfs/ apps-peer/ init* mruafw/ system@ bin/ initial_settings/ opt/ tmp/ cpgui/ lib/ probe/ upgrade/ data/ linuxrc@ proc/ usr/ dcchd_SMP8652/ logd/ rfs/ var/ dev/ lost+found/ root/ vnms/ etc/ media@ sbin/ webkit/ home/ mnt/ sys/ tangox[/]# find . -type f -name *.c tangox[/]# find . -type f -name *.h tangox[/]# find . -type f -name *.cpp tangox[/]# find . -type f -name *.hpp tangox[/]# find . -type f -name *.so ./webkit/lib/libcplibutils.so ./webkit/lib/libbrowserutils.so ./webkit/lib/plugins/npswitch.so ./webkit/lib/plugins/npplayer.so ./dcchd_SMP8652/directfb/lib/libdirectfb-smp86xx.so ./dcchd_SMP8652/dcchd/lib/libdcchd_dtv.so ./dcchd_SMP8652/dcchd/lib/librmcdda.so ./dcchd_SMP8652/dcchd/lib/libdcchd_acap.so ./dcchd_SMP8652/dcchd/lib/librmdvdfs.so ./dcchd_SMP8652/dcchd/lib/librmdvdfsapi.so ./dcchd_SMP8652/dcchd/lib/libdcchd_core.so ./dcchd_SMP8652/dcchd/lib/librmdvdvideoapi.so ./dcchd_SMP8652/dcchd/lib/libdcchd_tuner.so ./dcchd_SMP8652/dcchd/lib/librmvcdnavapi.so ./dcchd_SMP8652/dcchd/lib/librmpacketcommand.so ./dcchd_SMP8652/dcchd/lib/librmdisc.so ./dcchd_SMP8652/dcchd/lib/libdcchd_cap.so ./dcchd_SMP8652/dcchd/lib/libdcchd_mcast.so ./dcchd_SMP8652/dcchd/lib/libdcchd_dvd.so ./dcchd_SMP8652/dcchd/lib/librmdvdvideonav.so ./dcchd_SMP8652/dcchd/lib/librmcddanavapi.so ./dcchd_SMP8652/dcchd/lib/libdcchd_dvdvr.so ./dcchd_SMP8652/dcchd/lib/librmvcdnav.so ./dcchd_SMP8652/dcchd/lib/libdcchd_lpb.so ./dcchd_SMP8652/dcchd/lib/libdcchd.so ./mrua_SMP8654F/lib/libndsp.so ./mrua_SMP8654F/lib/libruai2c.so ./mrua_SMP8654F/lib/librmmkvdemux.so ./mrua_SMP8654F/lib/libindex.so ./mrua_SMP8654F/lib/librmdtcpapi.so ./mrua_SMP8654F/lib/librmmp4core.so ./mrua_SMP8654F/lib/librmdrm.so ./mrua_SMP8654F/lib/libruahdmi.so ./mrua_SMP8654F/lib/librmtextsubs.so ./mrua_SMP8654F/lib/libaudiooutports.so ./mrua_SMP8654F/lib/librmcore.so ./mrua_SMP8654F/lib/librmasfdemuxcore.so ./mrua_SMP8654F/lib/librmi2c.so ./mrua_SMP8654F/lib/librmmonitoring.so ./mrua_SMP8654F/lib/librmmpeg4framework.so ./mrua_SMP8654F/lib/librmmm_g.so ./mrua_SMP8654F/lib/libvp6decoder.so ./mrua_SMP8654F/lib/librmhsi.so ./mrua_SMP8654F/lib/librmcpputils.so ./mrua_SMP8654F/lib/librua.so ./mrua_SMP8654F/lib/librmmpegsystemindex.so ./mrua_SMP8654F/lib/libdcc.so ./mrua_SMP8654F/lib/librmwmaprodecodercore.so ./mrua_SMP8654F/lib/librmflv.so ./mrua_SMP8654F/lib/librmzlib.so ./mrua_SMP8654F/lib/librmmm_t.so ./mrua_SMP8654F/lib/librmcapture.so ./mrua_SMP8654F/lib/libgbus.so ./mrua_SMP8654F/lib/librmriff.so ./mrua_SMP8654F/lib/libllad.so ./mrua_SMP8654F/lib/librmdetector3api.so ./mrua_SMP8654F/lib/libdisplayoutports.so ./mrua_SMP8654F/lib/librmcdfs_t.so ./mrua_SMP8654F/lib/librmlibplay_t.so ./mrua_SMP8654F/lib/librmstreamingprotocols.so ./mrua_SMP8654F/lib/librmdetectorapi.so ./mrua_SMP8654F/lib/librmmpegdemux.so ./mrua_SMP8654F/lib/librmcprminterface.so ./mrua_SMP8654F/lib/librmdetector3.so ./mrua_SMP8654F/lib/librmhdmi.so ./mrua_SMP8654F/lib/libsh263decoder.so ./mrua_SMP8654F/lib/librmwmdrmstub.so ./mrua_SMP8654F/lib/librmmp4api.so ./mrua_SMP8654F/lib/librmwmaprodecoder.so ./mrua_SMP8654F/lib/librmcurl.so ./mrua_SMP8654F/lib/librmedid.so ./mrua_SMP8654F/lib/librmdescriptordecoder.so ./mrua_SMP8654F/lib/librmpthreadw.so ./mrua_SMP8654F/lib/librmasfdemux.so ./mrua_SMP8654F/lib/librmavicore.so ./mrua_SMP8654F/lib/librmvdemux.so ./mrua_SMP8654F/lib/librmsubidx.so ./mrua_SMP8654F/lib/librmvideoout.so ./mrua_SMP8654F/lib/librmrtk86.so ./mrua_SMP8654F/lib/librmcec.so ./mrua_SMP8654F/lib/librmmm.so ./mrua_SMP8654F/lib/librmsoftmixer.so ./mrua_SMP8654F/lib/librmdvbsubs.so ./mrua_SMP8654F/lib/librmcpputils_t.so ./mrua_SMP8654F/lib/librmsha1.so ./mrua_SMP8654F/lib/librmppf.so ./mrua_SMP8654F/lib/librmfp_t.so ./mrua_SMP8654F/lib/librmchannel.so ./mrua_SMP8654F/lib/libruahsi.so ./mrua_SMP8654F/lib/librmhttp.so ./mrua_SMP8654F/lib/librmcdfs.so ./mrua_SMP8654F/lib/librmmp4.so ./mrua_SMP8654F/lib/libsamples_t.so ./mrua_SMP8654F/lib/librmfontrender.so ./mrua_SMP8654F/lib/librmdisplay.so ./mrua_SMP8654F/lib/librmscc.so ./mrua_SMP8654F/lib/librmcw.so ./mrua_SMP8654F/lib/librmmpegsystemindexcreator.so ./mrua_SMP8654F/lib/librmcssinterface.so ./mrua_SMP8654F/lib/librmwmdrmndstub.so ./mrua_SMP8654F/lib/librmsofttxt.so ./data/myapps/tvstreamer/lib/libmpr.so ./data/myapps/tvstreamer/lib/libpcre.so ./data/myapps/tvstreamer/lib/libvuxmlgen.so ./data/myapps/tvstreamer/lib/libappweb.so ./data/myapps/tvstreamer/lib/modules/mod_vuxml.so ./lib/libnss_compat-2.8.so ./lib/libthread_db-1.0.so ./lib/libtinyxml.so ./lib/libIStagecraft.so ./lib/libnss_nis-2.8.so ./lib/ld-2.8.so ./lib/libIURLOps.so ./lib/libnss_files-2.8.so ./lib/libpcprofile.so ./lib/libIStreamPlayer.so ./lib/libIFL31NativeSoundOutput.so ./lib/libIXMLReaderLib.so ./lib/libSegFault.so ./lib/libresolv-2.8.so ./lib/libIEDKExtensions.so ./lib/libm-2.8.so ./lib/libarchop_74k.so ./lib/libIAEKernel.so ./lib/libsqlite.so ./lib/libutil-2.8.so ./lib/libtomcrypt.so ./lib/libIShell.so ./lib/libIVideoDecoder.so ./lib/libnss_nisplus-2.8.so ./lib/libIFileSystem.so ./lib/libIAudioDecoder.so ./lib/libcrypt-2.8.so ./lib/libIImageDecoder.so ./lib/libnss_hesiod-2.8.so ./lib/libISocket.so ./lib/libIStream.so ./lib/libBrokenLocale-2.8.so ./lib/libIFlashLib.so ./lib/libIIO.so ./lib/librt-2.8.so ./lib/libViewRightWebClient.so ./lib/libanl-2.8.so ./lib/libnss_dns-2.8.so ./lib/libIGraphicsDriver.so ./lib/libIJSONParserLib.so ./lib/libarchop_24k.so ./lib/libIProcess.so ./lib/libnsl-2.8.so ./lib/libc-2.8.so ./lib/libcidn-2.8.so ./lib/libpthread-2.8.so ./lib/libmemusage.so ./lib/libdl-2.8.so 

No hay encabezados de kernel o biblioteca, sino solo bibliotecas estáticas. ¿Cómo creo binarys que sean compatibles con esta placa?

Por supuesto, nadie dejará ningún código fuente en el sistema integrado, porque esto es innecesario. Los sistemas integrados como el suyo generalmente tienen poco espacio incluso para almacenar su firmware.

Usted ve que contiene glibc. Se ve por la presencia de objects compartidos en /lib version-named -2.8.so Necesita una cadena de herramientas compatible con glibc que contenga glibc 2.8 o una versión anterior para comstackr binarys para este sistema.

O puede abandonar la idea de comstackr con glibc y simplemente enlazar de forma estática sus ejecutables con uClibc toolchain. Use-argumento de línea de command -static .

Construir con musl libc es aún más fácil y ya hay cadenas de herramientas para eso. Simplemente coloque un libc.so en /lib , un enlace simbólico de enlace dynamic a él y su binary en alguna parte.

Espero que apps-startup de tu tablero y ya sabes qué endianness ejecuta.

Y no mencionó sus requisitos para su simple ejecutable en C. Quizás requiera bibliotecas adicionales que probablemente necesitará build.