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

Exynos-4412不仅可以运行Android,还可以运行简单的linux最小文件系统(不带显示界面的linux系统),下面我们来讲解一下这种文件系统的制作。

制作文件系统我们需要使用到Busybox工具。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。下面我们来讲解一下如何使用BusyBox制作最小文件系统:

首先拷贝busybox-1.21.1.tar.bz2到我们的虚拟机的Ubuntu系统上,然后执行解压命令:tar -xvf busybox-1.21.1.tar.bz2,解压完成后:

然后使用cd命令进入到Busybox文件夹中,:

Busybox的编译配置和Linux内核编译配置使用的命令是一样的,下面我们开始配置Busybox,使用命令make menuconfig会出现Busybox的配置界面,:

我们选中Busybox Settings如上图,然后按回车进入到Busybox Settings界面,:

在Busybox Settings配置选项里面我们需要修改两个地方,第一个是Build Optiions_> Cross Compiler prefix,它是指定用什么编译器来编译Busybox,选中Build Options如上图,然后按回车,进入到Build Options配置界面,:

选中Build Options配置界面的Cross Compiler prefix如上图,然后按回车,进入Cross Compiler prefix配置界面,:

我们在上图输入使用的交叉编译工具arm-none-linux-gnueabi-,:

然后按回车返回到Build Options配置界面,这时可以看到刚才我们设置的交叉编译工具,:

然后使用键盘的左右按键选中Exit,:

然后按回车,回到Busybox Settings设置界面,:

选中Installation Options如上图,然后按回车,进入Installation Options配置界面,:

选中BusyBox installation prefix如上图所示,然后按回车进入BusyBox installation prefix配置界面(这个界面是设置编译完Busybox,把最终生成的二进制文件安装到哪个目录下面),:

我们删除上图里面的./_install,然后输入../system(最终生成的二进制文件会安装到当前目录的上一级目录下的system目录里面),:

然后按回车,回到Installation Options,:

使用键盘的向右方向键移动光标到“Exit”,:

然后按回车,返回到Busybox Settings,使用键盘向右的方向键,移动光标到“Exit”,:

然后按回车,返回到Busybox Configuration,使用键盘向右的方向键移动光标到“Exit”,:

然后输入回车,弹出保存配置界面,:

使用键盘向右的方向键,移动光标到“Yes”,然后按回车保存配置,退出配置界面,:

现在Busybox的配置已经完成了,接下来我们开始编译Busybox,在Ubuntu的终端输入make命令开始编译Busybox,:

下图为编译过程中的截图:

下图为编译完成的截图:

现在编译完成了,接下来我们需要把编译生成的二进制文件安装到刚才我们指定的../system目录里面,输入make install命令安装二进制文件到../system目录,:

下图为make install执行完成的截图:

现在我们使用cd命令,打开../system,看看里面安装的文件,:

制作的文件系统还需要dev,etc,lib,mnt,proc,sys,tmp,var文件夹,我们需要用命令mkdir 来创建一下,:

使用cd命令进入到刚才创建的etc文件夹,:

在etc目录下使用vi建立eth0-setting文件,并在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

然后保存并退出eth0-setting,使用chmod命令修改eth0-setting的权限,:

在etc目录下用mkdir命令建立init.d文件夹,如下如:

然后使用cd命令进入到init.d文件夹,:

在init.d文件夹下面使用vi命令建立ifconfig-eth0文件,:

然后在ifconfig-eth0文件输入下面的内容:

#!/bin/sh

echo -n Try to bring eth0 interface up......>/dev/ttySAC2

if [ -f /etc/eth0-setting ] ; then

source /etc/eth0-setting

if grep -q "^/dev/root / nfs " /etc/mtab ; then

echo -n NFS root ... > /dev/ttySAC2

else

ifconfig eth0 down

ifconfig eth0 hw ether $MAC

ifconfig eth0 $IP netmask $Mask up

route add default gw $Gateway

fi

echo nameserver $DNS > /etc/resolv.conf

else

if grep -q "^/dev/root / nfs " /etc/mtab ; then

echo -n NFS root ... > /dev/ttySAC2

else

/sbin/ifconfig eth0 192.168.253.12 netmask 255.255.255.0 up

fi

fi

echo Done > /dev/ttySAC2

然后保存并退出ifconfig-eth0,使用chmod命令修改ifconfig-eth0的权限,:vim

然后在init.d文件夹下面使用vi命令建立rcS文件,:

/home/cym/system/etc/init.d

然后在rcS文件输入下面的内容:

#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:

runlevel=S

prevlevel=N

umask 022

export PATH runlevel prevlevel

#

#       Trap CTRL-C &c only in this shell so we can interrupt subprocesses.

#

trap ":" INT QUIT TSTP

/bin/hostname iTOP-4412

#/bin/mount -n -t proc none /proc

#/bin/mount -n -t sysfs none /sys

#/bin/mount -n -t usbfs none /proc/bus/usb

#/bin/mount -t ramfs none /dev

[ -e /proc/1 ]    || /bin/mount -n -t proc  none /proc

