2012-05-18 2 views
9

시스템에 ARM Cortex-R4를 사용하고 있습니다. 메모리 관리 장치 대신 메모리 보호 장치가 있습니다. 사실상 이것은 메모리 보호를위한 전용 하드웨어가 있지만 물리적 주소와 가상 주소 사이에 일대일 매핑이 있음을 의미합니다. 나는 약간의 리눅스에 대해 혼란 스럽다. 표준 리눅스 커널 (MMU 사용 불가 또는 uCLinux).ARM Cortex-R4에서 MMU가없는 Linux 실행

ARM의 평가 보드에서 MMU를 사용하지 않도록 컴파일 된 표준 커널을 실행했습니다. 공식 ARM 웹 사이트에서 구할 수있는 cramfs 파일 시스템을 사용했습니다. 커널을 부팅 한 후에 나는 쉘에 있지만 대부분의 경우 셸이 응답을 멈추는 것을 발견하면서 많은 실험을 할 수 없었습니다 (특히 자동 완성을 위해 "탭"을 누르면).

그래서 올바른 파일 시스템을 사용하면 MMU가없는 커널이 원활하게 실행되어야하는지 확실하지 않습니다. 또한 VM웨어가 아닌 Linux를 위해 어떤 배포판 (buildroot?)을 사용해야합니까?

모든 아이디어 나 제안을 환영합니다.

+0

마치 커널이나 파일 시스템이라고 추측하는 것보다 정확히 무엇이 충돌하고 왜 있는지 알아 내야 할 필요가 있다고 생각합니다. 보드에 두 번째 경로를 확보 할 수 있다면 (uart와 네트워크 모두), 다른 노드가 멈추더라도 살아있을 지 알 수 있듯이 도움이됩니다. 사용자 공간 데몬이 터미널 (또는 커널 모듈 printk)에 주기적으로 "여전히 여기"라고 말하도록하는 것과 같은 일을 할 수 있습니다 - 최소한 시스템의 나머지 부분이 실행되는 동안 쉘이 멈추는 지 확인하는 데 도움이 될 것입니다. 커널이 걸려있는 경우. 또는 gpio 버튼에 대한 응답으로 ... –

+0

printk() 제안은 아마 사용자 공간 프로세스보다 낫습니다. Real in Running = 가상 모드는 기껏해야 도전적입니다. 내 투표는 uCLinux를위한 것입니다. –

답변

2

uClinux는이 "꺼져"는 MMU와 리눅스 커널을 사용하고 위에 일부 응용 프로그램 및 라이브러리를 추가하는 리눅스 배포판을 위해 지어진 생각 그것의. 당신은 하나 또는 둘 중 하나를 선택하지 않을 것입니다.

쉘을 실행하는 지점에 이르면 Linux에서 MMU를 부팅 할 수 있지만 버그가 발생합니다.

6

이 질문을 한 지 2 년이 지났습니다. 이제 내가 스스로 찾은 것을 써야 할 때입니다.

ucLinux는 MMU less 시스템 용 커널을 개발하려는 목적으로 오래 전에 리눅스 커널에서 출발 한 프로젝트였습니다. 그러나 얼마 후, 그것은 모기업 인 리눅스 지부와 통합되었다. 그래서, 현재 활성 ucLinux 배포판이 존재하지 않습니다.

메인 라인 커널 구성에서 MMU를 비활성화하면 MMU가없는 버전이 생깁니다. 사실, 이제는 커널 자체에서 제공되는 구성 옵션을 사용하여 사용자가 메모리 레이아웃과 액세스 권한을 지정할 수 있습니다.

건배!

관련 문제