嵌入式Linux移植环境搭建
来源:互联网 发布:编程培训机构排名 编辑:程序博客网 时间:2024/06/06 05:26
【1】嵌入式Linux移植流程
windows:BIOS(引导系统)---> windowns镜像---> 驱动移植---> 文件系统
Linux:
bootloader(uboot2013)---> Linux内核(linux3.14)---> 驱动移植---> 文件系统(rootfs)
【2】指令
1)readelf查看对象文件的属性或内容(对象文件:可重定向文件 .o 可共享文件 .so 可执行文件)
readelf -h + filename
2)as主要用来编译gcc输出的汇编文件
as test.s -o test.o
3)size列出目标文件每一段的大小以及总体的大小
size + filename
4)nm可以列出目标文件中的符号
B 未初始化数据段
D 已经初始化的变量的符号
T Text段的符号。子程序都是这种符号
U 未定义的符号,该符号在当前文件中未定义
C 未初始化的符号,比如定义了一个全局变量int a;则a的符号就是这种类型,被其他文件所引用
R 只读符号 const修饰
5)strip用来丢弃目标文件中的全部或者特定符号,减小文件体积
6)strings用来打印某个文件的可打印字符串
strings + xxx.o
7)objdump可以显示一个或者更多目标文件的信息,主要用来反汇编
objdump -d main > main.dis
8)objcopy可以进行目标文件格式转换
objcopy -O binary main main.bin
9)addr2line能够把程序地址转换为文件名和行号
addr2line 0x080483f1 -e main -f
【3】交叉编译工具-跨平台编译
在开发主机运行编译器编译内核、应用程序。内核和程序在目标机上运行,这个编译过程称为交叉编译【4】搭建环境
- TFTP服务器
嵌入式 linux 的 tftp 开发环境包括两个方面:
一是 linux 开发主机端的 tftp-server 支持,
二是嵌入式目标系统的 tftp-client 支持
使用条件是:
需要网络连接
主机端需要安装 tftp 服务器软件,只需要配置tftp服务器主机端
目标机需要实现tftp客户端
tftp服务器主机端配置:
1)检测是否安装
dpkg -s tftpd-hpa2)安装
sudo apt-get install tftpd-hpa tftp-hpa
3)
sudo vi /etc/default/tftpd-hpa 更改主机端配置 TFTP_USERNAME="tftp" tftp服务器的名字 TFTP_DIRECTORY="/tftpboot" tftp传输目录,自行创建 sudo mkdir tftpboot 修改权限 sudo chmod 777 tftpboot TFTP_ADDRESS="0.0.0.0:69" 端口号 netstat -an | more TFTP_OPTIONS="-c -s -l" tftp服务器配置参数 -c create 可创建 -s server -l listen 监听4)启动服务器
sudo service tftpd-hpa restart
5)运行下面命令,新建一个文件,并将其移动到TFTP服务器的默认下载上传下载文件夹tftpboot
$echo "tftp test" > test.txt$sudo mv test.txt /tftpboot6)运行下面指令,从服务器上下载test.txt文件,并退出tftp程序
$ tftp localhosttftp> get test.txttftp> q7)如果tftp的下载不成功,运行下列指令卸载软件(连同配置信息一起),然后再重装TFTP服务器
$sudo apt-get remove --purge tftp-hpa tftp-hpa$sudo apt-get install tftp-hpa tftp-hpasudo service tftp-hpa restart
- nfs服务器--共享
NFS 服务主要的任务是把本地的一个目录通过网络导出,其他计算机可以远程访问该目录使用条件是:
需要网络连接
主机端需要 nfs 服务器软件支持,只需要配置服务器主机端
目标机同样需要支持nfs
NFS服务器主机端:
1) NFS服务器安装
sudo apt-get install nfs-kernel-server
2) nfs服务器主机端配置:
sudo vi /etc/exports 添加:/source/rootfs/ *(rw,sync,no_subtree_check,no_root_squash)
其中:
/source: 共享目录 自行创建 sudo mkdir source
修改权限 sudo chmod 777 source*:不限定客户端
rw:共享目录可以读写
sync: 同步写入内存和硬盘no_subtree_check : 如果子目录可以共享,那么不检查父目录的权限
no_root_squash : 如果客户端是root的话,那么他对这个目录具有root的权限
3)重新启动nfs服务器主机端:
sudo /etc/init.d/nfs-kernel-server restart
设置启动参数:
#目标板输入以下指令:
setenv serverip 192.168.31.161 setenv ipaddr 192.168.31.123 setenv bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;bootm 41000000 - 42000000 setenv bootargs root=/dev/nfs nfsroot=192.168.31.161:/source/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=192.168.31.123
阅读全文
0 0
- 嵌入式Linux移植环境搭建
- 嵌入式linux系统下gsoap环境搭建和移植
- 嵌入式linux环境搭建
- 嵌入式Linux环境搭建
- QT嵌入式环境搭建与移植
- QT嵌入式环境搭建与移植
- ARM嵌入式系统移植环境搭建
- 搭建Linux嵌入式开发环境
- 嵌入式linux环境搭建之一
- 嵌入式Linux各种环境搭建
- 搭建Linux嵌入式开发环境
- 嵌入式Linux开发环境搭建
- 嵌入式Linux开发环境搭建
- 搭建嵌入式Linux学习环境
- 嵌入式Linux开发环境搭建
- 嵌入式Linux开发环境搭建
- 嵌入式Linux开发环境搭建
- Linux 下 Qt Embedded 4.6.2 嵌入式开发环境的搭建、移植(ubtuntu8.10)
- 使用Eclipse进行python开发
- 优先级队列
- 01-复杂度1 最大子列和问题 (20分)
- javascript 从入门到精通 全套教程视频 免费 百度网盘
- 《lua程序设计》读书笔记 第五章:函数
- 嵌入式Linux移植环境搭建
- 据说大数据能解决“你妈是你妈”开证明笑话_你认同吗?
- TCP协议中的三次握手和四次挥手(图解)
- php微信
- 因为缺失POST GET注解而导致Failed processing arguments of org.jboss.resteasy.spi.metadata.ResourceLocator
- CF811C:Vladik and Memorable Trip(dp)
- MSC00001: Failed to start service jboss.network.public: org.jboss.msc.service.StartException in serv
- Strcat,strcpy,strcmp,Strlen函数原型
- CRT中的时间(time_t和tm)