IMX6ULL 포팅 - uboot 네트워크 구성 작업

1. uboot 네트워크 IP 구성

1. 하드웨어 연결

uboot 의 네트워크 기능을 사용 하기 전에 개발 보드의 ENET2 인터페이스를 컴퓨터나 라우터에 네트워크 케이블로 연결합니다 .
I.MX6U-ALPHA 개발 보드에는 두 개의 네트워크 포트가 있습니다: ENET1 ENET2 , ENET2 에 연결해야 합니다 . ENET2 인터페이스는 다음과 같습니다.

 2. 소프트웨어 요구 사항

(1) IP 주소 테스트

개발 보드와 컴퓨터가 동일한 네트워크 세그먼트에 있는지 확인하십시오.

예를 들어 개발 보드의 IP 주소가 192.1.68.1.100이면 컴퓨터의 IP 주소도 1 네트워크 세그먼트여야 하고 IP 주소는 192.168.1.*이어야 합니다(*는 모든 값이 될 수 있지만 IP 주소는 다른 사람이 점유하지 않습니다).

동일한 IP 네트워크 세그먼트에 있는지 테스트합니다.

개발 보드의 전원을 켜고 Enter 키를 눌러 uboot 명령 모드로 들어간 다음 가상 머신에서 우분투 시스템을 엽니다.

다음과 같이 우분투 시스템 의 네트워크 IP 주소를 확인합니다 .

wangtian@wangtian-virtual-machine:~/桌面$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 102.168.1.66  netmask 255.255.255.0  broadcast 102.168.1.255
        inet6 fe80::308d:7a5d:b615:fb20  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3e:e7:a3  txqueuelen 1000  (以太网)
        RX packets 2666  bytes 334388 (334.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3057  bytes 200791 (200.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

개발 보드 의 uboot 명령 모드 에서 Ubuntu 시스템의 IP 주소를 ping하면 작업은 다음과 같습니다.

=> ping 192.168.1.66
FEC1 Waiting for PHY auto negotiation to complete.... done
*** ERROR: `ipaddr' not set
ping failed; host 192.168.1.66 is not alive

위에서 개발 보드가 네트워크 IP 주소를 설정하지 않는다는 것을 알 수 있습니다.

따라서 여기에서 개발 보드의 IP 주소를 설정해야 합니다. ipaddr은 개발 보드의 환경 변수입니다.

참고: 여기서 개발 보드의 IP 주소는 다른 장치에서 사용되지 않도록 보장해야 합니다. 그렇지 않으면 IP 주소가 충돌합니다! ! !

IP 주소가 이미 사용 중인지 감지: 자신의 우분투 시스템은 IP 주소를 핑하여 핑할 수 있는지 여부를 확인할 수 있습니다.

우분투 시스템의 ping IP 주소는 192.168.1.50 이며 작업은 다음과 같습니다.

wangtian@wangtian-virtual-machine:~/桌面$ ping 192.168.1.50
PING 192.168.1.50 (192.168.1.50) 56(84) bytes of data.
来自 102.168.1.66 icmp_seq=1 目标主机不可达
来自 102.168.1.66 icmp_seq=2 目标主机不可达

위의 정보는 IP 주소 192.168.62.50이 다른 장치에서 사용되지 않음을 나타냅니다. 따라서 개발 보드는 이 IP 주소를 설정할 수 있습니다.

(2) 개발 보드의 IP 주소 및 MAC 주소 설정

ipaddr의 주소를 설정합니다(즉, ip 주소):

=> setenv ipaddr 192.168.1.50
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x400000 -- 100% complete.
Writing to NAND... OK

여기서 먼저 우분투IP 192.168.1.66 ping을 시도 합니다 . 작업은 다음과 같습니다.

=> ping 192.168.1.66
FEC1 Waiting for PHY auto negotiation to complete.... done
*** ERROR: `ethaddr' not set
ping failed; host 192.168.1.66 is not alive

위의 결과는 개발 보드가 시스템 우분투를 ping하지 못하여 ethaddr이 설정되지 않았다는 오류를 표시합니다.

여기서 "ethaddr"은 개발 보드의 MAC 주소를 나타냅니다.

참고: ethaddr은 48비트 주소입니다.동일한 네트워크 세그먼트에 여러 개의 개발 보드가 있는 경우 각 개발 보드의 ethaddr가 서로 다른지 확인해야 합니다(즉, 각 개발 보드의 MAC 주소는 고유함). 통신이 끊어집니다. 문제가 있습니다!

ethaddr의 주소를 설정하기 위한 작업은 다음과 같습니다.

=> setenv ethaddr b8:ae:1d:01:00:00
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x400000 -- 100% complete.
Writing to NAND... OK

(3) 게이트웨이, 서브넷 마스크, 서버 IP 설정

IP 주소와 MAC 주소를 설정하는 것 외에도 개발 보드의 게이트웨이, 서브넷 마스크 및 서버 IP 주소(즉, 연결해야 하는 시스템)도 설정해야 합니다.

다음으로 네트워크와 관련된 개발 보드의 세 가지 매개 변수 값을 계속 설정합니다.여기서 serveip는 서버의 IP 주소이며 개발 보드가 나중에 ping을 수행해야 하는 시스템입니다. 여기서 서버는 우분투 가상 머신을 사용하므로 serverip는 우분투의 IP 주소입니다.

작업은 다음과 같습니다.

=> setenv gatewayip 192.168.1.1
=> setenv netmask 255.255.255.0
=> setenv serverip 192.168.1.66
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x400000 -- 100% complete.
Writing to NAND... OK

(3) 개발 보드가 가상 머신을 핑합니다.

  개발 보드가 가상 머신을 ping할 수 없는 경우 다음 문서를 참조할 수 있습니다. URL은 다음과 같습니다.

개발 보드의 uboot 명령 모드를 입력하고 우분투 가상 머신을 엽니다. 개발 보드의 IP 주소가 가상 머신과 동일한 네트워크 세그먼트에 있는지 확인하십시오.

여기서 내 가상 머신 네트워크는 "브리지 모드"로 설정되어 있고 개발 보드는 우분투 시스템을 핑합니다. 지금까지 개발 보드는 성공적으로 가상 머신을 핑했습니다.

작업은 다음과 같습니다.

=> ping 192.168.1.66
Using FEC1 device
host 192.168.1.66 is alive
알아채다:
uboot 에서는 다른 시스템 ping 할 수 있으며 uboot는 ping 하지 않기 때문에 다른 시스템은 uboot를 ping 할 수 없습니다.
명령이 처리됩니다. 다른 시스템을 사용하여 uboot를 핑하면 실패합니다!

 

Supongo que te gusta

Origin blog.csdn.net/wojiaxiaohuang2014/article/details/131518486
Recomendado
Clasificación