开发环境:Ubuntu 12.04
开发板:mini2440 256M NandFlash 64M SDRAM
交叉编译器:arm-linux-gcc 4.4.3 点此可下载
BusyBox版本:busybox-1.13.3 点此可下载
yaffs制作工具:mkyaffsimage
yaffs2制作工具:mkyaffs2image(适合64M)、mkyaffs2image-128(适合128M以上,我的256M的用这个)
1、首先,将咱们制作根文件系统的BusyBox和mkyaffs2image-128M存放在一个文件夹内,如下
2、执行命令:mkdir rootfs 建立一个文件夹rootfs,咱们的根文件目录将建立在这里,要记得这个目录的绝对路径奥,我的路径为/home/song/rootfs_make/rootfs,咱们在安装BusyBox的时候要使用这个路径。
配置BusyBox
3、执行命令:tar -zxf busybox-1.13.3.tar.gz 解压咱们的busybox (注意,该命令前边千万不要加sudo啊!)
4、BusyBox集合了几百个命令,在一般系统中并不需要全部使用。可以通过配置 BusyBox来选择这些命令、定制某些命令的功能(选项)、指定BusyBox的连接方法(动态连接还是静态连接)、指定BusyBox的安装路径。执行命令:cd busybox-1.7.0/ 进入该文件夹
5、执行命令:make menuconfig 进入图形配置界面。
6、下面仅介绍一些常用的选项,以后可以自己添加补全。
Busybox Settings --->
Busybox Library Tuning --->
[*] Fancy shell prompts
选择Facncy Shell prompts一项,这可以使我们在profile这个文件中设置的命令提示符PS1中的转义字符生效
7、指定是否使用静态连接
Busybox Settings --->
Build Options --->
[ *] Build BusyBox as a static binary (no shared libs)
这里选择静态链接,以静态链接的方式生成需要的命令!我按照韦老师上使用动态链接没有成功(注意,我在这里首先要真挚的道歉!!!括号里的话是我后加上去的,这里选择了静态链接,所以后面有一步像lib内加入库是没必要的,我在这一节做了纠正http://blog.csdn.net/mybelief321/article/details/10068293)
8、选择交叉编译工具
Busybox Settings --->
Build Options --->
() Cross Compiler prefix进入Cross Compiler prefix中编辑交叉编译工具前缀为arm-linux-,如下图
9、支持mdev。这可以很方便地构造 /dev目录,并且可以支持热插拔设备。另外,为方便调试,选中mount、umount命令,并让mount命令支持NFS(网络根文件系统)
Linux System Utilities --->
[*] mdev
[*] Support /etc/mdev.conf
[*] Support command execution at device addition/removal
[*] mount
[*] Support mounting NFS file systems
[*] umount
[*] Support option -a
以上这些选项默认都是选择的。
10、支持Initttab。
Init Utilities --->
[*] Support reading an inittab file
选择这一项,可以使我们放在/etc下的inittab这个文件被busybox 的init进程解析,如下图
以上这些选项,默认的好像都选上了!
11、配置完这些后,退出,选择YES保存
编译和安装BusyBox
将交叉编译工具链添加到环境变量中(/etc/profile)
12、执行命令:make 编译Busybox
出现下图,编译完成
友情提示:在这里不要随便使用sudo,我前边用的sudo makemenuconfig 、sudo vim Makefile 、sudo make结果出现了下边的提示错误,很可恶的!!!
13、执行命令:make CONFIG_PREFIX=/home/song/rootfs_make/rootfs install 将BusyBox安装到你创建的rootfs文件夹内
出现下图表示已经安装完成
14、执行命令:cd ../rootfs/ 进入咱们的rootfs文件夹内,可以看到BusyBox已经安装到了此目录,自动生成了/bin /sbin /usr linuxrc这4个目录和文件
来源:网络
硬件平台:FL2440 操作系统:Linux2.6.28.7 交叉编译工具:arm-linux-gcc-3.4.1 飞凌公司默认的文件系统,不具有文件延伸功能,比如在/dev下有mmcblk0p1这个文件,在挂载SD卡驱动时,需要敲入命令mount /dev/mmcblk0p1,如果具有延伸功能,在敲入mm后,可以直接按TAB键,如果/dev目录下只有一个以mm形状的文件,将会自动补全后面的字符。...
在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。那么对于这几个文件系统,如何选择一个针对自己的硬件最合适的呢?他们各自的特点是什么?性能优劣如何? 下面就这些文件系统的挂载时间,I/O性能,内存使用,掉电恢复,FLA...
第二步: WCF宿主程序用哪种类型比较好? 主要的托管宿主包括,IIS,控制台程序,WPF,Windows Forms,NT Service,Windows服务,COM+作为宿主。IIS部署简单,可以向发布Web Service一样部署,但是仅仅支持HTML协议,而且宿主进程在客户请求时候启动。控制台作为宿主托管简单,一般做简单WCF 编程时候使用。Windows Forms宿主可以提供管理宿主状...
我们已经知道,controllers就是负责处理客户端的请求,实现models和views的交互。在CakePHP中,在controller中的每一个公共的方法都被叫做“action”,每一个action就会代表一个url,在浏览器请求此url时,控制器将会使用model来操作和处理数据,当数据被处理后,那么控制器把结果从model被传送到view。 我们接下来会学习控制器...
bean的生命周期 bean的完整生命周期从spring容器着手实例化bean开始,直到最终销毁bean。其中经过了很多关键点,每个关键点都涉及到特定的方法调用, 我们可以将这些方法大致分以下四类。 Bean自身的方法 Bean级生命周期接口方法 容器级生命周期接口方法 工厂后处理器接口方法 Bean自身的方法调用Bean的构造函数实例化Bean,调用setter设置Bean的属性值以及通过 的 ...
在公司的机器的工作机和测试机上做了实验,发现配置过程还是有点复杂的。故做一下小的分享。 另外,这个工具的共享剪切板的功能非常好用。可以直接在测试机上做屏幕截图,然后在工作机上打开画图板粘贴。 不过这款软件有个缺点,两台机器会共享焦点。在做自动化测试的时候不能随意切换屏幕,否则会造成焦点丢失,造成测试错误。 安装过程略。 配置过程: 1.选中“Share this computer's ...
1.先编写自己的函数公式 函数名后面的括号中要有式中包含的变量 2.定义响应,类型选择为function,dequation选择刚才设置的函数 点击edit,输入函数表达式中变量对应的响应个数,并分别选择对应哪个响应 返回,点击create,创建成功...
简介: 为什么需要边缘云原生?边缘云原生的技术特性和优势是什么?它可以为行业提供哪些关键能力?又有哪些场景适合边缘云原生呢?在MEC全球应用开发者大会的“MEC开放论坛”上,阿里云高级技术专家周哲进行了《阿里边缘云原生应用实践》主题分享,站在技术视角对边缘云原生的技术概念、应用场景、阿里云边缘云原生实践案例等多方面进行解读。 近日,MEC全球应用开发者大会隆重召开...
如何在2016office里面添加aurora 这是我自己安装的过程,有点神奇,但是效果达到了。 上图: 操作步骤: 1. 首先安装64位2016office(推荐安装,不要自定义),我新买的电脑所以是正版2016office。 2. 为了安装2010 32位office,我卸载了2016 office,但是它还存在于我的电脑里面,但是它还存在于我的电脑里面,但是它还存在于我的电脑里面,(重要的事...
从官网下载VMware和Centos 8镜像文件 VMware Workstation Pro :VMware官网下载 VMware15Pro** :转载 Centos 8镜像 :镜像下载 安装Centos 8镜像 打开VMware并创建新的虚拟机 选择自定义安装 未截图部分默认下一步,选择镜像文件 设置名称,用户名,密码 设置虚拟机名称和安装目录 设置虚拟机属性与配置 虚拟机配置和属性设置完成 ...
data as displayed output I can do it in a slow way of 1) creating NA for all new variables; 2) fill it on condition if(Type=="A"){ Var1_A <- Var1 } else if(..)} But I was wondering if the...
We have in code one-liner used to add header to file. It looks like perl -pi -e 'print "name, function, group\n" if $. == 1' CSV_FILE_NAME Everything is fine except when CSV_FILE_NAME is emp...
I'm just trying this link but I'm stuck in "Add the Google Services plugin" step... I just added the dependency they said but Android Studio' console is showing me this error: Could not find...
I have a table which contains about 900K rows.I want to delete about 90% of the rows. Tried using TABLESAMPLE to select them randomly but didn't get much performance improvement. Here are the queries ...
I was trying to plot some predicted vs. actual data, something that resembles the following: The plot looks like this: The only issue I have with this plot is the red border surrounding the legend ite...