ogu xpadneo 구동

BT gamepad에서 진동 기능을 사용하려면 xpadneo를 설치해야 합니다.

  • 기기 내에 linuxheader 를 설치 하고

    git clone --depth 1 -b odroidgoU-4.9.y https://github.com/tobetter/linux.git
    zcat /proc/config.gz > .config
    make oldconfig
    아래 옵션을 사용하려면 메모리 스왑먼저 해줍니다.
    make -j6
    sudo make headers_install INSTALL_HDR_PATH=/usr
    
    cd /lib/modules/$(uname -r)
    sudo ln -sf 위커널소스경로 source
    sudo ln -sf 위커널소스경로 build
    

위 명령어로는 header 파일만 설치가 되니 수정된 드라이버는 별도로 설치해 주어야 합니다.

  • linux kernel 버젼이 낮아 xpadneo를 빌드할 수 있게 patch 적용해야 합니다. xpadneo 를 우선 빌드 합니다.

    git clone https://github.com/atar-axis/xpadneo.git
    sudo ./install.sh
    

구동 시 주요 에러 로그 위치

drivers/hid/hid-core.c: hid_err(parser->device, "unknown main item tag 0x%x\n", item->tag);

장치 추가

drivers/hid/hid-core.c 02e0 는 8Bitdo SN30 Pro 장치와 동일합니다.

static const struct hid_device_id hid_have_special_driver[] = {

{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, 0x02FD) },
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, 0x02E0) },

문제점:

  1. 연결 후 일정 시간 지나면 화면이 꺼지는 증상 있음
  2. 첫 연결 시 진동이 계속 울림 disconnect 후 connect 하면 정상 동작함
  3. 연결 시 진동 기능 없이 연결되는 경우 있음 (코드 정리 후 이건 더 안 나오는 증상)
  4. 8Bito SN30 Pro 외에 의미 없는 event5,6이 같이 생성됨

     /dev/input/event4:      8Bitdo SN30 Pro
     /dev/input/event5:      8Bitdo SN30 Pro Consumer Control
     /dev/input/event6:      8Bitdo SN30 Pro Keyboard
    

진동 기능을 갖고 연결되었을 때 dmesg 로그는 아래와 같음

[  250.566400] loaded hid-xpadneo v0.9-131-g0150346-dirty
[  250.566474] xpadneo 0005:045E:02E0.0001: buggy firmware detected, please upgrade to the latest version
[  250.566478] xpadneo 0005:045E:02E0.0001: pretending XB1S Windows wireless mode (changed PID from 0x02E0 to 0x028E)
[  250.566482] xpadneo 0005:045E:02E0.0001: working around wrong SDL2 mappings (changed version from 0x00000903 to 0x00001130)
[  250.566486] xpadneo 0005:045E:02E0.0001: report descriptor size: 307 bytes
[  250.566488] xpadneo 0005:045E:02E0.0001: fixing up report descriptor size
[  250.566948] xpadneo 0005:045E:02E0.0001: battery detected
[  250.566953] xpadneo 0005:045E:02E0.0001: gamepad detected
[  250.566956] xpadneo 0005:045E:02E0.0001: enabling compliance with Linux Gamepad Specification
[  250.567093] input: 8Bitdo SN30 Pro as /devices/virtual/misc/uhid/0005:045E:02E0.0001/input/input6
[  250.568368] xpadneo 0005:045E:02E0.0001: input,hidraw0: BLUETOOTH HID v11.30 Gamepad [8Bitdo SN30 Pro] on 00:e0:4c:23:99:87
[  250.568496] input: 8Bitdo SN30 Pro Consumer Control as /devices/virtual/misc/uhid/0005:045E:02E0.0001/input/input7
[  250.568595] xpadneo 0005:045E:02E0.0001: consumer control added
[  250.568682] input: 8Bitdo SN30 Pro Keyboard as /devices/virtual/misc/uhid/0005:045E:02E0.0001/input/input8
[  250.568779] xpadneo 0005:045E:02E0.0001: keyboard added
[  250.568791] xpadneo 0005:045E:02E0.0001: controller quirks: 0x00000007
[  250.568795] xpadneo xpadneo_welcome_rumble start
[  251.235675] xpadneo xpadneo_welcome_rumble took 668ms
[  251.235694] xpadneo 0005:045E:02E0.0001: 8Bitdo SN30 Pro [e4:17:d8:2d:ec:66] connected
[  419.810492] rk818-bat: coffset calib again 0.., max_cnt=1
[  423.842374] rk818-bat: coffset calib again 1.., max_cnt=1
[  427.878845] rk818-bat: new offset:c=0x802, i=0x841, p=0xffffffc1

이건 또 다른 dmesg 로그

