ubifs文件系统构建
来源:互联网 发布:魔兽世界网络断开连接 编辑:程序博客网 时间:2024/06/06 03:30
=====================阶段一:创建根文件系统所需文件======================
一、构建busybox并make install
然后修改_install/bin/busybox权限:
chmod 4755 _install/bin/busybox
(给予busybox任何人可读可执行,所有者可读可写可执行,4读,2写,1执行,7=4+2+1,5=4+1,三者分别是所有者,所有者组,其他组。最前面的4表示其他用户执行该文件时,权限同所有者)
进入到_install目录创建linux需要的一些目录:
mkdir -p dev etc home lib mnt proc root sys tmp usr var/lib/misc var/lock var/log var/run var/tmp
并修改权限:
chmod 1777 tmp
chmod 1777 var/tmp
(最前面1防止被其他用户删除)
在dev下创建console和null设备:
mknod -m 660 console c 5 1
mknod -m 660 null c 1 3
mknod -m 660 ttySAC0 c 204 64
mknod -m 660 ttySAC1 c 204 65
mknod -m 660 ttySAC2 c 204 66
(这两个设备用来供init启动时调用)
看busybox依赖那些so库
/develop/crosstools/arm-dhole-linux-gnueabi/bin/arm-linux-readelf -a busybox | grep Shared
显示结果
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libc.so.6]
说明依赖libm.so.6和libc.so.6
把交叉编译器里的library拷贝到_install/lib目录下,
我做的交叉编译器lib库是在
/develop/crosstools/arm-dhole-linux-gnueabi/arm-dhole-linux-gnueabi/sysroot/lib/
目录下,鉴于以后的应用程序可能会用到除libm.so.6和libc.so.6外的这些库,因此全部拷过去,
在_install下执行如下命令:
cp /develop/crosstools/arm-dhole-linux-gnueabi/arm-dhole-linux-gnueabi/sysroot/lib/*.so* lib -a
然后在_install/etc下创建一些配置文件:
文件fstab:
内容如下:
----------------------------------------------------------------->
# /etc/fstab: static file system information.
#
#
#
# file system mount type options dump pass
#for mdev
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
#make sure /dev /tmp /var are tmpfs(tmpfs use ram as media) thus can be r/w
tmpfs /tmp tmpfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
tmpfs /var tmpfs defaults 0 0
#usbfs /proc/bus/usb usbfs defaults 0 0
-----------------------------------------------------------------<
说明: fstab中的文件系统会被mount -a挂载。
文件inittab:
内容如下:
----------------------------------------------------------------->
# see busybox/examples/inittab
# Boot-time system configuration/initialization script.
# This is run first except when booting in single-user mode.
::sysinit:/etc/init.d/rcS
#Start an "askfirst" shell on the console (whatever that may be)
#use respawn instead askfirst to make sure console always active
::respawn:-bin/sh
# Stuff to do when restarting the init process
::restart:/sbin/init
# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
-----------------------------------------------------------------<
说明: inittab会被init执行
文件init.d/rcS:(mkdir init.d;cd init.d)
内容如下:
----------------------------------------------------------------->
#!/bin/sh
#add setting here for auto start program
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
#See docs/mdev.txt
#mount all fs in fstab,proc and sysfs are must for mdev
mount -a
#create device nodes
echo /sbin/mdev > /proc/sys/kernel/hotplug
#seed all device nodes
mdev -s
#create pts directory for remote login such as SSH and telnet
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
if [ -f /etc/hostname ]; then
/bin/hostname -F /etc/hostname
fi
if [ -e /sys/class/net/eth0 ]; then
ifconfig eth0 192.168.1.15
fi
echo "etc init.d rcS done"
-----------------------------------------------------------------<
说明: init.d/rcS会在开机时自动执行。
更改rcS和inittab的权限为777:
chmod 777 init.d/rcS
chmod 777 inittab
=============阶段二:制作ubifs文件系统=======================================
1、制作mkfs.ubifs
yum install zlib-devel.i686
yum install lzo-devel.i686 compr_lzo.c:29:23: error: lzo/lzo1x.h: No such file or directory
yum install uuid-devel.i686
yum install uuid-dce-devel.i686
yum install libacl-devel.i686 sys/acl.h: No such file or directory
yum install libuuid-devel.i686 uuid/uuid.h: No such file or directory
make #编译pc上用的工具,我只要mkfs.ubifs
2、把_install做成ubifs文件系统:
根据下面的log
----------------------------------------------------------------->
mtd: Giving out device 2 to dhole rootfs
UBI: attaching mtd2 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read 64 bytes
-----------------------------------------------------------------<
得出如下命令:
./mkfs.ubifs -r /develop/project/busybox-1.19.3/_install/ -m 2048 -e 129024 -c 2008 -o ubifs.img #2008块*128KiB*2KiB
./ubinize -o ubi.img -m 2048 -p 128KiB -s 512 ubinize.cfg
ubinize.cfg配置文件内容如下:
----------------------------------------------------------------->
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=200MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
-----------------------------------------------------------------<
其中-m表示页面大小,-e表示逻辑擦除块大小,-c表示最大的逻辑擦除块数量,具体的可以通过barebox执行ubiattach的时候看到。
3、内核支持
(1)、配置内核支持UBIFS
Device Drivers --->Memory Technology Device (MTD) support --->UBI - Unsorted block images --->Enable UBI
(2)、配置mtd支持UBI接口
File systems --->Miscellaneous filesystems --->UBIFS file system support配置内核支持UBIFS文件系统
有关ubifs的详细介绍,请参考:
http://www.linux-mtd.infradead.org/doc/ubi.html
http://www.linux-mtd.infradead.org/doc/ubifs.html
=================阶段三=========================================================
///////////////////u-boot 烧写ubifs.img/////////////////////////////////////////
1、使用默认的分区对nand进行分区
mtdpart default
2、查看分区表
mtdpart
结果如下:
----------------------------------------------------------------->
device nand0 <nandflash0>, # parts = 3
#: name size offset mask_flags
0: uboot 0x00100000 0x00000000 0
1: kernel 0x00400000 0x00100000 0
2: root 0x0fb00000 0x00500000 0
active partition: nand0,0 - (uboot) 0x00100000 @ 0x00000000
defaults:
mtdids : nand0=nandflash0
mtdparts: mtdparts=nandflash0:1m(uboot),4m(kernel),-(root)
-----------------------------------------------------------------<
4、擦除uboot的root分区
nand erase.part root
结果如下:
----------------------------------------------------------------->
NAND erase.part: device 0 offset 0x500000, size 0xfb00000
Skipping bad block at 0x01a80000
Skipping bad block at 0x03f40000
Erasing at 0xffe0000 -- 100% complete.
OK
-----------------------------------------------------------------<
5、用ubi格式格式化root分区
ubi part root 设置root(u-boot)分区为当前分区,后面所有的命令ubi都基于root分区操作
结果如下:
----------------------------------------------------------------->
Creating 1 MTD partitions on "nand0":
0x000000500000-0x000010000000 : "mtd=2"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI: empty MTD device detected
UBI: create volume table (copy #1)
UBI: create volume table (copy #2)
UBI: attached mtd1 to ubi0
UBI: MTD device name: "mtd=2"
UBI: MTD device size: 251 MiB
UBI: number of good PEBs: 2006
UBI: number of bad PEBs: 2
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 0
UBI: available PEBs: 1982
UBI: total number of reserved PEBs: 24
UBI: number of PEBs reserved for bad PEB handling: 20
UBI: max/mean erase counter: 1/0
-----------------------------------------------------------------<
6、创建linux用的rootfs分区,"rootfs"这个名字必须和内核中的名字一样
ubi create rootfs
结果如下:
----------------------------------------------------------------->
No size specified -> Using max size (255725568)
Creating dynamic volume root of size 255725568
-----------------------------------------------------------------<
7、把ubifs.img烧写到flash中
tftp 0x31000000 ubifs.img
ubi write 0x31000000 rootfs 0x607800 #注意命令执行顺序,否则没用rootfs为linux中用的的分区名字
11、修复错误"ubi_io_write: error -5 while writing 512 bytes to PEB 5:512"
make menuconfig
#去除选项,此处有问题的描述http://www.linux-mtd.infradead.org/faq/ubi.html#L_subpage_verify_fail
Device Drivers ---> Memory Technology Device (MTD) support ---> NAND Device Support ---> Verify NAND page writes
由于我移植的u-boot还没有实现硬件校验,而软件校验和硬件校验的结果不同,造成linux驱动读写ubifs文件系统失败,所以暂时先屏蔽nand 硬件校验
Device Drivers ---> Memory Technology Device (MTD) support ---> NAND Device Support ---> Samsung S3C NAND Hardware ECC
这样内核就可以顺利的启动到下面的log处,但还是没有成功引导进入shell
----------------------------------------------------------------->
......
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size: 254306304 bytes (248346 KiB, 242 MiB, 1971 LEBs)
UBIFS: journal size: 9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
UBIFS: media format: w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root: 0 bytes (0 KiB)
VFS: Mounted root (ubifs filesystem) on device 0:13.
Freeing init memory: 136K
Kernel panic - not syncing: Attempted to kill init!
[<c000d344>] (unwind_backtrace+0x0/0xf0) from [<c0344258>] (panic+0x58/0x188)
[<c0344258>] (panic+0x58/0x188) from [<c001d480>] (do_exit+0x5dc/0x6c4)
[<c001d480>] (do_exit+0x5dc/0x6c4) from [<c001d7e8>] (do_group_exit+0x3c/0xbc)
[<c001d7e8>] (do_group_exit+0x3c/0xbc) from [<c0027dfc>] (get_signal_to_deliver+0x1bc/0x490)
[<c0027dfc>] (get_signal_to_deliver+0x1bc/0x490) from [<c000add0>] (do_signal+0x90/0x4e8)
[<c000add0>] (do_signal+0x90/0x4e8) from [<c000b718>] (do_notify_resume+0x60/0x6c)
[<c000b718>] (do_notify_resume+0x60/0x6c) from [<c0008ff4>] (work_pending+0x24/0x28)
在此处死了
-----------------------------------------------------------------<
而上面的错误是由于交叉编译器的错误,导致编译出来的busybox执行失败,一般是交叉编译器生出了cpu不支持的指令。
解决方案重做交叉编译器
一、构建busybox并make install
然后修改_install/bin/busybox权限:
chmod 4755 _install/bin/busybox
(给予busybox任何人可读可执行,所有者可读可写可执行,4读,2写,1执行,7=4+2+1,5=4+1,三者分别是所有者,所有者组,其他组。最前面的4表示其他用户执行该文件时,权限同所有者)
进入到_install目录创建linux需要的一些目录:
mkdir -p dev etc home lib mnt proc root sys tmp usr var/lib/misc var/lock var/log var/run var/tmp
并修改权限:
chmod 1777 tmp
chmod 1777 var/tmp
(最前面1防止被其他用户删除)
在dev下创建console和null设备:
mknod -m 660 console c 5 1
mknod -m 660 null c 1 3
mknod -m 660 ttySAC0 c 204 64
mknod -m 660 ttySAC1 c 204 65
mknod -m 660 ttySAC2 c 204 66
(这两个设备用来供init启动时调用)
看busybox依赖那些so库
/develop/crosstools/arm-dhole-linux-gnueabi/bin/arm-linux-readelf -a busybox | grep Shared
显示结果
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libc.so.6]
说明依赖libm.so.6和libc.so.6
把交叉编译器里的library拷贝到_install/lib目录下,
我做的交叉编译器lib库是在
/develop/crosstools/arm-dhole-linux-gnueabi/arm-dhole-linux-gnueabi/sysroot/lib/
目录下,鉴于以后的应用程序可能会用到除libm.so.6和libc.so.6外的这些库,因此全部拷过去,
在_install下执行如下命令:
cp /develop/crosstools/arm-dhole-linux-gnueabi/arm-dhole-linux-gnueabi/sysroot/lib/*.so* lib -a
然后在_install/etc下创建一些配置文件:
文件fstab:
内容如下:
----------------------------------------------------------------->
# /etc/fstab: static file system information.
#
#
#
# file system mount type options dump pass
#for mdev
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
#make sure /dev /tmp /var are tmpfs(tmpfs use ram as media) thus can be r/w
tmpfs /tmp tmpfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
tmpfs /var tmpfs defaults 0 0
#usbfs /proc/bus/usb usbfs defaults 0 0
-----------------------------------------------------------------<
说明: fstab中的文件系统会被mount -a挂载。
文件inittab:
内容如下:
----------------------------------------------------------------->
# see busybox/examples/inittab
# Boot-time system configuration/initialization script.
# This is run first except when booting in single-user mode.
::sysinit:/etc/init.d/rcS
#Start an "askfirst" shell on the console (whatever that may be)
#use respawn instead askfirst to make sure console always active
::respawn:-bin/sh
# Stuff to do when restarting the init process
::restart:/sbin/init
# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
-----------------------------------------------------------------<
说明: inittab会被init执行
文件init.d/rcS:(mkdir init.d;cd init.d)
内容如下:
----------------------------------------------------------------->
#!/bin/sh
#add setting here for auto start program
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
#See docs/mdev.txt
#mount all fs in fstab,proc and sysfs are must for mdev
mount -a
#create device nodes
echo /sbin/mdev > /proc/sys/kernel/hotplug
#seed all device nodes
mdev -s
#create pts directory for remote login such as SSH and telnet
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
if [ -f /etc/hostname ]; then
/bin/hostname -F /etc/hostname
fi
if [ -e /sys/class/net/eth0 ]; then
ifconfig eth0 192.168.1.15
fi
echo "etc init.d rcS done"
-----------------------------------------------------------------<
说明: init.d/rcS会在开机时自动执行。
更改rcS和inittab的权限为777:
chmod 777 init.d/rcS
chmod 777 inittab
=============阶段二:制作ubifs文件系统=======================================
1、制作mkfs.ubifs
yum install zlib-devel.i686
yum install lzo-devel.i686 compr_lzo.c:29:23: error: lzo/lzo1x.h: No such file or directory
yum install uuid-devel.i686
yum install uuid-dce-devel.i686
yum install libacl-devel.i686 sys/acl.h: No such file or directory
yum install libuuid-devel.i686 uuid/uuid.h: No such file or directory
make #编译pc上用的工具,我只要mkfs.ubifs
2、把_install做成ubifs文件系统:
根据下面的log
----------------------------------------------------------------->
mtd: Giving out device 2 to dhole rootfs
UBI: attaching mtd2 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read 64 bytes
-----------------------------------------------------------------<
得出如下命令:
./mkfs.ubifs -r /develop/project/busybox-1.19.3/_install/ -m 2048 -e 129024 -c 2008 -o ubifs.img #2008块*128KiB*2KiB
./ubinize -o ubi.img -m 2048 -p 128KiB -s 512 ubinize.cfg
ubinize.cfg配置文件内容如下:
----------------------------------------------------------------->
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=200MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
-----------------------------------------------------------------<
其中-m表示页面大小,-e表示逻辑擦除块大小,-c表示最大的逻辑擦除块数量,具体的可以通过barebox执行ubiattach的时候看到。
3、内核支持
(1)、配置内核支持UBIFS
Device Drivers --->Memory Technology Device (MTD) support --->UBI - Unsorted block images --->Enable UBI
(2)、配置mtd支持UBI接口
File systems --->Miscellaneous filesystems --->UBIFS file system support配置内核支持UBIFS文件系统
有关ubifs的详细介绍,请参考:
http://www.linux-mtd.infradead.org/doc/ubi.html
http://www.linux-mtd.infradead.org/doc/ubifs.html
=================阶段三=========================================================
///////////////////u-boot 烧写ubifs.img/////////////////////////////////////////
1、使用默认的分区对nand进行分区
mtdpart default
2、查看分区表
mtdpart
结果如下:
----------------------------------------------------------------->
device nand0 <nandflash0>, # parts = 3
#: name size offset mask_flags
0: uboot 0x00100000 0x00000000 0
1: kernel 0x00400000 0x00100000 0
2: root 0x0fb00000 0x00500000 0
active partition: nand0,0 - (uboot) 0x00100000 @ 0x00000000
defaults:
mtdids : nand0=nandflash0
mtdparts: mtdparts=nandflash0:1m(uboot),4m(kernel),-(root)
-----------------------------------------------------------------<
4、擦除uboot的root分区
nand erase.part root
结果如下:
----------------------------------------------------------------->
NAND erase.part: device 0 offset 0x500000, size 0xfb00000
Skipping bad block at 0x01a80000
Skipping bad block at 0x03f40000
Erasing at 0xffe0000 -- 100% complete.
OK
-----------------------------------------------------------------<
5、用ubi格式格式化root分区
ubi part root 设置root(u-boot)分区为当前分区,后面所有的命令ubi都基于root分区操作
结果如下:
----------------------------------------------------------------->
Creating 1 MTD partitions on "nand0":
0x000000500000-0x000010000000 : "mtd=2"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI: empty MTD device detected
UBI: create volume table (copy #1)
UBI: create volume table (copy #2)
UBI: attached mtd1 to ubi0
UBI: MTD device name: "mtd=2"
UBI: MTD device size: 251 MiB
UBI: number of good PEBs: 2006
UBI: number of bad PEBs: 2
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 0
UBI: available PEBs: 1982
UBI: total number of reserved PEBs: 24
UBI: number of PEBs reserved for bad PEB handling: 20
UBI: max/mean erase counter: 1/0
-----------------------------------------------------------------<
6、创建linux用的rootfs分区,"rootfs"这个名字必须和内核中的名字一样
ubi create rootfs
结果如下:
----------------------------------------------------------------->
No size specified -> Using max size (255725568)
Creating dynamic volume root of size 255725568
-----------------------------------------------------------------<
7、把ubifs.img烧写到flash中
tftp 0x31000000 ubifs.img
ubi write 0x31000000 rootfs 0x607800 #注意命令执行顺序,否则没用rootfs为linux中用的的分区名字
11、修复错误"ubi_io_write: error -5 while writing 512 bytes to PEB 5:512"
make menuconfig
#去除选项,此处有问题的描述http://www.linux-mtd.infradead.org/faq/ubi.html#L_subpage_verify_fail
Device Drivers ---> Memory Technology Device (MTD) support ---> NAND Device Support ---> Verify NAND page writes
由于我移植的u-boot还没有实现硬件校验,而软件校验和硬件校验的结果不同,造成linux驱动读写ubifs文件系统失败,所以暂时先屏蔽nand 硬件校验
Device Drivers ---> Memory Technology Device (MTD) support ---> NAND Device Support ---> Samsung S3C NAND Hardware ECC
这样内核就可以顺利的启动到下面的log处,但还是没有成功引导进入shell
----------------------------------------------------------------->
......
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size: 254306304 bytes (248346 KiB, 242 MiB, 1971 LEBs)
UBIFS: journal size: 9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
UBIFS: media format: w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root: 0 bytes (0 KiB)
VFS: Mounted root (ubifs filesystem) on device 0:13.
Freeing init memory: 136K
Kernel panic - not syncing: Attempted to kill init!
[<c000d344>] (unwind_backtrace+0x0/0xf0) from [<c0344258>] (panic+0x58/0x188)
[<c0344258>] (panic+0x58/0x188) from [<c001d480>] (do_exit+0x5dc/0x6c4)
[<c001d480>] (do_exit+0x5dc/0x6c4) from [<c001d7e8>] (do_group_exit+0x3c/0xbc)
[<c001d7e8>] (do_group_exit+0x3c/0xbc) from [<c0027dfc>] (get_signal_to_deliver+0x1bc/0x490)
[<c0027dfc>] (get_signal_to_deliver+0x1bc/0x490) from [<c000add0>] (do_signal+0x90/0x4e8)
[<c000add0>] (do_signal+0x90/0x4e8) from [<c000b718>] (do_notify_resume+0x60/0x6c)
[<c000b718>] (do_notify_resume+0x60/0x6c) from [<c0008ff4>] (work_pending+0x24/0x28)
在此处死了
-----------------------------------------------------------------<
而上面的错误是由于交叉编译器的错误,导致编译出来的busybox执行失败,一般是交叉编译器生出了cpu不支持的指令。
解决方案重做交叉编译器
0
上一篇:用crosstool-ng建立Linux 交叉编译环境
下一篇:LINUX下GDB调试(转)
相关热门文章
- 三亚兰海度假酒店公寓三亚家庭...
- 安全全面可靠
- 【公报摘录】
- 中新网11月15日电 中共十...
- 家住呼和浩特市武川县的王先生...
- linux 常见服务端口
- 【ROOTFS搭建】busybox的httpd...
- 什么是shell
- linux socket的bug??
- linux的线程是否受到了保护?...
- 修改默认端口为222,centos自...
- 用PHP做一个ftp登录页面...
- Toad for Oracle工具,为什么在...
- 本地win7安装vmw9系统winserv...
- powermt config是所什么用的...
给主人留下些什么吧!~~
评论热议
- ubifs文件系统构建
- UBIFS文件系统
- ubifs文件系统
- UBIFS文件系统的移植
- 制作ubifs文件系统
- UBIFS文件系统的移植
- UBIFS 文件系统的使用
- UBIFS文件系统的移植
- ubifs文件系统简介
- UBIFS 文件系统的使用
- UBIFS文件系统介绍
- 如何挂在ubifs文件系统
- Ubifs制作文件系统
- UBIFS文件系统分析
- UBIFS文件系统源码分析
- 制作ubifs文件系统
- ubifs 文件系统-1: overview
- UBIFS文件系统介绍
- 泡妞项目进度表
- MatchBox——适合于小屏幕的GUI
- 嵌入式Linux图形系统快速参考手册
- 赵薇携手刘烨选“达人
- 用crosstool-ng建立Linux 交叉编译环境
- ubifs文件系统构建
- 第三方 cookie 写入问题
- LINUX下GDB调试(转)
- C++中的类所占内存空间总结
- JNI 中文字符串传递
- VIM 用空格替换 Tab
- 硬件工程师电路设计必须紧记的十大要点(转帖)
- C/C++不同文件夹下包含头文件的方法及#include的使用
- hdu 1568 Fibonacci
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
丢包率
丢包
丢包率高怎么解决
丢沙包教案
丢沙包图片
丢包率高怎么办
梦见包丢了是什么意思
梦见丢了包是什么预兆
梦见包丢了又找回来了
做梦包丢了
女人梦见包丢了
丢包率是什么意思
女人梦见包丢了到处找
梦见自己的包丢了
网络丢包测试
梦见自己的包丢了是什么意思
女人梦见包丢了又找到
梦见丢包是什么意思
梦见包丢了很着急的找
梦见包丢了我在到处找
存款单丢了怎么办
检车保险单丢了怎么办
电动车罚款单丢了怎么交罚款
电瓶车罚款单丢了怎么交罚款
罚款单丢了怎么交罚款
车辆保险单丢了怎么办
保险单丢了能审车吗
罚款单丢了怎么找编号
汽车保险单丢了怎么办
丢你
丢你个嗨
丢失
驾驶证丢失
丢失英文
丢失的英文
丢失的书页
银行卡丢失
bootmgr丢失无法开机
行车证丢失如何补办
男婴丢失自导自演
社保卡丢失怎么补办