我有一个功能齐全的(就这部分而言)嵌入式系统,它基于一个相当古老的、供应商修改过的 Linux v3.18.29。
为了解决其他问题,我正在将所有内容升级到当前的 u-boot/kernel/Buildroot。
一切似乎都正常,但我遇到了热插拔设备的问题。
我记得在旧系统上设置输入处理时遇到了一些问题,但我记不清具体是什么问题了(几年后)。
我有完整的源代码,并且可以成功重建新旧系统,但我无法发现相关的差异(_defconfig 发生了足够大的改变,简单的差异不会给出可理解的结果)。
旧系统完全依赖于 devtmpfs,我尝试过它,并且在新系统上也尝试过 mdev,但显然 mdev 从未被调用过(至少它没有记录在 /dev/mdev.log 中)
我有 UEVENT_HELPER=y、UEVENT_HELPER_PATH=/sbin/hotplug、EVENTFD=y、HAVE_PERF_EVENTS=y、INPUT=y、INPUT_EVDEV=y。
其主要用途是将“键盘模拟”中的 USB 条码扫描器连接到系统。
特别是我需要创建字符设备 /dev/input/event0
有人可以建议我应该检查/启用/做什么吗?
更新:一些细节:
- 硬件基于微型 SoM“Vocore2”,具有以下特点:
- mips32 CPU (MT7628)
- 128M内存
- 集成 WiFi b/g/n
- 100baseT 以太网 MAC
- 集成 5 端口以太网
- 16M SPI NOR
- SD卡(目前8G)
- USB2 主控
- 3 x 串行(3 线)
- 软件是:
- U-Boot(来自 git 的 mips-next)
- Linux v5.5(只需一个补丁即可使 SD 完全正常工作)
- Buldroot 2020.02(以及一些自定义软件包)
- 应用程序(用python3编写)
- Busybox 提供了大多数基本的 Unix 实用程序,特别是:
- 没有udevd,替代的是Busybox mdev