Debian 在Beaglebone Black上启用UART

Debian 在Beaglebone Black上启用UART,debian,beagleboneblack,uart,beagleboard,microprocessors,Debian,Beagleboneblack,Uart,Beagleboard,Microprocessors,我无法启用UART。关于如何启用和排除从更新uEnv.txt文件到更新内核的故障,我已经介绍了许多不同的方向。我得出结论,使用不同于指令的内核可能会有问题,但我不确定? 我对Beaglebone不太了解,我还在学习。每当我尝试使用Python并键入以下内容来测试UART时: 将Adafruit_BBIO.UART作为UART导入 UART.设置(“UART1”) 我得到了错误:模块中第1行的文件“stdin” 运行时错误:无法导出UART通道 我也开始担心我根本没有capemgr。当我运行命令时

我无法启用UART。关于如何启用和排除从更新uEnv.txt文件到更新内核的故障,我已经介绍了许多不同的方向。我得出结论,使用不同于指令的内核可能会有问题,但我不确定? 我对Beaglebone不太了解,我还在学习。每当我尝试使用Python并键入以下内容来测试UART时:

将Adafruit_BBIO.UART作为UART导入

UART.设置(“UART1”)

我得到了错误:模块中第1行的文件“stdin”

运行时错误:无法导出UART通道

我也开始担心我根本没有capemgr。当我运行命令时:

ls系统/设备

我没有列出capemgr

我正在使用最新的Debian图像:Jessie Debian 8.3(2016-01-24)

我运行的内核版本是4.1.17-ti-rt-r46

我的DTC版本是1.4.1-g1e75ebc9


我真的很感激任何帮助。我已经为这个问题绞尽脑汁好几天了。谢谢大家!

很明显,这些力量可能会改变文件,让我们保持警觉

TamusJRoyce在这里留下了一条评论:这帮助了我:

/media/BEAGLEBONE/env.txt和/boot/uBoot/uEnv.txt已移动到/etc/default/capemgr(可能不存在的文件)。它还有一个新的语法。添加“CAPE=BB-SPI-01、BB-UART1、BB-UART2、BB-UART4”以使主端口正常工作。然后重新启动。

在运行Debian 8的Beaglebone Black上启用UART1和UART2

  • 步骤1:sudo nano/etc/default/capemgr
  • 步骤2:将
    #CAPE=
    更改为:
    CAPE=BB-UART1、BB-UART2
  • 步骤3:重新启动
  • 步骤4:ls/dev/ttyO*
  • 结果:/dev/ttyO0/dev/ttyO1/dev/ttyO2

您需要检查您使用的UART引脚是否用于其他目的。为此,您需要首先查看pin图。如果有冲突,你必须放弃像EMMc或hdmi这样的东西,你需要使这些引脚成为可能。首先禁用uEnv.txt中的冲突配置。然后,您可以按如下方式激活管脚


您可以更改/boot/uEnv.txt 首先,启用UART:

cape_disable=bone_capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN
cape_enable=bone_capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-UART5
然后别忘了用适当的dtbo配置pinmux:

###Overide capes with eeprom
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
我已经回答了这个问题,但让我重新发布:

我可以使用以下方法证明Debian 10:

