usar puddletag modificar kid3 easytag descargar compilar como linux time compilation kernel

linux - puddletag - kid3



¿Cómo acelerar la compilación del kernel de Linux? (8)

Tengo Core i5 con 8gb de RAM. Tengo VMware workstation 10.0.1 instalado en mi máquina. He instalado Fedora 20 Desktop Edition en VMware como SO huésped.

Estoy trabajando en el código fuente del kernel de Linux v 3.14.1. Estoy desarrollando un programador de E / S para el kernel de Linux. Después de cualquier modificación en el código cada vez que toma alrededor de 1 hora y 30 minutos compilar e instalar todo el código del núcleo para ver los cambios.

Comandos de compilación e instalación: make menuconfig , make , make modules , make modules_install , make install

Entonces, mi pregunta ¿es posible reducir el tiempo de 1 hora y 30 minutos en solo 10 a 15 minutos?


  1. Usa la construcción paralela con la opción -j
  2. Compile solo para la arquitectura de destino, ya que de lo contrario, make construirá el núcleo para cada arquitectura listada.

es decir, por ejemplo, en lugar de ejecutar:

make

correr:

make ARCH=<your architecture> -jN

donde N es el no de núcleos en su máquina ( cat /proc/cpuinfo muestra el no de núcleos). Por ejemplo, para i386 target y host machine con 4 cores (salida de cat /proc/cpuinfo ):

make ARCH=i386 -j4

De forma similar, puede ejecutar los otros objetivos de modules_install ( modules , modules_install , install ) con el indicador -jN .

Nota: make una comprobación de los archivos modificados y compila solo los archivos que han sido modificados, por lo que solo la compilación inicial debería tomar tiempo, las compilaciones posteriores serán más rápidas.


No hagas make menuconfig por cada cambio que hagas a las fuentes, porque activará una compilación completa de todo, sin importar cuán trivial sea tu cambio. Esto solo es necesario cuando la opción de configuración del kernel cambia, y eso debería ocurrir durante su desarrollo.

Solo haz:

make

O si prefieres la compilación paralela:

make -j4

o cualquier número de tareas concurrentes que te apetezca.

Entonces, por supuesto, puede ser necesario make install , etc. para implementar los binarios recientemente creados.

Otro truco es configurar el kernel al mínimo necesario para sus pruebas. Descubrí que para muchas tareas una compilación UML (Modo de usuario Linux) es la más rápida. También puede resultarle útil make localmodconfig lugar de make menuconfig para empezar.


No necesita ejecutar make menuconfig nuevamente cada vez que realice un cambio, solo se necesita una vez para crear el archivo .config del kernel. (O posiblemente otra vez si edita archivos Kconfig para agregar o modificar las opciones de configuración, pero esto no debería suceder a menudo).

Siempre que su .config se quede solo, la ejecución de make solo debería recompilar los archivos que haya cambiado. Hay algunos archivos que deben compilarse cada vez, pero la gran mayoría no lo son.


Quizás, además de las sugerencias anteriores, el uso del software ccache ( ccache ) y un directorio de compilación en la unidad SSD deberían disminuir drásticamente el tiempo de compilación.


Si tiene suficiente RAM y no va a utilizar su máquina mientras se está construyendo el núcleo, puede generar una gran cantidad de trabajos simultáneos. Pero asegúrese de que su RAM sea suficiente, de lo contrario su sistema se bloqueará y se bloqueará.


Tal vez además de las sugerencias anteriores, mientras usa ccache, es posible que desee deshabilitar CONFIG_GCC_PLUGINS (si se configuró), de lo contrario, podría obtener una gran cantidad de errores de caché, como se ve en this ejemplo.


ccache debería ser capaz de acelerar dramáticamente sus tiempos de compilación. Acelera la recompilación al almacenar en caché las compilaciones anteriores y detectar cuándo se vuelve a realizar la misma compilación. Su primera compilación con ccache será más lenta, ya que necesita rellenar el caché, pero las compilaciones posteriores deberían ser mucho más rápidas.

Si no quieres molestarte con las configuraciones de ccache, puedes ejecutarlo así para compilar el kernel:

ccache make


make -j utilizará todas las CPU disponibles.