/**********************************************************************************                  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. poj2774 sa模版
  2. Angular--TypeScript finalize 方法
  3. 平均分辨准确率对网络隐藏层节点数的非线性变化关系03
  4. 在Linux服务器上配置phpMyAdmin--允许空密码
  5. 安卓手机浏览器排行_5g时代已来临!五月安卓手机性价比排行:两千元以上5G手机屠榜...
  6. Mobius 一个运行在 .NET Core 上的 .NET 运行时
  7. 文带你深入了解 Redis 内存模型
  8. ​北京大学 2022 年博士研究生招生简章
  9. python人工智能是什么意思_人工智能和python有什么关系?
  10. 电脑计算器_教训!19年中级败给了电脑计算器,CPA难道要步后尘?
  11. Gauss-Jordan法求逆矩阵
  12. 传统高斯模糊与优化算法(附完整C++代码)
  13. linux work 账户管理,Homework Week-3 用户管理
  14. android 资源id 闪退,【报Bug】android闪退,勾选Push消息推送自定义基座后 获取oaid,vaid,aaid, app闪退...
  15. matlab动刚度仿真,基于ANSYS的转子支承动刚度计算分析.doc
  16. 制定目标的SMART原则(思维导图)
  17. 使用ML 和 DNN 建模技巧总结
  18. vs2019个性化配置
  19. 哪种款式的耳机不伤耳朵,五款不伤害耳朵听力的骨传导耳机推荐
  20. 什么叫高内聚、低耦合?

热门文章

  1. 第三方推送不能参与业务
  2. pyqt5 保存文件夹_PyQt5 文件对话框
  3. 保证金,杠杆和风险限额委托种类
  4. 乌鲁木齐疾控中心项目电力监控系统的研究与应用
  5. 计算机网络基础知识--应用层协议HTTP、FTP、SMTP
  6. 2019牛客多校第九场AThe power of Fibonacci(广义BM)
  7. 逆变器的v/f控制和droop控制的区别
  8. 科学计算机中logo,简单做了个Logo~
  9. 在西门子S7-200中一步步做库文件
  10. java IText 导出word表格