apt-get install -y python3 make gcc unzip pigz bison flex libncurses-dev squashfs-tools bc device-tree-compiler libssl-dev cmake rpm2cpio
su - root
cd /opt
tar -xzvf Ascend310B-source.tar.gz
cd Ascend310B-source/driver/drivers
mkdir usr
cd usr
vim hello.c
#include <linux/module.h> #include <linux/kernel.h> int __init myhello_init(void) { printk("==========user hello mod init=========\n"); return 0; } void __exit myhello_exit(void) { printk("===========user hello mod exit=========\n"); } MODULE_LICENSE("GPL"); module_init(myhello_init); module_exit(myhello_exit);
配置完成后,按“Esc”键,再执行:wq!保存修改,并按“Enter”键退出。
vim Makefile
ccflags-y += -Wall -Werror -Wtrampolines $(WDATE_TIME) -Wfloat-equal -Wvla -Wundef -funsigned-char -Wformat=2 -Wstack-usage=2048 -Wcast-align ccflags-y += -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-missing-field-initializers obj-m += myhello.o myhello-objs := hello.o
配置完成后,按“Esc”键,再执行:wq!保存修改,并按“Enter”键退出。
vim module.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := myhello LOCAL_KO_SRC_FOLDER := $(LOCAL_PATH) LOCAL_INSTALLED_KO_FILES := myhello.ko include $(BUILD_DEVICE_KO)
配置完成后,按“Esc”键,再执行:wq!保存修改,并按“Enter”键退出。
cd /opt/Ascend310B-source/driver/build/product_modules
vim device-ctrlcpu.mk
新增DRIVER_DEVICE_MODULES += myhello.ko
配置完成后,按“Esc”键,再执行:wq!保存修改,并按“Enter”键退出。
cd /opt/Ascend310B-source
bash build.sh driver
出现如下回显表示编译成功。
### build driver_device modules successfully ### generate /opt/Ascend310B-sdk/Ascend310B-source/output/driver_modules success! make driver success!
编译后myhello.ko在“Ascend310B-source/output/driver_modules/”目录下。
cd /run
insmod myhello.ko
lsmod |grep myhello
myhello 16384 0