U-boot에서 루트 파일 시스템에 액세스

U-boot에서 루트 파일 시스템에 액세스

USB-UART 케이블로 연결된 직렬 포트를 통한 연결, 임베디드 장치를 디버깅하려고 합니다. Embedded Linux v.2.6.26.5 루트 파일 시스템 "/" 및 루트 FS 아래의 하위 디렉터리에 액세스하는 방법은 무엇입니까? U-boot 모드에서는 이 shell명령을 사용할 수 없습니다. U-boot에서 쉘 CLI에 액세스하는 방법이 있습니까? 사용 가능한 U-boot 명령 및 로그는 다음과 같습니다.여기그리고여기.

답변1

U-boot의 세 번째 단계를 따라야 할 것 같습니다.

세 번째 단계는 Linux 커널을 로딩하는 단계입니다. 그러나 Linux 커널이 제어권을 갖기 전에 u-boot는 필수 매개변수가 포함된 명령줄을 커널에 전달합니다. 이러한 매개변수는 운영 체제가 부팅된 후 터미널 창에 다음을 입력하여 볼 수 있습니다.

$ cat /proc/cmdline
root=/dev/mmcblk0p2 rootwait rw console=ttyS0,115200n8 console=tty0 no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full dmfc=3 cvbsmode=576cvbs hdmimode=1080p m_bpp=32 vout=hdmi disablehpd=true

커널은 하드웨어를 초기화하고 루트 파일 시스템을 마운트하고(root=... 커널 매개변수에 따라) 제어 흐름을 /sbin/init에 전달합니다. 더 자세한 정보가 필요하면 abt Uboot를 따르세요.링크

답변2

파일 시스템 및 미디어에 따라 u-boot 쉘에서 직접 16진수 형식으로 데이터를 덤프할 수 있습니다. 리버스 엔지니어링을 수행하는 경우 help출력을 관찰하여 어떤 유형의 미디어 저장 장치 액세스 및 조작 명령을 U-boot에 컴파일했는지 이해하고 거기에서 계속 진행하십시오. 메모리에 로드한 후 또는 메모리 없이도 'md'를 사용하여 덤프할 수 있습니다. 메모리의 u-boot 부분 뒤에 로드 주소를 사용하십시오. 그렇지 않으면 재부팅됩니다. 대부분의 경우 파일 시스템은 압축되어 있으며 영구적으로 수정할 수 없다는 점을 명심하세요(squashfs가 일반적임). 때때로 u-boot에는 압축되지 않은 데이터를 로드하고 읽을 수 있는 명령이 함께 제공됩니다. 메모리 덤프에서 파일 시스템을 엿보는 것은 지루할 수 있으므로 전체 파티션 덤프를 로컬로 기록하고 이를 바이너리로 변환한 후 로컬에서 처리하는 것이 가장 좋습니다.

init=쉘 프로그램을 가리키도록 커널 인수를 수정하여 쉘 로드에 성공할 수 있습니다 . 일반적으로 임베디드 장치의 경우 busybox이므로 /bin/ash.

관련 정보