明远智睿MY-IMX28 Linux-3.14.54 编译手册(3)

本文详细介绍了MY-IMX28开发板上的Linux系统编译过程,包括应用程序的编写与编译、文件系统的创建与更新,以及通过MFGTOOL和网络(TFTP/NFS)的烧写方法。同时,提供了串口登录系统的方法。

【接上一章节明远智睿MY-IMX28 Linux-3.14.54 编译手册(2)】

 

7  应用程序编译

7.1  Linux应用程序编译

7.1.1  编写应用程序

进入工作目录

$ cd ~/my-imx28/01_application/

编写源代码

$ vim hello.c 
写入以下代码并保存 

include <stdio.h> 

int main(int argc, char **argv) 

printf("Hello, MYZR!\n"); 
return; 

查看代码 

$ cat hello.c 

 

7.1.2  编译应用程序

配置环境变量

$ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env

编译 

$ ${CROSS_COMPILE}gcc hello.c -o hello.out 

注意:上面的命令有包含“$”号,即“${CROSS_COMPILE}gcc”,是引用我们source时产生的环境变量。 

目标文件 

$ file hello.out 

可以看到目标文件 hello.out 的属性。

 

8  文件系统

8.1  文件系统rootfs.tar.bz2

用以下的方式增加自己的应用:(把MY-IMX28_Born_Tool\Profiles\MX28 Linux Update\OS Firmware\files\image-linux-31454/rootfs.tar.bz2复制到“~/my-imx28/04_image/”目录下)。

 

8.2  文件系统filesystem.ubifs

复制mkfs.ubifs,ubinize到电脑的“/usr/bin”目录下(如果电脑有这两个应用就不需要复制了);复制build_rootfs和ubinize.cfg到“~/my-imx28/04_image/”目录。

 

9  烧写方式

至此,我们在“~/my-imx28/02_source/”得到了除文件系统以外的一套烧录文件。包括“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“rootfs.tar.bz2”。

9.1  使用MFGTOOL烧写

把文件“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“rootfs.tar.bz2复制到“MY-IMX28_Born_Tool\Profiles\MX28 Linux Update\OS Firmware\files\image-linux-31454”目录下。按住REC按键,插上MINI USB线和电源线,接着打开MfgTool.exe,点击“扫描设备”,检测到HID设备时,松开REC按键,如下所示:

点击菜单的“Options”,然后在选项“Profiles”选择“MY-IMX28-3.14.54 NAND with uboot”,接着点击“确定”,最后点击“开始”。

烧写成功后,点击“停止”就OK了。
注意:如果你用的文件系统是rootfs-qt.tar.bz2,请选择“QT-MY-IMX28-3.14.54 NAND with uboot”烧写镜像。

 

9.2  使用网络烧写

9.2.1  搭建TFTP (ubuntu系统)

(1) Setup tftp server files (下载并安装tftp)
$ sudo apt-get install tftpd tftp openbsd-inetd
(2) make a tftp directory (新建tftp目录和改变其属性)
Here we make /home/myzr/tftpt be a tftp directory.
$ mkdir /home/myzr/tftp
$ chmod 777 /home/myzr/tftp
(3) Open /etc/inetd.conf and edit it (修改配置文件的tftp目录)
$ sudo gedit /etc/inetd.conf
Coment this line :

tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp

Add new line:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/myzr/tftp
(4)Restarting tftp service (重启tftp)
$ sudo /etc/init.d/openbsd-inetd restart

 

9.2.2  搭建NFS (网络烧写不需要用到nfs)

(1) Install NFS server package (下载并安装nfs)
$ sudo apt-get install nfs-kernel-server
(2) Create NFS directory:/home/myzr/nfsroot (新建nfs目录)
$ mkdir /home/myzr/nfsroot
(3) Configure mounted directory and authority (修改配置文件的nfs目录)
$ sudo gedit /etc/exports
Add the following line at the end of the file:
/home/myzr/nfsroot *(rw,sync,no_root_squash)
(4) Restart the NFS service (重启nfs)
$ sudo /etc/init.d/portmap restart
$ sudo /etc/init.d/nfs-kernel-server restart

 

