Linux 最小系统制作

Linux 最小系统制作

一、制作工具Busybox

在制作文件系统的时候,我们需要使用“Busybox 工具”,即为附件压缩包“busybox-1.21.1.tar.bz2”。“BusyBox 工具”是一个集成了一百多个最常用Linux 命令和工具的软件。 BusyBox 包含了一些简单的工具,例如 ls、cat 和 echo 命令等等,还包含了一些更大、更复杂的工具,例 grep、find、mount 以及 telnet 命令。有些人将 BusyBox 称为 Linux工具里的瑞士军刀。简单的说 BusyBox 就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统自带的 shell。

“Busybox 工具”的官方网址是“http://www.busybox.net/”,这是一个开源的程序,并且一直在更新中,我们使用的版本是“busybox-1.21.1.tar.bz2”。

二、制作步骤

(1)首先拷贝“busybox-1.21.1.tar.bz2”到我们的虚拟机 Ubuntu 系统上,然后在Ubuntu 命令行,执行“#tar -xvf busybox-1.21.1.tar.bz2”解压命令

(2)如下图,使用“#cd busybox-1.21.1”命令进入到前面解压出来的“busybox-1.21.1”文件夹中

(3)输入make menuconfig 进行配置

(4)进入Busybox Settings ->Build Optiions-> Cross Compiler prefix

(5)输入交叉编译器arm-none-linux-gnueabi-

(6)返回busybox settings

(7)进入Installation Options ->BusyBox installation prefix

(8)删除./_install

(9)输入../system

(10)返回最上级,然后保存退出

(11)输入make,开始编译busybox

(12)把编译后的二进制文件安装到../system,输入命令make install

(13)Cd ../system 看里面的文件

(14)制作的文件系统还需要新建“dev,etc,lib,mnt,proc,sys,tmp,var”文件夹,使用命令“mkdir dev etc lib mnt proc sys tmp var”

(15) 进入ect文件夹cd etc,创建文件vi eth0-setting ,输入以下内容并保存:

IP=192.168.1.230
Mask=255.255.255.0
Gateway=192.168.1.1
DNS=192.168.1.1
MAC=08:90:90:90:90:90

(16) 修改文件权限chmod 755 eth0-setting

(17)在 etc 目录下用“mkdir init.d”命令建立“init.d”文件夹 ,进入init.d文件夹,cd init.d,创建文件vi ifconfig-eth0 ,输入以下内容

1. #!/bin/sh  
2.echo -n Try to bring eth0 interface up......>/dev/ttySAC2  
3.if [ -f /etc/eth0-setting ] ; then  
4.source /etc/eth0-setting  
5.if grep -q "/dev/root / nfs " /etc/mtab ; then  
6.echo -n NFS root ... > /dev/ttySAC2  
7.else  
8.ifconfig eth0 down  
9.ifconfig eth0 hw ether $MAC  
10.ifconfig eth0 $IP netmask $Mask up  
11.route add default gw $Gateway  
12.fi  
13.echo nameserver $DNS > /etc/resolv.conf  
14.else  
15.if grep -q "/dev/root / nfs " /etc/mtab ; then  
16.echo -n NFS root ... > /dev/ttySAC2  
17.else  
18./sbin/ifconfig eth0 192.168.253.12 netmask 255.255.255.0 up  
19.fi  
20.fi  
21.echo Done > /dev/ttySAC2  

(18)修改文件权限chmod 755 ifconfig-eth0

(19)然后在“init.d”文件夹下使用“vi rcS”命令建立“rcS”文件 ,输入以下内容

