Python – Jupyter – uruchamianie w innym katalogu

2023-07-12

Zdarza się, że chesz, aby Jupyter startował w innym katalogu niż domyślny. Są na to metody polegające na zmianach w pliku konfiguracyjnym, ale nie wygląda na to aby to działało (przynajmniej pod Windows). Za to co pomogło:

  1. Wpisz w menu start Jupyter, a kiedy program zostanie znaleziony naciśnij go prawym przyciskiem myszy i wybierz „Otwórz lokalizację pliku”
  2. W katalogu, który został otworzony, znowu kliknij prawym przyciskiem myszy na ikonce odpowiadającej za Jupyter i wybierz „właściwości”
  3. Teraz w polu „Element docelowy” wykasuj znajdujący się na końcu wpis %USERPROFILE% i wpisz oczekiwaną ścieżkę. W moim przypadku wpisałem „e:/” (Uwaga na kierunek slasha)
  4. Zapisz zmiany klikając OK i gotowe

U mnie zadziałało od strzału!

By Rafał Kraik in Python

Linux: Raspberry Pi: sesja SSH zawiesza się po pytaniu o hasło

2023-06-11

Logujesz sie do raspberry pi przez ssh (np. Putty), a tu po pytaniu o nazwę użytkownika i hasło sesja się zawiesza. Ping wysyłany na adres komputera działa normalnie.

Oczywiście przyczyn może być wiele, ale w moim przypadku rozwiązanie było dość zagadkowe. Otóż w pliku /etc/ssh/sshd_config wystarczyło dopisać:

IPQoS cs0 cs0

Niektórzy twierdzą, że taką zmianę należy wykonać jeszcze w pliku /etc/ssh/ssh_config, ale u mnie nie trzeba było.

Ot – takie „czary mary”

https://forums.raspberrypi.com/viewtopic.php?t=183661

https://community.element14.com/products/raspberry-pi/f/forum/47549/b-ethernet-problem-ping-works-but-not-able-to-ssh

By Rafał Kraik in Linuxy

Linux: Raspberry pi: Interfejs sieciowy w statusie DORMANT. Wyłączenie trybu oszczędzania energii

2023-06-11

Czasami mam wrażenie, że producenci sprzętu mają konika na punkcie oszczędzania energii. Tak – oszczędność energii jest ważna, ale nie po to kupujemy drogi wydajny sprzęt, żeby potem korzystać z niego tylko na 50%, bo jesteśmy w trybie oszczędzania energii.

W Raspberry Pi tryb oszczędności można włączyć dla poszczególnych urządzeń osobno. W szczególności można to zrobić dla karty sieciowej. Dzięki temu karta włączy się dopiero wtedy, gdy będą spełnione inne warunki, które są konieczne do rozpoczęcia w pełni funkcjonalnej pracy. Dokładniej rzecz biorąc, karta sieciowa zacznie pracować z około 30 sekundowym, może 60 sekundowym opóźnieniem. Na tyle to mało, że energii w tym czasie wcale się dużo nie zużyje i na tyle dużo, żeby doprowadzić administratora do szewskiej pasji.

Jak wyłączyć oszczędzanie energii dla karty sieciowej? Wystarczy uruchomić polecenie:

/sbin/iwconfig wlan0 power off

Problem tylko w tym, że zmiana wprowadzana przez tą komendę jest zapamiętywana do kolejnego uruchomienia, a potem znowu oszczędzasz energię. No ale od czego jest plik /etc/rc.local? Ten plik, to skrypt, który zostanie uruchomiony po starcie systemu, można więc włożyć tę komendę właśnie tam, przed ostatnim poleceniem exit 0.

https://raspberrypi.stackexchange.com/questions/96606/make-iw-wlan0-set-power-save-off-permanent

https://pl.wikipedia.org/wiki/Rc.local

https://forums.raspberrypi.com/viewtopic.php?t=336276

