1. 程式人生 > >MT7688開發板/openwrt系統-helloworld例程

MT7688開發板/openwrt系統-helloworld例程

第一個例程,helloworld

驅動程式碼如下:

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("Hanson He");

static int __init hello_init(void)
{
        printk(KERN_ALERT "Hello world\n");
        return 0;
}
static void __exit hello_exit(void)
{
        printk(KERN_ALERT " Hello world exit\n");
}
module_init(hello_init);
module_exit(hello_exit);

Makefile如下:

KERN_DIR = /home/wooya/work/openwrt-hiwooya-stable/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/linux-3.18.45
TOOLCHAIN = "/home/wooya/work/openwrt-hiwooya-stable/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-"

all:
    make -C $(KERN_DIR) ARCH=mips CROSS_COMPILE=$(TOOLCHAIN) M=$(PWD) modules
    
clean:
    rm -f *.ko
    rm -f *.o
    rm -f *.mod.c
    rm -f *.mod.o
    rm -f *.order
    rm -f *.sysvers

obj-m    +=hello.o

 

make 後生成hello.ko 檔案,通過fileZilla軟體把hello.ko檔案傳送到開發板

[email protected]:/# ls
beep_test             mnt                   sbin
bin                   orisunli_beep_drv.ko  sys
dev                   orisunli_test_drv.ko  tmp
etc                   overlay               usr
hello.ko              proc                  var
hello_ext.ko          rom                   www
lib                   root

[email protected]:/# 

開發板中已有hello.ko檔案,載入檔案

[email protected]:/# insmod hello.ko
[ 1682.130000] Hello world
[email protected]:/# 

檢視載入好的檔案

[email protected]:/# lsmod

hello                    480  0 

載入成功

解除安裝驅動hello

[email protected]:/# rmmod hello
[ 1822.430000]  Hello world exit
[email protected]:/# 

解除安裝成功,再用lsmod檢視,發現載入的hello驅動已經沒有了