Zwiększanie wielkości pamięci jądra


14

Mam wbudowaną płytę z 512 MB pamięci RAM z systemem Linux 2.6.29 i bootloaderem UBoot. Ale jądro jest w stanie wykorzystać tylko 128 MB pamięci RAM.

Próbowałem zmienić wartość XCODE_MEMSIZE, która moim zdaniem określa, ile pamięci RAM używa jądro.

Kiedy ustawię go na 512, jądro ulega awarii podczas uruchamiania. Czy jest jakiś inny parametr konfiguracyjny, który należy zmienić?


Czy możesz bardziej szczegółowo określić wspomnianą awarię? Co widzisz na ekranie? Jakieś błędy?
Straphka


Naprawdę muszę podać więcej szczegółów na temat „w stanie użyć tylko 128 MB”. Wygląda na to, że coś zostało gdzieś ograniczone (wielkość stosu na użytkownika itp.).
wielomian

ile pamięci wykrywa u-boot? Czy wykrywa całe 512 MB?
wolnomyśliciel

Co cat /proc/cmdlineci mówi na twojej tablicy?
Ankur Agarwal

Odpowiedzi:


3

Bez bardziej szczegółowej wiedzy na temat wbudowanej płyty przychodzą na myśl dwie rzeczy.

  1. Wypróbuj mem=parametr rozruchowy jądra . (Myślę, że czasami pamięć może być dostępna z nieciągłego adresu, więc być może będziesz musiał użyć czegoś takiego, ale adresy będą musiały zostać sprawdzone dla każdego mobo.

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

  2. Czy masz wbudowaną kartę graficzną? To może zabrać część twojego dostępnego barana. Jeśli możesz dostać się do biosu lub jego odpowiednika, sprawdź to.

@ Zobacz parametry jądra, aby uzyskać więcej informacji na tematmem=


Może być konieczne określenie wartości mniejszej niż 512M - być może w mapie pamięci płyty znajduje się urządzenie lub coś o fizycznym adresie 0x20000000 (512M) lub zbliżonym do niego, który to powinieneś otrzymać, aby dowiedzieć się, gdzie jest pamięć RAM na twojej płycie.
LawrenceC

1

Myślę, że powinieneś zwiększyć RAM Diskrozmiar swojego jądra.


-1

Oprócz innych postów na temat bycia bardziej szczegółowym, sugerowałbym również odmontowanie, /dev/shmjeśli jest zamontowane. To jest system plików ramdysku i zjada się w twoim ramie.

Zobacz także sysctlpolecenie w systemie Linux. Wykonanie czegoś takiego jak sysctl -w kernel.shmmax="<some number>"zmiana jądra podczas jego działania.


4
/ dev / shm zużywa niewiele pamięci, jeśli jest pusta. Zacznie używać pamięci RAM dopiero po załadowaniu do niego plików.
Patrick

/ dev / shm to nic innego jak implementacja tradycyjnej koncepcji pamięci współdzielonej. Jest to skuteczny sposób przekazywania danych między programami. Jeden program utworzy część pamięci, do której inne procesy (jeśli są dozwolone) mogą uzyskać dostęp. Spowoduje to przyspieszenie działania systemu Linux.
Satish,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.