zoukankan      html  css  js  c++  java
  • 环境搭建

    1.uboot

    1.解压官方源码,注意这里是u-boot-1.1.6
    2.使用补丁包
    3.配置并编译
        tar xjf u-boot-1.1.6.tar.bz2 
        cd u-boot-1.1.6/
        patch -p1 <../u-boot-1.1.6_jz2440.patch
        make 100ask24x0_config
        make
    制作好了uboot.bin文件
        a.烧录
        b.备份下补丁文件(压缩打包)
    注释:
        patch -pn <补丁文件
        -pn: 忽略补丁文件前的n个'/'
    

    2.Kernel

    1.解压
        tar xjf linux-2.6.22.6.tar.bz2
    2.打补丁
        patch -p1 < linux-2.6.22.6_jz2440.patch
    3.打包下生产的文件
        tar cjvf linux2.6.22_ok.tar.bz2 linux-2.6.22.6
    4.配置
        方法一:自己配置
            make menuconfig 
        方法二:使用厂家提供配置
            cp config_ok .config
            make menuconfig
    5.编译
        make uImage
    6.烧录内核
        在uboot下,输入k进入烧写,使用dnw烧写程序
    

    3.Root Filesystem

    1.在u-boot下输入y,下载文件系统fs_mini.yaffs2,然后启动.
    

    4.busybox

    1.解压,源码包在busybox-1.7.0.tar.bz2
        tar xjf  busybox-1.7.0.tar.bz2
        cd busybox-1.7.0/
    2.设置下交叉编译工具为arm-linux-,修改顶层Makefile
        CROSS_COMPILE   ?=arm-linux-
    3.修改配置项目,增加tab补全功能,busybox settings ---busybox libry tuning ----tab completion,输入y选择.其余模块的使能一般在Linux Module Utilities --->中
    4.make
    5.设置安装路径make CONFIG_PREFIX=~/stu/first_fs install
    查看说明文档INSTALL,注意不能直接使用make install,这样会安装到pc上,破坏pc.应该要使用make CONFIG_PREFIX=xxx目录 install
    6.可以看到文件链接到busybox,也就是说bin下面有个busybox的程序,其他ls等都链接到它
     ls -l
    

    5.NFS网络文件系统

    先挂载了FLASH的文件系统,然后挂载另一个文件系统

    设置主机

    1.启动NFS服务,使得主机上的文件夹允许被单板访问挂载.NFS服务在/etc/exports上配置,在该文件上增加新建的文件系统的路径sudo vi /etc/exports,添加内容,其中*表示允许所有文件
        /work          *(rw,sync,no_root_squash,no_subtree_check)
        /home/book/stu/fs/5th  *(rw,sync,no_root_squash,no_subtree_check)
    2.重启主机NFS, sudo /etc/init.d/nfs-kernel-server restart
    3.showmount -e 即可查看已经声明过的可被挂载的目录
    4.尝试使用主机自己挂载自己的NFS文件夹,主机自身ip为192.168.5.107,然后可以在mnt下看到文件
        book@100ask:~/stu/fs$ sudo mount -t nfs                    192.168.76.135:/home/book/stu/fs/5th  /mnt
        book@100ask:~/stu/fs$ ls /mnt
        bin  dev  etc  lib  linuxrc  proc  sbin  sys  usr
    

    设置单板

    1.查询设置ip
        ifconfig eth0 up
        ifconfig eth0 192.168.5.200
    2.新建mnt文件夹,尝试挂载
        mkdir /mnt
        mount -t nfs -o nolock 192.168.5.222:/home/book/stu/fs/5th /mnt
    
        mount :挂载命令 
        nfs :使用的协议 
        nolock :不阻塞  
        IP : NFS服务器的IP(NFS服务器运行在哪个系统上,就是哪个系统的IP) 
        /work/nfs: 要挂载的目录(Ubuntu的目录) 
        /mnt : 要挂载到的目录(开发板上的目录,注意挂载成功后,/mnt下原有数据将会被隐藏,无法找到)
    3.注意看下etc/init.d/rcS 里面是否有ip配置,如果有,可以删除或者改成对的.光盘的文件有设置这个,如果复制过来需要修改
    

    使用NFS文件系统为根文件系统

    NFS启动

    1.查看之前的启动参数bootargs,修改省略hostname
        # 原来的
        # bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
        set bootargs noinitrd root=/dev/nfs         nfsroot=192.168.5.222:/home/book/stu/fs/5th ip=192.168.5.200:192.168.5.222:192.168.5.222:255.255.255.0::eth0:off  init=/linuxrc console=ttySAC0
    2.可以在主机直接使用arm-linux-gcc编译,产生的程序直接在单板运行
    
    eg:
        set bootargs noinitrd root=/dev/nfs nfsroot=10.255.16.10:/home/book/stu/first_fs ip=10.255.16.50:10.255.16.10:10.255.16.5:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
    

    使用:只需要把需要挂载的文件拷贝到目标文件夹中即可

    eg:
        cp firstdrvtest /work/nfs_root/first_fs
  • 相关阅读:
    Linux C 面试题总结
    linux下的缓存机制及清理buffer/cache/swap的方法梳理
    接入WebSocket记录 + 一些个人经验
    Linux基础系列—Linux体系结构和Linux内核结构
    typedef和define具体的详细区别
    RANSAC与 最小二乘(LS, Least Squares)拟合直线的效果比较
    深入理解C/C++混合编程优秀博文赏析与学习
    “error LNK2019: 无法解析的外部符号”之分析
    CUDA和OpenGL互操作经典博文赏析和学习
    [原创]C/C++语言中,如何在main.c或main.cpp中调用另一个.c文件
  • 原文地址:https://www.cnblogs.com/huangdengtao/p/12275868.html
Copyright © 2011-2022 走看看