系统移植(一) 环境搭建
来源:互联网 发布:浅喜似苍狗 知乎 编辑:程序博客网 时间:2024/04/29 08:59
一.开发板启动流程。
Bootloader(初始发硬件/加载内核)kernel(初始化/挂载rootfs)application。
rootfs其实就是,针对特定的操作系统的架构,一种实现的形式;
具体表现为,特定的文件夹,文件夹之间的关系,即组织架构,以及特定的各种文件;
Linux中的rootfs,就是那些文件夹和文件,
包括什么根文件目录’/’
系统相关的配置文件目录/etc
存放系统启动相关配置的/etc/init
存放系统相关的工具 /sbin
存在用户的工具/usr/bin
二.环境的搭建
Pc和开发板用tftp交互。
(一)配置主机端tftp服务。
1.检查是否安装tftp server
#dpkg -s tftp-hpa
2.安装tftp server
#apt-get install tftpd-hpa tftp-hpa
3.修改文件 vim /etc/default/tftpd-hpa, 开启tftp服务。
1 # sudo vi /etc/default/tftpd-hpa
2
3 TFTP_USERNAME="tftp"
4 TFTP_DIRECTORY="/home/tftpboot"
5 TFTP_ADDRESS="0.0.0.0:69"
6 TFTP_OPTIONS="-l -c -s"
注:除了第4行其他的都不用改。
按上面创建tftpboot目录。
设置权限:#chmod 777 /home/tftpboot
重新刷新配置文件: /etc/init.d/tftpd-hpa restart
重启: #service tftpd-hpa restart
测试:#tftp 127.0.0.1
Tftp>get <download file>
Tftp>put <upload file>
4.主机端NFS服务器配置
A)安装:#apt-get install nfs-kernel-server nfs-common
B)修改 /etc/exports文件
/home/rootfs *(rw,sync,no_subtree_check)
注:配置的格式:[共享的目录] [客户端主机名称或IP]([参数1,参数2,...])
Rw:可读写的权限。
Sync:资料同步写入内存与硬盘中。
no_subtree_check:...
C)启动nfs服务
/etc/init.d/nfs-kernel-server restart
D)测试:
挂载:mount -t nfs 127.0.0.1:/home/rootfs /mnt
解挂:umount /mnt
三.Bootbloader的启动
系统家电或复位后,所有CPU都会从某个地址开始执行。
使用,相当于超级终端。
1.读取环境变量。
$ printenv
$ pri :为 printenv的缩写
如:
FSC100 # pri
bootdelay=3
baudrate=115200
ethaddr=11:22:33:44:55:66
ethact=dm9000
filesize=1D7E84
fileaddr=20008000
gatewayip=10.0.0.1
netmask=255.0.0.0
ipaddr=10.0.0.11
serverip=10.0.0.55
bootcmd=nand read 20008000 100000 300000 ; go 20008000
bootargs=noinitrd init=/linuxrc console=ttySAC0,115200 root=/dev/nfs nfsroot=10.0.0.55:/home/rootfs ip=10.0.0.11
stdin=serial
stdout=serial
stderr=serial
注:
自启动延迟时间(单位是秒):bootdelay=3
串口的波特率:baudrate=115200
MAC地址:ethaddr=11:22:33:44:55:66
板子的IP地址:ipaddr=10.0.0.11
网关IP:gatewayip=10.0.0.1
子网掩码:netmask=255.0.0.0
tftpboot上传程序的内存地址:loadaddr=20008000
指定网卡驱动:ethact=dm9000
tftp server的IP(指定tftpboot从那主机环境下载):serverip=10.0.0.111
//传递给内核的启动参数
//noinitrd不使用initrd(不用ramfs)
//init——指定初始化程序
//console——指定控制台(ttySACx -嵌入式linux下, PC - ttySx)
//root - 指定根文件系统
- nfs表示根文件系统是网络文件系统
- nfsroot=(nfs server IP):/nfs共享目录
//ip - 指定板子IP
bootargs noinitrd init=/linuxrc console=ttySAC0,115200 root=/dev/nfs nfsroot=10.0.0.55:/home/rootfs ip=10.0.0.11
//串口终端
stdin=serial
stdout=serial
stderr=serial
注:修改/添加、删除环境变量
修改/添加:$ setenv 变量名 内容
删除:$ setenv 变量名
保存环境变量:$ saveenv
2.通过网络加载内核并执行。
$ nand read 内存地址 nand偏移量 长度
$ tftp 内存地址 文件名
$ nand erase nand偏移量 长度
$ nand write 内存地址 nand偏移量 长度
范例
上传
$ tftp 20008000 zImage
注:
0x000000000000-0x000000100000 : "bootloader"
0x000000100000-0x000000400000 : "kernel"
0x000000400000-0x000000800000 : "rootfs"
0x000000800000-0x000010000000 : "usrfs"
擦除nand kernel分区
$ nand erase 100000 300000
烧写kernel到 kernel分区
$ nand write 20008000 100000 300000
改变自起动变量
$ set bootcmd nand read 20008000 100000 300000 \; go 20008000
$ save
$boot 自启动。
- 系统移植(一) 环境搭建
- (一)linux系统移植过程和环境搭建
- ARM (FS_S5PC100)系统移植一 环境搭建
- Android 系统移植与调试(一)Android编译环境编译服务器搭建
- 基于FS4412嵌入式系统移植(1) 基本环境搭建
- OMAP L138系统移植之一 环境搭建
- OMAP L138系统移植之一 环境搭建
- ARM 系统移植开发环境搭建
- 基于Linux系统移植-环境搭建
- ARM嵌入式系统移植环境搭建
- 【系统移植】基础理论与环境搭建
- ARM+LINUX移植攻略(一) U-boot-2009.08移植TE2440II开发板--环境搭建
- 系统移植-系统搭建
- 学写嵌入式系统(一) 环境搭建
- AIX下RAC搭建 Oracle10G(一)检测系统环境
- windows系统下开发环境搭建(一)maven安装
- Android系统源码学习入门(一)环境搭建
- 在linux系统环境下搭建网络服务器(一)
- 鸟哥的Linux私房菜 基础学习篇读书笔记(7):Linux文件与目录管理
- 在ruby中发送get/post请求替换的时候,有些特殊字符需要转义
- 全面了解ISO8583报文
- Android学习-1:ListView优化
- fatal error C1853: “Release\demonstration.pch”
- 系统移植(一) 环境搭建
- Python学习【1】Windows下Python开发环境配置
- [Unity 笔记] Unity3D中水面的优化思路
- Android中的Service详解2
- 剑指Offer:面试题32 从1到n整数中1出现的次数
- 在ruby中,load和require的区别
- 自定义ViewPager切换动画
- MFC扩展DLL
- 使用AIDL实现进程间的通信