我的问题是关于 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 了:
insmod /lib/modules/4.14.14-licheepi-zero/kernel/drivers/staging/rtl8723bs/r8723bs.ko
ifconfig wlan0 up
/etc/wpa_supplicant.conf
添加您的Wi-Fi SSID和PSKwpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf
udhcpc -i wlan0
现在连接已建立,我们可以
ping
等等。
仍然存在问题 - 如何在 LCD 和 UART 上启用全功能终端。
非常感谢! 带着敬意, 马克西姆
最好的解决方案是使用Buildroot。 请检查主题开始处的更新以了解详细信息。
我最近成功编译了 Lichee Pi Zero 板(基于 Allwinner/Sunxi V3s SoC)的 5.20 内核,USB 键盘工作正常。
说明与非官方网站上发布的说明基本相同https://licheepizero.us/build-kernel-for-licheepi-zero 但由于我是新手,我需要额外的时间来发现一些东西,这是我的说明:假设您拥有所有用于编译已安装在主机中的内核的库。
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
添加到我的路径
git clone https://github.com/Lichee-Pi/linux.git -b zero-5.2.y
cd linux/
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
我使用了从非官方网站下载并更换了内核为 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