i.MX6ULL如何安装Linux系统 (i.mx6ull装linux)

i.MX6ULL是一款高性能、低功耗的嵌入式系统单芯片,它采用了ARM Cortex-A7架构,具有高度的集成性、强大的计算能力和广泛的应用领域。在嵌入式系统设计及应用中,i.MX6ULL已经成为公司和企业的首选。

在使用i.MX6ULL进行嵌入式系统设计时,我们需要安装一个可靠的操作系统,Linux系统是一个可以选择的方案,它具有开源、稳定、安全等优势。本文将介绍。

准备工作

在选择Linux系统时,需要了解芯片的具体型号、架构、和处理器频率,这样可以确保所选的Linux系统与i.MX6ULL芯片具有兼容性。同时,还需要准备一些工具:

1. SD卡,建议使用高速SD卡,容量不低于8GB;

2. 一台主机,并安装好开发环境;

3. USB转串口工具;

4. 调试器或jtag进行调试。

安装过程

1. 烧录Bootloader

Bootloader程序是在i.MX6ULL启动Linux系统前必须执行的代码,Bootloader程序的作用是初始化i.MX6ULL硬件设备,配置引导参数,按照指定顺序加载内核和根文件系统等。安装Bootloader程序需要按照以下步骤操作。

(1) 下载所需的Bootloader程序,以U-Boot为例,

(2) 将SD卡插入主机中,使用df -h命令查看卡的设备名,比如/dev/sdb;

(3) 卸载SD卡文件系统,使用umount /dev/sdb1命令卸载/dev/sdb1分区,以确保Bootloader能够写入该分区;

(4) 烧录Bootloader,使用dd命令将Bootloader程序烧录到SD卡引导分区,比如/dev/sdb1;

(5) 重新插入SD卡,执行mount /dev/sdb1 /mnt,挂载分区;

(6) 删除SD卡中.u-boot-spl.bin和u-boot.imx文件,防止影响正常启动。

2. 编译内核

内核是Linux系统的核心,它具有资源管理、任务调度、设备驱动等重要功能。在i.MX6ULL上安装Linux系统需要选择合适的内核版本,并进行编译和烧录。

(1) 下载内核源码,比如linux-xlnx-4.19;

(2) 将内核源码解压到本地文件系统中,并进入源码目录;

(3) 重新定义内核配置文件,使用make ARCH=arm mx6ull_defconfig命令定义内核模块访问设备的接口、编译选项等;

(4) 编译内核,使用make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4命令进行交叉编译,以生成uImage;

(5) 烧录内核到SD卡中,使用dd命令将uImage烧录到/dev/sdb1引导分区中。

3. 安装根文件系统

在i.MX6ULL上安装Linux系统时,我们还需要安装根文件系统,根文件系统包含了Linux系统的所有文件和目录,比如/bin、/dev、/etc、/lib、/usr等等。

(1) 下载根文件系统,比如Debian、Ubuntu、Busybox等等;

(2) 解压根文件系统,将解压后的文件复制到SD卡中,比如在/dev/sdb2分区中;

(3) 编辑SD卡中的uEnv.txt文件,该文件包含用于引导Linux系统的配置信息,包括u-boot的引导命令、内核文件名等信息;

(4) 将SD卡插入i.MX6ULL板子中,连接USB转串口,使用超级终端进行串口通信,输入u-boot启动命令,即可进入到Linux系统中。

i.MX6ULL是一款强大的嵌入式系统芯片,安装Linux系统可以充分发挥其计算能力和可靠性,为嵌入式系统开发提供了便利。本文介绍了,主要包括烧录Bootloader、编译内核和安装根文件系统等步骤。希望可以帮助读者更好地理解和使用i.MX6ULL芯片,为嵌入式系统开发做出贡献。

相关问题拓展阅读:

linux怎么在lcd显示一张400*240的照片并放在中间

1) 在LCD上显示BMP或JPEG图片的主流程图

首先,在程序开始前。要在nfs/dev目录下创建LCD的设备结点,设备名fb0,设备类型为字符设备,主设备号为29,次设备号为0。命令如下:

mknod fb0 c 29 0

