Raspberry Pi 3のOSレベルで使用可能なメモリは1GB未満です


13

それが重大な問題であるかどうかはわかりません。しかし、私は頭の中の疑問符を取り除く必要があります。

最近Raspberry Pi 3ボードを購入し、遊んでいると、meminfo の物理メモリサイズが1GB公式サイトで指定されている)よりもはるかに小さい(〜880MB)ことを確認しまし

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

GPUで使用できるメモリの量は、関連するraspi-configメニュー項目で2回チェックされる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

だから、私は2つの質問があります:

  • 不足している128MBメモリはどこにありますか?
  • この状況の原因は何ですか?

使用しているOSは何ですか-raspbian / arch / other?cat /etc/os-releaseそれを伝える必要があります。カーネルのバージョンは?uname -aそれを与える必要があります。これにより、考えられる原因を絞り込むことができます。rpi-updateは実際に機能していましたか、または警告を生成しましたか?
シュレヤスムラリ

詳細情報が質問テキストに追加されます。
-vaha

他のスレッドでjoanが提案したのと同じ問題の可能性があります。zcat /proc/config.gz|grep CONFIG_VMSPLITで確認してください。Pi3用の新しいカーネルはまだないため、rpi-updateを使用したソリューションは機能しません。ただし、2GB / 2GBのメモリ分割でカーネルを再コンパイルできます。
ジャンカ

1
これは完全に正常です。私のPi3は、MemTotal: 882776 kB MemFree: 126868 kB MemAvailable: 689576 kB「通常の状況では常に最先端のファームウェアとカーネルに到達するので、rpi-updateを実行する必要はありません。raspberrypi.org/forums/viewtopic.php?p=916911#p916911
ミリウェイズ

何がvcgencmd get_mem arm && vcgencmd get_mem gpu表示されますか?
ミリウェイズ

回答:


14

の出力vcgencmd get_mem arm && vcgencmd get_mem gpu

arm=880M
gpu=128M

これは、GPUが128Mを使用していることを意味します。

これはで確認/変更できますがraspi-config Advanced Options、GPUは自分で削減していません。私は記憶から行きますが、これはおそらくカメラに関連するデフォルトだと思います。少なくともあなたは今、あなたの記憶がどこにあるかを知っています。


はい、カメラがすべてです。
-vaha

880Mおよび128Mは合計で1億800万になります。他の16Mはどこにありますか?
v7d8dpo4

@ v7d8dpo4質問から:memory size for GPU is 16MB
デビッドスターキー

9

まず、@ Milliwaysに2つの簡単なコマンドをチェックすることをお勧めします。

vcgencmd get_mem arm && vcgencmd get_mem gpu

不足している128MBメモリはどこにありますか?

GPUで使用可能なメモリの量が16MBであるraspi-config/boot/config.txt言っても、実際の値はCPUで880MB、GPUで128MBです。

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

したがって、欠落している(実際には欠落していない)128MBのメモリーはGPU用に予約されています

この状況の原因は何ですか?

/boot/config.txtline も含めてgpu_mem=16、カメラモジュールを有効にする別の行があります。

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

したがって、カメラモジュールを有効にするとここで暗黙的に暗示される GPUの128MBのメモリ予約が発生します

つまり、をstart_x=1オーバーライドすると言うことができますgpu_mem=16

でカメラモジュールを無効にした後start_x=0のメモリ値は次のとおりです。

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

2
うん、カメラはデフォルトで128Mbの予約になっています。それはすることができます(私はすべての方法32MBのまで、正しくリコール場合)は、下部分割で動作しますが、より限定された機能(少ないメモリ、あなたが扱うことができる解像度を下げるなど)を持ちます。分割は(16Mビットのように)小さすぎると、それだけで128をデフォルトう
デイブ・ジョーンズ

-1

rpi-updateオプションとは別に、報告されるメモリが少なくなる別の(考えられる)理由があるようです。今回は、カーネル空間/ユーザー空間のメモリ分割に関係します。この投稿では、カーネルビルド構成の微調整とソースコードからの再構築を含む修正について詳しく説明します。1人のユーザーが成功を報告した

by tesla01»Thu Feb 05、2015 8:04 pmこんにちは。カスタムカーネルを使用すると2G / 2Gオプションが機能することを確認します

2月5日19:17:12 raspberrypiカーネル:[0.000000]メモリ:940776K / 966656K使用可能(5785Kカーネルコード、377K rwdata、1760K rodata、396K init、771K bss、25880K予約済み)

ありがとう:)

そのリンクのさらに下のいくつかの投稿が成功を報告するように、これが実際に原因であることを確認する必要があります(CONFIG_VMSPLITis CONFIG_VMSPLIT=3Gまたはの値をチェックすることによりCONFIG_VMSPLIT=2G

by birdman»Thu Feb 12、2015 10:01 pmこの分には、libraspberrypi- *およびraspberrypi-bootloaderの更新がありました。カーネル3.18.7-v7 +。トップから「KiB Mem:998096」と報告されたメモリ

ありがとう!!

他の一部は同じ結果にならなかった

残念ながら、これらの主張のいずれかを検証するためにPIの近くにはいません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.