创客神器NanoPi
直播中

Gavin Wang

10年用户 105经验值
擅长:嵌入式技术 控制/MCU MEMS/传感技术
私信 关注
[话题]

【NanoPi M2试用体验】 分享编译系统的体验

本帖最后由 zrts123 于 2016-5-20 22:35 编辑

今天群里发警告 我还是积极点的好。。。晚上有时间赶紧发一个弄了很久的东西
由于我自己的显示器分辨率为1440*900 所以HDMI的720P的default设置在我的显示器上总是少一点儿 我发誓一定要改分辨率!!! 在wiki上面看了下介绍的我直接就上手了-后果如下
强迫症心理+小白水平=我竟然弄了两周 最后发现木有用啊 ( ▼-▼ )( ▼-▼ )
好了言归正传看了wiki然后发现改分辨率就是编译内核嘛然后就自信满满的干了,之后错误不断 也没留下截图这里文字说明一下-小白会出现的问题:
一步一步来吧!(补充一句:本人在ubuntu-
第一个问题:由于是小白我不知道要先安装交叉编译器才能玩,所以我很直接的去编译内核了,结果很简单系统用english告诉你---不好使
01.png
这里需说明一下下要想执行这个命令 git clone https://github.com/friendlyARM/linux-3.4.y.git
新系统需要事先安装git工具  : sudo apt-get install git
这段折腾了很久才静下心好好看介绍
好的那就安装编译器呗:
首先下载并解压编译器:
git clone https://github.com/friendlyarm/prebuilts.git
sudo mkdir -p /opt/FriendlyARM/toolchain

sudo tar xf prebuilts/gcc-x64/arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/

Screenshot at 2016-05-13 23_02_01.png
然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:(我自己用的nano ~/.bashrc 打开的 都一样)
export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
export GCC_COLORS=auto

Screenshot at 2016-05-13 23_16_55.png
执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:
. ~/.bashrc

Screenshot at 2016-05-13 23_14_46.png
这个编译器是64位的,不能在32位的Linux系统上运行,安装完成后,你可以快速的验证是否安装成功:(本人用的ubuntu-mate X64 虚拟机系统-貌似在nanopi上不成我一开始就直接在arm上编译的)
执行:arm-linux-gcc -v
出现以下情况恭喜你 成功
Screenshot at 2016-05-13 23_35_51.png

接下来,我又充分发扬小白的精神-直接 编译内核  结果就怎么都不对 后来百度发现 必须得先 编译 U-boot
实践告诉我们:偷工减料是不行滴! 缺斤少两是木有用滴!

接下来编译U-boot
下载U-Boot源代码并编译,注意分支是nanopi2-lollipop-mr1:
git clone https://github.com/friendlyarm/uboot_nanopi2.git
cd uboot_nanopi2
git checkout nanopi2-lollipop-mr1
make s5p4418_nanopi2_config
make CROSS_COMPILE=arm-linux-

Screenshot at 2016-05-14 02_03_11.png
准备mkimage
编译内核需要用到U-Boot中的工具mkimage,因此,在编译内核uImage前,您需要保证您的主机环境可以成功运行它。
你可以直接使用命令 sudo apt-get install u-boot-tools 来安装,也可以自己编译并安装:
cd uboot_nanopi2

make CROSS_COMPILE=arm-linux- tools
sudo mkdir -p /usr/local/***in && sudo cp -v tools/mkimage /usr/local/***in

对不住这块图丢了。。。
只有以上步骤都ok才能继续奋斗!!!
编译内核:
  • 下载内核源代码
git clone https://github.com/friendlyarm/linux-3.4.y.git
cd linux-3.4.y
git checkout nanopi2-lollipop-mr1

nanoPi2内核所属的分支是nanopi2-lollipop-mr1,在开始编译前先切换分支。
Screenshot at 2016-05-13 23_35_57.png
下载的命令没有对吧 (因为执行的太早没有截图)
  • 编译Android内核
make nanopi2_android_defconfig
touch .scmversion
make uImage

Screenshot at 2016-05-14 21_05_16.png
大家看到有一行写着:
“make ******* Error2 ”
此时本人已经崩溃,研究了很久一直以为操作有问题 (自己按照以上步骤弄了好几遍)后来百度了一下:
缺少一个东西:
安装 sudo apt-get install libncurses5-dev
然后就ok了
Screenshot at 2016-05-14 21_06_43.png
编译成功结束后,新生成的内核烧写文件为 arch/arm/boot/uImage,此内核支持HDMI 720p输出,用于替换掉SD卡boot分区下的uImage.hdmi。
先这样吧剩下的悲剧下次聊。




  • Screenshot at 2016-05-13 23_17_03.png
  • Screenshot at 2016-05-13 23_19_04.png

更多回帖

发帖
×
20
完善资料,
赚取积分