เริ่มต้นด้วยการกำหนดค่าเริ่มต้นหรือสิ่งที่คุณรู้ว่าใช้ได้อยู่แล้วเป็นความคิดที่ดี ระวังว่าสำหรับ Pi 2คุณควรใช้:
make bcm2709_defconfig
bcmrpi_defconfig
แทน
โปรดทราบว่าหากคุณต้องการหลีกเลี่ยงการติดตั้งเคอร์เนลที่มีอยู่ในเวอร์ชันเดียวกันให้ตั้งค่าการตั้งค่าทั่วไป -> เวอร์ชันท้องถิ่น - ผนวกเข้ากับสตริงการปล่อยเคอร์เนลเป็นค่าที่ไม่ซ้ำกัน
ฉันใช้ป้ายกำกับจริงจาก.config
ที่นี่แล้วCONFIG_ ; หากคุณใช้เช่นmake menuconfig
คุณสามารถค้นหาตัวเลือกที่เกี่ยวข้องพร้อมกับการค้นหา (ฟอร์เวิร์ดสแลช/) ป้ายกำกับเหล่านี้ยังใช้ที่ด้านบนของหน้า "ความช่วยเหลือ" สำหรับแต่ละตัวเลือก โปรดทราบว่าคำเปิดใช้งาน (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 (Floating Point Emulation -> การสนับสนุนส่วนขยาย SIMD ขั้นสูง (นีออน) ขั้นสูง) และ "รองรับ NEON ในโหมดเคอร์เนล"
Kernel Memory Split:
เนื่องจากปัญหาเกี่ยวกับซอฟต์แวร์รุ่นเก่าสองสามตัวการกำหนดค่าเริ่มต้นอาจใช้ 3G / 1G ที่นี่ซึ่งจะปล่อยให้ 25% ของ RAM ของ Pi 2 ไม่สามารถใช้งานได้กับพื้นที่ผู้ใช้ หากคุณมีความกังวลเกี่ยวกับเรื่องนี้ตรวจสอบKernel คุณสมบัติ -> หน่วยความจำแบบแยกส่วน
การ์ด SD
เหล่านี้ไม่สามารถจะเป็นโมดูลอย่างเห็นได้ชัดเนื่องจากพวกเขามีความจำเป็นในการเข้าถึง/lib/modules
; พวกเขาจะต้องมีในตัว พวกเขาอยู่ในส่วน "ไดรเวอร์อุปกรณ์" ของ menuconfig
- MMC (รองรับการ์ด MMC / SD / SDIO): จำเป็นต้องมีตัวเลือกสำหรับไดรเวอร์ mmc แต่ไม่เพียงพอ ภายในตัวเลือกเหล่านั้น:
- MMC_BCM2835 (รองรับ MMC ใน BCM2835)
- MMC_BCM2835_DMA (รองรับ DMA ในคอนโทรลเลอร์ BCM2835 Arasan): เปิดใช้งาน แต่ไม่ได้เลือกโดย MMC_BCM2835
- MMC_SDHCI ( รองรับ Secure Host Host Interface Interface)
เนื่องจากพาร์ติชันรูทมักจะมีการจัดรูปแบบเป็นส่วนขยายคุณจึงต้องการที่อยู่ภายใน:
- EXT4_FS (ระบบไฟล์ Extended 4 (ext4)) ภายใต้ "ระบบไฟล์" น่าจะเป็น ext2 และ ext3 เป็นความคิดที่ดีเช่นกัน
พาร์ติชันสำหรับเริ่มระบบคือ vfat ดังนั้น:
- VFAT_FS ( รองรับ VFAT (Windows-95) fs) อยู่ภายใต้ "ระบบไฟล์ -> ระบบไฟล์ DOS / FAT / NT"
เบ็ดเตล็ด
นี่คือสิ่งต่าง ๆ ที่คุณต้องการ (เกือบจะแน่นอน) ดังนั้นฉันจึงระบุไว้ก่อน
- VFP (คณิตศาสตร์รูปแบบลอยตัวรูปแบบ VFP) ภายใต้ "การจำลองจุดลอยตัว"
- UNIX (ซ็อกเก็ตโดเมน Unix) ภายใต้ "การสนับสนุนเครือข่าย" ซอฟต์แวร์ระบบพื้นฐานจะต้องใช้สิ่งนี้แม้ว่าคุณจะไม่ได้ทำการเชื่อมต่อเครือข่ายใด ๆ ก็ตาม
- BINFMT_ELF (รองรับเคอร์เนลสำหรับ ELF ไบนารี) ภายใต้ "รูปแบบไบนารีของผู้ใช้ Users"
- TTY (เปิดใช้งาน TTY) ภายใต้ "ไดรเวอร์อุปกรณ์ -> อุปกรณ์ตัวละคร"; สิ่งนี้ทำให้VT (Virtual terminal) และUNIX98_PTYS (Unix98 PTY รองรับ) ซึ่งคุณควรเลือก จากนั้นเปิดใช้งานVT_CONSOLE (รองรับคอนโซลบนเทอร์มินัลเสมือน) และCONSOLE_TRANSLATIONS (เปิดใช้งานการแปลอักขระในคอนโซล) ซึ่งควรเลือกด้วย
- PROC_FS , SYSFSและTMPFSภายใต้ "ระบบไฟล์ -> ระบบแฟ้มหลอก"
- SERIAL_AMBA_PL011 (สนับสนุนพอร์ตอนุกรม ARM AMBA PL011) ภายใต้ "ไดรเวอร์อุปกรณ์ -> อุปกรณ์ตัวอักษร -> ไดรเวอร์แบบอนุกรม" และSERIAL_AMBA_PL011_CONSOLE (การสนับสนุนสำหรับคอนโซลบนพอร์ตอนุกรม AMBA) ระบบ Raspbian จะบ่นเกี่ยวกับ "/ dev / ttyAMA0: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" หากไม่มีสิ่งนี้
- MAILBOXและBCM2708_MBOX (บน 4.x เมล็ด) นี่คือDevice Drivers-> การสนับสนุนฮาร์ดแวร์กล่องจดหมายและตัวเลือก BCM 2708 ในเมนูย่อย ดูคำตอบของ Zub
ยูเอสบี
- USB (รองรับ USB ด้านโฮสต์) ใน "ไดรเวอร์อุปกรณ์ -> การสนับสนุน USB" เปิดใช้งานUSB_DWCOTG (รองรับการสรุปโฮสต์ 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 tethering ดูคำตอบของฉันที่นี่
อีเธอร์เน็ต
ต้องเปิดใช้งาน USB ก่อน
เสียง
วิธีเปิดใช้งานเสียงออนบอร์ด:
- SOUND (ในไดรเวอร์อุปกรณ์) จากนั้น:
- SND (Advanced Linux Sound Architecture) และใน:
- SND_ARM (อุปกรณ์เสียง ARM) และสุดท้ายในSND_BCM2835 (ไดรเวอร์ ALSA BCM2835)
วีดีโอ
- CONFIG_BCM2708_VCHIQ (ไดรเวอร์อุปกรณ์ -> อุปกรณ์เบ็ดเตล็ด -> Videocore VCHIQ)
ไม่จำเป็นต้องมีอะไรเพิ่มเติมสำหรับการสนับสนุนเซิร์ฟเวอร์ X ไม่มีตัวเลือกไดรเวอร์ DRI สำหรับ SoC ของ pi
หากคุณต้องการใช้ framebuffer ซึ่งอนุญาตให้แอปพลิเคชันเช่นfbi
และomxplayer
แสดงกราฟิกด้านนอกของ X:
- FB (ไดรเวอร์อุปกรณ์ -> การสนับสนุนกราฟิก -> อุปกรณ์บัฟเฟอร์เฟรม -> การสนับสนุนอุปกรณ์เฟรมบัฟเฟอร์) จากนั้นในเมนูเดียวกันFB_BCM2708 (การสนับสนุนเฟรมบัฟเฟอร์ BCM2708)
หากคุณทำสิ่งนี้และต้องการเพนกวิน (หรือมากกว่านั้นคือราสเบอร์รี่) บนคอนโซลการบูตให้จำโลโก้ (โลโก้บูทอัพ) ภายใต้การสนับสนุนกราฟิก
นอกจากนี้คุณยังอาจต้องการที่จะดูที่ตัวเลือกภายใต้ชนิดของระบบ -> 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 ( ไดรเวอร์อุปกรณ์ -> ไดร์เวอร์ความร้อน sysfs ทั่วไป -> ไดรเวอร์ความร้อน BCM2835) เลือกไดรเวอร์อุปกรณ์ -> สนับสนุนการตรวจสอบฮาร์ดแวร์ (แต่ไม่ใช่ไดรเวอร์แต่ละตัวในเมนูนั้น) เพื่อให้ "แสดงเซ็นเซอร์ความร้อนเป็นอุปกรณ์ hwmon" ปรากฏขึ้นที่นี่และคุณสามารถเลือกได้ (4.0.y ดูเหมือนจะไม่มีสิ่งนี้) การเลือกสิ่งนี้จะยกเลิกการเลือก SENSORS_BCM2835 ด้านบน มันช่วยให้คุณเข้าถึงสิ่งที่ง่ายต่อการจดจำและค้นหา
/sys/class/devices/virtual/thermal/thermal_zone0
ซึ่งรวมถึงtemp
และtrip_point_0_temp
(เช่นเดียวกับtemp1_max
ข้างบน) จอภาพของผู้ใช้พื้นที่ต่าง ๆ อาจจะชอบสิ่งนี้และอาจไม่ทำงานหากไม่มี