编译Lichee(FridenlyARM NanoPi-M1)碰到的问题及解决办法
1. 提示libz.so.1找不到
需要在ubuntu上安装下面两个包:
sudo apt-get install lib32ncurses5 ia32-libs
2. 提示xt_hl.o没有make规则
make[2]: *** No rule to make target `net/netfilter/xt_hl.o', needed by `net/netfilter/built-in.o'. Stop.
make[1]: *** [net/netfilter] Error 2
make: *** [net] Error 2
ERROR: build kernel Failed
为什么会出现这样的问题呢?因为我是使用VMware的共享文件夹来解压代码的,而代码是在Windows下解压的,这样做的话就会把xt_HL.c当成与xt_hl.c一样的文件,在同一文件夹下只能出现一个,这时解压出来的文件其实与Linux下是不同的!!!!
解决办法是,在Linux下解压代码,让文件名的大小写敏感!
3. 无法创建符号链接'output/lib/modules/3.4.39/source':操作不支持
WARNING: could not find drivers/media/video/sunxi-vfe/lib/.libisp.cmd for drivers/media/video/sunxi-vfe/lib/libisp
WARNING: modpost: Found 4 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
'arch/arm/boot/Image' -> 'output/bImage'
'arch/arm/boot/uImage' -> 'output/uImage'
'arch/arm/boot/zImage' -> 'output/zImage'
ln: failed to create symbolic link 'output/lib/modules/3.4.39/source': Operation not supported
make: *** [_modinst_] Error 1
ERROR: build kernel Failed
这个问题的原因和上面一样,都是因为在Windows下解压的文件大小写文件同名覆盖造成的。
4. Android无法打包文件
packing for android
normal
/home/merlin/projects/nano_pi_m1/lichee/tools/pack/pctools/linux/eDragonEx/
/home/merlin/projects/nano_pi_m1/lichee/tools/pack/out
Begin Parse sys_partion.fex
Add partion bootloader.fex BOOTLOADER_FEX00
Add partion very bootloader.fex BOOTLOADER_FEX00
FilePath: bootloader.fex
FileLength=5b4400Add partion env.fex ENV_FEX000000000
Add partion very env.fex ENV_FEX000000000
FilePath: env.fex
FileLength=20000Add partion boot.fex BOOT_FEX00000000
Add partion very boot.fex BOOT_FEX00000000
FilePath: boot.fex
CreateFile failed 2
Add partion system.fex SYSTEM_FEX000000
Add partion very system.fex SYSTEM_FEX000000
FilePath: system.fex
CreateFile failed 2
Add partion recovery.fex RECOVERY_FEX0000
Add partion very recovery.fex RECOVERY_FEX0000
FilePath: recovery.fex
CreateFile failed 2
Add partion sysrecovery.fex SYSRECOVERY_FEX0
Add partion diskfs.fex DISKFS_FEX000000
sys_config.fex Len: 0x504c
config.fex Len: 0x8448
split_xxxx.fex Len: 0x200
sys_partition.fex Len: 0x117a
boot0_nand.fex Len: 0x8000
boot0_sdcard.fex Len: 0x8000
u-boot.fex Len: 0xe4000
fes1.fex Len: 0x31e0
toc1.fex Len: 0x8
toc0.fex Len: 0x8
usbtool.fex Len: 0x23000
aultools.fex Len: 0x26ead
aultls32.fex Len: 0x238dd
cardtool.fex Len: 0x14000
cardscript.fex Len: 0x6ea
sunxi_mbr.fex Len: 0x10000
dlinfo.fex Len: 0x4000
arisc.fex Len: 0x217aa
bootloader.fex Len: 0x5b4400
Vbootloader.fex Len: 0x4
env.fex Len: 0x20000
Venv.fex Len: 0x4
The file boot.fex length = 0
BuildImg 400
Dragon execute image.cfg Failed ! ArgCnt = 3, 400
pack finish
查看ls -al之后发现boot.fex、system.fex和recovery.fex三个文件分别指向
android/out/target/product/nanopi-h3/boot.img
android/out/target/product/nanopi-h3/system.img
android/out/target/product/nanopi-h3/recovery.img
并且这几个文件均为红色的!!!
去到nanopi-h3文件下看,这三个文件集中缺失,所以,这很可能就是导致packing不成功的原因了。
沿着这样的线索,我们要解决的问题是找出为什么这三个IMG文件没有被生成?!
网友留下的一些解决线索:
http://blog.csdn.net/jiangdou88/article/details/25228505
http://bbs.csdn.net/topics/390967849?page=1
在ubuntu 16.04 LTS下无法成功编译Android,那么我换回到了14.04 LTS来了。
更新完成之后安装一大串的这些软件,会报umet package错误:
sudo apt-get install gawk git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
类似于这样的错误输出:
The following packages have unmet dependencies:
libgl1-mesa-glx:i386 : Depends: libglapi-mesa:i386 (= 8.0.-0ubuntu0.)
Recommends: libgl1-mesa-dri:i386 (>= 7.2)
E: Unable to correct problems, you have held broken packages.
然后按其提示缺少什么就安装什么(一次性安装),总共安装了以下软件,之后再执行上面的安装不再报错了。(正常安装了?得再往下看才知道)
sudo apt-get install libglapi-mesa:i386 libgl1-mesa-dri:i386 libcheese-gtk23 libcheese7 libclutter-1.0- libclutter-gtk-1.0- libcogl15 libclutter-gst-2.0- gstreamer1.-clutter
5. 编译内核时出错
意思是没有mkimage命令哈,那么我们安装便是了。
sudo apt-get install u-boot-tools
然后继续执行下面的命令编译内核
./build.sh -b nanopi-m1 -p android -t all
我再把boot.img拷贝到android/output/target/product/nanopi-h3/中
解决掉libwebviewchromium.so编译出错的问题(编译它要很久的时候,1小时以上,所以请耐心等待它返回。但如果出错,就是因为Swap太小造成的,加大就可以了),http://www.cnblogs.com/tfanalysis/articles/7154991.html
再把编译那儿的硬盘空间加大到了100GB。
同时也禁用的多线程编译make -j8
这样才编译完成。
烧写(PhoenixCard,这个软件要烧几次才成功一次PPPPPP,不过不用按着WIKI上的来回格式化,这个软件自己会格式化)
运行起来了
安卓接了HDMI运行图:
编译Lichee(FridenlyARM NanoPi-M1)碰到的问题及解决办法的更多相关文章
- Ubuntu16.04编译Android6.0/cm13.0教程及相关错误解决办法
一.必备工作 1.安装依赖库 sudo apt--dev libesd0-dev git-core gnupg flex bison gperf build-essential zip curl zl ...
- PLSQL碰到pls-00103的错误解决办法
CREATE OR REPLACE PACKAGE PKG_SHOW_CUST_DETAILS AS PROCEDURE SHOW_CUST_DETAILS( myArg VARCHAR2);END ...
- eclipse 和 android studio 编译时报 Unsupported major.minor version 52.0错解决办法
version 52.0 是java8的环境.当gradle tools 升级到2.2.1时候,可能编译时候会报该错误. 很多网友说更改java version,但是很多时候无效.下面是我遇到时候的解 ...
- 创建link server链接服务器碰到的问题及解决办法
问题描述 今天在做数据库迁移,然后新建link server(链接服务器)的时候,碰到以下问题. 我的sql 脚本是这样的. 然后,执行的时候就收到以下错误信息. Msg 468, Level 16, ...
- libreoffice.在Centos中使用时碰到X11 error的解决办法
先安装 libreoffice yum install libreoffice -y 尝试DOC转PDF是碰到报错 解决办法, 要安装多一个东西 yum install libreoffice-hea ...
- VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误
1.问题症状 在VC++环境下,利用MFC单文档应用程序SDI下开发OpenGL程序,当调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错,出错代码如下: OpenG ...
- iOS开发遇到的坑之六--使用cocopods管理第三方库时,编译出现Library not found for -lPods问题的解决办法
在项目中有时候会遇到Library not found for -lPods(这里的IPods指的是你具体的第三方库)的问题 出现这个错误的原因是:xcode在编译的时候找不到这个库,从而导致项目无法 ...
- Angular build编译内存溢出"JavaScript heap out of memory"的解决办法
关于最近使用angular build编译打包的时候,遇到内存溢出的突发情况,做一个简单记录 编译报错如下↓↓↓ 报错信息很直观地指出是内存溢出了.是什么导致了内存溢出呢?其根本原因在于 nodejs ...
- Linux+CLion+树莓派远程编译时,Cmake编译出现undefined reference to `vtable for MainWindow'的解决办法
在win+CLion上进行远程qt开发时碰到以下错误: 错误提示: undefined reference to `vtable for MainWindow' 原因:源文件的目录结构有问题?? 解决 ...
随机推荐
- CodeForces 297A Parity Game (脑补题)
题意 一个01串,可以有两种操作:①在末尾添加parity(a):②删除开头的一个字符.其中parity(a),当串中1的个数为奇数时为1,偶数时为0.问某个01串是否可以通过若干操作变成另一个01串 ...
- mac下通过brew切换php版本
第一步,先安装 brew Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具. Mac 自带ruby 所以安装起来很 ...
- JWT(JSON Web Token) Java与.Net简单编码实现
参考 JWT(JSON WEB TOKENS)-一种无状态的认证机制 基于Token的WEB后台认证机制 各种语言版本的基于HMAC-SHA256的base64加密 Java与.Net实现实现 // ...
- IOS-第三方开源库
我找的琐碎框架 1.HZExtend:应用快速开发架构集合了MVC和MVVM的特点https://github.com/GeniusBrother/HZExtend : 1.减少控制器压力以及耦合 2 ...
- vue router使用query和params传参的使用
传参是前端经常需要用的一个操作,很多场景都会需要用到上个页面的参数,本文将会详细介绍vue router 是如何进行传参的,以及一些小细节问题.有需要的朋友可以做一下参考,希望可以帮到大家. Vue ...
- vue开发环境搭建Mac版
一.前言 要做一个移动端app,面对webapp最流行的三个技术React,angular,vue,三选一,如何选,可参考blog移动app技术选型,react,angular, vue, 下面是对 ...
- SpringInAction--Spring Web应用之SpringMvc 注解配置
Spring MVC 是当前Web服务器中常用的结构,今天就来学习这相关的知识,首先上图——Spring请求的时候所经历的坎坷之路: (书上原话,算是解释..) 在请求离开浏览器时① ,会带有用户所请 ...
- L169 Komodo dragons
Komodo dragons live on a handful of islands in Indonesia, but their reputation has spread far and wi ...
- .net 枚举(Enum)使用总结
在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,性别只有男跟女等等.如果把这些量说明为整型.字符型或其它类型显然是不妥当的.为此,C#提供了一种称为“ ...
- 使用ElasticSearch完成百万级数据查询附近的人功能
上一篇文章介绍了ElasticSearch使用Repository和ElasticSearchTemplate完成构建复杂查询条件,简单介绍了ElasticSearch使用地理位置的功能. 这一篇我们 ...