busybox文件系统与简单驱动学习(1)-busybox文件系统搭建与nfs挂载配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yongwenn163/article/details/80140342

一、busybox编译安装

1、参考网址:https://blog.csdn.net/leon1741/article/details/54838924

2、参考资料:讯为4412精英版开发手册9.5章节

3、实际操作环境:Ubuntu14.04、交叉编译环境 arm-none-linux-gnueabi-(直接用讯为提供的,也可以网上用其他的)、busybox版本为1.26.2

二、nfs配置

1、主要参考“iTOP-4412实现NFS网络文件系统”,懒,只为了做笔记,具体配置内核就不列举了,文档上写的非常详细。

2、电脑端nfs配置方法也在上一条文档中,完成之后板子插网线,与电脑端在一个局域网内,最好相互ping一下对方的ip地址进行确定是否互联互通。

3、板子直接挂载电脑端:

mount -o nolock -t nfs 192.168.2.101:/home/ntu/iTOP4412/nfs_server  /mnt/

ifconfig eth0 192.168.2.111 netmask 255.255.255.0 
route add default gw 192.168.2.1
ping 192.168.2.101

这里,电脑端IP地址为192.168.2.101,自身nfs文件夹路径在ip地址后,最后为板子挂载位置。

三、第一步简单驱动测试

1、驱动程序driver_hello.c

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");

static int hello_init(void)
{
    printk(KERN_ALERT "hello itop4412\n");
    return 0;
}
static void hello_exit(void)
{
    printk(KERN_ALERT "goodbye itop4412\n");
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("Dual BSD/GPL");

2、makefile

KERN_SRC=/home/ntu/iTOP4412/iTop4412_Kernel_3.0/
obj-m := driver_hello.o

all:
    make -C $(KERN_SRC) ARCH=arm M=`pwd` modules
clean:
    #make -C $(KERN_SRC) ARCH=arm M=`pwd=` clean
    rm modules.order Module.symvers *.o *.ko *.mod.c .*.cmd .tmp_versions -rf

3、交叉编译

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

4、加载驱动

将生成的driver_hello.ko拖放至nfs共享文件夹,板子串口控制 端口修改权限为可执行,接着insmod driver_hello.ko 将驱动进行加载,可以用lsmod查看加载驱动,同时将会显示加载与移除时的信息,如果看不到,则用 dmesg | tail 来查看。

5、问题

解决:https://wenku.baidu.com/view/c473ff8c6c175f0e7dd1379e
在rmmod driver_hello.ko 时出现问题。
解决方法:

    mkdir -p /lib/modules/`uname -r`
    mkdir -p /lib/modules/3.0.15
    cp ./driver_hello.ko /lib/modules/3.0.15

然后加载卸载就可以正常使用了。
边搞边查找资料,脖子酸疼,今天先这样。

猜你喜欢

转载自blog.csdn.net/yongwenn163/article/details/80140342
今日推荐