300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 编译linux内核报错 /bin/sh: 1: flex: not foundscripts/Makefile.host:9: recipe for target ‘scripts/kconfig/

编译linux内核报错 /bin/sh: 1: flex: not foundscripts/Makefile.host:9: recipe for target ‘scripts/kconfig/

时间:2019-06-04 21:16:42

相关推荐

编译linux内核报错 /bin/sh: 1: flex: not foundscripts/Makefile.host:9: recipe for target ‘scripts/kconfig/

linux kernel 编译报错,执行make menuconfig,报错如下:

HOSTCC scripts/basic/fixdep

UPD scripts/kconfig/mconf-cfg

HOSTCC scripts/kconfig/mconf.o

HOSTCC scripts/kconfig/lxdialog/checklist.o

HOSTCC scripts/kconfig/lxdialog/inputbox.o

HOSTCC scripts/kconfig/lxdialog/menubox.o

HOSTCC scripts/kconfig/lxdialog/textbox.o

HOSTCC scripts/kconfig/lxdialog/util.o

HOSTCC scripts/kconfig/lxdialog/yesno.o

HOSTCC scripts/kconfig/confdata.o

HOSTCC scripts/kconfig/expr.o

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:616: recipe for target 'menuconfig' failed

make: *** [menuconfig] Error 2

原因:

缺少库

解决:

sudo apt-get install flex

sudo apt-get install bison

安装好后再次编译,编译的时候会弹出 Linux 图形配置界面

不作任何的配置,直接按两下ESC键退出,退出后会自动开始编译linux,但是并不顺利,提示:

再执行make,提示

HOSTCC scripts/sign-filescripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: No such file or directorycompilation terminated.scripts/Makefile.host:95: recipe for target 'scripts/sign-file' failedmake[1]: *** [scripts/sign-file] Error 1Makefile:1203: recipe for target 'scripts' failedmake: *** [scripts] Error 2

解决方案

安装依赖

Centos/RedHat/Fedora

yum install openssl-devel -y

Ubuntu/Debian

apt-get install libssl-dev

继续编译,提示:gelf.h: No such file or directory,缺少此头文件,使用如下命令

sudo apt-get install libelf-dev

继续编译了很久,出现Memory exhausted,内存用光,

网上搜了一下,可能是ulimit的设置问题,看了下自己的设置:用ulimit-a

corefilesize(blocks,-c)0

datasegsize(kbytes,-d)unlimited

schedulingpriority(-e)20

filesize(blocks,-f)unlimited

pendingsignals(-i)16382

maxlockedmemory(kbytes,-l)64

maxmemorysize(kbytes,-m)unlimited

openfiles(-n)1024

pipesize(512bytes,-p)8

POSIXmessagequeues(bytes,-q)819200

real-timepriority(-r)0

stacksize(kbytes,-s)8192

cputime(seconds,-t)unlimited

maxuserprocesses(-u)unlimited

virtualmemory(kbytes,-v)unlimited

filelocks(-x)unlimited

用指令ulimit-s16384,将stack size调整了下,重新link。

对于 Intel 的 SoC FPGA 芯片, Linux 源码中已经提供好了一个名为socfpga_defconfig 的配置文件,我们对内核的配置和修改,建议基于此配置文件进行,因此在进行配置前,需要先将该配置文件导入到默认配置文件.config中,操作方法很简单。

在终端输入 make socfpga_defconfig 命令来选择厂家提供的基本配置设置,但是出现这个错误:

*** Can't find default configuration "arch/x86/configs/socfpga_defconfig"!

***

scripts/kconfig/Makefile:94: recipe for target 'socfpga_defconfig' failed

make[1]: *** [socfpga_defconfig] Error 1

Makefile:616: recipe for target 'socfpga_defconfig' failed

make: *** [socfpga_defconfig] Error 2

这个问题常见在没有设置好架构的makefile中,当makefile没有指定架构时,会使用host机架构

解决方法:

修改顶层Makefile文件

vi Makefile

将语句

ARCH?=$(SUBARCH)

改为

ARCH?= arm

改完后再次执行sudomake socfpga_defconfig 得到如图所示结果

执行sudo make ARCH=arm menuconfig 进行内核配置, 根据需要进行配置,我这里选择不作修改,直接点两次Esc键退出

#编译,修改CROSS_COMPILE后的地址,指定编译器路径

sudo make ARCH=arm CROSS_COMPILE=/home/uno/fandy/linux/socfpga_buildroot/gcc-linaro-arm-linux-gnueabihf-4.8-.10_linux/bin/arm-linux-gnueabihf- LOCALVERSION= zImage

等待一段时间便可得到zImage

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。