커널 .config 필요한 옵션


16

pi의 사용자 정의 커널을 컴파일하는 데 관심이 있습니다. 기본 구성에 대한 make 대상을 포함하는 github archive 의 소스가 있습니다.

make ARCH=arm bcmrpi_defconfig

그러나 (일반적인 리눅스 배포판 커널과 마찬가지로) 여기에는 내가 절대로 필요로하지 않는 많은 것들과 내가 바꾸고 싶은 것들이 포함됩니다.

다양한 일반적인 pi 중심적인 작업을 수행 하는 데 실제로 필요한 옵션은 무엇입니까 ?

답변:


25

기본 구성 또는 이미 작동하는 것으로 시작하는 것이 좋습니다. 조심하십시오 파이 2 , 사용한다 :

make bcm2709_defconfig

대신에 bcmrpi_defconfig.

동일한 버전의 기존 커널 설치를 방해하지 않으려면 일반 설정-> 로컬 버전-커널 릴리스 문자열에 추가를 고유 한 값으로 설정하십시오.

.config여기 에서 실제 레이블을 사용했습니다 . sans 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 제품군)

파이 2의 경우 :

  • ARCH_BCM2709 (시스템 유형-> 암 시스템 유형-> Broadcom BCM2709 제품군) ... 알파벳 순서가 아닌 목록의 맨 아래에 있습니다.
  • SMP (커널 기능-> 대칭 다중 처리)
  • NEON (부동 소수점 에뮬레이션-> 고급 SIMD (Neon) 확장 지원) 및 "커널 모드에서 NEON 지원".

커널 메모리 분할 :

몇 가지 레거시 소프트웨어문제가 있기 때문에 기본 구성에서 3G / 1G를 사용하여 Pi 2 RAM의 25 %를 사용자 공간에서 사용할 수 없게합니다. 이 문제가 걱정되면 커널 기능-> 메모리 분할을 확인하십시오 .


SD 카드

이것들은 액세스 할 필요가 있기 때문에 분명히 모듈 일 수 없습니다 /lib/modules. 내장되어 있어야합니다. 그것들은 menuconfig의 "장치 드라이버"섹션에 있습니다.

  • MMC (MMC / SD / SDIO 카드 지원) : mmc 드라이버 옵션이 필요하지만 충분하지 않습니다. 해당 옵션 내에서 :
    • MMC_BCM2835 ( BCM2835에서 MMC 지원).
    • MMC_BCM2835_DMA (BCM2835 Arasan 컨트롤러의 DMA 지원) : MMC_BCM2835에서 활성화되었지만 선택하지 않았습니다.
    • MMC_SDHCI (보안 디지털 호스트 컨트롤러 인터페이스 지원)

루트 파티션은 일반적으로 ext 포맷이므로 내장 파티션을 원할 수도 있습니다.

  • "파일 시스템"아래의 EXT4_FS (Extended 4 (ext4) 파일 시스템). 아마도 ext2와 ext3도 좋은 생각입니다.

부팅 파티션은 vfat이므로

  • VFAT_FS (VFAT (Windows-95) fs 지원)는 "파일 시스템-> DOS / FAT / NT 파일 시스템"에 있습니다.

여러 가지 잡다한

이것들은 당신이 (거의 확실하게) 필요로하는 다양한 것들이므로 먼저 나열했습니다.

  • "부동 소수점 에뮬레이션"의 VFP (VFP 형식 부동 소수점 수학).
  • "네트워킹 지원"의 UNIX (Unix 도메인 소켓) 실제 네트워킹을 수행하지 않더라도 기본 시스템 소프트웨어는이를 필요로합니다.
  • "사용자 공간 이진 형식"에서 BINFMT_ELF (ELF 이진에 대한 커널 지원).
  • "장치 드라이버-> 문자 장치"아래의 TTY ( TTY 활성화); 이를 통해 VT (가상 터미널) 및 UNIX98_PTYS (Unix98 PTY 지원)를 선택해야합니다. 그런 다음 VT는 VT_CONSOLE (가상 터미널의 콘솔 지원) 및 CONSOLE_TRANSLATIONS (콘솔에서 문자 변환 사용)를 활성화합니다.
  • "파일 시스템-> 의사 파일 시스템"의 PROC_FS , SYSFSTMPFS
  • "장치 드라이버-> 문자 장치-> 직렬 드라이버"및 SERIAL_AMBA_PL011_CONSOLE (AMBA 직렬 포트에서 콘솔 지원)의 SERIAL_AMBA_PL011 (ARM AMBA PL011 직렬 포트 지원 ). 라즈 비안 시스템은 이것없이 "/ dev / ttyAMA0 : No such file or directory"에 대해 불평 할 것입니다.
  • MAILBOXBCM2708_MBOX (4.x 커널). 이다 장치 Drivers-> 사서함 하드웨어 지원 하고 하위 메뉴에서 BCM 2708 옵션을 선택합니다. zub의 답변을 참조하십시오 .

