嵌入式Linux开发环境搭建

Posted 大奥特曼打小怪兽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式Linux开发环境搭建相关的知识,希望对你有一定的参考价值。

在学习嵌入式Linux开发之前,我们首先需要做一些准备工作,搭建硬件、软件开发环境。

一、硬件环境搭建

1.1 交叉开发模式

在开发PC机程序时,可以直接在PC机上编辑、编辑、调试软件,最终发布的软件也可以在PC机运行。而对于嵌入式开发,最初的嵌入式设备是一个空白的系统,需要通过主机为它构建基本的软件系统,并烧写到设备中。另外,嵌入式设备的资源并不足以用来开发软件。所以需要用到交叉开发模式:在主机上编辑、编译软件,然后在目标机上运行、验证程序。

1.2 硬件要求

首先我们需要有一个PC主机、目前的PC机基本都可以满足我们的开发要求,就不做过多的介绍。

其次我们需要有一块开发板。目前市面上的开发板有很多,这里我们就以S3C2440开发板为例,主要是因为我们还处于学习阶段,而这款芯片毕竟经典,网上资料也很多,方便我们学习。S3C2440开发板外接了如下部件:

(1)  64MB SDRAM

(2) 1MB NOR Flash

(3) 64MB NAND FLash

(4) 两个网卡(10MB和100MB)

(5) 5个串口(内置三个、外扩两个)

(6) 音频输入输出

(7) 2.5寸IDE接口

(8) 标准SD/MMC卡座

(9) 4个GPIO按键、4个GPIO按键

(10) 外接$I^2C$接口的实时时钟(RTC)芯片

二、软件环境搭建

2.1 VMware安装

 VMware Workstation Pro 15中文破解版下载地址:http://www.zdfans.com/html/16025.html

下载并解压,得到安装程序和注册文件:

双击VMware-workstation-full-15.0.0-10134415.exe运行安装,点击下一步:

 

勾选我接受许可协议中的条款,点击下一步:

 点击更改选择软件安装路径,点击下一步:

 选择需要安装的快捷方式,点击下一步:

点击安装按钮开始安装:

 完成中,安装完成后点击许可证按钮:

 运行keygen.exe注册机,将生成的许可证密钥复制到软件中,点击输入按钮

 

 破解完成,运行软件就可以免费使用了。

2.2 ubuntu安装

嵌入式linux开发以及深度学习开发一般使用ubuntu居多,而centos一般作为web服务器使用。本节以ubunti20.04.2.0安装为例,下载地址http://mirrors.163.com/ubuntu-releases/

(1) 打开WMware,在vmware主界面的“主页”标签点击创建虚拟机向导。如下图所示。

(2) 向导界面选择“自定义高级”,如下图所示:

 

(3)  然后下一步,兼容性选择当前vmware版本,比如本人是15版就选择15版。如果要分发虚拟机给别人使用,就选择别人的版本。如下所示。

(4) 下一步,选择稍后安装操作系统,如下所示

(5) 选择库户籍操作系统:

 

 (6) 下一步,虚拟机名称可以随便取。“位置”就是将来虚拟机文件所在的目录,因为虚拟机文件比较大,要选择一个磁盘空间比较大的目录

(7) 下一步,设置要分配给虚拟机的CPU,电脑配置高的可以往上调,如果要同时运行两个以上虚拟机就少分配一点,一般采用默认值就可以:

(8) 下一步,Ubuntu内存配置:

(9)、网络配置,采用桥接网络:

(10) 硬盘控制器,没有特殊情况就选默认值:

(11) 硬盘类型,没有特殊情况就选默认值:

(12) 创一个新的磁盘,如果使用单独物理磁盘的选第三项:

(13) 磁盘空间,一般默认20G就够了,如果要装的软件特别多就多分配一点,一般空的Ubuntu16装完占用10G左右,剩10G软件空间:

 

 

(14)、磁盘文件名,没有什么影响随便去一个就好了

(15) 到这一步就创建完一个虚拟机了,如下。如果对刚才的配置不满意可以点“自定义”进一步修改:

(16) 在启动虚拟机前进行虚拟机设置:

 

要在这里选择你的iso文件。然后启动操作系统,开始真正的系统安装。

(16) 语言选择简体中文,点击安装ubuntu:

(17) 点击继续:

(18) 然后选择清除整个磁盘并安装ubuntu:

(19) 点击继续:

 (19) 设置登录密码为123456:

等待完成之后重启就行了!!!

 

三、ubuntu配置

3.1 修改root密码

修改root密码(123456aa):

sudo passwd root

 

sudo 它允许系统管理员分配给普通用户一些合理的权力,让他们执行一些只有超级用户或者其他特权用户才能完成的任务。比如 mount、halt、su,useradd等命令,sudo权限分配是通过文件/etc/sudoers配置的。

3.2 网络设置

