linux:嵌入式linux开发环境搭建(整理)

2019-07-12 15:23发布

1、安装VMware、安装ubuntu
安装详细步骤:http://blog.csdn.net/u013142781/article/details/50529030

2、配置网络,保证开发板可以ping通服务器
 > 纯ubuntu系统只要保证开发板和ubuntu系统处于同一网段即可。
 > 虚拟机中需要注意三点:
  1) 开发板、ubuntu系统、windows三者处于同一网段
   ubuntu系统(需单独配置): 192.168.1.8    255.255.255.0
   开发板(需单独配置):        192.168.1.6    255.255.255.0
     SerialCRT软件下Serial-COM1(1)的命令行下
     X6818#:' printenv    // ipaddr / netmask / serverip
     X6818#:' setenv ipaddr 192.168.1.6
     X6818#:' setenv serverip 192.168.1.8
     X6818#:' saveenv
     // 写入环境变量到掉电不丢失的EMMC中
   windows 新网络连接 ip 修改为: 192.168.1.121
     注意修改的是连接开发板的网卡的ip - 方法:拔插开发板网线,看PC上是哪个网络连接。
  2) 设置VMware的桥接模式
   VMware - 【虚拟机】 - 设置 - 网络适配器 - 桥接模式(B)
  3) 选择用于桥接的网卡
   VMware - 【编辑】 - 虚拟网络编辑器 - 桥接模式 - 桥接到(开发板对应的网卡,在本地连接中可以看名字,鼠标放在图标上即可 )
  >> 在串口中执行命令
     X6818#:' ping 192.168.1.8
     看到" host 192.168.1.8 is alive "此行内容即为ping通,成功。
     注意:
      a. 不能主机ping开发板;
      b. 第一次执行ping时不成功,忽略;(一直ping不通检查网线)

3、安装、配置、启动FTP、SSH或NFS服务
1) 准备使用软件维护工具

第一次是用apt-get安装程序时,需要完成两件事:
① 修改/etc/apt/sources.list,将其中注释掉的网址打开。(已打开则不用管)
② 更新可用的程序列表。
    $:' sudo apt-get update

2) 安装、配置、启动服务
使用tftp协议的方式完成windows下的ubootpak.bin的下载
 tftp:tftp是ftp协议的简化版本,其中没有用户管理的功能。
tftp服务器
 1) 安装tftp软件 --->
  联网方式:$:' sudo apt-get install tftpd-hpa [-d]
  // VM联外网的方式:设置 - 网络适配器 - NAT,ubuntu ip自动获得
  非联网方式:
  $:' cd /home/usrname/Downloads/tftp
  $:' sudo dpkg -i *.deb
 2) 配置tftp server :
  $:' sudo vi /etc/default/tftpd-hpa
  ---> TFTP_DIRECTORY="/tftpboot"    // tftp客户端登陆后文件默认目录
 3) 要想让新的配置生效需要重启tftp server ,重启方式:
  $:' sudo /etc/init.d/tftpd-hpa restart
 4) 将要供客户端下载的文件拷贝到/tftpboot/目录下
  $:' sudo cp /mnt/hgfs/arm/env/ubootpak.bin /tftpboot/
  //  $:' sudo chmod a+w /tftpboot/ -R       让拷贝可以省去sudo命令,方便快捷。
测试tftp工具
// 确认serverip= 192.168.1.8
X6818#:' tftp 0x48000000 ubootpak.bin
 该命令下载ubootpak.bin到dram(内存)的0x48000000为开始的地址上了。
 // 0x48000000 是物理地址,它是开发板上的物理地址,该物理地址对应的是哪个ddram,详见 cpu datasheet。
X6818#:' update_mmc 2 2ndboot 0x48000000 0x200 0x53bb0
 // 2: 2th mmc 存储设备(SD0 - 0,SD1 - 1,EMMC - 2)
 // 2ndboot:要更新的分区
 // 0x48000000:源数据地址
 // 0x200:源数据写入2ndboot分区的便宜(实际有512kb)
 // 0x53bb0:写入的字节数(ubootpak.bin文件下载下来的大小 )

nfs网络】用于连接根文件系统
这种方式一般用于开发调试阶段。
1. 服务器端设置 - PC-ubuntu-linux "在linux没有nfs服务时 执行1."
     1) 安装nfs server
         联网:$:' sudo apt-get install nfs-kernel-server
         未联网:$:' cd ~/Downloads/nfs/
                      $:' sudo dpkg -i *.deb
     2) 准备根文件系统数据
         $:' env/rootfs_qt.tar.bz2
         $:' cd /opt/
         $:' cp /mnt/hgfs/porting/env/rootfs_qt.tar.bz2 .
         $:' sudo tar xvf *.bz2
     3) 对服务器进行配置
         配置PC机上的哪些目录可以让客户端通过nfs方式访问
         $:' sudo vi /etc/exports
          /opt/rootfs  *(rw,sync,no_root_squash)
          '/opt/rootfs':允许客户端通过nfs方式访问的目录
          /* ubuntu-linux下操作该目录,即可同步到开发板linux根目录 */
          *:所有客户端都可以访问
                192.168.1.* 代表客户端IP为192.168.1.X可以访问
          rw:客户端对目录有读写权限
          sync:同步 // man 2 sync; 重要的write函数写入数据后可加。
          no_root_squash:权限,角 {MOD}
      4) 对新的配置重启nfs服务
          $:' sudo /etc/init.d/nfs-kernel-server restart
          // 看到4个 [ OK ] 重启成功。
