Microsoft PowerPoint - Linux培训.ppt

Similar documents
Cygwin Cygwin windows Linux Cygwin.dll Windows Linux API Linux Windows Linux 2

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像

<4D F736F F D20C7B6C8EBCABD6C696E7578BBF9B4A1CAB5D1E92E646F63>

自由軟體教學平台

自由軟體教學平台

RTX3.2.0标准版 - 技术白皮书

自由軟體教學平台

Abstract arm linux tool-chain root NET-Start! 2

05 01 X Window X Window Linux Linux X Window X Window Webmin Web Linux Linux X Window X Window Notebook PC X Window X Window module Linux Linux kernel

Outline 制作带 grub 启动的磁盘映像 利用 qemu+gdb 来调试 linux


linux 2.6内核移植_for at91rm9200_归档.doc

嵌入式Linux内核移植及驱动开发.ppt

Microsoft Word - PS2_linux_guide_cn.doc

标题

嵌入式Linux知识培训

Linux 编译环境

Content

Windows 2000 Server for T100

TCA Linux 相容性認證測試流程步驟

目 录 Linux Mint 简介... 3 Linux Mint 安装... 6 Linux Mint 桌面初识 软件管理...30 小技巧...40 总结...42

Red Flag Linux Desktop 4.0 Red Flag Linux Desktop 4.0 1

嵌入式Linux/WinCE/VxWorks培训免费讲座

(Microsoft Word - Uboot\305\344\326\303\272\315\261\340\322\353.doc)

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

Linux服务器构建与运维管理


1

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

校友会系统白皮书feb_08

Microsoft Word htm

目录 AZSC-2.0 DFace SDK 安装说明书 (v2.0.0) Linux amd64 系统安装 ARM Linux 系统安装 Windows 系统安装 Android 系统安装 ROS 系统安装.

untitled

概述

Outline 1 简介编译 简单分析 源码 2 简介 的下载 编译和运行 的简单分析 3

自由軟體社群發展經驗與 Linux認證介紹

,,, PCB, AR M VxWorks DSP,,,,,,,,,,, (CIP) /,,.:,2005 ISBN TP36 CIP (2005) : ( 10 ) : : (010 ) : (010)

uClinux for blackfin

Microsoft Word - S3c6410移植过程.doc

信息

6寸PDF生成工具

<4D F736F F D20CCABB1A3CAD9A3A A3A BAC5B8BDBCFE3836CAC0BCCDD0D0C8CBC9EDD2E2CDE2C9CBBAA6B1A3CFD5A3A843BFEEA3A9CCF5BFEE2E646F63>

Microsoft PowerPoint - lect01.ppt

本文由筱驀釹贡献

Microsoft PowerPoint - 移植Qt for Embedded Linux

Microsoft PowerPoint - 嵌入式系统设计课件第二讲.ppt

Outline 1 SkyEye 简介 2 SkyEye 的安装 SkyEye 的安装下载 skyeye 源代码, 编译并安装 3 在 Linux 的根文件系统中添加 hello 在 Linux 的根文件系统中添加 hello 4 命令行安装 skyeye 添加 hello 到 uclinux 的根

像 客 样 使 命令行 徐 东

電機工程系認可證照清單 /7/1

ORACLE Enterprise Linux 6.3下ORACLE11g的安装

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

Data Server_new_.doc

lammps 在 AIX6.1 系统上的安装 中国科学技术大学超级运算中心张运动 2012 年 9 月 Lammps 软件官网 : 网上对于 lammps 软件在 windows Linux 系统上的安装已

<4D F736F F F696E74202D20C8EDBCFEB2E2CAD4D1A7CFB0D7CAC1CF2E BBCE6C8DDC4A3CABD5D>

Chapter 2

一个开放源码的嵌入式仿真环境 ― SkyEye

ebook8-30

Transcription:

嵌入式 Linux 聚芯嵌入式系统设计研修班潘家飞 panjf@ict.ac.cn

嵌入式 Linux 应用

