一、busybox编译安装
1、参考网址:
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
然后加载卸载就可以正常使用了。
边搞边查找资料,脖子酸疼,今天先这样。