当前位置:文档之家› 嵌入式系统第八讲 嵌入式Linux交叉编译环境

嵌入式系统第八讲 嵌入式Linux交叉编译环境


why虚拟机 why虚拟机Linux? 虚拟机Linux?
采用虚拟机,有如下原因和方便: 采用虚拟机,有如下原因和方便:
虚拟机也能够控制系统硬件 完全能够满足交叉编译环境需要 方便与Windows系统进行切换 方便与Windows系统进行切换 使用Windows下文件来作为硬盘空间 下文件来作为硬盘空间, 使用Windows下文件来作为硬盘空间,相对 于双系统, 于双系统,不需复杂的硬盘分区 虚拟机在Windows下 是几个文件, 虚拟机在Windows下,是几个文件,方便备 份和恢复 在本实验系统中,Windows系统和Redhat 在本实验系统中,Windows系统和 系统和Redhat 系统都必不可少, 系统都必不可少,虚拟机比较方便
直接点击“ 直接点击“new virtual machine”
建立新的虚拟机(实验室已建) 建立新的虚拟机(实验室已建)
选择安装文件
建立新的虚拟机(实验室已建) 建立新的虚拟机(实验室已建)
选择操作系统类型
建立新的虚拟机(实验室已建) 建立新的虚拟机(实验室已建)
选择虚拟机在硬盘的保存目录
建立新的虚拟机(实验室已建) 建立新的虚拟机(实验室已建)
虚拟机中网络设置
虚拟机中网络设置
虚拟机中网络设置
需要设置内容
IP 网关 DNS
设置好后,可以解除网卡eth0,然后再激 设置好后,可以解除网卡eth0, 来使新IP生效 活,来使新IP生效 当前IP设置 可用ifconfig命令查看 设置, 当前IP设置,可用ifconfig命令查看
虚拟机中网络设置
安装完毕启动
登录系统
本系统用户
超级管理员
用户名root,密码eescut 用户名root,密码eescut
普通用户
用户名emb,密码embedded 用户名emb,密码embedded
进入系统
全屏与释放鼠标
全屏方式
按Ctrl+Alt+Enter
释放鼠标到windows 释放鼠标到windows
本系统交叉编译环境的建立
root用户登陆 以root用户登陆linux系统 用户登陆linux系统 2. 创建/XSBase270目录 创建/XSBase270目录 3. 上传EELiod Linux2.5到上述目录 上传EELiod Linux2.5到上述目录 /XSBase270/ToolChain/xscalev1_010001.tar.gz 4. 拷贝 cp /XSBase270/ToolChain/xscalev1_010001.tar.gz 5. 解压工具包: 解压工具包: a. cd /opt b. tar xvfz xscalev1_010001.tar.gz 6. 进入/opt/xcalev1/bin,可见下列编译工具 进入/opt/xcalev1/bin,可见下列编译工具 注意:实验室已建,不要重复建立) (注意:实验室已建,不要重复建立)
1.
/opt
本系统交叉编译环境的建立
7.
设置PATH环境ቤተ መጻሕፍቲ ባይዱ量 设置PATH环境变量
在用户(root用户或其他用户 根目录下, 用户或其他用户) 在用户(root用户或其他用户)根目录下, 打开.bash_profile,添加环境变量如下: 打开.bash_profile,添加环境变量如下: PATH=$PATH:/opt/xscale1/bin
这两个文件中列出的用户,会被禁止使用ftp 这两个文件中列出的用户,会被禁止使用ftp 服务;将不希望被禁止的删除即可, 服务;将不希望被禁止的删除即可,如 root用户 root用户
虚拟机的设置
虚拟机的设置
虚拟机的设置
可以配置虚拟机现有硬件,或添加新的硬 可以配置虚拟机现有硬件, 件
硬盘(本地硬盘在Windows和Linux互访) 互访) 硬盘(本地硬盘在Windows和Linux互访 网络(实现Linux虚拟机上网 虚拟机上网) 网络(实现Linux虚拟机上网) 串口(用于Linux主机与开发板通信 主机与开发板通信) 串口(用于Linux主机与开发板通信)
选择虚拟机占用硬盘空间大小, 选择虚拟机占用硬盘空间大小,以文件形式
建立新的虚拟机(实验室已建) 建立新的虚拟机(实验室已建)
注意在安装过程中,虚拟机硬盘分区: 注意在安装过程中,虚拟机硬盘分区:
100M大小的 100M大小的boot区 大小的boot区 2倍RAM大小的SWAP区 RAM大小的 大小的SWAP区 剩下为根文件系统挂载区(常用ext3文件系 剩下为根文件系统挂载区(常用ext3文件系 统)
Linux 虚拟机需设置: 虚拟机需设置:
IP = 192.168.254.xxx Mask=255.255.255.0 gateway=192.168.254.2 DNS=192.168.254.2
第二部分 交叉编译环境
交叉编译环境
一般包括: 一般包括:
Gcc编译器, Gcc编译器,for c,c++ 编译器 Binutil,一些辅助工具,包括objdump(可反 Binutil,一些辅助工具,包括objdump(可反 编译二进制文件)、 (汇编器)、 ( )、as )、ld 编译二进制文件)、as(汇编器)、ld(链 接器) 接器)等 Glibc,提供系统调用和基本函数的c Glibc,提供系统调用和基本函数的c库 C header Gdb调试器 Gdb调试器
保持连接
保持连接
如果虚拟机想使用网络或串口,必须保证 如果虚拟机想使用网络或串口, 前页中connected 前页中connected 串口是独占性资源,windows与Linux虚 串口是独占性资源,windows与Linux虚 拟机同时只能有一个使用
虚拟机的网络设置
网络有三种方式
Bridged(桥接)——虚拟机分配静态 , Bridged(桥接)——虚拟机分配静态IP, 虚拟机分配静态IP 直接连到局域网,与windows主机地位相同 直接连到局域网, windows主机地位相同 ,相当于独立主机 NAT(地址解析协议)——虚拟机与 NAT(地址解析协议)——虚拟机与 Windows主机组成局域网 Windows主机组成局域网,并通过 主机组成局域网, Windows主机来访问外网 Windows主机来访问外网 Host-only——仅与主机通信 Host-only——仅与主机通信,适合于没有网 仅与主机通信, 卡等情况
虚拟机的网络设置
虚拟机的网络设置
本系统为方便进行gdb远程调试, 本系统为方便进行gdb远程调试,采用了 远程调试 Bridged(桥接)方式。虚拟机IP统一配 Bridged(桥接)方式。虚拟机IP统一配 置为218.192.169.239,为避免IP冲突 冲突, 置为218.192.169.239,为避免IP冲突, 在可访问外网时,不要启动虚拟机。 在可访问外网时,不要启动虚拟机。 虚拟机仅供与实验箱直联, 虚拟机仅供与实验箱直联,编译调试程序 时使用。 时使用。
Bootloader编译 Bootloader编译 Kernel编译 Kernel编译 Root-disk编译 Root-disk编译
Gdbserver 远程调试(选读) 远程调试(选读)
怎么搭建开发环境? 怎么搭建开发环境?
主机
安装Linux操作系统 安装Linux操作系统(本系统采用虚拟机 操作系统( Redhat9.0) Linux下安装交叉编译工具链 在Linux下安装交叉编译工具链
第一部分 Redhat9.0 虚拟机
本系统软件环境
windows系统下 安装vmware软件 在windows系统下,安装vmware软件 系统下,
该软件是一个虚拟机系统的管理软件,可以 该软件是一个虚拟机系统的管理软件, 方便地建立和配置虚拟机
建立新的虚拟机(实验室已建) 建立新的虚拟机(实验室已建)
交叉编译环境
开发板是嵌入式Linux操作系统, 开发板是嵌入式Linux操作系统,故交叉 操作系统 编译环境要求在主机的Linux操作系统下 编译环境要求在主机的Linux操作系统下 建立 本系统交叉编译环境,是在主机的 本系统交叉编译环境, Redhat 9.0 Linux操作系统下建立。 Linux操作系统下建立 操作系统下建立。
第八讲 嵌入式Linux交叉编译 嵌入式Linux交叉编译 环境
电信学院 崔寅鸣 Email: ymcui@
主要内容
综述 Redhat9.0虚拟机环境的建立与配置 Redhat9.0虚拟机环境的建立与配置 交叉编译工具ToolChain的建立 交叉编译工具ToolChain的建立
Ctrl+Alt
启用终端
启用终端
为虚拟机添加服务
ftp与telnet服务 ftp与telnet服务
ftp——文件传输协议;Linux开此服务以 ftp——文件传输协议 Linux开此服务以 文件传输协议; 方便通过网络来传输文件
须启用vsftpd服务 须启用vsftpd服务
telnet——远程登录协议 telnet——远程登录协议;方便通过远程 远程登录协议; 来登录Linux系统 来登录Linux系统
开发板
建立eLinux操作系统 主机是Windows或 建立eLinux操作系统(主机是Windows或 操作系统( Linux均可 Linux均可) 均可)
交叉编译环境
pc), 嵌入式系统的开发需要宿主机(Host pc), 嵌入式系统的开发需要宿主机( 因为嵌入式系统一般没有大容量的存储设 备。 由于host pc的处理器与嵌入式微处理器通常 由于host pc的处理器与嵌入式微处理器通常 不同, 不同,为了生成能够在嵌入式系统中运行 的代码,需要进行交叉编译。 的代码,需要进行交叉编译。 交叉编译:在宿主机(x86)上编译可以在目 交叉编译:在宿主机(x86)上编译可以在目 标系统(ARM)上运行的二进制文件 上运行的二进制文件。 标系统(ARM)上运行的二进制文件。
相关主题