YOCTO 初始化安装与构建
openSUSE    2017-01-19 10:08:16    426    0    0
tianwaifeixian   openSUSE

基于openSUSE版本的YOCTO
文档主页:Yocto Project Mega-Manual

1.安装相关依赖

 sudo zypper install python gcc gcc-c++ git chrpath make wget python-xml \
 diffstat makeinfo python-curses patch socat libSDL-devel xterm​

2.获取软件 第二部貌似不用做 我没做

git clone -b morty git://git.yoctoproject.org/poky.git
git checkout morty​

或者从 https://www.yoctoproject.org/downloads 下载需要的版本

3.YOCTO开发手册(软件适用方法)相关链接

    1.初始设置:http://www.yoctoproject.org/docs/2.2/mega-manual/mega-manual.html#local-yp-release

    2.Yocto Project 2.2 - Morty: https://www.yoctoproject.org/documentation

    3.Morty说明文档http://www.yoctoproject.org/docs/2.2/mega-manual/mega-manual.html

    4.常见问题解答:http://www.yoctoproject.org/docs/2.2/mega-manual/mega-manual.html#how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server

4.1构建

    1.构建主机设置 自己配置为arm的啦

    2.取出版本

     $ cd〜/poky
     $ git checkout -b morty origin /morty //这里报错啦没搭理继续​

    3.初始化构建环境:

$ source oe-init-build-env 执行这步骤自动进入build目录

      到这里碰到问题如下提示

~/poky> source oe-init-build-env
                You had no conf/local.conf file. This configuration file has therefore been
                created for you with some default values. You may wish to edit it to, for
                example, select a different MACHINE (target hardware). See conf/local.conf
                for more information as common configuration options are commented.

                You had no conf/bblayers.conf file. This configuration file has therefore been
                created for you with some default values. To add additional metadata layers
                into your configuration please add entries to conf/bblayers.conf.

                The Yocto Project has extensive documentation about OE including a reference
                manual which can be found at:
                    http://yoctoproject.org/documentation

                For more information about OpenEmbedded see their website:
                    http://www.openembedded.org/


                ### Shell environment set up for builds. ###

                You can now run 'bitbake <target>'

                Common targets are:
                    core-image-minimal
                    core-image-sato
                    meta-toolchain
                    meta-ide-support

                You can also run generated qemu images with a command like 'runqemu qemux86'

 解决方法:
//配置poky目录下的/build/conf/local.conf选择模拟环境为arm
//去掉20行的MACHINE ?= "qemuarm"前面的那#号
//在38行MACHINE ??= "qemux86"前面加上#即去掉默认qemux86
然后继续

~/poky> source oe-init-build-env
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
 ​

        该脚本将创建 build目录,这是build在这种情况下,并位于 源目录。脚本运行后,您的当前工​​作目录将设置为构建目录。稍后,当构建完成时,构建目录包含构建期间创建的所有文件。

       有关运行内存驻留信息 BitBake的,请参阅 oe-init-build-env-memres 安装脚本。

    4.检查poky/build/conf/local.conf的本地配置文件,在使用BitBake启动构建之前,您可以查看此文件,并确保您的常规配置是您想要的。

    为了帮助节省磁盘空间中构建,可以添加以下语句到项目的配置文件,它在 poky/build/conf/local.conf。添加此语句将删除用于在构建配方后构建配方的工作目录。

INHERIT + =“rm_work”​

    有关其他包管理器选择的信息,请参阅“ package.bbclass的Yocto项目参考手册”一节。

    下面是我自己修改的配置文件

# Machine Selection
 MACHINE ?= "qemuarm"
 #MACHINE ??= "qemux86"
 # Where to place downloads 
 DL_DIR ?= "/opt/yocto/downloads"
 # Where to place shared-state files
 SSTATE_DIR ?= "/var/yocto/sstate-cache"
 # SDK target architecture
 #SDKMACHINE ?= "x86_64"
 INHERIT +="rm_work"​

    5.启动构建: 用以下命令继续建立操作系统映像的目标。

~/poky/build> cd ..
 ~/poky> . ./oe-init-build-env
~/bitbake core-image-sato​

    因为前面配置的问题这里就开始报错啦    

~/poky/build> bitbake core-inage-sato
 ERROR: OE-core's config sanity checker detected a potential misconfiguration.
 Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
 Following is the list of potential problems / advisories:
