emuelec 사용중 wakeup 문제

Post Reply
ztoday21
Posts: 10
Joined: Sun Mar 01, 2020 9:44 am
languages_spoken: korean
ODROIDs: odroid n2, odroid go advance
Has thanked: 1 time
Been thanked: 0
Contact:

emuelec 사용중 wakeup 문제

Post by ztoday21 »

안녕하세요. OGA 만들어주신 덕분에 행복한 사람 중 한명입니다. ㅎㅎ

제가 emuelec 3.6 을 사용중입니다.

그런데 문제가 있습니다.

제가 USB 에 게임을 담아서 oga 에 꼽아서 사용중인데요.
emuelec 3.6 부터 슬립모드를 지원해서 슬립모드를 사용하면 문제가 생깁니다.

슬립모드로 들어갔다가 복귀하면 usb 연결을 찾지 못하고 emulstation 이 crash 되어 버리는 것 같습니다.

emuelec 개발자(아마도?) 와 이야기를 했는데요. (shantigilbert ? 이분 맞을까요? ㅎㅎㅎ)

그 분 이야기로는 usb 도 깨어나고 emulstation 도 깨어나지만 emulstaion 이 먼저 깨어나서 usb 를 못찾는다고 하는군요.
자기는 커널제작자가 아니라서 문제를 해결하기에 어려움을 겪고 있다고 하고요.
(제가 제대로 이해 한건지는 모르겠습니다. ㅎㅎ, wifi 동글도 같은 문제가 있는 것 같아요)

- 요약하면
1. 슬립모드에서 깨어나면 USB 인식을 하지 못한다.
2. emuelec 개발자는 문제를 어떻게 풀어야 할지 모르겠다. 커널개발자가 도와줘야 할 것 같다.
입니다.

제가 사용하는 환경은 OGA 블랙에디션 버전입니다.
구 버전도 같은 증상이라고 알고 있어요.

감사합니다.
Last edited by ztoday21 on Tue Jul 14, 2020 1:12 pm, edited 1 time in total.

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

Re: emulec 사용중 wakeup 문제

Post by joy »

안녕하세요.

emuelec 최신 image에서 sleep을 테스트해보지는 않았으나, 증상을 보아 이 문제는 기존에 있는 증상으로 보입니다.

USB Kernel driver에서 현재 suspend/resume에 대한 처리가 완벽하게 되어 있지 않습니다.
internal WIFI (esp8089 driver)와 ALSA driver 역시 같은 증상으로,
kernel driver가 수정되지 전까지는 별도의 workaround를 적용하셔야 wakeup 후에 정상적으로 사용할 수 있습니다.


아래 내용을 참고 부탁드립니다.

1. Kernel defconfig에서 DWC2를 module로 변경

2. sleep 옵션에 아래의 루틴 추가
- /lib/systemd/system-sleep/sleep

Code: Select all

#!/bin/bash

case $1 in
   pre)
        modprobe -r dwc2
        
        rmmod esp8089
        ;;
   post)
        modprobe -r dwc2
        modprobe -i dwc2
        
        modprobe -i esp8089
        ;;
esac
관련 내용은 아래의 Thread와 wiki page를 참고하시면 됩니다.
https://forum.odroid.com/viewtopic.php?p=284469#p284469
https://forum.odroid.com/viewtopic.php?p=284247#p284247

https://wiki.odroid.com/odroid_go_advan ... 089_module

Emuelec 담당자와는 관련 thread에서 대화를 나누신거지요?
제가 해당 Thread에서 내용 찾아서 history와 본 workaround를 공유하겠습니다.

ztoday21
Posts: 10
Joined: Sun Mar 01, 2020 9:44 am
languages_spoken: korean
ODROIDs: odroid n2, odroid go advance
Has thanked: 1 time
Been thanked: 0
Contact:

Re: emulec 사용중 wakeup 문제

Post by ztoday21 »

에뮤일렉 담장자와는 discord 에서 대화를 나누었습니다.

제가 개발자가 아니라 답변주신 내용을 정확히 이해하지는 못하였습니다.
게다가 안되는 짧은 영어로 소통한것이라 답변주신 내용을 제대로 전달할 자신이 없네요. ㅎㅎ

디크코드 채팅 링크는 찾는대로 댓글로 첨부 드리겠습니다.

친절한 답변 감사합니다.

ztoday21
Posts: 10
Joined: Sun Mar 01, 2020 9:44 am
languages_spoken: korean
ODROIDs: odroid n2, odroid go advance
Has thanked: 1 time
Been thanked: 0
Contact:

Re: emulec 사용중 wakeup 문제

Post by ztoday21 »

https://discordapp.com/channels/5701316 ... 0811894796

여기서 나눈 대화입니다. 감사합니다

ztoday21
Posts: 10
Joined: Sun Mar 01, 2020 9:44 am
languages_spoken: korean
ODROIDs: odroid n2, odroid go advance
Has thanked: 1 time
Been thanked: 0
Contact:

Re: emulec 사용중 wakeup 문제

Post by ztoday21 »

다시 읽다보니 궁금합니다.

1. Kernel defconfig에서 DWC2를 module로 변경
-> 요건 컴파일이 필요한 내용인가요?

2. /lib/systemd/system-sleep/sleep
-> 요건 좀 이해가 됩니다. 이 파일안에 말씀 주신 루틴을 넣는다.

