BusyBox

BusyBox制作Initramfs嵌入式Linux根文件系统

被刻印的时光 ゝ 提交于 2019-12-04 12:42:37
嵌入式Linux系统由linux内核与根文件系统两部分构成,两者缺一不可(无根文件系统的内核无法启动) 使用busybox构建嵌入式根文件系统目录结构,配置内核,并且使用Initramfs制作成根文件系统,根文件系统与内核都一起烧写在镜像中 起步骤如下; 创建目录结构 根目录的目录结构主要包含如下目录 /dev /etc /lib /usr /var /proc /tmp /home /root /mnt /bin /sbin /sys 1:创建一个目录 /forlinx/rootfs(根据实际情况选择目录创建在哪个路径下) mkdir /forlinx/rootfs 2:在/forlinx/rootfs的目录下创建如下目录 cd /forlinx/rootfs mkdir dev usr bin sbin lib etc dev proc tmp sys var root mnt 使用busybox构建/bin /sbin 目录 使用busybox创建根目录下/bin /sbin等目录下面的文件 下载、解压busybox源码:busybox-1.23.2.tar.bz2 tar xjf busybox-1.23.2.tar.bz2 进入解压busybox后的文件夹目录 cd /forlinx/busybox-1.23.2/ 执行如下指令,并配置 make distclean

Ubuntu16.04编译安装BusyBox

℡╲_俬逩灬. 提交于 2019-12-04 12:42:04
简述 Ubuntu16.04LTS编译安装BusyBox,出现问题及解决方案。 下载源码 下载 BusyBox源码 选择一个扩展名为.tar.bz2文件下载 本例中使用busybox-1.27.2.tar.bz2 解压 在源码所在位置右键在此打开终端,输入解压命令,文件名与自己所下载版本文件对应 tar -jxvf busybox- 1.27 .2 .tar .bz 2 解压后当前文件夹生成一个文件夹,进入到解压后的文件夹 cd busybox- 1.27 . 2 / 配置BusyBox make menuconfig 如图所示出现了错误,并不能正常配置,这是由于一些静态库的问题。 系统中一般是没有的,(能够正常运行的直接跳过到下面配置) 安装支持库 上一步make menuconfig执行成功的直接跳过此步 上一步报错的看这里 以下apt命令需要互联网 首先更新软件源 sudo apt-get update 安装aptitude sudo apt install aptitude 安装libncurses5-dev sudo aptitude install libncurses5-dev 等待安装完成后,在BusyBox源码目录执行配置命令 make menuconfig 如图没有报错,成功解决静态库的问题 很快就会弹出一个蓝色配置窗口 配置 选择Busybox

根文件系统及Busybox详解之一

本小妞迷上赌 提交于 2019-12-04 12:40:31
根文件系统及Busybox简介 目录 1.根文件系统简介 ... 2 2.Busybox简介 ... 2 2.1Busybox简介 ... 2 2.2Busybox目录结构简介 ... 2 2.3init进程简介 ... 3 3.构建自己的根文件系统 ... 9 3.1编译Busybox . 9 3.2向Busybox中添加新命令 ... 19 4.附录 ... 26 4.1Busybox实现的简单分析 ... 26 4.2Busybox配置选项说明 ... 27 Powered By chenlong12580 chenlong12580@126.com 4/5/2013 1. 根文件系统简介 所谓制作根文件系统,就是创建各种目录,并且在目录里创建相应的文件。例如:在/bin目录下放置可执行程序,在/lib下放置各种库等等。 2.Busybox 简介 2.1Busybox 简介 Busybox是一个开源项目,遵循GPL v2协议。Busybox将众多的UNIX命令集合进一个很小的可执行程序中,可以用来替代GNU fileutils、shellutils等工具集。Busybox中各种命令与相应的GNU工具相比,所能提供的选项比较少,但是也足够一般的应用了。Busybox主要用于嵌入式系统。 Busybox在编写过程中对文件大小进行了优化,并考虑了系统资源有限(比如内存等)的情况

Launching Linux from Busybox (pivot_root or switch_root, or ? )

耗尽温柔 提交于 2019-12-04 09:52:55
On a beaglebone hardware, I want to start on a partition with a minimalist busybox system (/dev/mmcblk0p2), run some checks on the 2 other partitions (/dev/mmcblk0p5 & /dev/mmcblk0p6) containing more complete Linux systems (Angström), then start on one or the other of the 2 Linux systems based on those tests. The problem is that I cannot find how to start another system correctly from busybox. What I did: From the (perfectly working) busybox system: export PATH=/bin:/sbin:/usr/bin:/usr/sbin mount -t sysfs sysfs /sys mkdir -p /dev/pts mount -t devpts devpts /dev/pts mount /dev/mmcblk0p5 /mnt