WMware网络设置支持三种模式:

  1. bridged(桥接模式):   虚拟机能得到一个独立IP地址,网络能提供多个IP地址;虚拟机可以外部网络,外部网络也可以访问虚拟机
  2. NAT(网络地址转换模式) : 如果网络中只提供一个IP地址,虚拟机和主机使用一个IP地址;虚拟机可以外部网络,但是外部网络访问不了虚拟机
  3. 主机模式 (主机没有联网):相当于把主机和虚拟机通过一根网线连接在一起;

 

之前我们在安装ubuntu的时候选择了桥接模式。我们需要设置ubuntu和主机在同一网段内。由于我的windows操作系统的IP为192.168.0.105:

查看ubuntu的网络配置:

可以看到,本例中的网卡为“ens33”,同时可以看到相应的IP信息等。

不同的linux系统,网卡配置文件是不同的,这里ubuntu的网卡配置文件是/etc/network/interfaces:

我们首先安装vim:

sudo apt install vim

输入下面命令进行编辑网卡文件:

sudo vim /etc/network/interfaces

默认的文件内容如下:

auto lo
iface lo inet loopback

修改内容如下:下面的ens33需要改成自己的网卡名称。ip地址,掩码网关自己合理配置就行了。记得wq!保存退出:

auto ens33
iface ens33 inet static
address 192.168.0.200
netmask  255.255.255.0
gateway  192.168.0.1

配置DNS,在终端输入命令:

sudo vim /etc/resolv.conf

在其中添加:

nameserver 8.8.8.8

然后重启ubuntu服务器,运行ifconfig可以看到ip地址已经改为192.168.0.200:

3.3 SSH服务搭建

安装ssh-server服务,用于ssh工具远程连接:

sudo apt-get install openssh-server

查看ssh是否已经启动:

ps -ef | grep ssh

我们通过ssh工具连接ubuntu服务器,如果发现连接不上的话。在ubuntu终端下,切换到root用户:

su root
vim /etc/ssh/sshd_config
进入该文件,找到PermitRootLogin prohibit-password那一行进行注释掉(有的时候默认是注释掉的),并在下面添加一行
PermitRootLogin yes

保存后,重启ssh服务:
service ssh restart

再次通过ssh工具连接,我们就可以连接成功了:

3.4 FTP服务搭建

执行以下安装命令,安装后即会自动运行:
sudo apt-get install vsftpd

修改vsftpd的配置文件/etc/vsftpd.conf:

sudo vim /etc/vsftpd.conf

将下面几行前面的#去掉:

修改完成后,执行重启命令:

sudo /etc/init.d/vsftpd restart

3.5  NFS服务搭建

执行以下安装命令,安装后即会自动运行:
sudo apt-get install nfs-kernel-server portmap

 它的配置文件为/etc/exports,添加共享目录:

格式 :  /tmp     192.168.0.*(rw,  sync,        no_root_squash)
           共享文件 可访问用户 权限  写回源文件?  客户端使用root,则想要root权限  

我们创建一个目录/work/nfs_root,配置/etc/exports:

/work/nfs_root 192.168.0*(rw,sync,no_root_squash)

修改完毕之后,启动NFS服务器

sudo /etc/init.d/nfs-kernel-server restart/start/stop

查看是否启动:

netstat -a | grep nfs

3.6 搭建samba服务器

因为我是在windwows上开发,Ubuntu编译。因此windwows之间的文件共享是非常重要的。通常有两种方式:samba服务器或者共享文件夹。

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。它可以实现windows和Unix-Like两个平台之间互相分享文档和数据。 Samba服务器的工作原理是:客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。

安装samba:

 sudo apt-get install samba

测试是否安装成功:

smb[按TAB TAB补全]

 

 

 配置samba:

      cd /work
      mkdir sambashare             
      cd /etc/samba/
      sudo cp smb.conf smb.cong.bkp  //备份samba配置文件
      sudo vi smb.conf 

输入如下内容:

[share]
  comment=samba
  path=/work/sambashare
  public=yes
  create mask=0777
  directory mask=0777
  writable=yes
  available=yes
  forceuser=root
  forcegroup=root

重启samba:

sudo /etc/init.d/smbd restart

 

windows下访问samba服务器:

步骤:网络--->\\\\192.168.0.200--->Enter回车键:发现出现了一个share文件夹

 

 

测试:

  • 步骤1:在share文件夹下创建一个test.txt。
  • 步骤2:ubuntu中 cd /worksambashare/,ls发现出现了一个test.txt

3.7 安装基本开发环境

安装build-essential软件包,build-essential作用是提供编译程序必须软件包的列表信息:

sudo apt-get install build-essential

安装bison、flex,它们分别是语法、词法分析器:

sudo apt-get install bison flex

安装C函数库的man手册,这样就可以通过类似"man read"命令查看函数的作用:

sudo apt-get install manpages-dev

 

以上是关于嵌入式Linux开发环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

如何搭建BigBlueButton开发环境

嵌入式linux开发环境搭建——NFS服务器的搭建

嵌入式Linux开发环境搭建

嵌入式linux开发环境搭建——Samba服务器的搭建

linux:嵌入式linux开发环境搭建

《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 1]