Disable WIFI Power Save on Raspbian Jessie

  • Use iw wlan0 get power_save to see if the wifi power save feature is enabled or not
  • If you want to permantently disable it add this to the /etc/network/interfaces after the iface wlan0 line wireless-power off
  • Reboot and if you run iw wlan0 get power_save you should see that is off.

https://raspberrypi.stackexchange.com/questions/107463/raspberry-pi-3-b-with-buster-cant-be-pinged-wlan0-stuck-in-dormant

Wyjaśnienie trybu DORMANT z https://askubuntu.com/questions/1194048/what-does-mean-dormant-mode-in-ip-link-show-wlan0

Mode Type

The default mode type is called DEFAULT. When an interface is in DEFAULT mode, the interface state transitions to UP when the following condition is met:

Link is detected

There is also a mode type called DORMANT. When an interface is in DORMANT mode, there are additional criteria for the interface state to transition to UP. In DORMANT mode, the interface state transitions to UP when both of the following conditions are met:

Link is detected
MLAG has finished setting up everything for the bond

Link State

In the context of link state, DORMANT indicates the interface is not in a condition to pass packets but is instead in a pending state waiting for some external event. For an interface to be usable for forwarding, it should be in an UP state as it is in the output shown above.

By Rafał Kraik in Linuxy

Terraform: Błąd grpc: error while marshaling: string field contains invalid UTF-8

2023-06-10

Podczas wykonywania polecenia

terraform apply

pojawia się błąd

grpc: error while marshaling: string field contains invalid UTF-8

Nie jest on jako tako związany z kodem, który aktualnie ma być aplikowany. Spróbuj zaktualizować wersję AZ CLI. Zrobisz to poleceniem

az upgrade

 

By Rafał Kraik in Azure

Linux: uprawnienia w katalogu /tmp

2023-05-20

Czy wiesz o tym, że katalog /tmp w Linuxie ma w specjalny sposób zdefiniowane uprawnienia? Owszem każdy może w tym katalogu pisać, ale wzajemna modyfikacja plików przez użytkowników z tej samej grupy nie działa. W sumie ma to sens, bo gdyby w takim /tmp każdy mógł robić wszystko, to zrobiłby się niezły bałagan.

Najpierw przyjrzyjmy się jak to działa w „normalnych katalogach”:

rafal@fermat:~$ sudo mkdir /home/shared
rafal@fermat:~$ sudo chmod 777 /home/shared

Teraz „stajemy się użytkownikiem user2, który ma swoją własną grupę user2:

rafal@fermat:~$ sudo su - user2
$ id
uid=1002(user2) gid=1002(user2) groups=1002(user2)
$ cat >> /home/shared/test.txt
my test user2
$ ls -l /home/shared/test.txt
-rw-rw-r-- 1 user2 user2 14 maj 20 11:26 /home/shared/test.txt

Teraz spróbujemy ten plik zmodyfikować. Modyfikację wykona użytkownik user1, który jest też członkiem grupy user2:

rafal@fermat:~$ sudo su - user1
$ id
uid=1001(user1) gid=1001(user1) groups=1001(user1),1002(user2)
$ cat >> /home/shared/test.txt
my test user 1
$ ls -l /home/shared/test.txt    
-rw-rw-r-- 1 user2 user2 29 maj 20 11:27 /home/shared/test.txt

Jak widać zmiana się udała. To teraz zobaczmy jak to zadziała w katalogu tmp z ustawionym sticky bit. Do akcji wracza znowu user2:

rafal@fermat:~$ sudo su - user2
$ cat >> /tmp/test.txt
my test user2 
$ ls -l /tmp/test.txt
-rw-rw-r-- 1 user2 user2 14 maj 20 11:29 /tmp/test.txt
$ ls -ld /tmp
drwxrwxrwt 24 root root 12288 maj 20 11:29 /tmp

Teraz modyfikacje próbuje wykonać user 1 – bez sukcesu:

rafal@fermat:~$ sudo su - user1
$ cat >> /tmp/test.txt
-sh: 1: cannot create /tmp/test.txt: Permission denied
By Rafał Kraik in Linuxy