[ -e /sys/class ] || /bin/mount -n -t sysfs none /sys

[ -e /dev/tty ]   || /bin/mount    -t ramfs none /dev

echo /sbin/mdev > /proc/sys/kernel/hotplug

/sbin/mdev -s

#/bin/hotplug

# mounting file system specified in /etc/fstab

mkdir -p /dev/pts

mkdir -p /dev/shm

/bin/mount -n -t devpts none /dev/pts -o mode=0622

/bin/mount -n -t tmpfs tmpfs /dev/shm

#/bin/mount -n -t ramfs none /tmp

#/bin/mount -n -t ramfs none /var

mkdir -p /var/empty

mkdir -p /var/log

mkdir -p /var/log/boa

mkdir -p /var/lock

mkdir -p /var/run

mkdir -p /var/tmp

ln -sf /dev/ttyS2 /dev/tty2

ln -sf /dev/ttyS2 /dev/tty3

ln -sf /dev/ttyS2 /dev/tty4

syslogd

/etc/rc.d/init.d/netd start

echo "                        " > /dev/tty1

echo "Starting networking..." > /dev/tty1

#sleep 1

#/etc/rc.d/init.d/httpd start

#echo "                        " > /dev/tty1

#echo "Starting web server..." > /dev/tty1

#sleep 1

#/etc/rc.d/init.d/leds start

#echo "                        " > /dev/tty1

#echo "Starting leds service..." > /dev/tty1

#echo "                        "

#sleep 1

#echo "*************************************" > /dev/ttySAC2

#echo "     http://www.topeet.com.cn        " > /dev/ttySAC2

#echo "*************************************" > /dev/ttySAC2

#echo "*************************************"

#echo "     http://www.topeet.com.cn        "

#echo "*************************************"

mkdir /mnt/disk

sleep 1

/sbin/ifconfig lo 127.0.0.1

/etc/init.d/ifconfig-eth0

然后保存并退出rcS,使用chmod命令修改rcS的权限,:

接下来输入ls命令可以看到我们创建的两个文件ifconfig-eth0和rcS,:

接下来使用cd ..命令返回到init.d的上一级目录etc,:

接下来在etc目录下使用vi建立文件passwd,:

在新建立的passwd文件输入下面的内容:

root::0:0:root:/:/bin/sh

bin:*:1:1:bin:/bin:

daemon:*:2:2:daemon:/sbin:

nobody:*:99:99:Nobody:/:

输入结果:

然后保存并退出passwd,使用chmod命令修改passwd的权限,:

然后使用vi命令在etc目录建立profile文件,:

然后在profile输入下面的内容:

# Ash profile

# vim: syntax=sh

# No core files by default

ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"

LOGNAME=$USER

PS1=‘[[email protected]$HOSTNAME]# ‘

PATH=$PATH

HOSTNAME=`/bin/hostname`

export USER LOGNAME PS1 PATH

输入结果:

然后保存并退出profile,使用chmod命令修改profile的权限,:

接下来使用mkdir命令在etc目录建立文件夹rc.d,:

使用cd命令进入到刚才建立的rc.d文件夹,:

接下来在rc.d目录下使用mkdir建立init.d文件夹,:

然后使用cd命令进入到刚才建立的init.d文件夹,:

接着在init.d文件夹,使用vi命令建立netd文件,:

然后在netd文件里面输入下面的内容:

#!/bin/sh

base=inetd

# See how we were called.

case "$1" in

start)

/usr/sbin/$base

;;

stop)

pid=`/bin/pidof $base`

if [ -n "$pid" ]; then

kill -9 $pid

fi

;;

esac

exit 0

输入结果,:

然后保存并退出netd,使用chmod命令修改netd的权限,

接着使用cd ../../命令返回到etc目录,

接着使用cd ..命令返回到system目录,

接着使用cd命令进入到lib目录,

因为我们使用的交叉编译环境和编译内核是一样的,所以我们的编译器是/usr/local/arm/arm-2009q3,Busybox编译生成的二进制文件十一动态链接库的形式运行,所以我们需要拷贝编译器里面的库文件到lib目录,使用下面的命令:

