odroid c4 블루투스 지원 안되나요?

Post Reply
leesungho
Posts: 37
Joined: Tue Sep 08, 2020 4:31 pm
languages_spoken: english / korean
ODROIDs: ODROID-C1+
Has thanked: 0
Been thanked: 0
Contact:

odroid c4 블루투스 지원 안되나요?

Post by leesungho »

하드커널 홈페이지에 있는 odroid c4에 대한 selfinstall-odroidc4-62-64bit-20210414.img 를 sd카드에 업로드 후
앱을 설치 했는데, 블루투스 관련 오픈소스를 사용하고 있는데, 이 오픈소스 때문에 앱이 강제 종료가 됩니다.
참고로 odroid c1+에서는 정상적으로 돌아가는 앱입니다.
odroid c4에서는 블루투스 지원을 안하나요?

Luke.go
Posts: 624
Joined: Mon May 30, 2016 1:55 pm
languages_spoken: english
Has thanked: 85 times
Been thanked: 87 times
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by Luke.go »

사용하신 블루투스 동글이 어떻게 되나요?

그리고 사용하신 오픈소스가 어떻게 되는지 알 수 있을까요?

오드로이드 C4는 블루투스 정상 지원 합니다.

leesungho
Posts: 37
Joined: Tue Sep 08, 2020 4:31 pm
languages_spoken: english / korean
ODROIDs: ODROID-C1+
Has thanked: 0
Been thanked: 0
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by leesungho »

블루투스 동글 4.0을 사용하고 있으며,
동글 관련 소스코드인 isEnable() 함수에서 에러가 뜨며, 에러가 뜨는 원인은 BluetoothAdapter.getDefaultAdapter() 코드의 리턴값이 null을 반환하기 때문에 앱이 강제 종료가 됩니다. (adb로 logcat 확인 결과)
Image

