Linux的一些简单知识

【1】移植的目的 -> 匹配
  硬件的改变软件也要做相应的改变
 
 
【2】系统移植基本内容 
 windows装机:
                BIOS:(1)初始化硬件设备
                      (2)引导加载系统内核
                从BIOS选择启动盘
 linux系统移植:
  BootLoader:(1)初始化硬件设备
                           (2)引导加载系统内核
                linux:1.BootLoader(uboot-2013)
                                       EMMC(0110)
                                       SD  (1000)
                                       sdfuse  flashall
        ls -l:以列表形式显示当前目录所有内容
        -rwxrwxr-x 1 linux linux      7159 Apr 10 08:31 a.out
        drwxrwxr-x  4 linux linux     4096 Apr 10 09:23 toolchain
                     
         -:表示普通文件
         d:表示目录
              r:可读
              w:可写
              x:可执行
              第一组:当前用户对文件的权限
              第二组:文件所属用户组中其他用户对文件的权限
              第三组:其他用户对文件的权限
              chmod 777 + file 修改文件权限
              共享文件夹:在Linux的    /mnt/hgfs目录下寻找
  
【3】交叉编译工具链的安装
               使用新的编译工具,将代码编译成ARM架构处理器能够支持的机器码,使其能够在开发板上运行(跨内核编译)

【4】主机与开发板进行文件传输 -> tftp服务:简单文本传输协议(基于udp)
 
          tftp服务配置:
                 1.修改tftp配置文件
                    sudo vi /etc/default/tftpd-hpa
                    TFTP_USERNAME="tftp"            # 用户名  
                    TFTP_DIRECTORY="/tftpboot"      # 服务器端下载文件的目录
                    TFTP_ADDRESS="0.0.0.0:69"       # 端口号  tftp在ubuntu下固定为69
                    TFTP_OPTIONS="-c -s -l"         # 设置服务器端最大的权限
                 2.创建服务端文件夹并设置为最高的权限
                                sudo mkdir /tftpboot
                               sudo chmod 777 /tftpboot
                  3.重启tftp服务
                          sudo service tftpd-hpa restart  # 重启TFTP服务
                            注:每次开启虚拟机后都需要重启tftp服务
【5】NFS服务  网络文件系统
              -> NFS服务的主要的任务是把本地的一个目录通过网络导出,其他计算机可以远程访问该目录
           NFS服务配置:
                 1.修改配置文件
                    sudo vi /etc/exports
                    在文件最后添加如下内容
                     /source/rootfs  *(rw,sync,no_subtree_check,no_root_squash)
   
                     注1:/source/rootfs  要共享的目录
                     注2:* 可以共享该目录
                     注3:(rw,sync,no_subtree_check,no_root_squash)  访问该目录的主机拥有的权限
                                    # rw                具有读写权限
                                    # sync              文件同步写入到内存和硬盘
                                    # no_subtree_check  不检查子目录权限  子目录与顶层目录具有相同的权限
                                    # no_root_squash    如果客户端是root的话,那么他对这个共享目录具有root的权限
    
               2.创建共享目录
                      sudo mkdir -p /source/rootfs
                      sudo chmod 777 /source
               3.重启nfs服务
                      sudo service nfs-kernel-server restart
                      注:每次开启虚拟机都需要重启nfs服务
   
【6】1、linux内核
                 1、内核与操作系统
                 2、内核:系统软件,用于管理和分配软硬件资源
                 3、操作系统:在内核的基础上,添加了各种工具集、库、桌面管理器、应用程序等
  
         2、linux特点
                1)支持广泛的硬件平台
                2)稳定性高
                3)扩展性好(使用各种场合)
                4)模块化设计(高内聚、低耦合) 

【7】设备树 
               设备树:一种描述开发板硬件设备的数据结构,有一系列的节点和属性组成,根据实际硬件信息对其作对应的修改
         在linux中驱动与设备无关,设备树就是来描述硬件信息的,这样可以是驱动与设备建立关系

【8】根文件系统
           1.概念 
                根文件系统:系统运行所必须依赖的一些文件(比如脚本、库、配置文件...),本质就是目录和文件。
                根文件系统镜像:将根文件系统按照某种格式进行打包压缩后生成的单个文件
                文件系统:一种管理和访问磁盘的软件机制,不同文件系统管理和访问磁盘的机制不同
     
   
           拖进文件步骤:1.将文件复制到E盘/share
                                   2.cd /mnt/hgfs/share
            查看:1.cd /tftpboot/
                      2.sudo cp 该文件 /tftpboot/
                      3.ls
                     4.cd    
       
             拷贝:1.sudo cp 该文件 /需要拷贝的文件名                 串口名字:ttySACZ
                       2.cd /需要拷贝的文件名                             1000---SD卡启动
             解压:  sudo tar xvf 该文件                                0110---EMMC启动
                                                                            A9板内存:EMMC
             搭建嵌入式开发环境:1.烧写BooLosder
                                                    作用:(1)初始化硬件设备
                                                              (2)引导加载系统内核
                                                    流程:1.制作SD卡启动盘
                                                              2.在SD卡中新建目录sdupdate,将uboot放入SD卡
                                                              3.执行烧写命令:sdfuse flashall
                                                                  uboot-2013
                                               2.挂载内核、设备树(TFTP服务器)(网络传输-网络通信协议)
                                                     setenv bootcmd tftp 41000000uImage\;tftp 42000000 exynos4412-fs4412.dtb\;bootm                                                   41000000-42000000
                                               3.挂载根文件系统(NFS服务器)
                                                     setenv bootargs root=/dev/nfs nfsroot=192.168.6.249:/source/rootfs                                                                             rwconsole=ttySAC2,115200 init=/linuxrc ip=192.168.6.2
                   设备树:uImage
                      后缀: .dtb
               重启命令:sudo reboot
     交叉编译工具链:arm-none-linux-gnueabi-gcc
                     修改:etenv
                     删除:sudo rm -r
          
    注释的三种方法:
                      1.//加在行首,表示注释掉这一行的内容
                      2./*........*/  注释掉斜杠中的内容
                      3.#if.....#enif
阅读更多

没有更多推荐了,返回首页