导航:首页 > 操作系统 > linuxmmcblk

linuxmmcblk

发布时间:2022-11-02 11:00:40

1. zynqmp 怎么将linux系统下载到emmc

1,vivado硬件配置,要选择EMMC代表的SD1;

2,编译petalinux:执行petalinux-config。

(1)选择Subsystem AUTO Hardware Setting

-> Advanced bootable images storage settings

->boot image settings;

选择primary flash,这里是将BOOT.bin设置为从qspi flash启动

(2)选择Subsystem AUTO Hardware Setting

-> Advanced bootable images storage settings

->kernel image settings;

选择primary sd,进入后我们看到这里实际就是设置image.ub的存放区域。

(3)选择Image Packaging Configuration,设置启动启动文件系统所在位置;

在设置启动方式的时候,如下两张图这样设置读取根文件系统的位置/dev/mmcblk1p2。

(4)设置你的驱动然后编译,依次执行:petalinux-config -c kernel;petalinux-config -c rootfs;

petalinux-build;petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga --u-boot --force;

3,做之前先分区(把EMMC分区),先做一个SD卡启动的petalinux文件,

petalinux系统在zynq上面启动起来以后就进行如下分区:即是mmcblk1分为mmcblk1p1和mmcblk1p2

具体步骤如下:

(1) 把EMMC进行分区,执行命令: fdisk /dev/mmcblk1

(2)使用n命令,添加一个新的分区

Command (m for help): n

Command action

e extended

p primary partition (1-4)

选择p,添加主分区

,(3)选择分区号,选择1,

Partition number (1-4): 1 // 选择分区号

First cylinder (1-238592, default 1): Using default value 1 // 选择分区的第一个柱面,选择1

Last cylinder or +size or +sizeM or +sizeK (1-238592, default 238592): Using default value 238592 // 选择最后一个柱面

注意:1-238592,first要选第一个数,last要选择的比238592小,其中1024就是表示1M

(4)使用t命令,设置分区格式

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): b
Changed system type of partition 1 to b (Win95 FAT32)
(5)使用w命令,保存配置,必须保存配置

Command (m for help): w

The partition table has been altered.

Calling ioctl() to re-read partition table

(6)使用对应文件系统工具对分析进行格式化(只能在debian里面才能识别命令)

mkfs.fat /dev/mmcblk1p1 设置为fat32格式

mkfs.ext4 /dev/mmcblk1p2设置为ext4格式

注意:执行完w命令然后才算分区成功,执行完mkfs命令才算格设置内存属性成功。

以上分区完成后,可以使用p命令,显示分区信息;也可以使用用d命令表示删除分区

Command (m for help): p

Disk /dev/mmcblk0: 7818 MB, 7818182656 bytes

4 heads, 16 sectors/track, 238592 cylinders

Units = cylinders of 64 * 512 = 32768 bytes

Device Boot Start End Blocks Id System

/dev/mmcblk0p1 1 238592 7634936 83 Linux

(7)执行这句:mkdosfs -F 32 /dev/mmcblk0p1

当然,可以重复上述步骤,多分几个区,用来存放不同的状态:

FLASH要要用来存放BOOT.bin

第一个分区用来存放image.ub或者设备树(比如uImage和devicetree.dtb)等文件;--可以设置为128MB

第二个分区用来存放用户数据(比如可执行程序);可以设置为2048MB

第三个分区用来存放程序执行需要的库文件(opencv的库,qtcreator库,相机库,视频编码解码库等);剩余的1个多GB

4,把系统同步到ext4里面

先把sd卡里面系统挂载进来 :mount /dev/mmcblk0p2 /mnt

再把刚刚弄好的系统挂进来: mount /dev/mmcblk1p2 /tmp , 然后cd /mnt

