【问题标题】:Yocto fails to boot after adding packageYocto添加包后无法启动
【发布时间】:2016-06-01 07:07:42
【问题描述】:

我即将为 Xilinx Zynq 平台构建一个 Linux-Yocto 文件系统。 一切运行良好,直到我向 rootfs 添加了一个包。 我添加什么样的包并不重要,它总是失败:

INIT: version 2.88 booting

/etc/init.d/rcS: line 17: mount: command not found
/etc/init.d/rc: line 66: stty: command not found
/etc/rcS.d/S02banner.sh: line 11: /bin/mknod: No such file or directory
/etc/rcS.d/S02sysfs.sh: line 14: mount: command not found
/etc/rcS.d/S02sysfs.sh: line 17: grep: command not found
/etc/rcS.d/S06checkroot.sh: line 142: mount: command not found
/etc/rcS.d/S06checkroot.sh: line 145: ln: command not found
Starting Bootlog daemon: bootlogd: cannot find console device 249:0 under /dev
bootlogd.
/etc/rcS.d/S37populate-volatile.sh: line 12: dirname: command not found
/etc/rcS.d/S37populate-volatile.sh: line 13: sed: command not found
/etc/rcS.d/S37populate-volatile.sh: line 193: /proc/cmdline: No such file or directory
/etc/rcS.d/S38devpts.sh: line 13: grep: command not found
/etc/rcS.d/S38dmesg.sh: line 17: dmesg: command not found
/etc/rcS.d/S39hostname.sh: line 10: /bin/hostname: No such file or directory
/etc/rcS.d/S39hostname.sh: line 19: hostname: command not found
/etc/rcS.d/S55bootmisc.sh: line 64: date: command not found
/etc/rcS.d/S55bootmisc.sh: l
INIT: Entering runlevel: 5

/etc/init.d/rc: line 66: stty: command not found
Starting ntpd: /etc/rc5.d/S20ntpd: line 42: start-stop-daemon: command not found
done
Stopping Bootlog daemon: /etc/rc5.d/S99stop-bootlogd: line 62: start-stop-daemon: command not found
bootlogd.

还有:

INIT: cannot execute "/sbin/getty"cannot execute "/sbin/getty"
INIT: Id "1" respawning too fast: disabled for 5 minutes
INIT: cannot execute "/sbin/getty"
INIT: Id "PS0" respawning too fast: disabled for 5 minutes

我的 local.conf:

MACHINE ?= "zedboard-zynq7"
DISTRO ?= "poky"
EXTRA_IMAGE_FEATURES = "debug-tweaks"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS = "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    ABORT,${TMPDIR},100M,1K \
    ABORT,${DL_DIR},100M,1K \
    ABORT,${SSTATE_DIR},100M,1K" 

PACKAGECONFIG_pn-qemu-native = "sdl"
PACKAGECONFIG_pn-nativesdk-qemu = "sdl"
ASSUME_PROVIDED += "libsdl-native"
CONF_VERSION = "1"

#AT-ubifs config
MKUBIFS_ARGS = "-m 2048 -e 126976 -c 1884"

#added by hob
PACKAGE_CLASSES = "package_rpm "

#added by hob
DL_DIR = "/home/jonas/Zynq_AT_Debug/Yocto/poky/build/downloads"

#added by hob
SSTATE_DIR = "/home/jonas/Zynq_AT_Debug/Yocto/poky/build/sstate-cache"

#added by hob
SSTATE_MIRRORS = ""

#added by hob
PARALLEL_MAKE = "-j 8"

#added by hob
BB_NUMBER_THREADS = "8"

#added by hob
INCOMPATIBLE_LICENSE = ""

#added by hob
SDKMACHINE = "x86_64"

#added by hob
http_proxy = ""

#added by hob
https_proxy = ""

#added by hob
ftp_proxy = ""

#added by hob
all_proxy = ""

#added by hob
CVS_PROXY_HOST = ""

#added by hob
CVS_PROXY_PORT = ""

