1. 程式人生 > >busybox檔案系統與簡單驅動學習(1)-busybox檔案系統搭建與nfs掛載配置

busybox檔案系統與簡單驅動學習(1)-busybox檔案系統搭建與nfs掛載配置

一、busybox編譯安裝

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、問題

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

然後載入解除安裝就可以正常使用了。
邊搞邊查詢資料,脖子痠疼,今天先這樣。