嵌入式 Linux 的特点 OpenSource Tiny 一个功能完备的 Linux 内核要求大约 1 MB 内存 Linux 系统甚至可以仅使用 256 KB ROM 和 512 KB RAM 进行工作 可移植性 模块化

Linux 系统组成 硬件平台 Bootloader Linux 内核 文件系统

基于 NFS 的嵌入式软件开发流程 配置 TFTP 服务配置 NFS 服务制作开发环境的 rootfs 基于该 rootfs 进行内核移植裁剪等工作用 pmon2000 启动内核进行调试开发制作嵌入式 rootfs, 如 busybox 交叉编译开发应用软件, 在 NFS 系统上调试烧写内核和文件系统测试

Bootloader 初始化基本硬件 下载内核 传递参数 root video ip memsize

Linux 根文件系统 root 文件系统唯一性, 文件系统的入口基本目录结构 /bin: 存放 Linux 最基本的可执行程序 /sbin: 存放系统管理员使用的可执行程序 /dev: 存放所有的设备文件 /proc: 系统运行信息, 实际存储在内存中 /usr: 用户应用程序和文件 /etc: 存放系统配置和启动脚本 /lib: 存放系统和应用程序运行所需要的动态链接库

嵌入式文件系统 busybox 将许多常用的 Linux 命令和工具结合到了一个单独的可执行程序 busybox 中 所有命令都是指向 busybox 的链接 例如 ln s busybox ls 即可生成 ls 命令 生成的整个文件系统只有 1M 大小 官方网站 www.busybox.net

实验 : 配置交叉编译 busybox make menuconfig 编译 makefile CROSS_COMPILE?= mipsel-linuxmake make install _install 目录

嵌入式 GUI(1) 桌面 Linux 图像系统 X Windows 系统 (XFree86 或者 Xorg) 作为显示界面的基础 GNOME 或者 KDE 作为桌面环境 需要比较多的资源 (RAM 和存储空间 ) X Window System : 5MB RAM, 16MB disk GNOME : 14MB RAM, 95MB disk KDE : 11MB RAM, 96MB disk Mozilla : 12MB RAM, 26MB disk 嵌入式 GUI 系统 TinyX Qt/Embedded

嵌入式 GUI(1)--TinyX TinyX 是一个针对嵌入式系统设计的 X Window, 相对 PC 版的 X Window 而言, 它占用的资源要少很多, 服务器程序仅 700 多 K, 客户端的动态库约 2M 多 ( 根据需要而定 ) TinyX 并不是一个独立的软件包, 而是 X Window 的一种编译配置所有能够在标准 X 下运行的程序都能移植到 tinyx 上从字符界面到启动 tinyx 只需要 2 秒左右的时间不需要 libc, 兼容任何 Linux 版本 http://www.xfree86.org

嵌入式 GUI(2)--QTE/Qtopia 因为 Qt 是 KDE 等项目使用的 GUI 支持库 Qt/Embedded 是面向嵌入式系统的 Qt 版本许多基于 Qt 的 X Window 程序可以非常方便地移植到 Qt/Embedded 版本上 Qtopia and Qt/Embedded -- Qtopia 是一个用于 PDA, 掌上电脑和网络应用产品的移动设备窗口环境和应用套件, 它基于 Qt/Embedded, 包括 PIM 应用程序,Internet 客户端, 娱乐和游戏程序, Qtopia/PDA 可使用商业版权或者开源协议, 但 Qtopia Phone Edition 只能用于商业

嵌入式 GUI(3)--QTE/Qtopia PDA 版本 Phone 版本

编译器介绍 Binutils: Binutils 是一组开发工具, 包括连接器, 汇编器和其他用于目标文件和档案的工具 包括下列程序 : addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings 和 strip GCC: GNU 提供的编译器家族, 它能够支持 C, C++, Objective-C, Fortran, Java 和 Ada 等等程序设计语言 Glibc GNU 提供的标准库函数 嵌入式 C 库, 如 :uclibc 体积更小 兼容 glibc

