FPGA 보드에 Linux를 설치하려고합니다. 리눅스 맛은 자일링스 FPGA 칩을위한 petalinux 이다.
현재 Xilinx SoC에는 Cortex A9 프로세서와 프로그래밍 가능한 하드웨어 로직 (예 : FPGA)이 있습니다. 터미널에서 부팅 메시지를 캡처했습니다.
.....................U-boot time.......................partition.......................................................
[Fri Dec 27 15:18:53.108 2013] Copying Linux from SD to RAM...
[Fri Dec 27 15:18:53.129 2013] Device: SDHCI
[Fri Dec 27 15:18:53.129 2013] Manufacturer ID: 2
[Fri Dec 27 15:18:53.129 2013] OEM: 544d
[Fri Dec 27 15:18:53.129 2013] Name: SA04G
[Fri Dec 27 15:18:53.129 2013] Tran Speed: 25000000
[Fri Dec 27 15:18:53.129 2013] Rd Block Len: 512
[Fri Dec 27 15:18:53.129 2013] SD version 1.10
[Fri Dec 27 15:18:53.129 2013] High Capacity: Yes
[Fri Dec 27 15:18:53.129 2013] Capacity: 3951034368
[Fri Dec 27 15:18:53.129 2013] Bus Width: 1-bit
[Fri Dec 27 15:18:53.129 2013] reading zImage
[Fri Dec 27 15:18:59.367 2013]
[Fri Dec 27 15:18:59.367 2013] 2304852 bytes read
[Fri Dec 27 15:18:59.381 2013] reading devicetree.dtb
[Fri Dec 27 15:18:59.475 2013]
[Fri Dec 27 15:18:59.475 2013] 2709 bytes read
[Fri Dec 27 15:18:59.491 2013] reading ramdisk8M.image.gz
[Fri Dec 27 15:19:06.121 2013]
[Fri Dec 27 15:19:06.121 2013] 2501584 bytes read
[Fri Dec 27 15:19:06.144 2013] Trying to set up GEM link...
[Fri Dec 27 15:19:06.144 2013] Resetting PHY...
[Fri Dec 27 15:19:06.144 2013]
[Fri Dec 27 15:19:06.144 2013] PHY reset complete.
[Fri Dec 27 15:19:06.144 2013] Waiting for PHY to complete auto-negotiation...
[Fri Dec 27 15:19:18.176 2013] ***Error: Auto-negotiation stalled...
[Fri Dec 27 15:19:18.176 2013] ping failed; host 10.10.70.101 is not alive
나는이 라인들에 특별히 관심이있다 :
[Fri Dec 27 15:19:06.144 2013] PHY reset complete.
[Fri Dec 27 15:19:06.144 2013] Waiting for PHY to complete auto-negotiation...
[Fri Dec 27 15:19:18.176 2013] ***Error: Auto-negotiation stalled...
[Fri Dec 27 15:19:18.176 2013] ping failed; host 10.10.70.101 is not alive
질문 # 1 : 이 줄이 TCP / IP 용이라고 생각합니까?
보시다시피 여기에는 약 12 초가 낭비됩니다. 문제는 빠른 부팅 시스템이 필요하고 최종 응용 프로그램에서 TCP / IP가 전혀 필요하지 않다는 것입니다.
지금까지 설치 한 Linux는 Xilinx에서 제공 한 사전 빌드 된 이미지를 사용했습니다. 이제 TCP / IP 부분을 제거하려면 (필요하지 않기 때문에 OS에 없으면 12 초를 절약 할 수 있습니다. 이것은 내 이해입니다), 자신의 리눅스 커널.
따라서 호스트 시스템에서 크로스 컴파일해야한다고 가정하면서 PetaLinux의 소스 코드를 다운로드했습니다.
질문 # 2 : 그러나 OS 소스에서 TCP / IP 부분을 어떻게 제외시킬 수 있는지 알고 싶습니다. OS가 부팅 될 때 시간이 많이 걸리는 TCP / IP 루틴을 절대로 실행하지 않습니까?
질문 # 3 : 사전 빌드 된 이미지에서 TCP / IP 부분을 비활성화 할 수있는 옵션이 있는지 잘 모르겠습니다.
내 목표는 부팅 과정에서 다음 줄을 제거하는 것입니다.
[Fri Dec 27 15:19:06.144 2013] PHY reset complete.
[Fri Dec 27 15:19:06.144 2013] Waiting for PHY to complete auto-negotiation...
[Fri Dec 27 15:19:18.176 2013] ***Error: Auto-negotiation stalled...
[Fri Dec 27 15:19:18.176 2013] ping failed; host 10.10.70.101 is not alive