구글링 한 결과(정확하지 않을 수 있는데) BluetoothAdapter.getDefaultAdapter() 리턴값이 null이 반환된다면, 해당 기기에서 블루투스를 지원하지 않기 때문에 이런 결과가 발생한다는 정보를 찾았습니다.
(관련 링크 : https://kkangsnote.tistory.com/47)

오드로이드 settings 앱에 보면 wifi 항목은 있는데, bluetooth 항목은 없는 것 같 같아서 블루투스를 지원하지 않나 라는 의문이 아직도 있습니다. odroid c1+ 에는 settings 앱에 bluetooth 항목이 있거든요..
답변 부탁드립니다!

Luke.go
Posts: 624
Joined: Mon May 30, 2016 1:55 pm
languages_spoken: english
Has thanked: 85 times
Been thanked: 87 times
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by Luke.go »

사용하고 계신 블루투스 동글이 지원하지 않는 것이라면 블루투스 서비스가 동작하지 않을 수 있습니다.

블루투스 서비스를 동작하도록 하기 위해서는 스크립트를 변경해야합니다.
이 때 스크립트를 정상적으로 변경, 적용하기 위해 다음 명령을 PC에서 수행 합니다.

Code: Select all

$ adb remount
그런 후에 /vendor/bin/makebootini 를 수정해야 합니다.

Code: Select all

#Automatically change prop feature.disable_bt in default.prop
devs=$(lsusb | awk '{print $6}')

for dev in $devs;
do
    if [ "$dev" = "0a12:0001" ]; then
        echo "found CSR B/T"
        BROADMCOM=1
    fi
    if [ "$dev" = "0bda:c820" ]; then
        echo "found Realtek Combo B/T"
        REALTEK=1
    fi
done
위의 영역을 전부 주석 처리하거나, 사용하고자 하시는 불루투스 동글의 vid, pid 를 사용하여 위 스크립트에 추가하시면 됩니다.

vid pid는 lsusb로 확인해주세요.

변경 후에 /odm/default.prop 에 있는 feature.disable_bt 값을 false로 변경한 후에 재부팅하면 다음 부팅 할 때 블루투스 서비스가 정상 동작합니다.

이렇게 하여서 블루투스 서비스가 동작하여도 블루투스 동글을 블르투스 드라이버에서 지원하지 않을 경우 정상 동작하지 않을 수 있습니다.

이때는 블루투스 드라이버를 포팅한 후에 포함해야 합니다.

먼저 위의 작업을 수행하여서 블루투스 서비스를 동작시키신 후에 정상 동작하는지 확인 바랍니다.

leesungho
Posts: 37
Joined: Tue Sep 08, 2020 4:31 pm
languages_spoken: english / korean
ODROIDs: ODROID-C1+
Has thanked: 0
Been thanked: 0
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by leesungho »

일단 알려주신 방법대로 해보았는데, 똑같은 코드라인에서 에러가 발생합니다.
현재 상태를 첨부하겠습니다.

Image
[makebooini 내용]
--> 알려주신 대로 관련 내용을 주석으로 처리해 보았습니다.

Image
[default.prop 내용]

Image
[/dev/tty 관련 내용]
--> 원래 ttyS1이 bluetooth bluetooth 였는데 root root로 변경하였습니다.

블루투스 동글은 하드커널에서 판매하는 제품과 같은 제품을 사용하고 있습니다. (bluetooth dongle CSR 4.0)
odroid c1+에서는 드라이버 설치 작업없이 정상적으로 블루투스 되었습니다.
혹시 드라이버가 없는 문제일 수도 있어, 안드로이드에서 설치할 수 있는 위 동글에 대한 드라이버를 인터넷에서 찾아보았는데, 윈도우에서만 설치 가능한
드라이버 밖에 없는 것 같네요..

User avatar
codewalker
Posts: 1225
Joined: Mon Feb 25, 2013 11:03 am
languages_spoken: english
ODROIDs: all
Has thanked: 55 times
Been thanked: 89 times
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by codewalker »

먼저 이전 버전에 CSR B/T가 동작 하는지 확인 부탁드립니다.

https://wiki.odroid.com/odroid-c4/os_im ... 4_20210219

그리고 앱 테스트 전에 일반적인 B/T 스피커나 마우스가 동작 하는지 확인 해 보시기 바랍니다.

그리고 마지막 권한 편집은 문제가 있을 수 있습니다.

leesungho
Posts: 37
Joined: Tue Sep 08, 2020 4:31 pm
languages_spoken: english / korean
ODROIDs: ODROID-C1+
Has thanked: 0
Been thanked: 0
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by leesungho »

블루투스 동글로 동작하는 무선 마우스를 오드로이드 c4에 동글을 연결하여 사용해 보았는데 정상작동 합니다. (여기서 언급한 블루투스 동글을 무선 마우스 전용 동글입니다. 제가 사용하려는 CSR 4.0과 다른 모델입니다)
아무튼 이것저것 해도 안되어 게시판에 여러 내용을 참고하여 코드 에러나는 부분을 해결하려고 했지만 잘 안되고 있네요..

Image
[게시판을 참고하여 위와 같이 설정해 보았음]

한 가지 걸리는 점이 C1+에서 정상적으로 실행되었던 APP의 permission 정보를 settings 앱으로 들어가서 보니
bluetooth 관련 permission이 허용되어 있다는 것을 확인 했고
C4에서 동일한 앱을 설치 후 settings에서 APP의 permission 정보를 보니 bluetooth 관련 내용이 없음을 확인했습니다.
하지만 AndroidManifest.xml 안의 내용에
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
위의 두 문장이 정상적으로 정의되어 있습니다. 어떤게 문제일까요?..

User avatar
codewalker
Posts: 1225
Joined: Mon Feb 25, 2013 11:03 am
languages_spoken: english
ODROIDs: all
Has thanked: 55 times
Been thanked: 89 times
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by codewalker »

네 android 9 (PIE) 부터는 permission 을 얻어 오는 부분을 따로 구현 해야 하는 것으로 알고 있습니다.
저희쪽에서 앱 개발자가 따로 없어서 도움을 드릴 수는 없고 C1+가 KitKat 버전이였기 때문에 PIE 버전에 맞게 구현해야 정상 동작할 것 같습니다.

leesungho
Posts: 37
Joined: Tue Sep 08, 2020 4:31 pm
languages_spoken: english / korean
ODROIDs: ODROID-C1+
Has thanked: 0
Been thanked: 0
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by leesungho »

그러면 혹시 오드로이드 c4에서 지원하는 블루투스 동글 드라이버가 어떤 게 있는지 알 수 있나요?
지원하는 드라이버에 맞는 동글을 구입하려고 합니다.

leesungho
Posts: 37
Joined: Tue Sep 08, 2020 4:31 pm
languages_spoken: english / korean
ODROIDs: ODROID-C1+
Has thanked: 0
Been thanked: 0
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by leesungho »

위의 질문보다 이 질문이 더 급한데 알려주시면 감사하겠습니다.
위에서 알려주신 내용을 다시 반복해서 시도하는 도중에 /odm/default.prop 안에서 "feature.disable_bt=false" 이것으로 변경하면 된다고 하셨는데
false로 변경 후 재부팅해서 /odm/default.prop 들어가서 내용을 확인해보니 "feature.disable_bt=true"로 설정되어 있습니다.
재부팅해도 false로 유지하는 방법이 있나요?

leesungho
Posts: 37
Joined: Tue Sep 08, 2020 4:31 pm
languages_spoken: english / korean
ODROIDs: ODROID-C1+
Has thanked: 0
Been thanked: 0
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by leesungho »

바로 위의 내용 false가 유지 안되는 부분은 img 파일을 재업로드해서 변경을 하니 해결이 되었는데
거의 처음에 있는 질문(Wed Apr 28, 2021 4:44 pm)에서 언급하였던
"동글 관련 소스코드인 isEnable() 함수에서 에러가 뜨며, 에러가 뜨는 원인은 BluetoothAdapter.getDefaultAdapter() 코드의 리턴값이 null을 반환하기 때문에 앱이 강제 종료가 됩니다. (adb로 logcat 확인 결과)"
현재는 BluetoothAdapter.getDefaultAdapter() 코드 리턴값이 android.bluetooth.BluetoothAdapter@affcffb입니다. (null이 아닙니다)
그런데 바로 아래 코드인 mBluetoothAdapter.isEnabled() 코드의 리턴값이 false이네요.. false를 리턴하는 이유를 찾아본 결과 블루투스가 비활성화 되어 있을 때 리턴값이 false 라고 합니다. (참고자료 : https://mslilsunshine.tistory.com/110)
결론은 블루투스를 활성화 할 수 있는 방법이 있나요?

/odm/default.prop의 feature.disable_bt=false 상태입니다.

User avatar
codewalker
Posts: 1225
Joined: Mon Feb 25, 2013 11:03 am
languages_spoken: english
ODROIDs: all
Has thanked: 55 times
Been thanked: 89 times
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by codewalker »

/vendor/bin/makebootini 파일의 해당 부분을 삭제 후

Code: Select all

BROADMCOM=0
REALTEK=0

#Automatically change prop feature.disable_bt in default.prop
devs=$(lsusb | awk '{print $6}')

for dev in $devs;
do
    if [ "$dev" = "0a12:0001" ]; then
        echo "found CSR B/T"
        BROADMCOM=1
    fi
    if [ "$dev" = "0bda:c820" ]; then
        echo "found Realtek Combo B/T"
        REALTEK=1
    fi
done

if [ $BROADMCOM -eq 1 ] || [ $REALTEK -eq 1 ]; then
    sed -i 's/feature.disable_bt=true/feature.disable_bt=false/' /odm/default.prop
    setprop feature.disable_bt true
fi

if [ $BROADMCOM -eq 0 ] && [ $REALTEK -eq 0 ]; then
    sed -i 's/feature.disable_bt=false/feature.disable_bt=true/' /odm/default.prop
    setprop feature.disable_bt false
fi
/odm/default.prop 파일을 수정 하시면 다시 바뀌지 않습니다.
feature.disable_bt=false

leesungho
Posts: 37
Joined: Tue Sep 08, 2020 4:31 pm
languages_spoken: english / korean
ODROIDs: ODROID-C1+
Has thanked: 0
Been thanked: 0
Contact:

Re: odroid c4 블루투스 지원 안되나요?

Post by leesungho »

인터넷 여러 곳 찾아본 결과 해결을 했습니다.
app 부분에서 permission 관련 내용을 수정했더니 블루투스 통신이 정상적으로 됩니다.
신경써주셔서 감사합니다!

Post Reply

Return to “C4/HC4”

Who is online

Users browsing this forum: No registered users and 2 guests