【系统移植篇】系统烧写
2026/3/25 10:02:30 网站建设 项目流程

文章目录

  • 【系统移植篇】系统烧写
    • 1 环境准备
    • 2 固化系统到SD卡
    • 2 固化系统到EMMC

【系统移植篇】系统烧写

1 环境准备

下载burn文件夹:

通过网盘分享的文件:burn 链接: https://pan.baidu.com/s/1NnxOFErna5NIzGdePpi0XQ?pwd=pzs6 提取码: pzs6

该文件夹的目录如下:

burn/ ├── boot_sources # 存放的是需要烧录到系统的源文件。当然这里也可以使用大家自己编译好的内容 │ ├── imx6ull-alientek-emmc.linux.dtb # dtb文件 │ ├── imx6ull-alientek-emmc.linux.zImage # zImage文件 │ ├── imx6ull-alientek-emmc.rootfs # rootfs压缩包,可以为zip或者tar.gz格式 │ └── imx6ull-alientek-emmc.uboot.imx # uboot的imx文件 ├── imx_512mb_ivtdcd_table.bin # 512MB的IVT头 ├── imx6ull_mk_emmc_boot.sh # 烧录EMMC脚本 ├── imx6ull_mk_sd_boot.sh # 烧录SD卡脚本 └── imx6ull_mk_uboot.sh # 生成uboot烧录文件脚本

注:dtb文件、zImage文件、rootfs压缩包和uboot文件都可以替换为自己的。

2 固化系统到SD卡

  1. burn文件夹存放到虚拟机内。

  2. (optional)如果要使用自己编译的u-boot.bin文件,则需要执行如下命令生成可烧录的u-boot.imx:

    pzs@pzs-jammy:~/linux/burn$ ./imx6ull_mk_uboot.sh -512m u-boot.bin ./boot_sources/imx6ull-alientek-emmc.uboot.imx # 假设你的u-boot.bin存放到burn目录下
  3. 将SD卡插入到读卡器内并且插入到虚拟机内

  4. 烧录SD卡

    pzs@pzs-jammy:~/linux/burn$ sudo ./imx6ull_mk_sd_boot.sh -d /dev/sdb -u boot_sources/imx6ull-alientek-emmc.uboot.imx -z boot_sources/imx6ull-alientek-emmc.linux.zImage -t boot_sources/imx6ull-alientek-emmc.linux.dtb -r boot_sources/imx6ull-alientek-emmc.rootfs Preparing SD card for boot, this will take a few minutes. Please be patient! ************************************************************ * WARNING: This will erase all data on /dev/sdb. * * Do not unplug /dev/sdb during the operation! * * Press <Enter> to continue... * ************************************************************ # 这一步需要按下回车键执行烧录 Device '/dev/sdb' cleared successfully! Creating partitions on /dev/sdb... Formatting /dev/sdb1... mkfs.fat 4.2 (2021-01-31) mkfs.fat: Warning: lowercase labels might not work properly on some systems Formatting /dev/sdb2... mke2fs 1.46.5 (30-Dec-2021) /dev/sdb2 contains a ext3 file system labelled 'rootfs' last mounted on /tmp/tmp.vh1FppsRHw on Sun Dec 7 22:54:28 2025 Creating filesystem with 7540480 4k blocks and 1888656 inodes Filesystem UUID: 4a880f79-31ee-4e3f-90e5-1c9ca143a418 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done Partitions created successfully! Writing Uboot to /dev/sdb... Uboot written to /dev/sdb successfully! zImage written to /dev/sdb successfully! dtb written to /dev/sdb successfully! Mounting /dev/sdb2... Extracting filesystem to /dev/sdb2... Detected gzip format. Extracting using gunzip... Unmounting /dev/sdb2... Rootfs written to /dev/sdb successfully! SD card boot system burning is complete! Cleaning up...
  5. 将SD卡重新插回开发板上,并且设置为从SD卡启动
    拨码方式为: 10000010

  6. 设置uboot环境变量

    进入uboot终端:

    # 设置显示屏 => setenv panel TFT7016 => saveenv Saving Environment to MMC... Writing to MMC(0)... done => reset # 重启板子后就可以看到NXP的logo标志了 # 设置网络地址 => setenv ipaddr 192.168.137.3 => setenv ethaddr b8:ae:1d:01:00:00 => setenv gatewayip 192.168.137.1 => setenv netmask 255.255.255.0 => setenv serverip 192.168.137.2 => saveenv => ping 192.168.137.1 # 测试是否能够ping通主机 FEC1 Waiting for PHY auto negotiation to complete..... done Using FEC1 device host 192.168.137.1 is alive => ping 192.168.137.2 # 测试是否能够ping通虚拟机 Using FEC1 device host 192.168.137.2 is alive # 设置boot启动命令 => fatls mmc 0:1 #查看一下我们存放的zImage和dtb文件 5517536 imx6ull-alientek-emmc.linux.zimage 36346 imx6ull-alientek-emmc.linux.dtb => ext4ls mmc 0:2 #查看一下我们存放的rootfs <DIR> 4096 . <DIR> 4096 .. <DIR> 16384 lost+found <DIR> 4096 root 37806000 ubuntu-base-16.04.6-base-armhf.tar.gz <DIR> 4096 var <DIR> 4096 bin <DIR> 4096 proc <DIR> 4096 lib <DIR> 4096 usr <DIR> 4096 run <DIR> 4096 boot <DIR> 4096 etc <DIR> 4096 opt <DIR> 4096 srv <DIR> 4096 home <DIR> 4096 sbin <DIR> 4096 media <DIR> 4096 sys <DIR> 4096 dev <DIR> 4096 tmp <DIR> 4096 mnt ==> setenv bootcmd 'mmc dev 0; fatload mmc 0:1 80800000 imx6ull-alientek-emmc.linux.zimage; fatload mmc 0:1 83000000 imx6ull-alientek-emmc.linux.dtb; bootz 80800000 - 83000000' # 设置boot命令的值 ==> setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw' => saveenv => boot # 使用boot命令启动Linux内核
  7. 验证结果

    启动系统后查看根文件的挂载路径,发现是在mmcblk1p1下就代表我们当前的系统已经成功从SD卡中启动了。

    pzs@alientek_imx6ul:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk1rpmb 179:64 0 512K 0 disk mmcblk1boot0 179:32 0 4M 1 disk mmcblk1boot1 179:48 0 4M 1 disk mmcblk0 179:0 0 28.8G 0 disk |-mmcblk0p1 179:1 0 64M 0 part -mmcblk0p2 179:2 0 28.8G 0 part / mmcblk1 179:16 0 7.3G 0 disk |-mmcblk1p1 179:17 0 32M 0 part -mmcblk1p2 179:18 0 7.3G 0 part ``

