Skocz do zawartości

Pomocna odpowiedź

Teraz już działa, ale trzeba uważać aby niechcący nie kliknąć aktualizacji jak się ustawi starszą wersję na tym switchu... Swoją drogą, to sporo to operacji wykonuje podczas pobierania wersji hardware ESP (tyle co IDE). Robi to ardu cli, czy za wykonanie odpowiada te parę linijek kodu w tym przełączniku? 

A tą wersję klikaną da się jakoś uruchomić? Pobieranie wersji płytek mogę robić w konsoli, ale przełączanie chciałbym mieć od kliknięcia. 🙂

(edytowany)

W sumie przypadkowym aktualizacjom można zapobiec...

Jaki błąd wywala klikadło uruchomione z terminala?

A większość robi arduino-cli, switch tylko pilnuje żeby się wszystko znalazło na właściwym miejscu.

Edytowano przez ethanak
3 godziny temu, ethanak napisał:

A większość robi arduino-cli

Też to wywnioskowałem. IDE w zasadzie widzi tylko skrót do docelowego folderu który tworzy apka 🙂   

 

3 godziny temu, ethanak napisał:

Jaki błąd wywala klikadło uruchomione z terminala?

rafal@rafal:~$ bash ESPklik.bash
ESPklik.bash: linia 2: $'\r': nie znaleziono polecenia
ESPklik.bash: linia 5: $'\r': nie znaleziono polecenia
ESPklik.bash: linia 8: $'\r': nie znaleziono polecenia
ESPklik.bash: linia 34: błąd składni: nieoczekiwany koniec pliku
rafal@rafal:~$ su
Hasło: 
root@rafal:/home/rafal# bash ESPklik.bash
ESPklik.bash: linia 2: $'\r': nie znaleziono polecenia
ESPklik.bash: linia 5: $'\r': nie znaleziono polecenia
ESPklik.bash: linia 8: $'\r': nie znaleziono polecenia
ESPklik.bash: linia 34: błąd składni: nieoczekiwany koniec pliku
root@rafal:/home/rafal#

Zenity zainstalowane. 

 

 

Próbowałem też uruchomić z pulpitu, ale również nie działa. Wrzucam screen, bo nie dało się skopiować komunikatu.

 1.thumb.png.ac0033de16d67cc2b71952be3c14e28e.png

Oczywiście plik ma włączone zezwolenie na uruchamianie. 

Po kiego grzyba przepuszczałeś ten plik przez windowsowy notatnik po to, żeby go odpalić na linuksie??? Właśnie masz efekt.

Niestety - ten plik jest prawie taki sam jak mój. Jak widać, prawie robi wielką różnicę...

Przepuść to przez dos2unix albo co... mi już brakuje słów.

11 godzin temu, ethanak napisał:

Przepuść to przez dos2unix albo co... mi już brakuje słów.

Teraz już działa. 🙂 

Wystarczył zwykły klikany edytor tekstu pod Debianem. Jakoś nie przyszło mi na myśl aby porównać biharkę plików generowanych przez notatnik M$ z plikami notatnika Linux. xD

(edytowany)

Bo mały miętki notatnik jest tylko do windowsa, a linuksowe w większości można ustawić jak ma zapisywać

A dos2unix czasami jest wygodniejszy (np. jak już jesteś w terminalu).

Edytowano przez ethanak
14 minut temu, ethanak napisał:

A dos2unix czasami jest wygodniejszy

Czytałem, że to wersja konsolowa. Zanim bym to ogarnął, to szybciej było w wersji klikanej. Tak czy inaczej ważne, że wszystko jest ok. 🙂

@rafal220 Zakładam, że masz otwarty terminal. Co jest szybsze:

1. Wpisanie polecenia dos2unix nazwa_pliku

2. Otwarcie klikanego edytora, znalezienie i otwarcie pliku, zapisanie pliku w trybie unix

Jeśli nie masz otwartego terminala to ctrl-alt-t go otwiera... i tak jest szybciej.

Jak słusznie zauważyłeś to nie windows i nie zawsze trzeba się przeklikiwać przez milion okienek żeby coś zrobić...

(edytowany)
17 godzin temu, rafal220 napisał:

trzeba uważać aby niechcący nie kliknąć aktualizacji jak się ustawi starszą wersję na tym switchu

Jak wspominałem i na to jest sposób. Ale najpierw trzeba umożliwić dostęp do sudo. Jeśli go jeszcze nie ma, należy:

