从sd卡启动之文件系统制作
在调试andriod的代码时候发现了一个问题。在andriod调试的时候无法进入常规的文件系统进行简单的操作。由于想要把alsa移植到210的开发板中,发现“/”文件系统是无法进行读写的。在根文件系统下有一个system的目录可以进行读写但是执行命令的时候发现无法操作,顾想到了可读写的文件系统的移植。因此记录下来这篇文章以便后用,也为了遇到相同问题的开发者提供微薄的帮助。
1,fdisk的使用。
2,拷贝文件。
3,修改内核的编译选项。
4,修改uboot启动参数。
5,硬件上的必要准备。
1,fdisk:
首先要介绍的是fdisk的操作。在omap的开发的时候就遇到了sd卡的制作问题。其实网上很多的介绍。在这里只是针对本次操作的介绍,不涉及的内容网上可以查阅到。
我的环境是ubuntu10.04的OS。在插上SD卡后会发现dev目录下多了sdb。(如果不确定可以使用dmesg查看kernel的log)。
fdisk /dev/sdb
按照提示先把所有的分区信息删除,然后再是使用 p 打印出磁盘信息。保证没有分区。
再接着为磁盘分区,分区的时候使用的是命令 n。按照提示输入相应的指令 p。
这里注意分区的大小和容量的信息。default可以选择系统提示默认值,但是第二个参数是要有判断的。我使用的SD卡1G。
选择如下:
root@edward-laptop:~# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sdb: 966 MB, 966787072 bytes
30 heads, 62 sectors/track, 1015 cylinders
Units = cylinders of 1860 * 512 = 952320 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x238e5adc
Device Boot Start End Blocks Id System
/dev/sdb1 1 200 185969 83 Linux
/dev/sdb2 201 600 372000 83 Linux
以上信息因实际情况而异,可以个人调整。在得到了以上信息后执行命令如下:
sudo mkfs.ext4 /dev/sdb2 把第二分区的空间格式化为EXT4的文件格式。在这命令以后 mount /dev/sdb2 /mnt 把SD卡的第二分区挂到mnt的目录下。进入mnt目录可以发现多了一个lost+found的文件夹。做过文件系统的都会发现这个是制作文件系统的必备信息,可以上网查找相关资料。有了这个文件夹也说明formate成功了。
2,拷贝文件
在这里我有疑问,ext4作为文件系统类型支不支持SD卡类型的设备操作?请高手回答一下这个问题。
我们之前使用过的任何一种文件系统都是会有基本的目录如:/etc /dev /bin /lib /sbin /proc /usr 等。把这些内容拷贝到挂载完毕后的目录/mnt 或者是任何一种你指定的了文件夹。同步数据后。umount /mnt。拔出SD卡文件系统制作完毕。
3,修改编译选项:
在上面的文件系统制作的SD时,选用了mkfs。ext4这条指令,顾把SD卡的第二个分区格式化为ext4的文件系统。在kernel的.config 文件中应该把相应的文件系统的支持列表中添加EXT4的支持。
如下:
..............
#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT23=y
# CONFIG_EXT4_FS_XATTR is not set
# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
...............
4,修改uboot的启动参数
这个过程相对比较简单,就是一条指令:set bootargs "noinitrd root=/dev/mmcblk0p2 rw console=ttySAC0"。对这条指令介绍一下:
root指定了文件系统设备的载体:SD卡的第二个分区
static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)这个函数中可以看到sprintf(md->disk->disk_name, "mmcblk%d", devidx);,SD卡的设备是以mmcblkXpX的方式命名。具体的命名规则还没有调试过代码。但是要指定第二分区的设备名为:mmcblk0p2 表示partition。
5,uboot上的必要准备
这个过程简单但是必要。
使用tftp命令下载uImage到开发板上:tftp 0x30800000 uImage
设置好了以上参数bootargs后执行:bootm 30800000
最后启动开发板。可以挂载SD卡上的文件系统,并且以这个文件系统作为根文件启动。这时候犹豫是EXT4的文件系统,可以读写保存数据。
从sd卡启动之文件系统制作相关推荐
- imx533 配置 制作SD卡启动文件系统
制作SD卡启动文件系统 [1]对SD卡分区 按飞思卡尔文档列出的分区表用fdisk分区: Partition Type/Index Name Start Offset Size File System ...
- SD卡启动tiny4412标准版(1306)的linux系统并挂载网络根文件系统
uboot编译平台环境:64位win8.1的虚拟机vmware10下的ubuntu-12.04.5-64bit 交叉编译工具链为: arm-linux-gcc-4.5.1 uboot压缩包: ...
- 【nano系列】jetson nano 迁移系统、制作SD卡启动扩展内存(二)
本文继上文刷机到EMMC内存后,为扩展内存空间,迁移系统到Micro SD卡并制作SD卡启动 我的SD卡在nano中显示的名称为 /dev/sda1 ,不同于其他文章 的 /dev/mmcblk1p1 ...
- 制作SD卡启动自己编译的uboot.bin
README for FriendlyARM Tiny4412 ----------------------------------------------------- 1. Build uboot ...
- imx6 android SD卡启动
工作中需要将imx6的android系统从SD卡启动,所以就分析了MfgTool中的脚本,分析android的分区情况,并尝试自己操作,竟然成功了,记录于此. 参考文档 http://www.kanc ...
- S5PV210体系结构与接口09:SD卡启动详解
目录 1. MMC技术演进 1.1 NandFlash & NorFlash芯片 1.2 MMC卡 & SD卡 & MicroSD卡(TF卡) 1.2.1 代际关系 1.2.2 ...
- [i.MX6q]i.MX6q处理器,linux操作系统平台搭建 从SD卡启动系统
转自:http://www.07net01.com/linux/2016/02/1232094.html 参照1:http://blog.csdn.net/girlkoo/article/detail ...
- SD卡启动并更新emmc
由于项目需求需要对开发板更新固件,但对板子寄来寄去过于麻烦,因此制作一个SD卡,对emmc更新固件.这样制作的SD卡要先是一个系统卡,然后再对emmc更新固件. 1.制作SD系统卡 制作SD系统卡需要 ...
- Exynos4412——SD卡启动
实现Tiny4412从SD卡的启动内核与根文件系统. 前面启动开发板时,需要从SD卡启动Uboot,然后从DNW下载内核和根文件系统到RAM,或者NFS挂载根文件系统. Uboot应该是支持SD卡的, ...
最新文章
- 将三维点云投影到XOZ面上
- Python实现微信防撤回
- 让Centos5.6的Firefox支持Java
- SAP SD微观研究之销售发票自动生成初探
- 广告计算——平滑CTR
- initialize方法与load方法比较
- 无刷新分页 jquery.pagination.js
- oppo r9 android7.0,OPPO R9 Plus的手机系统是什么
- java实时监控数据变化_服务数据实时监控平台
- Form组件之详解字段
- cursor-spacing 软键盘和input的距离
- django路由层 虚拟环境 视图层
- ColorUI开发手册(适用于后端同学使用)
- 《STM32从零开始学习历程》——SPI读取FLASH ID
- 第三届易观算法大赛 -- OLAP Session分析(5万奖金)
- 涨姿势!一文了解深度学习中的注意力机制
- matlab绘制散点密度,MATLAB实例:散点密度图
- C语言基础入门:C-Free5新建C语言工程
- 「思维拓展/个人提升」简说
- Android音视频开发;斗鱼直播实现
热门文章
- 2021年Android开发者跳槽指南,Android工程师面试该怎么准备?附答案
- 【电商必备】增长销售和客户在线支持的网站即时聊天(一)
- 开一家完美证件照照相馆需要考虑什么?
- 通达信证券软件接口编程能赚钱吗?
- IaaS,PaaS和SaaS介绍
- python两个除号什么意思_python除号_python中除号_python中的除号 - 云+社区 - 腾讯云...
- 放风筝与恋爱 ——写给男生
- 解决nginx启动闪退
- 苹果手机语音备忘录在哪_涨知识了!原来苹果手机备忘录还有高级玩法,纸质文档轻松电子化...
- 以下是某论坛坛主,给予的回复,证实了我的猜测