嵌入式-第一季-第18课

第十八课 开发板安装准备

一.问题

  1. 嵌入式系统需要安装在开发板的什么位置?

nand flash

  1. 需要安装的嵌入式linux系统可以分为几个部分?
  2. 把嵌入式linux系统安装到nandflash的具体步骤是什么?

二.嵌入式系统

一个正常的嵌入式系统有着如下的组成

  1. Bootloader:当开发板上电的时候,最先启动的就是它,初始化一些必要的硬件
  2. Linux内核
  3. 文件系统(根文件系统):包括应用程序,音频、视频、文本文件。

三.系统安装步骤

  1. 系统安装辅助软件,dd命令/windows烧写软件------SD----USB下载线(嵌入式linux系统)----开发板的nandflash
  2. 软件部分

dd:进行文件的复制,在复制的同时,可以进行格式转换

例如:dd  iflag=dsync  oflag=dsync  if =xx.bin  of=/dev/sdb  seek=1

dd  命令名

iflag=dsync    读取文件时,采用同步方式

oflag=dsync    写入文件时,采用同步方式

if =xx.bin      要复制的文件名

of=/dev/sdb    文件被复制到的设备,/dev/sdb表示sd卡,当我们把内存卡插到电脑上的时候,会出现对应的一个文件,这个文件一般就是dev/sdb

seek=1        sd卡的第一个扇区

  1. 硬件准备1

(1)SD卡不能小于4GB,必须使用读卡器,即使你的PC自带了SD卡槽

(2)必须使用标准的SD卡,不能使用TF+套卡。

(3)连接好串口和电源,摆正开发板是SD卡启动。

  1. 硬件准备2

连接好串口和电源,确保开发板是从SD卡启动(1234对应着:OFFONONOFF)。

 

  1. 连接

当我们把优盘连接到电脑上后,我们率先要做的是将优盘进行格式化。然后我们在虚拟机中找到这个图标,我们在第六个图上单机右键进行链接选项。之后我们就会在主页面中看到这个大约4G的文件了。

连接之后我们并不知道SD卡在哪里,所以我们使用命令:fdisk -l 进行查看,根据容量的关系我们找到类似的存在 /dev/sdb

我们在文件夹下输入dd  iflag=dsync  oflag=dsync  if =u-boot_TQ210.bin  of=/dev/sdb  seek=1  回车,显示完成。右键图标,进行删除优盘。

注意:u-boot_TQ210.bin是我们通过samba服务器导进来的完成的程序文件。

我们连接开发板电源,打开secureCRT软件,按住空格,开启电源,显示下面的界面,显示成功:

 

 

注意:设置虚拟机选项要在虚拟机启动之前完成,这里为了使得在主界面的下面有相应的usb插入图标,我们要在启动虚拟机之前设置USB驱动设备,设置了自动显示后,将在图下面显示响应的标识。下图的左数第六个标志就是。

 

本节课和上一节课看似简单,但是我却在学习过程中遇到了好多的问题。首先就是配套课程中的usb转串口(232)软件是不能用的。我试过从网上下载,用驱动精灵来搜索,但是都是不行的。于是,我直接向相关的厂家要了软件,还别说,真好使。走了一些弯路,也学到了许多。在本节课中,我遇到的问题是,linux系统的usb驱动问题。

 

延伸:

modprobe(选项)(参数)

选项

-a--all:载入全部的模块;

-c--show-conf:显示所有模块的设置信息;

-d--debug:使用排错模式;

-l--list:显示可用的模块;

-r--remove:模块闲置不用时,即自动卸载模块;

-t--type:指定模块类型;

-v--verbose:执行时显示详细的信息;

-V--version:显示版本信息;

-help:显示帮助。

参数

模块名:要加载或移除的模块名称。

实例

查看modules的配置文件:

modprobe -c

这里,可以查看modules的配置文件,比如模块的alias别名是什么等。会打印许多行信息,例如其中的一行会类似如下:

alias symbol:ip_conntrack_unregister_notifier ip_conntrack

列出内核中所有已经或者未挂载的所有模块:

modprobe -l

这里,我们能查看到我们所需要的模块,然后根据我们的需要来挂载;其实modprobe -l读取的模块列表就位于/lib/modules/`uname -r`目录中;其中uname -r是内核的版本,例如输出结果的其中一行是:

/lib/modules/2.6.18-348.6.1.el5/kernel/net/netfilter/xt_statistic.ko

挂载vfat模块:

modprobe vfat

这里,使用格式modprobe 模块名来挂载一个模块。挂载之后,用lsmod可以查看已经挂载的模块。模块名是不能带有后缀的,我们通过modprobe -l所看到的模块,都是带有.ko.o后缀。

移除已经加载的模块:

modprobe -r 模块名

这里,移除已加载的模块,和rmmod功能相同

 

linux下无法识别u

 经常会遇到Linux下无法识别u盘的情况,这里做一下记录:

    1.在虚拟机(vbox)中无法识别u

    vbox和宿主机对u盘的使用时独占的(即在某一时间只有二者之一能访问u盘,而不能同时访问),遇到vbox中的linux无法识别u盘的情况时以下可以参考:

        1>保证在宿主机下能对u盘进行访问,这样保证宿主机的u盘驱动没有问题

        2>需要在vbox下进行访问时,进入虚拟机中的linux系统,然后在菜单栏 设备->分配usb设备 下找到相应的usb设备并勾选

    这时一般来说就可以识别u盘了,如果还是没有成功识别,这说明虚拟机下所装的linux缺失了usb的相关驱动(这种情况来自于绿色版虚拟机,可以补装usb驱动或者使用安装版的虚拟机)。

 

    2.在实际linux系统下无法识别u

    在实际的linux系统下无法识别u盘时,可以参考以下流程:

        1>插入u

        2>#fdisk -l /dev/sd*     或者 #df

        这时如果看到相应的u盘,那么u盘已经被正确识别;如果看不到那么执行接下来的操作。

        3>#lsmod

        执行上述命令查看 usb-storage scsi_mod sd_mod 模块是否已经被添加,如果没有找到上述模块,执行#modprobe [module] 进行添加。

        4>建立挂载点,如/mnt/usb,执行#mount /dev/sda /mnt/usb

        有的系统需要指出挂载的文件类型,执行#mount -t vfat /dev/sda /mnt/usb

posted @ 2018-11-07 20:12  free-锻炼身体  阅读(134)  评论(0编辑  收藏  举报