embeded/raspberry pi2024. 10. 7. 19:20

xac가 먼가 했더니 xbox 컨트롤러의 약자인듯.

아무튼 라즈베리 파이 pico 에는 adc가 있으니까 아날로그 입력도 가능할 것 같고

나쁘지 않게 만들수 있을 듯?

 

USB joystick compatible with Xbox Adaptive Controller using Raspberry Pi Pico

[링크 : https://github.com/gdsports/xac_joystick_pipico]

Posted by 구차니
embeded/raspberry pi2024. 9. 24. 22:20

키보드 달려있으면 f5 누르면 되긴한데 uinput 으로 포커스 잡게 하고 누르는게 나으려나?

lxde 라서 Xorg가 보이긴 한데.. 왜 안될까 ㅠㅠ

 

WID=$(xdotool search --onlyvisible --class chromium|head -1)
xdotool windowactivate ${WID}
xdotool key ctrl+F5

[링크 : https://forums.raspberrypi.com/viewtopic.php?t=52613]

 

이걸 해주고 해도 동일한 에러가 발생한다.

$ xauth list $DISPLAY 
This prints the cookie, something like this:

pi:10 mit-magic-cookie-1 4d22408aga55sad1ccd165723g77923ae
Then switch the superuser with su and set the cookie:

# xauth add pi:10 mit-magic-cookie-1 4d22408aga55sad1ccd165723g77923ae 

[링크 : https://raspberrypi.stackexchange.com/questions/1719/x11-connection-rejected-because-of-wrong-authentication]

 

이걸 써봐야 하나..

gksu - GTK+ frontend for su and sudo

[링크 : https://linux.die.net/man/1/gksudo]

[링크 : https://discourse.ubuntu-kr.org/t/sudo-gksudo/23916]

 

+

라즈베리에서 하니(xfce) 안된다. 도대체 머가 문제일까..

$ xdotool search chromium
Defaulting to search window name, class, and classname
10485760


$ xdotool windowactivate 10475760
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  20 (X_GetProperty)
  Resource id in failed request:  0x9fd8f0
  Serial number of failed request:  26
  Current serial number in output stream:  26


$ xdotool windowactivate 10485760
XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)

$ xdotool key ctrl+F5

 

두개 명령을 한번에 할 수도 있는 듯. 일단 에러는 발생하지 않네..?

Try:

wid=`xdotool search "FILENAME"`
xdotool windowactivate $wid
in:

xdotool search "FILENAME" windowactivate --sync

[링크 : https://stackoverflow.com/questions/36921889/check-for-duplicate-application-in-linux-bat]

 

xdotool mousemove --screen 2 --polar 0 0 

[링크 : https://github.com/jordansissel/xdotool/issues/67]

 

별별 희한한 작동이 가능하네?

$ xdotool --help
Available commands:
  getactivewindow
  getwindowfocus
  getwindowname
  getwindowpid
  getwindowgeometry
  getdisplaygeometry
  search
  selectwindow
  help
  version
  behave
  behave_screen_edge
  click
  getmouselocation
  key
  keydown
  keyup
  mousedown
  mousemove
  mousemove_relative
  mouseup
  set_window
  type
  windowactivate
  windowfocus
  windowkill
  windowclose
  windowmap
  windowminimize
  windowmove
  windowraise
  windowreparent
  windowsize
  windowunmap
  set_num_desktops
  get_num_desktops
  set_desktop
  get_desktop
  set_desktop_for_window
  get_desktop_for_window
  get_desktop_viewport
  set_desktop_viewport
  exec
  sleep
Posted by 구차니
embeded/raspberry pi2024. 9. 19. 16:01

구글 뒤져봐도 어떤 서비스 명인지 나오질 않아서 찾아보니

/etc/systemd/system $ ls -al
total 76
drwxr-xr-x 18 root root 4096 Sep 19 11:26 .
drwxr-xr-x  5 root root 4096 Sep 13 12:08 ..
drwxr-xr-x  2 root root 4096 Jul  4 09:06 bluetooth.target.wants
lrwxrwxrwx  1 root root   42 Jul  4 09:06 dbus-fi.w1.wpa_supplicant1.service -> /lib/systemd/system/wpa_supplicant.service
lrwxrwxrwx  1 root root   37 Jul  4 09:06 dbus-org.bluez.service -> /lib/systemd/system/bluetooth.service
lrwxrwxrwx  1 root root   40 Jul  4 09:06 dbus-org.freedesktop.Avahi.service -> /lib/systemd/system/avahi-daemon.service
lrwxrwxrwx  1 root root   40 Jul  4 09:06 dbus-org.freedesktop.ModemManager1.service -> /lib/systemd/system/ModemManager.service
lrwxrwxrwx  1 root root   53 Jul  4 09:06 dbus-org.freedesktop.nm-dispatcher.service -> /lib/systemd/system/NetworkManager-dispatcher.service
lrwxrwxrwx  1 root root   45 Jul  4 09:05 dbus-org.freedesktop.timesync1.service -> /lib/systemd/system/systemd-timesyncd.service
lrwxrwxrwx  1 root root   36 Jul  4 09:09 default.target -> /lib/systemd/system/graphical.target
drwxr-xr-x  2 root root 4096 Jul  4 09:06 dev-serial1.device.wants
lrwxrwxrwx  1 root root   35 Jul  4 09:07 display-manager.service -> /lib/systemd/system/lightdm.service
drwxr-xr-x  2 root root 4096 Sep 13 12:19 getty.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:09 getty@tty1.service.d
drwxr-xr-x  2 root root 4096 Jul  4 09:09 graphical.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 halt.target.wants
drwxr-xr-x  2 root root 4096 Sep 19 12:39 multi-user.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 network-online.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 poweroff.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:09 printer.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 reboot.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 remote-fs.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:09 sockets.target.wants
lrwxrwxrwx  1 root root   31 Sep 13 12:21 sshd.service -> /lib/systemd/system/ssh.service
drwxr-xr-x  2 root root 4096 Jul  4 09:06 sysinit.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 timers.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:09 wayvnc.service.wants

 

별 희한한 이름으로 튀어나온다. llightdm 이런건 어디로 간겨.. -_- 

$ systemctl status display-manager
● lightdm.service - Light Display Manager
     Loaded: loaded (/lib/systemd/system/lightdm.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-09-19 15:56:27 KST; 3min 27s ago
       Docs: man:lightdm(1)
   Main PID: 664 (lightdm)
      Tasks: 5 (limit: 755)
        CPU: 2min 7.209s
     CGroup: /system.slice/lightdm.service
             ├─664 /usr/sbin/lightdm
             └─806 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

Sep 19 15:56:24 raspberrypi systemd[1]: Starting lightdm.service - Light Display Manager...
Sep 19 15:56:27 raspberrypi systemd[1]: Started lightdm.service - Light Display Manager.
Sep 19 15:56:32 raspberrypi lightdm[860]: crtc 0: disable
Sep 19 15:56:32 raspberrypi lightdm[860]: screen 0: 1080x1920 285x506 mm  96.25dpi
Sep 19 15:56:32 raspberrypi lightdm[860]: crtc 0:    1920x1080  60.00 +0+0 "HDMI-1"
Sep 19 15:56:33 raspberrypi lightdm[876]: pam_unix(lightdm-autologin:session): session opened for user falinux(uid=1000) by (uid=0)
Sep 19 15:56:33 raspberrypi lightdm[876]: Failed to write utmpx: No such file or directory
Posted by 구차니
embeded/raspberry pi2024. 9. 19. 11:41

lxde가 기본이었나..

아무튼 이렇게 하면 HDMI 연결해서 켜면 자동으로 크롬이 전체화면으로 실행된다.

다만, kiosk 모드이기 때문에 f11 누른다고 해서 원복되지 않음

 

$ sudo vi /etc/xdg/lxsession/LXDE-pi/autostart
chromium-browser --start-maximized --kiosk http://www.naver.com

[링크 : https://jung-max.github.io/2021/04/28/라즈베리파이-크로미엄%20키오스크%20모드%20및%20부팅시%20자동%20실행/]

Posted by 구차니
embeded/raspberry pi2024. 8. 27. 16:13

결국은 systemd에 등록인데..

python 프로그램의 경우 pip -g로 인스톨 해서 전역으로 하지 않으면

대부분(?) 에러가 나던데.. 그건 언급이 없네

 

cd /lib/systemd/system/
sudo nano hello.service
The service definition must be on the /lib/systemd/system folder. Our service is going to be called "hello.service":

[Unit]
Description=Hello World
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/python /home/pi/hello_world.py
Restart=on-abort

[Install]
WantedBy=multi-user.target

Here we are creating a very simple service that runs our hello_world script and if by any means is aborted is going to be restarted automatically. You can check more on service's options in the next wiki: https://wiki.archlinux.org/index.php/systemd.

Now that we have our service we need to activate it:

sudo chmod 644 /lib/systemd/system/hello.service
chmod +x /home/pi/hello_world.py
sudo systemctl daemon-reload
sudo systemctl enable hello.service
sudo systemctl start hello.service

[링크 : https://gist.github.com/emxsys/a507f3cad928e66f6410e7ac28e2990f]

'embeded > raspberry pi' 카테고리의 다른 글

라즈베리 파이 gui 재시작(lxde)  (0) 2024.09.19
라즈베리 파이 gui 자동실행  (0) 2024.09.19
pgadmin4 를 rpi에 설치하기 성공  (0) 2024.07.29
pgadmin3 안되잖아?!  (0) 2024.07.26
rpi pico ADC 범위  (0) 2024.07.16
Posted by 구차니
embeded/raspberry pi2024. 7. 29. 11:41

검색을 해보니 대부분 python을 통해서 설치하는걸로 나온다.

아래는 설치 + 실행, 빨간건 재기동 이후 실행시 입력할 내용이다.

$ python3 -m venv pgadmin4

$ cd ~/pgadmin4
$ mkdir var
$ mkdir var/storage
$ mkdir var/sessions

source bin/activate

$ 
pip install pgadmin4
$ pip uninstall pyopenssl
$ pip uninstall cryptography
$ pip install pyopenssl
$ pip install cryptography

$ vi ~/pgadmin4/lib/python3.11/site-packages/config_local.py
import os

PGADMIN_DEFAULT_EMAIL      = '<YOUR_EMAIL>'
PGADMIN_DEFAULT_PASSWORD   = '<YOUR_PASSWORD>'
LOG_FILE                   = '/home/pi/pgadmin4/var/log'
SQLITE_PATH                = '/home/pi/pgadmin4/var/pgadmin4.db'
SESSION_DB_PATH            = '/home/pi/pgadmin4/var/sessions'
STORAGE_DIR                = '/home/pi/pgadmin4/var/storage'
DATA_DIR                   = os.path.realpath(os.path.expanduser(u'~/.pgadmin/'))
AZURE_CREDENTIAL_CACHE_DIR = os.path.join(DATA_DIR, 'azurecredentialcache')
DEFAULT_SERVER             = '0.0.0.0'


$ mkdir ~/.pgadmin
$ mkdir ~/.pgadmin/azurecredentialcache

$ pgadmin4

 

~/pgadmin4/lib/python3.11/site-packages/config_local.py 파일이 없으면 생기는 에러

$ pgadmin4
ERROR  : Failed to create the directory /var/lib/pgadmin:
           [Errno 13] Permission denied: '/var/lib/pgadmin'
HINT :   Create the directory /var/lib/pgadmin, ensure it is writeable by
         'pi', and try again, or, create a config_local.py file
         and override the SQLITE_PATH setting per
         https://www.pgadmin.org/docs/pgadmin4/6.21/config_py.html

 

AZURE_CREDENTIAL_CACHE_DIR 이 없을 경우 발생(혹은 디렉토리가 없을 경우)

$ pgadmin4
Traceback (most recent call last):
  File "/home/pi/pgadmin4/bin/pgadmin4", line 5, in <module>
    from pgadmin4.pgAdmin4 import main
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgAdmin4.py", line 93, in <module>
    app = create_app()
          ^^^^^^^^^^^^
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/__init__.py", line 267, in create_app
    create_app_data_directory(config)
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/setup/data_directory.py", line 118, in create_app_data_directory
    _create_directory_if_not_exists(config.AZURE_CREDENTIAL_CACHE_DIR)
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/setup/data_directory.py", line 21, in _create_directory_if_not_exists
    os.mkdir(_path)
FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/.pgadmin/azurecredentialcache'

 

python openssl 모듈 버전 문제일 경우 발생

$ pgadmin4
NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: "환경파일에 기재된 이메일"
Password: "환경파일에 기재된 암호"
Retype password: "환경파일에 기재된 암호"
Traceback (most recent call last):
  File "/home/pi/pgadmin4/bin/pgadmin4", line 5, in <module>
    from pgadmin4.pgAdmin4 import main
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgAdmin4.py", line 93, in <module>
    app = create_app()
          ^^^^^^^^^^^^
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/__init__.py", line 553, in create_app
    driver.init_app(app)
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/utils/driver/__init__.py", line 27, in init_app
    DriverRegistry.load_modules(app)
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/utils/driver/registry.py", line 18, in load_modules
    from . import psycopg2 as module
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py", line 30, in <module>
    from .server_manager import ServerManager
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/server_manager.py", line 35, in <module>
    from sshtunnel import SSHTunnelForwarder, BaseSSHTunnelForwarderError
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/sshtunnel.py", line 25, in <module>
    import paramiko
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/paramiko/__init__.py", line 22, in <module>
    from paramiko.transport import (
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/paramiko/transport.py", line 138, in <module>
    class Transport(threading.Thread, ClosingContextManager):
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/paramiko/transport.py", line 212, in Transport
    if KexCurve25519.is_available():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/paramiko/kex_curve25519.py", line 30, in is_available
    X25519PrivateKey.generate()
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py", line 39, in generate
    from cryptography.hazmat.backends.openssl.backend import backend
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/backends/openssl/__init__.py", line 6, in <module>
    from cryptography.hazmat.backends.openssl.backend import backend
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 113, in <module>
    from cryptography.hazmat.bindings.openssl import binding
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so: undefined symbol: FIPS_mode

 

openssl 패키지 갈아봤자 의미없고, pip를 통해서 업데이트 해주어야 한다.

pip uninstall pyopenssl
pip uninstall cryptography
pip install pyopenssl
pip install cryptography

[링크 : https://stackoverflow.com/questions/32518458/importerror-no-module-named-cryptography-hazmat-bindings-openssl]

 

원격으로 해서 포트 돌리고

$ ssh pi@my.domain.try -p 22 -X -C -L 5050:localhost:5050

 

로컬에서 접속하니 로그인은 떴다!!

 

엄청 오랫만에 보는 느낌이네..

그나저나 이거 다시 켜려면 venv 해서 또 해야하려나?

 

[링크 : https://medium.com/@jaimemartinagui/pgadmin-on-raspberry-pi-857872e6f3b2] << 요거 주로 참고

[링크 : https://www.alcher.me/databases-ru-en/postgresql/install-pgadmin-4-on-debian-buster/]

[링크 : https://medium.com/@mglaving/how-to-install-pgadmin4-on-raspberry-pi-4-raspbian-10-buster-howto-guide-495dab15199d]

[링크 : https://forums.raspberrypi.com/viewtopic.php?t=337180]

'embeded > raspberry pi' 카테고리의 다른 글

라즈베리 파이 gui 자동실행  (0) 2024.09.19
라즈베리 파이에 파이썬 스크립트를 서비스로 등록하기  (0) 2024.08.27
pgadmin3 안되잖아?!  (0) 2024.07.26
rpi pico ADC 범위  (0) 2024.07.16
rpi pico / micropython  (0) 2024.07.15
Posted by 구차니
embeded/raspberry pi2024. 7. 26. 10:23

postgresql 15.x 를 써서 그런가 안된다

 

 

pgadmin3가 아니라 pgadmin4를 써야 할 것 같은데

[링크 : https://dba.stackexchange.com/questions/251031/what-is-the-last-version-of-postgres-with-pgadmin-3]

 

라즈베리 파이에는 도대체 버전이 어떻게 관리 되길래 이런 대참사가 벌어지고 있는거냐..

$ apt-cache search pgadmin
pgadmin3 - graphical administration tool for PostgreSQL
pgadmin3-data - graphical administration tool for PostgreSQL - documentation
phppgadmin - web-based administration tool for PostgreSQL
postgresql-15-pldebugger - PostgreSQL pl/pgsql Debugger API

'embeded > raspberry pi' 카테고리의 다른 글

라즈베리 파이에 파이썬 스크립트를 서비스로 등록하기  (0) 2024.08.27
pgadmin4 를 rpi에 설치하기 성공  (0) 2024.07.29
rpi pico ADC 범위  (0) 2024.07.16
rpi pico / micropython  (0) 2024.07.15
rpi 콘솔 옮기기  (0) 2024.02.26
Posted by 구차니
embeded/raspberry pi2024. 7. 16. 10:30

신호 발생기 통해서 넣어 보니 3.3V 에서 65535로 가득 찬다.

raw base  
60398 65535 3.04132753490501
62367 65535 3.14047608148318
64319 65535 3.23876859693294
65535 65535 3.3

ADC 입력 범위는 0~3.3V 인 듯(음수도 넣어 볼 걸 그랬나..

GND의 경우 0 으로 뜨니 음수는 안될 것 같기도 한데 과연?

 

ADC가 12bit 인데 16bit 값으로 해서 0.05V 정도 오차가 생기는게 아닐까 싶긴 하다

(혹은 내부 AREF 회로에서 RC 회로로 구현해 오차가 발생한걸지도)

'embeded > raspberry pi' 카테고리의 다른 글

pgadmin4 를 rpi에 설치하기 성공  (0) 2024.07.29
pgadmin3 안되잖아?!  (0) 2024.07.26
rpi pico / micropython  (0) 2024.07.15
rpi 콘솔 옮기기  (0) 2024.02.26
rpi libcamera?  (0) 2024.02.26
Posted by 구차니
embeded/raspberry pi2024. 7. 15. 22:59

circuit python 을 예전에 사용했었는데

circuit python 에서 import machine 하면 모듈이 없다고 해서 찾아보니

micropython 에서 제공하는 녀석이라고 한다.

 

machine is a built-in module in MicroPython which means it's part of MicroPython itself. CircuitPython and MicroPython similar but not exactly the same. One difference is that CircuitPython has no built-in module called machine.

[링크 : https://forums.raspberrypi.com/viewtopic.php?t=314090]

 

[링크 : https://micropython.org/download/RPI_PICO/]

'embeded > raspberry pi' 카테고리의 다른 글

pgadmin3 안되잖아?!  (0) 2024.07.26
rpi pico ADC 범위  (0) 2024.07.16
rpi 콘솔 옮기기  (0) 2024.02.26
rpi libcamera?  (0) 2024.02.26
3d 프린트 한 라즈베리 케이스  (0) 2024.02.21
Posted by 구차니
embeded/raspberry pi2024. 2. 26. 17:46

라즈베리 설치할 때 cli로 설치하고

ultranav 꽃고 커서를 누르려다 이전/다음 페이지 눌렸는데 가상 터미널을 이동한다.

alt-shift-f1 ~ f10을 눌러서 사용했었는데, 원래 있던 기능인가?

 

[링크 : https://raspberrypi.stackexchange.com/questions/36099/open-tty1-with-another-shortcut]

 

'embeded > raspberry pi' 카테고리의 다른 글

rpi pico ADC 범위  (0) 2024.07.16
rpi pico / micropython  (0) 2024.07.15
rpi libcamera?  (0) 2024.02.26
3d 프린트 한 라즈베리 케이스  (0) 2024.02.21
mariadb 라즈베리 파이 설정값  (0) 2024.01.02
Posted by 구차니