Linux内核---19.S3C6410制作SD卡上的Linux文件系统
2016-07-04 19:20
459 查看
OKC6410使用---6SD启动详细分析 http://blog.chinaunix.net/uid-26009923-id-3331236.html 上一篇文章分析了6410从SD卡启动的过程,及如何将编译好的u-boot.bin写到SD卡的相应位置上,使它支持从SD卡启动.
一.分区
用fdisk将SD卡分为两个区
sun@ubuntu:/work/6410/uboot/uboot1.1.6$
sudo fdisk -l /dev/sdb
Disk /dev/sdb: 7948 MB, 7948206080
bytes
245 heads, 62 sectors/track, 1021 cylinders, total
15523840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512
bytes / 512 bytes
I/O size (minimum/optimal): 512
bytes / 512 bytes
Disk identifier: 0xbecdcb33
Device Boot Start End Blocks Id System
/dev/sdb1 2048 43007 20480 83 Linux
/dev/sdb2 43008 15523839 7740416 83 Linux
分区 类型 大小
/dev/sdb1
vfat 20M
/dev/sdb2 ext3 剩余的
二.内核
2.1 内核
a. 编译内核生成zImage
b. 挂载SD卡的vfat分区,并将zImage拷贝过去
mount /dev/sdb1 /tmp/vfat
cp zImage /tmp/vfat
c. 在u-boot的include/configs/smdk6410.h中设置boot_cmd
#define CONFIG_BOOTCOMMAND "fatload mmc 0:1 50008000 zImage; bootm 50008000"
从SD卡的vfat分区读取zImage到内存的0x50008000, 然后从0x50008000处启动
三. 文件系统
3.1 将文件系统拷贝到sd卡的ext3分区
a. 挂载SD卡的ext3分区,并将解压后的FileSystem-Yaffs2.tar.gz拷贝过去
mount /dev/sdb1 /tmp/ext3
tar xf FileSystem-Yaffs2.tar.gz
sun@ubuntu:/work/6410/FileSystem-Yaffs2$ cp -arf ./* /tmp/ext3
b. 设置kernel的启动参数
在u-boot的include/configs/smdk6410.h中设置启动参数
#define CONFIG_BOOTARGS "root=/dev/mmcblk0p2 rootfstype=ext3 console=ttySAC0,115200 init=/linuxrc rootwait=5"
注意: root=/dev/mmcblk0p2是SD卡的第二个分区,如果是其它分区,要修改此处
从SD卡中引导,进入SD的u-boot,然后读取SD卡中第一个分区中的内核,内核用的是SD卡中的文件系统,呵呵,这样一张独立的SD卡就完成了!
一.分区
用fdisk将SD卡分为两个区
sun@ubuntu:/work/6410/uboot/uboot1.1.6$
sudo fdisk -l /dev/sdb
Disk /dev/sdb: 7948 MB, 7948206080
bytes
245 heads, 62 sectors/track, 1021 cylinders, total
15523840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512
bytes / 512 bytes
I/O size (minimum/optimal): 512
bytes / 512 bytes
Disk identifier: 0xbecdcb33
Device Boot Start End Blocks Id System
/dev/sdb1 2048 43007 20480 83 Linux
/dev/sdb2 43008 15523839 7740416 83 Linux
分区 类型 大小
/dev/sdb1
vfat 20M
/dev/sdb2 ext3 剩余的
二.内核
2.1 内核
a. 编译内核生成zImage
b. 挂载SD卡的vfat分区,并将zImage拷贝过去
mount /dev/sdb1 /tmp/vfat
cp zImage /tmp/vfat
c. 在u-boot的include/configs/smdk6410.h中设置boot_cmd
#define CONFIG_BOOTCOMMAND "fatload mmc 0:1 50008000 zImage; bootm 50008000"
从SD卡的vfat分区读取zImage到内存的0x50008000, 然后从0x50008000处启动
三. 文件系统
3.1 将文件系统拷贝到sd卡的ext3分区
a. 挂载SD卡的ext3分区,并将解压后的FileSystem-Yaffs2.tar.gz拷贝过去
mount /dev/sdb1 /tmp/ext3
tar xf FileSystem-Yaffs2.tar.gz
sun@ubuntu:/work/6410/FileSystem-Yaffs2$ cp -arf ./* /tmp/ext3
b. 设置kernel的启动参数
在u-boot的include/configs/smdk6410.h中设置启动参数
#define CONFIG_BOOTARGS "root=/dev/mmcblk0p2 rootfstype=ext3 console=ttySAC0,115200 init=/linuxrc rootwait=5"
注意: root=/dev/mmcblk0p2是SD卡的第二个分区,如果是其它分区,要修改此处
从SD卡中引导,进入SD的u-boot,然后读取SD卡中第一个分区中的内核,内核用的是SD卡中的文件系统,呵呵,这样一张独立的SD卡就完成了!
相关文章推荐
- linux sed命令详解
- Ubuntu 修复Grub引导双系统
- Ubuntu Kylin 16.04 下wps文字/wps表格/wps演示不能输入中文的解决办法
- linux ip
- linux下查看当前用户的 三个命令
- linux中sort命令
- linux make
- linux 环境下mysql忽略大小写
- Linux程序调试——调试工具及命令
- linux 启动 关闭 防火墙
- GDB十分钟教程
- 每日一linux命令(23)-------Linux 目录结构
- 经验分享之使用vagrant安装linux虚拟机
- Redhat Linux修改主机名
- linux的虚拟内存swap分区的使用和配置
- 用less命令在linux下查找日志文件内容
- Linux 使用QQ2013
- linux sed命令详解
- Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
- centos下采用rpm方式安装mysql