实验一 : 聚芯 Linux 内核交叉编译环境 mipsel 工具链 安装 tar -jxvf jx_linux_cross.tar.bz2 一定要解压到根目录下然后设置环境变量, 可执行路径加到 PATH PATH=$PATH: :/Cross/target/local/bin export PATH

交叉编译工具介绍 ( 一 ) mipsel-linux-gcc: 交叉编译的 c 编译器 mipsel-linux-ld: 交叉编译的链接工具 mipsel-linux-objcopy: 目标文件格式转换, 支持 BIN ELF 文件格式, 例如 : mipsel-linux-objcopy -O binary vmlinux vmlinux.bin Mipsel-linux-objdump: 显示从 elf 文件中的反汇编, 例如 : mipsel-linux-objdump ald vmlinux>linux.s ( 具体参数可以通过 man mipsel-linux-objdump 来查看帮助 )

交叉编译工具介绍 ( 二 ) mipsel-linux-nm: 列出 elf 文件的符号表信息, 例如 : System.map 文件就是由 mipsel-linux-nm 生成 mipsel-linux-readelf: 生成 elf 文件信息及其内部各段信息 mipsel-linux-size: 列出 elf 文件各个段的大小及其位置, 如 text data 和 bss 段 ( 用于为全局和静态变量保留空间, 数据静态内存分配区域 ) Mipsel-linux-strings: 列出 elf 文件中的字符串常量

其它相关工具 ldd: 列出程序或者命令所需要的共享库 ldconfig 是一个动态链接库管理命令 ldconfig 命令的用途, 主要是在默认搜寻目录 (/lib 和 /usr/lib) 以及动态库配置文件 /etc/ld.so.conf 内所列的目录下, 搜索出可共享的动态链接库 ( 格式如前介绍,lib*.so*), 进而创建出动态装入程序 (ld.so) 所需的连接和缓存文件. 缓存文件默认为 /etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表

实验二 : 开发环境之 tftp 服务器配置 /etc/xinetd.d/tftp service xinetd restart

实验三 : 开发环境之 NFS 服务器配置 /etc/exports service nfs restart mount -t nfs 10.2.2.10:/nfsroot/redhat /mnt/nfs

Linux 内核版本 版本号 :x.yy.zz 例如 :2.4.17 yy 为偶数表示发行版

Linux 基本体系结构

Linux 内核结构

Linux 内核源码 Arch: 含了此核心源代码所支持的硬件体系结构相关的核心代码 Include: 包括了核心的大多数 include 文件 另外对于每种支持的体系结构分别有一个子目录 init : 此目录包含核心启动代码 Mm: 包含了所有的内存管理代码 与具体硬件体系结构相关的内存管理代码位于 arch/*/mm 目录下. Drivers: 系统中所有的设备驱动都位于此目录中 它又进一步划分成几类设备驱动, 每一种也有对应的子目录, 如声卡的驱动对应于 drivers/sound Ipc: 此目录包含了核心的进程间通讯代码 Fs:Linux 支持的文件系统代码 不同的文件系统有不同的子目录对应, 如 ext2 文件系统对应的就是 ext2 子目录 Kernel: 主要核心代码 同时与处理器结构相关代码都放在 arch/*/kernel 目录下 Net: 核心的网络部分代码 里面的每个子目录对应于网络的一个方面 Lib: 此目录包含了核心的库代码 与处理器结构相关库代码被放在 arch/*/lib/ 目录下 Scripts: 此目录包含用于配置核心的脚本文件 Documentation: 此目录是一些文档, 起参考作用

实验四 : 聚芯内核源代码介绍

实验五 : 聚芯内核裁剪.config jx_config 配置结构解析 增加配置选项

实验六 : 聚芯 Linux 内核编辑 编译生成文件 Vmlinux:elf: 格式的内核文件 Vmlinux.bin: 二进制格式的内核文件 System.map: 内核符号表地址

聚芯内核参数设置 Root Video video=icte32:lcd_or_vga:x:disp_mod:x NFS root=/dev/nfs ip=<client-ip>:<server-ip>:<gw-ip>:<netmask> nfsroot=[<server-ip>:]<root-dir>

实验七 : 启动 Linux