我能够在启动时自动启用所有4.5 UART。与Debian 9和旧版本不同,
uEnv.txt
出现在
/boot/

  • 备份这个文件

  • 使用
    sudo
    权限编辑此文件:

  • 启用所有4.5 UART的最终版本应如下所示:

    #Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0
    
    uname_r=4.19.94-ti-r42
    #uuid=
    #dtb=
    
    ###U-Boot Overlays###
    ###Documentation: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
    ###Master Enable
    enable_uboot_overlays=1
    # UART 1
    uboot_overlay_addr0=/lib/firmware/BB-UART1-00A0.dtbo
    # UART 2
    uboot_overlay_addr1=/lib/firmware/BB-UART2-00A0.dtbo
    # UART 4
    uboot_overlay_addr2=/lib/firmware/BB-UART4-00A0.dtbo
    # UART 5
    uboot_overlay_addr3=/lib/firmware/BB-UART5-00A0.dtbo
    # UART 3 (only TX). Note that in "uboot_overlay_addrX", the X need not be = UART id
    uboot_overlay_addr4=/lib/firmware/BB-UART3-00A0.dtbo
    
    ###
    ###Overide capes with eeprom
    #uboot_overlay_addr0=/lib/firmware/<file0>.dtbo
    #uboot_overlay_addr1=/lib/firmware/<file1>.dtbo
    #uboot_overlay_addr2=/lib/firmware/<file2>.dtbo
    #uboot_overlay_addr3=/lib/firmware/<file3>.dtbo
    ###
    ###Additional custom capes
    #uboot_overlay_addr4=/lib/firmware/<file4>.dtbo
    #uboot_overlay_addr5=/lib/firmware/<file5>.dtbo
    #uboot_overlay_addr6=/lib/firmware/<file6>.dtbo
    #uboot_overlay_addr7=/lib/firmware/<file7>.dtbo
    ###
    ###Custom Cape
    #dtb_overlay=/lib/firmware/<file8>.dtbo
    ###
    ###Disable auto loading of virtual capes (emmc/video/wireless/adc)
    #disable_uboot_overlay_emmc=1
    #disable_uboot_overlay_video=1
    #disable_uboot_overlay_audio=1
    #disable_uboot_overlay_wireless=1
    #disable_uboot_overlay_adc=1
    ###
    ###PRUSS OPTIONS
    ###pru_rproc (4.14.x-ti kernel)
    #uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo
    ###pru_rproc (4.19.x-ti kernel)
    uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo
    ###pru_uio (4.14.x-ti, 4.19.x-ti & mainline/bone kernel)
    #uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
    ###
    ###Cape Universal Enable
    enable_uboot_cape_universal=1
    ###
    ###Debug: disable uboot autoload of Cape
    #disable_uboot_overlay_addr0=1
    #disable_uboot_overlay_addr1=1
    #disable_uboot_overlay_addr2=1
    #disable_uboot_overlay_addr3=1
    ###
    ###U-Boot fdt tweaks... (60000 = 384KB)
    #uboot_fdt_buffer=0x60000
    ###U-Boot Overlays###
    
    cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet
    
    #In the event of edid real failures, uncomment this next line:
    #cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet video=HDMI-A-1:1024x768@60e
    
    ##enable Generic eMMC Flasher:
    ##make sure, these tools are installed: dosfstools rsync
    #cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
    
    #cape_enable=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-UART5
    
    
    #文档:http://elinux.org/Beagleboard:U-引导分区布局2.0
    uname_r=4.19.94-ti-r42
    #uuid=
    #dtb=
    ###U-Boot覆盖层###
    ###文件:http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-靴盖
    ###主使能
    启用\u uboot\u覆盖=1
    #UART 1
    uboot\u overlay\u addr0=/lib/firmware/BB-UART1-00A0.dtbo
    #UART 2
    uboot\u overlay\u addr1=/lib/firmware/BB-UART2-00A0.dtbo
    #UART 4
    uboot\u overlay\u addr2=/lib/firmware/BB-UART4-00A0.dtbo
    #UART 5
    uboot\u overlay\u addr3=/lib/firmware/BB-UART5-00A0.dtbo
    #UART 3(仅发送)。注意,在“uboot\u overlay\u addrX”中,X不必是=UART id
    uboot\u overlay\u addr4=/lib/firmware/BB-UART3-00A0.dtbo
    ###
    ###用eeprom覆盖CAPE
    #uboot\u overlay\u addr0=/lib/firmware/.dtbo
    #uboot\u overlay\u addr1=/lib/firmware/.dtbo
    #uboot\u overlay\u addr2=/lib/firmware/.dtbo
    #uboot\u overlay\u addr3=/lib/firmware/.dtbo
    ###
    ###额外定制披风
    #uboot\u overlay\u addr4=/lib/firmware/.dtbo
    #uboot\u overlay\u addr5=/lib/firmware/.dtbo
    #uboot\u overlay\u addr6=/lib/firmware/.dtbo
    #uboot\u overlay\u addr7=/lib/firmware/.dtbo
    ###
    ###定制斗篷
    #dtb_overlay=/lib/firmware/.dtbo
    ###
    ###禁用虚拟CAPE的自动加载(emmc/视频/无线/adc)
    #禁用\u uboot\u overlay\u emmc=1
    #禁用\u uboot\u overlay\u video=1
    #禁用\u uboot\u overlay\u audio=1
    #禁用\u uboot\u overlay\u wireless=1
    #禁用\u uboot\u overlay\u adc=1
    ###
    ###普鲁士期权
    ###pru_rproc(4.14.x-ti内核)
    #uboot\u overlay\u pru=/lib/firmware/AM335X-pru-RPROC-4-14-TI-00A0.dtbo
    ###pru_rproc(4.19.x-ti内核)
    uboot\u overlay\u pru=/lib/firmware/AM335X-pru-RPROC-4-19-TI-00A0.dtbo
    ###pru_uio(4.14.x-ti、4.19.x-ti和主线/骨内核)
    #uboot\u overlay\u pru=/lib/firmware/AM335X-pru-UIO-00A0.dtbo
    ###
    ###Cape Universal Enable
    启用_uboot_cape_universal=1
    ###
    ###调试:禁用Cape的uboot自动加载
    #禁用\u uboot\u overlay\u addr0=1
    #禁用\u uboot\u overlay\u addr1=1
    #禁用\u uboot\u overlay\u addr2=1
    #禁用\u uboot\u overlay\u addr3=1
    ###
    ###U-Boot fdt调整。。。(60000=384KB)
    #uboot\u fdt\u缓冲区=0x60000
    ###U-Boot覆盖层###
    cmdline=CONNECTURE\U pool=1M net.IFNAME=0 lpj=1990656 rng\U core.default\U quality=100安静
    #如果edid real失败,请取消注释下一行:
    #cmdline=CONNECTURE\U pool=1M net.IFNAME=0 lpj=1990656 rng\U core.default\U quality=100安静视频=HDMI-A-1:1024x768@60e
    ##启用通用eMMC闪光器:
    ##确保已安装以下工具:dosftools rsync
    #cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
    #cape\U enable=capemgr.enable\U partno=BB-UART1、BB-UART2、BB-UART4、BB-UART5
    
  • 保存并重新启动。享受吧
    在他们的github repo上打开一个问题,你会有更好的运气:因为你的董事会运行的是Linux操作系统,所以你不能直接访问任何UART。检查系统日志,查看串行端口是否已正确探测和安装(例如,
    dmesg | grep serial
    )。检查/dev目录中的ttyS*或ttyO*设备,即串行终端。[检查此链接这应该是公认的答案。我花了几个小时试图让我的4.1.17 UART正常工作。不知道为什么我能找到的文档中没有一个提到capemgr的新文件位置。只是一个注释。我在逗号后有一个空格分隔UART端口,这也导致它失败。没有空格!为什么它们会四处移动
    uEnv.txt
    $ sudo nano uEnv.txt
    
    #Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0
    
    uname_r=4.19.94-ti-r42
    #uuid=
    #dtb=
    
    ###U-Boot Overlays###
    ###Documentation: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
    ###Master Enable
    enable_uboot_overlays=1
    # UART 1
    uboot_overlay_addr0=/lib/firmware/BB-UART1-00A0.dtbo
    # UART 2
    uboot_overlay_addr1=/lib/firmware/BB-UART2-00A0.dtbo
    # UART 4
    uboot_overlay_addr2=/lib/firmware/BB-UART4-00A0.dtbo
    # UART 5
    uboot_overlay_addr3=/lib/firmware/BB-UART5-00A0.dtbo
    # UART 3 (only TX). Note that in "uboot_overlay_addrX", the X need not be = UART id
    uboot_overlay_addr4=/lib/firmware/BB-UART3-00A0.dtbo
    
    ###
    ###Overide capes with eeprom
    #uboot_overlay_addr0=/lib/firmware/<file0>.dtbo
    #uboot_overlay_addr1=/lib/firmware/<file1>.dtbo
    #uboot_overlay_addr2=/lib/firmware/<file2>.dtbo
    #uboot_overlay_addr3=/lib/firmware/<file3>.dtbo
    ###
    ###Additional custom capes
    #uboot_overlay_addr4=/lib/firmware/<file4>.dtbo
    #uboot_overlay_addr5=/lib/firmware/<file5>.dtbo
    #uboot_overlay_addr6=/lib/firmware/<file6>.dtbo
    #uboot_overlay_addr7=/lib/firmware/<file7>.dtbo
    ###
    ###Custom Cape
    #dtb_overlay=/lib/firmware/<file8>.dtbo
    ###
    ###Disable auto loading of virtual capes (emmc/video/wireless/adc)
    #disable_uboot_overlay_emmc=1
    #disable_uboot_overlay_video=1
    #disable_uboot_overlay_audio=1
    #disable_uboot_overlay_wireless=1
    #disable_uboot_overlay_adc=1
    ###
    ###PRUSS OPTIONS
    ###pru_rproc (4.14.x-ti kernel)
    #uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo
    ###pru_rproc (4.19.x-ti kernel)
    uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo
    ###pru_uio (4.14.x-ti, 4.19.x-ti & mainline/bone kernel)
    #uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
    ###
    ###Cape Universal Enable
    enable_uboot_cape_universal=1
    ###
    ###Debug: disable uboot autoload of Cape
    #disable_uboot_overlay_addr0=1
    #disable_uboot_overlay_addr1=1
    #disable_uboot_overlay_addr2=1
    #disable_uboot_overlay_addr3=1
    ###
    ###U-Boot fdt tweaks... (60000 = 384KB)
    #uboot_fdt_buffer=0x60000
    ###U-Boot Overlays###
    
    cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet
    
    #In the event of edid real failures, uncomment this next line:
    #cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet video=HDMI-A-1:1024x768@60e
    
    ##enable Generic eMMC Flasher:
    ##make sure, these tools are installed: dosfstools rsync
    #cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
    
    #cape_enable=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-UART5