U-Boot 터미널에서 uEnv.txt를 복구하시겠습니까?

U-Boot 터미널에서 uEnv.txt를 복구하시겠습니까?

Debian 8.3, Linux 4.1.15-ti-rt-r43이 설치된 BeagleBone Black이 있습니다.

편집하다: 시스템이 설치된 위치는 다음과 같습니다.내장 플래시.

다른 dtb 파일을 로드하기 위해 /boot/uEnv.txt를 수정했는데 분명히 파일 이름이 잘못되어 Linux로 부팅되지 않았습니다.

그래서 J1 핀/UART0 -> PC의 터미널 프로그램을 통해 연결했습니다. U-Boot가 파일을 찾을 수 없어 Linux를 부팅할 수 없다고 불평하는 것을 보고 U-Boot 명령을 주었습니다. "help"를 입력한 후에 나열된 내용은 별로 유용해 보이지 않습니다.

U-Boot 명령을 사용하여 직렬 콘솔에서 uEnv.txt를 복구하는 것이 가능하고 실행 가능합니까? 이것이 작동합니까...어떻게 작동합니까? 아니면 또 무엇이 가장 좋은 방법인가요?


편집 #2: 이 사이트에서 문제를 제대로 설명하지는 않지만 유용한 방향을 제시하는 몇 가지 유용한 스크랩을 찾았습니다.https://www.compulab.co.il/utilite-computer/wiki/index.php/Utilite_U-Boot_User_How-To%27s실제로 U-Boot 콘솔에 uEnv.txt가 입력되는 것을 볼 수 있습니다: "ls mmc 1 boot", U-Boot의 ls 명령에는 장치 이름 + num이 필요합니다. 내 SD 카드는 mmc0이고 내부 플래시 mmc1입니다. , 흥미로운 순서. 아쉽게도 U-Boot에는 편집자는 물론이고 "고양이"도 없는 것 같습니다. 동전을 얻기 위해 인형을 잡으려고 리모컨 팔을 가진 아이처럼, 내 파일을 제대로 잡을 수 없고 너무 가까워요!


편집 #3: mmc1에 uEnv.txt라는 오래된 백업파일이 있는 걸 보니. U-Boot 명령 "load"는 파일을 메모리에 로드하는 데 사용되고 "save"는 파일을 저장하는 데 사용됩니다. 주소와 크기를 지정해야 합니다. "ls mmc 1 boot" 명령에서 볼 수 있는 파일 크기입니다. 이 슬라이드의 35페이지에 있는 메모리 맵을 확인하세요.https://www.slideshare.net/chrissimmonds/embedded-linux-quick-start-guide, RAM은 다음에서 시작됩니다.0x80000000. RAM에 U-Boot만 있고 384MB에는 아무 것도 없을 것으로 추측하여 파일을 다음 위치로 로드해 보았습니다.98000000, 거기에서 저장하지만 저장하면 "파일에 쓸 수 없습니다"가 반환됩니다. 정말 끔찍해요.

답변1

글쎄, 나는 U-Boot 경로를 포기했지만 그것이 작동한다면 멋질 것입니다.

저는 "Stretch IoT(그래픽 데스크탑 없음)"와 같은 BeagleBone Debian 이미지의 IoT 변형(콘솔만, GUI 없음, 더 빠른 다운로드)을 가져왔습니다. https://beagleboard.org/latest-images

여기의 단계를 따르세요. http://beagleboard.org/getting-started

새로 고치는 방법에 대한 링크가 있는데, 여기에는 추가 단계가 필요합니다. 기억이 잘 나지 않습니다. sdcard 시작이 내가 원하지 않는 내부 emmc를 새로 고칠까 걱정됩니다.

앞서 언급한 것처럼 SD 카드를 삽입하면 sdcard mmc 장치 번호는 0, 내장 플래시 메모리(emmc)는 1이 됩니다. 또한 emmc의 파일 시스템은 분명히 ext4입니다. 따라서 설치해야 합니다.

debian@beaglebone:~$ sudo mkdir /mnt/emmc
debian@beaglebone:~$ sudo mount -t ext4 /dev/mmcblk1p1 /mnt/emmc

그런 다음 설치된 emmc의 부팅 폴더에 들어갈 수 있습니다.

debian@beaglebone:/$ cd /mnt/emmc/boot/

그리고 편집기나 미리 만든 백업을 사용하여 uEnv.txt를 수정하세요. ;)

답변2

나중에 쓰겠지만 다른 분들께도 도움이 될 것 같습니다.

백업이 있는 경우 uEnv.txt백업 프로세스가 빠르고 쉽습니다. 컴퓨터에 있는 경우 SD 카드에 복사한 다음 SD 카드에서 RAM으로, RAM에서 EMMC로 복사할 수 있습니다.

  • 먼저 파일 내용을 RAM 메모리에 복사합니다.

    ext4load mmc 1 0x80000000 /boot/uEnv.txt_bck
    
  • 그런 다음 파일 내용을 새 파일에 씁니다.

    ext4write mmc 1 0x80000000 /boot/uEnv.txt 7FA 0
    

참고: ext4write는 16진수 바이트 숫자를 사용합니다.

참고: mmc 1내 거rootfs 파티션. 이 명령을 사용하면 mmc list설정의 파티션을 볼 수 있습니다.

관련 정보