Instalacja LinuxCNC-tuxcnc_edition

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 7873
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Instalacja LinuxCNC-tuxcnc_edition

#1

Post napisał: tuxcnc » 05 sty 2013, 22:13

Trochę sobie pogadaliśmy https://www.cnc.info.pl/topics54/linuxc ... t42336.htm .
Teraz czas zapiąć pasy i startujemy.

Potrzebny będzie komputer, najlepiej Intel Atom, ale na innym też powinno się udać.
Zakładamy, że na dysku twardym jest założona jedna pusta partycja o rozmiarze kilku gigabajtów, reszta dysku jest pusta.
To tak żeby opis uprościć, bo oczywiście można Linuksa zainstalować nawet na piętnastej partycji, a rozmiar jest nieważny, byle się wszystko pomieściło.
Podejrzewam, że system spokojnie zmieści się w gigabajcie, ale zobaczymy jak wyjdzie.

Sposób utworzenia partycji jest dowolny, może być program pod DOS, Windows, Linux czy jeszcze inny system.
Partycjonowanie dysku nie jest przedmiotem tego opisu, powiem tylko że w Linuksie z którego będziemy instalować jest do tego polecenie fdisk .

Ściągamy obraz ISO dystrybucji Ubuntu-mini-remix.
Można przez przeglądarkę, można też tak :

Kod: Zaznacz cały

wget http://www.ubuntu-mini-remix.org/download/10.04.1/ubuntu-mini-remix-10.04.1-i386.iso
Ściągnięty obraz wypalamy na płycie CD, albo tworzymy z niego bootowalną pamięć USB.
Jedno i drugie można zrobić na wiele sposobów, zarówno pod Windows jak i pod Linux.
Opisu jak to zrobić nie będzie.

Uruchamiamy nasz testowy komputer z nośnika zawierającego ściągnięty system.
Jest to system bez środowiska graficznego, przywita nas linia poleceń i nic więcej.
Aby pozbyć się ewentualnych problemów z brakiem uprawnień i nie pisać sto razy sudo, zabijamy paranoję jednym poleceniem :

Kod: Zaznacz cały

sudo -i
Komputer wita nas napisem root@ubuntu:~# i faktycznie mamy absolutną władzę nad nim.
Możemy zrobić dokładnie wszystko, włącznie ze skasowaniem plików systemowych, to nie jest Windows, raczej nie będzie ostrzegał, a już napewno nie zabroni.
Dlatego wszystkie polecenia trzeba wpisywać starannie, żadne literówki nie są tolerowane, wielkość liter ma znaczenie.

Jedziemy !
W wyniku polecenia interesują nas dwie linie.
U mnie wyglądają następująco :
/dev/sdb1 3924996 161936 3763060 5% /cdrom
/dev/loop0 135424 135424 0 100% /rofs
Pierwsza to urządzenie z którego uruchomiliśmy system, tutaj /dev/sdb1 zamontowane w katalogu /cdrom , drugie to urządzenie typu loop, czyli zasadniczo fragment pamięci RAM, zamontowane w /rofs
To przykładowe /dev/sdb1-/cdrom i /dev/loop0-/rofs warto zapamiętać.

Nasz dysk twardy powinien się nazywać /dev/sda a jego pierwsza partycja /dev/sda1 .
Te urządzenia isnieją fizycznie, ale polecenie df ich nie wyświetla, bo system z nich nie korzysta.
Sprawdzić to możemy

Kod: Zaznacz cały

ls /dev/sda*
I faktycznie u mnie wyświetliło :
/dev/sda /dev/sda1

Teraz trzeba dysk sformatować.
Wszelkie dane na partycji /dev/sda1 zostaną utracone !

Kod: Zaznacz cały

mkfs.ext4 /dev/sda1
Teraz mamy już pustą partycję /dev/sda1 z systemem plików ext4, który jest standardem dla Ubuntu.
Czas tą pustą partycję zapełnić.
Najpierw trzeba ją zamontować, ale nie ma gdzie.
Utwórzmy więc nowy katalog :

Kod: Zaznacz cały

mkdir /mnt/new
Teraz tam zamontujmy :

Kod: Zaznacz cały

mount /dev/sda1 /mnt/new
To wspomniane wcześniej urządzenie /dev/loop0 zamontowane w /rofs zawiera wszystko co jest potrzebne do uruchomienia systemu, z drobnymi wyjątkami, o których za chwilę.
Prawidłowe skopiowanie wszystkich tam zawartych plików jest możliwe tylko poniższym poleceniem :

