热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

6410根文件系统的制作

一.下载源码二.解压源码tarxvzfbusybox-1.13.tgztar-zvfmktools-20110720.tar.gz三.修改架构,编

一.下载源码

二.解压源码

tar   xvzf  busybox-1.13.tgz

tar   -zvf  mktools-20110720.tar.gz

三.修改架构,编译器

修改 164行CROSS_COMPILE ?=arm-linux-

修改 190行ARCH ?= arm

四.修改配置

make menuconfig 


Busybox Settings

              -----à>Build Option

                       ----------------à>

                                  Build BusyBox as a static binary (no sharedlibs) 

选择上,其他的默认即可。

然后一直退出,保存即可

接着执行 make

接着执行 make  install

最终生成的文件在_install 中

cd  _install

ls

查看

存在这四个文件,即编译成功。

五.编写脚本文件,生成文件系统基本框架

gedit    mkrootfs.sh

将如下内容复制到mkrootfs.sh中

#!/bin/sh

 

    echo "creatint rootfs dir......"

 

    mkdir rootfs

 

    cd rootfs

 

    echo "making dir : bin dev etc libproc sbin sys usr"

 

    mkdir bin dev etc lib proc sbin sys usr #必备的8个目录

 

    mkdir usr/bin usr/lib usr/sbin lib/modules

 

# Don'tuse mknod ,unless you run this Script as root !

 

# mknod-m 600 dev/console c 5 1

 

# mknod-m 666 dev/null c 1 3

 

    echo "making dir : mnt tmp var"

 

    mkdir mnt tmp var

 

    chmod 1777 tmp

 

    mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/datamnt/temp

 

    mkdir var/lib var/lock var/log var/runvar/tmp

 

    chmod 1777 var/tmp

 

    echo "making dir : home rootboot"

 

    mkdir home root boot

 

echo "done"

 

 

 

然后修改mkrootfs.sh的权限

chmod 777 mkrootfs.sh

 

然后执行   ./mkrootfs.sh

 生成如上文件

cd rootf

会看到相应的文件框架都已经做好了

接着把编译busybox 生成的四个文件,拷贝到该目录下即可。

 

六、添加文件系统的配置信息和启动项

进入 etc目录

增加如下文件

直接从主机/etc目录中拷贝group   passwd    shadow 到当前目录

剩余文件需要人为填写

profile文件: 

 

#!/bin/sh
#/etc/profile:system-wide .profile file for the Bourne shells
echo
echo -n "Processing /etc/profile......"
 
# Set search library path
export LD_LIBRARY_PATH=/lib:/usr/lib
 
# set user path
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
 
#Set PS1

echo"Set PS1 in /etc/profile"
export PS1="[\u@\h\W]\$"

                      
echo "Done!"

inittab文件:

::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::restart:/sbin/init 


::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a

fstab文件:

proc/proc proc defaults 0 0
none /tmp ramfs defaults 0 0

none/var ramfs defaults 0 0
mdev /dev ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0

先创建目录init.d,然后在该目录中创建rcS。并修改权限

chomd  777 rcS

init.d/rcS

#!/bin/sh
echo "----------mount all"
/bin/mount -a

echo"----------Starting mdev......"
/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

echo"*********************************************************"
echo " Be yourself"
echo " Do what you want"
echo "********************************************************"

到这里文件系统就算基本上搭建起来了。

可以在上面直接的使用了。

如果需要的话,可以在/lib目录中添加相应的库,比如数学函数库,比如图形界面库

然后通过环境变量指向他们就好了

七、编译

我要把文件系统编译成为yaffs2文件系统格式

将工具mkyaffs2image拷贝到rootfs的同级目录

使用的工具是

不同的文件系统采用不同的工具制作即可,以上的步骤是相同的。

#    ./mkyaffs2image    rootfs  rootfs.bin

 

 

然后把rootfs.bin文件烧写到开发板中即可。

 


推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • Jquery 跨域问题
    为什么80%的码农都做不了架构师?JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念。当然 ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
author-avatar
李桂平2402851397
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有