USB

  • "장치 드라이버-> USB 지원"의 USB (호스트 측 USB 지원)를 선택하여 페이지 아래로 USB_DWCOTG (Synopsis DWC 호스트 지원)를 활성화 합니다.
  • USB_ANNOUNCE_NEW_DEVICES (장치 드라이버-> USB 지원-> USB에서 새 장치를 발표)
  • USB_DEFAULT_PERSIST (장치 드라이버-> USB 지원-> 기본적으로 USB 지속 사용).

키보드 및 마우스의 경우 :

  • "장치 드라이버-> HID 지원"의 HID_GENERIC (일반 HID 드라이버)
  • 그런 다음 "USB HID 지원"에서 : USB_HID (USB HID 전송 계층)
  • "장치 드라이버-> 입력 장치 지원"의 INPUT_MOUSEDEV (마우스 인터페이스).

하드 드라이브의 경우 :

  • "장치 드라이버-> SCSI 지원"의 SCSI (SCSI 장치 지원) 및 BLK_DEV_SD (SCSI 디스크 지원).
  • "장치 드라이버-> USB 지원"의 USB_STORAGE (USB 대용량 저장소 지원).

Android 기기 테 더링에 대한 내 답변은 여기를 참조 하십시오 .


이더넷

USB를 먼저 활성화해야합니다.

  • NET (네트워킹 지원), 최상위 옵션; 그 안에는 :

    • PACKET (패킷 소켓).
    • INET (TCP / IP 네트워킹). 이를 통해 다양한 IP 관련 기본값을 활성화 할 수 있습니다.
    • 커널 "ip 테이블"패킷 필터 방화벽에 필요한 NETFILTER (네트워크 패킷 필터링 프레임 워크).
  • "장치 드라이버"의 NETDEVICES (네트워크 장치 지원) :

    • NET_CORE (네트워크 코어 드라이버 지원).
    • USB_NET_DRIVERS (USB 네트워크 어댑터)->
      • USB_USBNET (다목적 USB 네트워킹 프레임 워크).
      • USB_NET_SMSC95XX (SMSC LAN95XX 기반 USB 2.0 10/100 이더넷 장치)

소리

온보드 사운드를 활성화하려면

  • 사운드 (장치 드라이버에서) :
    • SND (Advanced Linux Sound Architecture) 및 그 내용 :
    • SND_ARM (ARM 사운드 장치) 및 마지막으로 해당 SND_BCM2835 (BCM2835 ALSA 드라이버)

비디오

  • CONFIG_BCM2708_VCHIQ (장치 드라이버-> 기타 장치-> 비디오 코어 VCHIQ).

X 서버 지원에는 더 이상 필요하지 않습니다. pi의 SoC에는 DRI 드라이버 옵션이 없습니다.

프레임 버퍼를 사용하려는 경우 X 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위와 동일) 더 쉽게 기억하고 찾을 수 있습니다 . 다양한 사용자 공간 모니터가이 기능을 선호 할 것입니다. 그렇지 않으면 작동하지 않을 수 있습니다.

5

goldilock의 위대한 게시물에 대한 의견 :

rpi-4.1.y 브랜치 (05376fce25aaab4f47182a5af04928bfa06f30d6)에서 관찰 한 사항을 추가하고 싶었습니다 : USB 작동 (USB 연결 이더넷 포함)을 위해서는 BCM2708_MBOX (장치 드라이버-> 사서함 하드웨어 지원-)를 활성화 해야합니다 > Broadcom BCM2708 사서함 (vcio)).

이 옵션이 없으면 USB가 초기화를 시작하지만 다음과 같은 무서운 메시지 만 생성합니다.

[    1.193854] WARN::dwc_otg_core_reset:5109: dwc_otg_core_reset() HANG! Soft Reset GRSTCTL=80000001
[    1.441137] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0x9fc0c000 dma = 0x5d5e4000 len=9024

Btw. BCM2708_MBOXTHERMAL_BCM2835SND_BCM2835 의 전제 조건입니다 .


2

비디오 (프레임 버퍼)

비디오 지원 외에도 다음을 활성화해야합니다.

Device Drivers ->
  DMA Engine support ->
    BCM2835 DMA engine support (CONFIG_DMA_BCM2835)

프레임 버퍼 드라이버를 올바르게로드하기 위해. DMA를 활성화하지 않고 활성화 할 수 있지만로드에 실패합니다.

통합 무선

통합 무선 (RPi 3 및 Pi Zero W)을 사용하려면 다음을 선택해야합니다.

Networking support ->
  Wireless ->
    cfg80211 - wireless configuration API (CONFIG_CFG80211)

Device Drivers ->
  Network device support ->
    Wireless LAN ->
      Broadcom IEEE802.11n embedded FullMAC WLAN driver (CONFIG_BRCMFMAC)

0

늙었을 수도 있지만 검색을 사용하여 여기에 왔습니다. SDHC 카드의 경우 추가로 필요

Device Drivers -> -> MMC block device driver )CONFIG_MMC_BLOCK)

그렇지 않으면 커널은 SDHC 카드를 감지하지만 파티션은 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.