Exynos4412 BSP平台搭建(详细图解)

本文首先需要的开发工具:
一、配置交叉工具链:arm-none-linux-gnueabi.tar.bz2
二、Bootloader编译:uboot-fs4412_v2.tar.xz
三、Linux内核编译:linux-3.0-fs4412_v3.tar.xz
四、通过网络加载内核和文件系统:rootfs.tar.gz
~欢迎下载~
Samsung Cortex-A9 Exynos4412开发板平台搭建步骤如下:
一、配置交叉工具链:arm-none-linux-gnueabi.tar.bz2 

 

1、 环境变量的添加
修改文件/etc/bash.bashrc 添加如下内容
export PATH=$PATH: /usr/local/toolchain/toolchain-4.5.1/bin(pwd配置路径)

 

2、重启配置文件
$ source /etc/bash.bashrc

 

3、工具链测试
$ arm-none-linux-gnueabi-gcc -v

 

二、Bootloader编译:uboot-fs4412_v2.tar.xz

1、执行命令:
tar xvf uboot-fs4412_v2.tar.xz 

解压后会出现 uboot-fs4412_v2 目录,进入/uboot-fs4412_v2/u-boot-2010.03 目录
cd /uboot-fs4412_v2/u-boot-2010.03

 

2、修改 Makefile
vi Makefile 找到如下图所示代码

 

 

修改为

ifeq (arm,$(ARCH))
CROSS_COMPILE = arm-none-linux-gnueabi-

Endif

 

3、保存退出后执行脚本 build_uboot.sh
./ build_uboot.sh

 

编译结果如下图所示

 

 

4、SD 启动盘制作

a) SD卡插入电脑并识别
b) u-boot-2010.03中 执行如下操作
$ sudo ./mkuboot.sh /dev/sdb
c) SD卡中创建目录sdupdate并把镜像中的u-boot-fs4412.bin拷贝到这
个目录下

 

5、u-boot 的烧写

a) 连接串口和板子,运行串口通信程序

 

b) SD启动模式后打开电源
c) 将刚才做好的SD启动盘插入SD卡插槽
d) 重新打开开发板能够看到如下界面

 

e) 烧写
在终端上执行
sdfuse flashall

等待终端无输出是表示烧写结束

 

f) 关闭开发板电源,EMMC启动模式后打开电源可
以看到如下界面表示烧写成功

 

三、Linux内核编译:linux-3.0-fs4412_v3.tar.xz

1、 解压源码
$ tar xvf linux-3.0-fs4412_vX.tar.xz // X 代表版本号, 随着版本升级会有区别

2、配置源码

$ vim Makefile
修改交叉工具链的路径 196 行代码如下图所示。
196 CROSS_COMPILE = arm-none-linux-gnueabi-

 

3、Linux 内核通常使用 menuconfig 图形界面配置内核编译选项
在【 .config】 文件中。首先拷贝 FS4412 开发平台的标准配置文件为【 .config】。
$ cp arch/arm/configs/config_fs4412_android_v3   .config

 

4、在终端下输入下列命令可以进入到 Linux 内核配置图形界面。
$ make menuconfig

 

 

5、编译源码
$ make zImage –jX // X 为编译时使用的 CPU 线程数,建议此数与环境搭建中 CPU 个数一致(第一次编译大约需要20min左右)

 

 

 

6、拷贝内核文件到/tftpboot目录下

修改tftpboot权限

 sudo  chmod 777 tftpboot
$ cp arm/arm/boot/zImage   /tftpboot

 

四、通过网络加载内核和文件系统:rootfs.tar.gz

1、主机端tftp服务器配置

a)检查是否安装tftp server

#dpkg   -s   tftpd-hpa

b)如果未安装,安装 tftp-server

#apt-get  install  tftpd-hpa  tftp-hpa

c)修改文件vim /etc/default/tftpd-hpa,开启tftp服务

# sudo  vi  /etc/default/tftpd-hpa

 

TFTP_USERNAME="tftp"       //客户端tftpd服务器端

TFTP_DIRECTORY="/tftpboot"  //手动在根文件目录下创建tftpboot文件

TFTP_ADDRESS="0.0.0.0:69"   //端口号

TFTP_OPTIONS="-c  -s  -l"   //权限

 

d)创建tftpboot目录,启动tftp-server

 #mkdir  /tftpboot

 #chmod  777  /tftpboot

 #service   tftpd-hpa   restart

e)登陆本机测试,命令如下:

 #tftp   127.0.0.1

 tftp>get  <download file>

 tftp>put  <upload file>

 tftp>q

 

 

2、主机端NFS服务器配置::nfs共享文件夹Ubuntu和arm共享

 

a)在根文件创建目录/source

b)安装nfs服务器sudo apt-get installnfs-kernel-server

c)NFS服务器配置,修改 /etc/exports文件

/source/rootfs  *(rw,sync,no_root_squash,no_subtree_check)

sync自动搜索    no_subtree_check 不检测上层文件权限

d)重启nfs服务器

$sudo  /etc/init.d/nfs-kernel-server  restart或

$sudo  service  nfs-kernel-server restart

 


e) 镜像文件/rootfs.tar.xz拷贝到ubuntu/source下并解压
f) 修改虚拟机nfs配置文件/etc/exports,添加如下内容并重启nfs服务
/source/rootfs *(rw,sync,no_subtree_check,no_root_squash)
g) 重新驱动nfs服务
$ sudo /etc/init.d/nfs-kernel-server restart

 

3、修改 uboot 启动参数
重启板子在系统倒计时是按任意键结束启动,输入如下内容修改 uboot 环境变量:

#setenv serverip 192.168.9.120
#setenv ipaddr 192.168.9.233
#setenv bootcmd tftp 41000000 uImage\;bootm 41000000

#setenv bootargs root=/dev/nfs nfsroot=192.168.9.120:/source/rootfs ip=192.168.9.233:192.1
68.9.120::255.255.255.0::eth0:off console=ttySAC2,115200 init=/linuxrc

 

注意:192.168.9.120对应Ubuntuip
      192.168.9.233对应板子的ip
这两个 ip 应该根据自己的实际情况适当修改

重启开发板查看现象

看到如下现象表示成功通过网络挂载:

 

4、 从EMMC加载内核和文件系统

a) 拷贝第一天/镜像文件/ramdisk.img拷贝到虚拟机/tftpboot目录下

b) 烧写内核镜像到EMMC上

# tftp 41000000uImage

# movi  write  kernel  41000000

 

c) 烧写设备树文件到EMMC上

# tftp  41000000 exynos4412-fs4412.dtb

# movi  write  dtb  41000000

 

d) 烧写文件系统镜像到EMMC上

# tftp 41000000ramdisk.img

# movi  write  rootfs  41000000  300000

 

e) 设置启动参数

# setenv bootcmd movi read kernel 41000000\;movi read dtb 42000000\;movi read rootfs 43000000 300000\;bootm 41000000 43000000 42000000

# saveenv

 

f) 重新启动开发板,u-boot自动加载、执行内核

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值