1. przejść na roota (np. przez su - )
2. wykonać polecenie (zastępując oczywiście "nazwausera" swoją nazwą użytkownika) :

usermod -a -G sudo nazwausera

3. Wylogować się całkowicie i zalogować ponownie. Od tej chwili będzie można wykonać polecenia z poziomu roota bez przelogowania. Proponuję sprawdzić np. przez:

sudo ls

Jeśli wszystko działa, można przystąpić do zabezpieczania. Wpisujemy (niestety do terminala) polecenie:

sudo chattr -R -f +i ~/.arduinoESP/<wersja>

zastępując oczywiście <wersja> numerem wersji. Przykładowo do zabezpieczenia wersji 2.0.0:

sudo chattr -R -f +i ~/.arduinoESP/2.0.0

Po czymś takim nie jest możliwa żadna modyfikacja czy usunięcie wersji nawet z poziomu roota!

Aby odbezpieczyć wersję (np. znudziła się i trzeba skasować):

sudo chattr -R -f -i ~/.arduinoESP/2.0.0

To tyle 🙂 
 

 

 

Edytowano przez ethanak

Sprawdziłem jeszcze tą wersję klikaną na plasmie i też działa bez zarzutów. Tak więc jest ok.

Natomiast ciekawi mnie ten temat dostępu i uprawnień. W Windows też można zabezpieczyć plik przez zapisem/ odczytem ew. nadać określone uprawnienia danej aplikacji czy też grupie.  

Otóż sprawdziłem te polecenia w Debianie i chyba coś nie działają pomimo że terminal wzystko przyjmuje.

To polecenie

su -
  //następnie
usermod -a -G sudo nazwausera

terminal łyka, ale po przelogowaniu dalej jestem userem a nie rootem. Przy sudo ls dalej wymaga hasła.

Zresztą mniejsza o to, bo to jest mniej ważne.

Tutaj jak widać zabezpieczyłem plik;

rafal@rafal:~$ su -
Hasło: 
root@rafal:~# sudo chattr  -R -f +i ~/.arduinoESP32/2.0.14
root@rafal:~#

ale w realu w panelu uprawnień dosłownie nic się nie zmieniło. Wstawiam fotkę, bo nie wiem jak te uprawnienia odczytać w terminalu;

   1.thumb.png.7fab6992c0ff40d9c78332efa5a4893c.png

I pytanie odnośnie tego, czy to co jest ustawione automatycznie wystarczająco nie chroni pliku przed jego nadpisaniem? Bo szczerze mówiąc próbowałem usunąć wersję płytki z opcji switcha zenity która zwraca komunikat o usuniętym pliku, ale fizycznie katalog nie jest usunięty. Pytanie czy IDE ma podobne uprawnienia tak jak ten switch? Bo jeżeli tak, to nie powinien niczego nadpisać. 

9 godzin temu, rafal220 napisał:

terminal łyka, ale po przelogowaniu dalej jestem userem a nie rootem. Przy sudo ls dalej wymaga hasła.

No bo dalej jesteś userem, tyyle że masz prawo do wydania polecenia sudo. A hasło wymagane jest twoje a nie roota. Poza tym wykonanie polecenia przez sudo a wydanie go z rzeczywistego konta roota to dwie zupełnie inne sprawy. To tak jak z magistrem Kowalskim. Jeśli zapisał się do Milicji Obywatelskiej - rano nakłada mundur, bierze do kieszeni legitymację milicjanta i już nie jest magistrem Kowalskim tylko sierżantem Kowalskim (coś w stylu su) i ma prawo do wykonywania pewnych czynności. Natomiast jeśli zapisał się do ORMO, to wstaje rano, bierze do kieszeni legitymację ormowca ale to go nie czyni milicjantem; dalej jest magistrem Kowalskim, ale ma prawo do wykonania pewnych czynności (czyli sudo) pod warunkiem okazania owej legitymacji (tu - wpisanie hasła). A dodanie do grupy sudo to w tym przypadku wydanie legitymacji ormowca.

Pomyśl nawet nie wykonując polecenia: co pokaże "sudo ls ~" wydane jako użytkownik, a co "ls ~" wydane z roota?

Pomysł z sudo wydanym z roota to już w ogóle jakaś abstrakcja.

