Desarrollar bajo Linux y no morir en el intento (IV). Resumen y plataforma cruzada

Tras varios días trabajando con linux, y normalmente realizando tareas previas al propio desarrollo, he llegado a la conclusión de que este entorno, pese a las versiones y revisiones habidas y por haber, se encuentra verde, muy verde en cuanto a usabilidad y a facilitar las tareas de desarrollo.


Voy a resumir una serie de problemas sin resolver y luego explicaré mis pinitos en la instalación de un compilador para arm.


Bugs sin resolver



  1. Los teclados Microsoft no funcionan bien (hay teclas muertas).

  2. KDE tiene una buena cantidad de ellos, todavía pendientes. Entre los que me afectan personalmente, están:


    1. Cada programa tiene una combinación de teclas diferente para hacer tareas comunes, y en general las operaciones habituales tienen combinaciones complejas y en las más raras las combinaciones son más sencillas, y cuando las inviertes, generalmente la nueva combinación no funciona bien.

    2. Algunos programas desaparecen misteriosamente sin dejar rastro ni logs ni nada, a veces te sale la pantalla del error, y otras, simplemente, desaparece. Entre ellas destaca el K3b, programa destinado a la grabación de CDs y DVDs.

    3. Aunque el DCOP es toda una gozada en cuanto a envío de mensajes y control de aplicaciones, todavía está muy verde en el sentido de que, por ejemplo, las teclas multimedia se pueden asignar a una aplicación, pero no a la que en este momento se encuentre activa, de forma que en ese caso te tienes que casar con un reproductor de medios en concreto.

    4. Otros programas, pese a tener miles de opciones a cual más potente y bonita, son bastante deficientes. Ejemplo es el KNode, que no permite bajar cabeceras y cuerpos a una vez, de forma que en los servidores de noticias lentos es toda una odisea esperar y esperar mientras se baja el mensaje siguiente. Y el Akregator, por ejemplo, repite RSS por un tubo. El Konqueror guarda mal algunas claves de acceso (prueba con www.ogame.com.es). El sistema de cuentas/identidades/servidores del Kmail es una castaña, para cada cuenta tienes que configurar lo mismo en tres sitios diferentes…

  3. CUPS. Mejor no digo nada… Unas veces funciona, otras no. Unas veces te imprime una página con una calidad acojonante aplicando filtros y más filtros, y otras un simple texto se va a la cuarta dimensión. En fin.

  4. KDevelop. ¿Dónde está el equivalente del IntelliSense? Y la búsqueda integrada, je, la búsqueda integrada. Hemos vuelto a los tiempos del MS-DOS con poco más…

En fin, que hay muchas deficiencias y elementos por mejorar si quieren entrar en el mundo del escritorio.


Plataforma Cruzada


Ahora empezamos con lo interesante de verdad.


Voy a desarrollar para una placa ARMV9, un chip de Textas Instruments que ya he probado bajo Windows con unas características muy buenas, veremos cómo va con Linux.


El primer paso consiste en instalar un compilador de plataforma cruzada, lo ideal sería recompilar el gcc que tienes como compilador de sistema, pero eso quizás lo haga cuando la placa ya arranque y funcione, que va a costar. El motivo no es otro que asegurarme de que el compilador va a generar el código correcto y cuando las cosas no funcionen, lo hagan porque es mi código el que está mal y no el propio compilador…


Esto puede parecer ciertamente presuntuoso, pero gato escaldado del agua fŕia huye, y ya tuve mis tejemanejes con el gcc y los ColdFire y otros Motorola 68xxx, así que mejor vale prevenir que curar.


Bueno, como iba diciendo, el primer paso es instalar el compilador certificado… Hecho, en /usr/local/arm todos los binarios, y en /opt/buildroot has herramientas necesarias para crear el propio compilador… Como prueba de mi sistema, he intentado regenerarlo y no he podido por errores en el código fuente (más que nada, incompatibilidades entre mi 4.1.1 y el 3.2.1 del arm). Añado las líneas al path y listo.


Ahora toca bajar e instalar el toolchain y generar un linux que pueda meter en la placa… Tras descomprimir los 180 megas en el directorio src local a mi cuenta… fallamos al compilar porque se intentan cambiar los permisos de ciertos ficheros locales…


Empezamos bien, muy bien. ¿A santo de qué eso de cambiar permisos a los ficheros? Parece ser que quiere hacerlos root para luego pasarlos a una imagen binaria, que será la que se cargará en la placa… Un «su» y un «source .bashrc» solucionan el problema… para entrar en otro… El redboot con compila, me dice que «tail: cannot open `+2′ for reading: No such file or directory»…


De momento en eso estoy.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *