环境搭建

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
posted @ 2020-02-08 11:37  人民广场的二道贩子  阅读(184)  评论(0编辑  收藏  举报