在黑金zynqmp 上用emmc 启动的那些坑

Source

缘由:由于硬件设计可能存在问题,导致sd 开启动失败,高速的时候,在建立VFS 时就会引起kernel 崩溃,官方的板子就正常,自己的板子第一版硬件可以,第二版就不行

思路:从emmc 启动 替代sd卡启动,在官方板子上用sd卡启动,挂载emmc ,把文件系统和 内核,uboot 复制进emmc 分区,然后通过拨码开关启动

  1. 官方sd卡烧写大于16G 小于16 会烧写失败,但是烧写过的卡依然可以正常用,如果想放到8G emmc 需要缩减,
    解决方法:sd卡 在虚拟机下挂载,文件系统分区查看,其实没有那么大,而是空间分配显得那么大, 如果直接复制会产生某些异常,注意:不要随便修改文件系统的权限,不然可能导致 root 用户无法登录
    在这里插入图片描述2.emmc 分区 按照手册先把emmc 整体格式化为 ext4
    然后用 fdisk 分区 ,分区1为 放置 内核,uboot 的区域,分配 100M
    剩下的为文件系统分区,文件系统分区为ext 4 格式
    分区1 设置为FAT32

问题; 发现FAT 32这个分区无法挂载,提示一堆错误
解决: 执行 mkdosfs /dev/mmcblk0p1 —将/dev/mmcblk0p1格式化为FAT32格式
然后就可以挂载

3.不能ping 通外网的问题:
https://superuser.com/questions/1026291/linux-avahi-daemon-failed-to-find-user-avahi
4. ssh 不能登录,即使修改了 /etc/ssh/sshd_config perimtrootlogin = yes 还不行,这样处理
https://blog.csdn.net/lizheng2017/article/details/123141120,主要观察log 启动 ,看那些服务没启动然后根据提示查找解决方法

5.网络不能启动,eth 无法识别
在rc.local 里 配置网络ip 和 网关 就可以 ,注意 rc.local 里 xxgui 程序找不到需要屏蔽
在网络启动服务和设置ip 服务直接增加 sleep 5