1.#! /bin/sh  
2.PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:  
3.runlevel=S  
4.prevlevel=N  
5.umask 022  
6.export PATH runlevel prevlevel  
7.# #  
8.Trap CTRL-C &c only in this shell so we can interrupt subprocesses.  
9.#  
10.trap ":" INT QUIT TSTP  
11./bin/hostname iTOP-4412  
12.#/bin/mount -n -t proc none /proc  
13.#/bin/mount -n -t sysfs none /sys  
14.#/bin/mount -n -t usbfs none /proc/bus/usb  
15.#/bin/mount -t ramfs none /dev  
16.[ -e /proc/1 ] || /bin/mount -n -t proc none /proc  
17.[ -e /sys/class ] || /bin/mount -n -t sysfs none /sys  
18.[ -e /dev/tty ] || /bin/mount -t ramfs none /dev  
19.echo /sbin/mdev > /proc/sys/kernel/hotplug  
20./sbin/mdev -s  
21.#/bin/hotplug  
22.# mounting file system specified in /etc/fstab  
23.mkdir -p /dev/pts  
24.mkdir -p /dev/shm  
25./bin/mount -n -t devpts none /dev/pts -o mode=0622  
26./bin/mount -n -t tmpfs tmpfs /dev/shm  
27.#/bin/mount -n -t ramfs none /tmp  
28.#/bin/mount -n -t ramfs none /var  
29.mkdir -p /var/empty  
30.mkdir -p /var/log  
31.mkdir -p /var/log/boa  
32.mkdir -p /var/lock  
33.mkdir -p /var/run  
34.mkdir -p /var/tmp  
35.ln -sf /dev/ttyS2 /dev/tty2  
36.ln -sf /dev/ttyS2 /dev/tty3  
37.ln -sf /dev/ttyS2 /dev/tty4  
38.syslogd  
39./etc/rc.d/init.d/netd start  
40.echo " " > /dev/tty1  
41.echo "Starting networking..." > /dev/tty1  
42.#sleep 1  
43.#/etc/rc.d/init.d/httpd start  
44.#echo " " > /dev/tty1  
45.#echo "Starting web server..." > /dev/tty1  
46.#sleep 1  
47.#/etc/rc.d/init.d/leds start  
48.#echo " " > /dev/tty1  
49.#echo "Starting leds service..." > /dev/tty1  
50.#echo " "  
51.#sleep 1  
52.#echo "*************************************" > /dev/ttySAC2  
53.#echo " http://www.topeet.com.cn " > /dev/ttySAC2  
54.#echo "*************************************" > /dev/ttySAC2  
55.#echo "*************************************"  
56.#echo " http://www.topeet.com.cn "  
57.#echo "*************************************"  
58.mkdir /mnt/disk  
59.sleep 1  
60./sbin/ifconfig lo 127.0.0.1  
61./etc/init.d/ifconfig-eth0  

(20)然后保存并退出“rcS”文件,使用“chmod 755 rcS”命令修改“rcS”文件的权限

(21)返回上一级,cd ..进入etc文件夹

(22)接下来在“etc”目录下使用“vi passwd”命令建立文件“passwd” ,输入以下内容

root::0:0:root:/:/bin/sh
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
nobody:*:99:99:Nobody:/:

(23)然后保存并退出“passwd”文件,使用“chmod 755 passwd”命令修改“passwd”文件的权限

(24)使用“vi profile”命令在“etc”目录建立“profile”文件 ,输入

1.# Ash profile  
2.# vim: syntax=sh  
3.# No core files by default  
4.ulimit -S -c 0 > /dev/null 2>&1  
5.USER="`id -un`"  
6.LOGNAME=$USER  
7.PS1=‘[[email protected]$HOSTNAME]# ‘  
8.PATH=$PATH  
9.HOSTNAME=`/bin/hostname`  
10.export USER LOGNAME PS1 PATH  

(25)然后保存并退出“profile”文件,使用“chmod 755 profile”命令修改“profile”文件的权限

(26)接下来使用“mkdir rc.d”命令在“etc”目录建立文件夹“rc.d”

(27)进入rc.d,使用“mkdir init.d”命令建立“init.d”文件夹 ,进入cd init.d文件夹

(28)接着在“init.d”文件夹,使用“vi netd”命令建立“netd”文件 ,输入

1.#!/bin/sh  
2.base=inetd  
3.# See how we were called.  
4.case "$1" in  
5.start)  
6./usr/sbin/$base  
7.;;  
8.stop)  
9.pid=`/bin/pidof $base`  
10.if [ -n "$pid" ]; then  
11.kill -9 $pid  
12.fi  
13.;;  
14.esac  
15.exit 0  

(29)然后保存并退出“netd”文件,使用“chmod 755 netd”命令修改“netd”文件的权限

(30)使用“cd ../../../”命令返回到“system”目录 ,进入lib文件夹

