Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo compilar archivos del kernel en el sistema ubuntu

Cómo compilar archivos del kernel en el sistema ubuntu

1. Preparativos para descargar el código fuente y compilar software

Instale el compilador correspondiente. Instale make, gcc, make-kpkg, ejecute menuconfig y otras herramientas relacionadas con la compilación del kernel. Si eso no funciona, verifique el archivo /etc/apt/sources.list. Comandos relacionados: código:$sudo apt-get install build-essential kernel-package libncurses5-dev

2. Descomprima el código fuente. Tenga en cuenta que muchos tutoriales en Internet recomiendan descomprimirlo en /usr/src. lo cual es puramente falso, Linus, el padre de Linux, dijo que es posible extraerlo a cualquier directorio. Linus, el padre de Linux, dijo que puedes descomprimirlo en cualquier directorio. Por supuesto, Linus tiene razón. Lo puse en el directorio src debajo de mi directorio de inicio. Si descargó el código fuente en su directorio de inicio o ejecutó la descarga de wget anterior, ejecute el siguiente comando: code:$ cd ~$ mkdir src && tar jfx linux-2.6.25.10.tar.bz2 -C src/ Ahora, el código fuente está en ~/src/linux-2.6. 25.10 Ingrese al directorio del código fuente y prepárese para el siguiente paso. Todo el trabajo posterior se realizará en este directorio. Código:$ cd ~/src/linux-2.6.25.10

3. Preparativos antes de comenzar la compilación. Primero, limpie los archivos temporales que quedaron de compilaciones anteriores. Si el paquete acaba de ser descomprimido, no es necesario realizar este paso. Debe ejecutarse si es la segunda o enésima compilación. Los comandos relevantes son los siguientes: code:$ sudo make mrproper Muchos tutoriales en Internet dicen que es necesario copiar la configuración actual del kernel como referencia. Según los experimentos, Ubuntu y Debian realizarán este paso automáticamente. Pero este comando se puede aprender. Por supuesto, también puedes copiar la configuración anterior. Comando: code:cp /boot/config-`uname -r` ./.config

Cuarto, comience a configurar las opciones del kernel. Comandos relacionados: Código: $sudo make menuconfig La configuración requiere solo unas pocas teclas. La tecla esc sale del menú; la barra espaciadora cambia el estado de la opción; las teclas del cursor se mueven hacia arriba, hacia abajo, hacia la izquierda y hacia la derecha, y presione Enter para seleccionar. Significado de la opción: M se compila en el módulo y se puede agregar en cualquier momento, * se compila en el kernel y vacío no. Hay muchas opciones de configuración para una configuración específica, consulte la información traducida por el Sr. Jin Buhuan: Opciones de configuración de compilación del kernel de Linux 2.6.19.x. Siga un principio: si el kernel que utiliza ha seleccionado una determinada opción, no la cambie casualmente si no tiene una buena razón. Hacerlo hará que el núcleo sea más magro, pero también menos propenso a sufrir problemas. La parte que podemos optimizar es la sección de módulos de hardware, no dudes en eliminar el hardware que no tienes. Si eres muy persistente o tienes misofobia, también puedes revisar las selecciones una por una. Básicamente, no hay problema en elegir según la información presentada por el Sr. Jin Buhuan.

Cinco opciones que hay que destacar: 1.

En "Configuración general", "Solicitar desarrollo y/o código incompleto"

En " No se requiere Configuración general", "Solicitud de desarrollo y/o código

incompleto". Pero si tienes hardware más nuevo, esto es casi necesario para que podamos encontrar la tarjeta inalámbrica 4965, el controlador de sonido alsa, etc.

y más. Apoyo del grupo de control ¿Apoyo del cluster? No se puede seleccionar el modo de administración de memoria del asignador SLAB (SLUB (Unqueued Allocator)) y seleccionar slub.

2. En la "Capa de bloques", si no hay un disco duro de 2 TB, elimine: soporte para dispositivos de bloques grandes. Tampoco es necesario admitir archivos individuales de gran tamaño. ¿Quién tiene un archivo de 2 TB?

