• 环境搭建


    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
  • 相关阅读:
    python 全栈开发,Day34(基于UDP协议的socket)
    python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)
    python 全栈开发,Day32(知识回顾,网络编程基础)
    python 全栈开发,Day30(第一次面向对象考试)
    python 全栈开发,Day30(纸牌游戏,异常和错误,异常处理)
    python 全栈开发,Day29(昨日作业讲解,模块搜索路径,编译python文件,包以及包的import和from,软件开发规范)
    python 全栈开发,Day28(复习,os模块,导入模块import和from)
    python 全栈开发,Day27(复习, defaultdict,Counter,时间模块,random模块,sys模块)
    python 全栈开发,Day26(hashlib文件一致性,configparser,logging,collections模块,deque,OrderedDict)
    css关系选择符
  • 原文地址:https://www.cnblogs.com/huangdengtao/p/12275868.html
Copyright © 2020-2023  润新知