Iniziare con la configurazione predefinita, o quella che sai già funziona, è una buona idea. Attenzione che per il Pi 2 dovresti usare:
make bcm2709_defconfig
Invece di bcmrpi_defconfig
.
Si noti che se si desidera evitare di bloccare un'installazione del kernel esistente della stessa versione, impostare Installazione generale -> Versione locale - aggiungere alla stringa di rilascio del kernel su un valore univoco.
Ho usato le etichette attuali da .config
qui, senza CONFIG_ ; se stai usando ad es. make menuconfig
, puoi trovare l'opzione pertinente con la ricerca (barra /). Queste etichette vengono utilizzate anche nella parte superiore della pagina "Guida" per ciascuna opzione. Si noti che il termine abilita (d) si riferisce a qualcosa che fa apparire un'opzione, distinto dalla selezione effettiva dell'opzione da costruire.
Dove ci sono differenze tra le schede A / B / B + / A + e Pi 2, questo è indicato. In alcuni punti questa è la differenza tra le famiglie Broadcom 2708 e 2709, ma in altri punti Pi 2 utilizza la stessa opzione 2708 (o 2835) delle altre schede.
Sistema
Per A / A + / B / B +:
- ARCH_BCM2708 (Tipo di sistema -> Tipo di sistema braccio -> Famiglia Broadcom BCM2708)
Per Pi 2:
- ARCH_BCM2709 (Tipo sistema -> Tipo sistema braccio -> Famiglia Broadcom BCM2709) ... Si trova in fondo all'elenco e non in ordine alfabetico.
- SMP (Funzionalità del kernel -> Elaborazione multipla simmetrica)
- NEON (Emulazione in virgola mobile -> Supporto avanzato SIMD (Neon) Extension) E "Supporto per NEON in modalità kernel".
Divisione memoria del kernel:
A causa di problemi con un paio di software legacy , la configurazione predefinita può utilizzare 3G / 1G qui che lascerà il 25% della RAM del Pi 2 non disponibile nello spazio utente. Se sei preoccupato per questo, controlla le caratteristiche del kernel -> Dividi memoria .
scheda SD
Questi non possono essere moduli, ovviamente, poiché sono necessari per accedere /lib/modules
; devono essere integrati. Sono nella sezione "Driver di dispositivo" di menuconfig.
- MMC (supporto scheda MMC / SD / SDIO): necessario per ottenere le opzioni per il driver mmc, ma non sufficiente. All'interno di tali opzioni:
- MMC_BCM2835 (supporto MMC su BCM2835).
- MMC_BCM2835_DMA (supporto DMA sul controller Arasan BCM2835): abilitato ma non selezionato da MMC_BCM2835.
- MMC_SDHCI (supporto dell'interfaccia del controller host digitale sicuro)
Poiché la partizione di root è in genere ext formattata, si desidera anche che sia integrata:
- EXT4_FS (Il filesystem Extended 4 (ext4)) in "File system". Probabilmente ext2 ed ext3 sono anche una buona idea.
La partizione di avvio è vfat, quindi:
- VFAT_FS (VFAT (Windows-95) fs support) si trova in "File system -> File system DOS / FAT / NT".
miscellaneo
Queste sono varie cose di cui (quasi certamente) hai bisogno, quindi le ho elencate per prime.
- VFP (matematica in virgola mobile in formato VFP) in "Emulazione in virgola mobile".
- UNIX (socket di dominio Unix) in "Supporto di rete". Il software di sistema di base lo richiederà anche se non si sta effettuando alcuna vera rete.
- BINFMT_ELF (supporto del kernel per i binari ELF) in "Formati binari di Userspace".
- TTY (Abilita TTY) in "Driver di dispositivo -> Dispositivi carattere"; ciò abilita VT (Terminale virtuale) e UNIX98_PTYS (supporto Unix98 PTY) che è necessario selezionare. VT quindi abilita VT_CONSOLE (supporto per console sul terminale virtuale) e CONSOLE_TRANSLATIONS (abilita traduzioni di caratteri nella console) che dovrebbero anche essere selezionate.
- PROC_FS , SYSFS e TMPFS in "File system -> File system pseudo".
- SERIAL_AMBA_PL011 (supporto per porta seriale ARM AMBA PL011) in "Driver dispositivo -> Dispositivi carattere -> Driver seriali" e SERIAL_AMBA_PL011_CONSOLE (Supporto per console su porta seriale AMBA). I sistemi Raspbian si lamenteranno di "/ dev / ttyAMA0: nessun file o directory" senza questo.
- MAILBOX e BCM2708_MBOX (su kernel 4.x). Questo è Device Driver-> Mailbox Hardware Support e l'opzione BCM 2708 nel sottomenu. Vedi la risposta di zub .
USB
- USB (supporto per USB lato host), in "Driver di dispositivo -> Supporto USB", abilitando USB_DWCOTG (supporto host sinossi DWC) nella pagina, che dovrebbe anche essere selezionato.
- USB_ANNOUNCE_NEW_DEVICES (Driver di dispositivo -> Supporto USB -> USB annuncia nuovi dispositivi).
- USB_DEFAULT_PERSIST (Driver di periferica -> Supporto USB -> Abilita persistenza USB per impostazione predefinita).
Per tastiere e mouse:
- HID_GENERIC (driver HID generico) in "Driver di dispositivo-> Supporto HID"
- Quindi in "Supporto USB HID": USB_HID (livello di trasporto USB HID)
- INPUT_MOUSEDEV (interfaccia mouse) in "Driver di dispositivo -> Supporto dispositivo di input".
Per i dischi rigidi:
- SCSI (supporto dispositivo SCSI) e poi BLK_DEV_SD (supporto disco SCSI) in "Driver di dispositivo -> Supporto SCSI".
- USB_STORAGE (supporto di archiviazione di massa USB) in "Driver di dispositivo -> Supporto USB".
Per il tethering dei dispositivi Android, vedi la mia risposta qui .
Ethernet
USB deve prima essere abilitato.
NET (supporto di rete), un'opzione di livello superiore; all'interno che ci sono:
- PACCHETTO (presa pacchetto).
- INET (rete TCP / IP). Ciò dovrebbe consentire una varietà di impostazioni predefinite relative all'IP che è possibile lasciare.
- NETFILTER (Framework di filtraggio dei pacchetti di rete), necessario per il firewall del filtro pacchetti "ip tables" del kernel.
NETDEVICES (supporto per dispositivi di rete) in "Device Drivers", quindi:
- NET_CORE (supporto driver di rete principale).
- USB_NET_DRIVERS (Schede di rete USB) ->
- USB_USBNET (Framework di rete USB multiuso).
- USB_NET_SMSC95XX (dispositivi Ethernet 10/100 USB 2.0 LAN95XX basati su SMSC)
Suono
Per abilitare il suono integrato:
- SUONO (nei driver di dispositivo), quindi:
- SND (Advanced Linux Sound Architecture) e in quanto:
- SND_ARM (dispositivi audio ARM) e infine in quel SND_BCM2835 (driver ALSA BCM2835)
video
- CONFIG_BCM2708_VCHIQ (Driver di dispositivo -> Dispositivi vari -> Videocore VCHIQ).
Non è necessario altro per il supporto di X server; non ci sono opzioni di driver DRI per il SoC del pi.
Se si desidera utilizzare il framebuffer, che consente ad applicazioni come fbi
e omxplayer
di visualizzare elementi grafici al di fuori di X:
- FB (Device Devices -> Graphics Support -> Frame buffer Devices -> Support for frame buffer devices), quindi nello stesso menu, FB_BCM2708 (supporto framebuffer BCM2708).
Se lo fai e vuoi il pinguino (o meglio, il lampone) sulla console di avvio, ricorda LOGO (logo di avvio ) in Supporto grafico.
Potresti anche voler esaminare le opzioni in Tipo di sistema -> Broadcom2708 (o 9) Implements .
GPIO / I 2 C
- BCM2708_GPIO (Tipo di sistema -> Broadcom BCM2708 Implementsations) O per Pi 2, l'opzione BCM2709 corrispondente.
- GPIO_SYSFS (Driver di dispositivo -> Supporto GPIO) per l'
/sys/class/gpio
interfaccia.
- I2C (Driver dispositivo -> Supporto I2C), che abilita I2C_CHARDEV (interfaccia dispositivo I2C). Quindi in "Supporto bus hardware I2C":
- I2C_BCM2708 (BCM2708 BSC).
Raspicam
- MEDIA_CAMERA_SUPPORT (Driver di dispositivo -> Supporto multimediale -> Supporto per telecamere / video grabber).
- V4L_PLATFORM_DRIVERS ( Driver di dispositivo-> Supporto multimediale -> Dispositivi della piattaforma V4L "). Ciò abilita un sottomenu in cui si desidera selezionare:
- CONFIG_SOC_CAMERA (SoC Camera Support).
- CONFIG_VIDEO_BCM2835 (driver dell'interfaccia della telecamera Broadcom BCM2835). Ciò abilita il "driver di interfaccia telecamera MMAL Broadcom BM2835 ( CONFIG_VIDEO_BCM2835_MMAL ) che è necessario selezionare anche.
Sensore termico
Hai una scelta qui; se provi a scegliere entrambi, il primo verrà annullato (anche se puoi crearne uno come modulo, cambiare la configurazione, costruire l'altro e usarli entrambi se vuoi davvero).
- SENSORS_BCM2835 ( Driver dispositivo-> Supporto monitoraggio hardware-> Driver Broadcom BCM2835 HWMON). Si trova in fondo all'elenco se non si seleziona "Driver termico BCM2835", di seguito. Ti dà accesso alle cose termiche in
/sys/devices/platform/bcm2835_hwmon
- temp1_input
e temp1_max
. Il primo è lo stesso /sys/devices/virtual/thermal/thermal_zone0/temp
; quest'ultimo è sempre 85000 (ovvero 85 ° C).
- THERMAL_BCM2835 ( Driver dispositivo-> Driver generico sysfs termico-> Driver termico BCM2835). Scegli anche Driver di dispositivo-> Supporto per il monitoraggio dell'hardware (ma non il singolo driver in quel menu) in modo che "Esporre i sensori termici come dispositivo hwmon" appaia qui e puoi scegliere quello (4.0.y sembra non avere questo). La scelta di questo annullerà SENSORS_BCM2835, sopra. Ti dà accesso al più facile da ricordare e trovare
/sys/class/devices/virtual/thermal/thermal_zone0
quali include temp
e trip_point_0_temp
(lo stesso di temp1_max
, sopra). Vari monitor dello spazio utente probabilmente preferiranno questo e potrebbero non funzionare senza di esso.