#added by hob
IMAGE_EXTRA_SPACE = "0"

#added by hob
TOOLCHAIN_BUILD = "False"

#added by hob
IMAGE_FSTYPES = "ubifs cpio"

#added by hob
LINGUAS_INSTALL = ""

我的图像配方:

require /home/jonas/Zynq_AT_Debug/Yocto/poky/meta/recipes-core/images/core-image-minimal.bb

IMAGE_INSTALL = "sysvinit-pidof \
update-alternatives-opkg shadow-securetty init-ifupdown \
initscripts-functions base-files update-rc.d \
run-postinsts openssh udev-cache zlib libcrypto \
util-linux-libblkid openssh-scp openssh-keygen \
mtd-utils-ubifs initscripts openssh-ssh \
udev-utils modutils-initscripts eglibc \
shadow netbase openssh-sshd udev base-passwd  \
sysvinit mtd-utils openssl-conf libkmod lzo \
util-linux-libuuid libwrap sysvinit-inittab \
iperf nbench-byte ntp ntpdate nano"
    DESCRIPTION = "***** Yocto-filesystem"

如果我拿出 nano 一切都很好。 我希望有人可以帮助我。

【问题讨论】:

    标签: linux xilinx yocto recipe bitbake


    【解决方案1】:

    要在 rootfs 中添加更多包, 在 conf/local.conf 添加这一行:

    IMAGE_INSTALL_append = " nano"

    前面的空间真的很重要。

    另外,请说明你从哪里得到你的 bsp 和你的 conf/bblayers.conf

    编辑:

    让我们从头开始。复制这个,将我的 local.conf 替换为你的 local.conf。有了这个最小的设置,你至少可以bitbake core-image-minimal

    然后,要将您的包添加到映像中,只需将它们添加到 IMAGE_INSTALL_append = " "

    MACHINE ?= "zedboard-zynq7"
    DISTRO ?= "poky"
    EXTRA_IMAGE_FEATURES = "debug-tweaks ssh-server-openssh package-manager"
    USER_CLASSES ?= "buildstats image-mklibs image-prelink"
    PATCHRESOLVE = "noop"
    BB_DISKMON_DIRS = "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    ABORT,${TMPDIR},100M,1K \
    ABORT,${DL_DIR},100M,1K \
    ABORT,${SSTATE_DIR},100M,1K" 
    
    PACKAGECONFIG_pn-qemu-native = "sdl"
    PACKAGECONFIG_pn-nativesdk-qemu = "sdl"
    ASSUME_PROVIDED += "libsdl-native"
    CONF_VERSION = "1"
    
    #AT-ubifs config
    MKUBIFS_ARGS = "-m 2048 -e 126976 -c 1884"
    PACKAGE_CLASSES = "package_rpm "
    DL_DIR = "/home/jonas/Zynq_AT_Debug/Yocto/poky/build/downloads"
    SSTATE_DIR = "/home/jonas/Zynq_AT_Debug/Yocto/poky/build/sstate-cache"
    SSTATE_MIRRORS = ""
    PARALLEL_MAKE = "-j ${@oe.utils.cpu_count()}"
    BB_NUMBER_THREADS = "${@oe.utils.cpu_count()}"
    SDKMACHINE = "x86_64"
    IMAGE_FSTYPES = "ubifs cpio"
    
    IMAGE_INSTALL_append = " nano smartpm openssh-sftp-server "
    

    【讨论】:

    • 感谢@LightenS 的回答:) 我试着像你说的那样做但是没有运气:( 和以前一样的错误。config/bblayers.conf 是由 oe-init-build-env据我所知。我通过自己的两个层和 xilinx 元层对其进行了扩展。BSP 是由 xsdk 基于 vivado 硬件设计生成的。
    • 你在图片中添加了很多我不明白的东西,在 openembedded 元索引中找不到它们。那么我们为什么不从头开始,编译一个核心最小图像并添加你知道的必要的东西。
    猜你喜欢
    • 2020-05-11
    • 2015-01-07
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    相关资源
    最近更新 更多