Raspberry Pi 3 มีหน่วยความจำน้อยกว่า 1GB ที่ระดับ OS


13

ฉันไม่รู้ว่ามันเป็นปัญหาสำคัญหรือไม่ แต่ฉันต้องกำจัดเครื่องหมายคำถามในใจของฉัน

ฉันเพิ่งซื้อบอร์ด Raspberry Pi 3 และเมื่อฉันเล่นกับมันฉันรู้ว่า meminfo แสดงขนาดหน่วยความจำกายภาพน้อยกว่า (~ 880MB) มากกว่า 1GB (ซึ่งระบุไว้ในเว็บไซต์อย่างเป็นทางการ )

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

จำนวนหน่วยความจำที่มีสำหรับ GPU คือ16MB (ซึ่งเป็นขีด จำกัด ขั้นต่ำที่อนุญาต) ตรวจสอบสองครั้งในรายการเมนู raspi-config ที่เกี่ยวข้อง

raspi-config -> Advanced Options -> Memory Split

การกำหนดค่าการบูตยังบอกว่าgpu_mem เป็น 16MB

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

สำหรับการ จำกัด พื้นที่ปัญหาให้แคบลงนี่คือข้อมูลระบบ โดยวิธีการที่ระบบเป็นปัจจุบัน

ระบบปฏิบัติการที่วางจำหน่าย:

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 หายไปไหน
  • อะไรเป็นสาเหตุของสถานการณ์นี้

ระบบปฏิบัติการที่คุณใช้คืออะไร - raspbian / arch / other? cat /etc/os-releaseควรบอกว่า รุ่นเคอร์เนลคืออะไร? uname -aควรให้สิ่งนั้น สิ่งนี้จะช่วย จำกัด สาเหตุที่เป็นไปได้ให้แคบลง rpi-update ใช้งานได้จริงหรือสร้างคำเตือนใด ๆ
Shreyas Murali

ข้อมูลรายละเอียดจะถูกเพิ่มเข้าไปในข้อความคำถาม
vaha

อาจเป็นปัญหาเดียวกับ joan ที่แนะนำในเธรดอื่น ตรวจสอบกับzcat /proc/config.gz|grep CONFIG_VMSPLIT เฉพาะโซลูชันที่มีการอัปเดต rpi ไม่ทำงานเนื่องจากยังไม่มีเคอร์เนลใหม่สำหรับ Pi3 แต่คุณสามารถคอมไพล์เคอร์เนลของคุณอีกครั้งโดยใช้หน่วยความจำ 2GB / 2GB แยกตัวเอง
Janka

1
นี่เป็นเรื่องปกติอย่างสมบูรณ์ Pi3 ของฉันแสดงให้เห็นว่าMemTotal: 882776 kB MemFree: 126868 kB MemAvailable: 689576 kB"ในสถานการณ์ปกติไม่จำเป็นต้องเรียกใช้ rpi-update เพราะมันจะพาคุณไปสู่เฟิร์มแวร์และเคอร์เนลที่ทันสมัยอยู่เสมอและเพราะนั่นอาจเป็นเวอร์ชั่นทดสอบ raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways

อะไรvcgencmd get_mem arm && vcgencmd get_mem gpuแสดง
Milliways

คำตอบ:


14

หากผลลัพธ์ของvcgencmd get_mem arm && vcgencmd get_mem gpuคือ

arm=880M
gpu=128M

ซึ่งหมายความว่า GPU ใช้ 128M

สิ่งนี้สามารถตรวจสอบ / เปลี่ยนแปลงได้raspi-config Advanced Optionsแม้ว่าฉันจะไม่ลด GPU ลง ฉันไปจากหน่วยความจำ แต่ฉันคิดว่านี่เป็นค่าเริ่มต้นซึ่งอาจเกี่ยวข้องกับกล้อง อย่างน้อยตอนนี้คุณก็รู้ว่าหน่วยความจำของคุณอยู่ที่ไหน


ใช่มันเป็นเรื่องของกล้อง
vaha

880M และ 128M เพิ่มได้สูงสุด 1008M อีก 16M อยู่ที่ไหน
v7d8dpo4