MIPS32 router: module_init not called for kernel module

喜欢而已 提交于 2019-12-04 04:17:01
问题 I'm developing a kernel module that I want to run on my router. The router model is DGN2200v2 by Netgear. It's running Linux 2.6.30 on MIPS. My problem is that when I load my module it seems that my module_init isn't getting called. I tried to narrow it down by modifying my module_init to return -3 (which indicates an error?) and insmod still reports success. I can see my module in the output of lsmod , but I don't see my printk output using dmesg . For starters, I wanted to create the

Alternatives to xargs -l

本小妞迷上赌 提交于 2019-12-04 03:45:51
I want to rename a bunch of dirs from DIR to DIR.OLD. Ideally I would use the following: find . -maxdepth 1 -type d -name \"*.y\" -mtime +`expr 2 \* 365` -print0 | xargs -0 -r -I file mv file file.old But the machine I want to execute this on has BusyBox installed and the BusyBox xargs doesn't support the "-I" option. What are some common alternative methods for collecting an array of files and then executing on them in a shell script? praetorian droid You can use -exec and {} features of the find command so you don't need any pipes at all: find -maxdepth 1 -type d -name "*.y" -mtime +`expr 2

Ubuntu14.04 交叉编译busybox给 Android系统ARM目标板

爷,独闯天下 提交于 2019-12-03 20:06:19
拿到一个RK3288的开发板,但是不得不说adb shell不太好用,像下面这样太锉了。 于是想着把busybox编译进去。 1. 准备编译环境 其实现在Ubuntu上交叉编译相比之前要简单那很多。 1.1 安装 JDK 6: sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java6-installer 1.2 依赖包: Ubuntu 12.04 软件包安装: sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ g++-multilib mingw32 tofrodos gcc-multilib ia32-libs\ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 Ubuntu 13.10/14.04 软件包安装: sudo apt-get install git

Docker使用pipework配置本地网络

混江龙づ霸主 提交于 2019-12-03 15:25:11
需求 在使用Docker的过程中,有时候我们会有将Docker容器配置到和主机同一网段的需求。要实现这个需求,我们只要将Docker容器和主机的网卡桥接起来,再给Docker容器配上IP就可以了。 下面我们就使用pipework工具来实现这一需求。 1、pipework的安装 Pipework是一个Docker配置工具,是一个开源项目,由200多行shell实现。 Pipework是一个集成工具,需要配合使用的两个工具是OpenvSwitch和Bridge-utils。 $ git clone https://github.com/jpetazzo/pipework.git $ sudo cp pipework/pipework /usr/local/bin/ 2、pipework配置Docker的三个简单场景 2.1  pipework+linux bridge:配置Docker单主机容器 #主机A:192.168.187.143 #主机A上创建两个容器con1、con2 docker run -itd --name con1 --net=none ubuntu:14.04 bash docker run -itd --name con2 --net=none ubuntu:14.04 bash #使用pipework建立网桥br0,为容器con1和con2添加新的网卡

How to write a binary file using Bash?

空扰寡人 提交于 2019-12-03 15:22:57
问题 My problem is that I need to create a file with this exact bytes: 48, 00, 49, 00 . I cannot use C, perl, other scripting language (the target is an embedded device). I tried this using awk, and in desktop it does work: # awk 'BEGIN{ printf "%c%c%c%c", 48, 00, 49, 00 }' | hexdump 0000000 0030 0031 0000004 However the target platform is running busybox v1.13.2 and this code does not work there. The awk version there does not output ascii "0" (all other values are ok). What are your

Linux系统开机显示BusyBox v1.22.1 built-in shell(ash) 解决方法

青春壹個敷衍的年華 提交于 2019-12-03 13:38:09
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。 Linux系统开机时,有时会出现BusyBox v1.22.1 built-in shell(ash)的提示信息,无法正常开机。 BusyBox v1.22.1 (Ubuntu 1:1.22.0-15ubuntu) built-in shell(ash) Enter 'help' for a list of built-in commands (initramfs) 此时,输入exit会显示以下信息: /dev/sda2 contains a file system with errors, check forced. Inodes that were part of a corruptde orphan linked list found. /dev/sda2:UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY. (i.e.,without -a or -p options)