Buildroot 打包文件系统流程跟踪
/********************************************************************************** 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 打包文件系统流程跟踪相关推荐
- buildroot应用开发流程
我用的firefly rockchip系列芯片的SDK,这个SDK可以制作芯片系统的所有文件,虽然给的链接是rk3399-jd4版本的SDK,但是在一个SDK是能够编译所有rk系列芯片的linux固件 ...
- 【正点原子MP157连载】第十九章 Buildroot根文件系统构建-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
- lichee nano 荔枝派入门——buildroot构建文件系统
lichee nano 荔枝派入门–buildroot构建文件系统 获取buildroot源代码 可以从lichee官方给的链接地址或者从GitHub下载最新的buildroot源代码,具体如下: 从 ...
- activiti流程跟踪图简单详解
我用的是spring+springmvc+mybatis,前端使用的是jsp ===========前台jsp中的写法========== <img id="imgObj" ...
- linux 使用buildroot制作文件系统
可以用busybox 或者buildroot等工具 制作文件系统 以下参考陈富林博客使用buildroot制作文件系统 写的比较详细 记录一下 https://www.cnblogs.com/ ...
- I.MX6 Linux Qt 启动流程跟踪
/*************************************************************************** I.MX6 Linux Qt 启动流程跟踪* ...
- webpack基本打包配置流程
项目搭建以及webpack打包配置流程 创建文件夹EC(文件夹和文件名根据需求自定义) 在EC文件夹下新建文件夹APP 在APP文件夹下新建入口文件index.js 和运行该入口文件的index.ht ...
- 腾讯云乐固客户端加固打包上线流程
腾讯云乐固打包上线流程 我们的android app开发好之后,都要走一个上架流程,但是在上架之前,我们要做一些操作,什么操作呢?比如混淆,或者app加固,得到加固包之后再签名,签名之后得到的包我们在 ...
- iOS开发基础:最新的APP打包上架流程
之前有人留言让我更新部分文章,下面就为大家分享一下iOS的APP打包上架流程: 上传至apple developer 1.1 上传准备工作 更新上架和发布上架不同,在原始版本首次上架的时候就将描述文件 ...
最新文章
- 接入层的流程和非接入层
- 牛人 20000 字的 Spring Cloud 总结,太硬核了~
- 疫情过后,未来只有三种企业:华为、海尔和腾讯!
- UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 4..... 针对调用文件出现该错误时的解决办法
- 树莓派使用STEP5:安装samba文件共享服务器
- 08:石头剪刀布【一维数组】
- Manjaro Linux下使RIME支持86/98五笔输入法
- SharePoint 网站的导入导出
- [湖南大学程序设计实训训练作业一]7.F1方程式冠军(灵活运用下标来简化代码)
- 看了本文让你laravel安装laravel-queue-rabbitmq一路顺风
- ubantu下安装redis
- python银行利息问题_(完整版)存款利率问题应用题
- 获取微信运动 php,【小程序+ thinkphp5】 获取微信运动数据
- 如何解决刷新一瞬间 出现样式未加载完 或者 出现VUE代码问题
- 重磅!《中国迈向新一代人工智能》全文来了。道翰天琼认知智能平台为您揭秘新一代人工智能-1。
- 顺丰速运——深圳大数据部一面(18分钟)
- 「GitChat新手引导」获奖名单公布,更多引导细节!
- C语言文件操作(1)
- c语言汉诺塔实验报告,C语言汉诺塔的简单了解
- 永年二中2021高考成绩查询,喜讯丨邯郸市永年二中今年高考成绩再创历史新高...