커널 메모리 크기 늘리기


14

Linux 2.6.29 및 UBoot 부트 로더를 실행하는 512MB의 RAM이 내장 된 보드가 있습니다. 그러나 커널은 128MB의 RAM 만 사용할 수 있습니다.

XCODE_MEMSIZE커널의 RAM 용량을 결정하는 의 값을 변경하려고했습니다 .

512로 설정하면 부팅하는 동안 커널이 충돌합니다. 변경해야 할 다른 구성 매개 변수가 있습니까?


언급 한 충돌에 대해 더 구체적으로 설명 할 수 있습니까? 화면에 무엇이 보이나요? 오류가 있습니까?
Straphka

그리고 그것은 어떤 보드입니까?
Gilles 'SO- 악마 그만'

'128MB 만 사용할 수 있습니다'에 대한 자세한 정보를 제공해야합니다. 뭔가 어딘가에 제한 된 것처럼 들립니다 (사용자 당 스택 크기 등).
다항식

u-boot가 얼마나 많은 메모리를 감지합니까? 512MB 전체를 감지합니까?
freethinker

cat /proc/cmdline칠판에 무엇을 말합니까?
Ankur Agarwal

답변:


3

임베디드 보드에 대한 구체적인 지식이 없으면 두 가지가 떠 오릅니다.

  1. 커널 mem=부팅 매개 변수를 사용해보십시오 . (때로는 비 연속 주소에서 메모리를 사용할 수 있다고 생각하므로 이와 같은 것을 사용해야 할 수도 있지만 주소는 mobo마다 확인해야합니다.

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

  2. 내장 그래픽 카드가 있습니까? 사용 가능한 램 덩어리가 나올 수 있습니다. 당신이 바이오스 또는 그와 동등한 것을 얻을 수 있다면, 그것을 확인하십시오.

@see 커널 paramters을 에 대한 자세한 내용은mem=


512M보다 작은 값을 지정해야 할 수도 있습니다. 보드의 메모리 맵에 물리적 주소 0x20000000 (512M) 또는 그 근처에 장치 나 무언가가있을 수 있습니다.
LawrenceC

1

RAM Disk커널에서 크기를 늘려야한다고 생각합니다 .


-1

보다 구체적인 내용에 대한 다른 게시물 외에도 마운트 된 /dev/shm경우 마운트 해제를 제안 합니다. 그것은 램 디스크 파일 시스템이고 당신의 램으로 먹습니다.

또한 sysctl리눅스 의 명령을 살펴보십시오 . sysctl -w kernel.shmmax="<some number>"커널이 실행되는 동안 같은 작업을 수행하면 커널이 변경됩니다.


4
/ dev / shm은 비어있는 메모리를 거의 사용하지 않습니다. 파일이로드 된 후에 만 ​​램을 사용하기 시작합니다.
Patrick

/ dev / shm은 전통적인 공유 메모리 개념의 구현에 지나지 않습니다. 프로그램간에 데이터를 전달하는 효율적인 방법입니다. 한 프로그램은 다른 프로세스 (허용 된 경우)가 액세스 할 수있는 메모리 부분을 작성합니다. 이로 인해 Linux에서 속도가 향상됩니다.
Satish
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.