rozważania o CNC

Marzec 29, 2024, 06:42:21
Witamy, Gość. Zaloguj się lub zarejestruj.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Strony: [1]   Do dołu
  Drukuj  
Autor Wątek: LinuxCNC 2.9.1 ustawianie do 7i96s  (Przeczytany 1447 razy)
markcomp
Administrator
*****
Offline Offline

Wiadomości: 14874



WWW
« : Listopad 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

Zapisane

MARKcomp77

http://oferta.forum-cnc.pl/
Sterowniki.Silniki

markcomp
Administrator
*****
Offline Offline

Wiadomości: 14874



WWW
« Odpowiedz #1 : Listopad 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.
« Ostatnia zmiana: Listopad 26, 2023, 01:45:25 wysłane przez markcomp » Zapisane

MARKcomp77

http://oferta.forum-cnc.pl/
Sterowniki.Silniki

markcomp
Administrator
*****
Offline Offline

Wiadomości: 14874



WWW
« Odpowiedz #2 : Listopad 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
Zapisane

MARKcomp77

http://oferta.forum-cnc.pl/
Sterowniki.Silniki

markcomp
Administrator
*****
Offline Offline

Wiadomości: 14874



WWW
« Odpowiedz #3 : Listopad 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
« Ostatnia zmiana: Listopad 24, 2023, 08:54:28 wysłane przez markcomp » Zapisane

MARKcomp77

http://oferta.forum-cnc.pl/
Sterowniki.Silniki

markcomp
Administrator
*****
Offline Offline

Wiadomości: 14874



WWW
« Odpowiedz #4 : Listopad 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

« Ostatnia zmiana: Listopad 28, 2023, 06:09:46 wysłane przez markcomp » Zapisane

MARKcomp77

http://oferta.forum-cnc.pl/
Sterowniki.Silniki

markcomp
Administrator
*****
Offline Offline

Wiadomości: 14874



WWW
« Odpowiedz #5 : Listopad 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
Zapisane

MARKcomp77

http://oferta.forum-cnc.pl/
Sterowniki.Silniki

markcomp
Administrator
*****
Offline Offline

Wiadomości: 14874



WWW
« Odpowiedz #6 : Listopad 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.
Zapisane

MARKcomp77

http://oferta.forum-cnc.pl/
Sterowniki.Silniki

markcomp
Administrator
*****
Offline Offline

Wiadomości: 14874



WWW
« Odpowiedz #7 : Listopad 28, 2023, 10:59:24 »

 hwloc-gui ---> lstopo command, which produces graphical output.
Zapisane

MARKcomp77

http://oferta.forum-cnc.pl/
Sterowniki.Silniki

Strony: [1]   Do góry
  Drukuj  
 
Skocz do:  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC
Manuscript design by Bloc Strona wygenerowana w 0.055 sekund z 19 zapytaniami.