Tytuł: LinuxCNC 2.9.1 ustawianie do 7i96s Wiadomość wysłana przez: markcomp Listopada 23, 2023, 11:43:32 LinuxCNC 2.9.1 ustawianie do 7i96s
po przeprowadzeniu instalacji LinuxCNC 2.9.1 Debian 12 Bookworm PREEMPT-RT ISO https://www.linuxcnc.org/iso/linuxcnc_2.9.1-amd64.hybrid.iso obraz dysku można wgrać na USB-FLASH, zamiast wypalać DVD. Kod: sudo dd if=plik_obraz.iso of=/dev/symbol_flasha bs=4M && sync nazwa urządzenia w linuksie jaka została przydzielona USB-FLASH trzeba "wyczuć", zaproponuje dwa sposoby aby zobaczyć przydział symboli do dysków w systemie. 1. Kod: sudo fdisk -l 2.Kod: lsblk ..dalej jeśli się udało, i przekonaliśmy komputer do bootowania z USB, trzeba przejść przez dość typowy kreator instalacji. powodzenia Tytuł: Odp: LinuxCNC 2.9.1 ustawianie do 7i96s Wiadomość wysłana przez: markcomp Listopada 23, 2023, 11:57:20 Autologowanie
Warto sprawić aby linux pominął logowania, dlatego ustawiamy autologin w pliku konfiguracji: Kod: /etc/lightdm/lightdm.conf należy znaleźć te linie: Kod: autologin-user=yourusername autologin-user-timeout=0 gdzie yourusername to nazwa użytkownika stworzona podczas instalacji. Tytuł: Odp: LinuxCNC 2.9.1 ustawianie do 7i96s Wiadomość wysłana przez: markcomp Listopada 24, 2023, 12:12:19 Konfiguracja Karty (złącza) Ethernet
aby zobaczyć symboj ethernetu w komuterze wpisujemy Kod: ip link show na moim desktopie pojawiło się: Kod: $ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000 link/ether d0:17:c2:07:18:74 brd ff:ff:ff:ff:ff:ff 3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 link/ether 80:a5:89:d9:2b:8f brd ff:ff:ff:ff:ff:ff 4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 02:42:24:58:86:58 brd ff:ff:ff:ff:ff:ff Można zapytać o interfejsy sieciowe inczej Kod: nmcli device status u mnie pojawia się: Kod: $ nmcli device status DEVICE TYPE STATE CONNECTION wlp3s0 wifi połączono WLAN1-5G-B30RTJ docker0 bridge połączono docker0 p2p-dev-wlp3s0 wifi-p2p rozłączono -- enp2s0 ethernet niedostępne -- lo loopback niezarządzane -- W moim komputerze mam ethernet pod symbolem enp2s0. Aby możliwa była komunikacja z 7i96s, która często ma domyślnie ustawiony adres 10.10.10.10, należy nasz interfejs sieciowy ustawić np. 10.10.10.1 Można to "wyklikać" w powłoce graficzne w ustawieniach sieciowych, albo ustalić statycznie w plikach konfiguracyjnych Do pliku Kod: /etc/network/interfaces należy wprowadzić tekst (dowolnym edytorem tekstu, ale w trybie sudo) Kod: auto enp2s0 iface enp2s0 inet static address 10.10.10.1 netmask 255.255.255.0 Tytuł: Odp: LinuxCNC 2.9.1 ustawianie do 7i96s Wiadomość wysłana przez: markcomp Listopada 24, 2023, 12:45:02 pozostaje jeszcze opisanie:
usunąć wszystko dotyczące oszczędzania energii w BIOS (czy jak to się teraz nazywa), dawniej APCI w samym linuksie również usuwamy usypianie i wyłaczanie ekanu, minimum programów tle wyłączyć jeśli się da hyperthreading w BIOS nie jest również konieczny dźwięk - czyli wyłączamy go w BIOS (audio) C-state - disabled i isolcpus w grub-ie też warto ustawić (to poprawia yitter) przy definicji interfejsu ethernet czasami dodaje się hardware-irq-coalesce-rx-usecs 0 wyniki umnie: $ ethtool -c enp2s0 Coalesce parameters for enp2s0: Adaptive RX: off TX: off stats-block-usecs: 0 sample-interval: 0 pkt-rate-low: 0 pkt-rate-high: 0 rx-usecs: 75 rx-frames: 60 rx-usecs-irq: 0 rx-frames-irq: 0 tx-usecs: 75 tx-frames: 60 tx-usecs-irq: 0 tx-frames-irq: 0 rx-usecs-low: 0 rx-frames-low: 0 tx-usecs-low: 0 tx-frames-low: 0 rx-usecs-high: 0 rx-frames-high: 0 tx-usecs-high: 0 tx-frames-high: 0 Dodatek na końcu ponoć poprawia szybkość przy sieciówkach intela (Intel Ethernet chips) Configure network with static address Add these lines to the file /etc/network/interfaces to configure eth1 with a static address: auto eth1 iface eth1 inet static address 192.168.1.1 hardware-irq-coalesce-rx-usecs 0 W BIOSie * Virtualization Technology/Vanderpool Technology - disabled Floppy disk drive - Disable * Serial Port - Disable * HyperThreading - Disable * SpeedStep - Disable * C-States/Enhanced C-States - Disable * Fan speed control (lub podobne) - Full speed. wyłączamy wszystkie nastawy regulacji wiatraków aby pracował w sposób ciągły na MAX * On-board GPU - Disable when using PCI-E GPU wyłącz grafikę na pokładzie płyty głownej jeśli jest grafika na karcie * Hardware prefetcher - Enabled * Adjacent cache line prefetch - Enabled Tytuł: Odp: LinuxCNC 2.9.1 ustawianie do 7i96s Wiadomość wysłana przez: markcomp Listopada 24, 2023, 11:07:37 Więcej o isolcpus - izolowaniu rdzeni
Aby ustawić isolcpus na i5-1135G7 dla linuxcnc 2.9.1, należy znać numerację logicznych rdzeni procesora. Można to sprawdzić z pomocą polecenia lscpu w terminalu. Kod: lscpu -e (*) Procesor i5-1135G7 ma 4 rdzenie i 8 wątków, więc numeracja rdzeni będzie od 0 do 7. Jeśli chcemy izolować np. rdzeń 3 i 7, musimy dodać parametr Kod: isolcpus=3,7 do linii GRUB_CMDLINE_LINUX w pliku Kod: /etc/default/grub i następnie wykonać polecenie Kod: update-grub i zrestartować komputer Aby ustawić jądro czasu rzeczywistego, aby korzystało z wyizolowanego cpu, musimy użyć polecenia taskset lub numactl do uruchomienia linuxcnc na określonym rdzeniu lub zestawie rdzeni. Na przykład, aby uruchomić linuxcnc na rdzeniu 3, możemy użyć polecenia Kod: taskset -c 3 linuxcnc Aby uruchomić linuxcnc na rdzeniach 3 i 7, możesz użyć polecenia Kod: taskset -c 3,7 linuxcnc Możemy też użyć polecenia numactl zamiast taskset, jeśli chcemy określić również politykę alokacji pamięci. (*) Polecenie lscpu w linuxcnc 2.9.1 nie pokazuje poprawnie izolowanych rdzeni. Wersja zgodnie ze zwyczajem debiana jest przestarzała. lscpu -V daje 2.38.1. Nowsza wersja np. 3.5.0 lscpu pokazywała by poprawnie. Aby sprawdzić u źródła, nalerzy zbadać zawartość pliku systemowego: /sys/devices/system/cpu/isolated Tytuł: Odp: LinuxCNC 2.9.1 ustawianie do 7i96s Wiadomość wysłana przez: markcomp Listopada 24, 2023, 11:37:30 C-state
C-state to skrót od CPU power state, czyli stanu zasilania procesora. Jest to mechanizm, który pozwala na zmniejszenie zużycia energii i ciepła przez procesor, poprzez wyłączanie lub zmniejszanie częstotliwości niektórych jego elementów, gdy nie są one aktywnie używane. Im wyższy numer C-state, tym większa oszczędność energii, ale też większy czas potrzebny na przejście do pełnej aktywności. W linuxcnc, C-state może mieć wpływ na jakość sterowania maszyną CNC, ponieważ może powodować opóźnienia lub utratę synchronizacji między komputerem a napędami. Dlatego zaleca się, aby wyłączyć lub ograniczyć C-state w BIOS-ie lub ustawieniach systemowych, aby zapewnić stałą i szybką komunikację z urządzeniami. Możemy to zrobić na przykład poprzez dodanie parametru Kod: intel_idle.max_cstate=0 do linii GRUB_CMDLINE_LINUX w pliku Kod: /etc/default/grub i następnie wykonać polecenie Kod: update-grub Tytuł: Odp: LinuxCNC 2.9.1 ustawianie do 7i96s Wiadomość wysłana przez: markcomp Listopada 24, 2023, 11:55:50 Szybkość pracy karty sieciowej Ethernet silnie zależy od zastosowanego sprzętu.
Sterownik karty sieciowej może też znaczący wpływ na latency wysyłanych pakietów. Wydajność czasu rzeczywistego na kartach sieciowych zależy również silnie od wersji jądra. np. wersja 6.1 jest dużo lepsza niż 5.1. Problemy latency ethernetu przy komunikacji z 7i96s mogą doprowadzić do błędów: "Error Finishing Read" - opóźnienie sieci pozostawiło niewystarczający czas na zakończenie servo threat cycle z linuxcnc. Tytuł: Odp: LinuxCNC 2.9.1 ustawianie do 7i96s Wiadomość wysłana przez: markcomp Listopada 28, 2023, 10:59:24 hwloc-gui ---> lstopo command, which produces graphical output.
|