(本篇文章以将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镜像---------->Flashlinux内核镜像------>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.binupdate_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 0x49000000saveenv
5、设置 自启动的参数 bootargs
setenv bootargs root=/dev/ram rw initrd=0x49000040,0x1000000 rootfstype=ext4 init=/linuxrc console=ttySAC0,115200saveenv
设置好了上电重启,完成启动。