tiny210 板子创建uboot + nfs 开发环境 总结

现在想学驱动编程, 所以用了一个纯净的内核,直接从官网下载了3.8.3 版本的内核.

从三个方面介绍:

第一个 ,也是我们的第一步,uboot配置。     

我使用的是 http://blog.csdn.net/liukun321/article/details/8558425 的4.0 版本uboot。

编译方法有很在文章里有很详细的介绍,我说一下要注意的事项,及我所遇到的问题:

(1)拿到源码后,首先要make distclean,去除残留要不然直接编译会报错。

(2)在执行 另外两条命令 make ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- tiny210_config  

                                                make ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- all spl

           如果支持sd卡启动,要把我们编译源代码生成的tiny210-uboot.bin 用命令sudo dd iflag=dsync oflag=dsync if=tiny210-uboot.bin of=/dev/sdb seek=1

           烧写到sd 卡中,tiny210板子选择sd卡启动模式,就可以启动uboot ,然后利用tftp 上传tiny210-uboot.bin 到nand flash,就完成了uboot移植。

           说说我遇到的问题,我烧写sd卡uboot的时候没有问题,但是我把tiny210-uboot.bin 文件烧写到nand flash 的时候,板子uboot失败,蜂鸣器会响,串口显示乱码,

           于是我把烧录分成了下面几步:   

          1. 首先 用 nand erase.chip 擦除整个nand

          2. 用tftp 上传 tftp 21000000 /home/smile_maidou/tftp/tiny210-spl.bin   (该文件位于 tiny210-u-boot-version4.0/spl/tiny210-spl.bin)

          3. nand write.e 21000000 0 6000 (这个值要看你的tiny210-spl.bin 文件大小而定,有的只有4k, 而我用的是24k, 我们iram 有94k 不用怕)

          4. 再tftp 上传我们的 u-boot.bin  命令tftp 21000000 /home/smile_maidou/tftp/u-boot.bin (这个文件位于tiny210-u-boot-version4.0/tiny210-uboot.bin)

           5.写nand nand write.e 21000000 6000  (spl.bin 的大小)  3635c (我们生成的u-boot.bin大小)

          然后把开关从sd 卡启动 调整到nand 启动 就可以了,就可以看到完整的uboot输出。


第二个, 配置linux内核。

         我使用的是3.8.3版本内核,先检测内核是否可用:

         (1)make distclean

         (2)修改makefile   ARCH=arm   CROSS_COMPILE=arm-linux-;

         (3)make s5pv210_defconfig

           (4)   make uImage

           这个过程中 第一步应该不会有错,第二部如果报错没有发现arm-linux-xxx,你就要检查你的PATH 变量里是否包含交叉编译器的可执行文件,用命令

           echo $PATH 查看 争取显示如下:

           root@ubuntu:~/cross_compiler/busybox-1_21_0# echo $PATH

           /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/smile_maidou/cross_compiler/opt/FriendlyARM/toolschain/4.5.1/bin

           第三步报错,没发现s5pv210_defconfig 这个文件,你要检查下是不是你拼写错误,如果无误,进入内核源码linux-3.8.3/arch/arm/configs,查看该文件是否存在,

          如果报

 

  *** Unable to find the ncurses libraries or the

  *** required header files.

  *** 'make menuconfig' requires the ncurses libraries.

  ***

  *** Install ncurses (ncurses-devel) and try again.

  ***

  make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1

  make: *** [menuconfig] 错误2

 你需要安装一个库,sudo apt-get install ncurses 就可以解决这个问题。

第四步,如果出现  "mkimage" command not found - U-Boot images will not be built
                                          make[1]: *** [arch/arm/boot/uImage] Error 1
                                          make: *** [uImage] Error 2

这个错误是因为你没有生成mkimage 工具, 这个工具的源代码一般友善之臂会提供,你只需编译源码,把生成的mkimage文件拷贝到 //usr/bin 下面就可以了


注:建议用root 编译 ,会少很多不必要的麻烦。

这几步都完成之后,我们开始对内核做出修改。


如果你用的是虚拟机linux, 建议在虚拟机中运行make menuconfig 命令,如果是在远程登录工具中使用这个命令有些值无法修改。

1. 运行 make menuconfig

       内核默认使用UART1打印信息,我们使用的是uart0

       对话中依次选择System type => (1) S3C UART to use for low-level messages,在编辑框中将1改为0,然后保存配置并再次编译内核,直接执行make即可,无需    

       make clean。

配置内核支持NFS + DM9000 ,部分引用网络文章:

       配置nfs 启动相关内核选项

       [*]Networking support -->

            Networking options-->

            [*]TCP/IP networking

            [*]  ip:kernel level autoconfiguration

                    [*] IP:BOOTP support

      网卡支持 device drivers -->

           [*] Networking device support--->

                [*]ethernet driver support-->

                   [*]DM9000 support

     网络文件系统支持

          File system --->

          Networking File  System --->

              [*]NFS client support

                 [*]NFS client support  for NFS  VERSION 2

                 [*]NFS client support  for NFS  VERSION 3

                 [*]NFS client support  for NFS  VERSION 4

             [*] Roor file system on NFS

   修改机械码 文件路径是/linux-3.8.3/arch/arm/tools/mach-types  

   vim /linux-3.8.3/arch/arm/tools/mach-types 

   smdkv210                MACH_SMDKV210           SMDKV210                3466 (原来是2456)


   修改网卡驱动

   //arch/arm/mach-s5pv210/mach-smdkv210.c
  
#define S5PV210_PA_DM9000_A     (0x88001000   
#define S5PV210_PA_DM9000_F     (S5PV210_PA_DM9000_A + 0x300C  
//   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值