Memulai dengan konfigurasi default, atau yang Anda tahu sudah berfungsi, adalah ide yang bagus. Waspadalah bahwa untuk Pi 2 , Anda harus menggunakan:
make bcm2709_defconfig
Alih-alih bcmrpi_defconfig
.
Perhatikan bahwa jika Anda ingin menghindari penginstalan instalasi kernel yang ada dari versi yang sama, atur Setup umum -> Versi lokal - tambahkan ke string rilis kernel ke nilai unik.
Saya telah menggunakan label aktual dari .config
sini, sans CONFIG_ ; jika Anda menggunakan misalnya,, make menuconfig
Anda dapat menemukan opsi yang relevan dengan pencarian (garis miring /). Label ini juga digunakan di bagian atas halaman "Bantuan" untuk setiap opsi. Perhatikan bahwa istilah enable (d) mengacu pada sesuatu yang menyebabkan opsi muncul, berbeda dengan memilih opsi yang akan dibangun.
Jika ada perbedaan antara papan A / B / B + / A + dan Pi 2, ini ditunjukkan. Di beberapa tempat ini adalah perbedaan antara keluarga Broadcom 2708 dan 2709, tetapi di tempat lain, Pi 2 menggunakan opsi 2708 (atau 2835) yang sama dengan papan lainnya.
Sistem
Untuk A / A + / B / B +:
- ARCH_BCM2708 (Tipe Sistem -> Tipe Sistem Arm -> keluarga Broadcom BCM2708)
Untuk Pi 2:
- ARCH_BCM2709 (Tipe Sistem -> Tipe Sistem Arm -> keluarga Broadcom BCM2709) ... Ini ada di bagian paling bawah dari daftar dan bukan dalam urutan abjad.
- SMP (Fitur Kernel -> Symmetric Multi-Processing)
- NEON (Floating Point Emulation -> Dukungan Ekstensi SIMD (Neon) Lanjut) Dan "Dukungan untuk NEON dalam mode kernel".
Pemecahan Memori Kernel:
Karena masalah dengan beberapa perangkat lunak warisan , konfigurasi default dapat menggunakan 3G / 1G di sini yang akan membuat 25% dari RAM Pi 2 tidak tersedia untuk ruang pengguna. Jika Anda khawatir tentang ini, periksa Fitur Kernel -> Memory Split .
kartu SD
Ini tidak bisa berupa modul, karena mereka diperlukan untuk mengakses /lib/modules
; mereka harus built-in. Mereka ada di bagian "Device Drivers" di menuconfig.
- MMC (dukungan kartu MMC / SD / SDIO): Diperlukan untuk mendapatkan opsi untuk driver mmc, tetapi tidak cukup. Di dalam opsi-opsi itu:
- MMC_BCM2835 (dukungan MMC pada BCM2835).
- MMC_BCM2835_DMA (dukungan DMA pada kontroler Arasan BCM2835): Diaktifkan tetapi tidak dipilih oleh MMC_BCM2835.
- MMC_SDHCI (dukungan Antarmuka Pengendali Host Digital Aman)
Karena partisi root biasanya diformat ekst, Anda juga menginginkan itu dibangun di:
- EXT4_FS (Sistem file Extended 4 (ext4)) di bawah "Sistem File". Mungkin ext2 dan ext3 juga merupakan ide bagus.
Partisi boot adalah vfat, jadi:
- VFAT_FS (VFAT (Windows-95) dukungan fs) berada di bawah "Sistem File -> Sistem File DOS / FAT / NT".
Lain-lain
Ini adalah berbagai hal yang Anda (hampir pasti) butuhkan, jadi saya telah mendaftarkannya terlebih dahulu.
- VFP (matematika floating point format-VFP) di bawah "Emulasi titik mengambang".
- UNIX (soket domain Unix) di bawah "Dukungan jaringan". Perangkat lunak sistem dasar akan memerlukan ini bahkan jika Anda tidak melakukan jaringan nyata.
- BINFMT_ELF (Dukungan kernel untuk binari ELF) dalam "format biner Userspace".
- TTY (Aktifkan TTY) di bawah "Device Drivers -> Character Devices"; ini memungkinkan VT (terminal Virtual) dan UNIX98_PTYS (dukungan Unix98 PTY) yang harus Anda pilih. VT kemudian mengaktifkan VT_CONSOLE (Dukungan untuk konsol pada terminal virtual) dan CONSOLE_TRANSLATIONS (Aktifkan terjemahan karakter di konsol) yang juga harus dipilih.
- PROC_FS , SYSFS , dan TMPFS di bawah "Sistem File -> Sistem File Pseudo".
- SERIAL_AMBA_PL011 (dukungan port serial ARM AMBA PL011) di bawah "Device Drivers -> Device Character -> Serial Drivers" dan SERIAL_AMBA_PL011_CONSOLE (Dukungan untuk konsol pada port serial AMBA). Sistem raspbian akan mengeluh tentang "/ dev / ttyAMA0: Tidak ada file atau direktori" tanpa ini.
- MAILBOX dan BCM2708_MBOX (pada kernel 4.x). Ini adalah Device Drivers-> Dukungan Perangkat Keras Kotak Surat dan opsi BCM 2708 di submenu. Lihat jawaban zub .
USB
- USB (Dukungan untuk USB sisi Host), dalam "Device Drivers -> USB Support", mengaktifkan USB_DWCOTG (dukungan host DWC Sinopsis) di bawah halaman, yang juga harus dipilih.
- USB_ANNOUNCE_NEW_DEVICES (Driver Perangkat -> Dukungan USB -> USB mengumumkan perangkat baru).
- USB_DEFAULT_PERSIST (Driver Perangkat -> Dukungan USB -> Aktifkan USB tetap ada secara default).
Untuk keyboard dan mouse:
- HID_GENERIC (Generic HID driver) di "Device Drivers-> HID support"
- Kemudian di "Dukungan USB HID": USB_HID (lapisan transport USB HID)
- INPUT_MOUSEDEV (Antarmuka tetikus) di "Driver Perangkat -> Dukungan Perangkat Input".
Untuk hard drive:
- SCSI (dukungan perangkat SCSI) dan kemudian BLK_DEV_SD (dukungan disk SCSI) di "Device Drivers -> SCSI Support".
- USB_STORAGE (dukungan Penyimpanan Massal USB) di "Driver Perangkat -> Dukungan USB".
Untuk tethering perangkat Android, lihat jawaban saya di sini .
Ethernet
USB harus diaktifkan terlebih dahulu.
NET (Dukungan jaringan), opsi tingkat atas; di dalamnya adalah:
- PAKET (Soket paket).
- INET (jaringan TCP / IP). Ini harus memungkinkan berbagai standar terkait IP yang dapat Anda tinggalkan.
- NETFILTER (Kerangka pemfilteran paket jaringan), diperlukan untuk firewall filter paket kernel "ip tables".
NETDEVICES (Dukungan perangkat jaringan) di "Device Drivers", lalu:
- NET_CORE (Dukungan driver inti jaringan).
- USB_NET_DRIVERS (Adaptor Jaringan USB) ->
- USB_USBNET (Kerangka Jaringan USB Multiguna).
- USB_NET_SMSC95XX (perangkat USB 2.0 10/100 ethernet berbasis SMSC LAN95XX)
Suara
Untuk mengaktifkan suara onboard:
- SUARA (dalam Driver Perangkat), maka:
- SND (Advanced Linux Sound Architecture) dan dalam hal itu:
- SND_ARM (perangkat suara ARM) dan akhirnya dalam SND_BCM2835 (driver BCM2835 ALSA)
Video
- CONFIG_BCM2708_VCHIQ (Driver Perangkat -> Perangkat Lain-lain -> Videocore VCHIQ).
Tidak ada lagi yang diperlukan untuk dukungan server X; tidak ada opsi driver DRI untuk pi SoC.
Jika Anda ingin menggunakan framebuffer, yang memungkinkan aplikasi seperti fbi
dan omxplayer
untuk menampilkan grafik di luar X:
- FB (Driver Perangkat -> Dukungan Grafik -> Perangkat penyangga bingkai -> Dukungan untuk perangkat penyangga bingkai), kemudian dalam menu yang sama, FB_BCM2708 (BCM2708 dukungan framebuffer).
Jika Anda melakukan ini dan Anda ingin penguin (atau lebih tepatnya, raspberry) di konsol boot, ingat LOGO (logo Bootup) di bawah Dukungan Grafik.
Anda mungkin juga ingin melihat opsi di bawah Jenis Sistem -> Broadcom2708 (atau 9) Implementasi .
GPIO / I 2 C
- BCM2708_GPIO (Jenis Sistem -> Broadcom Implementasi BCM2708) Atau untuk Pi 2, opsi BCM2709 yang sesuai.
- GPIO_SYSFS (Driver Perangkat -> Dukungan GPIO) untuk
/sys/class/gpio
antarmuka.
- I2C (Device Drivers -> I2C support), yang memungkinkan I2C_CHARDEV (antarmuka perangkat I2C). Kemudian di bawah "dukungan I2C Hardware Bus":
- I2C_BCM2708 (BCM2708 BSC).
Raspicam
- MEDIA_CAMERA_SUPPORT (Driver perangkat -> Dukungan Multimedia -> Dukungan kamera / penyambar video).
- V4L_PLATFORM_DRIVERS ( Driver perangkat-> Dukungan Multimedia -> Perangkat Platform V4L "). Ini memungkinkan submenu tempat Anda ingin memilih:
- CONFIG_SOC_CAMERA (Dukungan SoC Camera).
- CONFIG_VIDEO_BCM2835 (driver antarmuka kamera Broadcom BCM2835). Ini mengaktifkan "driver antarmuka kamera Broadcom BM2835 MMAL ( CONFIG_VIDEO_BCM2835_MMAL ) yang juga harus Anda pilih.
Sensor termal
Anda punya pilihan di sini; jika Anda mencoba memilih keduanya, yang pertama akan dibatalkan (meskipun Anda dapat membangun satu sebagai modul, mengubah konfigurasi, membangun yang lain, dan menggunakannya keduanya jika Anda benar-benar ingin).
- SENSORS_BCM2835 ( Driver Perangkat-> Dukungan Pemantauan Perangkat Keras-> Broadcom BCM2835 HWMON Driver). Ini di bagian bawah daftar jika Anda tidak memilih "Driver Thermal BCM2835", di bawah ini. Ini memberi Anda akses ke hal-hal termal di
/sys/devices/platform/bcm2835_hwmon
- temp1_input
dan temp1_max
. Yang pertama adalah sama /sys/devices/virtual/thermal/thermal_zone0/temp
; yang terakhir selalu 85000 (yaitu 85 ° C).
- THERMAL_BCM2835 (Device Drivers-> Generic Thermal sysfs driver-> BCM2835 Thermal Driver). Juga pilih Device Drivers-> Hardware Monitoring support (tetapi bukan driver individual di menu itu) sehingga "Ekspos sensor termal sebagai perangkat hwmon" muncul di sini dan Anda dapat memilih itu (4.0.y tampaknya tidak memiliki ini). Memilih ini akan membatalkan pilihan SENSORS_BCM2835, di atas. Ini memberi Anda akses ke yang lebih mudah diingat dan menemukan
/sys/class/devices/virtual/thermal/thermal_zone0
yang termasuk temp
dan trip_point_0_temp
(sama seperti temp1_max
, di atas). Berbagai pemantau userspace mungkin akan memilih ini dan mungkin tidak akan berfungsi tanpanya.