Kod: Zaznacz cały

cp -dpR /rofs/* /mnt/new
Chwilę to potrwa.
Sprawdźmy :

Kod: Zaznacz cały

ls /mnt/new
Powinny się wyświetlić nazwy katalogów bin,boot,dev,etc itd.

Teraz mamy na dysku twardym prawie kompletny system, ale to prawie robi kolosalną różnicę.
Otóż tego systemu nie da się uruchomić.
Po pierwsze brakuje jądra systemu, po angielsku kernel, po drugie nie jest zainstalowany program rozruchowy, po trzecie brak zdefiniowanych użytkowników.
Pierwsze jest dość proste do naprawienia.
Jeżeli jesteśmy w działającym systemie, to znaczy że skąś się kernel załadował, gdzieś musi być, a to gdzieś musi być gdzieś na nośniku z którego uruchamialiśmy.
Nośnik jest zamontowany w /cdrom i faktycznie kernel jest /cdrom/casper/vmlinuz.
Już go mamy, tylko jeszcze powinien się nazywać pełnym imieniem i nazwiskiem, inaczej program rozruchowy go nie pozna.
Robimy tak :

Kod: Zaznacz cały

cp /cdrom/casper/vmlinuz /mnt/new/boot/vmlinuz-2.6.32-24-generic
Drugie i trzecie załatwimy za jednym zamachem, tylko to już bardziej skomplikowane.
Porównajmy wyniki poleceń :

Kod: Zaznacz cały

ls /dev
ls /mnt/new/dev
Ewidentnie w pracującym systemie jest więcej plików.
Bierze się to stąd, że tak naprawdę w /dev jest zamontowany specjalny system plików tworzony przy starcie systemu.
Podobnie ma się sprawa z /proc i /sys.
Żeby dokonać koniecznych zmian w nowym systemie plików, trzeba tam przejść, jest do tego specjalne polecenie chroot.
Tylko jak już tam się znajdziemy, to nic nie zrobimy bez tych specjalnych systemów plików /dev /proc i /sys .
Musimy je zabrać ze sobą.
Wystarczy je zamontować tam gdzie będą potrzebne, jest taka opcja programu mount :

Kod: Zaznacz cały

mount /dev /mnt/new/dev -o bind
mount /sys /mnt/new/sys -o bind
mount /proc /mnt/new/proc -o bind
Teraz robimy wycieczkę na nowy system :

Kod: Zaznacz cały

chroot /mnt/new
Najpierw zapewnijmy sobie kontrolę nad nowym systemem :

Kod: Zaznacz cały

passwd root
Ten program jest interaktywny, więc zapyta nas o nowe hasło i poprosi o jego powtórzenie.
Nie ma się co wygłupiać, można wpisać admin.
Wprowadzane znaki nie będą wyświetlane.
Hasło można zawsze zmienić dokładnie w taki sam sposób.
Teraz pora na program rozruchowy :

Kod: Zaznacz cały

grub-install /dev/sda
update-grub
Komunikatem "ls: cannot access /cdrom: No such file or directory" nie należy się przejmować.
Jeśli wyświetlił :Found linux image: /boot/vmlinuz-2.6.32-24-generic" to wszystko zakończyło się pomyślnie.
Koniec wycieczki :

Kod: Zaznacz cały

exit
Czas zrestartować komputer i uruchomić nowy system :

Kod: Zaznacz cały

reboot
W czasie restartu usuwamy płytę CD lub pamięć USB.

U mnie nowy system wstał bez oporów i powitał mnie napisami :
Ubuntu 10.04.1 LTS fabrizio-laptop tty1
fabrizio-laptop login :

To pamiątka po autorze mini-remixu.
Wpisujemy root <enter> a potem hasło <enter>.

Najpierw zmieńmy tą nazwę komputera :

Kod: Zaznacz cały

echo "devel" > /etc/hostname
Przy następnym logowaniu nazwa już zmieni się na "devel", może być oczywiście inna.

W obecnej chwili mamy działające Ubuntu w trybie tekstowym, zainstalowane na twardym dysku.
To jest niewątpliwie sukces, bo autor mini-remiksu nie przewidział instalowania go gdziekolwiek, a i starym linuksowym wyjadaczom potrafi w tym miejscu kopara opaść.

Dodam, że ja już wszystkie Linuksy tak instaluję, nawet jak są graficzne instalatory, po pierwsze mam nad wszystkim pełną kontrolę, po drugie jeszcze mi żaden system stawiany w ten sposób nie odmówił posłuszeństwa.
Z instalatorami zawsze jakieś kłopoty ...

No to teraz sieć.

Podłączymy sieć kablem, prościej i ryzyko problemów mniejsze.
Jeśli karta sieciowa w komputerze nie jest egzotyczna, to sprawę załatwiają polecenia :

Kod: Zaznacz cały

echo "nameserver 192.168.0.1" >> /etc/resolv.conf
ifconfig eth0 192.168.0.77 up
route add default gw 192.168.0.1 eth0
Adresy są specyficzne dla mojej sieci, zapewne trzeba będzie wpisać inne.
192.168.0.1 to adres mojego routera internetowego, 192.168.0.77 to adres nadany instalowanemu komputerowi, może być dowolny, byle się nie powtarzał w sieci i był z tego samego zakresu co router.
Sprawdzamy :

Kod: Zaznacz cały

ping -c4 google.pl
Jeśli przyjdą cztery odpowiedzi, to mamy połączenie z internetem.

Z linii poleceń da się w Linuksie zrobić prawie wszystko, ale trudno mówić o komforcie.
Doinstalujemy program Midnight Commander, w skrócie mc.
Problem jest taki, że to nasze okrojone Ubuntu ma okrojoną także listę repozytoriów.
Trzeba to naprawić, bo się dowiemy, że pakietu mc nie ma.

Kod: Zaznacz cały

echo "deb http://archive.ubuntu.com/ubuntu lucid universe" >> /etc/apt/sources.list
Teraz możemy :

Kod: Zaznacz cały

apt-get update
apt-get install mc
mc
Dla kogoś obytego z Linuksem widok dość smętny, w katalogu domowym raptem dwa katalogi i trzy pliki ...
Będzie trochę więcej.
Teraz czas na poznanie programu mc, jeśli to pierwszy kontakt z nim.
Jest dość podobny do kultowego programu dla DOS Norton Commander.
Ponieważ to jest Linux, to i możliwości są inne.
Obsługa mc nie jest przedmiotem tego tutoriala.

Jak już mamy mc, to jest w nim dość fajny edytor tekstu, wywoływany klawiszem F4, dlatego coraz częściej zamiast poleceń będę podawał po prostu co w jakim pliku powinno być zapisane.
I tak przykładowo plik /etc/apt/sources.list ma ostatecznie mieć taką zawartość :

Kod: Zaznacz cały

deb http://archive.ubuntu.com/ubuntu lucid main restricted
deb-src http://archive.ubuntu.com/ubuntu lucid main restricted

deb http://security.ubuntu.com/ubuntu lucid-security main restricted
deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu lucid-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu lucid universe
deb-src http://archive.ubuntu.com/ubuntu lucid universe
deb http://archive.ubuntu.com/ubuntu lucid-updates universe
deb-src http://archive.ubuntu.com/ubuntu lucid-updates universe
deb http://security.ubuntu.com/ubuntu lucid-security universe
deb-src http://security.ubuntu.com/ubuntu lucid-security universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu lucid multiverse
deb-src http://archive.ubuntu.com/ubuntu lucid multiverse
deb http://archive.ubuntu.com/ubuntu lucid-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu lucid-updates multiverse
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse

## LinuxCNC
deb http://buildbot.linuxcnc.org/ lucid master-rt
deb-src http://buildbot.linuxcnc.org/ lucid master-rt
deb http://psha.org.ru/debian lucid contrib
deb http://linuxcnc.org/ lucid base 
Trzeba to wszystko wpisać do w/w pliku.
Żeby sprawę apta zamknąć definitywnie, trzeba jeszcze dodać klucze gpg :

Kod: Zaznacz cały

gpg --keyserver pgpkeys.mit.edu --recv-key 8F374FEF
gpg -a --export 8F374FEF | apt-key add -
wget -O- http://psha.org.ru/debian/pubkey.gpg | sudo apt-key add -
Jak już mamy prawidłową listę repozytoriów i wszystkie klucze, nadszedł czas na upgrade systemu.
Wbrew pozorom nie jest to zainstalowanie nowszej dystrybucji, a jedynie wymiana wszystkich pakietów na najnowsze wersje.

Kod: Zaznacz cały

apt-get update
apt-get dist-upgrade
Chwilę to potrwa.
W czasie instalowania najnowszych pakietów pojawia się okno z pytaniem gdzie zainstalować program rozruchowy grub.
Dla nieobytych z tekstowym interfejsem może to stanowić problem.
Najeżdżamy strzałkami na właściwą odpowiedź, potwierdzamy spacją, klawiszem <tab> przeskakujemy na OK i wciskamy <enter>.

Po odświeżeniu systemu czas na grafikę.
Ponieważ apt próbuje zawsze spełnić wszystkie zależności, czasem wystarczy instalacja jednego pakietu żeby mieć wszystko, bo reszta zainstaluje się z automatu.
W tym przypadku będzie to :

Kod: Zaznacz cały

apt-get install xinit
Sprawdzić działanie można poleceniem xinit, ale najpierw trzeba podłączyć mysz.
Domyślnie xinit uruchamia xterm, ale żeby jego okno było aktywne, trzeba na nie najechać myszą.
Wyjść można jak z każdego terminala poleceniem exit.
Na razie wielkiego pożytku z serwera graficznego nie ma, ale u mnie już działa.

Ponieważ jedynym działąjącym w trybie graficznym programem ma być LinuxCNC, to nie ma na co czekać.
Ale najpierw kernel czasu rzeczywistego.

Kod: Zaznacz cały

apt-get install linux-image-2.6.32-122-rtai
Ponieważ grub nie odświeżył się automatycznie, konieczne jest zrobienie tego ręcznie.

Kod: Zaznacz cały

update-grub
Teraz koniecznie restart systemu :

Kod: Zaznacz cały

reboot
Sprawdzamy jaki kernel się załadował :

Kod: Zaznacz cały

uname -r
Prawidłową odpowiedzią jest: linux-image-2.6.32-122-rtai

Ponieważ nie przewiduje się uruchamiania systemu z innym kernelem, po prawidłowym zainstalowaniu kernela rtai możemy usunąć kernel generic, czyli standardowy Ubuntu.
Standardowy kernel zajmuje bardzo dużo miejsca na dysku i na dodatek po odświeżaniu systemu przybywają jego nowsze wersje, a starsze pozostają.
Najpierw sprawdźmy jakie kernele są zainstalowane :

Kod: Zaznacz cały

ls /boot/vmlinuz*
Do usunięcia są te, które kończą się na generic.

Kod: Zaznacz cały

apt-get purge linux-image-2.6.32-24-generic
apt-get purge linux-image-2.6.32-45-generic
apt-get purge linux-image-generic
update-grub
System odchudził się o prawie 200 MB.

Przy okazji restartu zgubiliśmy sieć.
Na razie po prostu powtórzmy :

Kod: Zaznacz cały

ifconfig eth0 192.168.0.77 up
route add default gw 192.168.0.1 eth0
Później doda się odpowiednie wpisy do skryptów startowych.

Czas na LinuxCNC.

Kod: Zaznacz cały

apt-get -o Apt::Install-Recommends=true install linuxcnc
Sprawdźmy co z tego wszystkiego wyszło :

Kod: Zaznacz cały

xinit linuxcnc
Na razie rewelacyjnie to nie wygląda, ale już widać, że będzie działać.

LinuxCNC gada po polsku, tylko trzeba go poprosić :

Kod: Zaznacz cały

echo "LANG=pl_PL.UTF8" >> /etc/environment
echo "LANGUAGE=pl_PL:pl:en_GB:en" >> /etc/environment
Otworzy się na pełnym ekranie po wykonaniu :

Kod: Zaznacz cały

echo 'root_window.tk.call("wm","geometry",".","1920x1080")' > ~/.axisrc
Ponieważ w linii którą mamy wysłać do pliku występują cudzysłowy, całość jest zamknięta w apostrofach żeby się bash nie pogubił.
A 1920x1080 bo ja akurat taki monitor mam podłączony.

LinuxCNC ma się włączać automatycznie po włączeniu komputera.
Najpierw pozbądźmy się logowania.

Kod: Zaznacz cały

apt-get install mingetty
Ponieważ tym razem to juź za dużo pisaniny, skorzystajmy z edytora wbudowanego w mc.
Znajdujemy plik /etc/init/tty1.conf i linię

Kod: Zaznacz cały

exec /sbin/getty -8 38400 tty1
zamieniamy na

Kod: Zaznacz cały

exec /sbin/mingetty --autologin root tty1
Teraz już komputer nie pyta o nazwę użytkownika i hasło.

Na razie logujemy się jako root, bo praktycznie tylko czynności administracyjne wykonujemy.
Oczywiście to jest sterownik maszyny i zapewne ktoś będzie chciał do jego obsługi zatrudnić szympansa.
Nic nie stoi na przeszkodzie, aby później utworzyć konto użytkownika bez żadnych uprawnień i automatycznie się na nie logować, wtedy małpa nigdzie nie będzie grzebać i niczego nie popsuje.
Zauważmy, że automatyczne logowanie dotyczy tylko pierwszej konsoli, tej na której uruchomi się LinuxCNC.
Na pozostałych konsolach nadal normalnie się logujemy.
Jeśli ktoś jeszcze nie wie, to konsole przełącza się <ctrl><alt><F1>, <ctrl><alt><F2> itd.
Zwykle okno graficzne jest pod <ctrl><alt><F7>, pierwsza wolna konsola może być <ctrl><alt><F1> albo jak tutaj pod <ctrl><alt><F2>
To dosyć ważne, bo jak już LinuxCNC się automatycznie otworzy, to nie będzie można go zamknąć bez zamknięcia systemu.
Chwilowo do czynności administracyjnych pozostanie nam konsola pod <ctrl><alt><F2>.
Żeby LinuxCNC otworzył się automatycznie i jego zamknięcie powodowało wyłączenie komputera, musimy trochę namieszać w pliku ~/.bashrc .
Docelowo LinuxCNC ma się otwierać ustawiony dla konkretnej maszyny.
Ponieważ pracować powinno się tylko na plikach w swoim domowym katalogu, to skopiujmy tam przykładowe konfiguracje dla symulatora

Kod: Zaznacz cały

mkdir ~/linuxcnc
mkdir ~/linuxcnc/configs
cp -dpR /usr/share/doc/linuxcnc/examples/sample-configs/sim ~/linuxcnc/configs
Teraz możemy zmienić plik ~/.bashrc , trzeba w nim dopisać na końcu :

Kod: Zaznacz cały

if [ `tty` = "/dev/tty1" ]; then
    xinit /usr/bin/linuxcnc ~/linuxcnc/configs/sim/axis/axis_mm.ini
    sync
    poweroff
fi
Uwaga na te znaczki przy tty, to jest ten klawisz obok 1 a nie ten z cudzysłowem.
Znaczki wyglądają podobnie, ale tylko jedne działąją.

Na razie to tyle, dopieszczaniem zajmę się później.

Na koniec jeszcze dodam, że nie pisałem tego z pamięci, tylko w trakcie rzeczywistej instalacji i jeśli literówki gdzieś nie palnąłem, to jest to absolutnie do powtórzenia przez każdego.

.
Ostatnio zmieniony 06 sty 2013, 15:04 przez tuxcnc, łącznie zmieniany 1 raz.



Tagi:


G3d
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 1
Posty: 324
Rejestracja: 02 sty 2009, 18:07
Lokalizacja: Warszawa

#2

Post napisał: G3d » 06 sty 2013, 10:21

BARDZO fajnie napisane.
Dobrze, ze pomijasz to co mozna znalesc w innych tutkach - przez to jest czysto i przejrzyscie.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 7873
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#3

Post napisał: tuxcnc » 04 mar 2013, 20:55

Znalazłem wreszcie chwilę czasu aby sprawy popchnąć naprzód.
Dysk przełożyłem do komputera sterującego frezarką.
Tym razem piszę z pamięci co robiłem wczoraj, ale mam nadzieję niczego nie pomylić.
Najpierw ustawiłem sieć na DHCP dodając do /etc/network/interfaces wpis :

Kod: Zaznacz cały

auto eth2
iface eth2 inet dhcp
Czemu akurat eth2 a nie eth0 nie mam pojęcia, może z powodu przełożenia dysku do innego komputera z inną płytą główną, ważne żeby znaleźć odpowiednie eth.
Można zrobić tak :

Kod: Zaznacz cały

ifconfig eth0
ifconfig eth1
ifconfig eth2
Nieistniejące urządzenia skwitowane będą komunikatem :

Kod: Zaznacz cały

eth1: error fetching interface information: Device not found
Gdy trafimy na właściwe urządzenie będzie coś takiego :

Kod: Zaznacz cały

eth0      Link encap:Ethernet  HWaddr e8:11:32:58:44:e2  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B) 
          Interrupt:45 Base address:0xe000 
Potem przyszedł czas na upchnięcie mc w axis, dodanie camview z opcją obrotu układu współrzędnych i jeszcze ngcgui.
Wszystko było dość szczegółowo opisane w dziale LinuxCNC.
Tutaj istotne jest tylko to, że pojawiły się problemy.
Komunikaty błędów były dość idiotyczne i nieźle mylące.
Nic nie chciało działać i nie było wiadomo dlaczego.
Rozwiązanie okazało się dość proste, ale sporo czasu zajęło jego znalezienie.
Otóż wystarczyło :

Kod: Zaznacz cały

apt-get install language-pack-pl 
touch ~/.Xauthority
Z rzeczy których się spodziewałem, nie działała kamerka.
Teoretycznie powinno się skompilować sterowniki, ale ja po prostu skopiowałem /lib/modules/2.6.32-122-rtai z innego komputera gdzie sterowniki były skompilowane wcześniej.

W chwili obecnej system sprawuje się dobrze, wszystko działa jak należy.
Denerwujące jest tylko niepełne spolonizowanie mc, ale pakiet z lucid już tak ma.
Jak znowu znajdę chwilę, to zainstaluję nowsze mc.

Powoli można już myśleć o zrobieniu dystrybucji Live ...

.

Awatar użytkownika

syntetyczny
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 2696
Rejestracja: 08 gru 2009, 22:33
Lokalizacja: Elbląg
Kontakt:

#4

Post napisał: syntetyczny » 21 lip 2013, 21:59

Przy takiej konfiguracji jakie max latency otrzymuje??
Kto pyta, nie błądzi. Eppur si muove
Kreatura CNC
Modernizacja plotera megaplot

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 7873
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#5

Post napisał: tuxcnc » 21 lip 2013, 22:29

syntetyczny pisze:Przy takiej konfiguracji jakie max latency otrzymuje??
Wątek realtime zależy wyłącznie od sprzętu i na odchudzonym systemie nie będzie szybciej.
To nie Windows ...
Natomiast bardzo się poprawia stabilność całego systemu.

Niestety nie mam czasu dopracować systemu.
Najbardziej mnie wkurzają okienka bez ramek, np. to do ustawiania offsetów.
Prostym i skutecznym sposobem by była zmiana koloru tła, żeby się odcinały od reszty.
Niby nic skomplikowanego, ale nie ma kiedy.

.

Awatar użytkownika

syntetyczny
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 2696
Rejestracja: 08 gru 2009, 22:33
Lokalizacja: Elbląg
Kontakt:

#6

Post napisał: syntetyczny » 22 lip 2013, 09:20

tuxcnc pisze:
Wątek realtime zależy wyłącznie od sprzętu i na odchudzonym systemie nie będzie szybciej.
No nie wiem...Ja powalczyłem z systemem pousuwałem pare zbędnych rzeczy i na d525mw max latency spadło mi 2krotnie. Stąd moje pytanie, gdyż jestem ciekaw jak bardzo można ustabilizować jitter na niskim poziomie.
Kto pyta, nie błądzi. Eppur si muove
Kreatura CNC
Modernizacja plotera megaplot

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 7873
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#7

Post napisał: tuxcnc » 22 lip 2013, 16:54

syntetyczny pisze:na d525mw max latency spadło mi 2krotnie.
A masz wyłączone HT ?
Z tym jest taki problem, że ten cały realtime to w zasadzie przerwanie o najwyższym priorytecie.
Nic teoretycznie nie ma prawa przerwać wątku realtime.
No ale HT to sprzętowe dzielenie rdzenia na pół.
Połowa czasu na jeden wątek, połowa na drugi wątek.
Niby logicznie masz cztery rdzenie, ale każdy jedzie na 50% szybkości fizycznego rdzenia.
Jak Ci się jakieś gówno uruchomi na drugim wątku tego samego rdzenia, to możesz mieć taki efekt jak opisujesz.
Ewentualnie masz niestabilny system, co się czasem zdarza.

.

Awatar użytkownika

syntetyczny
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 2696
Rejestracja: 08 gru 2009, 22:33
Lokalizacja: Elbląg
Kontakt:

#8

Post napisał: syntetyczny » 22 lip 2013, 17:53

Wyłączony HT i wyłączona obsługa rdzeni w Linuxcnc(irq czy jakoś tak) plus skrypt zarządzający aby wszystkie wątki były na core0 plus boot na grubie z opcją iso cośtam...Mogę opisać później jak coś, bo teraz chwilowo nie mogę...
Kto pyta, nie błądzi. Eppur si muove
Kreatura CNC
Modernizacja plotera megaplot

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”