9.2.3  tftp下载

(1) 把“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“filesystem.ubifs”复制到“/home/myzr/tftp”目录下。
(2) 设置环境变量(板子和电脑网线直连)
$ setenv ipaddr 192.168.3.104 (板子IP)
$ setenv serverip 192.168.3.110 (电脑IP)
(3) 烧写
$ run update_nand_kernel (烧写zImage)

$ run update_nand_fdt (烧写fdt)

$ run update_nand_filesystem (烧写文件系统)

 

10  登录方式

10.1  串口登录

插上USB转串口线和电源,开机后,差不多10秒后,在终端上敲回车键可以进入系统。


【下章节为明远智睿MY-IMX28 Linux-3.14.54 编译手册(4)】

明远智设备上进行基于 **i.MX8** 系列处理器的烧录操作,通常需要依赖官方提供的 **SDK** 或 **烧录工具链**,以及对应的 **硬件连接方式**。以下是一个通用的烧录流程,适用于大多数基于 **i.MX8** 的开发板,包括明远智的设备。 --- ### ### 烧录前准备 1. **硬件准备**: - 明远智 i.MX8 开发板 - USB 转 TTL 线(用于串口调试) - USB Type-C 数据线(用于连接主机和开发板的烧录接口) - 主机(运行 Linux 或 Windows 系统) 2. **软件准备**: - **烧录工具**:推荐使用 **NXP 官方的 MfgTools**,该工具支持 i.MX 系列芯片的烧录操作。 - **镜像文件**:包括 U-Boot、内核(Kernel)、设备树(Device Tree)以及根文件系统(Rootfs),通常打包为 `.imx` 或 `.sdcard` 格式。 - **串口工具**:如 `minicom`、`putty` 或 `SecureCRT`,用于查看启动日志和调试。 --- ### ### 烧录步骤(基于 MfgTools) 1. **连接设备**: - 将开发板通过 USB Type-C 接口连接到主机。 - 按住开发板上的 **Boot Mode** 按钮(通常是拨码开关或物理按键),进入 **USB Boot 模式**。 2. **启动 MfgTools 工具**: - 解压并运行 MfgTools 工具包。 - 在 `cfg.ini` 文件中配置对应的烧录脚本(如 `ucl2.xml`),确保其匹配 i.MX8 的芯片型号和存储类型(如 eMMC 或 NAND)。 3. **加载烧录脚本**: - 启动 MfgTools 后,点击 “Start” 按钮,工具会自动检测设备并开始烧录流程。 - 烧录脚本通常包含以下步骤: - 加载 Bootloader(如 `imx-boot`)到 SRAM 并运行; - 加载 U-Boot 到 DDR; - 使用 U-Boot 加载内核和设备树; - 将系统镜像写入 eMMC 或其他存储介质。 4. **烧录完成**: - 烧录完成后,断开 USB 连接并重启开发板。 - 使用串口工具连接开发板,确认系统启动正常。 --- ### ### 替代方法:使用命令行烧录(Linux 环境) 如果使用 Linux 系统进行烧录,可以采用以下方式: 1. **使用 dd 命令烧录 SD 卡镜像**: ```bash sudo dd if=image-file.sdcard of=/dev/sdX bs=1M ``` 其中,`image-file.sdcard` 是生成的镜像文件,`/dev/sdX` 是 SD 卡设备路径。 2. **使用 fastboot 烧录 eMMC**: ```bash fastboot flash bootloader imx-boot fastboot flash kernel Image fastboot flash dtb imx8mm-evk.dtb fastboot flash rootfs rootfs.ext4 fastboot reboot ``` --- ### ### 常见问题处理 - **设备未被识别**:检查 USB 驱动是否安装,或尝试更换 USB 线缆。 - **烧录失败**:确保烧录脚本与芯片型号匹配,并检查镜像文件是否完整。 - **启动失败**:使用串口工具查看启动日志,确认 Bootloader 是否加载成功。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值