/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib/* ./

执行结果:

可以使用ls命令查看下拷贝过来的库文件,

库文件拷贝完成后,使用cd ..命令返回到system目录,

接下来使用cd命令进入到var目录,

然后使用mkdir命令在var目录下建立lib,lock,log,run,tmp五个目录,

我们可以使用ls命令查看一下创建的这几个目录,

至此,文件系统所需要的文件都已经创建好了,使用cd ../../命令返回到system文件夹的上一级目录

制作压缩包的工具,拷贝“光盘\tools中的linux_tools.tgz”文件到Ubuntu的”/”目录,解压到“/”目录。

下面我们可以使用命令make_ext4fs -s -l 314572800 -a root -L linux system.img system生成system.img文件系统镜像

我们可以使用ls命令查看一下生成的system.img

现在我们已经完成了linux文件系统的制作,可以把我们制作的system.img烧写到iTOP-4412开发板上,烧写的方式和Android文件系统的烧写一样。

时间: 2024-10-18 19:47:04

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

【开学季】自学嵌入式开发|四核开发板|4412开发板|ARM+Android+linux技术

淘宝店铺:迅为开发板http://arm-board.taobao.com 网站:http://www.topeetboard.com QQ咨询:2551456065 电话咨询:010-58957586 迅为4412开发板提供详细使用手册,丰富配套入门视频教程(不断更新),完善的售后体系,助你轻松入门,快速研发新产品. 核心板参数 尺寸 50mm*60mm 高度 连同连接器在内0.26cm CPU Exynos4412,四核Cortex-A9,主频为1.4GHz-1.6GHz 内存 1GB 双通

[资料]学习必备嵌入式开发板-4412开发板ARM+Android+linux技术全覆盖

迅为4412开发板提供详细使用手册,丰富配套入门视频教程(不断更新),完善的售后体系,助你轻松入门,快速研发新产品. 4412开发板使用手册: 4412开发板配套入门视频教程 01-烧写.编译以及基础知识视频 02-嵌入式Linux视频 03-iTOP-4412开发板硬件设计指导视频 04-Android应用程序视频 05-Android应用教程 06-裸机程序实验文档以及工具文件 07-Linux-x86-Qt5.3.2以及QtE4.7.1应用视频 08-Linux驱动教程2015 核心板参数

基于讯为4412开发板的Android开发流程

讯为4412开发板  使用三星2410芯片,基于arm9架构,由于自己电脑硬件的局限,只能跑Android4.0.3系统. 1.Uboot这个直接使用官方镜像烧写就可以了,一般情况不用去重复烧写. 略. 烧写命令:fastboot.exe flash bootloader u-boot-iTOP-4412.bin 2.linux Kernel 1)设备驱动 --字符设备驱动 --杂项设备驱动 --I2C设备驱动(两种模式 a,linux内部i2c体系 包括两部分:i2c设备驱动与i2c总线驱动,

4412开发板Linux系统编程实战-字符设备控制

在 linux 驱动中字符驱动是必须掌握的,本章主要介绍字符设备应用的程序,无论是学习了后面的知识自己写的字符驱动,还是已有的字符驱动,都需要能够写一些简单的应用程序. 即使从事 linux 驱动的工作,linux 驱动写出来之后,也需要由驱动程序员编写简单的应用进行测试的. 另外,关于驱动部分,迅为电子有专门的驱动实验教程提供给大家学习,大家有了这些基础之后再去学习底层的知识就会很容易了. 在使用手册的第八章,大家可以看到这些 c 程序也是可以在 Android 下面运行的,只不过没有图形界面

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

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

迅为三星Exynos 4412开发板四核Cortex-A9ARM安卓linux开发板

开发板光盘资料包含:原理图(PDF格式).底板PCB(Allegro格式).驱动程序源码.芯片和LCD数据手册.开发环境.产品使用手册. 4412开发板简介: iTOP-Exynos4412开发板采用 Exynos4412 的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及 16GB 存储,具有稳定性强.可靠性高,能适用于对性能和处理能力有更高要求的嵌入式系统应用场合. iTOP-Exynos4412开发板内置有无线 WIFI 模块.Bluetooth.GPS.Came

4412开发板疯狂大促销,团购火热进行中

特大喜讯:九鼎创展全新四核x4412开发板正值上市推广期,特拿出100套开发板进行团购疯狂大促销,仅此100套,卖完即恢复原价.团购QQ群:16073601 团购优惠价: x4412开发板+7寸高清电容屏[1024*600]=699元 x4412开发板+7寸高清电容屏[1024*600]+优质红外遥控器[提供源码]=699元 x4412开发板+7寸高清电容屏[1024*600]+优质红外遥控器[提供源码]+USB WIFI=699元 x4412开发板+7寸高清电容屏[1024*600]+优质红外

迅为4412开发板学习之win8下基础软件的安装和学习

平台:迅为4412开发板 详情了解:http://topeetboard.com更多了解:https://arm-board.taobao.com 一.超级终端的安装和使用 1 关闭 win8 的自动更新 如果用户使用的 PC 机没有串口,就需要用到 USB转串口驱动.我们给用户配套的硬件是 PL 2303, 提供的驱动也是 PL2303. 如果用户使用其它的设备, 那么所需要的驱动就不一样了. 本来驱动安装后直接使用,但是在 win8 下有自动更新,默认自动更新的,它会更新到最 新的版本,最新

4412开发板三星cortex-A9四核开发板友坚科技

UT4412BV03开发板介绍 4412开发板三星cortex-A9四核开发板友坚科技 友坚恒天科技urbetter.net专注于三星平台产品的研发,是三星在中国最具实力的方案公司.公司主打的三星平板电脑方案销量,连续多年稳居第一.公司定位于中高端产品的研发,具有多年的嵌入式产品研发经验:基于三星 A15-Exynos 5250.A9-Exynos 4412.A8-S5PV210.ARM11-S3C6410.ARM9-S3C2416等处理器,开发了系列化的产品,为客户提供了全面的产品选择及专业化