在LCD上显示图象的主流程图如图1所示。程序一开始要调用open函数打开设备,然后调用ioctl获取设备相关信息,接下来就是读取图形文件数据,把图象的RGB值映射到显存中,这部分是图象显示的核心。对于JPEG格式的图片,要先经过JPEG解码才能得到RGB数据,本项目中直接才用现成的JPEG库进行解码。对于bmp格式的图片,则可以直接从文件里面提取其RGB数据。要从一个bmp文件里面把图片数据阵列提取出来,首先必须知道bmp文件的格式。下面来详细介绍bmp文件的格式。

图1

2) bmp位图格式分析

位图文件可看成由四个则饥棚部分组成:位图文件头、位图信息头、彩色表和定义位图肢悔的字节阵列。如图2所示。

图2

文件头中各个段的地址及其内容如图3。

图3

位图文件头数据结构包含孙则BMP图象文件的类型,显示内容等信息。它的数据结构如下定义:

Typedef struct

{

int bfType;//表明位图文件的类型,必须为BM

long bfSize;//表明位图文件的大小,以字节为单位

int bfReserved1;//属于保留字,必须为本0

int bfReserved2;//也是保留字,必须为本0

long bfOffBits;//位图阵列的起始位置,以字节为单位

} BITMAPFILEHEADER;

2.1)信息头中各个段的地址及其内容如图4所示。

图4

位图信息头的数据结构包含了有关BMP图象的宽,高,压缩方法等信息,它的C语言数据结构如下:

Typedef struct {

long biSize; //指出本数据结构所需要的字节数

long biWidth;//以象素为单位,给出BMP图象的宽度

long biHeight;//以象素为单位,给出BMP图象的高度

int biPlanes;//输出设备的位平面数,必须置为1

int biBitCount;//给出每个象素的位数

long biCompress;//给出位图的压缩类型

long biSizeImage;//给出图象字节数的多少

long biXPelsPerMeter;//图像的水平分辨率

long biYPelsPerMeter;//图象的垂直分辨率

long biClrUsed;//调色板中图象实际使用的颜色素数

long biClrImportant;//给出重要颜色的索引值

} BITMAPINFOHEADER;

2.2)对于象素小于或等于16位的图片,都有一个颜色表用来给图象数据阵列提供颜色索引,其中的每块数据都以B、G、R的顺序排列,还有一个是reserved保留位。而在图形数据区域存放的是各个象素点的索引值。它的C语言结构如图5所示。

图5 颜色表数据结构

2.3)对于24位和32位的图片,没有彩色表,他在图象数据区里直接存放图片的RGB数据,其中的每个象素点的数据都以B、G、R的顺序排列。每个象素点的数据结构如图6所示。

图6 图象数据阵列的数据结构

2.4)由于图象数据阵列中的数据是从图片的最后一行开始往上存放的,因此在显示图象时,是从图象的左下角开始逐行扫描图象,即从左到右,从下到上。

2.5)对S3C2410或PXA255开发板上的LCD来说,他们每个象素点所占的位数为16位,这16位按B:G:R=5:6:5的方式分,其中B在更高位,R在更低位。而从bmp图象得到的R、G、B数据则每个数据占8位,合起来一共24位,因此需要对该R、G、B数据进行移位组合成一个16位的数据。移位方法如下:

b >>= 3; g >>= 2; r >>= 3;

RGBValue = ( rwidth/lcd_width;

heightScale=bmpi->height/lcd_height;

本程序中方块的大小以如下的方式确定:

unsigned int paneWidth=

unsigned int paneHeight= ;

符号 代表向上取整。

(2)、从图片的左上角开始,以(i* widthScale,j* heightScale)位起始点,以宽paneWidth 高paneHeight为一个小方块,对该方块的R、G、B数值分别取平均,得到映射点的R、G、B值,把该点作为要在LCD上显示的第(i , j)点存储起来。

这部分的程序如下:

//取平均

for( i=0;ir=div_round(color_sum_r,paneHeight*paneWidth);

RGBvalue_256->g=div_round(color_sum_g,paneHeight*paneWidth);

RGBvalue_256->b=div_round(color_sum_b,paneHeight*paneWidth);

}

}

4) 图片数据提取及显示的总流程

