1.busybox介绍
busybox是什么?
(1)busybox是Linux上的一个应用程序(application),即只有一个ELF文件头。
(2)它整合了许多Linux上常用的工具和命令(utilities), 如rm, ls, gzip, tftp等。对于这些工具和命令,busybox中的实现可能不是最全的,但却是最常用的,因此它的特点就是短小精悍,特别适合对尺寸很敏感的嵌入式系统。
(3)busybox的官方网站是 http://www.busybox.net/downloads/
2.编译
(1) make menuconfig
选择交叉编译工具
选择静态编译
(2)make
(3) make install
BusyBox中并没有尖括号(< >)的选项,也不会被编译成模块
将所有配置进行了分类,可以很方便地根据项目的需要进行裁减。
3安装busybox_env.sh脚本
echo "install busybox"
mkdir -p /usr/sbin /usr/bin /binecho "OK, u can use busybox now"
4. busybox 格式化与分区
(1) umount /mnt/extsd
umount /mnt/tmpsd
(2) busybox fdisk /dev/block/mmcblk0
d
1
d
n
p
2
+2048M
n
p
1
t
1
b
t
2
b
w
(3) busybox mkfs.vfat /dev/block/mmcblk0p1
busybox mkfs.vfat /dev/block/mmcblk0p2
mount -t vfat /dev/block/mmcblk0p1 /mnt/extsd
mount -t vfat /dev/block/mmcblk0p2 /mnt/tmpsd
5.int StorageMonitor::formatSDcard() {
int ret = 0;
if (mInserted == false) {
return -1;
}
if (mConnectFD < 0) {
return mConnectFD;
}
ALOGD("formatSDcard start,mMounted=%d",mMounted);
mFormated = true;
if (mMounted == true) {
ret = write(mConnectFD, CMD_UNMOUNT, sizeof(CMD_UNMOUNT));
if (ret < 0) {
return ret;
}
system("umount /mnt/tmpsd");
} else {
mFormating = true;
system("busybox fdisk /dev/block/mmcblk0<system/etc/aw_fdisk_conf.rc");
ret = write(mConnectFD, CMD_FORMAT, sizeof(CMD_FORMAT));
system("busybox mkfs.vfat /dev/block/mmcblk0p2");
system("mount -t vfat /dev/block/mmcblk0p2 /mnt/tmpsd");
if (ret < 0) {
return ret;
}
}
return 0;
}