编译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' 原因:源文件的目录结构有问题?? 解决 ...
随机推荐
- iOS-如何写好一个UITableView
如何写好一个UITableView 字数5787 阅读3745 评论25 喜欢69 本文是直播分享的简单文字整理,直播共分为上.下两部分.第一部分:优酷 Or YouTube,第二部分:优酷 Demo ...
- Ansible 小手册系列 九(Playbook)
playbook是由一个或多个"play"组成的列表.play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲所谓task无非 ...
- socketserver源码简介
一.socketserver流程简介 +------------+ | BaseServer | +------------+ | v +-----------+ +----------------- ...
- 5G信令(就是用户身份信息)风暴——就是客户端通过公钥加密的消息(携带手机IMSI号)发给服务端,服务器需用私钥解密,这个解密比较消耗资源,如果短时间大量请求到来就会触发信令风暴
信令:手机开机后,先从USIM中读取之前运营商分配的临时身份信息GUTI/TMSI,发送携带该身份信息的信令给基站,请求接入运营商网络. 如果每个设备的每条消息都需要单独认证,则网络侧安全信令的验证需 ...
- cacti安装和使用
关闭selinux 1.搭建lamp环境 配置apache [root@cacti-server ~]# yum -y install httpd [root@cacti-server ~]# sys ...
- 【hive】关于浮点数比较的问题
当在hive中写下浮点数(例如:0.2) hive会把浮点数(0.2)存储为double类型 但是系统中并不能精准表示0.2这个浮点数 正确的浮点数表示 float 0.2 —> 0.200 ...
- 【lightoj-1024】Eid (高精度)
[题意] 给定n个数,求这n个数的最小公倍数. [题解] 最小公倍数当然不能按常规方法来求,因为最大的数将近是10000^1000级别的.然鹅最小公倍数怎么搞呢? 这里发现了一个规律: 4 5 6 3 ...
- operator[],识别读操作和写操作
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- vector概念
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- JQ上传预览+存数据库
因为之前老师讲的方法有不少BUG 现在经过完善已经修复 之前老是讲的方法是每一张都会被传到后台文件夹里面去 导致在预览过程中如果刷新页面 那么预览的图片不能从后台文件夹中删除 这个方法实现在本地预览 ...