• initramfs打包集成rootfs到image镜像及linux rootfs的正常启动


    最近的项目中需要在仿真机haps及VDK上集成rootfs,中间遇到一些问题,在此整理记录以备忘。

    rootfs里面集成的busybox版本1.29.3 (buildroot环境中自带)

    kernel版本4.14

    u-boot传递bootcmdline参数给kernel

    在arch/arm64/configs中修改defconfig文件配置initramfs的文件路径

    CONFIG_BLK_DEV_INITRD=y
    CONFIG_INITRAMFS_SOURCE="./rootfs_test"

    CONFIG_DEVTMPFS=y

    CONFIG_DEVTMPFS_MOUNT=y

    CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES="jxx/jxx_jxx890_xyz"
    CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y

    rootfs需要支持:

    1./dev management (Dynamic using devtmpfs + mdev)

    2.busybox启动时的配置文件inittab的改动:

    ::sysinit:/bin/mount -t proc proc /proc
    ::sysinit:/bin/mount -o remount,rw /
    ::sysinit:/bin/mkdir -p /dev/pts /dev/shm
    ::sysinit:/bin/mount -a
    ::sysinit:/sbin/swapon -a
    null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
    null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
    null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
    null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
    ::sysinit:/bin/hostname -F /etc/hostname
    # now run any rc scripts
    ::sysinit:/etc/init.d/rcS

    # Put a getty on the serial port
    #ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 # GENERIC_SERIAL
    console::respawn:-/bin/sh #start console

    # Stuff to do for the 3-finger salute
    #::ctrlaltdel:/sbin/reboot

    # Stuff to do before rebooting
    ::shutdown:/etc/init.d/rcK
    ::shutdown:/sbin/swapoff -a
    ::shutdown:/bin/umount -a -r

    3.遇到的问题

    console一直进不去:

    一开始怀疑是ttySx这个没对应的问题,也怀疑过bootcmdline有问题,甚至怀疑是kernel没有启动busybox。

    最后发现是/dev目录下面的文件没有被正常创建的问题。

    etc/init.d/S10mdev这个文件里面:

    echo "Starting mdev..."
    echo /sbin/mdev >/proc/sys/kernel/hotplug
    /sbin/mdev -s  (再启动时会执行创建/dev目录下面的文件)

    S10mdev该文件会在init的时候执行,所以需要有可执行权限。若没有会提示:permission denied.

    改过之后发现就可以正常打开console输入命令了。

  • 相关阅读:
    图算法(一)——基本图算法(BFS,DFS及其应用)(1)
    设置drawable图片
    view的加载
    onSaveInstanceState和onRestoreInstanceState
    android中的生命周期(新增2个函数)
    int integer string间的转换
    andorid中Html.fromHtml方法
    android获取inflater
    android中获取string字符串的方法
    c#基础试题
  • 原文地址:https://www.cnblogs.com/wangym/p/11283749.html
Copyright © 2020-2023  润新知