![파티션 전환에 대한 U-boot 메시지를 이해할 수 없습니다](https://linux55.com/image/148562/%ED%8C%8C%ED%8B%B0%EC%85%98%20%EC%A0%84%ED%99%98%EC%97%90%20%EB%8C%80%ED%95%9C%20U-boot%20%EB%A9%94%EC%8B%9C%EC%A7%80%EB%A5%BC%20%EC%9D%B4%ED%95%B4%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.png)
저는 내부 emmc에 플래시된 기본 데비안 이미지가 있는 BeagleBone 보드를 사용하고 있습니다.
mmc0 is current device
장치가 부팅될 때 직렬을 통해 수신되는 다음 U-boot 메시지, 특히 먼저 보고된 다음 나중에 설명되는 방식을 이해하려고 노력하고 있습니다 mmc1(part 0) is current device
.
여기서 무슨 일이 일어나고 있는 걸까요? mmc0은 내장형 emmc 메모리인가요, 아니면 SD 카드인가요? 부트로더가 mmc0에서 mmc1로 전환되는 이유는 무엇인가요?
U-Boot SPL 2018.09-00002-g0b54a51eee (Sep 10 2018 - 19:41:39 -0500)
Trying to boot from MMC2
Loading Environment from EXT4...
** Unable to use mmc 0:1 for loading the env **
U-Boot 2018.09-00002-g0b54a51eee (Sep 10 2018 - 19:41:39 -0500), Build:
jenkins-github_Bootloader-Builder-65
CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 512 MiB
No match for driver 'omap_hsmmc'
No match for driver 'omap_hsmmc'
Some drivers were not found
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4...
** Unable to use mmc 0:1 for loading the env **
Board: BeagleBone Black
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
Model: SeeedStudio BeagleBone Green Wireless:
BeagleBone: cape eeprom: i2c_probe: 0x54:
BeagleBone: cape eeprom: i2c_probe: 0x55:
BeagleBone: cape eeprom: i2c_probe: 0x56:
BeagleBone: cape eeprom: i2c_probe: 0x57:
Net: eth0: MII MODE
Could not get PHY for cpsw: addr 0
cpsw, usb_ether
Press SPACE to abort autoboot in 2 seconds
board_name=[A335BNLT] ...
board_rev=[GW1A] ...
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt ...
Checking for: /boot.scr ...
Checking for: /boot/boot.scr ...
Checking for: /boot/uEnv.txt ...
** Invalid partition 3 **
** Invalid partition 4 **
** Invalid partition 5 **
** Invalid partition 6 **
** Invalid partition 7 **
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1...
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc1(part 0) is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt ...
Checking for: /boot.scr ...
Checking for: /boot/boot.scr ...
Checking for: /boot/uEnv.txt ...
gpio: pin 55 (gpio 55) value is 1
2099 bytes read in 7 ms (292 KiB/s)
Loaded environment from /boot/uEnv.txt
Checking if uname_r is set in /boot/uEnv.txt...
gpio: pin 56 (gpio 56) value is 1
Running uname_boot ...
loading /boot/vmlinuz-4.14.71-ti-r80 ...
10416640 bytes read in 663 ms (15 MiB/s)
답변1
이 예에서 mmc0은 SD 카드이고 mmc1은 eMMC입니다. "부팅 시도" 메시지는 1부터 시작하는 SoC 문서의 장치 번호와 일치하고 후속 메시지는 0부터 시작하는 일반적인 규칙을 따르기 때문에 상황이 덜 명확해집니다.
이 보드의 기본 부팅 명령은 사용자가 쉽게 다른 것을 시도할 수 있도록 부팅할 유효한 "사물"을 찾기 위해 여러 위치를 검색하고, 부팅할 SD 카드를 찾은 다음 해당 위치를 살펴봅니다. eMMC로 돌아갑니다.