完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
MY-IMX28 Linux-3.14.54 编译手册
文档说明 系统环境说明
操作说明 1)文档中以“$”开头的行,其后是Linux命令。 2)文档中所有的Linux命令建议手动输入到Linux主机执行(直接复制、粘贴到Linux主机上执行,可能会执行失败)。 3)文档中的Linux执行命令,如果空格后的下一个字符是“-”的(如:sudo apt-get –y install之类的),请手动输入到Linux主机执行(直接复制、粘贴到Linux主机上执行,通常会执行失败)。 4)文档中所有一行没写完的Linux命令请手动输入到Linux主机执行,(因为复制、粘贴命令不能包含类似“换行符”之类的特殊字符)。 5)按文档输入并执行Linux命令时注意观察命令的执行结果与文档图片中的是否一致,以确认命令是否输入有误及是否执行失败。 6)第一遍编译请严格按照文档进行,否则可能出现莫名其妙的错误。 截图说明 为使视图看起来简洁整齐,截图中的命令提示符统一使用myzr$。 图片中的Linux命令 在文档的图片中观察“linyn@u12045-serv:~$”开头的行可以直观的看到输入的 linux命令。 准备源码及相关文件 源码文件 评估板对应的Linux版本及对应的源码文件见下表:
Linux程序交叉编译工具:gcc-4.4.4-glibc-2.11.1-multilib-1.0.tar.bz2 Linux交叉编译工具配置文件:gcc-4.4.4-glibc-2.11.1-multilib-env 创建工作目录 1)源码目录 $ mkdir -p ~/my-imx28/02_source 2)工具目录 $ mkdir -p ~/my-imx28/03_tools 3)镜像目录 $ mkdir -p ~/my-imx28/04_image 4)应用程序目录 $ mkdir -p ~/my-imx28/01_application 准备开发环境 更新主机的源列表 $ sudo apt-get update 更新完成后如下图所示: 安装aptitude包管理工具和ia32-libs 提示:如果编译主机的Linux是32位的,可以跳过此步骤。 安装aptitude包管理工具 $ sudo apt-get -y install aptitude 提示:上图为安装过aptitude后,再次执行安装命令的截图。 使用aptitude安装ia32-libs $ sudo aptitude -y install ia32-libs 提示:上图为安装过aptitude和ia32-libs后,再次执行安装命令的截图。 安装mkimage工具 $ sudo apt-get -y install uboot-mkimage 提示:下图为安装过mkimage工具后,再次执行安装命令的截图。 安装ncurses-dev make menuconfig对其具有依赖性质 $ sudo aptitude -y install ncurses-dev 提示:上图为安装过ncurses-dev工具后,再次执行安装命令的截图。 安装配置交叉编译工具链 安装Linux交叉编译工具链 1)进入交叉编译工具链目录 $ cd ~/my-imx28/03_tools/ 2)复制Linux交叉编译工具到目录 将gcc-4.4.4-glibc-2.11.1-multilib-1.0.tar.bz2复制到“~/my-imx28/03_tools”,这一步自己采取相应的方式完成。 3)解压Linux交叉编译工具 $ tar jxf gcc-4.4.4-glibc-2.11.1-multilib-1.0.tar.bz2 4)复制交叉编译工具配置文件 将gcc-4.4.4-glibc-2.11.1-multilib-env复制到“~/my-imx28/03_tools”,这一步自己采取相应的方式完成。 5)检查安装 $ source gcc-4.4.4-glibc-2.11.1-multilib-env $ ${CROSS_COMPILE}gcc –v U-Boot编译 准备编译 复制源码包到开发主机中 将下载的“u-boot源码”复制到Linux开发主机的“~/my-imx28/02_source”。 这一步自己采取相应的方式完成。 解压u-boot源码包 $ cd ~/my-imx28/02_source/ $ tar jxf u-boot-2015.04.tar.bz2 更新库libssl-dev $ sudo apt-get install libssl-dev 编译 使编译配置文件生效 $ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env 进入u-boot源码目录 $ cd ~/my-imx28/02_source/u-boot-2015.04 清除u-boot临时文件 $ make distclean 配置u-boot
执行编译 $ make u-boot.*** 提示:这里为了提高编译速度,在make后面加了“-j4”。这里编译的Linux主机是双核4线程的,所以“-j”后面用了4,也就是采用4线程编译。“-j”后面的数字可以根据系统资源分配,但是不应该超过编译主机最大支持的线程数。
目标文件
$ ls
准备编译 复制源码包到开发主机中 将下载的“linux源码”复制到Linux开发主机的“~/my-imx28/02_source”。 这一步自己采取相应的方式完成。 解压linux源码包 $ cd ~/my-imx28/02_source/ $ tar jxf linux-3.14.54.tar.bz2 内核编译配置 使编译配置文件生效 $ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env 清除内核临时文件
内核配置 $ cp .mx28_config .config 编译内核
$ ls arch/arm/boot/uImage -la 编译设备树 评估板型号规格与设备树文件对应关系见下表:
$ ls arch/arm/boot/dts/*.dtb 编译模块
$ tar cjf ../modules.tar.bz2 * 应用程序编译 Linux应用程序编译 编写应用程序
写入以下代码并保存
{ printf("Hello, MYZR!n"); return; }
编译应用程序
注意:上面的命令有包含“$”号,即“${CROSS_COMPILE}gcc”,是引用我们source时产生的环境变量。
可以看到目标文件 hello.out 的属性。 文件系统 文件系统rootfs.tar.bz2 用以下的方式增加自己的应用:(把MY-IMX28_Born_ToolProfilesMX28 Linux UpdateOS Firmwarefilesimage-linux-31454/rootfs.tar.bz2复制到“~/my-imx28/04_image/”目录下)。 文件系统filesystem.ubifs 复制mkfs.ubifs,ubinize到电脑的“/usr/bin”目录下(如果电脑有这两个应用就不需要复制了);复制build_rootfs和ubinize.cfg到“~/my-imx28/04_image/”目录。 烧写方式 至此,我们在“~/my-imx28/02_source/”得到了除文件系统以外的一套烧录文件。包括“u-boot.***”、“imx28-evk.dtb”、“zImage”、“rootfs.tar.bz2”。 使用MFGTOOL烧写 把文件“u-boot.***”、“imx28-evk.dtb”、“zImage”、“rootfs.tar.bz2复制到“MY-IMX28_Born_ToolProfilesMX28 Linux UpdateOS Firmwarefilesimage-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”烧写镜像。 使用网络烧写 搭建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/***in/tcpd /usr/***in/in.tftpd /home/myzr/tftp (4)Restarting tftp service (重启tftp) $ sudo /etc/init.d/openbsd-inetd restart 搭建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 tftp下载 (1) 把“u-boot.***”、“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 (烧写文件系统) 登录方式 串口登录 插上USB转串口线和电源,开机后,差不多10秒后,在终端上敲回车键可以进入系统。 ssh登录 以太网登录 插上网线和电源,开机后,差不多10秒后,可以软件SecureCRT登录,板子默认以太网的IP为192.168.3.104,你可以设置电脑的IP为192.168.3.110,然后配置SecureCRT,输入用户名是root,密码myzr。如下图: 输入完后,点击”OK“就登录完成。 USB登录(USB可识别成网口) 插上MINI USB线,开机后,差不多10秒后,可以软件SecureCRT登录,板子默认USB的IP为192.168.4.104,你可以设置电脑的IP为192.168.4.110,然后配置SecureCRT,输入用户名是root,密码myzr。如下图: 输入完后,点击”OK“就登录完成。 测试 USB测试 直接插上U盘,挂载后可看到U盘的内容。(不是QT系统,会自动挂载) SD卡测试 直接插上SD卡,挂载后可看到SD卡的内容。(不是QT系统,会自动挂载) 以太网测试 插上网线,直接用ping命令测试eth0和eth1网口。默认eth0的IP为192.168.3.104,我设置eth1为192.168.3.105。如下: uart串口测试 串口uat0的设备ttyAPP0,串口uat3的设备ttyAPP3。测试时,请短接发管脚。 gpio测试 GPIO_2_26,GPIO_2_25和GPIO_2_27已经在驱动配置为GPIO功能了,下面以管脚GPIO_2_26为例,计算GPIO_2_26的管脚号为2*32+26=90,测试如下: spi测试 SPI接口为半双工模式,这里你只测发,通过示波器可观察到波形。方法一只发送0x55和0x75;方法二是发送字符串”myzr“。 watdog测试 “看门狗”,全称Watchdog timer,是一个在软件出错的时候可以复位计算机系统的硬件定时器。通常一个用户空间守护进程会在正常的时间间隔内通过/dev/watchdog 特殊设备文件来通知内核的Watchdog驱动,用户空间一切正常。如果用户空间出现问题(如RAM 错误,内核BUG 等),则通知将会停止,然后硬件Watchdog 将在超时后复位系统。 测试程序中打开/dev/watchdog 设备文件,启动了Watchdog,每过一秒钟喂狗一次,系统不会重启。 测试程序中打开了/dev/watchdog 设备文件,启动Watchdog,程序进入循环状态,由于没有喂狗,30 秒后系统复位。 |
|||
相关推荐
|
|||
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
298 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
668 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核源代码的目录结构和文件说明
588 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介
1210 浏览 0 评论
非科班也能玩转Android应用,体验QT跨平台能力-迅为RK3568开发板
1068 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 23:12 , Processed in 0.545664 second(s), Total 69, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号