Comenzar con la configuración predeterminada, o una que ya sabe que funciona, es una buena idea. Tenga en cuenta que para el Pi 2 , debe usar:
make bcm2709_defconfig
En lugar de bcmrpi_defconfig
.
Tenga en cuenta que si desea evitar bloquear una instalación de kernel existente de la misma versión, configure la Configuración general -> Versión local - agregue la cadena de liberación del kernel a un valor único.
He usado las etiquetas reales desde .config
aquí, sin CONFIG_ ; si está utilizando, por ejemplo, make menuconfig
puede encontrar la opción relevante con la búsqueda (barra diagonal /). Estas etiquetas también se utilizan en la parte superior de la página de "Ayuda" para cada opción. Tenga en cuenta que el término habilitar (d) se refiere a algo que hace que aparezca una opción, distinta de seleccionar realmente la opción a construir.
Donde hay diferencias entre los tableros A / B / B + / A + y el Pi 2, esto se indica. En algunos lugares, esta es la diferencia entre las familias Broadcom 2708 y 2709, pero en otros lugares, el Pi 2 usa la misma opción 2708 (o 2835) que las otras placas.
Sistema
Para A / A + / B / B +:
- ARCH_BCM2708 (Tipo de sistema -> Tipo de sistema de brazo -> Familia Broadcom BCM2708)
Para Pi 2:
- ARCH_BCM2709 (Tipo de sistema -> Tipo de sistema de armado -> Familia Broadcom BCM2709) ... Esto se encuentra al final de la lista y no en orden alfabético.
- SMP (Características del núcleo -> Procesamiento múltiple simétrico)
- NEON (Emulación de punto flotante -> Soporte avanzado de extensión SIMD (Neon)) Y "Soporte para NEON en modo kernel".
Kernel Memory Split:
Debido a problemas con un par de piezas de software heredado , la configuración predeterminada puede usar 3G / 1G aquí, lo que dejará el 25% de la RAM de Pi 2 no disponible para el espacio del usuario. Si le preocupa esto, verifique las Características del núcleo -> División de memoria .
tarjeta SD
Estos no pueden ser módulos, obviamente, ya que son necesarios para acceder /lib/modules
; deben estar incorporados. Están en la sección "Controladores de dispositivo" de menuconfig.
- MMC (soporte de tarjeta MMC / SD / SDIO): necesario para obtener opciones para el controlador mmc, pero no suficiente. Dentro de esas opciones:
- MMC_BCM2835 (soporte MMC en BCM2835).
- MMC_BCM2835_DMA (soporte DMA en el controlador Arasan BCM2835): habilitado pero no seleccionado por MMC_BCM2835.
- MMC_SDHCI (compatibilidad con la interfaz Secure Digital Host Controller)
Dado que la partición raíz generalmente tiene un formato ext, también desea que esté integrada:
- EXT4_FS (El sistema de archivos extendido 4 (ext4)) en "Sistemas de archivos". Probablemente ext2 y ext3 también sean una buena idea.
La partición de arranque es vfat, entonces:
- VFAT_FS (VFAT (Windows-95) fs support) está en "Sistemas de archivos -> Sistemas de archivos DOS / FAT / NT".
Diverso
Estas son varias cosas que (casi con toda seguridad) necesita, así que las he enumerado primero.
- VFP (matemática de punto flotante en formato VFP) en "Emulación de punto flotante".
- UNIX (zócalos de dominio Unix) en "Soporte de redes". El software del sistema básico requerirá esto incluso si no está haciendo ninguna red real.
- BINFMT_ELF (soporte de kernel para binarios ELF) en "Formatos binarios de espacio de usuario".
- TTY (Habilite TTY) en "Controladores de dispositivo -> Dispositivos de caracteres"; esto habilita VT (terminal virtual) y UNIX98_PTYS (soporte Unix98 PTY) que debe seleccionar. VT luego habilita VT_CONSOLE (Soporte para consola en terminal virtual) y CONSOLE_TRANSLATIONS (Habilita traducciones de caracteres en consola) que también deben seleccionarse.
- PROC_FS , SYSFS y TMPFS en "Sistemas de archivos -> Pseudo sistemas de archivos".
- SERIAL_AMBA_PL011 (soporte de puerto serie AMB PL011 de ARM) en "Controladores de dispositivo -> Dispositivos de caracteres -> Controladores de serie" y SERIAL_AMBA_PL011_CONSOLE (Soporte para consola en puerto serie AMBA). Los sistemas Raspbian se quejarán de "/ dev / ttyAMA0: No existe tal archivo o directorio" sin esto.
- BUZÓN y BCM2708_MBOX (4.x en granos). Esto es Controladores de dispositivo-> Soporte de hardware de buzón y la opción BCM 2708 en el submenú. Ver la respuesta de zub .
USB
- USB (Soporte para USB del lado del host), en "Controladores de dispositivo -> Soporte USB", habilitando USB_DWCOTG (Sinopsis de soporte del host DWC) en la página, que también debe seleccionarse.
- USB_ANNOUNCE_NEW_DEVICES (Controladores de dispositivo -> Soporte USB -> USB anuncia nuevos dispositivos).
- USB_DEFAULT_PERSIST (Controladores de dispositivo -> Soporte USB -> Activar persistencia USB por defecto).
Para teclados y ratones:
- HID_GENERIC (controlador HID genérico) en "Controladores de dispositivo-> Soporte HID"
- Luego, en "Soporte USB HID": USB_HID (capa de transporte USB HID)
- INPUT_MOUSEDEV (interfaz del mouse) en "Controladores de dispositivo -> Soporte de dispositivo de entrada".
Para discos duros:
- SCSI (soporte de dispositivo SCSI) y luego BLK_DEV_SD (soporte de disco SCSI) en "Controladores de dispositivo -> Soporte SCSI".
- USB_STORAGE (soporte de almacenamiento masivo USB) en "Controladores de dispositivo -> Soporte USB".
Para conectar dispositivos Android, vea mi respuesta aquí .
Ethernet
El USB debe estar habilitado primero.
NET (soporte de red), una opción de nivel superior; dentro de eso están:
- PAQUETE (zócalo de paquete).
- INET (redes TCP / IP). Esto debería permitir una variedad de valores predeterminados relacionados con IP que puede dejar.
- NETFILTER (marco de filtrado de paquetes de red), necesario para el cortafuegos del filtro de paquetes "tablas ip" del núcleo.
NETDEVICES (soporte de dispositivo de red) en "Controladores de dispositivo", luego:
- NET_CORE (soporte de controlador de núcleo de red).
- USB_NET_DRIVERS (adaptadores de red USB) ->
- USB_USBNET (Marco de red USB multipropósito).
- USB_NET_SMSC95XX (dispositivos Ethernet 2.0 10/100 basados en SMSC LAN95XX)
Sonido
Para habilitar el sonido integrado:
- SONIDO (en Controladores de dispositivo), luego:
- SND (Advanced Linux Sound Architecture) y en eso:
- SND_ARM (dispositivos de sonido ARM) y finalmente en ese SND_BCM2835 (controlador ALSA BCM2835)
Vídeo
- CONFIG_BCM2708_VCHIQ (Controladores de dispositivo -> Varios dispositivos -> Videocore VCHIQ).
No se necesita nada más para el soporte del servidor X; no hay opciones de controlador DRI para el SoC del pi.
Si desea usar el framebuffer, que permite que aplicaciones como fbi
y omxplayer
muestren gráficos fuera de X:
- FB (Controladores de dispositivo -> Soporte de gráficos -> Dispositivos de búfer de cuadro -> Soporte para dispositivos de búfer de cuadro), luego en el mismo menú, FB_BCM2708 ( Soporte de búfer de cuadro BCM2708).
Si hace esto y quiere el pingüino (o más bien, la frambuesa) en la consola de arranque, recuerde LOGO (logotipo de arranque) en Soporte de gráficos.
También es posible que desee ver las opciones en Tipo de sistema -> Implementaciones Broadcom2708 (o 9) .
GPIO / I 2 C
- BCM2708_GPIO (Tipo de sistema -> Implementaciones Broadcom BCM2708) O para Pi 2, la opción BCM2709 correspondiente.
- GPIO_SYSFS (Controladores de dispositivo -> Soporte GPIO) para la
/sys/class/gpio
interfaz.
- I2C (Controladores de dispositivo -> Soporte I2C), que habilita I2C_CHARDEV (interfaz de dispositivo I2C). Luego, en "Soporte de bus de hardware I2C":
- I2C_BCM2708 (BCM2708 BSC).
Raspicam
- MEDIA_CAMERA_SUPPORT (Controladores de dispositivo -> Soporte multimedia -> Soporte de cámaras / video grabbers).
- V4L_PLATFORM_DRIVERS ( Controladores de dispositivo-> Soporte multimedia -> Dispositivos de plataforma V4L "). Esto habilita un submenú donde desea seleccionar:
- CONFIG_SOC_CAMERA (SoC Camera Support).
- CONFIG_VIDEO_BCM2835 (controlador de interfaz de cámara Broadcom BCM2835). Esto habilita el controlador de interfaz de cámara Broadcom BM2835 MMAL ( CONFIG_VIDEO_BCM2835_MMAL ) que también debe seleccionar.
Sensor termal
Tienes una opción aquí; si intenta elegir ambos, el primero se cancelará (aunque puede compilar uno como módulo, cambiar la configuración, compilar el otro y usarlos ambos si realmente lo desea).
- SENSORS_BCM2835 ( Controladores de dispositivo-> Soporte de monitoreo de hardware-> Controlador Broadcom BCM2835 HWMON). Esto se encuentra al final de la lista si no selecciona "Controlador térmico BCM2835", a continuación. Le da acceso a material térmico en
/sys/devices/platform/bcm2835_hwmon
- temp1_input
y temp1_max
. Lo primero es lo mismo /sys/devices/virtual/thermal/thermal_zone0/temp
; este último es siempre 85000 (es decir, 85 ° C).
- THERMAL_BCM2835 ( Controladores de dispositivo-> Controlador sysfs térmico genérico-> Controlador térmico BCM2835). También elija Controladores de dispositivo-> Soporte de monitoreo de hardware (pero no el controlador individual en ese menú) para que aparezca "Exponer sensores térmicos como dispositivo hwmon" aquí y puede elegir eso (4.0.y parece no tener esto). Al elegir esto, se elegirá SENSORS_BCM2835, arriba. Le da acceso a lo más fácil de recordar y encontrar,
/sys/class/devices/virtual/thermal/thermal_zone0
que incluye temp
y trip_point_0_temp
(lo mismo que temp1_max
arriba). Varios monitores de espacio de usuario probablemente preferirán esto y pueden no funcionar sin él.