通过以上的分析,整个图片数据提取及显示的总流程如图8 所示。

图 8

图像显示应用程序:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

struct fb_dev

{

//for frame buffer

int fb;

void *fb_mem; //frame buffer mmap

int fb_width, fb_height, fb_line_len, fb_size;

int fb_bpp;

} fbdev;

//得到framebuffer的长、宽和位宽,成功则返回0,失败返回-1

int fb_stat(int fd)

{

struct fb_fix_screeninfo fb_finfo;

struct fb_var_screeninfo fb_vinfo;

if (ioctl(fd, FBIOGET_FSCREENINFO, &fb_finfo))

{

perror(__func__);

return (-1);

}

if (ioctl(fd, FBIOGET_VSCREENINFO, &fb_vinfo))

{

perror(__func__);

return (-1);

}

fbdev.fb_width = fb_vinfo.xres;

fbdev.fb_height = fb_vinfo.yres;

fbdev.fb_bpp = fb_vinfo.bits_per_pixel;

fbdev.fb_line_len = fb_finfo.line_length;

fbdev.fb_size = fb_finfo.em_len;

return (0);

}

//转换RGB888为RGB565(因为当前LCD是采用的RGB565显示的)

unsigned short RGB888toRGB565(unsigned char red, unsigned char green, unsigned char blue)

{

unsigned short B = (blue >> 3) & 0x001F;

unsigned short G = ((green >> 2) > 3) width) || (y > height))

return (-1);

unsigned short *dst = ((unsigned short *) fbmem + y * width + x);

*dst = color;

return 0;

}

int main(int argc, char **argv)