다시 여쭤본 이유는 제 OGA 만이라도 바로 적용이 가능할까해서 입니다. :)

-------------
이미지 빌드할때 하는것이라는것 확인하였습니다. 감사합니다.
에뮤일렉 개발자가 해줘야 하는가봐요

-------------
emuelec 은 coreelec 기반인것도 알게되었습니다. 설명 주신 내용은 혹시 ubuntu 일까요?
관련 지식이 부족한 상태로 질문드려 부끄럽습니다.

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

Re: emulec 사용중 wakeup 문제

Post by joy »

@ztoday21,

상세하게 내용을 설명해주셔서 감사합니다.
discord에서 나누신 내용 참고하겠습니다.
저희 Forum에도 관련 thread가 진행되고 있어서,
이 내용은 제가 아래 thread에서 담당자에게 내용을 전달하면 될 것으로 생각됩니다.
https://forum.odroid.com/viewtopic.php?f=193&t=37516

그리고 커널과 sleep conf 적용 부분은 이해하신 내용이 맞습니다.
커널의 경우는 빌드를 새로 해야 하는데 각 Project 별로 구성해서 Hardkernel에서 배포한 버전과 약간씩 다른 경우가 있습니다.
저도 빌드된 내용을 들여다봐야 하는 부분이라 Emuelec 담당자가 직접 다음 버전에 적용해 주는 것이 더 빠를 것으로 생각됩니다. :)

ztoday21
Posts: 10
Joined: Sun Mar 01, 2020 9:44 am
languages_spoken: korean
ODROIDs: odroid n2, odroid go advance
Has thanked: 1 time
Been thanked: 0
Contact:

Re: emulec 사용중 wakeup 문제

Post by ztoday21 »

안녕하세요.

emuelec 의 소스? 를 보니 말씀주신 내용은 적용되어 있는것이 아닌가 싶습니다.
적용은 되었지만 wakeup 순서가 문제다라고 한것인것 같아요.

말씀 주신대로 USB Kernel driver 가 패치되어야 하는가봐요..

case $1 in
pre)
# unload esp8090 WiFi module
[[ "${OGA}" == *"v11"* ]] && modprobe -r esp8089
.........
# workaround until dwc2 is fixed
.........
;;
post)
.........
# workaround until dwc2 is fixed
modprobe -r dwc2
modprobe -i dwc2
# re-load WiFi module
[[ "${OGA}" == *"v11"* ]] && modprobe esp8089
........
esac

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

Re: emuelec 사용중 wakeup 문제

Post by joy »

안녕하세요.
아래 버전의 EmuELEC 이미지로 테스트를 해보았는데요.
EmuELEC-OdroidGoAdvance.arm-3.6-odrodgo2_v11.img

제가 확인한 바로는 이 이미지에는 앞서 말씀드린 kernel 변경 및 Sleep 관련 처리는 모두 되어 있습 니다.

1. Kernel 상에서 USB dwc2 driver / esp8089 driver Module로 변경
: 처리되어 있습니다.

Code: Select all

EmuELEC:~ # lsmod
Module                  Size  Used by
uas                    24576  0
usb_storage            69632  2 uas
esp8089               282624  0
dwc2                  151552  0
sch_fq_codel           20480  5
wireguard             139264  0
ipv6                  450560  25 wireguard
ip6_udp_tunnel         16384  1 wireguard
udp_tunnel             16384  1 wireguard
2. Suspend 전 / Resume후 Module 처리
Power 버튼으로 Sleep 들어갔다가 나온 후에 serial message를 확인해보면
(1) suspend/resume을 수행한 내용이 확인되고
(2) 이후 dwc2와 esp8089 모듈을 확인해보면 정상적으로 로드되어 있습니다.
그리고 Sleep이후에 USB storage를 확인해보면 정상적으로 인식이 되고,

Code: Select all

EmuELEC:~ # lsusb
Bus 001 Device 002: ID 0781:5571 SanDisk Corp. Cruzer Fit
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

EmuELEC:~ # df
Filesystem           1K-blocks      Used Available Use% Mounted on
...
...
/dev/sda1             15048136     42312  14218372   0% /var/media/JOY
built-in WIFI도 정상적으로 올라와서 wlan0로 잡혀 있습니다.

Code: Select all

EmuELEC:~ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
4: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP8000> mtu 1500 qdisc mq qlen 1000
    link/ether 18:fe:34:16:7d:13 brd ff:ff:ff:ff:ff:ff
슬립이후에 USB 연결을 찾지 못하고 crash 문제가 생긴다고 하시는 부분은, 확실치는 않습니다만, 드라이버 레벨에서의 문제가 아닐수도 있을 것 같은데요.
그 담당자가 말한 내용도 sleep 이후 driver<->framework<->app 이 사이에 다시 로딩되는 순서에서 꼬인것 같다는 의미로 이해됩니다.

ztoday21
Posts: 10
Joined: Sun Mar 01, 2020 9:44 am
languages_spoken: korean
ODROIDs: odroid n2, odroid go advance
Has thanked: 1 time
Been thanked: 0
Contact:

Re: emuelec 사용중 wakeup 문제

Post by ztoday21 »

이제봤네요. 확인 감사합니다.
emuelec 담당자가 적극적인 의지를 보이지 않으면 수정되기 어려울것 같군요.

감사합니다.

Post Reply

Return to “오드로이드고/어드밴스”

Who is online

Users browsing this forum: No registered users and 1 guest