3. El tipo de procesador y las funciones de la CPU deben elegirse con cuidado.

Para admitir el multiprocesamiento simétrico, debe activar el interruptor multinúcleo. Mi CPU es de doble núcleo, compruébelo. Familia de procesador (Core 2/más reciente) El mío es un Core 2/más nuevo Xeon. Familia de procesadores (Core 2/Xeon más reciente) Mi CPU es Core 2/Xeon más reciente. Una vez que encuentre su CPU, desmarque la opción Soporte genérico x86. Selección de tipo de subarquitectura (compatible con PC) Número máximo de CPU Ingrese el número de núcleos para su CPU, yo ingresé 2. La compatibilidad con el programador SMT (Hyperthreading) se refiere a la tecnología Hyper-Threading. P4 la admite, pero mi t8100 no la admite. La mayoría de las CPU domésticas actualmente en el mercado no la admiten. Soporte de memoria alta (4 GB) 1G o menos, seleccione 1G; soy 3G, seleccione 4G o superior, seleccione 16G, el valor predeterminado es 250 Hz, las CPU más nuevas pueden seleccionar hasta 1000 Hz para un mejor rendimiento.

4. La compatibilidad con BIOS APM (administración avanzada de energía) en las opciones de administración de energía está desactivada. Todas las computadoras actuales usan acpi. El escalado de frecuencia de la CPU es una tecnología de ahorro de energía para las CPU de las computadoras portátiles. Administrador predeterminado de CPUFreq (conservador). Hay cuatro modos de ahorro de energía de la CPU. Es mejor seleccionar conservador de forma predeterminada para las computadoras portátiles. Se debe seleccionar el controlador ACPI Processor P-States; de lo contrario, el modo de ahorro de energía de la CPU CPUFreq Governor (conservador) tiene cuatro tipos y es mejor que la computadora portátil seleccione el modo conservador de forma predeterminada. Se debe seleccionar el controlador de Estados; de lo contrario, no se podrá utilizar la frecuencia de la CPU. Este último se puede seleccionar en relación con el hardware. El autor eligió Intel Enhanced SpeedStep e Intel Speedstep en el chipset ICH-M y omitió los demás.

5. Selección de opciones de bus: Opciones de bus (PCI, PCMCIA, EISA, MCA, ISA) PCI admite que las máquinas nuevas sean básicamente PCI Express que admiten máquinas más nuevas sin dispositivos ISA. El soporte se puede quitar. Si no hay un dispositivo PCI de conexión en caliente, puede eliminar MCA Soporte para eliminar NatSemi SCx200 Soporte para eliminar el soporte de conexión en caliente PCI Soporte de conexión en caliente PCI (experimental) Si no hay un dispositivo de conexión en caliente PCI, puede considerar compilar todos opciones en el kernel, en lugar de compilar como un módulo.

6. Los controladores de dispositivo son el punto clave, porque Linux no sólo es adecuado para estaciones de trabajo personales, sino más bien para aplicaciones orientadas a servidores, por lo que puedes eliminar todo el hardware que no esté disponible en tu máquina, no todo. . Pero las opciones universales también deben tratarse con cautela. Por ejemplo, en la sección Tarjetas de red, eliminé todo el soporte de hardware excepto el soporte para la tarjeta de red Broadcom Tigon3 Gigabit y la tarjeta de red inalámbrica Intel Wireless WiFi 4965AGN 4965. Otro ejemplo es la sección de tarjeta de sonido, tengo una tarjeta de sonido HD y simplemente selecciono tarjeta de sonido Intel HD en Dispositivos PCI y luego selecciono Crear soporte para códec de audio IDT/Sigmatel HD y elimino todo el resto de soporte de hardware.

Hay otro detalle sobre la tarjeta de sonido. En ubuntu 7.10, es necesario agregar la opción después de /etc/modprobe.d/alsa-base

snd-hda-intel probe_mask. =1

model=3stack para que los parlantes de mi computadora portátil puedan producir sonido. Esto permite que los parlantes de mi computadora portátil produzcan sonido; de lo contrario, tendría que conectar auriculares o parlantes externos.