I żeby nie było że jestem niegrzeczny: to jest wątek o przełączniku, a nie o trudnościach zrozumienia zasad działania świata przez jednego rafałka. Dlaczego uważasz, że twoje problemy są najważniejsze i musisz uzyskać w tym wątku odpowiedzi na pytania niezwiązane z tym wątkiem? Teoretycznie mógłbym prowadzić jakieś dalsze dywagacje - ale kto wtedy będzie wiedział o zabezpieczeniach jak w wątku będzie fafnaście postów o tym że ty czegoś nie rozumiesz? Załóż wątek np. "Nie rozumiem różnicy między sudo i su" to wtedy się tam wyjaśni a i pewnie następnym rafałkom to pomoże... ale przestań być egoistą, forum nie jest po to żebyś tylko ty korzystał tylko żeby każdy mógł.

Natomiast:

9 godzin temu, rafal220 napisał:

w realu w panelu uprawnień dosłownie nic się nie zmieniło

A co się miało zmienić? To pokazuje tylko stan dziewięciu najmłodszych bitów, w rzeczywistości jest ich więcej (sticky bits). A rozszerzonych atrybutów w ogóle nie pokazuje, a takowe istnieją. Oczywiście normalny człowiek po przeczytaniu mojego posta wpisałby w terminal np. "man chattr" i przeczytał kompletną dokumentację o rozszerzonych atrybutach... no ale załóżmy że dokumentacja jest po angielsku, osoba czytająca ma problemy z przyswojeniem sobie tych 300 słówek używanych w tym uproszczonym angielskim, więc spieszę z wyjaśnieniem.

Interesuje nas wyłącznie atrybut "i" (immutable). Obiekt z ustawionym takim atrybutem nie może być w żaden sposób zmieniony. Dopiero zdjęcie owego atrybutu umożliwia jakiekolwiek operacje. Do sprawdzenia jakie atrybuty są ustawione służy polecenie lsattr, a konkretnie ważna jest tylko literka "i" w zestawie atrybutów.

Tak więc rekurencyjne potraktowanie jakiegoś katalogu chattr +i spowoduje, że cała zawartość owego katalogu będzie nie do ruszenia i żadne polecenia (nawet wydane przez roota) nie mogą spowodować że da się coś ruszyć, dopóki atrybut nie zostanie zdjęty przez chattr -i. Tak że próba update z poziomu IDE skończy się po prostu błędem - i tyle.

Proszę ponownie: nie śmieć ludziom w wątkach. To że wyrzucasz papierki i ogryzki do ogródka sąsiada zamiast do kosza na śmieci nie świadczy o twojej pomysłowości...

 

4 godziny temu, ethanak napisał:

Proszę ponownie: nie śmieć ludziom w wątkach.

Dopytać na czacie źle, w temacie źle, na PW też źle. Czy każdy mysi znać Linuxa? Info które załączyłeś to nie jest śmiecenie wątku, a uzupełnienie niezbędnych szczegółów dla mniej bystrych.

No ok. Skoro osobiście sobie z instalacją tego przełącznika + zabezpieczenie pliku poradziłem, to myślę że na podstawie rozwoju tego wątku zdecydowana większość userów bez obycia w temacie też sobie poradzi. Przynajmniej jeżeli mowa o Linuksie.

@ethanak Uruchomiłem jeszcze tego switcha pod Windowsem. Co prawda trzeba pamiętać że zmiany w plikach należy robić z uprawnień admina, ale generalnie to działa. Tylko tam jakiś pytajnik w CMD się jeszcze pojawia ale zapewne jest to związane z nazwą ścieżki. 

Microsoft Windows [Version 10.0.22631.4169]
(c) Microsoft Corporation. Wszelkie prawa zastrzeżone.

C:\Windows\System32>cd C:\Users\rafal

C:\Users\rafal>py espswitch.py init
Przełącznik wygląda na zainicjalizowany

Użycie: espswitch.py command
init - inicjalizacja struktury katalogów
list - pokaż bieżącą i zainstalowane wersje
avail [updated] - pokaż dostępne wersje
install <wersja> - instaluj wersję
switch <wersja> | off - przełącz wersję

C:\Users\rafal>py espswitch.py list
Dostępne wersje: 3.0.4

C:\Users\rafal>py espswitch.py avail updated
Downloading index: package_index.tar.bz2 downloaded
3.0.4   3.0.3   3.0.2   3.0.1   3.0.0   2.0.17  2.0.16  2.0.15
2.0.14  2.0.13  2.0.12  2.0.11  2.0.10  2.0.9   2.0.8   2.0.7
2.0.6   2.0.5   2.0.4   2.0.3   2.0.2   2.0.1   2.0.0   1.0.6
1.0.5   1.0.4   1.0.3   1.0.2   1.0.1   1.0.0

