Raspberry Pi 3의 OS 수준에서 사용 가능한 메모리가 1GB 미만입니다 1GB보다 훨씬 적다 는 것을

그것이 중요한 문제인지 아닌지 모르겠습니다. 그러나 나는 내 마음에 물음표를 제거해야합니다.

나는 최근에 Raspberry Pi 3 보드를 구입했으며 보드를 사용하면서 meminfo 가 실제 메모리 크기가 1GB보다 훨씬 적다 는 것을 깨달았습니다 ( 공식 사이트 에 지정됨 ).

root@mypi:~# cat /proc/meminfo
MemTotal:         882780 kB
MemFree:          536068 kB
MemAvailable:     712180 kB

GPU에 사용할 수있는 메모리 양은 관련 raspi-config 메뉴 항목에서 16MB (최소 허용 제한)입니다.

raspi-config -> Advanced Options -> Memory Split

부팅 구성에 따르면 gpu_mem은 16MB 입니다.

root@mypi:~# cat /boot/config.txt | grep -i gpu
gpu_mem=16

문제 공간을 좁히기 위해 다음은 시스템 정보입니다. 그건 그렇고, 시스템은 최신입니다.

OS 릴리스 :

root@mypi:~# cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"

커널 버전 :

root@mypi:~# uname -a
Linux mypi 4.4.23-v7+ #913 SMP Tue Oct 4 14:16:19 BST 2016 armv7l GNU/Linux

커널 vmsplit 구성 :

root@mypi:~# zcat /proc/config.gz | grep CONFIG_VMSPLIT | grep -v ^#
CONFIG_VMSPLIT_2G=y

그래서 두 가지 질문이 있습니다.

  • 누락 된 128MB 메모리는 어디에 있습니까?
  • 이 상황의 원인은 무엇입니까?


답변

의 출력 vcgencmd get_mem arm && vcgencmd get_mem gpu

arm=880M
gpu=128M

이것은 GPU가 128M을 사용하고 있음을 의미합니다.

raspi-config Advanced OptionsGPU를 직접 축소하지는 않았지만 에서 확인 / 변경 할 수 있습니다 . 나는 메모리에서 가고 있지만 이것이 카메라와 관련된 기본값이라고 생각합니다. 적어도 당신은 지금 당신의 기억이 어디에 있는지 알고 있습니다.


답변

우선, 나는 2 개의 간단한 명령을 확인하도록 제안하기 위해 @Milliways에 최선을 다합니다.

vcgencmd get_mem arm && vcgencmd get_mem gpu

누락 된 128MB 메모리는 어디에 있습니까?

모두하더라도 raspi-config/boot/config.txtGPU에 사용할 수있는 메모리의 양이 16메가바이트는 말한다, 실제 값은 CPU에 대한 880메가바이트, GPU에 대한 128메가바이트 있습니다.

root@mypi:~# vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=880M
gpu=128M

따라서 누락 (실제로 누락되지 않음) 128MB 메모리는 GPU 용으로 예약되어 있습니다.

이 상황의 원인은 무엇입니까?

/boot/config.txt라인을 포함 하더라도 gpu_mem=16카메라 모듈을 활성화하는 또 다른 라인이 있습니다.

root@mypi:~# cat /boot/config.txt | grep -i start_x
start_x=1

따라서 카메라 모듈을 활성화 하면 여기에 암시 적으로 내포 된 GPU의 128MB 메모리 예약이 발생 합니다 .

요컨대, 그것은 start_x=1overrides 라고 말할 수 있습니다 gpu_mem=16.

로 카메라 모듈을 비활성화 한 후 start_x=0메모리 값은 다음과 같습니다.

root@mypi:~# vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=992M
gpu=16M

답변

rpi-update 옵션 외에도보고 된 메모리가 적은 다른 이유가있을 수 있습니다. 이번에는 커널 공간 / 사용자 공간 메모리 분할과 관련이 있습니다. 포스트는 커널 빌드 구성을 조정하고 소스 코드에서이를 재구성하는 수정 사항을 자세히 설명합니다. 한 명의 사용자가 성공을보고했습니다

작성자 : tesla01»2015 년 2 월 5 일 목요일 오후 8:04 안녕하세요, 맞춤 커널을 사용할 때 2G / 2G 옵션이 작동 함을 확인합니다

2 월 5 일 19:17:12 라스베리 피 커널 : [0.000000] 메모리 : 940776K / 966656K 사용 가능 (5785K 커널 코드, 377K rwdata, 1760K rodata, 396K init, 771K bss, 25880K 예약)

감사 🙂

당신은해야합니다 확인 (의 값을 확인하여이 실제로 원인 CONFIG_VMSPLIT중 하나입니다 CONFIG_VMSPLIT=3G또는 CONFIG_VMSPLIT=2G과 같이 링크 된 보고서의 성공에 더 아래 일부 게시물로)

birdman 작성»2015 년 2 월 12 일 목요일 오후 10:01이 ​​순간에 libraspberrypi- * 및 raspberrypi-bootloader가 업데이트되었습니다. 커널 3.18.7-v7 +. 메모리가 “KiB Mem : 998096″으로 상단에보고 됨

감사!!

다른 사람들은 같은 결과를 얻지 못했지만

불행히도 나는 이러한 주장을 확인하기 위해 PI 근처에 있지 않습니다.


답변