logo资料库

华清远见uboot和linux内核移植实验手册.doc

第1页 / 共57页
第2页 / 共57页
第3页 / 共57页
第4页 / 共57页
第5页 / 共57页
第6页 / 共57页
第7页 / 共57页
第8页 / 共57页
资料共57页,剩余部分请下载后查看
目录
实验一 交叉工具链的移植
实验二 u-boot的烧写及使用
实验三 u-boot-2010.03的移植
实验四 linux-2.6.22.6内核的编译和配置
实验五 linux-2.6.35内核移植—网卡驱动的添加
实验六 linux-2.6.35内核移植—Nand flash驱动的添加
实验七 linux-2.6.35内核移植—LCD驱动的添加
实验八 linux-2.6.35内核移植—USB驱动的添加
实验九 linux-2.6.35内核移植—SD卡驱动的添加
实验十 linux-2.6.35内核移植—yaffs2文件系统的支持
实验十一 内核调试
实验十二 内存调试
实验十三 文件系统的移植
实验十四 UDEV的移植
嵌入式学院实验手册 系统移植部分 嵌入式学院教材开发部 编著 (内部资料,请勿外传) 嵌入式学院(2010) 版权所有 V3.0
目录 目录 .....................................................................................................................................................2 实验一 交叉工具链的移植 ............................................................................................................... 3 实验二 u-boot 的烧写及使用 ........................................................................................................... 8 实验三 u-boot-2010.03 的移植.......................................................................................................12 实验四 linux-2.6.22.6 内核的编译和配置......................................................................................31 实验五 linux-2.6.35 内核移植—网卡驱动的添加 ......................................................................... 34 实验六 linux-2.6.35 内核移植—Nand flash 驱动的添加...............................................................36 实验七 linux-2.6.35 内核移植—LCD 驱动的添加..........................................................................38 实验八 linux-2.6.35 内核移植—USB 驱动的添加..........................................................................40 实验九 linux-2.6.35 内核移植—SD 卡驱动的添加 ........................................................................42 实验十 linux-2.6.35 内核移植—yaffs2 文件系统的支持.............................................................. 45 实验十一 内核调试......................................................................................................................... 47 实验十二 内存调试......................................................................................................................... 50 实验十三 文件系统的移植............................................................................................................. 53 实验十四 UDEV 的移植................................................................................................................... 58
实验一 交叉工具链的移植 【实验目的】 了解交叉工具链的编译过程及其使用。 说明:在本系统移植课程实验中命令行提示符 “$”表示是在主机上执行,“#”表示在目 标板执行 【实验环境】 1、 Ubuntu 10.10 发行版 2、 FS2410 平台 【实验步骤】 1、源码下载 Crosstools-ng 下载地址 http://ymorin.is-a-geek.org/download/crosstool-ng/ 同时对每一个版本都有相应的补丁我们尽量把这些补丁打上,这些补丁的下载地址是 http://ymorin.is-a-geek.org/download/crosstool-ng/01-fixes/ 我这里选用的是 crosstool-ng-1.8.1.tar.bz2 并下载补丁 000-scripts_log_do_not_interpret_log_string_as_printf_format.patch 001-binutils_binutils_remove_faulty_patch.patch 002-kconfig_resync_curses_check_with_Linux_kernel.patch 2、工具的安装 在使用之前必须安装一些软件 $ sudo apt-get install gawk autotools-dev automake texinfo libtool cvs patch bison flex libncurses5-dev 3、 必要目录的创建 $ mkdir toolchain_build $ mkdir toolchain_install 4、 解压源码并打补丁 $ tar xvf crosstool-ng-1.8.1.tar.bz2 $ cd crosstool-ng-1.8.1 $ patch –p1 < 000-scripts_log_do_not_interpret_log_string_as_printf_format.patch $ patch –p1 < 001-binutils_binutils_remove_faulty_patch.patch
$ patch –p1< 002-kconfig_resync_curses_check_with_Linux_kernel.patch 5、 配置并编译 crosstool-ng-1.8.1 $ ./configure --prefix=/home/linux/s3c2410-2.6.35/toolchain/toolchain-install $ make $ make install 6、 配置工具链选项 $ cd ../toolchain-build $ cp ../crosstool-ng-1.8.1/samples/arm-unknown-linux-gnueabi/* ./ $ mv crosstool.config .config $ ../toolchain-install/bin/ct-ng menuconfig Paths and misc options ---> (${HOME}/src) Local tarballs directory (${HOME}/x-tools/${CT_TARGET}) Prefix directory 修改为 Paths and misc options ---> (/home/linux/Downloads) Local tarballs directory //源码包存放路径 (/home/linux/toolchain) Prefix directory //工具生成后的安装路径 Target options ---> (armv4t) Architecture level (arm9tdmi) Emit assembly for CPU (arm920t) Tune for CPU C compiler ---> [ ] Java Operating System ---> [ ] Check installed headers Paths and misc options ---> (1) Number of parallel jobs
Toolchain options ---> (none) Tuple's vendor string C compiler ---> (crosstool-NG-${CT_VERSION}-farsight) gcc ID string 修改.config 文件,将文件中的 2.6.33.2 全部改为 2.6.35 7、 目标代码准备 拷贝下面文件到/home/linux/Downloads 目录下: binutils-2.19.1.tar.bz2 gcc-4.3.2.tar.bz2 glibc-ports-2.9.tar.bz2 linux-2.6.35.tar.bz2 ncurses-5.7.tar.gz dmalloc-5.5.2.tgz gdb-6.8.tar.bz2 gmp-4.3.2.tar.bz2 ltrace_0.5.3.orig.tar.gz strace-4.5.19.tar.bz2 duma_2_5_15.tar.gz glibc-2.9.tar.bz2 libelf-0.8.13.tar.gz mpfr-2.4.2.tar.bz2 Sstrip.c 8、 工具链编译 $ ../toolchain-install/bin/ct-ng build 这个过程比较时间比较长 9、 环境变量的添加 修改文件/etc/bash.bashrc 添加如下内容 export PATH=$PATH:/home/linux/toolchain/bin 重启配置文件 $ source bash.bashrc
10、 工具链的测试 $ arm-none-linux-gnueabi-gcc –v Using built-in specs. Target: arm-none-linux-gnueabi Configured with: /home/linux/s3c2410-2.6.35/toolchain/toolchain-build/targets/src/gcc- 4.3.2/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu -- target=arm-none-linux-gnueabi --prefix=/home/linux/toolchain --with- sysroot=/home/linux/toolchain/arm-none-linux-gnueabi//sys-root --enable- languages=c,c++,fortran --disable-multilib --with-arch=armv4t --with-cpu=arm9tdmi --with- tune=arm920t --with-float=soft --with-pkgversion=crosstool-NG-1.8.1-none --disable-sjlj- exceptions --enable-__cxa_atexit --disable-libmudflap --with-gmp=/home/linux/s3c2410- 2.6.35/toolchain/toolchain-build/targets/arm-none-linux-gnueabi/build/static --with- mpfr=/home/linux/s3c2410-2.6.35/toolchain/toolchain-build/targets/arm-none-linux- gnueabi/build/static --enable-threads=posix --enable-target-optspace --with-local- prefix=/home/linux/toolchain/arm-none-linux-gnueabi//sys-root --disable-nls --enable- symvers=gnu --enable-c99 --enable-long-long Thread model: posix gcc version 4.3.2 (crosstool-NG-1.8.1-none) 这个时候我们的工具链就生成了
实验二 u-boot 的烧写及使用 【实验目的】 了解 U-boot-2010.03 的代码结构及移植方法。 【实验环境】 1、 Ubuntu 10.10 发行版 2、 u-boot-2010.03 3、 FS2410 平台 4、 交叉编译器 arm-none-linux-gnueabi-gcc 【实验步骤】 1、 u-boot 的烧写 使用 H-jtag 将 u-boot 烧写在 2410 开发板的 nand flash 的零地址上,过程与 arm 实验时相 同,区别在于选择 flash 上。我们选择的是 K9VF1208,如图
分享到:
收藏