很长一段时间以来,我一直试图在我那台无用的廉价平板电脑上安装 Debian 发行版。阅读了在 ARM 架构上构建 Linux 内核的详细信息后手动构建指南我发现主线Linux已经支持Allwinner A23 SoC主线内核指南。除此之外,还可以使用主线 U-Boot 构建内核主线 U-Boot 指南通过使用相应架构的引导加载程序二进制文件和特定的 boot.scr 脚本。
执行必要的配置后,我获得了一张可启动的 SD 卡,其中包含以下内容:
分区 1:
启动脚本- 用于将内核映像和设备树 blob 加载到内存中的脚本
z图像- 主线 Linux 内核映像
[设备树].dtb- 特定于我的平板电脑的设备树 blob
分区 2:
根文件系统- Debian Stretch 的根文件系统
拥有一个可用的 USB 键盘对于我的平板电脑来说至关重要,因为它只有一个 micro USB OTG 端口,我打算将其用于键盘/鼠标/充电,因此在编译内核时,使用了特定于 USB 的配置和完整的 HID 支持:
CONFIG_INPUT_MOUSE=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
CONFIG_USB_OTG=y
CONFIG_USB_HID=y
CONFIG_USB=y
CONFIG_USB_MOUSE=y
CONFIG_USB_OTG_UTILS=y
还有更多我不确定的配置,但以防万一。
在多次尝试各种内核配置后,我不断获得相同的结果,当通过 OTG 电缆或 USB 集线器连接时,USB 键盘在 U-Boot 中完美工作,但在内核启动时无法工作 - 我无法通过tty1 提示要求输入我的凭据,因为此时平板电脑根本没有为键盘供电。
最后我的问题是——编译内核时是否遗漏了任何关键的内核配置?键盘不工作真的是内核问题吗?如果我只有一个 micro USB 端口,是否有任何调试技术?