저는 Arduino Yun을 사용하고 있으며 NFS를 통해 rootfs를 마운트하고 싶습니다.
openwrt 소스 코드를 다운로드하고 프로젝트를 빌드한 후 build_dir/target-mips_34kc_musl-1.1.15/root-ar71xx
아래에서 결과 rootfs를 복사했습니다./home/user/srv/nfs/root-ar71xx
uboot 프롬프트에서 사용하는 명령줄은 다음과 같습니다.
setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.1:/home/user/srv/nfs/root-ar71xx ip=192.168.1.2:192.168.1.1:192.168.1.1:255.255.255.0::off; bootm
uboot 환경 변수:
ar7240> printenv
bootcmd=bootm 0x9fea0000
bootdelay=4
baudrate=115200
ethaddr=0xb4:0x21:0x8a:0x00:0x00:0x10
ipaddr=192.168.1.2
serverip=192.168.1.1
stdin=serial
stdout=serial
stderr=serial
ethact=eth0
bootargs=root=/dev/nfs rw nfsroot=192.168.1.1:/home/user/srv/nfs/root-ar71xx
ip=192.168.1.2:192.168.1.1:192.168.1.1:255.255.255.0::off
Environment size: 319/65532 bytes
하지만 나는 다음을 얻습니다.
## Booting image at 81000000 ...
Bad Magic Number
나는 읽었다이 링크, U-Boot가 커널을 "이해"하기 위해서는 캡슐화가 필요합니다. rootfs도 마찬가지인가요?
또 다른 질문이 있지만 주제와 관련이 없습니다. 프로젝트를 빌드한 후 아래에 여러 바이너리(24)가 있습니다 bin/ar71xx/
.
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-tftp.bin
openwrt-ar71xx-generic-tl-mr11u-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-hp-g300nh2-squashfs-factory.bin
...
커널 이미지가 하나만 필요합니다. 이 이미지는 모두 무엇을 해야 합니까?
미리 감사드립니다.
편집하다:
명령줄을 다음과 같이 변경했습니다.
setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.1:/home/bou6/srv /nfs/root-ar71xx ip=192.168.1.2:192.168.1.1:192.168.1.1:255.255.255.0::off; bootm 0x9fea0000
더 이상 해당 권한이 없지만 Bad Magic Number
여전히 질문이 있습니다.
1-커널의 로딩 주소를 어떻게 알 수 있나요?
2- 이더넷 케이블에 분기가 없음에도 불구하고 커널은 여전히 Yun에 플래시된 기본 파일 시스템을 계속 사용하고 있는 것으로 나타났습니다. 이를 비활성화할 수 있는 방법이 있습니까?
답변1
bootargs
그냥 설정하고 호출하는 것만으로는 충분하지 않습니다 bootm
. 어딘가에서 커널 이미지를 로드해야 합니다. 따라서 질문 1에 대한 대답은 "RAM에 있고 원하는 주소에 맞는 충분한 공간이 있는 한 원하는 주소를 선택하세요"입니다. 커널 이미지가 로드됩니다."
커널 이미지를 로드하려면 tftp 서버를 설정하고 tftpboot
u-boot 명령을 사용하십시오. 예를 들어
tftpboot <address> openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-tftp.bin
(나는 이것이 커널 이미지를 포함하는 파일이라고 생각하지만 아마도 그렇지 않을 것입니다.) - 예를 들어 bootm
다음 명령을 사용할 수 있습니다.
bootm <address>
단서를 찾을 수도 있겠네요여기.
그런데 ip=...
커널 명령줄의 형식은 다음과 같습니다.
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>
off
그래서 내 생각에는 앞에 두 개의 콜론이 있어야 한다고 생각합니다.
ip=192.168.1.2:192.168.1.1:192.168.1.1:255.255.255.0:::off
하지만 내가 틀렸을 수도 있습니다.
질문 2에 관해서는 부팅이 실패하고 u-boot가 프롬프트로 돌아가기를 원합니다. 계속하지 말고 플래시의 파일 시스템을 사용하십시오.
마지막으로, 24개의 파일 이름을 모두 나열하여 bin/ar71xx
그 중 어느 것이 커널 이미지인지 결정할 수 있습니다(위의 추측은 옳지 않다고 생각됩니다).