GPIO wakeup 관련 문의

Post Reply
4nsun012
Posts: 39
Joined: Fri Nov 16, 2018 11:48 am
languages_spoken: Korean
ODROIDs: Ordroid C2
Has thanked: 0
Been thanked: 0
Contact:

GPIO wakeup 관련 문의

Post by 4nsun012 »

안녕하세요?
Wiki의 https://wiki.odroid.com/odroid-c2/appli ... key_wakeup 를 참고해서 GPIO wakeup을 테스트 중인데 잘 안되서 문의 드립니다.
다음과 같은 순서로 테스트 했는데 어느 부분이 잘못되어서 안되는 것인지 조언좀 부탁드립니다.
테스트 한 OS 버전은 ubuntu-18.04.3-3.16-mate-odroid-c2-20190820.img 입니다.

Wiki 내용의 순서 그대로
1. Hardware Set-Up 참고하여 J2의 #29, #30 으로 세팅.

2. SW Set-up (1) - Ubuntu 의 내용을 참고하여 /media/boot 에 있는 boot.ini 파일을 첨부와 같이 수정

3. 터미널에서 $ sudo apt-get install acpid 입력하여 acpi install (wiki에서는 이때 After acpid installation, a default file of powerbtn.sh under /etc/acpi/ will be generated.라는 설명이 있는데 이상하게 /etc/acpi/ 폴더에 powrbtn.sh라는 파일이 없습니다.
해당 파일이 없기 때문에 " $ sudo mv /etc/acpi/powerbtn.sh /etc/acpi/powerbtn.sh.bak" 내용은 건너 뛰고 powerbtn.sh 파일 작성 (vi를 쓸줄 몰라 윈도우의 메모장에서 파일 작성 후 복사함)

4. 터미널에서 $ sudo chmod a+x /etc/acpi/powerbtn.sh
$ sudo systemctl enable acpid.service
$ sudo systemctl start acpid.service

5. $ sudo vi /etc/systemd/logind.conf 내용은 마찬가지로 vi를 다룰줄 몰라 ubuntu에서 /etc/systemd/logind.conf 파일을 edit as Administrarot 로 열고 #HandlePowerKey=poweroff 를 찾아 HandlePowerKey=poweroff로 수정.

이후 Reboot한 뒤 J2의 #29와 #30을 2초이상 접촉해도 아무 반응이 없습니다.
어느 부분이 잘못 된걸까요?
Attachments
powerbtn.sh
(214 Bytes) Downloaded 7 times
boot.ini
(7.2 KiB) Downloaded 9 times

joy
Posts: 1464
Joined: Fri Oct 02, 2015 1:44 pm
languages_spoken: english
ODROIDs: ODROID-C1+, XU4, X
Has thanked: 160 times
Been thanked: 182 times
Contact:

Re: GPIO wakeup 관련 문의

Post by joy »

안녕하세요.
설정에는 문제가 없어보입니다.

아래 내용을 한번 확인해보시겠습니까?

1. Check gpio_keypad driver loading
재부팅후에 dmesg에서 gpio_keypad 드라이버가 정상적으로 로딩되어 있는지 확인.

Code: Select all

root@odroid:~# dmesg | grep gpio_keypad
[    4.105626] gpio-key c8100000.gpio_keypad: gpio_key: 0 power(228)
[    4.105675] gpio-key c8100000.gpio_keypad: start setup_timer
[    4.105681] gpio-key c8100000.gpio_keypad: power key(116) registed.
[    4.105796] input: gpio_keypad as /devices/c8100000.gpio_keypad/input/input2
[    4.105884] gpio-key c8100000.gpio_keypad: gpio keypad register input device completed.
2. Check key event
Power button을 누를 때마다 (#29, #30 접촉) 아래 event가 발생하는지 확인.

Code: Select all

root@odroid:~# tail -f /var/log/syslog
.....
.....
Jul 30 03:10:38 odroid kernel: [  681.041797] input input2: key 116 down
Jul 30 03:10:39 odroid kernel: [  681.191794] input input2: key 116 up
Jul 30 03:10:39 odroid kernel: [  682.031770] input input2: key 116 down
Jul 30 03:10:40 odroid kernel: [  682.181762] input input2: key 116 up
Jul 30 03:10:40 odroid kernel: [  682.691750] input input2: key 116 down
Jul 30 03:10:40 odroid kernel: [  682.871744] input input2: key 116 up
acpid 설치 후에 default /etc/acpi/powerbtn.sh가 없다고 하셨는데 이 부분은 최신 package에서 변경사항이 있었는지 확인해 보겠습니다.

joy
Posts: 1464
Joined: Fri Oct 02, 2015 1:44 pm
languages_spoken: english
ODROIDs: ODROID-C1+, XU4, X
Has thanked: 160 times
Been thanked: 182 times
Contact:

Re: GPIO wakeup 관련 문의

Post by joy »

안녕하세요.

ubuntu-18.04.3-3.16-mate-odroid-c2-20190820.img 버전을 install하여 GPIO wake-up 기능을 확인해보았는데,
기능이 정상적으로 동작하는 것을 확인하였습니다.

그리고, Ubuntu 18.04에서는 acpid 설치 후에 default /etc/acpi/powerbtn.sh는 default로 없는게 맞습니다.
wiki page를 업데이트해 놓겠습니다.

제가 이 앞의 post에서 말씀드렸던 내용을 포함하여 acpid service가 정상적으로 구동되고 있는지도 확인해보시기 바랍니다.

1. Check gpio_keypad driver loading


2. Check key event

event가 정상적으로 안 들어온다면 사용하고 계시는 expansion connectors의 PIN 위치를 (#29/#30) 다시 한번 확인해 보시기 바랍니다.

3. Check if acpid is loaded

Code: Select all

$ sudo systemctl status acpid.service

● acpid.service - ACPI event daemon
   Loaded: loaded (/lib/systemd/system/acpid.service; enabled; vendor preset: en
   Active: active (running) since Sun 2018-01-28 15:58:20 UTC; 2 years 8 months 
 Main PID: 539 (acpid)
   CGroup: /system.slice/acpid.service
           └─539 /usr/sbin/acpid

Jan 28 15:58:20 odroid systemd[1]: Started ACPI event daemon.
Jan 28 15:58:20 odroid acpid[539]: starting up with netlink and the input layer
Jan 28 15:58:20 odroid acpid[539]: 0 rules loaded
Jan 28 15:58:20 odroid acpid[539]: waiting for events: event logging is off
acpid가 [ + ] 로 활성화 확인

Code: Select all

$ sudo service --status-all  |  grep acpid
 [ + ]  acpid

4. Check systemd login.conf

HandlePowerKey=poweroff

Code: Select all

# cat /etc/systemd/logind.conf                                                                                       


#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See logind.conf(5) for details.

[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
#UserTasksMax=33%


4nsun012
Posts: 39
Joined: Fri Nov 16, 2018 11:48 am
languages_spoken: Korean
ODROIDs: Ordroid C2
Has thanked: 0
Been thanked: 0
Contact:

Re: GPIO wakeup 관련 문의

Post by 4nsun012 »

답변 감사합니다.

안내해주신대로 확인을 해보니
'1. Check gpio_keypad driver loading' , ' 2. Check key event ' 에서 문제가 생긴것 같습니다.
참고한 wiki페이지에서 gpio 드라이버 관련 내용은 못본것 같은데 별도의 설정이 필요한지요?


Image
Image

joy
Posts: 1464
Joined: Fri Oct 02, 2015 1:44 pm
languages_spoken: english
ODROIDs: ODROID-C1+, XU4, X
Has thanked: 160 times
Been thanked: 182 times
Contact:

Re: GPIO wakeup 관련 문의

Post by joy »

안녕하세요.

사용하고 계신 boot.ini를 다시 확인해보니, bootargs가 중복으로 설정되어 있는 것으로 보이네요.

setenv bootargs가 두 번 설정되어 있고 아래 라인에는 gpiopower값이 없습니다.
아래 bootargs 라인에 gpiopower관련 설정을 추가하고 테스트 해보시기 바랍니다.

gpiopower값이 커널 드라이버로 넘어가면 gpio keypad 드라이버는 자동으로 설정되도록 되어 있습니다.

Code: Select all

.....

## gpio power key : J2 (2x20) Pin#29 , GPIOX.BIT0
setenv gpiopower "228"

############ <<---- 여기 있던 bootargs를 지우시고

###########################################

# Boot Arguments
if test "${display_autodetect}" = "true"; then usb pwren; hdmitx edid; fi
if test "${m}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef:0x0005:0x0004"; fi

########## <<---- 이 bootargs 라인에 gpiopower=${gpiopower} 를 추가 
setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro ${condev} no_console_suspend hdmimode=${m} ${cmode} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=${hpd} max_freq=${max_freq} maxcpus=${maxcpus} monitor_onoff=${monitor_onoff} disableuhs=${disableuhs} mmc_removable=${mmc_removable} usbmulticam=${usbmulticam} ${hid_quirks}  gpiopower=${gpiopower}"

# Booting

setenv loadaddr "0x11000000"
setenv dtb_loadaddr "0x1000000"
setenv initrd_loadaddr "0x13000000"
Attachments
boot-modified.ini
(6.75 KiB) Downloaded 5 times

4nsun012
Posts: 39
Joined: Fri Nov 16, 2018 11:48 am
languages_spoken: Korean
ODROIDs: Ordroid C2
Has thanked: 0
Been thanked: 0
Contact:

Re: GPIO wakeup 관련 문의

Post by 4nsun012 »

감사합니다.
Boot.ini 문제였군요.
덕분에 큰 도움 되었습니다!

joy
Posts: 1464
Joined: Fri Oct 02, 2015 1:44 pm
languages_spoken: english
ODROIDs: ODROID-C1+, XU4, X
Has thanked: 160 times
Been thanked: 182 times
Contact:

Re: GPIO wakeup 관련 문의

Post by joy »

@4nsun012,
테스트 내용 확인 감사 드립니다.

Post Reply

Return to “C0/C1/C1+/C2”

Who is online

Users browsing this forum: No registered users and 1 guest