रास्पबेरी पाई 3 में ओएस स्तर पर 1 जीबी से कम मेमोरी उपलब्ध है


13

मुझे नहीं पता कि यह एक महत्वपूर्ण मुद्दा है या नहीं। लेकिन, मुझे अपने दिमाग में प्रश्न चिह्न से छुटकारा पाने की आवश्यकता है।

मैंने हाल ही में एक रास्पबेरी पाई 3 बोर्ड खरीदा है और जब मैं इसके साथ खेल रहा था, तो मुझे एहसास हुआ कि मेइनफो 1 जीबी (जो आधिकारिक साइट पर निर्दिष्ट है ) की तुलना में भौतिक मेमोरी का आकार बहुत कम (~ 880 एमबी) दिखाता है

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

जीपीयू के लिए उपलब्ध मेमोरी की मात्रा 16 एमबी (जो न्यूनतम अनुमत सीमा है) संबंधित रस्फी-कॉन्फिग मेनू आइटम पर दो बार जांच की जाती है।

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 मेमोरी कहाँ है?
  • इस स्थिति का क्या कारण है?

ओएस क्या आप उपयोग कर रहे हैं - रास्पियन / आर्क / अन्य? cat /etc/os-releaseउसे बताना चाहिए। कर्नेल संस्करण क्या है? uname -aवह देना चाहिए। यह संभावित कारणों को कम करने में मदद करनी चाहिए। क्या आरपीआई-अपडेट ने वास्तव में काम किया या कोई चेतावनी दी?
श्रेयस मुरली

विस्तृत जानकारी प्रश्न पाठ में जोड़ी जाती है।
vhaha

यह संभवतः वही समस्या है जो दूसरे धागे में सुझाए गए जोनों से है। Zcat /proc/config.gzpggrep CONFIG_VMSPLIT के साथ जांचें । केवल यह कि आरपीआई-अपडेट वाला समाधान काम नहीं करता है क्योंकि अभी तक पी 3 के लिए कोई नया कर्नेल नहीं है। लेकिन आप अपने कर्नेल को 2GB / 2GB मेमोरी के साथ फिर से विभाजित कर सकते हैं।
जंका

1
यह पूरी तरह से सामान्य है, मेरा Pi3 दिखाता है MemTotal: 882776 kB MemFree: 126868 kB MemAvailable: 689576 kB"सामान्य परिस्थितियों में कभी भी आरपीआई-अपडेट को चलाने की आवश्यकता नहीं होती है क्योंकि यह आपको हमेशा अग्रणी किनारे फर्मवेयर और कर्नेल तक ले जाता है और क्योंकि यह एक परीक्षण संस्करण हो सकता है जो आपके आरपीआई को अनबूटे छोड़ सकता है"। 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 नहीं घटाया है। मैं मेमोरी से जा रहा हूं, लेकिन मुझे लगता है कि यह डिफ़ॉल्ट है, संभवतः कैमरा से संबंधित है। कम से कम अब आपको पता है कि आपकी मेमोरी कहां है।


हाँ, यह सब कैमरे के बारे में है।
vhaha

880M और 128M 1008M तक जुड़ते हैं। अन्य 16M कहाँ है?
v7d8dpo4 11

@ v7d8dpo4 प्रश्न से:memory size for GPU is 16MB
डेविड स्टार्क

10

सबसे पहले, मैं 2 सरल आदेशों की जांच करने के सुझाव के लिए @Milliways को अपना सर्वश्रेष्ठ संबंध देता हूं।

vcgencmd get_mem arm && vcgencmd get_mem gpu

लापता 128MB मेमोरी कहाँ है?

भले ही दोनों raspi-configऔर /boot/config.txtकहते हैं कि GPU के लिए उपलब्ध मेमोरी की मात्रा 16 एमबी है, वास्तविक मूल्य सीपीयू के लिए 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

इसलिए, कैमरा मॉड्यूल को सक्षम करने से जीपीयू के लिए 128 एमबी मेमोरी आरक्षण होता है जो कि यहां निहित है

संक्षेप में, हम कह सकते हैं कि start_x=1ओवरराइड करता है gpu_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

आरपीआई-अपडेट विकल्प के अलावा, रिपोर्ट की गई मेमोरी कम होने का एक और (संभावित) कारण प्रतीत होता है। इस बार कर्नेल स्पेस / यूजर स्पेस मेमोरी स्प्लिट्स के साथ करना है। इस पोस्ट में कर्नेल बिल्ड कॉन्फ़िगरेशन को ट्विक करने और इसे स्रोत कोड से पुनर्निर्माण करने के लिए ठीक करने का विवरण है। एक उपयोगकर्ता ने सफलता की सूचना दी

द्वारा tesla01 »थू फ़रवरी 05, 2015 8:04 बजे हाय, मैं पुष्टि करता हूं कि 2 जी / 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) क्योंकि कुछ पोस्ट उस लिंक रिपोर्ट की सफलता में आगे की तरह नीचे हैं।

बर्डमैन »थू फ़रवरी 12, 2015 10:01 अपराह्न बस इस मिनट में लाइब्रसबेरीबेरी-* और रास्पबेरी-बूटलोडर का अपडेट था। कर्नेल अब 3.18.7-v7 +। स्मृति अब "KiB मेम: 998096" के रूप में शीर्ष पर रिपोर्ट की गई

धन्यवाद!!

जबकि कुछ अन्य लोगों के परिणाम समान नहीं थे

दुर्भाग्य से मैं इनमें से किसी भी दावे को सत्यापित करने के लिए अपने पीआई के पास नहीं हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.