logo资料库

华清远见--系统移植实验手册.pdf

第1页 / 共59页
第2页 / 共59页
第3页 / 共59页
第4页 / 共59页
第5页 / 共59页
第6页 / 共59页
第7页 / 共59页
第8页 / 共59页
资料共59页,剩余部分请下载后查看
实验一交叉工具链的安装
实验二 u-boot的烧写及使用
实验三 u-boot-2013.01的移植
实验四内核的配置和编译
实验五网卡驱动的移植
实验六 LED驱动的移植
实验七 SD卡驱动移植
实验八 USB驱动的移植
实验九内存调试
实验十内核调试
实验十一文件系统的移植
实验一交叉工具链的安装 【实验目的】 了解交叉工具链的编译过程及其使用。 说明:在实验中命令行提示符为“$”表示在主机上运行,“#”表示在目标板上运行 【实验环境】 1、 ubuntu 12.04 发行版 2、 FS4412 平台 【实验步骤】 1、 如果要自己编译工具链,从以下链接下载源码 crosstools-ng 下载地址 http://ymorin.is-a-geek.org/download/crosstool-ng/ 同时对每一个版本都有相应的补丁我们尽量把这些补丁打上,这些补丁的下载地址是 http://ymorin.is-a-geek.org/download/crosstool-ng/01-fixes/ 2、 解压工具链压缩包 $ cd ~ $ mkdir toolchain $ cd toolchain 将第一天/工具/gcc-4.6.4.tar.xz 拷贝到 toolchain 目录下并解压 $ tar xvf gcc-4.6.4.tar.xz 3、 环境变量的添加 修改文件/etc/bash.bashrc 添加如下内容 export PATH=$PATH:/home/linux/toolchain/gcc-4.6.4/bin 重启配置文件 $ source /etc/bash.bashrc
4、 工具链的测试 $ arm-none-linux-gnueabi-gcc–v Using built-in specs. COLLECT_GCC=arm-none-linux-gnueabi-gcc COLLECT_LTO_WRAPPER=/home/david/Exynos4412/toolchain/gcc-4.6.4/bin/../libex ec/gcc/arm-arm1176jzfssf-linux-gnueabi/4.6.4/lto-wrapper Target: arm-arm1176jzfssf-linux-gnueabi --disable-libquadmath Configured with: /work/builddir/src/gcc-4.6.4/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-arm1176jzfssf-linux-gnueabi --prefix=/opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/gcc-4.6.4 --with-sysroot=/opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/gcc-4.6.4 /arm-arm1176jzfssf-linux-gnueabi/sysroot --enable-languages=c,c++ --with-arch=armv6zk --with-cpu=arm1176jzf-s --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=softfp --with-pkgversion='crosstool-NG hg+default-2685dfa9de14 - tc0002' --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath-support --with-gmp=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-mpfr=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-mpc=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-ppl=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-cloog=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-libelf=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-host-libstdcxx='-static-libgcc -lm' --enable-threads=posix --enable-target-optspace --without-long-double-128 --disable-nls --disable-multilib --with-local-prefix=/opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/gcc- 4.6.4/arm-arm1176jzfssf-linux-gnueabi/sysroot --enable-c99 --enable-long-long -Wl,-Bstatic,-lstdc++,-Bdynamic Thread model: posix gcc version 4.6.4 (crosstool-NG hg+default-2685dfa9de14 - tc0002) 这样我们的交叉工具链就安装好了
实验二 u-boot 的烧写及使用 【实验目的】 了解 u-boot 的常用命令和 linux 内核的引导。 【实验环境】 1、 ubuntu 12.04 发行版 2、 u-boot-2010.03 3、 FS4412 平台 4、 交叉编译器 arm-none-linux-gnueabi-gcc 【实验步骤】 1、 SD 启动盘制作 a) 将第一天/工具/sd_fusing 拷贝到 Linux 下 b) 将 SD 卡插入电脑并识别 c) 进入 sdfuse_q 执行如下操作 $ sudo ./mkuboot.sh /dev/sdb d) 在 SD 卡中创建目录 sdupdate 并把第一天/镜像中的 u-boot-fs4412.bin 拷贝到这 个目录下 2、 u-boot 的烧写 a) 连接串口和板子,运行串口通信程序(putty 第一天工具中)
选择右上角的”Serial”,然后点击左下角的”Serial” 按照自己的主机的情况选择 COM 口其他必须一直,然后点击 open 打开串口
b) 关闭开发板电源,将拨码开关 SW1 调至(1000)(SD 启动模式)后打开电源 c) 将刚才做好的 SD 启动盘插入 SD 卡插槽 d) 重新打开开发板能够看到如下界面 在倒计时时按任意键 e) 烧写 在终端上执行 sdfuse flashall 等待终端无输出是表示烧写结束
f) 关闭开发板电源,将拨码开关 SW1 调至 0110(EMMC 启动模式)后打开电源可 以看到如下界面表示烧写成功 在倒计时时按任意键 3、 通过网络加载内核和文件系统 a) 将第一天/镜像文件/uImage 拷贝到 ubuntu 的 /tftpboot 下 b) 将第一天/镜像文件/rootfs.tar.xz 拷贝到 ubuntu 的 /source 下并解压 c) 将第一天/镜像文件/exynos4412-fs4412.dtb 拷贝到 ubuntu 的 /tftpboot 下 d) 修改虚拟机 nfs 配置文件/etc/exports,添加如下内容并重启 nfs 服务 /source/rootfs *(rw,sync,no_subtree_check,no_root_squash) e) 重新驱动 nfs 服务 $ sudo /etc/init.d/nfs-kernel-server restart f) 设置启动参数 #setenv serverip 192.168.9.120 #setenv ipaddr 192.168.9.233 #setenv bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;bootm 41000000 - 42000000 #setenv bootargs root=/dev/nfs nfsroot=192.168.9.120:/source/rootfs rw
console=ttySAC2,115200 init=/linuxrc ip=192.168.9.233 # saveenv 注意:192.168.9.120 对应 Ubuntu 的 ip 192.168.9.233 对应板子的 ip 这两个 ip 应该根据自己的实际情况适当修改 g) 启动开发板看到如下现象表示成功通过网络挂载: 这是可以输入一些 Linux 的命令测试
4、 从 EMMC 加载内核和文件系统 a) 拷贝第一天/镜像文件/ramdisk.img 拷贝到虚拟机/tftpboot 目录下 b) 烧写内核镜像到 EMMC 上 # tftp 41000000 uImage # 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 自动加载、执行内核
分享到:
收藏