zoukankan      html  css  js  c++  java
  • 嵌入式-第一季-第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

  • 相关阅读:
    SAP ABAP Development Tools in Eclipseのセットアップ
    SET UPDATE TASK LOCAL (ローカル更新 )
    SEARCH(文字の検索)
    OVERLAY(文字の上書き)
    ULINE(插入水平线)
    SKIP(插入空行)
    NO-ZERO(空格补全)
    CONVERT TEXT(转换为可排序格式)
    递归获取子节点
    生活小记
  • 原文地址:https://www.cnblogs.com/free-1122/p/9925351.html
Copyright © 2011-2022 走看看