tag mp3tag kid3 editar easytag linux kernel embedded

linux - mp3tag - ¿Está aprendiendo cómo hackear kernel y desarrollo integrado en casa?



mp3 tag linux (6)

Algunas cosas para estar preparado para:

  • serás una compilación cruzada. El dispositivo incrustado utilizará una CPU MIPS, PowerPC o ARM, pero no tendrá suficiente potencia de la CPU, memoria o almacenamiento para compilar su propio kernel en un período de tiempo razonable.
  • Un sistema integrado a menudo usa un puerto serie como consola, y para reducir el costo, generalmente no hay un conector soldado en las placas de producción. La depuración del pánico del núcleo es muy difícil a menos que pueda soldar en un conector de puerto serie, no tendrá mucha información sobre lo que salió mal.

El NSLU2 de Linksys es una forma económica de obtener un sistema embebido real, y tiene un puerto USB para agregar periféricos. También se puede usar cualquiera de varios puntos de acceso inalámbrico, consulte la página de compatibilidad de OpenWrt. Tenga en cuenta que los modelos actuales del Linksys WRT54G que encontrará en las tiendas ya no se pueden usar con Linux: tienen menos RAM y Flash para reducir el costo. Cisco / Linksys ahora usa vxWorks en el WRT54G, con una huella de memoria más pequeña.

Si realmente desea participar, los kits de evaluación para CPU integradas comienzan en un par de cientos de dólares estadounidenses. Recomiendo no gastar dinero en estos a menos que lo necesite profesionalmente para un trabajo o contrato de consultoría.

Siempre me atrajo el mundo de la piratería de kernel y los sistemas integrados.
¿Alguien ha recibido buenos tutoriales (+ hardware fácilmente disponible) para comenzar a jugar con esas cosas?
Algo así como kits para escribir controladores, etc., que vienen con buena documentación y son asequibles.

¡Gracias!


Para el pirateo integrado de Linux, el enrutador simple Linksys WRT54G que puede comprar en todas partes es una plataforma de desarrollo propia http://en.wikipedia.org/wiki/Linksys_WRT54G_series :

El WRT54G es notable por ser el primer dispositivo de red de nivel de consumidor que tuvo su código fuente de firmware liberado para satisfacer las obligaciones de GNU GPL. Esto permite a los programadores modificar el firmware para cambiar o agregar funcionalidad al dispositivo. Varios proyectos de firmware de terceros proporcionan al público un firmware mejorado para el WRT54G.

Intenté instalar el firmware OpenWrt y DD-WRT en él. Puede verificarlos como punto de partida para hackear una plataforma de bajo costo.


Una visita obligada es este libro de Rubini. (disponible tanto en forma de copia impresa como gratuita)

Él da implementaciones de varios controladores ficticios que no requieren que tenga otro hardware que no sea su PC. Entonces, para comenzar a desarrollar kernel, es la forma más fácil de hacerlo.

En cuanto a hacer un trabajo integrado, recomendaría comprar una de las numerosas SBC (computadoras de una sola placa) que están disponibles. Hay varios de estos basados ​​en procesadores x86, generalmente con interfaces PC / 104 (eléctricamente PC / 104 es idéntico al estándar de bus ISA, pero se basa en conectores apilables en lugar de conectores de borde; es muy fácil conectar hardware personalizado a)

Por lo general, tienen conectores vga que facilitan la depuración.


Si eres completamente nuevo en el desarrollo del kernel, te sugiero que no comiences con el desarrollo de hardware y vayas a algunos módulos kernel "solo software" como proc file / sysfs o para ejemplos más complejos de sistemas de archivos / desarrollo de redes, desarrollándote en un uml / vmware / La máquina virtualbox / ... así que estropear su máquina no dolerá mucho :) Para el desarrollo integrado, puede optar por un pequeño kit de desarrollo ARM o una pequeña máquina Via C3 / C4, o cualquier PC vieja que pueda grabar con su homebrew USB / PCI / cualquier dispositivo.

Un buen lugar para comenzar es probablemente Kernelnewbies.org , que tiene muchos enlaces e información útil para los desarrolladores del kernel, y también presenta una lista de tareas fáciles de implementar para los principiantes.

Algunos libros para leer:

Comprender el kernel de Linux : una muy buena referencia que detalla el diseño de los subsistemas del kernel

Controladores de dispositivo Linux : está escrito más como un tutorial con un gran número de código de ejemplo, centrándose en ponerlo en funcionamiento y explicar los aspectos clave del kernel de Linux. Introduce el proceso de compilación y los conceptos básicos de los módulos kernel.

Guía de programación del módulo Kernel de Linux - Un poco más de material introductorio

Como se sugirió anteriormente, mirar el código de Linux siempre es una buena idea, especialmente porque Linux Kernel API tiende a cambiar con bastante frecuencia ... LXR ayuda mucho con una interfaz de navegación muy agradable - lxr.linux.no

Para comprender el proceso de compilación del núcleo, este enlace puede ser útil:

Matriz de kernel de Linux (kbuild)

¡Por último, pero no menos importante, navegue por el directorio de Documentación de la distribución de Kernel Source!

Aquí hay algunos ejercicios interesantes robados insolentemente de una clase de desarrollo de kernel:

  • Escriba un módulo kernel que crea el archivo / proc / jiffies informando la hora actual en jiffies en cada acceso de lectura.
  • Escriba un módulo kernel que proporcione el archivo proc / proc / sleep. Cuando una aplicación escribe una cantidad de segundos como texto ASCII en este archivo ("echo 3> / proc / sleep"), debe bloquearse durante la cantidad de segundos especificada. Los accesos de escritura no deberían tener ningún efecto secundario en el contenido del archivo, es decir, en los accesos de lectura, el archivo debería aparecer vacío (ver LDD3, cap.6/7)
  • Escriba un archivo de proceso donde pueda almacenar algo de texto temporalmente (usando echo "blah"> / proc / pipe) y vuelva a sacarlo (cat / proc / pipe), borrando el archivo. Tenga cuidado con los problemas de sincronización.
  • Modifique el módulo de ejemplo de tubería para que se registre como un dispositivo de caracteres / dev / pipe, agregue la asignación de memoria dinámica para solicitudes de escritura.
  • Escribe un sistema de archivos realmente simple.

Para empezar, la mejor manera es leer mucho código. Dado que Linux es de código abierto, encontrará docenas de controladores. Encuentra uno que funcione de alguna manera, como lo que quieres escribir. Encontrará un código decente y relativamente fácil de entender (el dispositivo de retroalimentación, ROM fs, etc.)

También puede usar lxr.linux.no , que es el código de Linux con referencias cruzadas. Si tiene que averiguar cómo funciona algo, y necesita ver el código, esta es una buena y fácil manera.

También hay un libro O''Reilly (Understanding the Linux Kernel, la 3ra edición trata sobre los núcleos 2.6) o si quieres algo gratis, puedes usar el libro Advanced Linux Programing ( http://www.advancedlinuxprogramming.com/ ) . También hay mucha documentación específica sobre sistemas de archivos, redes, etc.


Estoy completamente principiante en kernel hacking :) Decidí comprar dos libros "Desarrollo de programas Linux: una guía con ejercicios" y "Escribir controladores de dispositivos Linux: una guía con ejercicios" Están muy claramente escritos y proporcionan una buena base para seguir aprendiendo.