Beaglebone Black(UART 1-5)에서 모든 UART를 활성화하려고 합니다. 저는 데비안 9.3을 실행하고 있으며 BeagleBone Black rev C를 사용하고 있습니다. uEnv.txt 파일을 수정하여 모든 UART를 활성화해 보았습니다(이 파일을 루트 디렉터리와 /boot 디렉터리 모두에 배치했는데 어느 쪽이든 동일한 결과가 나타납니다).
이것은 내 uEnv.txt 파일입니다.
uname_r=4.9.82-ti-r102
enable_uboot_overlays=1
uboot_overlay_addr0=/lib/firmware/BB-UART1-00A0.dtbo
uboot_overlay_addr1=/lib/firmware/BB-UART2-00A0.dtbo
uboot_overlay_addr2=/lib/firmware/BB-UART4-00A0.dtbo
uboot_overlay_addr3=/lib/firmware/BB-UART5-00A0.dtbo
uboot_overlay_addr4=/lib/firmware/BB-UART3-00A0.dtbo
cmdline=coherent_pool=1M net.ifnames=0 quiet cape_universal=enable
cape_disable=bone_capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMINN
cape_enable=bone_capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART3,BB-UART4,BB-UART5
나는 여러 BeagleBone Black에 이 파일을 사용해 보았습니다. 그 중 두 개에서는 파일이 작동하고 5개의 UART 장치가 모두 활성화됩니다(모든 /dev/ttyO1-5가 표시됨). 그러나 일부 다른 BeagleBone Black에서는 UART 1-4만 활성화됩니다(/dev/ttyO1-O4를 통해 표시되고 사용 가능하지만 /dev/ttyO5는 사용할 수 없음).
내 실험에서 OS 이미지는 다른 차이를 만들지 않았습니다. 나는 SD 카드에서 새로운 debian 9.3을 사용하고 있으며 유일한 수정 사항은 uEnv.txt입니다. 실제로 실행 중인 BeagleBone에서 동일한 SD 카드를 꺼내어 5개의 UART를 모두 활성화하지 않는 카드에 넣었지만 동일한 결과로 부팅하면 UART 5가 활성화되지 않았습니다. 나는 이것이 운영 체제가 아닌 내가 사용하고 있는 매우 특정한 BeagleBone black에 특정한 것으로 보이기 때문에 이것이 부트로더 문제일 수 있다고 생각합니다.
이 파일이 하나의 비글본에서는 작동하지만 다른 비글본에서는 작동하지 않는 이유를 아는 사람이 있습니까? 안타깝게도 제가 개발 중인 애플리케이션으로 인해 작동하는 비글본만으로는 이 문제를 해결할 수 없습니다. 신뢰할 수 있는 솔루션을 찾아야 합니다.
이전에 말했듯이 이것이 부트로더 문제일 수도 있다고 생각하지만 확실하지 않습니다. 제가 고려하고 있는 다음 단계는 부트로더를 업데이트하거나 다른 데비안 버전으로 이동하는 것입니다.
도움을 주셔서 미리 감사드립니다!
편집: 추가 조사를 한 후에는 이것이 HDMI 문제일 수 있다고 생각합니다. uEnv.txt 파일에서 HDMI를 비활성화하려고 시도했지만 /sys/devices/platform/bone_capemgr/slots를 확인할 때 HDMI를 비활성화하는 줄이 없는 것 같습니다. 제가 올바르게 기억한다면 UART 5가 비활성화되지 않은 경우 HDMI 인터페이스에 연결되어 있기 때문에 이는 의미가 있습니다. 그러나 이 문제를 해결하는 방법을 잘 모르겠습니다.