За замовчуванням Pi встановлено на 192MiB: 64MiB RAM: VRAM split. Оскільки я не буду використовувати Pi для графічних цілей, я хотів би змінити спліт для виділення більш нормальної оперативної пам’яті, щоб полегшити використання свопу.
За замовчуванням Pi встановлено на 192MiB: 64MiB RAM: VRAM split. Оскільки я не буду використовувати Pi для графічних цілей, я хотів би змінити спліт для виділення більш нормальної оперативної пам’яті, щоб полегшити використання свопу.
Відповіді:
Це розділення оперативної пам'яті і для чого вони повинні бути використані.
Існує кілька методів, за допомогою яких можна керувати розділенням оперативної пам’яті:
Ви можете змінити розділення оперативної пам’яті за допомогою цього методу:
sudo cp /boot/arm[ram-split]_start.elf /boot/start.elf
де [ram-split]
обсяг оперативної пам’яті, який потрібно виділити процесору. Після перезавантаження буде застосовано нове значення.
Rpi -оновлення Hexxeh також підтримує зміну розділеної пам’яті оперативної пам’яті, ви б запустили, rpi-update [ram-split]
де [ram-split]
обсяг оперативної пам’яті ви хочете виділити на процесор. Після перезавантаження буде застосовано розділення.
Найкращий спосіб - це, мабуть, використовувати цей скрипт select4.sh , а потім вибрати відповідний поділ оперативної пам’яті. Після перезавантаження новий розділ буде застосовано.
#!/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
Ось посилання github у разі гниття посилання.
Ви можете змінити розділений об'єм пам'яті за допомогою raspi-config
утиліти в debian-wheezy або raspbian-wheezy.
Просто запустіть утиліту: sudo raspi-config
потім виберіть опцію розділення пам'яті (її приблизно 8-го у списку).
Занадто великий для коментаря, але пов’язаний. Ви можете перевірити розділеність оперативної пам'яті, виконавши цю команду
$ 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