Después de la compilación, esta operación no es necesaria, pero sólo se puede utilizar una de las dos tomas de auriculares

. Sin embargo, si no tengo agp en mi computadora, puedo anular la selección de todas las opciones relacionadas con agp. NOTA: La compatibilidad con ATA/ATAPI/MFM/RLL incluye compatibilidad con DISCOS IDE/ATA-2. Si /boot está en un disco duro IDE, debe seleccionar * aquí, ni siquiera M. De lo contrario, aparecerá el mensaje "Esperando sistema de archivos raíz" durante el inicio. Admite emulación SCSI. Necesario para utilizar la grabadora. Compatibilidad con dispositivos SCSI Para todos los discos duros SATA ahora, debe seleccionar * Compatibilidad con discos SCSI Si su /boot está en un disco duro SATA, debe seleccionar *.

Soporte de CDROM SCSI Aunque la grabadora Compaq es una interfaz ide, debe tratarse como una interfaz scsi, lo cual es un problema antiguo. Esto debe seleccionarse cuando se utiliza una grabadora.

Después de seleccionar Soporte de gráficos Soporte para dispositivos frame buffer, vaya a seleccionar Soporte de gráficos VESA VGA; de lo contrario, habrá problemas al iniciar la interfaz de caracteres. La siguiente selección de tarjeta gráfica: Debido a que mi tarjeta gráfica es nvidia 8400gs, elijo. Necesito instalar el controlador de nvidia yo mismo, el controlador de la empresa nvidia, el controlador de la empresa nvidia, el controlador de la empresa nvidia, el controlador de la empresa nvidia, el controlador de la empresa nvidia, el controlador de la empresa nvidia, el controlador de la empresa nvidia, el controlador de la empresa nvidia, nvidia. controlador de la empresa, controlador de la empresa nvidia, impulsado por la empresa nvidia, impulsado por nvidia, impulsado por nvidia, impulsado por nvidia, impulsado por nvidia. Como mi tarjeta gráfica es una nvidia 8400gs, tuve que instalar los controladores de nvidia yo mismo, así que no seleccioné ninguno de ellos. Esto causó problemas con la animación de inicio de Ubuntu, así que simplemente eliminé todos los caracteres de bienvenida en grub y desactivé la animación de inicio. La interfaz del personaje se ejecuta normalmente. Compatibilidad con el controlador de pantalla de la consola Algunas personas obtienen errores de la consola después de iniciar, es por eso que esta sección no está marcada y es un problema. Es necesario activar la compatibilidad con la consola Framebuffer.

Logotipo de inicio Ícono de inicio, puede agregar un ícono personalizado en la pantalla de autoprueba. Debe agregar la opción "vga=" a grub (conocida como fusible), que es necesaria si desea utilizar particiones de Windows.

Sistema de archivos CD-ROM/DVD El soporte del sistema de archivos CDROM ISO 9660 generalmente selecciona el sistema de archivos *DOS/FAT/NT Soporte VFAT (Windows-95) fs Si tiene una partición FAT32, seleccione * it NTFS Compatibilidad con el sistema de archivos Si tiene una partición NTFS, seleccione *it. Si desea escribir en una partición NTFS, seleccione * El sistema de archivos del disco de inicio debe compilarse en el kernel. De forma predeterminada, se compila como un módulo, por lo que el sistema no se puede iniciar. Compile todas las opciones necesarias relacionadas con ext2 y ext3 en el kernel.

8. La categoría de virtualización es la razón principal por la que gasté unos cientos de yuanes más para comprar el t8100, porque el t8100 es compatible con la tecnología Intel VT, que mejora enormemente el rendimiento de Linux en máquinas virtuales. A excepción de las opciones de AMD, compilé todas las opciones aquí en módulos.

9. Una vez completadas todas las configuraciones, el último paso es guardarlas. Según mi costumbre, primero guarde una copia de seguridad en el directorio anterior con un nombre de archivo similar a ./config20080630, luego guárdela en el directorio actual con un nombre de archivo .config y salga del programa de instalación.

6. Comience a compilar el kernel. La herramienta de Ubuntu es make-kpkg y los pasos son relativamente simples en comparación con otras distribuciones.