C:\Users\rafal>py espswitch.py install 2.0.14
Tool arduino:dfu-util@0.11.0-arduino5 already installed
Downloading packages...
esp32:esptool_py@4.5.1 downloaded
esp32:mklittlefs@3.0.0-gnu12-dc7f933 esp32:mklittlefs@3.0.0-gnu12-dc7f933już pobrane
esp32:mkspiffs@0.2.3 esp32:mkspiffs@0.2.3już pobrane
esp32:openocd-esp32@v0.12.0-esp32-20230419 downloaded
esp32:riscv32-esp-elf-gcc@esp-2021r2-patch5-8.4.0 downloaded
esp32:riscv32-esp-elf-gdb@11.2_20220823 downloaded
esp32:xtensa-esp-elf-gdb@11.2_20220823 downloaded
esp32:xtensa-esp32-elf-gcc@esp-2021r2-patch5-8.4.0 downloaded
esp32:xtensa-esp32s2-elf-gcc@esp-2021r2-patch5-8.4.0 downloaded
esp32:xtensa-esp32s3-elf-gcc@esp-2021r2-patch5-8.4.0 downloaded
esp32:esp32@2.0.14 downloaded
Installing esp32:esptool_py@4.5.1...
Configuring tool....
esp32:esptool_py@4.5.1 zainstalowane
Installing esp32:mklittlefs@3.0.0-gnu12-dc7f933...
Configuring tool....
esp32:mklittlefs@3.0.0-gnu12-dc7f933 zainstalowane
Installing esp32:mkspiffs@0.2.3...
Configuring tool....
esp32:mkspiffs@0.2.3 zainstalowane
Installing esp32:openocd-esp32@v0.12.0-esp32-20230419...
Configuring tool....
esp32:openocd-esp32@v0.12.0-esp32-20230419 zainstalowane
Installing esp32:riscv32-esp-elf-gcc@esp-2021r2-patch5-8.4.0...
Configuring tool....
esp32:riscv32-esp-elf-gcc@esp-2021r2-patch5-8.4.0 zainstalowane
Installing esp32:riscv32-esp-elf-gdb@11.2_20220823...
Configuring tool....
esp32:riscv32-esp-elf-gdb@11.2_20220823 zainstalowane
Installing esp32:xtensa-esp-elf-gdb@11.2_20220823...
Configuring tool....
esp32:xtensa-esp-elf-gdb@11.2_20220823 zainstalowane
Installing esp32:xtensa-esp32-elf-gcc@esp-2021r2-patch5-8.4.0...
Configuring tool....
esp32:xtensa-esp32-elf-gcc@esp-2021r2-patch5-8.4.0 zainstalowane
Installing esp32:xtensa-esp32s2-elf-gcc@esp-2021r2-patch5-8.4.0...
Configuring tool....
esp32:xtensa-esp32s2-elf-gcc@esp-2021r2-patch5-8.4.0 zainstalowane
Installing esp32:xtensa-esp32s3-elf-gcc@esp-2021r2-patch5-8.4.0...
Configuring tool....
esp32:xtensa-esp32s3-elf-gcc@esp-2021r2-patch5-8.4.0 zainstalowane
Installing platform esp32:esp32@2.0.14...
Configuring platform....
Platform esp32:esp32@2.0.14 installed
Zainstalowano wersję 2.0.14

C:\Users\rafal>py espswitch.py list
Bieżąca wersja: \\?\C:\Users\rafal\.arduinoESP32\2.0.14
Dostępne wersje: 2.0.14, 3.0.4

C:\Users\rafal>py espswitch.py switch 3.0.4
Aktywna wersja 3.0.4

C:\Users\rafal>py espswitch.py list
Bieżąca wersja: \\?\C:\Users\rafal\.arduinoESP32\3.0.4
Dostępne wersje: 2.0.14, 3.0.4

C:\Users\rafal>

 

 

(edytowany)

@rafal220 zerknę jutro rano, pewnie coś pochrzaniłem z readlinkiem. Ale swietnie że w ogóle działa bo szczerze mówiąc trochę się obawiałem (a nie bardzo mam na czym sprawdzić)

O, już widzę gdzie jest błąd (metoda esp32.curversion), jutro poprawię. Lepiej na razie nie używaj pod win bo to kilka razy w programie występuje i boję się że namiesza.

Edytowano przez ethanak

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...