使用无头 Raspberry PI 4 和 Ubuntu Server 18.04.4 LTS。我正在尝试配置源内核。我已经安装了 libncurses-dev、kernel-package 和 qt4-dev-tools。
当我在目录 /linux-5.7 中运行“make menuconfig”时,它显示:
LEX scripts/kconfig/lexer.lex.c
/bin/sh: 1: flex: not found
scripts/Makefile.host:9: recipe for target 'scripts/kconfig/lexer.lex.c' failed
make[1]: *** [scripts/kconfig/lexer.lex.c] Error 127
Makefile:588: recipe for target 'menuconfig' failed
make: *** [menuconfig] Error 2
不知道该做什么,到目前为止我读过的所有资料都没有帮助。我的目标是开始编写设备驱动程序,为此我需要在磁盘上配置和构建内核源代码树。
答案1
在 Ubuntu 中构建你自己的内核指南指出您必须安装以下程序:
sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf
能够成功地从源代码编译内核。
答案2
flex
未安装。通过以下方式安装
sudo apt install flex
答案3
我不确定这是否有用,但在制作内核模块时,如果正在使用的 makefile 使用关键字 SUBDIRS=(内核 5.3 版后已取消),则可能会收到同样的错误。SUBDIRS= 的实例需要替换为 M=
再次重申,这是为了构建模块和驱动程序,但如果构建内核不需要根据所使用的工具而提供类似的参考,我会感到惊讶。