DL_DIR: /opt/yocto/downloads exists but you do not appear to have write access to it. 
 Fetcher failure for URL: 'https://www.example.com/'. URL https://www.example.com/ doesn't work. Please ensure your network is configured correctly.
 Summary: There was 1 ERROR message shown, returning a non-zero exit code.​

    解决方法的过程:

 1.查看/opt目录权限为
 drwxr-xr-x 29 root root 4096 1月 18 21:12 opt
 2.把自己加入root组
 /> sudo usermod -a -G root xuan
 验证:/> groups xuan
 xuan : users root
 3.为属组添加写的权限
 /> sudo chmod -R g+w /opt
 验证:
 drwxrwxr-x 29 root root 4096 1月 18 21:12 opt
 4./var目录同样改一下
 /> sudo chmod -R g+w /var
 chmod: 无法访问"/var/run/user/1000/gvfs": 权限不够
 drwxrwxr-x 18 root root 230 1月 18 21:05 var
 5.到这里还是不行 只有改回原来默认值啦
 # Where to place downloads 
 DL_DIR ?= "${TOPDIR}/downloads"
 # Where to place shared-state files
 #SSTATE_DIR ?= "/var/yocto/sstate-cache"
 6.找到poky.conf 清空里面第70行双引号里的内容:CONNECTIVITY_CHECK_URIS ?= ""
 ~/poky/build> cd ../
 xuan@SUSE:~/poky> find -name poky.conf
 ./meta-poky/conf/distro/poky.conf
 7.从新开始以上三部
 ~/poky> source oe-init-build-env
 ~/poky/build> cd ../
 ~/poky> . ./oe-init-build-env
 ~/poky/build> bitbake core-inage-sato​
     Parsing recipes: 100% |####################################################################################| Time: 0:01:37
        Parsing of 864 .bb files complete (0 cached, 864 parsed). 1318 targets, 70 skipped, 0 masked, 0 errors.                   
        ERROR: Nothing PROVIDES 'core-inage-sato'. Close matches:
        core-image-sato
        core-image-sato-sdk
        core-image-sato-dev

        Summary: There was 1 ERROR message shown, returning a non-zero exit code.

    第六部解决方法的参考链接:http://android.serverbox.ch/?p=1273

        有报错啦:

ERROR: Nothing PROVIDES 'core-inage-sato'. Close matches:​

    这次没搜到解决方法 确切是没看太明白

    然后改了一下构建目标

    上面最后这个错误如果把命令改为:bitbake core-image-minimal就可以正常执行醉了~  

~/poky/build> bitbake core-image-minimal
 Loading cache: 100% |######################################################################################| Time: 0:00:00
 Loaded 1318 entries from dependency cache.
 NOTE: Resolving any missing task queue dependencies
Build Configuration:
 BB_VERSION = "1.32.0"
 BUILD_SYS = "x86_64-linux"
 NATIVELSBSTRING = "SUSELINUX-42.1"
 TARGET_SYS = "arm-poky-linux-gnueabi"
 MACHINE = "qemuarm"
 DISTRO = "poky"
 DISTRO_VERSION = "2.2.1"
 TUNE_FEATURES = "arm armv5 thumb dsp"
 TARGET_FPU = "soft"
 meta 
 meta-poky 
 meta-yocto-bsp = "morty:a3fa5ce87619e81d7acfa43340dd18d8f2b2d7dc"
 。。。。。。。。。。。。。。。。。。漫长的等待。。。。。。。。。。。。。。。
 NOTE: Executing SetScene Tasks
 NOTE: Executing RunQueue Tasks
 WARNING: quilt-native-0.64-r0 do_fetch: Failed to fetch URL http://download.savanna.gz, attempting MIRRORS if available
 WARNING: attr-native-2.4.47-r0 do_fetch: Failed to fetch URL http://download.savannc.tar.gz, attempting MIRRORS if available
 WARNING: bzip2-1.0.6-r5 do_fetch: Failed to fetch URL http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz, attempting MIRRORS if available
 WARNING: acl-native-2.2.52-r0 do_fetch: Failed to fetch URL http://download.savannah.gnu.org/releases/acl/acl-2.2.52.src.tar.gz, attempting MIRRORS if available
 WARNING: libpng-native-1.6.24-r0 do_fetch: Failed to fetch URL http://distfiles.gentoo.org/distfiles/libpng-1.6.24.tar.xz, attempting MIRRORS if available
 WARNING: sysvinit-2.88dsf-r14 do_fetch: Failed to fetch URL http://download.savannah.gnu.org/releases/sysvinit/sysvinit-2.88dsf.tar.bz2, attempting MIRRORS if available
 WARNING: libarchive-native-3.2.2-r0 do_fetch: Failed to fetch URL http://libarchive.org/downloads/libarchive-3.2.2.tar.gz, attempting MIRRORS if available
 NOTE: Tasks Summary: Attempted 2219 tasks of which 9 didn't need to be rerun and all succeeded.
