Хорошей идеей будет начать с конфигурации по умолчанию, которая уже работает. Помните, что для Pi 2 вы должны использовать:
make bcm2709_defconfig
Вместо bcmrpi_defconfig
.
Обратите внимание, что если вы хотите избежать путаницы в существующей установке ядра той же версии, задайте для параметра Общие настройки -> Локальная версия - добавьте к строке выпуска ядра уникальное значение.
Я использовал настоящие ярлыки .config
отсюда, без CONFIG_ ; если вы используете, например, make menuconfig
вы можете найти соответствующую опцию с поиском (косая черта /). Эти ярлыки также используются в верхней части страницы «Справка» для каждого параметра. Обратите внимание, что термин enable (d) относится к чему-то, что вызывает появление опции, в отличие от фактического выбора опции для сборки.
Если есть различия между платами A / B / B + / A + и Pi 2, это указывается. В некоторых местах это разница между семействами Broadcom 2708 и 2709, но в других местах Pi 2 использует ту же опцию 2708 (или 2835), что и другие платы.
система
Для A / A + / B / B +:
- ARCH_BCM2708 (Тип системы -> Тип системы охраны -> Семейство Broadcom BCM2708)
Для Pi 2:
- ARCH_BCM2709 (Тип системы -> Тип системы охраны -> Семейство Broadcom BCM2709) ... Это находится в самом низу списка, а не в алфавитном порядке.
- SMP (функции ядра -> симметричная многопроцессорная обработка)
- NEON (эмуляция с плавающей точкой -> расширенная поддержка SIMD (Neon)) и «поддержка NEON в режиме ядра».
Разделение памяти ядра:
Из-за проблем с несколькими частями устаревшего программного обеспечения в конфигурации по умолчанию может использоваться 3G / 1G, в результате чего 25% оперативной памяти Pi 2 будут недоступны для пользовательского пространства. Если вас это беспокоит, проверьте Функции ядра -> Разделение памяти .
SD Card
Это не могут быть модули, очевидно, так как они необходимы для доступа /lib/modules
; они должны быть встроены. Они находятся в разделе «Драйверы устройств» menuconfig.
- MMC (поддержка карт MMC / SD / SDIO): необходимо получить параметры для драйвера mmc, но недостаточно. В рамках этих вариантов:
- MMC_BCM2835 (поддержка MMC на BCM2835).
- MMC_BCM2835_DMA (поддержка DMA на контроллере BCM2835 Arasan): включен, но не выбран MMC_BCM2835.
- MMC_SDHCI (поддержка интерфейса защищенного цифрового хост-контроллера)
Поскольку корневой раздел обычно имеет формат ext, вы также хотите встроенный:
- EXT4_FS (расширенная 4 (ext4) файловая система) в разделе «Файловые системы». Возможно, ext2 и ext3 тоже хорошая идея.
Загрузочный раздел vfat, поэтому:
- VFAT_FS (поддержка fs VFAT (Windows-95)) находится в разделе «Файловые системы -> Файловые системы DOS / FAT / NT».
Разнообразный
Это разные вещи, которые вам (почти наверняка) нужны, поэтому я перечислил их в первую очередь.
- VFP (математика с плавающей запятой в формате VFP) в разделе «Эмуляция с плавающей запятой».
- UNIX (доменные сокеты Unix) в разделе «Поддержка сети». Базовое системное программное обеспечение будет требовать этого, даже если вы не работаете в реальных сетях.
- BINFMT_ELF (поддержка ядра для двоичных файлов ELF) в разделе «Двоичные форматы пространства пользователя ».
- TTY (Включить TTY) в разделе «Драйверы устройств -> Символьные устройства»; это включает VT (Виртуальный терминал) и UNIX98_PTYS (поддержка Unix98 PTY), которые вы должны выбрать. Затем VT активирует VT_CONSOLE (поддержка консоли на виртуальном терминале) и CONSOLE_TRANSLATIONS (включить перевод символов в консоли), которые также должны быть выбраны.
- PROC_FS , SYSFS и TMPFS в разделе «Файловые системы -> Псевдо файловые системы».
- SERIAL_AMBA_PL011 (поддержка последовательного порта ARM AMBA PL011) в разделе «Драйверы устройств -> Символьные устройства -> Последовательные драйверы» и SERIAL_AMBA_PL011_CONSOLE (Поддержка консоли на последовательном порту AMBA). Raspbian системы будут жаловаться на «/ dev / ttyAMA0: нет такого файла или каталога» без этого.
- ЯЩИК и BCM2708_MBOX (на 4.х ядер). Это Драйверы устройств-> Поддержка оборудования почтового ящика и опция BCM 2708 в подменю. Смотрите ответ зуба .
USB
- USB (поддержка USB на стороне хоста) в разделе «Драйверы устройств -> Поддержка USB», включив USB_DWCOTG (поддержка хоста Synopsis DWC) вниз по странице, которую также следует выбрать.
- USB_ANNOUNCE_NEW_DEVICES (Драйверы устройств -> Поддержка USB -> USB объявляет о новых устройствах).
- USB_DEFAULT_PERSIST (Драйверы устройств -> Поддержка USB -> Включить сохранение USB по умолчанию).
Для клавиатур и мышей:
- HID_GENERIC (универсальный драйвер HID) в разделе «Драйверы устройств -> поддержка HID»
- Затем в «Поддержка USB HID»: USB_HID (транспортный уровень USB HID)
- INPUT_MOUSEDEV (интерфейс мыши) в разделе «Драйверы устройств -> Поддержка устройств ввода».
Для жестких дисков:
- SCSI (поддержка устройств SCSI), а затем BLK_DEV_SD (поддержка дисков SCSI) в разделе «Драйверы устройств -> Поддержка SCSI».
- USB_STORAGE (поддержка USB Mass Storage) в разделе «Драйверы устройств -> Поддержка USB».
Для привязки устройств Android, смотрите мой ответ здесь .
Ethernet
USB должен быть включен первым.
NET (поддержка сети), опция верхнего уровня; внутри это:
- ПАКЕТ (Пакетная розетка).
- INET (сеть TCP / IP). Это должно включить различные значения по умолчанию, связанные с IP, которые вы можете оставить.
- NETFILTER ( Фреймворк сетевой фильтрации пакетов), необходимый для брандмауэра фильтра пакетов ядра ip tables.
NETDEVICES (поддержка сетевых устройств) в разделе «Драйверы устройств», затем:
- NET_CORE (поддержка драйвера сетевого ядра).
- USB_NET_DRIVERS (сетевые адаптеры USB) ->
- USB_USBNET (многоцелевой сетевой интерфейс USB).
- USB_NET_SMSC95XX (основанные на SMSC LAN95XX устройства USB 2.0 10/100 Ethernet)
Звук
Чтобы включить встроенный звук:
- SOUND (в драйверах устройств), затем:
- SND (Advanced Linux Sound Architecture) и в этом:
- SND_ARM (звуковые устройства ARM) и, наконец, SND_BCM2835 (драйвер ALSA BCM2835)
видео
- CONFIG_BCM2708_VCHIQ (Драйверы устройств -> Разные устройства -> Videocore VCHIQ).
Больше ничего не требуется для поддержки X-сервера; для SoC пи нет опций драйвера DRI.
Если вы хотите использовать кадровый буфер, который позволяет таким приложениям, как fbi
и omxplayer
отображать графику вне X:
- FB (Драйверы устройств -> Поддержка графики -> Устройства с буфером кадров -> Поддержка устройств с буфером кадров), затем в том же меню FB_BCM2708 (поддержка кадрового буфера BCM2708).
Если вы делаете это и хотите, чтобы пингвин (или, скорее, малина) на загрузочной консоли, помните LOGO (логотип загрузки) в разделе «Поддержка графики».
Вы также можете посмотреть опции в Тип системы -> Broadcom2708 (или 9) Реализации .
GPIO / I 2 C
- BCM2708_GPIO (Тип системы -> Реализация Broadcom BCM2708) Или для Pi 2 соответствующая опция BCM2709.
- GPIO_SYSFS (Драйверы устройств -> Поддержка GPIO) для
/sys/class/gpio
интерфейса.
- I2C (драйверы устройств -> поддержка I2C), который включает I2C_CHARDEV (интерфейс устройства I2C). Затем в разделе «Поддержка аппаратной шины I2C»:
- I2C_BCM2708 (BCM2708 BSC).
Raspicam
- MEDIA_CAMERA_SUPPORT (Драйверы устройств -> Поддержка мультимедиа -> Поддержка камер / видеозахвата).
- V4L_PLATFORM_DRIVERS (Драйверы устройств-> Поддержка мультимедиа -> Устройства на платформе V4L "). Это открывает подменю, в котором вы хотите выбрать:
- CONFIG_SOC_CAMERA (поддержка камеры SoC).
- CONFIG_VIDEO_BCM2835 (драйвер интерфейса камеры Broadcom BCM2835). Это активирует драйвер интерфейса камеры Broadcom BM2835 MMAL ( CONFIG_VIDEO_BCM2835_MMAL ), который также следует выбрать.
Термодатчик
У вас есть выбор здесь; если вы попытаетесь выбрать оба, первый будет отменен (хотя вы можете собрать один как модуль, изменить конфигурацию, собрать другой и использовать их оба, если вы действительно этого хотите).
- SENSORS_BCM2835 (Драйверы устройств-> Поддержка мониторинга оборудования-> Драйвер Broadcom BCM2835 HWMON). Это внизу списка, если вы не выбрали «BCM2835 Thermal Driver», ниже. Это дает вам доступ к тепловому материалу в
/sys/devices/platform/bcm2835_hwmon
- temp1_input
и temp1_max
. Первое то же самое /sys/devices/virtual/thermal/thermal_zone0/temp
; последний всегда 85000 (т.е. 85 ° C).
- THERMAL_BCM2835 (Драйверы устройств -> Общий драйвер Thermal sysfs-> BCM2835 Thermal Driver). Также выберите «Драйверы устройств» - «Поддержка аппаратного мониторинга» (но не отдельный драйвер в этом меню), чтобы здесь отображалось сообщение «Выставлять термодатчики как устройство hwmon», и вы можете выбрать его (в версии 4.0.y этого нет). При выборе этого варианта будет выбран SENSORS_BCM2835 выше. Это дает вам доступ к легче запомнить и найти,
/sys/class/devices/virtual/thermal/thermal_zone0
что включает в себя temp
и trip_point_0_temp
(так же, как temp1_max
и выше). Различные мониторы пользовательского пространства, вероятно, предпочтут это и могут не работать без него.