查看: 34121|回复: 42

Edison定制编译Yocto系统教程

[复制链接]
  • TA的每日心情
    开心
    2018-12-7 23:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-1-12 18:44 | 显示全部楼层 |阅读模式
    本帖最后由 mylife1213 于 2015-5-17 20:48 编辑

        这次介绍如何定制与编译Yocto
        先说一下我入这个大坑所付出的吧,说出来都是泪{:soso_e101:},Yocto系统的定制是边下载边编译,这个设定不就是来讽刺我大中华的网络,可耻的资本主义!!! 1G多的源代码让我下载了3天{:soso_e136:},中途各种错误,因为有时候漏下包了,快90%的进度又得重来.
        为了让大家不会像我摸着石头过河,现在完整的介绍如何正确又快速的编译系统,还有错误处理


       进入正题,首先你需要准备:
                                                1,一把梯子,让你的电脑可以看到墙外的世界
                                                2,一个linux系统,我用的ubuntu 12
                                                 (千万不要使用ubuntu 14,我能说前2天就是它让我一直想砸了电脑吗)
                                                             这是我下载好的ubuntu12系统 http://pan.baidu.com/s/1qWM9Z3m
                                                          3,一台双核以上,50G空余空间的电脑
                                                4,足够的耐心

       先下载intel提供的Yotco编译环境包Yocto编译环境,点我下载,以下演示的是基于VMware Workstation下安装的Ubuntu 12.4系统,
    系统在上部有提供下载链接.
       
        打开ubuntu的文件管理器,这个图标 QQ截图20150112163245.png ,点击"主文件夹",把下载好的Yocto编译包edison-src-rel1-maint-rel1-ww42-14.tgz 拖入虚拟机主文件夹里,如图
    QQ截图20150112163734.png

    接下来点击左上角"Dash主页"的图标,输入"终端",点击终端,

    输入:“ sudo apt-get install build-essential git diffstat gawk chrpath texinfo
    libtool gcc-multilib ”回车


    输入 tar xvf edison-src-rel1-maint-rel1-ww42-14.tgz 回车 如图
    这一步是解压文件
    QQ截图20150112164212.png



    接着输入"   cd edison-src "回车,进入文件夹
    QQ截图20150112164428.png

    输入"  ./device-software/setup.sh  "回车 开始构建编译环境
    QQ截图20150112164604.png

    输入 "   source poky/oe-init-build-env  " 回车 设置环境变量
    QQ截图20150112164809.png



    重要的一步,开始搭梯子!!!  
    点击右上角这个按钮 QQ截图20150112164958.png
    然后选择配置"wei" pn .:哈哈,怕网警查
    QQ截图20150112165044.png

    开始配置你自己或者从JS那里买的梯子

    完成连接以后在进行下一步,不然就一直连


    然后我们开始配置编译参数,在终端输入"  getconf _NPROCESSORS_ONLN   "回车
    QQ截图20150112170058.png

    可以看到打印出了一个数字,我的是2,记住这个数字
    在文件管理里进入 /dison-src/build/conf  打开local.conf文件
    QQ截图20150112170405.png

    找到BB_NUMBER_THREADS 语句,把里面的数字修改成你刚才获取的那个数,我的是2
    找到 PARALLEL_MAKE 语句,也把后面的数字改成刚才获取的数字
    QQ截图20150112170847.png

    按Ctrl + S 保存,关闭文件

    然后在终端输入"  bitbake edison-image  " 这样就开始编译Yocto系统了
    QQ截图20150112165543.png

    回车以后就开始漫长的建立
    QQ截图20150112165731.png



    这只是编译系统坑的开始,后面还有很多会出现的错误等着你,以下开始介绍如何处理会出现的错误


    如果遇到黄色的警告提示可以不用管,继续让软件编译
    QQ截图20150109085722.png


    如果你遇到了红色的EERO错误那就马上停止,按Ctrl + C ,一直按,直到出现命令行输入状态,如图


    QQ截图20150112171651.png



    然后继续输入" bitbake edison-image " 回车,重新接下去编译


    一直到 Currently 4 running tasks (6 of 2802):  里面的数字调到2802那就编译好了,以后再编译十几分钟就可以了,不需要在下载


    当初次编译好以后我们就可以开始定制软件,上面的操作完成后会进入输入命令,我们输入"  hob  "进入图形化定制界面


    QQ截图20150112172414.png



    QQ截图20150112172544.png



    Select a machine 选择 edison , 选完后需要几分钟设置参数
    接着在Select an image recipe 选择 edison-image 如图
    QQ截图20150112172849.png



    点击右下角的" Edit image recipe " 进行系统定制
    QQ截图20150112173035.png



    选择你需要或者删除的软件,这一步就是在定制系统了

    然后按右下角的" Build packages "开始编译系统,这次就只需要编译你新增的软件包,所以会很快


    完成以后会出现如下界面
    QQ截图20150112173850.png


    我们就可以关闭窗口了


    接着在终端输入" cd " 回车 " ./edison-src/device-software/utils/flash/postBuild.sh  " 回车

    QQ截图20150112174152.png

    会提示"cp: 无法获取"/home/while/edison-src/build/tmp/deploy/images/edison/vmlinux" 的文件状态(stat): 没有那个文件或目录"
    没关系,跳过即可
    QQ截图20150112182327.png


    按照下图连接Edison , 注意:在圆口电源线与USB线中间有个开关要拨到上,就是往两个USB口的方向!
    IMG_0136.JPG

    连接好以后电脑会自动安装驱动,等驱动安装完毕后会多出一个叫Edison的磁盘

    打开文件管理器,进入/edisin-src/build/toFlash 文件夹 QQ截图20150113071728.png

    把toFlash的文件全部复制到Edison磁盘

    按下图连接Edison
    IMG_0137.JPG


    在圆口电源线与USB线中间有个开关要拨到下,就是往圆口电源的方向

    打开设备管理器可以看到新增了一个串口

    QQ图片20150107084300.jpg
    记下新增的串口号,比如我的是COM3
    打开putty.exe, Connection type 选择 Serial,在Host Name(or IP address) 填上刚才记下的COM号, Port填入115200,Saved Sessions 填入 Edison ,按Save保存
    操作完会像这样
    QQ截图20150107085101.png

    点击Edison,然后按回车,会出现命令提示行;

    输入root  按回车

    输入reboot ota 回车进行系统升级,等待5分钟左右,跳出命令输入行就重装完成了




    编译Yotco系统教程结束




      










    该用户从未签到

    发表于 2015-1-19 22:57 | 显示全部楼层
    想請教一下,如果我運行了flashall.bat之後還需要把toFlash的文件复制到Edison內嗎?
  • TA的每日心情
    开心
    2018-12-7 23:07
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2015-1-20 00:16 | 显示全部楼层
    本帖最后由 mylife1213 于 2015-1-20 00:18 编辑
    galick 发表于 2015-1-19 22:57
    想請教一下,如果我運行了flashall.bat之後還需要把toFlash的文件复制到Edison內嗎? ...

    最好使用reboot ota命令进行固件刷写,flashall.bat出错的几率比较大!有几次我使用flashll.bat命令系统提示成功刷写,但是Edison的系统没有出现我定制的软件包

    你现在可以把toFlash的文件拷贝到Edison连接电脑时出现的Edison磁盘,然后使用putty运行reboot ota命令

    点评

    我去試試,感謝!  发表于 2015-1-20 10:15
  • TA的每日心情
    擦汗
    2016-11-17 10:05
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2015-1-27 13:52 | 显示全部楼层
    好人一生平安。。。。
  • TA的每日心情
    开心
    2015-3-20 15:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-3-13 19:11 | 显示全部楼层
    本帖最后由 xlla 于 2015-3-13 19:16 编辑

    我也基于 ww42 裁减编译了一套,其间也是各种挫折不断,甚至因为虚拟机的磁盘不足而推倒重建一次。

    只可惜蓝牙支持协议太少,且充满了各种问题,比如蓝牙,wifi不能同时开启,就丢在一边了。

    现在官方释出了 ww05 ,看release note,更改了许多bug,可重新编译又要十多个小时!我只想在现有的基础上更新相关代码,有没有好的建议?

    目前正在摸索的法子是,把 ww42 的构建目录,download 目录,状态目录等直接移动到 ww05 的source树里,还在尝试构建。
    edison-build.png

  • TA的每日心情
    开心
    2018-12-7 23:07
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2015-3-13 19:20 | 显示全部楼层
    xlla 发表于 2015-3-13 19:11
    我也基于 ww42 裁减编译了一套,其间也是各种挫折不断,甚至因为虚拟机的磁盘不足而推倒重建一次。

    只可惜 ...

    把 ww42 的构建目录,download 目录,状态目录等直接移动到 ww05 的source树里这个方案应该可行。

    ww05编译所需要下载的程序应该和ww04差不多,但我觉得保留download目录就好了,编译的大部分时间都是花在下载了。
  • TA的每日心情
    开心
    2018-12-7 23:07
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2015-3-13 19:22 | 显示全部楼层
    xlla 发表于 2015-3-13 19:11
    我也基于 ww42 裁减编译了一套,其间也是各种挫折不断,甚至因为虚拟机的磁盘不足而推倒重建一次。

    只可惜 ...

    ww05  蓝牙现在支持协议多了吗?一开始就觉得yocto不太好用,换成了debian,也就没太关注更新
  • TA的每日心情
    开心
    2015-3-20 15:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-3-14 14:35 | 显示全部楼层
    mylife1213 发表于 2015-3-13 19:22
    ww05  蓝牙现在支持协议多了吗?一开始就觉得yocto不太好用,换成了debian,也就没太关注更新 ...

    状态目录,tmp目录都有几十G大,我贪心,连 tmp都保留了。
    目前还在编译,代理忘记设置,昨晚断了。

    多了非常多协议, a2dp,串口等等。
    还多了 audio player,usb camera 等等,不用自己再改参数装了。
  • TA的每日心情
    开心
    2018-12-7 23:07
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2015-3-14 17:12 | 显示全部楼层
    xlla 发表于 2015-3-14 14:35
    状态目录,tmp目录都有几十G大,我贪心,连 tmp都保留了。
    目前还在编译,代理忘记设置,昨晚断了。

    蓝牙更新了这么多协议啊,yocto现在可以用了,哈哈
  • TA的每日心情
    开心
    2015-3-20 15:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-3-16 15:42 | 显示全部楼层
    哭死了,好容易编译完了,不能刷。。。
    先是没有 dfu-util,port 装了一个,
    又抱怨,Port gnu-getopt not found,brew 再装,
    最后竟然来句,Recovery mode is only available on windows and linux
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    做了一个定时喂鱼的装置
    做了一个定时喂鱼的装置
    快放假了,怕鱼饿瘦了做了这么个控制,每天定时投鱼粮。用ESP8266编写,web设定参数,
    【项目】基于Arduino Nano的多功能桌面感应垃圾桶
    【项目】基于Arduino Nano
    基于Arduino Nano的多功能桌面感应垃圾桶随着大学生活不断往前迈进,宿舍桌面上的杂物
    arduino +MPU6050控制云台相机匀速转动(接受付费)!
    arduino +MPU6050控制云台
    最近在调试云台(用的有刷直流减速电机挂大相机的那种),发现相机在往下移动时往往速
    光敏电阻检测环境光实验
    光敏电阻检测环境光实验
    本文节选自《Arduino程序设计基础》 一些简单的电子元件就可以做传感器使用,例如我
    基于Esp8266的点阵时钟
    基于Esp8266的点阵时钟
    芯片是ESP8266 12F 配合点阵单元板(64*32,单色),实现自动对时,天气预报,农历,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表