Próbuję zainstalować Linuksa na płycie FPGA. Linuksowym smakiem jest płatekuks dla układów FPGA Xilinx.
Obecny układ Soil Xilinx ma procesor Cortex A9 i programowalną logikę sprzętową, tj. FPGA. Przechwyciłem komunikat rozruchowy na terminalu:
.....................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
Szczególnie interesują mnie następujące linie:
[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
Pytanie nr 1: Sądzę, że te linie dotyczą TCP / IP?
Jak widać, marnuje się tutaj około 12 sekund. Chodzi mi o to, że potrzebuję systemu szybkiego rozruchu i wcale nie będę potrzebował TCP / IP w aplikacji końcowej.
Linux, który do tej pory instalowałem, korzystał z gotowego obrazu dostarczonego przez Xilinx. Teraz, aby pozbyć się części TCP / IP (ponieważ jej nie potrzebuję, a jeśli nie mam jej w systemie operacyjnym, można zaoszczędzić te 12 sekund - to moje zrozumienie), planuję zbudować własne jądro Linuksa.
Pobrałem więc kod źródłowy dla PetaLinux, zakładając, że będę musiał skompilować go z mojego systemu hosta.
Pytanie nr 2: Ale chcę wiedzieć, jak mogę wykluczyć część TCP / IP ze źródła systemu operacyjnego, aby po uruchomieniu systemu operacyjnego nigdy nie wykonywała czasochłonnych procedur TCP / IP?
Pytanie nr 3: Nie jestem również pewien, czy na gotowym obrazie możemy mieć opcję wyłączenia części TCP / IP?
Moim celem jest pozbycie się tych linii podczas procesu uruchamiania:
[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