การเพิ่มขนาดหน่วยความจำเคอร์เนล


14

ฉันมีบอร์ดฝังตัวที่มี RAM 512MB ใช้ Linux 2.6.29 และ UBoot bootloader แต่เคอร์เนลสามารถใช้ RAM ได้เพียง 128MB เท่านั้น

ฉันลองเปลี่ยนค่าของXCODE_MEMSIZEซึ่งฉันคิดว่ากำหนดจำนวน RAM ที่เคอร์เนลใช้

เมื่อฉันตั้งค่าเป็น 512 เคอร์เนลจะหยุดทำงานในขณะที่บูตเครื่อง มีพารามิเตอร์การกำหนดค่าอื่น ๆ ที่จำเป็นต้องเปลี่ยนแปลงหรือไม่?


คุณจะเจาะจงมากขึ้นเกี่ยวกับความผิดพลาดที่คุณพูดถึงได้หรือไม่ คุณเห็นอะไรบนหน้าจอ ข้อผิดพลาดใด ๆ
Straphka

แล้วบอร์ดล่ะ?
Gilles 'หยุดชั่วร้าย'

จำเป็นต้องให้รายละเอียดเพิ่มเติมเกี่ยวกับ 'สามารถใช้งานได้ 128MB เท่านั้น' ดูเหมือนว่ามีบางอย่างถูก จำกัด อยู่ที่ใดที่หนึ่ง (ขนาดสแต็คต่อผู้ใช้เป็นต้น)
พหุนาม

u-boot กำลังตรวจจับหน่วยความจำเท่าไหร่ ตรวจจับได้ทั้งหมด 512MB หรือไม่
นักคิดอิสระ

สิ่งที่ไม่cat /proc/cmdlineบอกคุณบนกระดานของคุณหรือไม่
Ankur Agarwal

คำตอบ:


3

หากไม่มีความรู้เพิ่มเติมเกี่ยวกับบอร์ดฝังตัวของคุณสองสิ่ง

  1. ลองใช้mem=พารามิเตอร์การบูตเคอร์เนล (ฉันคิดว่าบางครั้งหน่วยความจำอาจพร้อมใช้งานจากที่อยู่ที่ไม่ต่อเนื่องดังนั้นคุณอาจต้องใช้สิ่งนี้ แต่จะต้องตรวจสอบที่อยู่ต่อ mobo ของคุณ

    mem = 512M @ 0 mem = 256M @ 0x80000000 mem = 256M = 0xc0000000

  2. คุณมีการ์ดกราฟิกในตัวหรือไม่ นั่นอาจทำให้ RAM ของคุณพร้อมใช้งาน หากคุณสามารถไปที่ไบออสหรือเทียบเท่าให้ตรวจสอบว่า

@see เคอร์เนลพารามิเตอร์สำหรับข้อมูลเพิ่มเติมเกี่ยวกับmem=


คุณอาจต้องระบุค่าน้อยกว่า 512M - อาจมีอุปกรณ์หรือบางสิ่งบางอย่างที่อยู่ใกล้หรือที่อยู่ทางกายภาพ 0x20000000 (512M) ในแผนที่หน่วยความจำของบอร์ดซึ่งคุณควรจะได้รับสำเนาของ RAM ที่อยู่บนบอร์ดของคุณ
LawrenceC


-1

นอกเหนือจากการโพสต์อื่น ๆ เกี่ยวกับการมีความเฉพาะเจาะจงมากขึ้นฉันจะแนะนำให้ถอนการ/dev/shmติดตั้งถ้ามันถูกติดตั้ง นั่นคือระบบไฟล์ ramdisk และกินเข้าไปในหน่วยความจำของคุณ

ดูที่sysctlคำสั่งใน linux ด้วย การดำเนินการบางอย่างเช่นsysctl -w kernel.shmmax="<some number>"เปลี่ยนเคอร์เนลขณะที่ทำงาน


4
/ dev / shm ใช้หน่วยความจำแทบจะไม่ว่างเปล่าถ้ามันว่างเปล่า มันจะเริ่มใช้ ram เมื่อไฟล์ถูกโหลดเข้าไป
แพทริค

/ dev / shm ไม่ได้เป็นอะไรนอกจากการนำแนวคิดแบบแชร์หน่วยความจำแบบดั้งเดิมมาใช้ เป็นวิธีที่มีประสิทธิภาพในการส่งผ่านข้อมูลระหว่างโปรแกรม โปรแกรมหนึ่งจะสร้างส่วนหน่วยความจำซึ่งกระบวนการอื่น ๆ (ถ้าอนุญาต) สามารถเข้าถึงได้ สิ่งนี้จะส่งผลในการเร่งความเร็วสิ่งต่างๆบน Linux
Satish
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.