[  400.407443] hid_xpadneo: loading out-of-tree module taints kernel.
[  400.408416] loaded hid-xpadneo v0.9-131-g0150346-dirty
[  400.408541] xpadneo 0005:045E:02E0.0001: buggy firmware detected, please upgrade to the latest version
[  400.408547] xpadneo 0005:045E:02E0.0001: pretending XB1S Windows wireless mode (changed PID from 0x02E0 to 0x028E)
[  400.408551] xpadneo 0005:045E:02E0.0001: working around wrong SDL2 mappings (changed version from 0x00000903 to 0x00001130)
[  400.408556] xpadneo 0005:045E:02E0.0001: report descriptor size: 307 bytes
[  400.408558] xpadneo 0005:045E:02E0.0001: fixing up report descriptor size
[  400.409125] xpadneo 0005:045E:02E0.0001: battery detected
[  400.409129] xpadneo 0005:045E:02E0.0001: gamepad detected
[  400.409133] xpadneo 0005:045E:02E0.0001: enabling compliance with Linux Gamepad Specification
[  400.409317] input: 8Bitdo SN30 Pro as /devices/virtual/misc/uhid/0005:045E:02E0.0001/input/input4
[  400.409663] xpadneo 0005:045E:02E0.0001: input,hidraw0: BLUETOOTH HID v11.30 Gamepad [8Bitdo SN30 Pro] on 00:e0:4c:23:99:87
[  400.409812] input: 8Bitdo SN30 Pro Consumer Control as /devices/virtual/misc/uhid/0005:045E:02E0.0001/input/input5
[  400.414462] xpadneo 0005:045E:02E0.0001: consumer control added
[  400.414574] input: 8Bitdo SN30 Pro Keyboard as /devices/virtual/misc/uhid/0005:045E:02E0.0001/input/input6
[  400.414658] xpadneo 0005:045E:02E0.0001: keyboard added
[  400.414665] xpadneo 0005:045E:02E0.0001: controller quirks: 0x00000007
[  400.414667] xpadneo xpadneo_welcome_rumble start
[  401.080944] xpadneo xpadneo_welcome_rumble took 664ms
[  401.080955] xpadneo 0005:045E:02E0.0001: 8Bitdo SN30 Pro [e4:17:d8:2d:ec:66] connected
[  440.762887] xpadneo 0005:045E:02E0.0001: battery registered
[  546.841686] xpadneo 0005:045E:02E0.0001: throttling rumble reprogramming

관련 없는 설정 값

/etc/modprobe.d/xpadneo.conf
alias hid:b0005g*v0000045Ep000002E0 hid_xpadneo
alias hid:b0005g*v0000045Ep000002FD hid_xpadneo
alias hid:b0005g*v0000045Ep00000B05 hid_xpadneo
alias hid:b0005g*v0000045Ep00000B13 hid_xpadneo
alias hid:b0005g*v0000045Ep00000B20 hid_xpadneo
alias hid:b0005g*v0000045Ep00000B22 hid_xpadneo 

참고:

drivers/hid/hid-ids.h:#define USB_VENDOR_ID_MICROSOFT		0x045e
#define USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS      0x02e0

Bus 001 Device 005: ID 045e:028e Microsoft Corp. Xbox360 Controller

2023

rgb30 빌드 환경

1 분 소요

rgb30 기기를 위한 이미지는 크게 jelos와 arkos가 존재합니다. 각각 다른 빌드 환경에서 에뮬레이터/프론트엔드/코어를 빌드 합니다.

8bitdo m30 for linux

최대 1 분 소요

Press and hold for 5 sec. If LED blinks, the mode has changed. There are three modes that can be set, and they are as follows.

rgnano build sm64

최대 1 분 소요

빌드를 하기 위해서는 docker 환경 내에서 작업 합니다.

rgnano ffmpeg build

1 분 소요

ffmpeg, ffplay 를 구동하기 위한 빌드환경을 설명합니다.

rgnano build 환경

1 분 소요

rgnano 용 이미지는 2종 (anbernic 생산 버젼, funkey DrUm78 custom 버젼) 존재합니다. 빌드 환경이 서로 다르기 때문에 각각 빌드된 프로그램은 실행되지 않음

rgnano simplemenu 구동

1 분 소요

rgnano는 240x240 해상도를 갖고 있다. 하지만 simplemenu는 320x240, 640x480 테마만 가지고 있다. rgnano에서 simplemenu 프론트엔드를 적용하기 위해서 기존 테마를 가공한 필요가 있었다.

miyoo mini + advmenu ip 및 배터리 값 표시

최대 1 분 소요