Summary: There were 7 WARNING messages shown.

    网速太慢 我先睡觉了 早上起来好了

    然后接着试了一下昨晚的 竟然可也啦

 ~/poky/build> bitbake core-image-sato
 Parsing recipes: 100% |#############################################| Time: 0:01:03
 Parsing of 864 .bb files complete (0 cached, 864 parsed). 1318 targets, 70 skipped, 0 masked, 0 errors.
 NOTE: Resolving any missing task queue dependencies
Build Configuration:
 BB_VERSION = "1.32.0"
 BUILD_SYS = "x86_64-linux"
 NATIVELSBSTRING = "universal-4.8"
 TARGET_SYS = "arm-poky-linux-gnueabi"
 MACHINE = "qemuarm"
 DISTRO = "poky"
 DISTRO_VERSION = "2.2.1"
 TUNE_FEATURES = "arm armv5 thumb dsp"
 TARGET_FPU = "soft"
 meta 
 meta-poky 
 meta-yocto-bsp = "morty:a3fa5ce87619e81d7acfa43340dd18d8f2b2d7dc"
Initialising tasks: 100% |##########################################| Time: 0:00:25
 NOTE: Executing SetScene Tasks
 NOTE: Executing RunQueue Tasks
 NOTE: Tasks Summary: Attempted 5932 tasks of which 2214 didn't need to be rerun and all succeeded.
 ----------
 耗时两小时!​

    到此构建完毕

    有关使用信息 bitbake命令,请参阅“ BitBake的的Yocto项目参考手册”部分,或参阅“ BitBake的命令的BitBake的用户手册中的”一节。有关其它目标的信息,请参阅“ 映像的Yocto项目参考手册”章节。

6.使用QEMU启动模拟系统:

~/poky/build> runqemu qemuarm
 runqemu - INFO - Assuming MACHINE = qemuarm
 runqemu - INFO - Running MACHINE=qemuarm bitbake -e...
 runqemu - INFO - MACHINE: qemuarm
 runqemu - INFO - DEPLOY_DIR_IMAGE: /home/xuan/poky/build/tmp/deploy/images/qemuarm
 runqemu - INFO - Running ls -t /home/xuan/poky/build/tmp/deploy/images/qemuarm/*.qemuboot.conf...
 runqemu - INFO - CONFFILE: /home/xuan/poky/build/tmp/deploy/images/qemuarm/core-image-sato-qemuarm-20170118211303.qemuboot.conf
 runqemu - INFO - Continuing with the following parameters:
KERNEL: [/home/xuan/poky/build/tmp/deploy/images/qemuarm/zImage]
 DTB: [/home/xuan/poky/build/tmp/deploy/images/qemuarm/zImage-versatile-pb.dtb]
 MACHINE: [qemuarm]
 FSTYPE: [ext4]
 ROOTFS: [/home/xuan/poky/build/tmp/deploy/images/qemuarm/core-image-sato-qemuarm-20170118211303.rootfs.ext4]
 CONFFILE: [/home/xuan/poky/build/tmp/deploy/images/qemuarm/core-image-sato-qemuarm-20170118211303.qemuboot.conf]
runqemu - INFO - Running /bin/ip link...
 runqemu - INFO - Setting up tap interface under sudo​

    了解更多有关运行QEMU,请参阅“ 使用快速仿真器(QEMU)的Yocto项目开发手册”一章。

 7.Exit QEMU: Exit QEMU by either clicking on the shutdown icon or by opening a terminal, typing poweroff, and then pressing "Enter".

本文参考链接:www.ibm.com/developerworks

 

上一篇: conky显示实时缓存

下一篇: 鲁米语录

426 人读过
立即登录, 发表评论.
没有帐号? 立即注册
0 条评论
文档导航