然后进入把SD卡里面的系统同步到emmc里面:rsync -av ./* /tmp ,时间有点久,直到结束为止。

(要是不用SD卡也可以挂载U盘,解压,然后进行系统同步到EMMC所挂载的地方/tmp)

5,然后将BOOT.BIN和image.ub烧录到QSPI-FLASH中

首先擦除QSPI-FLASH:flash_eraseall /dev/mtd0

存放BOOT.bin到flash : flashcp BOOT.bin /dev/mtd0

此处若是将image.ub写入emmc的FAT分区中(不存放到flash中),先使用mount挂载eMMC的FAT分区,

然后将image.ub使用cp指令拷贝进 /mnt/mmcFat即可,也就是把uImage 拷贝到 /dev/mmcblk1p1;

进入uImage所在目录,然后执行 cp uImage /tmp;也就是把uImage存放到了 /dev/mmcblk1p1里面。

6,最后断电拔出SD卡,将拨码开关设置为flash启动,就能看到petalinux启动起来;

7,报错及其解决办法

————————————————
版权声明:本文为CSDN博主“寒听雪落”的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangjie36/article/details/104740448/

2. 下面是 linux 系统启动的信息,显示 无法挂载 根文件系统,大家帮忙瞧一瞧,猜一猜 是什么问题!谢谢

挂载文件系统不成功,从启动信息来看,你的根文件系统是放在SD卡中
1. 先确定你的SD卡是否是好的,如果说好多台都行的话,可以先把这台出问题的SD卡插入到另外好的产品中试试看,
2. 如果这台出问题的SD卡插到其他产品中没问题,可以再用其他可以工作的SD卡插到这台有问题的设备中,这样基本上可以定位问题了。

3. 关于Linux内核emmc分区问题

首先你要看你用芯片型号,有的分区不是在内核里划分的,而是用最小化系统,划好后再将bootload,kernenl,fs烧到对应区。有的是在内核里分区,但一般是nandflash。如果你对内核很熟,可以自己添加对应分区,修改好以后加载文件系统就ok了

4. 为什么linux从SD卡启动要设为mmcblk0p2

启动设为什么取决于你sd卡的设置。
mmcblk0p2代表:
mmc(本意是MultiMedia card,sd卡就是从这个发展来的,这里代表sd设备)
blk(block,块设备)
0(第一个块设备,也就是第一张sd卡)
p(partition,分区)
2(第3个分区)
也就是设定第一个sd块设备的第3个分区为启动分区。(如果是bootloader的参数,这个代表linux内核所在分区,如果是内核启动参数,则代表根文件系统在第3个分区,内核会从这个分区初始化文件系统)
mmcblk0p2里的0与2要根据你的具体情况来填
与之类似的有mtdblock,sda(a代表第一块,sd设备,通常表示硬盘)等

5. 为什么SD卡在Linux下/dev下的设备名叫mmcblk0p1

SD/MMC 卡的设备构造差不多,MMC 应该是 SD 的前身,不过 MMC 当时的设计比 SD 小一半。

所以,SD/MMC 的驱动通用,进一步的,Linux 的设备节点就延续了 MMC 的这个名字,后面的 blk 是块设备这个英文的简写, mmcblk 也就是“ mmc/sd 块设备”,0 就是这个 mmc/sd 设备的顺序编号,p1 就是第一个分区。

mmc卡与sd卡的区别:

1、mmc卡和sd卡的长宽是一样的,SD卡略厚。

2、SD卡的触点比MMC卡多一个,是用于数字版权保护(DRM)的。

3、SD卡的侧边比MMC卡多一个写保护的开关。


(5)linuxmmcblk扩展阅读:

SD模式

驱动模式

SD卡有两种驱动模式:SPI模式与SDIO模式。它们所使用的接口信号是不同的。在SPI模式下,只会用到SD卡的4根信号线,即CS、DI、SCLK与DO(分别是SD卡的片选、数据输入、时钟与数据输出)。

传输模式

SD卡共支持三种传输模式:SPI模式(独立序列输入和序列输出),1位SD模式 (独立指令和数据通道,独有的传输格式), 4位SD模式 (使用额外的针脚以及某些重新设置的针脚。支持四位宽的并行传输)。

6. 关于嵌入式Linux 插入SD卡的问题

换卡
格式化为fat32
有节点就表示驱动支持了,随便挂载到某一个空目录下

7. 为什么linux从SD卡启动要设为mmcblk0p2

mmcblk代表存储设备(当然这里仅代表你的sd卡) 0是它在你手机上的存储设备序号 p代表分区 2是在你sd卡上的第二个分区

8. linux 用哪个函数 格式化 mmcbl

启动设为什么取决于你sd卡的设置。mmcblk0p2代表:mmc(本意是MultiMedia card... (如果是bootloader的参数,这个代表linux内核所在分区,如果是内核启动参数,则

阅读全文

与linuxmmcblk相关的资料

热点内容
汇编程序员待遇 浏览:357
怎么批量有顺序的命名文件夹 浏览:209
杭州程序员健身 浏览:17
dvd光盘存储汉子算法 浏览:758
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:383
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362