मैं रैम विभाजन को कैसे बदल सकता हूं?


23

डिफ़ॉल्ट रूप से, Pi 192MiB: 64MiB RAM: VRAM में विभाजित है। जैसा कि मैं चित्रमय उद्देश्यों के लिए पाई का उपयोग नहीं कर रहा हूं, मैं स्वैप उपयोग को आसान बनाने के लिए अधिक सामान्य रैम आवंटित करने के लिए विभाजन को बदलना चाहूंगा।


यहां एक समान प्रश्न और प्रासंगिक उत्तर है
Jivings

जवाबों:


16

ये रैम स्प्लिट्स हैं और उनका उपयोग किस लिए किया जाना चाहिए।

  • 240/16 - यह सबसे अच्छा है अगर आप ग्राफिकल कुछ भी नहीं करने जा रहे हैं, उदाहरण के लिए यदि आप एक सर्वर के रूप में पाई का उपयोग कर रहे हैं और कोई जीयूआई नहीं है।
  • 224/32 - यह शायद सबसे अच्छा है अगर आप 3 डी के बिना एक मूल ग्राफिकल डेस्कटॉप वातावरण के साथ पाई का उपयोग कर रहे हैं।
  • 192/64 - डिफ़ॉल्ट, शायद सबसे अच्छा सामान्य उद्देश्य।
  • 128/128 - बहुत उच्च वीआरएएम, केवल वास्तव में अच्छा है यदि आप बहुत ही रेखीय रूप से गहन कार्य कर रहे हैं।

ऐसे कई तरीके हैं जिनके द्वारा RAM विभाजन को प्रबंधित किया जा सकता है:

मैन्युअल

आप इस पद्धति का उपयोग करके RAM विभाजन को बदल सकते हैं:

sudo cp /boot/arm[ram-split]_start.elf /boot/start.elf

[ram-split]सीपीयू को आवंटित करने के लिए रैम की मात्रा कहां है। रिबूट के बाद नया मूल्य लागू किया जाएगा।

आरपीआई-अद्यतन

Hexxeh के आरपीआई-अद्यतन भी राम विभाजन को बदलने, आप चलाना चाहते हैं का समर्थन करता है rpi-update [ram-split], जहां [ram-split]RAM की मात्रा आप सीपीयू के लिए आवंटित करना चाहते है। रिबूट के बाद विभाजन को लागू किया जाएगा।

राम चयनकर्ता स्क्रिप्ट

सबसे अच्छा तरीका संभवतः इस select4.sh स्क्रिप्ट का उपयोग करना है , फिर उपयुक्त RAM विभाजन का चयन करना है। आपके द्वारा रीबूट करने के बाद नया विभाजन लागू किया जाएगा।

