Rozpoczęcie od domyślnej konfiguracji lub takiej, o której wiesz, że już działa, jest dobrym pomysłem. Uwaga, w przypadku Pi 2 należy użyć:
make bcm2709_defconfig
Zamiast bcmrpi_defconfig
.
Zauważ, że jeśli chcesz uniknąć blokowania istniejącej instalacji jądra tej samej wersji, ustaw Ogólne ustawienia -> Wersja lokalna - dołącz do ciągu wydania jądra na unikalną wartość.
Użyłem .config
stąd właściwych etykiet , sans CONFIG_ ; jeśli używasz np., make menuconfig
możesz znaleźć odpowiednią opcję za pomocą wyszukiwania (ukośnik /). Etykiety te są również używane u góry strony „Pomoc” dla każdej opcji. Zauważ, że termin enable (d) odnosi się do czegoś, co powoduje pojawienie się opcji, w odróżnieniu od faktycznego wyboru opcji do zbudowania.
Jeżeli istnieją różnice między płytami A / B / B + / A + a Pi 2, jest to zaznaczone. W niektórych miejscach jest to różnica między rodzinami Broadcom 2708 i 2709, ale w innych miejscach Pi 2 używa tej samej opcji 2708 (lub 2835) jak inne płyty.
System
W przypadku A / A + / B / B +:
- ARCH_BCM2708 (typ systemu -> typ systemu uzbrojenia -> rodzina Broadcom BCM2708)
W przypadku Pi 2:
- ARCH_BCM2709 (Typ systemu -> Typ uzbrojenia -> Rodzina Broadcom BCM2709) ... To jest na samym dole listy, a nie w kolejności alfabetycznej.
- SMP (Funkcje jądra -> Symetryczne przetwarzanie wieloprocesowe)
- NEON (Emulacja zmiennoprzecinkowa -> Zaawansowana obsługa rozszerzenia SIMD (Neon)) oraz „Obsługa NEON w trybie jądra”.
Podział pamięci jądra:
Z powodu problemów z kilkoma starszymi programami , domyślna konfiguracja może korzystać z 3G / 1G tutaj, co pozostawia 25% pamięci RAM Pi 2 niedostępne dla przestrzeni użytkownika. Jeśli martwisz się tym, sprawdź Funkcje jądra -> Podział pamięci .
karta SD
Oczywiście nie mogą to być moduły, ponieważ są potrzebne do uzyskania dostępu /lib/modules
; muszą być wbudowane. Znajdują się one w sekcji „Sterowniki urządzeń” w menuconfig.
- MMC (obsługa kart MMC / SD / SDIO): Niezbędne, aby uzyskać opcje dla sterownika mmc, ale niewystarczające. W ramach tych opcji:
- MMC_BCM2835 (obsługa MMC w BCM2835).
- MMC_BCM2835_DMA (obsługa DMA w kontrolerze Arasan BCM2835): Włączone, ale nie wybrane przez MMC_BCM2835.
- MMC_SDHCI (obsługa interfejsu Secure Digital Host Controller Interface)
Ponieważ partycja główna jest zwykle sformatowana na zewnątrz, potrzebujesz również wbudowanej:
- EXT4_FS (system plików Extended 4 (ext4)) w sekcji „Systemy plików”. Prawdopodobnie ext2 i ext3 też są dobrym pomysłem.
Partycja rozruchowa to vfat, więc:
- VFAT_FS (obsługa fs VFAT (Windows-95)) znajduje się w „Systemach plików -> Systemy plików DOS / FAT / NT”.
Różne
Są to różne rzeczy, których (prawie na pewno) potrzebujesz, więc wymieniłem je najpierw.
- VFP (matematyczne zmiennoprzecinkowe w formacie VFP) w części „Emulacja zmiennoprzecinkowa”.
- UNIX (gniazda domeny Unix) w sekcji „Obsługa sieci”. Będzie to wymagało podstawowego oprogramowania systemowego, nawet jeśli nie wykonujesz prawdziwej pracy w sieci.
- BINFMT_ELF (Wsparcie jądra dla plików binarnych ELF) w „Formatach binarnych przestrzeni użytkownika”.
- TTY (Włącz TTY) w sekcji „Sterowniki urządzeń -> Urządzenia znaków”; włącza to VT (terminal wirtualny) i UNIX98_PTYS (obsługa PTY w Uniksie98), które należy wybrać. VT następnie włącza VT_CONSOLE (obsługa konsoli na terminalu wirtualnym) i CONSOLE_TRANSLATIONS (Włącz tłumaczenie znaków w konsoli), które również powinny zostać wybrane.
- PROC_FS , SYSFS i TMPFS w sekcji „Systemy plików -> Pseudo systemy plików”.
- SERIAL_AMBA_PL011 (obsługa portu szeregowego ARM AMBA PL011) w sekcji „Sterowniki urządzeń -> Urządzenia znaków -> Sterowniki szeregowe” i SERIAL_AMBA_PL011_CONSOLE (Obsługa konsoli na porcie szeregowym AMBA). Systemy Raspbian będą narzekać na „/ dev / ttyAMA0: Brak takiego pliku lub katalogu” bez tego.
- MAILBOX i BCM2708_MBOX (w jądrach 4.x). Jest to Sterowniki urządzeń-> Obsługa sprzętu skrzynki pocztowej i opcja BCM 2708 w podmenu. Zobacz odpowiedź Zuba .
USB
- USB (obsługa USB po stronie hosta), w „Sterownikach urządzeń -> Obsługa USB”, umożliwiając USB_DWCOTG (obsługa hosta DWC Synopsis) w dół strony, którą również należy wybrać.
- USB_ANNOUNCE_NEW_DEVICES (Sterowniki urządzeń -> Obsługa USB -> USB ogłaszają nowe urządzenia).
- USB_DEFAULT_PERSIST (Sterowniki urządzeń -> Obsługa USB -> Domyślnie włącz USB trwa ).
W przypadku klawiatur i myszy:
- HID_GENERIC (Ogólny sterownik HID) w „Sterownikach urządzeń-> Obsługa HID”
- Następnie w „Obsługa USB HID”: USB_HID (warstwa transportowa USB HID)
- INPUT_MOUSEDEV (interfejs myszy) w „Sterownikach urządzeń -> Obsługa urządzeń wejściowych”.
W przypadku dysków twardych:
- SCSI (obsługa urządzeń SCSI), a następnie BLK_DEV_SD (obsługa dysków SCSI) w „Sterownikach urządzeń -> Obsługa SCSI”.
- USB_STORAGE (obsługa pamięci masowej USB) w „Sterownikach urządzeń -> Obsługa USB”.
W przypadku tetheringu urządzeń z Androidem zobacz moją odpowiedź tutaj .
Ethernet
Najpierw należy włączyć USB.
NET (obsługa sieci), opcja najwyższego poziomu; wewnątrz które są:
- PAKIET (gniazdo pakietu).
- INET (sieci TCP / IP). Powinno to umożliwić szereg domyślnych ustawień związanych z adresem IP, które można pozostawić.
- NETFILTER ( Framework filtrowania pakietów sieciowych), niezbędny do zapory ogniowej filtru pakietów "tabel IP" w jądrze.
NETDEVICES (obsługa urządzeń sieciowych) w „Sterownikach urządzeń”, a następnie:
- NET_CORE (obsługa podstawowych sterowników sieciowych).
- USB_NET_DRIVERS (Adaptery sieciowe USB) ->
- USB_USBNET (Multi-purpose USB Networking Framework).
- USB_NET_SMSC95XX (urządzenia Ethernet 2.0 oparte na SMSC LAN95XX USB 2.0 10/100)
Dźwięk
Aby włączyć dźwięk na pokładzie:
- DŹWIĘK (w sterownikach urządzeń), a następnie:
- SND (Advanced Linux Sound Architecture) i tym, że:
- SND_ARM (urządzenia dźwiękowe ARM) i wreszcie w tym SND_BCM2835 (sterownik ALSA BCM2835)
Wideo
- CONFIG_BCM2708_VCHIQ (Sterowniki urządzeń -> Różne urządzenia -> Videocore VCHIQ).
Do obsługi serwera X nie trzeba nic więcej; nie ma opcji sterownika DRI dla SoC pi.
Jeśli chcesz korzystać z bufora ramki, która umożliwia takie aplikacje jak fbi
i omxplayer
do wyświetlania grafiki zewnętrznej X:
- FB (Sterowniki urządzeń -> Obsługa grafiki -> Urządzenia bufora ramki -> Obsługa urządzeń buforujących ramki), a następnie w tym samym menu, FB_BCM2708 (obsługa bufora ramki BCM2708).
Jeśli to zrobisz i chcesz pingwina (a raczej maliny) na konsoli rozruchowej, pamiętaj LOGO (logo rozruchowe ) w obszarze Obsługa grafiki.
Możesz także spojrzeć na opcje w obszarze Typ systemu -> Implementacje Broadcom2708 (lub 9) .
GPIO / I 2 C.
- BCM2708_GPIO (Typ systemu -> Implementacje Broadcom BCM2708) Lub dla Pi 2, odpowiednia opcja BCM2709.
- GPIO_SYSFS (Sterowniki urządzeń -> Obsługa GPIO) dla
/sys/class/gpio
interfejsu.
- I2C (sterowniki urządzeń -> obsługa I2C), która włącza I2C_CHARDEV (interfejs urządzenia I2C). Następnie w sekcji „Obsługa magistrali sprzętowej I2C”:
- I2C_BCM2708 (BCM2708 BSC).
Raspicam
- MEDIA_CAMERA_SUPPORT (Sterowniki urządzeń -> Obsługa multimediów -> Obsługa kamer / grabberów wideo).
- V4L_PLATFORM_DRIVERS ( Sterowniki urządzeń -> Obsługa multimediów -> Urządzenia platformy V4L "). To umożliwia podmenu, w którym chcesz wybrać:
- CONFIG_SOC_CAMERA (obsługa kamery SoC).
- CONFIG_VIDEO_BCM2835 (sterownik interfejsu kamery Broadcom BCM2835). Umożliwia to „sterownik interfejsu kamery Broadcom BM2835 MMAL ( CONFIG_VIDEO_BCM2835_MMAL ), który należy również wybrać.
Czujnik termiczny
Masz tutaj wybór; jeśli spróbujesz wybrać oba, pierwszy zostanie anulowany (chociaż możesz zbudować jeden jako moduł, zmienić konfigurację, zbudować drugi i użyć ich obu, jeśli naprawdę chcesz).
- SENSORS_BCM2835 ( Sterowniki urządzeń-> Wsparcie monitorowania sprzętu-> Sterownik Broadcom BCM2835 HWMON). Znajduje się na dole listy, jeśli nie wybierzesz poniżej „BCM2835 Thermal Driver”. Daje dostęp do materiałów termicznych w
/sys/devices/platform/bcm2835_hwmon
- temp1_input
i temp1_max
. Pierwsza jest taka sama /sys/devices/virtual/thermal/thermal_zone0/temp
; ta ostatnia wynosi zawsze 85000 (tj. 85 ° C).
- THERMAL_BCM2835 ( Sterowniki urządzeń-> Ogólny sterownik sysfs termiczny-> Sterownik termiczny BCM2835). Wybierz także Sterowniki urządzeń-> Wsparcie monitorowania sprzętu (ale nie indywidualny sterownik w tym menu), aby pojawiło się tutaj „Ujawnij czujniki termiczne jako urządzenie hwmon” i możesz to wybrać (4.0.y nie ma tego). Wybranie tego spowoduje odznaczenie SENSORS_BCM2835 powyżej. Daje dostęp do łatwiejszego do zapamiętania i znalezienia,
/sys/class/devices/virtual/thermal/thermal_zone0
które zawiera temp
i trip_point_0_temp
(to samo, co temp1_max
powyżej). Różne monitory przestrzeni użytkownika prawdopodobnie wolą to i mogą bez niego nie działać.