휴대용 기기를 위한 ip 주소 값과 배터리 상태 값을 표시한다. advmenu.rc 상에서 값 읽는 스크립트를 자유롭게 바꿀 수 있게 설계 한다. 메뉴 일부분을 한글로 구현 한다. core와 에뮬레이터를 advmenu 메뉴를 통해 변경할 수 있다.

miyoo mini + docker

최대 1 분 소요

mm+ 용 에뮬레이터를 빌드하기 위해서는 아래 toolchain을 사용해야 합니다. build 확인된 commit 시점으로 이동합니다.

miyoo mini + key value

최대 1 분 소요

miyoo mini + generates keyboard value when press each button. button value is below.

ogu linapple 구동

1 분 소요

linapple은 sdl1.2 기반으로 구현되어 있습니다. ogu에서 구동하기 위해서는 sdl2.0으로 변경 필요합니다.

ogu bluealsa 설치

1 분 소요

bt a2dp sink 출력을 하기 위해서는 pulseaudio를 설치해야 합니다만, bt 오디오 출력이 없어도 일정 수준으로 cpu를 사용하고 있기 때문에 다른 대안 중에 하나가 bluealsa 입니다.

ogu xpadneo 구동

3 분 소요

BT gamepad에서 진동 기능을 사용하려면 xpadneo를 설치해야 합니다. 기기 내에 linuxheader 를 설치 하고

ogu dosbox pure 로 windows95/98 설치

최대 1 분 소요

ogu 에서 windows 95/98 용 프로그램을 실행하기 위해서는 dosbox pure를 사용하여 windows 95/98을 설치해야 합니다. 설치하기 위한 hdd.img 를 만들고, window 95/98 cd를 설치한 후, 원하는 게임롬과 함께 windows 95/98 os...

ogu flycast

1 분 소요

libretro core github에 있는 flycast 동작이 이상합니다. 개선을 위해 보다 최신 github 소스를 사용해 봅니다

맨 위로 이동 ↑

2022

ogu devilutionX 구동

최대 1 분 소요

diablo 이미지를 구동하기 위한 엔진입니다. 아래 방법으로 빌드 할 수 있습니다. docker 환경에서 빌드 가능합니다.

ogu gl4es

최대 1 분 소요

64bit / 32bit 모두 빌드 가능합니다.

ogu box86,box64

최대 1 분 소요

pc linux 용 x86/x64 를 arm 기기에서 실행하기 위해서는 box86,box64 가 필요합니다.

ogu sdcard 인식문제 해결 방법

2 분 소요

v1.1 (2022/09/26) ubuntu 20.04 기본 이미지에서는 reboot 시 sdcard 인식되지 않는 문제를 해결하기 위해서는 uboot와 kernel을 수정해야 합니다.

ogu mame current

최대 1 분 소요

mame는 빌드시 memory를 많이 필요로 하기 때문에 빌드 중간에 멈추는 현상을 방지하려면 사전에 swap 메모리 확보가 필요합니다.

ogu backup image

최대 1 분 소요

recovery mode 진입 : l2 + r2 + power 키로 전원을 키면 recovery mode로 진입한다.

ogu log

최대 1 분 소요

불필요한 log 가 쌓이는 것을 막기 위해서는 사이즈 제한을 해야 합니다.

ogu openbor

최대 1 분 소요

sudo apt install libvpx-dev libvorbisidec-dev git clone https://github.com/DCurrent/openbor

ogu easyrpg

최대 1 분 소요

easyrpg standalone 사용방법

ogu toolchain

1 분 소요

pc 환경에서 ogu 소스를 빌드하기 위해서는 toolchain을 설치해야 합니다. pc에서 빌드해야 하는 소스는 linux kernel과 uboot 이 있습니다.

ogu core build

최대 1 분 소요

retroarch core build 관련해서 정리해 봅니다.

ogu attractmode

최대 1 분 소요

ogu 장치에 맞게 attracmode 구동을 위한 sfml 라이브러리를 변경합니다.

ogu libgo2 코드 libgou로 수정

최대 1 분 소요

libgo2 로 작성된 코드를 libgou로 대체하기. retrorun go2와 gou 코드를 비교하여 기존에 작성된 코드를 수정한다.

ogu 자동실행 구문 수정

1 분 소요

ubuntu 에서 부팅시 자동으로 emulationstation을 실행해 주고 있으나, killall 로 죽여도 살아나기 때문에 개발에는 적합하지 않아 수정해 줍니다.

miyoo-mini rumble motor 제어 방법

2 분 소요

기술 관련 전문 (motor 테스트 앱에 포함되어 있는 pdf 에 적혀 있는 내용을 내마음 대로 번역해 보았습니다.)

하루전날 테스트

최대 1 분 소요

Welcome 포스팅이 되지 않아 하루전날 파일 생성해서 테스트 해봅니다.

맨 위로 이동 ↑