pi의 사용자 정의 커널을 컴파일하는 데 관심이 있습니다. 기본 구성에 대한 make 대상을 포함하는 github archive 의 소스가 있습니다.
make ARCH=arm bcmrpi_defconfig
그러나 (일반적인 리눅스 배포판 커널과 마찬가지로) 여기에는 내가 절대로 필요로하지 않는 많은 것들과 내가 바꾸고 싶은 것들이 포함됩니다.
다양한 일반적인 pi 중심적인 작업을 수행 하는 데 실제로 필요한 옵션은 무엇입니까 ?
pi의 사용자 정의 커널을 컴파일하는 데 관심이 있습니다. 기본 구성에 대한 make 대상을 포함하는 github archive 의 소스가 있습니다.
make ARCH=arm bcmrpi_defconfig
그러나 (일반적인 리눅스 배포판 커널과 마찬가지로) 여기에는 내가 절대로 필요로하지 않는 많은 것들과 내가 바꾸고 싶은 것들이 포함됩니다.
다양한 일반적인 pi 중심적인 작업을 수행 하는 데 실제로 필요한 옵션은 무엇입니까 ?
답변:
기본 구성 또는 이미 작동하는 것으로 시작하는 것이 좋습니다. 조심하십시오 파이 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 +의 경우 :
파이 2의 경우 :
커널 메모리 분할 :
몇 가지 레거시 소프트웨어 에 문제가 있기 때문에 기본 구성에서 3G / 1G를 사용하여 Pi 2 RAM의 25 %를 사용자 공간에서 사용할 수 없게합니다. 이 문제가 걱정되면 커널 기능-> 메모리 분할을 확인하십시오 .
이것들은 액세스 할 필요가 있기 때문에 분명히 모듈 일 수 없습니다 /lib/modules
. 내장되어 있어야합니다. 그것들은 menuconfig의 "장치 드라이버"섹션에 있습니다.
루트 파티션은 일반적으로 ext 포맷이므로 내장 파티션을 원할 수도 있습니다.
부팅 파티션은 vfat이므로
이것들은 당신이 (거의 확실하게) 필요로하는 다양한 것들이므로 먼저 나열했습니다.
키보드 및 마우스의 경우 :
하드 드라이브의 경우 :
Android 기기 테 더링에 대한 내 답변은 여기를 참조 하십시오 .
USB를 먼저 활성화해야합니다.
NET (네트워킹 지원), 최상위 옵션; 그 안에는 :
"장치 드라이버"의 NETDEVICES (네트워크 장치 지원) :
온보드 사운드를 활성화하려면
X 서버 지원에는 더 이상 필요하지 않습니다. pi의 SoC에는 DRI 드라이버 옵션이 없습니다.
프레임 버퍼를 사용하려는 경우 X fbi
와 같은 omxplayer
그래픽을 표시 하고 X 이외의 응용 프로그램 을 표시 할 수 있습니다 .
부팅 콘솔에서 펭귄 (또는 라즈베리)을 원할 경우 그래픽 지원에서 로고 (부팅 로고)를 기억하십시오 .
시스템 유형-> Broadcom2708 (또는 9) 구현 에서 옵션을 볼 수도 있습니다 .
/sys/class/gpio
.여기서 선택할 수 있습니다. 둘 다 선택하면 첫 번째 모듈이 취소됩니다 (하나는 모듈로 빌드하고 구성을 변경하고 다른 구성은 빌드하고 원하는 경우 둘 다 사용할 수 있음).
/sys/devices/platform/bcm2835_hwmon
- temp1_input
및 열에 열을 가할 수 있습니다 temp1_max
. 전자는 동일하다 /sys/devices/virtual/thermal/thermal_zone0/temp
. 후자는 항상 85000 (즉 85 ° C)입니다./sys/class/devices/virtual/thermal/thermal_zone0
포함 temp
하고 포함하는 trip_point_0_temp
( temp1_max
위와 동일) 더 쉽게 기억하고 찾을 수 있습니다 . 다양한 사용자 공간 모니터가이 기능을 선호 할 것입니다. 그렇지 않으면 작동하지 않을 수 있습니다.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_MBOX 는 THERMAL_BCM2835 및 SND_BCM2835 의 전제 조건입니다 .
비디오 지원 외에도 다음을 활성화해야합니다.
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)
늙었을 수도 있지만 검색을 사용하여 여기에 왔습니다. SDHC 카드의 경우 추가로 필요
Device Drivers ->
-> MMC block device driver )CONFIG_MMC_BLOCK)
그렇지 않으면 커널은 SDHC 카드를 감지하지만 파티션은 없습니다.