系统移植详解过程

系统移植

linux系统移植分为四块

1、环境搭建
2、BootLoader移植
3、linux内核的移植
4、根文件系统移植

为了移植部署需要完成以下准备工作

一、安装tftp服务

介绍:tftp服务是基于TCP/IP简单文本传输协议

作用:在系统移植中用于通过网络的方式下载文件到开发板

具体操作步骤如下(前提Ubuntu必须可以上网)

1、安装命令

sudo apt-get install tftpd-hpa tftp-hpa

2、在家目录下创建tftpboot文件夹

cd ~ 
mkdir tftpboot 
chmod 777 tftpboot 

注,tftpboot文件夹的作用:
将需要下载的文件,放到tftpboot目录下,
当使用tftp命令下载时,tftp命令会自动的到ubuntu的
tftpboot目录下找对应的要下载的文件。

3、修改tftp的环境变量

打开tftp的配置文件:

sudo vi /etc/default/tftpd-hpa 

修改配置文件中的内容,修改为以下:

# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"	# tftp服务
TFTP_DIRECTORY="/var/lib/tftpboot"	# 指定自己的tftpboot的路径
TFTP_ADDRESS=":69"	# 端口号默认为69
TFTP_OPTIONS="--secure"	# 权限相关参数

4、重启tftp服务

sudo service tftpd-hpa restart 

二、安装nfs服务

作用:开发板通过nfs服务远程从ubuntu系统中挂载文件系统

1、安装nfs服务

sudo apt-get install nfs-kernel-server

2、配置nfs服务的环境变量

打开 sudo vi /etc/exports

在最后一行添加一下内容:

/home/hqyj/nfs/rootfs/  *(rw,sync,no_subtree_check,no_root_squash) 

内容解释:

/home/hqyj/nfs/rootfs/:网络文件系统所在的路径
*:所有的用户
rw:可读可写权限
sync:同步
no_subtree_check:不检查子目录的权限
no_root_squash:非root用户具有相同的权限

3、创建根文件系统的路径

在家目录下创建nfs文件夹,并修改权限最大

cd ~
mkdir nfs 
chmod 777 nfs 

4、如果有根文件系统的压缩包放在nfs目录下并进行解压(如果没有后面会讲到制作)

三、编译uboot(BootLoader)

1、获取u-boot源码
2、u-boot版本的选择
3、移植的准备工作
4、移植u-boot源码
5、分析make <board_name>_config命令执行过程详解
6、制作windows下的win_ubootpak.bin
7、将制作好的ubootpak.bin烧写到EMMC中,进行测试

详细编译uboot过程可以参照这篇文章

四、编译内核uImage

1、内核的配置和编译
2、自己添加图形化界面菜单选项
3、弄懂Makefile .config Kconfig 三个文件之间的关系
4、了解内核启动过程中主要干了那些事?
5、模块化加载驱动的命令
insmod rmmod lsmod mknod

详细编译内核过程可以参照这篇文章

五、编译根文件系统

1、移植根文件系统的工具 —> busybox
2、如何获取busybox
3、根文件系统中目录的介绍
4、使用busybox工具制作根文件系统
5、完善根文件系统
6、生成ramdisk.img的镜像文件

详细编译根文件系统过程可以参照这篇文章

至此就完成了uboot镜像,内核(uImage)镜像和根文件系统(ramdisk.img)镜像的制作
拿到这三个镜像文件之后就可以进行系统移植了

六、系统移植具体的部署方式分为两种:

开发阶段系统的部署
uboot镜像(ubootpak.bin) : 下载到flash/SD
linux内核镜像(uImage) : 通过tftp下载
根文件系统(rootfs) : 通过nfs挂载

特点:下载调试方便,适合做开发

产品阶段系统的部署
uboot镜像(ubootpak.bin) : 下载到flash/SD
linux内核镜像(uImage) : 下载到flash/SD
根文件系统镜像(ramdisk.img) : 下载到flash/SD

特点:独立性强,不用依赖于Ubuntu,适合产品阶段

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值