系统移植 (以将Linux系统移植到S5P6818开发板为例)

(本篇文章以将Linux系统移植到S5P6818开发板为例)

本文章所需要的文件在下面链接获取:https://download.csdn.net/download/a1547998353/89406544

开发环境搭建

1、安装交叉编译工具链

安装步骤:

1. 在ubuntu的家目录(~)下,创建toolchain

        mkdir toolchain

2. 拷贝gcc-4.9.4.tar.xz到toolchain目录下

        (gcc-4.9.4.tar.xz文件在文章开头的链接获取)

3. 解压缩交叉编译工具链

        tar -vxf gcc-4.9.4.tar.xz

4. 配置环境变量

        sudo vi /etc/bash.bashrc

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

        export PATH=$PATH:/home/hq/toolchain/gcc-4.9.4/bin/

        注意:红色加粗部分改为你自己的用户名

5. 使环境变量立即生效

        source /etc/bash.bashrc

 2、配置tftp服务

(1)检查Ubuntu是否安装tftp服务

                sudo dpkg -s tftpd-hpa

        打印以下内容表示安装了tftp服务,此时跳过第二步直接看第三步配置tftp:

        Architecture: i386

        Source: tftp-hpa

        Version: 5.2-7ubuntu3.1

(2)安装tftp服务

          sudo apt-get update                                   更新源

          sudo apt-get install -f                                 更新依赖

          sudo apt-get install tftpd-hpa tftp-hpa        下载安装指令

(3)配置tftp服务

        1. 在家目录下创建一个tftpboot文件夹

                mkdir tftpboot

                目的:tftpboot目录下存放的是你要下载到开发板上的可执行文件

        2. 修改tftpboot的权限

                sudo chmod 777 tftpboot

        3. 配置tftp服务的环境变量

                sudo vi /etc/default/tftpd-hpa

        修改以下内容:

1 # /etc/default/tftpd-hpa
2 
3 TFTP_USERNAME="tftp" 
	tftp用户名,不需要修改
4 TFTP_DIRECTORY="/home/hq/tftpboot"
	tftp服务下载文件的存放的路径,需要修改
	改成自己的对应的tftpboot的路径(将hq改为自己的用户名即可)	 
5 TFTP_ADDRESS="0.0.0.0:69"
	tftp服务默认使用的69端口号
6 TFTP_OPTIONS="-c -s -l"  
	tftp服务的参数,这个需要修改

        4. 重启tftp服务

                sudo service tftpd-hpa start         启动TFTP服务

                sudo service tftpd-hpa restart       重启TFTP服务

3、配置nfs服务

(1)检查nfs服务是否安装

        如果已安装,跳过第二步看第三步

        dpkg -s nfs-kernel-server

(2)安装nfs服务

        sudo apt-get install nfs-kernel-server

(3)配置nfs服务

        1. 在家目录下创建nfs文件夹

                mkdir nfs

        2. 修改文件权限

                chmod 777 nfs

        3. 拷贝根文件系统镜像到nfs目录下

                根文件系统文件:rootfs-A53-ok.tar.xz(文件在文章开头的链接获取

        4. 对根文件系统的压缩包进行解压缩

                cd ~/nfs

                tar -vxf rootfs-A53-ok.tar.xz

        5. 配置 nfs服务的环境变量

                sudo vi /etc/exports

               在文件的最后一行添加以下内容:

/home/hq/nfs/rootfs/ *(rw,sync,no_subtree_check,no_root_squash)
// 还是将hq改成自己的用户名即可

        6. 重启nfs服务

                sudo service nfs-kernel-server start          启动nfs服务

                sudo service nfs-kernel-server restart       重启nfs服务

4、配置Windows、linux、开发板处于同一局域网

注意配置时关闭Windows防火墙,退出杀毒软件

 (1)配置Windows的网络及ip地址

设置固定IP

 (2)配置linux的网络ip

配置网络为桥接模式,桥接到指定的有线网络。

 

 左上角 虚拟机->设置

 设置固定IP:

(3)配置开发板ip

 配置开发板网络:uboot指令设置环境变量的值

setenv ipaddr 192.168.1.99             //设置开发板ip

setenv netmask 255.255.255.0        //掩码

setenv gatewayip 192.168.1.1         //网关

setenv serverip 192.168.1.66         //服务器地址,填linux的ip

saveenv                                          //保存

 系统移植

思路

uboot镜像---------->Flash

linux内核镜像------>Flash

根文件系统镜像----->Flash

先将镜像使用tftp下载到内存,

再从内存中搬移到flash中,

启动时,再从flash中搬移到内存,

再从内存中启动

移植步骤 

0、通过SD方式启动uboot进入FS6818界面

1、将三段镜像代码放到tftpboot文件

cp /mnt/hgfs/share/ubootpak.bin /home/hq/tftpboot

cp /mnt/hgfs/share/uImage /home/hq/tftpboot

cp /mnt/hgfs/share/ramdisk.img /home/hq/tftpboot

修改文件权限为最大:

chmod 777 ubootpak.bin

chmod 777 uImage

chmod 777 ramdisk.img

2、移植uboot

tftp 0x48000000 ubootpak.bin

update_mmc 2 2ndboot 0x48000000 0x200 0x78000

3、移植内核镜像ulmage和radisk.img

 tftp 0x48000000 uImage

mmc write 0x48000000 0x800 0x4000

tftp 0x48000000 ramdisk.img

mmc write 0x48000000 0x20800 0x20800

4、设置 bootcmd命令,从flash中启动系统

setenv bootcmd mmc read 0x48000000 0x800 0x4000\;mmc read 0x49000000 0x20800 0x20800\;bootm 0x48000000 0x49000000

saveenv

5、设置 自启动的参数 bootargs

setenv bootargs root=/dev/ram rw initrd=0x49000040,0x1000000 rootfstype=ext4 init=/linuxrc console=ttySAC0,115200

saveenv

 设置好了上电重启,完成启动

相关推荐

  1. ldd命令移植32位Arm开发

    2024-06-07 11:50:02       30 阅读
  2. 嵌入式Linux中OpenSSH移植ARM开发

    2024-06-07 11:50:02       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 11:50:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 11:50:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 11:50:02       82 阅读
  4. Python语言-面向对象

    2024-06-07 11:50:02       91 阅读

热门阅读

  1. 【WPF编程宝典】第7讲:样式和触发器

    2024-06-07 11:50:02       33 阅读
  2. k8s AIOps

    k8s AIOps

    2024-06-07 11:50:02      25 阅读
  3. 面试 Redis 八股文十问十答第三期

    2024-06-07 11:50:02       33 阅读
  4. 探索Web前端三大主流框架:React,Angular和Vue.js

    2024-06-07 11:50:02       27 阅读
  5. MongoDB 分布式 概述

    2024-06-07 11:50:02       28 阅读
  6. CSS中的长度单位详解

    2024-06-07 11:50:02       34 阅读