2. 客户端设置 - 开发板
      #:' reboot
      // 进入u-boot的命令行,3秒倒计时按空格
      #:' setenv bootargs root=/dev/nfs nfsroot=192.168.1.8:/opt/rootfs ip=192.168.1.6:192.168.1.8:192.168.1.1:255.255.255.0 lcd=vs070cxn tp=gslx680-linux console=ttySAC0,115200 maxcpus=1
            /dev/nfs:属于固定写法。只要是nfs方式挂在网络文件系统
      #:' saveenv
      // uboot下 re 命令,不做任何操作等待 starting kernel启动完全
      #:' re
            Welcome to X6818
            usrname login: root
            Password: 123456
            成功!!!
       #:' cd /

4、在linux中安装基本的开发环境
① 安装C函数库的man手册
    $:' sudo apt-get install manpages-dev
② 安装ctags代码阅读工具
    $:' sudo apt-get install ctags

5、安装交叉编译工具链
 arm-cortex_a9-eabi-4.7-eglibc-2.18.tar.gz
 权限不够时解决方法:
 1> $:' sudo ...
 2> $:' sudo chmod +w /opt/ -R
 3> $:' sudo chmod 777 /opt/ -R

 $:' cd ~/opt/
 $:' sudo cp ~/workdir/arm../arm... .tar.gz .
 $:' sudo tar xvf *.gz
 >>位置:/opt/arm-cortex_a9-eabi-4.7-eglibc-2.18/bin/
 ' arm-cortex_a9-linux-gnueabi-gcc
 $:' sudo vi /etc/environment
 // 将路径添加到PATH环境变量中

单独自行扩展:
    自己制作工具链,安装包:crosstool-0.43.tar.gz
    http://blog.csdn.net/u011057439/article/details/51863050
    http://blog.csdn.net/lhw88117/article/details/7183896
    https://wenku.baidu.com/view/00106e16a216147917112837.html
    // 目标是生成可以使用 arm-linux-gcc 或 arm-linux-g++ 编译

----------------------------------------------------------------------------------------------------------------------
开发环境搭建精简版(个人实践整理):
[cpp] view plain copy
  1. 【PC】  
  2. 1、安装虚拟机  
  3.     VMware 10.0.4  
  4.   
  5. 2、安装linux到虚拟机  
  6.     ubuntu-64bit  
  7.   
  8. 3、安装辅助工具  
  9.     串口工具SecureCRT  
  10.     Editplus编辑器  
  11.     Source Insignt3(免安装版)  
  12.   
  13. 4、调试网段ip配置  
  14.     PC端网线ip:192.168.1.121(同一网段即可)  
  15.     ubuntu-linux:192.168.1.8  255.255.255.0  
  16.     开发板ipaddr:192.168.1.6 (serverip:192.168.1.8)  
  17.     设置VMware的桥接模式:VMware - 【虚拟机】 - 设置 - 网络适配器 - 桥接模式(B)  
  18.     选择用于桥接的网卡:VMware - 【编辑】 - 虚拟网络编辑器 - 桥接模式 - 桥接到(开发板对应的网卡)  
  19.   
  20. 【VM-ubuntu】  
  21. 1、命令行提示符  
  22.     $: vi ~/.bashrc  
  23.         export PS1='[W]$: '  
  24.     $: bash  
  25.   
  26. 2、配置vimrc  
  27.     $: vi ~/.vimrc  
  28.     set nu  
  29.     set ts=4  
  30.     set autoindent  
  31.     set cindent  
  32.     set tabstop=4  
  33.     set softtabstop=4  
  34.     set shiftwidth=4  
  35.     【vim终端】颜 {MOD}方案:XTerm  
  36.   
  37. 3、安装arm交叉编译器  
  38.     arm-linux-gcc/  
  39.     $: cp arm-linux-gcc/...gz /opt/  
  40.     $: tar -xvf *.gz  
  41.     配置PATH环境变量:~/.bashrc 加入 PATH=/opt/arm-c...-2.18/bin:$PATH  
  42.     $: source ~/.bashrc  
  43.   
  44. 4、安装tftp服务器  
  45.     tftp/  
  46.     $: sudo dpkg -i *.deb  
  47.     $: sudo /etc/init.d/tftpd-hpa restart  
  48.     $: sudo chmod a+w /tftpboot/ -R  
  49.   
  50. 5、安装ctags代码阅读  
  51.     ctags-5.8.tar.gz/  
  52.     $: tar -xvf ctags-5.8.tar.gz  
  53.     $: cd ctags-5.8  
  54.     $: ./configure  
  55.     $: make  
  56.     $: make install  
  57.     安装结束后,使用ctags命令测试是否成功  
  58.     或whatis ctags, whereis ctags等  
  59.   
  60.  * 其他根据情况安装  
  61. 界面开发:QT