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)
- 在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
- 在Buildroot目录下的
local.mk中添加以下内容,将服务文件安装到系统:
$(TARGET_DIR)/etc/systemd/system/myapp.service: board/beagleboneblack/myapp.service $(INSTALL) -D -m 644 $< $@ TARGET_FINALIZE_HOOKS += INSTALL_MYAPP_SERVICE
- 重新编译镜像并烧写,启动系统后执行以下命令启用并启动服务:
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
相关产品推荐
相关产品推荐