@ v7d8dpo4 จากคำถาม:memory size for GPU is 16MB
David Starkey

10

ก่อนอื่นฉันขอแสดงความนับถือ @Milliways สำหรับการแนะนำให้ตรวจสอบคำสั่งง่ายๆ 2 คำ

vcgencmd get_mem arm && vcgencmd get_mem gpu

หน่วยความจำ 128MB หายไปไหน

แม้ว่าทั้งสองraspi-configและ/boot/config.txtบอกว่าจำนวนหน่วยความจำที่มีอยู่กับ GPU เป็น 16MB ค่าจริง 880MB สำหรับ CPU, 128MB สำหรับ GPU

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

ดังนั้นการเปิดใช้งานโมดูลกล้องนำไปสู่การสำรองห้องพัก 128MB หน่วยความจำสำหรับ GPU ซึ่งเป็นนัยโดยปริยายที่นี่

ในระยะสั้นเราสามารถพูดได้ว่าแทนที่start_x=1gpu_mem=16

หลังจากปิดใช้งานโมดูลกล้องโดยstart_x=0นี่คือค่าหน่วยความจำ:

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

3
ใช่กล้องเริ่มต้นที่การจอง 128Mb มันสามารถทำงานกับการแบ่งที่ต่ำกว่า (ถ้าฉันจำได้อย่างถูกต้องจนถึง 32Mb) แต่ด้วยการทำงานที่ จำกัด มากขึ้น (หน่วยความจำน้อยกว่าความละเอียดที่คุณสามารถจัดการได้ลดลงเป็นต้น) หากการแยกมีขนาดเล็กเกินไป (ตาม 16Mb) มันจะเริ่มต้นที่ 128
เดฟโจนส์

-1

นอกเหนือจากตัวเลือก rpi-update ยังมีอีกเหตุผล (เป็นไปได้) เหตุผลที่หน่วยความจำที่รายงานมีน้อย คราวนี้มันจะทำอย่างไรกับหน่วยความจำพื้นที่เคอร์เนล / พื้นที่ผู้ใช้แยก โพสต์นี้มีรายละเอียดการแก้ไขซึ่งเกี่ยวข้องกับการปรับแต่งโครงสร้างของเคอร์เนลและสร้างขึ้นใหม่จากซอร์สโค้ด ผู้ใช้รายหนึ่งรายงานความสำเร็จ

โดย tesla01 »พฤ. 5 ก.พ. 2015 20:04 น. สวัสดีฉันยืนยันว่าตัวเลือก 2G / 2G ทำงานได้เมื่อใช้เคอร์เนลที่กำหนดเอง

5 กุมภาพันธ์ 19:17:12 เคอร์เนล raspberrypi: [0.000000] หน่วยความจำ: มี 940776K / 966656K (รหัสเคอร์เนล 5785K รหัส 377K rwdata, 3760K rwdata, 1760K rodata, 396K init, 771K bss, สงวนลิขสิทธิ์ 25880K)

ขอบคุณ :)

คุณจะต้องตรวจสอบว่านี่เป็นสาเหตุ (โดยการตรวจสอบค่าของCONFIG_VMSPLITอย่างใดอย่างหนึ่งCONFIG_VMSPLIT=3GหรือCONFIG_VMSPLIT=2G) เป็นโพสต์บางลงในลิงค์รายงานที่ประสบความสำเร็จเช่นนั้น

โดย birdman »พฤหัสบดี 12 ก.พ. 2015 22:01 น. เพียงนาทีนี้มีการอัปเดตเป็น libraspberrypi- * และ raspberrypi-bootloader เคอร์เนลตอนนี้ 3.18.7-v7 + หน่วยความจำที่รายงานโดย top เป็น "KiB Mem: 998096"

ขอบคุณ !!

ในขณะที่บางคนไม่ได้ผลลัพธ์เดียวกัน

น่าเสียดายที่ฉันไม่ได้อยู่ใกล้ PI ของฉันเพื่อตรวจสอบการอ้างสิทธิ์เหล่านี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.