2 固化系统到EMMC

  1. burn文件夹存放到开发板内。

  2. 从SD卡启动。

  3. 烧录EMMC

    # 烧录前需要安装的工具列表: ## 必要软件 pzs@alientek_imx6ul:~$ sudo apt-get install parted udev dosfstools ## 安装mmc-utils, 由于ubuntu16.04上没有,因此需要手动安装 root@alientek_imx6ul:/home/pzs/mmc-utils# wget http://ftp.cn.debian.org/debian/pool/main/m/mmc-utils/mmc-utils_0+git20180327.b4fe0c8c-1_armhf.deb root@alientek_imx6ul:/home/pzs/mmc-utils# dpkg -i mmc-utils_0+git20180327.b4fe0c8c-1_armhf.debr # 烧录镜像 pzs@alientek_imx6ul:~$ sudo ./imx6ull_mk_emmc_boot.sh -d /dev/mmcblk1 -u boot_sources/imx6ull-alientek-emmc.uboot.imx -z boot_sources/imx6ull-alientek-emmc.linux.zImage -t boot_sources/imx6ull-alientek-emmc.linux.dtb -r boot_sources/imx6ull-alientek-emmc.rootfs
  4. 设置拨码开关从EMMC启动

    固化完成后,将拨码开关拨至 eMMC 启动方式 10100110,启动系统即可。

  5. 设置uboot环境变量

    # 设置显示屏 => setenv panel TFT7016 => saveenv Saving Environment to MMC... Writing to MMC(0)... done => reset # 重启板子后就可以看到NXP的logo标志了 # 设置网络地址 => setenv ipaddr 192.168.137.3 => setenv ethaddr b8:ae:1d:01:00:00 => setenv gatewayip 192.168.137.1 => setenv netmask 255.255.255.0 => setenv serverip 192.168.137.2 => saveenv => ping 192.168.137.1 # 测试是否能够ping通主机 FEC1 Waiting for PHY auto negotiation to complete..... done Using FEC1 device host 192.168.137.1 is alive => ping 192.168.137.2 # 测试是否能够ping通虚拟机 Using FEC1 device host 192.168.137.2 is alive # 设置boot启动命令 => fatls mmc 1:1 #查看一下我们存放的zImage和dtb文件 5517536 imx6ull-alientek-emmc.linux.zimage 36346 imx6ull-alientek-emmc.linux.dtb => ext4ls mmc 1:2 #查看一下我们存放的rootfs <DIR> 4096 . <DIR> 4096 .. <DIR> 16384 lost+found <DIR> 4096 opt <DIR> 4096 unit_tests <DIR> 4096 etc <DIR> 4096 home <DIR> 4096 sbin <DIR> 4096 bin <DIR> 4096 proc <DIR> 4 096 boot <DIR> 4096 usr <DIR> 4096 mnt <DIR> 4096 media <DIR> 4096 lib <DIR> 4096 dev <DIR> 4096 sys <DIR> 4096 run <DIR> 4096 var <DIR> 4096 tmp ==> setenv bootcmd 'mmc dev 0; fatload mmc 1:1 80800000 imx6ull-alientek-emmc.linux.zimage; fatload mmc 1:1 83000000 imx6ull-alientek-emmc.linux.dtb; bootz 80800000 - 83000000' # 设置boot命令的值 ==> setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw' => saveenv => boot # 使用boot命令启动Linux内核
  6. 验证结果

    启动系统后查看根文件的挂载路径,发现是在mmcblk1p2下就代表我们当前的系统已经成功从EMMC中启动了。

    pzs@alientek_imx6ul:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk1rpmb 179:64 0 512K 0 disk mmcblk1boot0 179:32 0 4M 1 disk mmcblk1boot1 179:48 0 4M 1 disk mmcblk0 179:0 0 28.8G 0 disk |-mmcblk0p1 179:1 0 64M 0 part `-mmcblk0p2 179:2 0 28.8G 0 part mmcblk1 179:16 0 7.3G 0 disk |-mmcblk1p1 179:17 0 32M 0 part `-mmcblk1p2 179:18 0 7.3G 0 part /

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询