You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Buildroot 2023.05下Beaglebone Black Rev C显控配置及自启求助

BBB HDMI控制台+自动启动Python应用解决指南

1. 先修复uEnv.txt的语法错误

你的uenvcmd里的boot命令存在明显笔误,${ is fdtaddr}是无效写法,改成${fdtaddr}即可,修正后的完整行:

uenvcmd=run set_mmc1; run set_bootargs;run loadimage;run loadfdt;printenv bootargs;bootz ${loadaddr} - ${fdtaddr}

这个错误会导致U-Boot无法正确加载设备树,大概率是显示器无输出的核心原因之一。

2. 让控制台输出到HDMI终端

当前bootargs仅指定了串口控制台(ttyS0),HDMI对应的tty1终端不会有输出。给set_bootargs添加console=tty1,修改后:

set_bootargs=setenv bootargs console=${console} console=tty1 root=/dev/${bootpartition} rw rootfstype=ext4 rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24

修改后系统会同时将控制台输出到串口和HDMI显示器。

3. 检查Buildroot配置是否缺失必要组件

进入Buildroot配置界面(执行make menuconfig),确保以下选项已启用:

  • 图形/HDMI驱动支持:
    进入Target packages -> Graphic libraries and applications,勾选Framebuffer devices support,确保BBB的mxcfb驱动被包含。
  • 终端登录支持:
    进入System configuration -> Run a getty after boot,将TTY port设置为tty1,波特率留空(图形终端无需配置波特率)。
  • 键盘输入支持:
    进入Kernel configuration -> Device Drivers -> Input device support,勾选Generic input layer (needed for keyboard, mouse, ...);再进入HID support勾选USB HID support。可额外勾选evtest(在Target packages -> Hardware handling中),用于测试键盘是否被识别。
  • Python环境支持:
    进入Target packages -> Interpreter languages and scripting,勾选python3,以及你的应用依赖的Python模块(比如python3-pip)。

配置完成后重新编译镜像:make clean && make,再将新镜像烧写回SD卡。

4. 验证HDMI终端与键盘功能

重启BBB后,HDMI显示器应显示控制台登录界面。若键盘无响应,通过串口登录系统后执行以下命令排查:

  • 查看输入设备:ls /dev/input/,应能看到eventX(X为数字)格式的设备文件。
  • 测试键盘输入:evtest /dev/input/eventX,按下键盘按键时应能看到对应的输入事件输出。

5. 设置自定义Python应用自动启动

根据Buildroot使用的init系统选择对应方法:

方法1:使用systemd(若Buildroot配置了systemd)

  1. 在Buildroot的board/beagleboneblack/目录下创建myapp.service文件,内容如下:
[Unit]
Description=自定义Python应用
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /你的应用绝对路径/app.py
Restart=always
User=root

[Install]
WantedBy=multi-user.target
  1. 在Buildroot目录下的local.mk中添加以下内容,将服务文件安装到系统:
$(TARGET_DIR)/etc/systemd/system/myapp.service: board/beagleboneblack/myapp.service
	$(INSTALL) -D -m 644 $< $@

TARGET_FINALIZE_HOOKS += INSTALL_MYAPP_SERVICE
  1. 重新编译镜像并烧写,启动系统后执行以下命令启用并启动服务:
systemctl enable myapp.service
systemctl start myapp.service

此后系统开机时会自动启动该应用。

方法2:使用sysvinit(Buildroot默认init系统)

直接编辑系统中的/etc/inittab文件,在末尾添加一行:

tty1::respawn:/usr/bin/python3 /你的应用绝对路径/app.py
  • 若希望应用退出后自动重启,保留respawn;若仅需运行一次,替换为once。
    保存文件后重启系统即可生效。

方法3:临时测试用(不推荐长期使用)

在/root/.profile文件末尾添加:

/usr/bin/python3 /你的应用绝对路径/app.py &

该方法会在root用户登录后启动应用,适合临时测试场景。


内容的提问来源于stack exchange,提问作者atf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 07:47:41