(31)因为我们使用的交叉编译环境和编译内核是一样的,所以我们的编译器在文件夹“/usr/local/arm/arm-2009q3”中。Busybox 编译生成的二进制文件是以动态链接库的形式运行,所以我们需要拷贝编译器里面的库文件到“lib”目录,使用命令:cp/usr/local/arm/arm-2009q3/arm-none-Linux-gnueabi/libc/lib/* ./

(32)返回system,再进入var,然后使用“mkdir lib lock log run tmp”命令在“var”目录下建立“lib,lock,log,run,tmp”五个目录

(33)所有文件都创建好了,下面需要编译成映像文件

(34)拷贝“Linux_tools.tgz”到 Ubuntu 的“/”目录下,并使用命令“tar -vxf linux_tools.tgz”解压

(35)使用命令“make_ext4fs -s -l 314572800 -a root -L Linux system.img system”,执行该命令后,会生成“system.img”文件系统镜像

(36)然后把system.img烧录进开发板,烧录方式和android和QT的系统文件一样,其他的映像可以使用QT和android的映像

原文地址:https://www.cnblogs.com/jemylu/p/10744652.html

时间: 2024-08-02 19:19:03

Linux 最小系统制作的相关文章

[嵌入式开发入门]4412开发板从零建立Linux最小系统

本文转自iTOP-4412开发板实战教程书籍 http://www.topeetboard.com iTOP-4412开发板不仅可以运行Android,还可以运行简单的Linux最小文件系统. 最小Linux 系统“麻雀虽小,五脏俱全”,它不带图形界面的Linux 系统,剔除干扰因素便于理解,用来学习Linux系统编程非常合适. 另外,Linux最小系统占用的内存空间很小,也经常用于不带图形界面的项目. 1. 最小Linux系统简介 制作文件系统需要使用到Busybox工具. BusyBox是一

stm32最小系统制作(原理图,PCB图,焊接等)

一直想自己做一个最小系统,这次终于把想法付诸实现.     原理图如下: PCB图如下: 过了多日,板子终于邮到了,就是下面这个熊样. 焊接了稳压电路,发现稳压电路原理图部分画错,没有接地,然后飞了根线,稳压电路才稳稳的好用. 焊接stm32芯片的时候,其中VCC和GND引脚挂了锡,结果烧了一块稳压芯片,最后百般修改,终于基本好用.焊接好的板子如下,已经没有故障了. 终于完成,又做完了意见毕业前要做的事情. 来自为知笔记(Wiz)

学习手记-基于iTOP4412开发板Linux最小系统烧录

最小系统只能通过超级终端进行操作,没有画面显示. 使用工具:超级终端.fastboot 通信:串口RS232 操作环境:开机后完成bootloader,但还未挂载文件系统之前.(开机后通过"超级终端"中止文件系统挂载) 操作权限:root 操作步骤: 1.格式化(按顺序来) fdisk -c 0     [分区命令 分区序号:0 (该命令将会清空emmc)] fatformat mmc 0:1    [按"FAT"格式进行格式化,对象:mmc,分区序号0第一分区]

在Linux最小系统上编译运行第一个helloworld程序

一.安装和使用SSH软件 1.安装SSH 软件 1)SSH 软件压缩包可以在网盘下载,下载后解压,进入解压出来的文件夹,如下图. 2)单击上图中的“SSHSecureShellClient-3.2.9.exe”,开始安装 3)如下图,生成桌面图标. 1.使用SSH 软件传文件 1)进入虚拟机的Ubuntu 系统,使用ifconfig 命令,确定Ubuntu 的IP 地址.如下图所 示,用户的IP 地址,需要自己确认,这里只是以本机的IP 为例. 2)双击快捷方式“SSH Secure File 

基于topeer 4412开发板 无界面linux文件系统的制作

Exynos-4412不仅可以运行Android,还可以运行简单的linux最小文件系统(不带显示界面的linux系统),下面我们来讲解一下这种文件系统的制作. 制作文件系统我们需要使用到Busybox工具.BusyBox 是一个集成了一百多个最常用linux命令和工具的软件.BusyBox 包含了一些简单的工具,例如ls.cat和echo等等,还包含了一些更大.更复杂的工具,例grep.find.mount以及telnet.有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说

为ESXI 添加ISCSI存储设备 Linux服务器系统

为ESXI 添加ISCSI存储设备 Linux系统 本文使用的LINUX 6系统上一块硬盘制作的ISCSI存储设备其IP地址为:192.168.26.218: 在系统上直接输入:yum -y install scsi-target-utils 命令 安装 iscsi 分区设置我们将SDD这块硬盘的SDD1作为iscsi存储设备 编辑ISCSI配置文件:/etc/tgt/targets.conf 内容如下: 启动ISCSI: /etc/init.d/tgtd start(这里我们已经启动过,所以用

搭建CnetOS6.5x64最小系统及在线yum源的配置

CentOS系统作为红帽系列的一款linux系统,因为其免费.开源,在中小企业中得到了广泛应用,生产上为了更好的利用资源,都采用最小系统安装,因为一个图形界面都会占去系统资源的30%到40%,生产上一般都是最经济原则,不装图形界面,软件也是需要什么装什么,一般通过ssh连接或者xshell连接即可.本文从以下四个方面给出了CentOS系统的最小化安装及在线yum源的配置. 大纲:一.搭建CnetOS6.5x64最小系统.二.ip,主机名等的相关配置.三.本地和在线yum源的配置.四.快照及克隆.

Day 7 Linux之系统监控、硬盘分区等

Linux之系统监控.硬盘分区等 系统监控 系统监视和进程控制工具—top和free 1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 2) 了解使用top命令列出系统状态时,系统默认每5秒刷新一下屏幕上的显示结果.  1.第一行是任务队列信息 14:54:36 当前时间 up 3:42 系统运行时间(时:分) 3 users 当前登录用户数 load average:0.03 0.05 0.10

Linux统系统开发11 Socket API编程2 多进程 多线程 高并发处理

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <纲要> Linux统系统开发11 Socket API编程2 多进程 多线程 高并发处理 UDP服务器 客户端最小模型,处理字符转大写 TCP 多进程并发服务器模型,为每个客户端开启一个进程: TCP 多线程服务器模型,使用wrap函数封装 作业: ---------------------------------------------------- UDP服务器 客户端最小模型,处理字符转大写 [em