Comandos relacionados: Código: $sudo make-kpkg clean Este comando no parece requerir superprivilegios. Muchos materiales dicen que sí, pero esto no es una cuestión de principios.

$ sudo make-kpkg -initrd --initrd --append-to-version=dell1400 kernel_image kernel-headers dell1400 en el comando anterior se puede reemplazar con cualquier carácter que desee, y el último carácter debe ser un número. Antes de ingresar el comando anterior, se recomienda que cierre su navegador y cualquier otra aplicación ya que la máquina comenzará a trabajar intensamente.

Mi máquina tardó unos diez minutos.

7. Instalación Una vez completada la compilación del kernel, comienza el trabajo de instalación. El kernel compilado está en el directorio superior. Estos incluyen los archivos linux-headers-...-_i386.deb y linux-image-...-_i386.deb. Si no está desarrollando, simplemente instale el kernel. Los archivos de encabezado se utilizarán más adelante. Comandos relacionados con la instalación:

Código: $ cd ... $ sudo dpkg -i linux-image- (presione la tecla tab) El nombre del archivo es muy largo y la finalización automática es imposible sin usar la tecla tab, tab ¡Viva la llave! Una vez completada la instalación, compare el tamaño del código con el kernel anterior:

$ ls -l /boot/

8. Reinicie y verifique el nuevo kernel. Código: $ sudo reboot

9. Controlador de tarjeta gráfica Si su tarjeta gráfica es una tarjeta gráfica nvidia como la mía, a menudo no puede ingresar a la ventana x normal después del inicio. Incluso si puede ver la interfaz de inicio de sesión de gdm, el efecto es muy pobre. En este momento, necesita instalar el controlador nvidia. Utilice Ctrl+Alt+F1 para ingresar a la línea de comando de caracteres, ingrese su nombre de usuario y contraseña para iniciar sesión. # ps ax Encuentre procesos relacionados con gdm y cierre todos estos procesos; use sudo /etc/init.d/gdm stop. Puede haber un proceso que no esté cerrado: # Elimine el número de proceso y luego instale el controlador de la tarjeta gráfica nvidia. Por supuesto, primero debe descargar el controlador, ir al directorio donde se encuentra el controlador nvidia y ejecutar: # sh ./NVIDIA-Linux-x86-173.14.12-pkg1.run Luego reiniciar. Para utilizar los controladores de nvidia, debe hacer esto cada vez que actualice su kernel.

10. Las opciones del kernel relacionadas con las tarjetas de red inalámbrica incluyen Redes --->Inalámbricas --->Pila de redes IEEE 802.11 genérica (mac80211) y un controlador para 4965. 4965

El controlador de la tarjeta inalámbrica está integrado en el kernel, pero no se puede utilizar sin firmware.

Aunque el controlador de la tarjeta de red inalámbrica 4965 se ha compilado en el kernel, no hay firmware. Debe copiar el firmware del kernel original al directorio correspondiente al nuevo kernel. El nombre debe ser coherente con el kernel Mi kernel es linux-image-2.6.25.10dell1400 y el nombre del directorio creado. es 2.6.25.10dell1400. Código: Comando específico: $ cd // lib/firmware/$ s lib/firmware/$ sudo mkdir 2.6.25.10dell1400 Copie el firmware de 4965 del kernel anterior. $ sudo cp 2.6.24-16-generic/* 2.6.25.10dell1400/ El comando anterior es equivalente al siguiente comando: $ cd /lib/firmware/$ sudo cp -R 2.6.24-16-generic/ 2.6.25.10 dell1400/

Reinicie el sistema y la tarjeta de red inalámbrica funcionará normalmente.

La configuración de la máquina utilizada para la compilación es: Dell Vostro 1400, T8100, tarjeta gráfica NVIDIA 8400cs, tarjeta de sonido con chip SigmaTel STAC9228 incorporado, tarjeta de red inalámbrica 4965, tarjeta de red Gigabit BCM5906M, memoria 3G, 160G disco duro, grabación combinada.

Versión del sistema compilado: ubuntu 8.04 escritorio.