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



  • 제가 레트로파이 3.8.1로 올려서 2.8TFT LCD를 SPI 연결했습니다.한참 설정중입니다 곧될거같구요…

    하다보니예전부터 고민했던문제의 해결방법이 없을까…하다 여기 고수분들은 쉽게 알지 않을까해서 질문드립니다.

    레트로파이에서 저는 1P만 필요합니다…소형 2.8" LCD를 사용할거라서 2인용을 만들자리가 없습니다

    1인용 초소형 미니기통인데 LCD를 SPI로 연결하고나니

    1P : DOWN, START, SELECT, Y, A 버튼 LCD핀과 중복
    2P: UP, TL, X, 버튼 LCD핀과 중복

    이런상황이 되는거 같습니다.

    1개의 조이스틱에 필요한 핀수가 12핀인데 LCD연결하고나면 남는 IO핀은 19개 입니다
    핀의 갯수로만봐도 1P,2P를 모두 구성은 안되는거 같아보입니다.

    LCD핀과 충돌나지 않는 GPIO핀을 잘 배열해서 1P만 12핀을 다시 구성하고싶은데
    방법이 없을까요?

    드라이버 파일중에 GPIO MAP부분을 수정하면 될거 같은데…프로그램은 C를 잠깐…처다본게 전부라…

    181 // Map of the gpios : up, down, left, right, start, select, a, b, tr, y, x, tl
    182 static const int mk_arcade_gpio_maps[] = {4, 17, 27, 22, 10, 9, 25, 24, 23, 18, 15, 14 };
    183 // 2nd joystick on the b+ GPIOS up, down, left, right, start, select, a, b, tr, y, x, tl
    184 static const int mk_arcade_gpio_maps_bplus[] = {11, 5, 6, 13, 19, 26, 21, 20, 16, 12, 7, 8 };
    185 // Map of the mcp23017 on GPIOA up, down, left, right, start, select
    186 static const int mk_arcade_gpioa_maps[] = {0, 1, 2, 3, 4, 5 };
    187

    188 // Map of the mcp23017 on GPIOB a, b, tr, y, x, tl
    189 static const int mk_arcade_gpiob_maps[] = {0, 1, 2, 3, 4, 5 };
    190

    191 // Map joystick on the b+ GPIOS with TFT up, down, left, right, start, select, a, b, tr, y, x, tl
    192 static const int mk_arcade_gpio_maps_tft[] = {21, 13, 26, 19, 5, 6, 22, 4, 20, 17, 27, 16 };

    요부분이 GPIO 핀에대한 MAP Data같은데 요부분에서 정의내린 핀번호를 제가 바꾸면 되는것인가요?


  • Global Moderator

    @Taesung-Nam 안녕하세요 나무꾼 입니다.

    진행 중이신 gpio 관련 내용을 기술 해주셔야 답변이 가능한 내용 입니다.

    위 내용만으로는 핀정의 만 바꾸면 바로 동작 하게 되어 있습니다.

    어떠한 액션으 어떻게 취했는지는 작업 진행 중인 분만이 알 수가 있기 때문 입니다.



  • 제가 생각이 좀짧았네요 맘이 급할땐 꼭이렇게 제생각만하네요 죄송합니다.

    라즈베리파이2에 hy28b tft LCD를 연결했습니다(이장님 덕에 해결잘했습니다)

    그리고 이제 조이스틱 1p용만 연결하고싶어서 핀번호를 확인중인데
    어차피 1p,2p둘다 사용은 불가능하다고 판단했습니다 왜냐하면 6버튼으로 할경우

    1p당 12핀의 IO가 필요한데 남은 IO가 19개로 확인됩니다.
    그래서 19개 남은 IO중 12개만 추려서 1p용 조이스틱으로 결선하고 그에 맞게
    조이스틱MAP을 수정하려고합니다.

    그래서 제가 lcd와 충돌나지 않는 io번호를 추려서
    gpio
    14 (up)
    15 (down)
    23 (left)
    24 (right)
    05 (start)
    06 (select)
    13 (x)
    19 (y)
    26 (tl)
    16 (b)
    20 (a)
    21 (tr)

    이렇게 정하고
    // Map joystick on the b+ GPIOS with TFT up, down, left, right, start, select, a, b, tr, y, x, tl
    192 static const int mk_arcade_gpio_maps_tft[] = {21, 13, 26, 19, 5, 6, 22, 4, 20, 17, 27, 16 };

    요부분을
    // Map joystick on the b+ GPIOS with TFT up, down, left, right, start, select, a, b, tr, y, x, tl
    192 static const int mk_arcade_gpio_maps_tft[] = {14, 15, 23, 24, 5, 6, 13, 19, 26, 16, 20, 21 };

    이렇게 수정했습니다 그럼 이제 이 파일을 빌트후에 설치하면 된다고 생각했습니다.그래서
    https://github.com/recalbox/mk_arcade_joystick_rpi#loading-the-driver
    이 링크에있는대로 따라하는중입니다.

    UPDATE 0.1.5 : Added GPIO customization

    저는 지금임의대로하기때문에 자동으로하면 안되고 메뉴얼로해야 한다고생각해서
    Manual Installation
    Manual Installation

    Update system :

    sudo apt-get update
    sudo apt-get upgrade
    sudo rpi-update

    1 - Install all you need :

    sudo apt-get install -y --force-yes dkms cpp-4.7 gcc-4.7 git joystick

    2 - Install last kernel headers :

    wget http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-uname -runame -r-2_armhf.deb
    sudo dpkg -i linux-headers-uname -r
    uname -r-2_armhf.deb
    sudo rm linux-headers-uname -r_uname -r-2_armhf.deb

    여기쯤하는데 2번 항목에서 안됩니다.인스톨 라스트 커널 해더…여기서
    wget http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-uname -r_`uname

    이명령이 안되더군요 어떻게 안되냐면
    0_1466589843190_000.png

    이렇게나옵니다 딱봐도 먼가 에러났더군요 응답이 없다는거 같기도하고…그래서 그 이후꺼는 머 시도는 해봤지만의미없는거 같아서 여기서 멈춰있습니다.

    map파일 수정한것 컴파일해야 하는데 그건 이거 해결하고 질문드릴게요


  • Global Moderator

    @Taesung-Nam @임근주 님이 3.8.1 에서 한거보면 커널 deb 파일은 설치하지 않는 걸로 기억합니다.



  • 그럼 일단 커널 다운로드는 건너뛰고…
    3.b.4 - Compile and install the module:

    dkms build -m mk_arcade_joystick_rpi -v 0.1.5
    dkms install -m mk_arcade_joystick_rpi -v 0.1.5

    이부분도 안되더라구요 이부분이 저는…커널업그래이드를 안해서 안되나…싶었는데 건너뛴다고 하셨으니
    커널업그래이드랑은 관계가 없다고 하고…

    저부분중
    dkms build -m mk_arcade_joystick_rpi -v 0.1.5
    이걸 해야 하는데…저같은경우 map파일에 io번호를 제마음대로 수정했기때문에
    mk_arcade_joystick_rpi.c
    이파일을 컴파일해야 한다고 생각했습니다…그래서 빌트를 해주고 그다음에 인스톨을 해줘야하는걸로 이해했습니다.
    그런데 빌트자체가 안됩니다. 에러메시지는
    0_1466595347849_000.png

    이렇게 나옵니다. 패키지 버전이 안맞는다라고…오늘도 이장님의 큰 가르침받고싶습니다


  • Global Moderator

    @Taesung-Nam 네 안녕하세요 나무꾼 입니다.

    우선, Recalbox team 에서 작성하신 전체적인 문서의 내용에 대한 이해가 되시지 않은 상태이신 것 같습니다.

    저도 모든 환경에 대한 테스트 를 해보지 못하였으나, 사실 지금 겪고계신 부분은 정말 중요한 부분이 아니라고 생각을 합니다.

    또한 소스의 중요도는 2차적인 문제이고 리눅스라는 운영체제의 구조를 어느정도는 이해를 하고 계시다면 좀 더 쉽게 해결이 가능하셨을 부분 같습니다.

    본론으로 들어가자면,

    레칼박스 팀에서 커널단에서 간편하게 조정이 가능하도록 이미 준비를 다 해 두었습니다.
    레칼박스팀에서 사용자를 위한 배려라고 할 수 있을 것 같습니다.

    아마도 국내에서 몇 분 정도 안되실 겁니다. 이런 내용을 알고 계신 분들도요.

    우선 근주님의 포스트대로 그대로 진행을 하시고 아래 문서에 나온데로 TFT 설정에 맞추서 GPIO를 조정 하시던가 5번 항목에 설정하실 gpio 를 설정 하시기 바랍니다.

    그러시면, 원하시는 결과를 얻으실 수가 있으실 겁니다.

    추가로 7월 말에 있는 모임에 한번 방문할 수 있다면 방문을 하시어 함께 경험하신 부분을 나누시는 것도 좋은 경험이 되실 듯 합니다. ^^

    Loading the driver

    The driver is loaded with the modprobe command and take one parameter nammed “map” representing connected joysticks. When you will have to load the driver you must pass a list of parameters that represent the list of connected Joysticks. The first parameter will be the joystick mapped to /dev/input/js0, the second to js1 etc…

    If you have connected a joystick on RPi GPIOs (joystick 1 on the pinout image) you must pass “map=1” as a parameter. If you are on B+ revision and you connected 2 joysticks you must pass map=“1,2” as a parameter.

    If you have one joystick connected on your RPi B or B+ version you will have to run the following command :

    sudo modprobe mk_arcade_joystick_rpi map=1

    If you have two joysticks connected on your RPi B+ version you will have to run the following command :

    sudo modprobe mk_arcade_joystick_rpi map=1,2

    If you have a TFT screen connected on your RPi B+ you can’t use all the gpios. You can run the following command for using only the gpios not used by the tft screen (Be careful, not all tft screen use the same pins. GPIOs used with this map: 21,13,26, 19,5,6,22,4,20,17,27,16):

    sudo modprobe mk_arcade_joystick_rpi map=4

    If you don’t want to use all pins or wants a custom gpio map use:

    sudo modprobe mk_arcade_joystick_rpi map=5 gpio=pin1,pin2,pin3,.....,pin12

    Where pinx is the number of the gpio you want. There are 12 posible gpio with button order: Y-,Y+,X-,X+,start,select,a,b,tr,y,x,tl. Use -1 for unused pins. For example gpio=21,13,26,19,-1,-1,22,24,-1,-1,-1,-1 uses gpios 21,13,26,19 for axis and gpios 22 and 24 for A and B buttons, the rest of buttons are unused.

    The GPIO joystick 1 events will be reported to the file “/dev/input/js0” and the GPIO joystick 2 events will be reported to “/dev/input/js1”



  • 그렇긴한데…
    0.1.4버전에서는사용자맘대로 바꿀수가 없는거 같네요
    0.1.5버전에서 가능하다고 나온거 같은데 중요한건 github에서도 0.1.5버전을 받을 수가 없네요
    설명대로라면
    3.b.1 - Download the files:

    git clone https://github.com/pinuct/mk_arcade_joystick_rpi/tree/customgpio

    이부분이 가능해서 파일이 받아져야 하는데…링크자체가 없습니다… 0.1.4버전은 받아지는데 0.1.5버전은 파일 자체를 못받으니
    불가능한걸로 보여집니다…

    애초에
    3.b - Or compile and install with dkms:

    3.b.1 - Download the files:

    git clone https://github.com/pinuct/mk_arcade_joystick_rpi/tree/customgpio

    3.b.2 - Create a folder under “/usr/src/module-module-version/”

    mkdir /usr/src/mk_arcade_joystick_rpi-0.1.5/

    3.b.3 - Copy the files into the folder:

    cd mk_arcade_joystick_rpi/
    cp -a * /usr/src/mk_arcade_joystick_rpi-0.1.5/

    3.b.4 - Compile and install the module:

    dkms build -m mk_arcade_joystick_rpi -v 0.1.5
    dkms install -m mk_arcade_joystick_rpi -v 0.1.5
    이부분은 전부다 링크가 없어 실행이 안된다고 판단됩니다… 서버에 파일이 없는거 같아요…


  • Global Moderator

    @Taesung-Nam 안녕하세요 나무꾼 입니다.

    네 맞습니다. 0.1.5 가 더이상 배포가 안되더라구요. 저도 엄청 찾아 다녔습니다.

    릴리즈 0.1.5에서 변경기능이 있다는 뜻은 sudo nano /etc/modules 에 등록을 할 때 커맨드를 만들어 두었다는 뜻으로 해석을 하시는것이 맞습니다.

    위키 자체가 지금은 일부가 잘 못 된 것이죠.

    make 에서 가장 필요한 mk_xxxxx.o 랑 헤더파일이라고 하던가요 그게 없더라구요.

    저 같은경우에는 기본적으로 소스는 수정을 하지 않은 상태에서 0.1.4 버젼을 설치 후에

    sudo modprobe mk_arcade_joystick_rpi map=4 를 먹이니 TFT용으로 적용이 되었습니다.

    이 방법처럼 위키에 나온데로 sudo modprobe mk_arcade_joystick_rpi map=5, gpio=xxx 처럼 원하시는 gpio 정의를 새로 하시면 gpio가 변경되실 거라 판단이 됩니다.
    `



  • 네 위키 자체가 안되는걸로봐선,먼가 문제가 있긴한거 같습니다…현제 0.1.4버전으로해서 조이스틱 1개 검색됐다는
    메시지까지는 뜨게 했습니다…이제 A버튼을 누르라는 메시지가 나오는데…
    제가 GPIO이해한결과 제가 지정한 키가 설정이 완료되었다면 Hi신호가 나와야 한다고 알고있습니다. 즉 3.3V가 나오고있어야하고
    GND와 연결하면 LOW로 떨어지면서 키 인식이 되는걸로 이해했습니다(전자과출신의 얉은 지식 ㅠ)
    마지막에 말씀하신것처럼 map=4번으로했구요…tft는정상적으로 나오고 1개의 조이스틱 인식된걸로 나오지만…

    마지막말씀처럼 map=5하고 제가 정의 내린 핀번호다 적고해봐도…하이신호가 안나옵니다.
    신호가 나오는 핀은
    제가 정의내린 핀은
    라즈베리핀 : 8 10 16 18 29 31 33 35 36 37 38 40
    GPIO 핀 : 14 15 23 24 5 6 13 19 26 16 20 21
    인데…

    라즈베리핀기준 : 8 10 29 31 번 나옵니다.
    GPIO핀기준으로하면 14 15 5 6 번의 IO입니다.
    말씀하신 마지막에 map=5번으로하고 핀번호 정의내리는건 결국 안먹힌다는 결론이 나옵니다…

    위에 위에 말씀하신것처럼 저도…리눅스에 대한 기본개념이…대학교2학년때니깐…2002년때 이후로
    거의 기억이 없습니다. 집에서 그때 배우던 대학생책꺼내놓고 열심히 보고있지만 개념은 잡혀가지만
    중요한건 명령어가 많이 달라진거 같습니다… ㅠ 그래서 잘 이해가 안가네요 14년이란 세월도 있지만 ㅠ

    더 열심히 위키나 포럼 에서 공부좀 해볼게요


  • Global Moderator

    @Taesung-Nam님이 [해결] GPIO포트 변경 가능할까요?에서 한 말:

    거의 기억이 없습니다. 집에서 그때 배우던 대학생책꺼내놓고 열심히 보고있지만 개념은 잡혀가지만

    헉, 학생분이 아니셨군요 학생 분이신줄 오해 했습니다.
    저도 중학생때… 유닉스 계열이랑 프리비디에스, 솔라리스 만지고 고등학교 졸업 후에는 리눅스를 사용 안 하다가 파이 때문에 다시 리눅스를 만지게 되었습니다.

    우선, 이야기 하신 부분은 저도 테스트를 정확히 해보아야 할거 같지만, mk_arcade_joystick_rpi.c 소스 내용 중에 122 번라인에

    MODULE_PARM_DESC(map, "Enable or disable GPIO, MCP23017, TFT and Custom Arcade Joystick");
    

    Line 134 ~ 141

    enum mk_type {
        MK_NONE = 0,
        MK_ARCADE_GPIO,
        MK_ARCADE_GPIO_BPLUS,
        MK_ARCADE_MCP23017,
        MK_ARCADE_GPIO_TFT,
        MK_ARCADE_GPIO_CUSTOM,
        MK_MAX
    

    커널단에서 커스텀 정의가 가능하도록 mapping 정의가 되어 있는 것을 보실 수가 있습니다.

    아래 개발자 분이 수정하신 내용을 보아도 동작을 하게 끔 되어 있더라구요.

    https://github.com/Pinuct/mk_arcade_joystick_rpi/commit/cfe558cc927534652552f14c04bda79466131af4

    저도 커스텀 부분은 한번 시간 내서 시도하고 결과를 공유하도록 해 보겠습니다.

    sudo modprobe mk_arcade_joystick_rpi map=5 gpio=pin1,pin2,pin3,.....,pin12


  • Global Moderator

    @Taesung-Nam 테스트 결과, 각 메뉴에 따라 디바이스 커널 드라이브는 잘 활성화가 됩니다.

    0_1466739547341_gpio_joystick.jpg



  • 네 저도 이부분은 이미 파악했던 부분입니다…정상적으로 조이스틱 로딩되서 올라옵니다…
    중요한건 모듈상 올라간걸로 나오지만 동작을 안한다는게 문제인거 같습니다.

    실제로 map5로 하고 재부팅해보면 올라가있는데 중요한건…제가 지정한 gpio핀번호는 무시된건지
    아니면 제 라즈베리의 gpio가 다 죽은건지…실제 동작하는 gpio핀은 12개 설정중 4개뿐입니다.

    나머지 8개는 하나도 출력이 나오질 않습니다.
    조이스틱 동작원리가 모든 버튼의 1개핀은 GND에 컴먼…
    즉 쇼트 시키고 나머지 1핀만을 GPIo에 연결하게 되는데, 그렇다면 동작방법은 버튼을 누루기 전에는 하이신호
    즉 3.3볼트가 걸려있고 버튼을 누르는순간 그라운드에 연결되어 로우 신호 즉 0으로 떨어지면 버튼입력으로 판단되는 원리같습니다.

    이게 맞다면 모든 버튼을 누루기전 상태에서는 제가 활성화한 버튼 즉 gpio핀은 3.3v를 출력하고 있어야
    정확히 활성화된게 아닌가요? 실제 레트로파이에서는 활성화 되었다고 출력해주지만 전기적인 신호는 전혀 나오질 않기때문에 이건 활성화 되지 않았다고 판단합니다…

    이장님 혹시…활성화 된다음 활성화한 gpio핀에 출력값을 찍어보셨나요? 저는 하도 안되서 gpio핀 사망도
    의심할정도입니다…

    일단 여기까지 파악해보고…저도 좀더 공부를 해보고 올게요


  • Global Moderator

    @Taesung-Nam 저는 관련분야의 종사자가 아니다보니 직접 테스트 해 볼 수 있는 장비나 여건이 안되서 소프트웨어 부분만 처리를 했고, 버튼을 눌렀을 때 실제 움직이는 것인지가 관건 일 듯 합니다.

    이 부분은 저도 실제로 플레이를 해 보아야 드릴 수 있는 답변 같습니다.



  • 소프트웨어적으로는 되었다고 출력되나 포트가 맞는지 여부가 아직 확인이 안되네요
    정확한 결론은 안되고 있다는건 맞습니다. 실제 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번해봤는데 두번다요…근주님껄로 해서 다시해보고 키패드가 맞는지 확인해봐야겠습니다.일단 고생 많으셨습니다.
    먼가 고지가 보입니다


답글을 작성하기 위해 로그인
 

Rasplay Forum 사이트로의 연결이 끊어졌습니다. 다시 연결을 시도하는동안 잠시만 기다려 주십시오.