内核 5.2+ 的 Lichee Pi Zero 上的键盘问题

问题描述 投票:0回答:2

我的问题是关于 Lichee Pi Zero 板(基于 Allwinner/Sunxi V3s SoC)。

最初我使用预构建的Linux映像(内核4.10.02),它没有内置Wi-Fi支持(针对Realtek 8327BS芯片),所以我从here下载了最新的内核版本并使用默认值构建它设置。

LCD 没问题,Wi-fi 看起来也不错(LED 闪烁),但是 我无法再使用键盘 - 当我将某些东西连接到 USB 时,操作系统没有任何反应(没有消息,也没有键盘输入)。

硬件没问题,并且可以很好地与旧的 Linux 映像配合使用。 我还尝试了来自 kernel.org 的最新内核,但结果相同。

请帮忙理解原因。我认为设置不好,但 HID 支持已启用。

更新1. 我通过UART建立连接。正如我所看到的,在启动过程中会检测到一些 USB 功能:

我还可以使用

insmod
加载一些驱动程序: 不幸的是,Linux 仍然无法识别任何 USB 设备。我已连接鼠标、键盘、集线器、大容量存储,但操作系统没有任何反应。设备似乎没有通电(鼠标没有发光)。

更新2。 目前我发现的最好方法是使用 buildroot-licheepi-zero。 使用起来非常简单:

make licheepi_zero_defconfig
make menuconfig (optional)
make

经过几个小时的等待我得到了sdcard.img。它包含所有必需的文件(zImage、RootFS、u-boot.bin 等),并且可以使用 linux

dd
etcher 放置到 SD。 Linux 启动成功,但您只能通过 UART 使用终端,因为没有 LCD 输出。 您可以让 LCD 本身工作:

make uboot-menuconfig

make

但是开机后LCD上仍然没有用户登录提示。所以我需要登录并通过 UART 输入命令。 如果有的话请分享建议。

更新3. 以下更改在 LCD 上启用登录提示(并通过 UART 禁用它):

make menuconfig

现在我们可以使用 Wi-Fi 了:

  1. insmod /lib/modules/4.14.14-licheepi-zero/kernel/drivers/staging/rtl8723bs/r8723bs.ko
  2. ifconfig wlan0 up
  3. 编辑文件
    /etc/wpa_supplicant.conf
    添加您的Wi-Fi SSID和PSK
  4. wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf
  5. udhcpc -i wlan0

现在连接已建立,我们可以

ping
等等。

仍然存在问题 - 如何在 LCD 和 UART 上启用全功能终端。

非常感谢! 带着敬意, 马克西姆

linux linux-kernel linux-device-driver embedded-linux cortex-a
2个回答
0
投票

最好的解决方案是使用Buildroot。 请检查主题开始处的更新以了解详细信息。


0
投票

我最近成功编译了 Lichee Pi Zero 板(基于 Allwinner/Sunxi V3s SoC)的 5.20 内核,USB 键盘工作正常。

说明与非官方网站上发布的说明基本相同https://licheepizero.us/build-kernel-for-licheepi-zero 但由于我是新手,我需要额外的时间来发现一些东西,这是我的说明:假设您拥有所有用于编译已安装在主机中的内核的库。

  1. 我使用过Linaro gcc工具链7.5.0-2019.12:

wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz

tar xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar

mv gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf /opt/

然后我将

/opt/ gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
添加到我的路径

  1. 下载 Linux 内核分支 5.20:

git clone https://github.com/Lichee-Pi/linux.git -b zero-5.2.y

cd linux/

  1. 为 Lichee Pi 零板编译 Linux 内核 5.20:

make ARCH=arm licheepi_zero_defconfig

make ARCH=arm menuconfig
#可选

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

#这里您会从 dtc.lexer.o 收到错误信息,要更正它,请打开此文件:

nano scripts/dtc/dtc-lexer.lex.c
并搜索“YYLTYPE yylloc”(^W) 并将其替换为“extern YYLTYPE yylloc”

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
#现在应该复制到最后

#创建内核模块

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules_install

  1. 将内核安装到 microSD 卡中

我使用了从非官方网站下载并更换了内核为 4.10 的可用 SD 卡。它有 2 个分区。我已经替换了以下文件

在启动分区:zImage和dtb文件(此文件将使键盘工作)

sudo cp arch/arm/boot/zImage your-microSD-boot-partition-path

sudo cp arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb your-microSD-boot-partition-path

在文件系统分区:所有内核模块

sudo cp -r out/* your-microSD-system-partition-path

  1. 将 microSD 插入主板并打开电源。完成。
© www.soinside.com 2019 - 2024. All rights reserved.