#!/bin/bash
##
## Raspberry Pi Memory Split Selector Script v4
## Author: SirLagz
## Website: http://sirlagz.net
##
## The purpose of this script is to make selecting the memory split
## on the RPi easy.
## Simply make this script executable if it's not already, move
## it to the directory with the elf files, and run it with ./select4.sh
## The menu should be pretty self explanatory.
##
cd /boot
clear
list=./*
b128det=0
b192det=0
b224det=0
b240det=0
bdefdet=0

for i in $list
do
    case $i in
        "./arm128_start.elf") b128det=1;;
        "./arm192_start.elf") b192det=1;;
        "./arm224_start.elf") b224det=1;;
        "./arm240_start.elf") b240det=1;;
        "./start.elf") bdefdet=1;;
    esac
done

if [[ "$b192det" == "$bdefdet" ]] ; then
    if cmp -s arm192_start.elf start.elf; then
        current=192
    fi
fi

if [[ "$b128det" == "$bdefdet" ]] ; then
    if cmp -s arm128_start.elf start.elf; then
        current=128
    fi
fi

if [[ "$b224det" == "$bdefdet" ]] ; then
    if cmp -s arm224_start.elf start.elf; then
        current=224
    fi
fi

if [[ "$b240det" == "$bdefdet" ]] ; then
    if cmp -s arm240_start.elf start.elf; then
        current=240
    fi
fi

declare -i vram
vram=256-$current
success=1
sysram=`awk '/MemTotal/ { printf("%.0f",$2/1024) }' /proc/meminfo`
echo "##################################"
echo "##      Raspberry Pi Memory     ##"
echo "##        Selector Script       ##"
echo "##################################"
echo "      Current Memory Split"
echo "        CPU $current/$vram VRAM"
echo "      Detected System RAM"
echo "          $sysram MB"
echo "##################################"
echo "1) Set CPU/VRAM split to 128/128"
echo "2) Set CPU/VRAM split to 192/64"
if [[ "$b240det" == 0 ]] ; then
echo "3) Set CPU/VRAM split to 240/16 (NOT DETECTED. DO NOT USE)"
else
echo "3) Set CPU/VRAM split to 240/16"
fi
if [[ "$b224det" == 1 ]] ; then
    echo "4) Set CPU/VRAM split to 224/32"
fi
echo "q) Quit"
echo "Enter Choice:";
read x
case $x in
1)
    rm start.elf && cp arm128_start.elf start.elf
    newram=128
;;
2)
    rm start.elf && cp arm192_start.elf start.elf
    newram=192
;;
3)
    if [[ "$b240det" == 1 ]] ; then
        rm start.elf && cp arm240_start.elf start.elf
        newram=240
    else
        echo "The arm240_start.elf was not detected. Not changing ram split."
        success=0
    fi
;;
4)
    rm start.elf && cp arm224_start.elf start.elf
    newram=224
;;
q|Q)
    exit 0
;;
*)
    $0
;;
esac

if [[ $? -ne 0 ]]; then
    echo "Memory Split setting failed"
elif [[ $success == 1 ]]; then
    declare -i newvram
    newvram=256-$newram
    echo "Memory Split set to $newram/$newvram successfully"
fi

for i in $list
do
    case $i in
        "./arm128_start.elf") b128det=1;;
        "./arm192_start.elf") b192det=1;;
        "./arm224_start.elf") b224det=1;;
        "./arm240_start.elf") b240det=1;;
        "./start.elf") bdefdet=1;;
    esac
done

if [[ "$bdefdet" -ne 1 ]]; then
    $0
    echo "=============================================================================="
    echo "start.elf not detected. Please check that you have selected a valid ram split."
    echo "=============================================================================="
fi

यहां लिंक रोट के मामले में एक जीथब लिंक है।


क्या इसके बाद रिबूट की आवश्यकता है?
अंकले

@akavel हाँ, प्रारंभ के रूप में। केवल स्टार्टअप पर निष्पादित किया जाता है। अब संपादन कर रहे हैं।
hifkanotiks

1
आपके द्वारा पोस्ट किए गए चार उत्तर विलीन हो गए हैं। यद्यपि कभी-कभी स्वीकार्य होता है, मुझे विश्वास नहीं होता है कि प्रश्न के विभिन्न पहलुओं को संबोधित करने वाले चार अलग-अलग उत्तर होने से इस मामले में कोई मूल्य जोड़ा गया है। मुझे आशा है कि कोई भी वस्तु नहीं।
Jivings

14

raspi-config

आप raspi-configडेबियन-मट्ठे या रस्पियन-मट्ज़ी में उपयोगिता का उपयोग करके मेमोरी विभाजन को बदल सकते हैं ।

बस उपयोगिता को चलाएं: sudo raspi-configफिर मेमोरी स्प्लिट विकल्प (इसकी सूची में 8 वें के बारे में) का चयन करें।


1

अपने रैम विभाजन की जाँच करना

एक टिप्पणी के लिए बहुत बड़ा है, लेकिन संबंधित। आप इस आदेश को चलाकर अपने राम विभाजन को देख सकते हैं

$ sha1sum /boot/*start.elf
a3f72ae7eae537800454de8e4cb231cbd176c0e1  /boot/arm128_start.elf
7784527719031c1c7fce6f72cf3a5c8c23565f24  /boot/arm192_start.elf
82c6be2c9098c0c9c3d71f45bf16c1dc5adfcf08  /boot/arm224_start.elf
82c6be2c9098c0c9c3d71f45bf16c1dc5adfcf08  /boot/start.elf

विभाजन उस फ़ाइल द्वारा दिया जाता है जिसमें मिलान चेकसम है, इसलिए मेरे मामले में 224/32


हालांकि उपयोगी, यह सवाल का जवाब नहीं है।
Jivings

मैं अपने वर्तमान रैम विभाजन की जांच करना चाहता था क्योंकि मुझे नहीं पता था कि डिफ़ॉल्ट क्या था और इसे /boot/config.txt में नहीं बुलाया गया था। दुर्भाग्य से मेरा सिस्टम केवल start.elf था, इसलिए मैंने dmesg के माध्यम से मान को ट्रैक किया। वहाँ एक लाइन है (मेरे सिस्टम पर) जो कहती है "मेमोरी: 448MB = 448MB कुल"। इसलिए मेरे पास 448/64 का विभाजन है।
ग्रैंडमाडिरल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.