Linux: Raspberry Pi: Nie można się zalogować, ciągle pyta o hasło

2023-05-08

Standardowo, na nowym systemie Raspberry Pi, nie trzeba podawać hasła. System bootuje się z już zalogowanym w konsoli graficznej użytkownikiem pi. Tak się jednak zdarzyło, że wskutek prób i błędów, instalacji kilku programów i ich odinstalowaniu, po re-boocie, sytem zaczął pytać o hasło. Hmm, nie jest to problem, ale problemem było to, że po podaniu hasła, system znowu o nie pytał i nie wpuszczał na pulpit, i tak w kółko….

Całe szczęście awaria dotyczyła tylko interfejsu graficznego. Po naciśnięciu Control-Shift-F2, można się przełączyć do systemu znakowego i tam już pomyślnie zalogować.

Bez owijania w bawełnę – u mnie problemem były uprawnienia do pliku .Xauthority. Wskutek zabaw, stało się tak, że właścicielem pliku był root. Możesz to łatwo sprawdzić uruchamiając w katalogu domowym polecenie:

ls -al

Prawdopodobnie wystarczy zmienić właściciela pliku na pi, ale ja go usunąłem i… wszystko wróciło do normy!

https://raspberrypi.stackexchange.com/questions/45914/raspbian-graphical-login-screen-stuck-cant-login

https://forums.raspberrypi.com/viewtopic.php?t=194764

By Rafał Kraik in Linuxy

Linux: Raspberry Pi: SSH, VNC

2023-05-08

Nie podoba Ci się pomysł korzystania z monitora i klawiatury podłączonych do Raspberry Pi? Skonfiguruj SSH i VNC! Na Raspberry Pi nie potrzebujesz do tego nawet znajomości zaawansowanych komend. Przygotowano dla nas polecenie raspi-config, które w trybie znakowym prezentuje zestaw menu pozwalający zmienić konfigurację tak, jak chcesz.

Zacznijmy od zmiany hasła dla użytkownika pi. Domyślnie to haslo to raspberry, każdy je zna, więc dla własnego bezpieczeństwa zmień je (bez zmiany hasła połączenie zdalne VNC nie będzie działać).

W linii komend wpisz

sudo raspi-config

W oknie wybierz opcję „Change User Password”:

Dalej trzeba będzie dwa razy wpisać nowe hasło (które się nie wyświetla podczas wpisywania) i gotowe!

No to jak tu włączyć SSH? Zacznij znowu od uruchomienia raspi-config i wybierz opcję „2 Interfacing Options”. W nowym menu wybierz „P2 SSH”. Teraz program poprosi Cię o potwierdzenie i… gotowe!

Od tej pory można już łączyć się do systemu zdalnie korzystając z polecenia ssh lub pod windows korzystając np. z popularnego klienta ssh Putty.

A gdyby chcieć pracować w systemie graficznym, to przydałoby się np. VNC. Tak jak poprzednio zacznymay od uruchomienia raspi-config, a następnie w menu wybieramy „2 Interfacing options” i w kolejnym menu „P3 VNC”.

Żeby podłączyć się do serwera też potrzebny jest klient zdalny. W tym przypadku najlepiej jest skorzystać z RealVNC Viewer. Po uruchomieniu programu, podaj adres ip serwera Pi, a następnie zaloguj się korzystając z konta użytkownika pi i jego hasła (pamiętaj o zmianie hasła domyślnego).

Co Ci się może nie podobać, to uzyskiwana rozdzielczość, ale i w tym przypadku z pomocą przyjdzie raspi-config. Tym razem z menu wybierz „7 Advanced Options”, potem A5 Resolution” i wybierz jedną z dostępnych wartości. U mnie, na windows mam rozdzielczość 1920×1080, dlatego dla Raspberry Pi wybrałem 1280×720. Dzięki temu okno ładnie się skaluje i nie muszę pracować w trybie pełno-ekranowym. Niestety po zmianie rozdzielczości trzeba wykonać restart

By Rafał Kraik in Linuxy