我无法启用UART。关于如何从更新uEnv.txt文件到更新内核启用和解决问题,我已经经历了许多不同的方向。我得出结论,使用与指令不同的内核可能是一个问题,但我不确定? 我不太了解Beaglebone,我还在学习。每当我尝试使用Python测试UART并键入以下内容时:
导入Adafruit_BBIO.UART为UART
UART.setup( “UART1”)
我收到错误:文件“stdin”,第1行,在模块
中RuntimeError:无法导出UART通道。
我也开始担心我根本就没有capemgr。当我运行命令时:
ls sys / devices
我没有列出capemgr。
我正在使用最新的Debian Image:Jessie Debian 8.3(2016-01-24)
我正在运行的内核版本是4.1.17-ti-rt-r46。
我的DTC版本是1.4.1-g1e75ebc9
我真的很感激任何帮助。我几天来一直在努力解决这个问题。谢谢!
答案 0 :(得分:6)
显然,改变文件的权力让我们保持警惕。
TamusJRoyce在这里发表评论:http://www.thing-printer.com/cape-manager-is-back-baby/帮助了我:
/media/BEAGLEBONE/env.txt and /boot/uBoot/uEnv.txt has moved to /etc/default/capemgr (file which may not exist). It also has a new syntax. Add "CAPE=BB-SPI-01,BB-UART1,BB-UART2,BB-UART4" to get main ports working. Then reboot.
在Beaglebone Black Running Debian 8上启用UART1和UART2
#CAPE=
更改为:CAPE=BB-UART1,BB-UART2
答案 1 :(得分:2)
您可以更改/boot/uEnv.txt 首先启用UARTS:
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
答案 2 :(得分:1)
您需要检查您使用的UART引脚是否用于其他目的。为此,您需要先查看引脚图。如果存在冲突,您必须放弃EMMc或hdmi之类的东西,并且需要使这些引脚成为可能。首先禁用uEnv.txt中的冲突配置。然后您可以按如下方式激活引脚。
#! /bin/sh cd /sys/devices/platform/bone_capemgr File=slots if grep -q "Override Board Name,00A0,Override Manuf,univ-emmc" "$File"; then cd echo "\n Pin configuration available" echo "\n UART 4 configuration p9.11 and p9.13" sudo config-pin P9.11 uart sudo config-pin -q P9.11 sudo config-pin P9.13 uart sudo config-pin -q P9.13 echo "\n UART 1 configuration p9.26 and p9.24" sudo config-pin P9.24 uart sudo config-pin -q P9.24 sudo config-pin P9.26 uart sudo config-pin -q P9.26 echo "\n UART 5 configuration p8.38 and p8.37" sudo config-pin P8.38 uart sudo config-pin -q P8.38 sudo config-pin P8.37 uart sudo config-pin -q P8.37 echo "\n UART configuration end" else echo "Oops!!configuration is not available" echo "Please check uEnv.txt file and only disable HDMI" fi
答案 3 :(得分:0)
我已经回答了这个HERE,但让我重新发布:
我可以使用这种方法为 Debian 10 做担保:
我能够在启动时自动启用所有 4.5 UART。与 Debian 9 及更早版本不同,uEnv.txt
出现在 /boot/
中。
备份这个文件。
使用 sudo
权限编辑此文件:
$ sudo nano uEnv.txt
启用所有 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