{

int fb;

FILE *infile;

struct jpeg_decompress_struct cinfo;

int x,y;

unsigned char *buffer;

char s;

struct jpeg_error_mgr jerr;

if ((fb = open(“/dev/fb0”, O_RDWR))

改成

extern “C” {

#include

}

这里是有问题的,注意gcc 会把LCD.C当成c++编译,而把LCD.c当成C语言编译,改成lcd.c后就没有上边红色部分错误

由于是有的是JPEG解码库,链接的时候需要加上-ljpeg 选项

使用命令 arm-linux-gcc -ljpeg LCD.C -o LCD #add -ljpeg option 编译源文件成功,

文章知识点与官方知识档案匹配

CS入门技能树Linux入门初识Linux

23099 人正在系统学习中

点击阅读全文

打开CSDN,阅读体验更佳

开发板lcd上显示图片

#include #include #include “lcd.h” #include “regs.h” extern const unsigned char gImage_6; //extern const unsigned char gImage_5; extern const unsigned char gImage_a; extern const unsigned char test; static unsigned short drawb; //it is a public draw area unsigned char mask={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; unsigned char mat={0x00,0x00,0x10,0x38, 0x6c,0xc6,0xfe,0xc6, 0xc6,0xc6,0xc6,0x00, 0x00,0x00,0x00,0x00 };

lcd屏幕显示bmp、jpg图片

文章目录BMP图片显示:jpeg压缩过程 RGB: ARGB 32bit 4Byte A:【24-31】 R:【16-23】 G:【8-15】 B:【0-7】 图片显示 显示思路: (1)打开液晶屏(open),进行内存映射(mmap) (2)打开图片,读取颜色数据 (3)将读取到的颜色数据映射到液晶屏 (4)关闭图片文件,液晶屏,解除内存映射 BMP图片显示: 没有经过压缩的二进制位图文件,文件较大,获取颜色数据方便 一张800*480的bmp格式的图片=Byt

继续访问

最新发布 【正点原子I.MX6U-MINI应用篇】6、嵌入式Linux在LCD屏幕上显示字符

嵌入式Linux在LCD屏幕上显示字符

继续访问

数码相框(十六、LCD显示JPG格式图片)

注:本人已购买韦东山老师第三期项目视频,内容来源《数码相框项目视频》,只用于学习记录,如有侵权,请联系删除。 1. LCD 如何显示一张图片? 假如下图是是我们的 JZ2440 开发板,它有一个块显存、LCD控制器、LCD显示屏,LCD是如何显示张图片的呢? 如上图所示: ① 图片的颜色数据存放在显存,LCD 控制器会自动从显存取出图片的一个个颜色数据发送给LCD,取到最后又从头开始的循环取数据,最终把一张图片的全部颜色数据发送到LCD上,从而在LCD显示出该图片; ② 显存存放的数据是RGB数据;.

继续访问

linux滚动屏幕,基于MIDP1.0实现屏幕滚动(转)

本例介绍了一个常用的编程技巧,就是如何基于MIDP1.0实现屏幕的滚动效果。在MIDP2.0可以借助LayerManager的的“可视窗口”来实现。MIDP1.0通过变化坐标系来实现屏幕的滚动效果,只要借助Graphics.translate()方法。package com.j2medev.translate;import javax.microedition.midlet.*;import ja…

继续访问

Linux系统LCD显示图片的原理,linux驱动开发:用户空间操作LCD显示简单的图片【转】…

上一章我们简单介绍了LCD的一些基本原理。当然更深奥的还有,比如gamma,dither,HUE,satuation.OSD等等.我们知道我们是用framebuffer来实现显示的.显存:framebuffer.由DDRAM中划去一部分内存供显存使用.从而操作lcd相当于操作显存.lcd控制器(s5pv210里面有lcd控制器)会周期的获取framebuffer中的数据。经过处理丢给 显示屏的lc…

继续访问

linux中如何在fb上显示

framebuffer 帧缓冲

帧缓冲(framebuffer)是Linux 系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。用户不必关心物理显示缓冲区的具置及存放方式,这些都由帧缓冲设备驱动本身来完成。 framebuffer机制模仿显卡的功能,将显卡硬件结构抽象为一系列的数据结构,可以通过fra…

继续访问

如何让linux fb0显示命令行,linux – 如何将/ dev / fb0用作来自用户空间的控制台,或者将文本输出到它…

所以我有一个Palm Pre(原始P100EWW)模型,我启用了开发人员模式,并安装了Debian Squeeze chroot.效果很好.我计划将这个用于任何东西(bittorrent peer,web server)但是一部手机.我注意到我是否做了猫/ dev / urandom> / dev / fb0它实际上将随机像素写入屏幕,直到生成设备错误上没有剩余空格.真棒,现在我可以使用显示…

继续访问

linux 如何查看fb中分辨率_linux下直接写framebuffer(fb0)的方式显示bmp图像

linux下的显示设备就是/dev/fb0,往该设备写入的数据会显示在屏幕上,所以我们可以通过直接写frame buffer这个/dev/fb0设备来实现bmp图像的显示,而不用管是在shell文本方式下还是在其他gnome、qt、gtk、wayland等图形模式下,都能显示出来。当前前提是你的linux下必须具有该设备并支持读写(无特殊处理的linux都有该设备)。代码(支持16位、24位或32…

继续访问

Linux下LCD编程(fb设备_console_汉化)

继续访问

如何改造 Linux 虚拟终端显示文字

CJKTTY 补丁是什么,为什么我写了它 当你不使用 X 的时候,打开电脑,你就在使用虚拟终端。这么多年来它工作的很好,直到它来到了中国。包含中文字符的文件名无法正确显示,中文文档无法阅读。当然可以使用 X , 但是我为什么不能让终端也能显示汉字呢?如果在 X 下我能让屏幕显示汉字,终端下一定也能。为此我开始了 internet 上的搜寻。 我找到了 fbterm,这是个可以利用 /dev/

继续访问

LCD图片显示、触摸屏、音乐播放、缩放图片和播放视频

讲解LCD的原理和mmap函数,BMP格式图片的的显示,触摸屏的概念和原理以及触摸屏输入的解读,以及音乐视频播放和图片缩放。

继续访问

undefined reference to `jpeg_std_error(jpeg_error_mgr*)

背景 linux + QT BMP图片转JPG #include 编译错误: root@happy-virtual-machine:/home/happy/Lee/Detector2# make arm-linux-g++ -Wl,-O1 -Wl,-rpath,/opt/qt-4.7.1/lib -o Detector2 main.o…

继续访问

linux屏幕滑动效果实现代码,使用swipe方法模拟屏幕滑动与手势密码绘制

前言App自动化测试中有两个很重要的操作,屏幕滑动与绘制手势密码。目前很多App在启动时,都存在启动时的引导动画或者加载上下文内容时需要手动上滑或者下滑加载页面,所以在自动化测试的过程中模拟手的滑动操作看起来就很重要了;第二个比较重要的是模拟手动绘制九宫格完成手势密码的设置,这种手势密码在我了解的范围内,大多在金融类的app中最常见,还有一些对用户信息保密性较好的app中,所以,模拟绘制手势密码也…

继续访问

Linux下LCD图片放大缩小实现,仿QQ空间滑动图片放大缩小控件

先来看一下效果:scrollzoom_listview.gif一、设计思路与实现步骤1、本例是通过重写ListView来实现的,头部的图片是ListView的HeadView。定义一个headview.xml布局文件,在这个布局文件中放一个ImageView,并给IamgeView设置一个初始高度2、实现下拉图片放大当ListView处于顶部的时候下拉实现图片放大,这里要用的一个核心的方法是ove…

继续访问

无法解析的外部符号 jpeg_std_error

1>dlib.lib(png_loader.obj) : error LNK2023: 无法解析的外部符号 png_set_sig_bytes 1>dlib.lib(png_loader.obj) : error LNK2023: 无法解析的外部符号 png_sig_cmp 1>dlib.lib(png_loader.obj) : error LNK2023: 无法解析的外部符号…

继续访问

Linux LCD驱动(二)——图形显示

BMP和JPEG图形显示程序 1) 在LCD上显示BMP或JPEG图片的主流程图 首先,在程序开始前。要在nfs/dev目录下创建LCD的设备结点,设备名fb0,设备类型为字符设备,主设备号为29,次设备号为0。命令如下: mknod fb0 c 29 0 在LCD上显示图象的主流程图如图1所示。程序一开始要调用open函数打开设备,然后调用ioctl获取设备相关信息,接下来就是读取图形

继续访问

嵌入式Linux下完成LCD屏文字显示(帧缓冲框架)

帧缓冲框架是Linux下专门为显示类设备设计的接口,目的是将硬件和软件层分离开,方便应用层的编程,也方便应用层程序移植。帧缓冲框架向驱动层和应用层分别提供了一套标准接口,驱动层按照框架编写驱动,应用层按照框架编写应用程序。帧缓冲在/dev目录下生成的标准节点是fb,比如:/dev/fb0,/dev/fb1等等。

继续访问

linux 如何查看fb中分辨率_通过Linux FrameBuffer将像素绘制到屏幕上

急需一款应用于人脸识别的IMX6ULL核心板,因要把控好成本,有没有质量好又不贵的?想听听大家的建议。

明春敬远智睿i.MX6ULLl核心板价格在行业内算是很低的了,如果走批量的话应该还能降一点,作为NXP的IDH合作伙伴,质量无需担心扒唤慎,重要的是看他们的技术支持怎么样,你可链芦以先去了解再做决定。

从扮演物联网应用重要关键的NFC技术,到智慧生活与串接共享经济服务

近年兴盛的共享经济发展模式,强调结合手机快速连结、启用,透过媒合大量使用需求,让整体服务使用成本降低,包含近期盛行的共享单车、共享充电租赁设备,使用过程中透过手机快速完成身分认证,或是使用完毕后的支付动作,其实与恩智浦均有不少关连。例如恩智浦NFC技术即可让使用者快速透过手机存取共享单车资讯,并且立即完成车辆解锁,让使用者能快速取用车辆,即使共享单车服务并非借由NFC技术进行认证,依然可透过扫码认证方式取车。

共享充电设备所使用技术方案,除了透过NFC感应或条码扫描完成身分认证、支付等流程,在充电设备电路设计也采用许多恩智浦控制器设计,让整体电力输出、输入获得有效控制,同时也能避免充漏衫电过程发生过充等意外。

便捷的智慧生活应用到NFC与条码扫描

在目前许多物联网应用里,从非接触式射频识别(RFID)演变而来的NFC(近场感应技术)扮演重要角色,包含装置间快速认证启用、票证模拟(例如交通票证),或是行动支付应用都少不了此技术,随着行动支付话题持续活跃,越来越多智慧型手机均内建此项功能,也让更多人知晓NFC实际应用模式。

恩智浦针对各类物联网应用提供不同技术资源,例如发展许久的车载系统晶片,以及近年扩大发展的无线喇叭,或是结合数位助理服务的智慧喇叭,而包含各类手持数位装置、物联网设备的连结及安全也均有着墨。其中透过i.MX7Dual处理器让智慧喇叭能整合阵列麦克风,协助语音输入分析更加精准,同时也能帮助数位助理与人互动,并且让串流播放声音变得更加流畅,而整合低功耗运作特性的QN9080蓝牙晶片,也能带来约40%节能的省电效果,维持随时可被唤醒、感测邻近资讯特性。

另外,结合指纹、NFC、密码等识别认证方式,将能使电子锁更加安全,而恩智浦半导体提供的eSE嵌入式安全晶片,以及i.MX系列、Kiis系列处理器也让许多物联网应用变得更蚂搜谨加便利,同时确保资讯交换过程安全无虞。

行动支付、数位认证之一道流程─NFC

NFC技术已推行许久,最早应用在如门禁卡、感应式票卡,以及各类信用卡等智慧卡片,另外也能应用在海报、特定设备供人透过同样具备NFC功能的手机等装置「读取」资讯,进而可透过写入内容启动浏览器开启特定网页,或是下载特定App。在目前常见的信用卡刷卡机也都具备NFC功能,借此让具有NFC功能的信用卡,以及可模拟信用卡功能的智慧型手机感应支付。

随着越来越多物联网装置普及,可作为个人身分验证、快速启用特定功能的NFC也就愈显重要,尤其是在需要金钱交易的操作部分,更能让使用者直接透过信用卡等智慧卡片,或是智慧型手机感应即可完成支付,无需麻烦地在物联网设备上输入个人资讯,毕竟此类物联网设备可能未配置任何输入介面,仅配合NFC等连接模式与智慧型手机装置互动,并且成为物联网应用模式基础。此外,透过利用恩智浦eSE嵌入式安全晶片不只可让手机作为随身交通票证使用,其提供的安全防护更可让手机变身电子钱包。

实现未来更便利的智慧移动与安全支付,恩智浦积极与众多手机厂商合作,例如在三星、HTC、SonyMobile、华为、小米等品牌机种提供NFC技术应用方案,并且在中国市场与华为等手机品牌与大众运输工具厂商合作,分别在中国地区超过60个主要城市合作虚拟闷基交通票卡。

扫码认证并非只是简单拍张照

除了借由NFC技术进行近场感应交易、互动之外,目前更加普及的是借由相机扫描条码,借此让使用者能快速借由手机读取条码中的资讯,或是借由条码扫描完成支付,例如在中国地区普遍使用的微信支付便是以此方式进行交易,而台湾地区推行的LINEPay服务也透过同样方式付款。

不过,虽然看起来是借由手机相机完成条码资讯判读的简单动作,背后其实涉及包含光线、图像感测元件,与包含负责图像资讯转换运算的高速处理器等诸多项目,而恩智浦旗下i.MX6ULL系列处理器则扮演关键角色,让装置能在条码影像完成「读取」之后,快速转译成手机装置可使用的数位讯号,借此进一步从电子钱包余额扣款,进而完成单笔交易。在未使用NFC技术的服务项目里,透过相机扫描条码将能达成辅助效果。

结合NFC感应到条码扫描认证,除了让使用者能直觉、简单地完成电子交易,另一方面也能以此完成身分认证,进而可延伸用于不同类型的物联网装置启用、互动,而身分认证方式可以精简到直接透过手机感应,或是透过身上穿戴手环类装置感应完成确认,以上种种都使得提供此类背后技术支援的恩智浦显得更加重要。恩智浦技术所串接的应用,不只满足智慧生活需求也支援共享经济趋势衍生的服务,让恩智浦不只在各类技术扮演桥梁连结的角色,更成为各类服务的重要推手。

你也许会想看以下内容:

关于i.mx6ull装linux的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » i.MX6ULL如何安装Linux系统 (i.mx6ull装linux)