[해결] GPIO포트 변경 가능할까요?



  • 소프트웨어적으로는 되었다고 출력되나 포트가 맞는지 여부가 아직 확인이 안되네요
    정확한 결론은 안되고 있다는건 맞습니다. 실제 TFT화면에서도 조이스틱이 있다고 나옵니다.

    그리고 터미널명령에서도 나무꾼님이 확인하신바와같이 동작하고 있다고 나오지만
    제가 설정한 핀을 가지고 조작해본결과 동작하지 않습니다.
    주말동안 밤을 불태워 하얗게 지세워보아야겠습니다. 열공열공


  • Global Moderator

    @Taesung-Nam 결국 소스빌드를 해야 해결이 가능 할 수도 있겠네요
    저도 한번 스위치 한 두개 연결하고 테스트를 해 보아야 겠네요.



  • 저도 비슷한 생각입니다 .c파일을 빌트해서 드라이버 로드를 정식으로 해줘야 하지 않을까 하는 생각이 듭니다…그런데 아직 제 머리로 해결못한…dkms실행에 발생했던 버전이 다르다는…아무튼 주말에 저도 많이 공부좀 해볼게요


  • Global Moderator

    @Taesung-Nam 후… 새로 빌드 성공 했습니다.

    소스 자체를 수정했고, 동작도 잘되네여.

    0_1466777673668_스크린샷 2016-06-24 23.13.33.png

    오늘은 너무 늦고, 새벽에 일이 있어… 개별로 포스트 따로 하겠습니다.



  • 우와 역시 나무꾼님이 해내셨군요…제가잘못세팅하고있던게 아닌게 맞는거죠?
    저는…주말내내 하드웨어적인 부분만 접근해봤습니다…제가 소프트웨어적으로는
    아직 나무꾼님하는얘기이해할려면…몇년은더 책봐야하는수준이라…하드웨어적으로봤습니다
    일단 저도 정상동작하는 2인용로세팅된거 올려서 테스트해보니
    하드웨어적으로는 gpio핀이 할당되면 하이신호 즉 3.3볼트가 맞습니다.
    그리고 모든 버튼의 한쪽단자를 한개의 그라운드핀과 합치니깐
    하이신호에서 로우신호로떨어지면 인식되는 타입이 맞습니다.
    이번에 나무꾼님이 해결해주신 2.8인치 연결하고 조이스틱 1개 연결하는부분은 소프트웨어적으로
    맞지않는부분이 상당했던걸로…다 해결을 해주셨네요 저도 이번에 해결하신부분 기대됩니다.
    포스팅되면 정말 좋은자료가 될거라고 생각합니다.
    많이고생해주셔서 고맙습니다 이거완료하면 다음엔 아들녀석위해서 미니기통하나 만들어줄려고합니다


  • Global Moderator

    @Taesung-Nam 어제도 늦은 시간에 귀가를 하다 보니 글작성이 어려워 일단 틈이 생기는 시간에 메모 해 둔 커맨드만 먼저 올려 드립니다.

    편집을 제대로 못 해서, 좀 마음에 걸리지만 기다리실것 같아 댓글로 먼저 드립니다.

    첫 번째는 기존 근주님의 글 처럼 따라해 0.1.4 버젼을 설치하시고 그 뒤에 아래 방법데로 하시면 됩니다.

    $ git clone https://github.com/recalbox/mk_arcade_joystick_rpi

    $ sudo mkdir /usr/src/mk_arcade_joystick_rpi-0.1.5/

    $ cd mk_arcade_joystick_rpi

    $ make

    make -C /lib/modules/`uname -r`/build M=/home/pi/mk_arcade_joystick_rpi modules
    make[1]: Entering directory '/usr/src/linux-headers-4.4.13-v7+'
      CC [M]  /home/pi/mk_arcade_joystick_rpi/mk_arcade_joystick_rpi.o
    /home/pi/mk_arcade_joystick_rpi/mk_arcade_joystick_rpi.c:152:1: warning: no semicolon at end of struct or union
     };
     ^
    /home/pi/mk_arcade_joystick_rpi/mk_arcade_joystick_rpi.c: In function ‘i2c_read’:
    /home/pi/mk_arcade_joystick_rpi/mk_arcade_joystick_rpi.c:269:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
         unsigned short bufidx;
         ^
    /home/pi/mk_arcade_joystick_rpi/mk_arcade_joystick_rpi.c: In function ‘mk_setup_pad’:
    /home/pi/mk_arcade_joystick_rpi/mk_arcade_joystick_rpi.c:412:14: warning: too many arguments for format [-Wformat-extra-args]
                  pr_err("Invalid gpio argument\n", pad_type);
                  ^
      Building modules, stage 2.
      MODPOST 1 modules
      CC      /home/pi/mk_arcade_joystick_rpi/mk_arcade_joystick_rpi.mod.o
      LD [M]  /home/pi/mk_arcade_joystick_rpi/mk_arcade_joystick_rpi.ko
    make[1]: Leaving directory '/usr/src/linux-headers-4.4.13-v7+'
    

    $ sudo dkms remove -m mk_arcade_joystick_rpi -v 0.1.4 --all

    -------- Uninstall Beginning --------
    Module:  mk_arcade_joystick_rpi
    Version: 0.1.4
    Kernel:  3.6-trunk-rpi (armv7l)
    -------------------------------------
    
    Status: Before uninstall, this module version was ACTIVE on this kernel.
    
    mk_arcade_joystick_rpi.ko:
     - Uninstallation
       - Deleting from: /lib/modules/3.6-trunk-rpi/updates/dkms/
     - Original module
       - No original module was found for this module on this kernel.
       - Use the dkms install command to reinstall any previous module version.
    
    depmod....
    
    DKMS: uninstall completed.
    
    -------- Uninstall Beginning --------
    Module:  mk_arcade_joystick_rpi
    Version: 0.1.4
    Kernel:  4.4.13+ (armv7l)
    -------------------------------------
    
    Status: Before uninstall, this module version was ACTIVE on this kernel.
    
    mk_arcade_joystick_rpi.ko:
     - Uninstallation
       - Deleting from: /lib/modules/4.4.13+/updates/dkms/
     - Original module
       - No original module was found for this module on this kernel.
       - Use the dkms install command to reinstall any previous module version.
    
    depmod.....
    
    DKMS: uninstall completed.
    
    -------- Uninstall Beginning --------
    Module:  mk_arcade_joystick_rpi
    Version: 0.1.4
    Kernel:  4.4.13-v7+ (armv7l)
    -------------------------------------
    
    Status: This module version was INACTIVE for this kernel.
    depmod....
    
    DKMS: uninstall completed.
    
    ------------------------------
    Deleting module version: 0.1.4
    completely from the DKMS tree.
    ------------------------------
    Done.
    
    

    $ sudo cp -a * /usr/src/mk_arcade_joystick_rpi-0.1.5/

    $ cd /usr/src/mk_arcade_joystick_rpi-0.1.5/

    $ sudo nano dkms.conf

    PACKAGE_VERSION="$MKVERSION"
    

    아래 내용은 내가 원하는 버젼으로 변경이 가능함.
    단, /usr/src/ 내에 관련 버젼의 디렉토리를 함께 만들어 주어야함.

    PACKAGE_VERSION=“0.1.5”
    

    $ sudo dkms build -m mk_arcade_joystick_rpi -v 0.1.5

    Creating symlink /var/lib/dkms/mk_arcade_joystick_rpi/0.1.5/source ->
                     /usr/src/mk_arcade_joystick_rpi-0.1.5
    
    DKMS: add completed.
    
    Kernel preparation unnecessary for this kernel.  Skipping...
    
    Building module:
    cleaning build area....
    make KERNELRELEASE=4.4.13-v7+ all KVERSION=4.4.13-v7+......
    cleaning build area....
    
    DKMS: build completed.
    

    $ sudo dkms install -m mk_arcade_joystick_rpi -v 0.1.5

    mk_arcade_joystick_rpi:
    Running module version sanity check.
    
     - Original module
       - This kernel never originally had a module by this name
     - Installation
       - Installing to /lib/modules/4.4.13-v7+/updates/dkms/
    
    depmod.....
    
    DKMS: install completed.
    


  • 제가 처음에 할때 암생각없이 근주님꺼 그대로따라해서
    map=1,2로해서…했는데 되더라구요…그런데 저는 map=5 gpio=pin1,2,3,4,…12 일케 해야 하는거 아닌가요?
    pi@retropie:~ $ sudo nano /etc/modprobe.d/mk_arcade_joystick.conf
    options mk_arcade_joystick_rpi map=1,2

    이부분에서요…저는 이걸…
    options mk_arcade_joystick_rpi map=5 gpio=14, 15, 23, 24, 5, 6, 13, 19, 26, 16, 20, 21

    이렇게 했는데…게임패드 없다고 나오네요…집에가서 다시 첨부터 해봐야겠습니다
    처음에 완전 근주님꺼처럼 했을땐 키 설정하는창이 나왔는데 게임패드 1.2 둘다 되는건가 싶어서 다시 제가 맵설정하고 했던 게임패드 없다고 나오네요…2번해봤는데 두번다요…근주님껄로 해서 다시해보고 키패드가 맞는지 확인해봐야겠습니다.일단 고생 많으셨습니다.
    먼가 고지가 보입니다


  • Global Moderator

    @Taesung-Nam 그냥 gpio 1 번 이나 2번 핀장의깂을 바꿔서 make 하시는게 좋지 않을까요 ?



  • 해결했습니다.
    options mk_arcade_joystick_rpi map=5 gpio=14, 15, 23, 24, 5, 6, 13, 19, 26, 16, 20, 21
    이거 먹힙니다…그런데…제가 잘못했던부분은 붙여넣기했더니생기는 띄어쓰기문제 발생으로 인식이 안되더라구요
    하도 오래전이라 리눅스에서 띠어쓰기가 허용되던건지 안되던건지 기억이 안나더군요

    options mk_arcade_joystick_rpi map=5 gpio=14,15,23,24,5,6,13,19,26,16,20,21
    이렇게 gpio값을 붙여서 써주면 되더라구요 위에쓴것처럼 ,뒤에 스페이스 하고 숫자쓰면 안되구요
    어제 조이스틱값 인식시켜주는것까지 완료했습니다. 이제 게임롬을 넣어주면 레트로쪽은 마무리가 될거 같습니다.

    어제 롬집어넣을려고 같은 공유기에 물려놓고 탐색기열었는데 탐색기에 라즈베리가 안뜨더라구요…왜이런건지 검색중입니다 ㅠ
    전 3.3.1로 할때는 탐색기에서 네트워크에 라즈베리폴더들이 보여서 넣기 좋았는데 이번 3.8.1로 작업하면서보니깐 안나오더라구요
    요건 제가 한번 공부해서 해결해볼게요


답변을 위해 로그인하기