/**********************************************************************************                  Buildroot 打包文件系统流程跟踪* 说明:*     之前在使用Buildroot过程中,发现其自身生成的rootfs.tar.bz2文件系统可以正常运行* 但自己使用命令打包的文件系统就有问题,于是跟一下其脚本运行的输出信息,原来使用到* 了fakeroot来模拟root权限。**                                              2017-10-11 深圳 南山平山村 曾剑锋********************************************************************************/一、输出信息分析:[7m>>>   Finalizing target directory[27mrm -f /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/glib-2.0/schemas/*.xml /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/glib-2.0/schemas/*.dtd/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin/glib-compile-schemas /home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/share/glib-2.0/schemas --targetdir=/home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/glib-2.0/schemasNo schema files found: doing nothing.PYTHONPATH="/home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/lib/python3.5/sysconfigdata/:/home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/lib/python3.5/site-packages/" /home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin/python3.5 support/scripts/pycompile.py /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/lib/python3.5find /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/lib/python3.5 -name '*.py' -print0 | xargs -0 --no-run-if-empty rm -ffind /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/lib/python3.5 -name '*.opt-1.pyc' -print0 -o -name '*.opt-2.pyc' -print0 | xargs -0 --no-run-if-empty rm -f# 创建etc目录mkdir -p /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc# 创建hostname目录echo "AplexOS" > /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/hostname# 使用sed对文件进行操作/bin/sed -i -e '$a \127.0.1.1\tAplexOS' -e '/^127.0.1.1/d' /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/hostsmkdir -p /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc# 登录前欢迎语句echo "Welcome to AplexOS" > /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/issue# 创建network目录mkdir -p /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/network/# 设置loopback设备,这也就是为什么interfaces如果这里不进行修改,每次都会被修改的原因( echo "# interface file auto-generated by buildroot"; echo ; echo "auto lo"; echo "iface lo inet loopback"; ) > /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/network/interfaces# 设置eth0设备( echo ; echo "auto eth0"; echo "iface eth0 inet static"; echo "     address 192.168.1.202"; echo "     netmask 255.255.255.0"; echo "     broadcast 0.0.0.0"; echo "     gateway 192.168.1.1"; ) >> /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/network/interfaces/usr/bin/install -m 0755 -D package/skeleton//nfs_check /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/network/nfs_check# 生成root账户及密码/bin/sed -i -e s,^root:[^:]*:,root:"`/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin/mkpasswd -m "md5" "aplex"`":, /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/shadow# debug port/bin/sed -i -e '/# GENERIC_SERIAL$/s~^.*#~console::respawn:/sbin/getty -L  console 0 vt100 #~' /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/inittab# 修改inittab文件/bin/sed -i -e '/^#.*-o remount,rw \/$/s~^#\+~~' /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/inittabrm -f /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/locales.nopurgefor i in C en_US locale-archive; do echo $i >> /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/locales.nopurge; donefor dir in /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/locale; do for langdir in $dir/*; do if [ -e "${langdir}" ]; then grep -qx "${langdir##*/}" /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/locales.nopurge || rm -rf $langdir; fi done; doneif [ -d /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/X11/locale ]; then for lang in C en_US; do if [ -f /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/X11/locale/$lang/XLC_LOCALE ]; then echo "$lang/XLC_LOCALE: $lang"; fi done > /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/X11/locale/locale.dir; firm -rf /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/include /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/aclocal \/home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/lib/pkgconfig /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/pkgconfig \/home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/lib/cmake /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/cmakefind /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -ffind /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/lib/ /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/lib/ /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/libexec/ \\( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -frm -rf /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/gdbrm -rf /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/bash-completionrm -rf /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/zshrm -rf /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/man /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/manrm -rf /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/info /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/inform -rf /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/doc /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/docrm -rf /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share/gtk-docrmdir /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/usr/share 2>/dev/null || truefind /home/zengjf/zengjfos/buildroot-2017.02.3/output/target -type f \( -perm /111 -o -name '*.so*' \) -not \( -name 'libpthread*.so*' -o -name 'ld-*.so*' -o -name '*.ko' \) -print0 | xargs -0 /home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin/arm-buildroot-linux-gnueabi-strip --remove-section=.comment --remove-section=.note 2>/dev/null || truefind /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/lib/ -type f -name 'libpthread*.so*' | \xargs -r /home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin/arm-buildroot-linux-gnueabi-strip --remove-section=.comment --remove-section=.note --strip-debugfind /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/lib/ -type f -name 'ld-*.so*' | \xargs -r /home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin/arm-buildroot-linux-gnueabi-strip --remove-section=.comment --remove-section=.note --strip-debug# 检查一些库的存在test -f /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/ld.so.conf && \{ echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || truetest -d /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/ld.so.conf.d && \{ echo "ERROR: we shouldn't have a /etc/ld.so.conf.d directory"; exit 1; } || truemkdir -p /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc( \echo "NAME=Buildroot"; \echo "VERSION=2017.02.3"; \echo "ID=buildroot"; \echo "VERSION_ID=2017.02.3"; \echo "PRETTY_NAME=\"Buildroot 2017.02.3\"" \) >  /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/etc/os-release[7m>>>   Generating root filesystem image rootfs.tar[27mrm -f /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fsrm -f /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEMrm -f /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_users_table.txtecho '#!/bin/sh' > /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fsecho "set -e" >> /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fsecho "chown -h -R 0:0 /home/zengjf/zengjfos/buildroot-2017.02.3/output/target" >> /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fsprintf '       sshd -1 sshd -1 * - - - SSH drop priv user\n     ftp -1 ftp -1 * /home/ftp - - Anonymous FTP User\n\n' >> /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_users_table.txtPATH="/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/bin:/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/sbin:/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin:/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/sbin:/home/bin:/home/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/zengjf/zengjfos/buildroot-2016.08/output/host/opt/ext-toolchain/bin::/home/zengjf/zengjfos/AplexOS/git-repo:/home/linux/pycharm-community-2017.1.3/bin" /home/zengjf/zengjfos/buildroot-2017.02.3/support/scripts/mkusers /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_users_table.txt /home/zengjf/zengjfos/buildroot-2017.02.3/output/target >> /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fscat system/device_table.txt > /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_device_table.txtprintf '       /bin/busybox                     f 4755 0  0 - - - - -\n /dev/console c 622 0 0 5 1 - - -\n\n' >> /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_device_table.txtecho "/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin/makedevs -d /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_device_table.txt /home/zengjf/zengjfos/buildroot-2017.02.3/output/target" >> /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fs# 这里很重要,因为这里可以将target中的内容打包进入rootfs.tar中去printf '       (cd /home/zengjf/zengjfos/buildroot-2017.02.3/output/target; find -print0 | LC_ALL=C sort -z | tar  -cf /home/zengjf/zengjfos/buildroot-2017.02.3/output/images/rootfs.tar --null --no-recursion -T - --numeric-owner)\n' >> /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fs# 给_fakeroot.fs加执行权限chmod a+x /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fs# 用fakeroot执行_fakeroot.fsPATH="/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/bin:/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/sbin:/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin:/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/sbin:/home/bin:/home/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/zengjf/zengjfos/buildroot-2016.08/output/host/opt/ext-toolchain/bin::/home/zengjf/zengjfos/AplexOS/git-repo:/home/linux/pycharm-community-2017.1.3/bin" /home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin/fakeroot -- /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fsrootdir=/home/zengjf/zengjfos/buildroot-2017.02.3/output/targettable='/home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_device_table.txt'# 相当于拷贝,同时可以设定权限/usr/bin/install -m 0644 support/misc/target-dir-warning.txt /home/zengjf/zengjfos/buildroot-2017.02.3/output/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM# 使用bzip2进行压缩PATH="/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/bin:/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/sbin:/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/bin:/home/zengjf/zengjfos/buildroot-2017.02.3/output/host/usr/sbin:/home/bin:/home/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/zengjf/zengjfos/buildroot-2016.08/output/host/opt/ext-toolchain/bin::/home/zengjf/zengjfos/AplexOS/git-repo:/home/linux/pycharm-community-2017.1.3/bin" bzip2 -9 -c /home/zengjf/zengjfos/buildroot-2017.02.3/output/images/rootfs.tar > /home/zengjf/zengjfos/buildroot-2017.02.3/output/images/rootfs.tar.bz2二、fakeroot使用:1. 参考命令:fakeroot -- /home/zengjf/zengjfos/buildroot-2017.02.3/output/build/_fakeroot.fs2. cd <your path> && fakeroot -- tar jcvf rootfs.tar.bz2 *

Buildroot 打包文件系统流程跟踪相关推荐

  1. buildroot应用开发流程

    我用的firefly rockchip系列芯片的SDK,这个SDK可以制作芯片系统的所有文件,虽然给的链接是rk3399-jd4版本的SDK,但是在一个SDK是能够编译所有rk系列芯片的linux固件 ...

  2. 【正点原子MP157连载】第十九章 Buildroot根文件系统构建-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  3. lichee nano 荔枝派入门——buildroot构建文件系统

    lichee nano 荔枝派入门–buildroot构建文件系统 获取buildroot源代码 可以从lichee官方给的链接地址或者从GitHub下载最新的buildroot源代码,具体如下: 从 ...

  4. activiti流程跟踪图简单详解

    我用的是spring+springmvc+mybatis,前端使用的是jsp ===========前台jsp中的写法========== <img  id="imgObj" ...

  5. linux 使用buildroot制作文件系统

    可以用busybox 或者buildroot等工具 制作文件系统 以下参考陈富林博客使用buildroot制作文件系统   写的比较详细   记录一下 https://www.cnblogs.com/ ...

  6. I.MX6 Linux Qt 启动流程跟踪

    /*************************************************************************** I.MX6 Linux Qt 启动流程跟踪* ...

  7. webpack基本打包配置流程

    项目搭建以及webpack打包配置流程 创建文件夹EC(文件夹和文件名根据需求自定义) 在EC文件夹下新建文件夹APP 在APP文件夹下新建入口文件index.js 和运行该入口文件的index.ht ...

  8. 腾讯云乐固客户端加固打包上线流程

    腾讯云乐固打包上线流程 我们的android app开发好之后,都要走一个上架流程,但是在上架之前,我们要做一些操作,什么操作呢?比如混淆,或者app加固,得到加固包之后再签名,签名之后得到的包我们在 ...

  9. iOS开发基础:最新的APP打包上架流程

    之前有人留言让我更新部分文章,下面就为大家分享一下iOS的APP打包上架流程: 上传至apple developer 1.1 上传准备工作 更新上架和发布上架不同,在原始版本首次上架的时候就将描述文件 ...

最新文章

  1. 接入层的流程和非接入层
  2. 牛人 20000 字的 Spring Cloud 总结,太硬核了~
  3. 疫情过后,未来只有三种企业:华为、海尔和腾讯!
  4. UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 4..... 针对调用文件出现该错误时的解决办法
  5. 树莓派使用STEP5:安装samba文件共享服务器
  6. 08:石头剪刀布【一维数组】
  7. Manjaro Linux下使RIME支持86/98五笔输入法
  8. SharePoint 网站的导入导出
  9. [湖南大学程序设计实训训练作业一]7.F1方程式冠军(灵活运用下标来简化代码)
  10. 看了本文让你laravel安装laravel-queue-rabbitmq一路顺风
  11. ubantu下安装redis
  12. python银行利息问题_(完整版)存款利率问题应用题
  13. 获取微信运动 php,【小程序+ thinkphp5】 获取微信运动数据
  14. 如何解决刷新一瞬间 出现样式未加载完 或者 出现VUE代码问题
  15. 重磅!《中国迈向新一代人工智能》全文来了。道翰天琼认知智能平台为您揭秘新一代人工智能-1。
  16. 顺丰速运——深圳大数据部一面(18分钟)
  17. 「GitChat新手引导」获奖名单公布,更多引导细节!
  18. C语言文件操作(1)
  19. c语言汉诺塔实验报告,C语言汉诺塔的简单了解
  20. 永年二中2021高考成绩查询,喜讯丨邯郸市永年二中今年高考成绩再创历史新高...

热门文章

  1. nuget 部署 (一) 环境搭建
  2. 奇异矩阵 singular matrix
  3. 弘辽科技:小伙退伍网上创业卖特产,教你免费如何开淘宝网店
  4. python - scrapy '笔下文学'
  5. 元宇宙商标的致富路,断了
  6. Vue+Echarts实现中国地图+各省业务数据分布情况组件
  7. 医疗电子红外线人体额温枪方案
  8. 【云原生 | 36】Docker快速部署主流脚本语言JavaScript
  9. 微信小程序开发之——音乐播放器-播放列表(3.5)
  10. ILRuntime来实现热更新的优与劣!