From 06766f7532d2a4e2287a752ba4d3902c0b09a737 Mon Sep 17 00:00:00 2001
From: damin <dnflekals@ajou.ac.kr>
Date: Thu, 25 Jun 2020 03:18:14 +0900
Subject: [PATCH] project

---
 app                               | Bin 0 -> 13024 bytes
 app.c                             | 168 +++++++
 app2                              | Bin 0 -> 13024 bytes
 app2.c                            | 225 ++++++++++
 led/.led_dev.ko.cmd               |   1 +
 led/.led_dev.mod.o.cmd            | 499 +++++++++++++++++++++
 led/.led_dev.o.cmd                | 720 ++++++++++++++++++++++++++++++
 led/.tmp_versions/led_dev.mod     |   3 +
 led/Makefile                      |  11 +
 led/Module.symvers                |   0
 led/led_dev.c                     |  94 ++++
 led/led_dev.ko                    | Bin 0 -> 7468 bytes
 led/led_dev.mod.c                 |  48 ++
 led/led_dev.mod.o                 | Bin 0 -> 2968 bytes
 led/led_dev.o                     | Bin 0 -> 6696 bytes
 led/modules.order                 |   1 +
 led/sc.sh                         |   4 +
 moter/.moter_dev.ko.cmd           |   1 +
 moter/.moter_dev.mod.o.cmd        | 499 +++++++++++++++++++++
 moter/.moter_dev.o.cmd            | 720 ++++++++++++++++++++++++++++++
 moter/.tmp_versions/moter_dev.mod |   3 +
 moter/Makefile                    |  12 +
 moter/Module.symvers              |   0
 moter/modules.order               |   1 +
 moter/moter_dev.c                 | 106 +++++
 moter/moter_dev.ko                | Bin 0 -> 7980 bytes
 moter/moter_dev.mod.c             |  50 +++
 moter/moter_dev.mod.o             | Bin 0 -> 3100 bytes
 moter/moter_dev.o                 | Bin 0 -> 7036 bytes
 moter/sc.sh                       |   4 +
 pump/.pump_dev.ko.cmd             |   1 +
 pump/.pump_dev.mod.o.cmd          | 499 +++++++++++++++++++++
 pump/.pump_dev.o.cmd              | 720 ++++++++++++++++++++++++++++++
 pump/.tmp_versions/pump_dev.mod   |   3 +
 pump/Makefile                     |  11 +
 pump/Module.symvers               |   0
 pump/modules.order                |   1 +
 pump/pump_dev.c                   | 102 +++++
 pump/pump_dev.ko                  | Bin 0 -> 7828 bytes
 pump/pump_dev.mod.c               |  50 +++
 pump/pump_dev.mod.o               | Bin 0 -> 3100 bytes
 pump/pump_dev.o                   | Bin 0 -> 6928 bytes
 pump/sc.sh                        |   4 +
 soil/.soil_dev.ko.cmd             |   1 +
 soil/.soil_dev.mod.o.cmd          | 499 +++++++++++++++++++++
 soil/.soil_dev.o.cmd              | 718 +++++++++++++++++++++++++++++
 soil/.tmp_versions/soil_dev.mod   |   3 +
 soil/Makefile                     |  11 +
 soil/Module.symvers               |   0
 soil/modules.order                |   1 +
 soil/sc.sh                        |   4 +
 soil/soil_dev.c                   | 126 ++++++
 soil/soil_dev.ko                  | Bin 0 -> 7728 bytes
 soil/soil_dev.mod.c               |  47 ++
 soil/soil_dev.mod.o               | Bin 0 -> 2908 bytes
 soil/soil_dev.o                   | Bin 0 -> 7012 bytes
 temp/.temp_dev.ko.cmd             |   1 +
 temp/.temp_dev.mod.o.cmd          | 499 +++++++++++++++++++++
 temp/.temp_dev.o.cmd              | 720 ++++++++++++++++++++++++++++++
 temp/.tmp_versions/temp_dev.mod   |   3 +
 temp/Makefile                     |  11 +
 temp/Module.symvers               |   0
 temp/modules.order                |   1 +
 temp/sc.sh                        |   4 +
 temp/temp_dev.c                   | 121 +++++
 temp/temp_dev.ko                  | Bin 0 -> 7900 bytes
 temp/temp_dev.mod.c               |  48 ++
 temp/temp_dev.mod.o               | Bin 0 -> 2972 bytes
 temp/temp_dev.o                   | Bin 0 -> 7112 bytes
 69 files changed, 7379 insertions(+)
 create mode 100755 app
 create mode 100644 app.c
 create mode 100755 app2
 create mode 100644 app2.c
 create mode 100644 led/.led_dev.ko.cmd
 create mode 100644 led/.led_dev.mod.o.cmd
 create mode 100644 led/.led_dev.o.cmd
 create mode 100644 led/.tmp_versions/led_dev.mod
 create mode 100644 led/Makefile
 create mode 100644 led/Module.symvers
 create mode 100644 led/led_dev.c
 create mode 100644 led/led_dev.ko
 create mode 100644 led/led_dev.mod.c
 create mode 100644 led/led_dev.mod.o
 create mode 100644 led/led_dev.o
 create mode 100644 led/modules.order
 create mode 100755 led/sc.sh
 create mode 100644 moter/.moter_dev.ko.cmd
 create mode 100644 moter/.moter_dev.mod.o.cmd
 create mode 100644 moter/.moter_dev.o.cmd
 create mode 100644 moter/.tmp_versions/moter_dev.mod
 create mode 100644 moter/Makefile
 create mode 100644 moter/Module.symvers
 create mode 100644 moter/modules.order
 create mode 100644 moter/moter_dev.c
 create mode 100644 moter/moter_dev.ko
 create mode 100644 moter/moter_dev.mod.c
 create mode 100644 moter/moter_dev.mod.o
 create mode 100644 moter/moter_dev.o
 create mode 100755 moter/sc.sh
 create mode 100644 pump/.pump_dev.ko.cmd
 create mode 100644 pump/.pump_dev.mod.o.cmd
 create mode 100644 pump/.pump_dev.o.cmd
 create mode 100644 pump/.tmp_versions/pump_dev.mod
 create mode 100644 pump/Makefile
 create mode 100644 pump/Module.symvers
 create mode 100644 pump/modules.order
 create mode 100644 pump/pump_dev.c
 create mode 100644 pump/pump_dev.ko
 create mode 100644 pump/pump_dev.mod.c
 create mode 100644 pump/pump_dev.mod.o
 create mode 100644 pump/pump_dev.o
 create mode 100755 pump/sc.sh
 create mode 100644 soil/.soil_dev.ko.cmd
 create mode 100644 soil/.soil_dev.mod.o.cmd
 create mode 100644 soil/.soil_dev.o.cmd
 create mode 100644 soil/.tmp_versions/soil_dev.mod
 create mode 100644 soil/Makefile
 create mode 100644 soil/Module.symvers
 create mode 100644 soil/modules.order
 create mode 100755 soil/sc.sh
 create mode 100644 soil/soil_dev.c
 create mode 100644 soil/soil_dev.ko
 create mode 100644 soil/soil_dev.mod.c
 create mode 100644 soil/soil_dev.mod.o
 create mode 100644 soil/soil_dev.o
 create mode 100644 temp/.temp_dev.ko.cmd
 create mode 100644 temp/.temp_dev.mod.o.cmd
 create mode 100644 temp/.temp_dev.o.cmd
 create mode 100644 temp/.tmp_versions/temp_dev.mod
 create mode 100644 temp/Makefile
 create mode 100644 temp/Module.symvers
 create mode 100644 temp/modules.order
 create mode 100755 temp/sc.sh
 create mode 100644 temp/temp_dev.c
 create mode 100644 temp/temp_dev.ko
 create mode 100644 temp/temp_dev.mod.c
 create mode 100644 temp/temp_dev.mod.o
 create mode 100644 temp/temp_dev.o

diff --git a/app b/app
new file mode 100755
index 0000000000000000000000000000000000000000..943e1ac27bb109ee7e1c1e4ca3f1fea273380235
GIT binary patch
literal 13024
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
QbwRoe49LS@Ap1b-0Bd2S6951J

literal 0
HcmV?d00001

diff --git a/app.c b/app.c
new file mode 100644
index 0000000..bfa6562
--- /dev/null
+++ b/app.c
@@ -0,0 +1,168 @@
+#include <stdio.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <signal.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <sys/sysmacros.h>
+
+#include <arpa/inet.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#define MAXLINE    511
+#define PORT    65021
+
+#define SOIL_MAJOR_NUMBER 501
+#define SOIL_MINOR_NUMBER 101
+#define SOIL_DEV_PATH_NAME "/dev/soil"
+
+#define PUMP_MAJOR_NUMBER 503
+#define PUMP_MINOR_NUMBER 103
+#define PUMP_DEV_PATH_NAME "/dev/pump"
+
+int main(int argc, char* argv[]){
+	dev_t soil_dev;
+	int fd_soil;
+	soil_dev = makedev(SOIL_MAJOR_NUMBER, SOIL_MINOR_NUMBER);
+	mknod(SOIL_DEV_PATH_NAME, S_IFCHR|0666, soil_dev);
+	fd_soil = open(SOIL_DEV_PATH_NAME, O_RDWR);
+	if(fd_soil < 0){
+		printf("fail to open soil\n");
+		return -1;
+	}
+	
+	dev_t pump_dev;
+	int fd_pump;
+	pump_dev = makedev(PUMP_MAJOR_NUMBER, PUMP_MINOR_NUMBER);
+	mknod(PUMP_DEV_PATH_NAME, S_IFCHR|0666, pump_dev);
+	fd_pump = open(PUMP_DEV_PATH_NAME, O_RDWR);
+	if(fd_pump < 0){
+		printf("fail to open pump\n");
+		return -1;
+	}
+	
+	
+	int cli_sock;
+    struct sockaddr_in    serv_addr;
+    int datalen;
+    char buf[MAXLINE +1];
+    int nbytes;
+    char* addrserv;
+    int nport;
+    pid_t pid;
+    struct hostent *host_ent;
+
+    if (argc == 2){
+        addrserv =argv[1]; 
+        nport = PORT;
+    } else if (argc == 3) {
+        addrserv =argv[1];
+        nport = atoi(argv[2]);
+    } else {
+        printf("Usage: %s <server address>\n", argv[0]);
+        printf("   or\nUsage: %s <server address <port>>\n", argv[0]);
+        exit(0);
+    }
+
+    cli_sock = socket(PF_INET, SOCK_STREAM, 0); 
+    if (cli_sock == -1){
+        perror("socket() error!\n");
+        exit(0);
+    }
+
+    if (strncmp(addrserv, "192.168.", 8) != 0){
+        if ((host_ent = gethostbyname(addrserv)) == NULL) {
+            herror("gethostbyname() error\n");
+        }
+
+        addrserv = inet_ntoa(*((struct in_addr *)host_ent->h_addr_list[0]));
+    }
+
+    memset(&serv_addr, 0, sizeof(serv_addr));
+    serv_addr.sin_family = AF_INET;
+    serv_addr.sin_addr.s_addr = inet_addr(addrserv);
+    serv_addr.sin_port = htons(nport);
+
+    if (connect(cli_sock, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1) {    //connect to serve
+        perror("connect() error\n");
+        exit(0);
+    }
+
+	char socket_str[MAXLINE];
+    if((pid = fork()) == -1){
+        perror("fork() error\n");
+        exit(0);
+    } else if(pid ==0) {
+		int soil_state=0;
+        while(1){
+			read(fd_soil, &soil_state, 4);
+			printf("soil state:%d\n",soil_state);
+			if(soil_state<300){
+				while(1){
+					read(fd_soil, &soil_state, 4);
+					printf("soil state2:%d\n",soil_state);
+					if(soil_state>600) break;
+					int data = 255;
+					write(fd_pump, &data, sizeof(data));
+				}
+			}
+			char soil_str[MAXLINE];
+			int tmp=soil_state/10;
+			sprintf(soil_str,"%d",tmp);
+			int i=0;
+			int cnt=0;
+			socket_str[cnt++]='S';
+			socket_str[cnt++]=':';
+			for(i=0;i<strlen(soil_str);i++){
+				socket_str[cnt++]=soil_str[i];
+			}
+			socket_str[cnt++]='%';
+			socket_str[cnt]='\0';
+			printf("%s\n",&socket_str);
+            nbytes = strlen(socket_str);
+            write(cli_sock, socket_str, nbytes);
+			sleep(4);
+        }
+    } else if (pid > 0){    
+        while(1){
+            if((nbytes = read(cli_sock, socket_str, MAXLINE)) < 0){
+                perror("read() error\n");
+                exit(0);
+            }
+            /*fputs(buf,stdout);
+            printf("%s\n", socket_str);
+            if(strncmp(buf, "exit",4) == 0)
+                exit(0);*/
+        }
+    }
+
+	
+	
+	/*int soil_state=0;
+	while(1){
+		read(fd_soil, &soil_state, 4);
+		printf("soil state:%d\n",soil_state);
+		if(soil_state<300){
+			while(1){
+				read(fd_soil, &soil_state, 4);
+				printf("soil state2:%d\n",soil_state);
+				if(soil_state>600) break;
+				int data = 255;
+				write(fd_pump, &data, sizeof(data));
+			}
+		}
+		sleep(1);
+	}*/
+	
+	close(fd_soil);
+	close(fd_pump);
+	close(cli_sock);
+	return 0;
+}
diff --git a/app2 b/app2
new file mode 100755
index 0000000000000000000000000000000000000000..6ab89cdf46ce1a04fac2d853ac996aab28f38cad
GIT binary patch
literal 13024
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

literal 0
HcmV?d00001

diff --git a/app2.c b/app2.c
new file mode 100644
index 0000000..5faa313
--- /dev/null
+++ b/app2.c
@@ -0,0 +1,225 @@
+#include <stdio.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <signal.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <sys/sysmacros.h>
+
+#include <arpa/inet.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#define MAXLINE    511
+#define PORT    65021
+
+#define TEMP_MAJOR_NUMBER 502
+#define TEMP_MINOR_NUMBER 102
+#define TEMP_DEV_PATH_NAME "/dev/temp"
+
+#define LED_MAJOR_NUMBER 504
+#define LED_MINOR_NUMBER 104
+#define LED_DEV_PATH_NAME "/dev/led"
+
+#define MOTER_MAJOR_NUMBER 505
+#define MOTER_MINOR_NUMBER 105
+#define MOTER_DEV_PATH_NAME "/dev/moter"
+
+int main(int argc, char* argv[]){
+	dev_t temp_dev;
+	int fd_temp;
+	temp_dev = makedev(TEMP_MAJOR_NUMBER, TEMP_MINOR_NUMBER);
+	mknod(TEMP_DEV_PATH_NAME, S_IFCHR|0666, temp_dev);
+	fd_temp = open(TEMP_DEV_PATH_NAME, O_RDWR);
+	if(fd_temp < 0){
+		printf("fail to open temp\n");
+		return -1;
+	}
+	
+	dev_t led_dev;
+	int fd_led;
+	led_dev = makedev(LED_MAJOR_NUMBER, LED_MINOR_NUMBER);
+	mknod(LED_DEV_PATH_NAME, S_IFCHR|0666, led_dev);
+	fd_led = open(LED_DEV_PATH_NAME, O_RDWR);
+	if(fd_led < 0){
+		printf("fail to open led\n");
+		return -1;
+	}
+	
+	dev_t moter_dev;
+	int fd_moter;
+	moter_dev = makedev(MOTER_MAJOR_NUMBER, MOTER_MINOR_NUMBER);
+	mknod(MOTER_DEV_PATH_NAME, S_IFCHR|0666, moter_dev);
+	fd_moter = open(MOTER_DEV_PATH_NAME, O_RDWR);
+	if(fd_moter < 0){
+		printf("fail to open moter\n");
+		return -1;
+	}
+	
+	int cli_sock;
+    struct sockaddr_in    serv_addr;
+    int datalen;
+    char buf[MAXLINE +1];
+    int nbytes;
+    char* addrserv;
+    int nport;
+    pid_t pid;
+    struct hostent *host_ent;
+
+    if (argc == 2){
+        addrserv =argv[1]; 
+        nport = PORT;
+    } else if (argc == 3) {
+        addrserv =argv[1];
+        nport = atoi(argv[2]);
+    } else {
+        printf("Usage: %s <server address>\n", argv[0]);
+        printf("   or\nUsage: %s <server address <port>>\n", argv[0]);
+        exit(0);
+    }
+
+    cli_sock = socket(PF_INET, SOCK_STREAM, 0);
+    if (cli_sock == -1){
+        perror("socket() error!\n");
+        exit(0);
+    }
+
+    if (strncmp(addrserv, "192.168.", 8) != 0){
+        if ((host_ent = gethostbyname(addrserv)) == NULL) {
+            herror("gethostbyname() error\n");
+        }
+
+        addrserv = inet_ntoa(*((struct in_addr *)host_ent->h_addr_list[0]));
+    }
+
+    memset(&serv_addr, 0, sizeof(serv_addr));
+    serv_addr.sin_family = AF_INET;
+    serv_addr.sin_addr.s_addr = inet_addr(addrserv);
+    serv_addr.sin_port = htons(nport);
+
+    if (connect(cli_sock, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1) {    //connect to serve
+        perror("connect() error\n");
+        exit(0);
+    }
+	char socket_str[MAXLINE];
+    if((pid = fork()) == -1){
+        perror("fork() error\n");
+        exit(0);
+    } else if(pid ==0) {
+		int dht11_dat[5] = {0, };
+		int led_state=0;
+        while(1){
+			read(fd_temp, &dht11_dat, sizeof(dht11_dat));
+			printf("humidity = %d.%d %% Temperature = %d.%d *C \n", dht11_dat[0], dht11_dat[1], dht11_dat[2], dht11_dat[3]) ;
+			
+			int temp=dht11_dat[2];
+			if(temp>29){
+				int data=400;
+				int cnt=0;
+				printf("Moter on!!\n");
+				while(cnt<5){
+					write(fd_moter, &data, sizeof(data));
+					cnt++;
+				}
+				printf("Moter off!!\n");
+			}
+		
+			if(temp<20){
+				led_state = 1;
+				printf("LED on!!\n");
+				write(fd_led, &led_state, 4);
+			}
+			else{
+				led_state = 0;
+				printf("LED off!!\n");
+				write(fd_led, &led_state, 4);
+			}
+			
+			//char socket_str[MAXLINE];
+			char humi_str[10];
+			char temp_str[10];
+			sprintf(humi_str,"%d",dht11_dat[0]);
+			sprintf(temp_str,"%d",dht11_dat[2]);
+			int i=0;
+			int cnt=0;
+			socket_str[cnt++]='T';
+			socket_str[cnt++]=':';
+			for(i=0;i<strlen(temp_str);i++){
+				socket_str[cnt++]=temp_str[i];
+			}
+			socket_str[cnt++]='*';
+			socket_str[cnt++]='C';
+			socket_str[cnt++]=',';
+			socket_str[cnt++]=' ';
+			socket_str[cnt++]='H';
+			socket_str[cnt++]=':';
+			for(i=0;i<strlen(humi_str);i++){
+				socket_str[cnt++]=humi_str[i];
+			}
+			socket_str[cnt++]='%';
+			socket_str[cnt]='\0';
+			printf("%s\n",&socket_str);
+            nbytes = strlen(socket_str);
+            write(cli_sock, socket_str, nbytes);
+			sleep(4);
+        }
+    } else if (pid > 0){    
+        while(1){
+            if((nbytes = read(cli_sock, socket_str, MAXLINE)) < 0){
+                perror("read() error\n");
+                exit(0);
+            }
+            /*fputs(buf,stdout);
+            printf("%s\n", socket_str);
+            if(strncmp(buf, "exit",4) == 0)
+                exit(0);*/
+        }
+    }
+    
+    
+	
+	/*int led_state=0;
+	int dht11_dat[5] = {0, };
+	while(1){
+		read(fd_temp, &dht11_dat, sizeof(dht11_dat));
+		printf("humidity = %d.%d %% Temperature = %d.%d *C \n", dht11_dat[0], dht11_dat[1], dht11_dat[2], dht11_dat[3]) ;
+		
+		int temp=dht11_dat[2];
+		if(temp>29){
+			int data=400;
+			int cnt=0;
+			printf("Moter on!!\n");
+			while(cnt<5){
+				write(fd_moter, &data, sizeof(data));
+				cnt++;
+			}
+			printf("Moter off!!\n");
+		}
+		
+		if(temp<20){
+			led_state = 1;
+			printf("LED on!!\n");
+			write(fd_led, &led_state, 4);
+		}
+		else{
+			led_state = 0;
+			printf("LED off!!\n");
+			write(fd_led, &led_state, 4);
+		}
+		
+		sleep(2);
+	}*/
+	
+	close(fd_temp);
+	close(fd_led);
+	close(fd_moter);
+	close(cli_sock);
+	
+	return 0;
+}
diff --git a/led/.led_dev.ko.cmd b/led/.led_dev.ko.cmd
new file mode 100644
index 0000000..94f5eca
--- /dev/null
+++ b/led/.led_dev.ko.cmd
@@ -0,0 +1 @@
+cmd_/home/pi/Desktop/project/led/led_dev.ko := ld -r  -EL -T ./scripts/module-common.lds -T ./arch/arm/kernel/module.lds  --build-id  -o /home/pi/Desktop/project/led/led_dev.ko /home/pi/Desktop/project/led/led_dev.o /home/pi/Desktop/project/led/led_dev.mod.o ;  true
diff --git a/led/.led_dev.mod.o.cmd b/led/.led_dev.mod.o.cmd
new file mode 100644
index 0000000..8102bdd
--- /dev/null
+++ b/led/.led_dev.mod.o.cmd
@@ -0,0 +1,499 @@
+cmd_/home/pi/Desktop/project/led/led_dev.mod.o := gcc -Wp,-MD,/home/pi/Desktop/project/led/.led_dev.mod.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DKBUILD_BASENAME='"led_dev.mod"' -DKBUILD_MODNAME='"led_dev"' -DMODULE  -c -o /home/pi/Desktop/project/led/led_dev.mod.o /home/pi/Desktop/project/led/led_dev.mod.c
+
+source_/home/pi/Desktop/project/led/led_dev.mod.o := /home/pi/Desktop/project/led/led_dev.mod.c
+
+deps_/home/pi/Desktop/project/led/led_dev.mod.o := \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/retpoline.h) \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/build-salt.h \
+    $(wildcard include/config/build/salt.h) \
+  include/linux/elfnote.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/arm/lpae.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/module.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/unused/symbols.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/init.h \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/vermagic.h \
+  include/generated/utsrelease.h \
+
+/home/pi/Desktop/project/led/led_dev.mod.o: $(deps_/home/pi/Desktop/project/led/led_dev.mod.o)
+
+$(deps_/home/pi/Desktop/project/led/led_dev.mod.o):
diff --git a/led/.led_dev.o.cmd b/led/.led_dev.o.cmd
new file mode 100644
index 0000000..c8bb88d
--- /dev/null
+++ b/led/.led_dev.o.cmd
@@ -0,0 +1,720 @@
+cmd_/home/pi/Desktop/project/led/led_dev.o := gcc -Wp,-MD,/home/pi/Desktop/project/led/.led_dev.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DMODULE  -DKBUILD_BASENAME='"led_dev"' -DKBUILD_MODNAME='"led_dev"' -c -o /home/pi/Desktop/project/led/.tmp_led_dev.o /home/pi/Desktop/project/led/led_dev.c
+
+source_/home/pi/Desktop/project/led/led_dev.o := /home/pi/Desktop/project/led/led_dev.c
+
+deps_/home/pi/Desktop/project/led/led_dev.o := \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/retpoline.h) \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/init.h \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+    $(wildcard include/config/unused/symbols.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+    $(wildcard include/config/arm/lpae.h) \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/module.h \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/fs.h \
+    $(wildcard include/config/fs/posix/acl.h) \
+    $(wildcard include/config/security.h) \
+    $(wildcard include/config/cgroup/writeback.h) \
+    $(wildcard include/config/ima.h) \
+    $(wildcard include/config/fsnotify.h) \
+    $(wildcard include/config/fs/encryption.h) \
+    $(wildcard include/config/epoll.h) \
+    $(wildcard include/config/file/locking.h) \
+    $(wildcard include/config/quota.h) \
+    $(wildcard include/config/fs/dax.h) \
+    $(wildcard include/config/block.h) \
+    $(wildcard include/config/mandatory/file/locking.h) \
+    $(wildcard include/config/migration.h) \
+  include/linux/wait_bit.h \
+  include/linux/kdev_t.h \
+  include/uapi/linux/kdev_t.h \
+  include/linux/dcache.h \
+  include/linux/rculist.h \
+  include/linux/rculist_bl.h \
+  include/linux/list_bl.h \
+  include/linux/bit_spinlock.h \
+  include/linux/lockref.h \
+    $(wildcard include/config/arch/use/cmpxchg/lockref.h) \
+  include/linux/stringhash.h \
+    $(wildcard include/config/dcache/word/access.h) \
+  include/linux/hash.h \
+    $(wildcard include/config/have/arch/hash.h) \
+  include/linux/path.h \
+  include/linux/list_lru.h \
+    $(wildcard include/config/memcg/kmem.h) \
+  include/linux/shrinker.h \
+  include/linux/xarray.h \
+  include/linux/pid.h \
+  include/linux/mm_types.h \
+    $(wildcard include/config/have/aligned/struct/page.h) \
+    $(wildcard include/config/userfaultfd.h) \
+    $(wildcard include/config/have/arch/compat/mmap/bases.h) \
+    $(wildcard include/config/membarrier.h) \
+    $(wildcard include/config/aio.h) \
+    $(wildcard include/config/mmu/notifier.h) \
+    $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \
+    $(wildcard include/config/hmm.h) \
+  include/linux/mm_types_task.h \
+    $(wildcard include/config/split/ptlock/cpus.h) \
+    $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \
+  include/linux/auxvec.h \
+  include/uapi/linux/auxvec.h \
+  include/linux/uprobes.h \
+    $(wildcard include/config/uprobes.h) \
+  arch/arm/include/asm/mmu.h \
+    $(wildcard include/config/cpu/has/asid.h) \
+  include/linux/capability.h \
+  include/uapi/linux/capability.h \
+  include/linux/semaphore.h \
+  include/linux/fcntl.h \
+  include/uapi/linux/fcntl.h \
+  arch/arm/include/uapi/asm/fcntl.h \
+  include/uapi/asm-generic/fcntl.h \
+  include/uapi/linux/fiemap.h \
+  include/linux/migrate_mode.h \
+  include/linux/percpu-rwsem.h \
+  include/linux/rcuwait.h \
+  include/linux/rcu_sync.h \
+  include/linux/delayed_call.h \
+  include/linux/uuid.h \
+  include/uapi/linux/uuid.h \
+  include/linux/errseq.h \
+  include/linux/ioprio.h \
+  include/linux/sched.h \
+    $(wildcard include/config/virt/cpu/accounting/native.h) \
+    $(wildcard include/config/sched/info.h) \
+    $(wildcard include/config/schedstats.h) \
+    $(wildcard include/config/fair/group/sched.h) \
+    $(wildcard include/config/rt/group/sched.h) \
+    $(wildcard include/config/cgroup/sched.h) \
+    $(wildcard include/config/blk/dev/io/trace.h) \
+    $(wildcard include/config/compat/brk.h) \
+    $(wildcard include/config/cgroups.h) \
+    $(wildcard include/config/blk/cgroup.h) \
+    $(wildcard include/config/stackprotector.h) \
+    $(wildcard include/config/arch/has/scaled/cputime.h) \
+    $(wildcard include/config/virt/cpu/accounting/gen.h) \
+    $(wildcard include/config/posix/timers.h) \
+    $(wildcard include/config/sysvipc.h) \
+    $(wildcard include/config/detect/hung/task.h) \
+    $(wildcard include/config/auditsyscall.h) \
+    $(wildcard include/config/rt/mutexes.h) \
+    $(wildcard include/config/ubsan.h) \
+    $(wildcard include/config/task/xacct.h) \
+    $(wildcard include/config/cpusets.h) \
+    $(wildcard include/config/intel/rdt.h) \
+    $(wildcard include/config/futex.h) \
+    $(wildcard include/config/compat.h) \
+    $(wildcard include/config/perf/events.h) \
+    $(wildcard include/config/rseq.h) \
+    $(wildcard include/config/task/delay/acct.h) \
+    $(wildcard include/config/fault/injection.h) \
+    $(wildcard include/config/latencytop.h) \
+    $(wildcard include/config/function/graph/tracer.h) \
+    $(wildcard include/config/kcov.h) \
+    $(wildcard include/config/bcache.h) \
+    $(wildcard include/config/vmap/stack.h) \
+    $(wildcard include/config/arch/task/struct/on/stack.h) \
+    $(wildcard include/config/debug/rseq.h) \
+  include/uapi/linux/sched.h \
+  include/linux/sem.h \
+  include/uapi/linux/sem.h \
+  include/linux/ipc.h \
+  include/linux/rhashtable-types.h \
+  include/uapi/linux/ipc.h \
+  arch/arm/include/generated/uapi/asm/ipcbuf.h \
+  include/uapi/asm-generic/ipcbuf.h \
+  arch/arm/include/generated/uapi/asm/sembuf.h \
+  include/uapi/asm-generic/sembuf.h \
+  include/linux/shm.h \
+  include/uapi/linux/shm.h \
+  include/uapi/asm-generic/hugetlb_encode.h \
+  arch/arm/include/generated/uapi/asm/shmbuf.h \
+  include/uapi/asm-generic/shmbuf.h \
+  arch/arm/include/asm/shmparam.h \
+  include/linux/kcov.h \
+  include/uapi/linux/kcov.h \
+  include/linux/plist.h \
+    $(wildcard include/config/debug/pi/list.h) \
+  include/linux/hrtimer.h \
+    $(wildcard include/config/high/res/timers.h) \
+    $(wildcard include/config/time/low/res.h) \
+    $(wildcard include/config/timerfd.h) \
+  include/linux/timerqueue.h \
+  include/linux/seccomp.h \
+    $(wildcard include/config/seccomp.h) \
+    $(wildcard include/config/have/arch/seccomp/filter.h) \
+    $(wildcard include/config/seccomp/filter.h) \
+    $(wildcard include/config/checkpoint/restore.h) \
+  include/uapi/linux/seccomp.h \
+  arch/arm/include/generated/asm/seccomp.h \
+  include/asm-generic/seccomp.h \
+  include/uapi/linux/unistd.h \
+  arch/arm/include/asm/unistd.h \
+    $(wildcard include/config/oabi/compat.h) \
+  arch/arm/include/uapi/asm/unistd.h \
+  arch/arm/include/generated/uapi/asm/unistd-eabi.h \
+  arch/arm/include/generated/uapi/asm/unistd-common.h \
+  arch/arm/include/generated/asm/unistd-nr.h \
+  include/linux/resource.h \
+  include/uapi/linux/resource.h \
+  arch/arm/include/generated/uapi/asm/resource.h \
+  include/asm-generic/resource.h \
+  include/uapi/asm-generic/resource.h \
+  include/linux/latencytop.h \
+  include/linux/sched/prio.h \
+  include/linux/signal_types.h \
+    $(wildcard include/config/old/sigaction.h) \
+  include/uapi/linux/signal.h \
+  arch/arm/include/asm/signal.h \
+  arch/arm/include/uapi/asm/signal.h \
+  include/uapi/asm-generic/signal-defs.h \
+  arch/arm/include/uapi/asm/sigcontext.h \
+  arch/arm/include/generated/uapi/asm/siginfo.h \
+  include/uapi/asm-generic/siginfo.h \
+  include/linux/task_io_accounting.h \
+    $(wildcard include/config/task/io/accounting.h) \
+  include/uapi/linux/rseq.h \
+  include/linux/sched/rt.h \
+  include/linux/iocontext.h \
+  include/uapi/linux/fs.h \
+  include/uapi/linux/limits.h \
+  include/uapi/linux/ioctl.h \
+  arch/arm/include/generated/uapi/asm/ioctl.h \
+  include/asm-generic/ioctl.h \
+  include/uapi/asm-generic/ioctl.h \
+  include/linux/quota.h \
+    $(wildcard include/config/quota/netlink/interface.h) \
+  include/linux/percpu_counter.h \
+  include/uapi/linux/dqblk_xfs.h \
+  include/linux/dqblk_v1.h \
+  include/linux/dqblk_v2.h \
+  include/linux/dqblk_qtree.h \
+  include/linux/projid.h \
+  include/uapi/linux/quota.h \
+  include/linux/nfs_fs_i.h \
+  include/linux/uaccess.h \
+  arch/arm/include/asm/uaccess.h \
+    $(wildcard include/config/cpu/sw/domain/pan.h) \
+    $(wildcard include/config/cpu/use/domains.h) \
+    $(wildcard include/config/uaccess/with/memcpy.h) \
+  arch/arm/include/asm/domain.h \
+    $(wildcard include/config/io/36.h) \
+    $(wildcard include/config/cpu/cp15/mmu.h) \
+  arch/arm/include/generated/asm/extable.h \
+  include/asm-generic/extable.h \
+  include/linux/slab.h \
+    $(wildcard include/config/debug/slab.h) \
+    $(wildcard include/config/failslab.h) \
+    $(wildcard include/config/have/hardened/usercopy/allocator.h) \
+    $(wildcard include/config/slab.h) \
+    $(wildcard include/config/slub.h) \
+    $(wildcard include/config/slob.h) \
+  include/linux/overflow.h \
+  include/linux/kasan.h \
+  include/linux/delay.h \
+  arch/arm/include/asm/delay.h \
+  arch/arm/include/asm/mach/map.h \
+    $(wildcard include/config/debug/ll.h) \
+  arch/arm/include/asm/io.h \
+    $(wildcard include/config/pci.h) \
+    $(wildcard include/config/need/mach/io/h.h) \
+    $(wildcard include/config/pcmcia/soc/common.h) \
+    $(wildcard include/config/isa.h) \
+    $(wildcard include/config/pccard.h) \
+  include/asm-generic/pci_iomap.h \
+    $(wildcard include/config/no/generic/pci/ioport/map.h) \
+    $(wildcard include/config/generic/pci/iomap.h) \
+  include/xen/xen.h \
+    $(wildcard include/config/xen.h) \
+    $(wildcard include/config/xen/pvh.h) \
+    $(wildcard include/config/xen/dom0.h) \
+  include/asm-generic/io.h \
+    $(wildcard include/config/generic/iomap.h) \
+    $(wildcard include/config/has/ioport/map.h) \
+    $(wildcard include/config/virt/to/bus.h) \
+  include/linux/logic_pio.h \
+    $(wildcard include/config/indirect/pio.h) \
+  include/linux/fwnode.h \
+  include/linux/vmalloc.h \
+
+/home/pi/Desktop/project/led/led_dev.o: $(deps_/home/pi/Desktop/project/led/led_dev.o)
+
+$(deps_/home/pi/Desktop/project/led/led_dev.o):
diff --git a/led/.tmp_versions/led_dev.mod b/led/.tmp_versions/led_dev.mod
new file mode 100644
index 0000000..58ec20c
--- /dev/null
+++ b/led/.tmp_versions/led_dev.mod
@@ -0,0 +1,3 @@
+/home/pi/Desktop/project/led/led_dev.ko
+/home/pi/Desktop/project/led/led_dev.o
+
diff --git a/led/Makefile b/led/Makefile
new file mode 100644
index 0000000..6c79c73
--- /dev/null
+++ b/led/Makefile
@@ -0,0 +1,11 @@
+KERNEL_VER := $(shell uname -r)
+KERNEL_DIR = '/lib/modules/$(KERNEL_VER)/build'
+
+obj-m := led_dev.o
+
+PWD := $(shell pwd)
+
+all:
+	make -C $(KERNEL_DIR) M=$(PWD) modules
+clean:
+	make -C $(KERNEL_DIR) M=$(PWD) clean
diff --git a/led/Module.symvers b/led/Module.symvers
new file mode 100644
index 0000000..e69de29
diff --git a/led/led_dev.c b/led/led_dev.c
new file mode 100644
index 0000000..350d56d
--- /dev/null
+++ b/led/led_dev.c
@@ -0,0 +1,94 @@
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/fs.h>
+#include <linux/uaccess.h>
+#include <linux/slab.h>
+#include <linux/ktime.h>
+#include <linux/timer.h>
+#include <linux/delay.h>
+
+#include <asm/mach/map.h>
+#include <asm/io.h>
+#include <asm/uaccess.h>
+
+
+#define LED_MAJOR_NUMBER 504
+#define LED_MINOR_NUMBER 104
+#define LED_DEV_NAME "led"
+
+#define GPIO_BASE_ADDR 0x3F200000
+#define GPFSEL0 0x04
+#define GPSET0 0x1C
+#define GPCLR0 0x28
+#define GPLEV0 0x34
+
+static void __iomem *gpio_base;
+volatile unsigned int *gpsel1;
+volatile unsigned int *gpset1;
+volatile unsigned int *gpclr1;
+volatile unsigned int *gplev1;
+
+int led_open(struct inode *inode, struct file *filp){
+   printk(KERN_ALERT "led driver open!!\n");
+   
+   gpio_base = ioremap(GPIO_BASE_ADDR, 0x60);
+   gpsel1 = (volatile unsigned int *)(gpio_base + GPFSEL0);
+   gpset1 = (volatile unsigned int *)(gpio_base + GPSET0);
+   gpclr1 = (volatile unsigned int *)(gpio_base + GPCLR0);
+   gplev1 = (volatile unsigned int *)(gpio_base + GPLEV0);
+   
+   *gpsel1 |= (1<<6);
+   return 0;
+}
+
+int led_release(struct inode *inode, struct file *filp){
+   printk(KERN_ALERT "led driver closed!!\n");
+   iounmap((void *)gpio_base);
+   return 0;
+}
+
+ssize_t led_write(struct file *filp, const char *buf, size_t size, loff_t *f_pos){
+   int led_onoff = 0;
+	
+   copy_from_user(&led_onoff, buf, 4);
+	
+   if(led_onoff == 1){
+      printk(KERN_ALERT "LED On!!\n");
+      *gpset1 |= (1<<12);
+   }
+   else{
+      printk(KERN_ALERT "LED Off!!\n");
+      *gpclr1 |= (1<<12);
+   }
+   
+   return size;
+}
+
+static struct file_operations led_fops={
+   .owner = THIS_MODULE,
+   .write = led_write,
+   .open = led_open,
+   .release = led_release
+};
+
+int __init led_init(void){
+   if(register_chrdev(LED_MAJOR_NUMBER, LED_DEV_NAME, &led_fops) < 0)
+      printk(KERN_ALERT "led driver initialization fail\n");
+   else
+      printk(KERN_ALERT "led driver initialization success\n");
+   
+   return 0;
+}
+
+void __exit led_exit(void){
+   unregister_chrdev(LED_MAJOR_NUMBER, LED_DEV_NAME);
+   printk(KERN_ALERT "led driver exit done\n");
+}
+
+module_init(led_init);
+module_exit(led_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Damin");
+MODULE_DESCRIPTION("des");
diff --git a/led/led_dev.ko b/led/led_dev.ko
new file mode 100644
index 0000000000000000000000000000000000000000..5f278d688b0fac1f87f77bfe476932d868072004
GIT binary patch
literal 7468
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

literal 0
HcmV?d00001

diff --git a/led/led_dev.mod.c b/led/led_dev.mod.c
new file mode 100644
index 0000000..974cf69
--- /dev/null
+++ b/led/led_dev.mod.c
@@ -0,0 +1,48 @@
+#include <linux/build-salt.h>
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+BUILD_SALT;
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+MODULE_INFO(name, KBUILD_MODNAME);
+
+__visible struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+	.name = KBUILD_MODNAME,
+	.init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+	.exit = cleanup_module,
+#endif
+	.arch = MODULE_ARCH_INIT,
+};
+
+#ifdef CONFIG_RETPOLINE
+MODULE_INFO(retpoline, "Y");
+#endif
+
+static const struct modversion_info ____versions[]
+__used
+__attribute__((section("__versions"))) = {
+	{ 0xad1a7def, "module_layout" },
+	{ 0x6bc3fbc0, "__unregister_chrdev" },
+	{ 0xcfc78319, "__register_chrdev" },
+	{ 0xdb7305a1, "__stack_chk_fail" },
+	{ 0x5f754e5a, "memset" },
+	{ 0x28cc25db, "arm_copy_from_user" },
+	{ 0x8f678b07, "__stack_chk_guard" },
+	{ 0xedc03953, "iounmap" },
+	{ 0x2e5810c6, "__aeabi_unwind_cpp_pr1" },
+	{ 0xe97c4103, "ioremap" },
+	{ 0x7c32d0f0, "printk" },
+	{ 0xb1ad28e0, "__gnu_mcount_nc" },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
+
+MODULE_INFO(srcversion, "37BBFFDFC3D20A8435D8011");
diff --git a/led/led_dev.mod.o b/led/led_dev.mod.o
new file mode 100644
index 0000000000000000000000000000000000000000..4aa786af55d2d3fb3570876e5fc9b6d2abe8c790
GIT binary patch
literal 2968
zcmb<-^>JflWMqH=Mg|QA1doBiffFplY67M-82B0Zz$|P;PHIYgN@^K4sZp`f5WpG&
z#YM?wsYS(^`FXa+=1xv-ZZ2-l#x6z%jus}yrY;r+hK39bDX9gic`3!V40(yUskX3G
zR+d_no0y)NY-^%tXsKsuu3KiVtq|-RppcuN5?`8^lb@IZVnR(XR&WgREi+drFe<Z9
zU|?WiV_<-!b4CURpUk|{3aIPe*GjF;%}*)KNsZ4*tjsShfr=AL9r%4XJ3hWNuP8M=
zv$!O+C_Xu(h?G1b*?jzbd_1|j85kC_7T=DKFD^+;&W=yc$c|4-%*-Ly?I3kgex>ob
zskz0eq<S2rnSp`fw(1#;#G>5z<otrl__U(@-1ySs)FP-P5fpoOdOx!J(@PVJQi#w8
zQxa@>;B97pX<lw(0ZfP_`j|k3UVMCFYGP7md}&^JW?o8sazR0SL6ISG#xOh9yv)om
zN+s9+4;PGT3W_rGO0tQw4_(y*jkO!&<J0p><8zbqOY=(N^ODh(;ODzLJ6kDe1SJ+1
zBxNS%DOl(k>lx^pX%`h_8frp#42}j23=H5PVqjEbU|?W1*L7rI<6?K@VB}=tViIB!
zVH9N)XO>`;WRzl(V^Tt{PhgfKi?J|#{0|cc(aeyX31WgVGXoQth7rsR%rGXHW@cbv
z;0Lo{1PhD-rkNSo(B#<|gupTk49ehgfQ><$fq_AVfq?;3-7zw-G1xFLFz7NcFz`a<
z{TUb-tQZ);;vjjbb}+@vz>a1<J3|^+hJir>te+jqgHX&29BAq}81f)e3?Q#DGH}3n
zV49hM3rxcZX0R(^JdhS{hH5C+fr)`Zkb#Av6Uqls0t^fcQ$Y+U2Jso7#i(9xeu`c)
zgGvfRe0->%XJDvnyr)Y%qEt3CVu+827KqSt7)2$hNH#P?5rP%Wh6W7rdHE%&@n#J1
z@$vDnf|wybz9b{F7-}d(W?p6qjGdg5nwVEw0OQ_ZU|?VpXJBAqVqjnb1*BeaWo}7g
z5`$iGNfCt3fU!zaD@qvjQW8rN8T68hiy8EaQgigu^Gfw{GV`+Y^O95bkSzuIIx{aV
zpFt1gKs`tWfaFBI<ow*+)Vva?yt`khF1Sc#&~ps()k`cXDauSLElDkg1}G7fG&mhV
z>K%}BNP7yzf?!yFP=u<3rEpy8)EOASsf3U^P*w$*4O8d9z`y`XBM@5|7(jdwTL+r<
zVf;B93=E)j!o$G80Lo1u3`&(=Q1`)dWCIfe19FQGqz+_WFarYvDAmK%{a}LR1&|yF
z!_>v2nI`~pC<ucTLG1=Hv!Log{sHj?*dX~8#0FuIA3+!tB_J9k2ErzwiXOy(VwhYr
z11R4xz$*!mI^-fArVd2I`~Wf{gN=b<0wbhc5QDl86i%EF^FT_#_y;=!!xAtHLV(Nx
Tu>{f7t>Iu`m<*DDVwgGrV$2tq

literal 0
HcmV?d00001

diff --git a/led/led_dev.o b/led/led_dev.o
new file mode 100644
index 0000000000000000000000000000000000000000..4dba324734411b10404ca1436a75072e089007e4
GIT binary patch
literal 6696
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
XJrfh8ZOz0AX%~QKP`iyulz{;Nou-md

literal 0
HcmV?d00001

diff --git a/led/modules.order b/led/modules.order
new file mode 100644
index 0000000..3dbe087
--- /dev/null
+++ b/led/modules.order
@@ -0,0 +1 @@
+kernel//home/pi/Desktop/project/led/led_dev.ko
diff --git a/led/sc.sh b/led/sc.sh
new file mode 100755
index 0000000..eb85236
--- /dev/null
+++ b/led/sc.sh
@@ -0,0 +1,4 @@
+make clean
+make
+sudo rmmod led_dev
+sudo insmod led_dev.ko
diff --git a/moter/.moter_dev.ko.cmd b/moter/.moter_dev.ko.cmd
new file mode 100644
index 0000000..bdb5e53
--- /dev/null
+++ b/moter/.moter_dev.ko.cmd
@@ -0,0 +1 @@
+cmd_/home/pi/Desktop/project/moter/moter_dev.ko := ld -r  -EL -T ./scripts/module-common.lds -T ./arch/arm/kernel/module.lds  --build-id  -o /home/pi/Desktop/project/moter/moter_dev.ko /home/pi/Desktop/project/moter/moter_dev.o /home/pi/Desktop/project/moter/moter_dev.mod.o ;  true
diff --git a/moter/.moter_dev.mod.o.cmd b/moter/.moter_dev.mod.o.cmd
new file mode 100644
index 0000000..42e6e59
--- /dev/null
+++ b/moter/.moter_dev.mod.o.cmd
@@ -0,0 +1,499 @@
+cmd_/home/pi/Desktop/project/moter/moter_dev.mod.o := gcc -Wp,-MD,/home/pi/Desktop/project/moter/.moter_dev.mod.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DKBUILD_BASENAME='"moter_dev.mod"' -DKBUILD_MODNAME='"moter_dev"' -DMODULE  -c -o /home/pi/Desktop/project/moter/moter_dev.mod.o /home/pi/Desktop/project/moter/moter_dev.mod.c
+
+source_/home/pi/Desktop/project/moter/moter_dev.mod.o := /home/pi/Desktop/project/moter/moter_dev.mod.c
+
+deps_/home/pi/Desktop/project/moter/moter_dev.mod.o := \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/retpoline.h) \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/build-salt.h \
+    $(wildcard include/config/build/salt.h) \
+  include/linux/elfnote.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/arm/lpae.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/module.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/unused/symbols.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/init.h \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/vermagic.h \
+  include/generated/utsrelease.h \
+
+/home/pi/Desktop/project/moter/moter_dev.mod.o: $(deps_/home/pi/Desktop/project/moter/moter_dev.mod.o)
+
+$(deps_/home/pi/Desktop/project/moter/moter_dev.mod.o):
diff --git a/moter/.moter_dev.o.cmd b/moter/.moter_dev.o.cmd
new file mode 100644
index 0000000..0064d5f
--- /dev/null
+++ b/moter/.moter_dev.o.cmd
@@ -0,0 +1,720 @@
+cmd_/home/pi/Desktop/project/moter/moter_dev.o := gcc -Wp,-MD,/home/pi/Desktop/project/moter/.moter_dev.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DMODULE  -DKBUILD_BASENAME='"moter_dev"' -DKBUILD_MODNAME='"moter_dev"' -c -o /home/pi/Desktop/project/moter/.tmp_moter_dev.o /home/pi/Desktop/project/moter/moter_dev.c
+
+source_/home/pi/Desktop/project/moter/moter_dev.o := /home/pi/Desktop/project/moter/moter_dev.c
+
+deps_/home/pi/Desktop/project/moter/moter_dev.o := \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/retpoline.h) \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/init.h \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+    $(wildcard include/config/unused/symbols.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+    $(wildcard include/config/arm/lpae.h) \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/module.h \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/fs.h \
+    $(wildcard include/config/fs/posix/acl.h) \
+    $(wildcard include/config/security.h) \
+    $(wildcard include/config/cgroup/writeback.h) \
+    $(wildcard include/config/ima.h) \
+    $(wildcard include/config/fsnotify.h) \
+    $(wildcard include/config/fs/encryption.h) \
+    $(wildcard include/config/epoll.h) \
+    $(wildcard include/config/file/locking.h) \
+    $(wildcard include/config/quota.h) \
+    $(wildcard include/config/fs/dax.h) \
+    $(wildcard include/config/block.h) \
+    $(wildcard include/config/mandatory/file/locking.h) \
+    $(wildcard include/config/migration.h) \
+  include/linux/wait_bit.h \
+  include/linux/kdev_t.h \
+  include/uapi/linux/kdev_t.h \
+  include/linux/dcache.h \
+  include/linux/rculist.h \
+  include/linux/rculist_bl.h \
+  include/linux/list_bl.h \
+  include/linux/bit_spinlock.h \
+  include/linux/lockref.h \
+    $(wildcard include/config/arch/use/cmpxchg/lockref.h) \
+  include/linux/stringhash.h \
+    $(wildcard include/config/dcache/word/access.h) \
+  include/linux/hash.h \
+    $(wildcard include/config/have/arch/hash.h) \
+  include/linux/path.h \
+  include/linux/list_lru.h \
+    $(wildcard include/config/memcg/kmem.h) \
+  include/linux/shrinker.h \
+  include/linux/xarray.h \
+  include/linux/pid.h \
+  include/linux/mm_types.h \
+    $(wildcard include/config/have/aligned/struct/page.h) \
+    $(wildcard include/config/userfaultfd.h) \
+    $(wildcard include/config/have/arch/compat/mmap/bases.h) \
+    $(wildcard include/config/membarrier.h) \
+    $(wildcard include/config/aio.h) \
+    $(wildcard include/config/mmu/notifier.h) \
+    $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \
+    $(wildcard include/config/hmm.h) \
+  include/linux/mm_types_task.h \
+    $(wildcard include/config/split/ptlock/cpus.h) \
+    $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \
+  include/linux/auxvec.h \
+  include/uapi/linux/auxvec.h \
+  include/linux/uprobes.h \
+    $(wildcard include/config/uprobes.h) \
+  arch/arm/include/asm/mmu.h \
+    $(wildcard include/config/cpu/has/asid.h) \
+  include/linux/capability.h \
+  include/uapi/linux/capability.h \
+  include/linux/semaphore.h \
+  include/linux/fcntl.h \
+  include/uapi/linux/fcntl.h \
+  arch/arm/include/uapi/asm/fcntl.h \
+  include/uapi/asm-generic/fcntl.h \
+  include/uapi/linux/fiemap.h \
+  include/linux/migrate_mode.h \
+  include/linux/percpu-rwsem.h \
+  include/linux/rcuwait.h \
+  include/linux/rcu_sync.h \
+  include/linux/delayed_call.h \
+  include/linux/uuid.h \
+  include/uapi/linux/uuid.h \
+  include/linux/errseq.h \
+  include/linux/ioprio.h \
+  include/linux/sched.h \
+    $(wildcard include/config/virt/cpu/accounting/native.h) \
+    $(wildcard include/config/sched/info.h) \
+    $(wildcard include/config/schedstats.h) \
+    $(wildcard include/config/fair/group/sched.h) \
+    $(wildcard include/config/rt/group/sched.h) \
+    $(wildcard include/config/cgroup/sched.h) \
+    $(wildcard include/config/blk/dev/io/trace.h) \
+    $(wildcard include/config/compat/brk.h) \
+    $(wildcard include/config/cgroups.h) \
+    $(wildcard include/config/blk/cgroup.h) \
+    $(wildcard include/config/stackprotector.h) \
+    $(wildcard include/config/arch/has/scaled/cputime.h) \
+    $(wildcard include/config/virt/cpu/accounting/gen.h) \
+    $(wildcard include/config/posix/timers.h) \
+    $(wildcard include/config/sysvipc.h) \
+    $(wildcard include/config/detect/hung/task.h) \
+    $(wildcard include/config/auditsyscall.h) \
+    $(wildcard include/config/rt/mutexes.h) \
+    $(wildcard include/config/ubsan.h) \
+    $(wildcard include/config/task/xacct.h) \
+    $(wildcard include/config/cpusets.h) \
+    $(wildcard include/config/intel/rdt.h) \
+    $(wildcard include/config/futex.h) \
+    $(wildcard include/config/compat.h) \
+    $(wildcard include/config/perf/events.h) \
+    $(wildcard include/config/rseq.h) \
+    $(wildcard include/config/task/delay/acct.h) \
+    $(wildcard include/config/fault/injection.h) \
+    $(wildcard include/config/latencytop.h) \
+    $(wildcard include/config/function/graph/tracer.h) \
+    $(wildcard include/config/kcov.h) \
+    $(wildcard include/config/bcache.h) \
+    $(wildcard include/config/vmap/stack.h) \
+    $(wildcard include/config/arch/task/struct/on/stack.h) \
+    $(wildcard include/config/debug/rseq.h) \
+  include/uapi/linux/sched.h \
+  include/linux/sem.h \
+  include/uapi/linux/sem.h \
+  include/linux/ipc.h \
+  include/linux/rhashtable-types.h \
+  include/uapi/linux/ipc.h \
+  arch/arm/include/generated/uapi/asm/ipcbuf.h \
+  include/uapi/asm-generic/ipcbuf.h \
+  arch/arm/include/generated/uapi/asm/sembuf.h \
+  include/uapi/asm-generic/sembuf.h \
+  include/linux/shm.h \
+  include/uapi/linux/shm.h \
+  include/uapi/asm-generic/hugetlb_encode.h \
+  arch/arm/include/generated/uapi/asm/shmbuf.h \
+  include/uapi/asm-generic/shmbuf.h \
+  arch/arm/include/asm/shmparam.h \
+  include/linux/kcov.h \
+  include/uapi/linux/kcov.h \
+  include/linux/plist.h \
+    $(wildcard include/config/debug/pi/list.h) \
+  include/linux/hrtimer.h \
+    $(wildcard include/config/high/res/timers.h) \
+    $(wildcard include/config/time/low/res.h) \
+    $(wildcard include/config/timerfd.h) \
+  include/linux/timerqueue.h \
+  include/linux/seccomp.h \
+    $(wildcard include/config/seccomp.h) \
+    $(wildcard include/config/have/arch/seccomp/filter.h) \
+    $(wildcard include/config/seccomp/filter.h) \
+    $(wildcard include/config/checkpoint/restore.h) \
+  include/uapi/linux/seccomp.h \
+  arch/arm/include/generated/asm/seccomp.h \
+  include/asm-generic/seccomp.h \
+  include/uapi/linux/unistd.h \
+  arch/arm/include/asm/unistd.h \
+    $(wildcard include/config/oabi/compat.h) \
+  arch/arm/include/uapi/asm/unistd.h \
+  arch/arm/include/generated/uapi/asm/unistd-eabi.h \
+  arch/arm/include/generated/uapi/asm/unistd-common.h \
+  arch/arm/include/generated/asm/unistd-nr.h \
+  include/linux/resource.h \
+  include/uapi/linux/resource.h \
+  arch/arm/include/generated/uapi/asm/resource.h \
+  include/asm-generic/resource.h \
+  include/uapi/asm-generic/resource.h \
+  include/linux/latencytop.h \
+  include/linux/sched/prio.h \
+  include/linux/signal_types.h \
+    $(wildcard include/config/old/sigaction.h) \
+  include/uapi/linux/signal.h \
+  arch/arm/include/asm/signal.h \
+  arch/arm/include/uapi/asm/signal.h \
+  include/uapi/asm-generic/signal-defs.h \
+  arch/arm/include/uapi/asm/sigcontext.h \
+  arch/arm/include/generated/uapi/asm/siginfo.h \
+  include/uapi/asm-generic/siginfo.h \
+  include/linux/task_io_accounting.h \
+    $(wildcard include/config/task/io/accounting.h) \
+  include/uapi/linux/rseq.h \
+  include/linux/sched/rt.h \
+  include/linux/iocontext.h \
+  include/uapi/linux/fs.h \
+  include/uapi/linux/limits.h \
+  include/uapi/linux/ioctl.h \
+  arch/arm/include/generated/uapi/asm/ioctl.h \
+  include/asm-generic/ioctl.h \
+  include/uapi/asm-generic/ioctl.h \
+  include/linux/quota.h \
+    $(wildcard include/config/quota/netlink/interface.h) \
+  include/linux/percpu_counter.h \
+  include/uapi/linux/dqblk_xfs.h \
+  include/linux/dqblk_v1.h \
+  include/linux/dqblk_v2.h \
+  include/linux/dqblk_qtree.h \
+  include/linux/projid.h \
+  include/uapi/linux/quota.h \
+  include/linux/nfs_fs_i.h \
+  include/linux/uaccess.h \
+  arch/arm/include/asm/uaccess.h \
+    $(wildcard include/config/cpu/sw/domain/pan.h) \
+    $(wildcard include/config/cpu/use/domains.h) \
+    $(wildcard include/config/uaccess/with/memcpy.h) \
+  arch/arm/include/asm/domain.h \
+    $(wildcard include/config/io/36.h) \
+    $(wildcard include/config/cpu/cp15/mmu.h) \
+  arch/arm/include/generated/asm/extable.h \
+  include/asm-generic/extable.h \
+  include/linux/slab.h \
+    $(wildcard include/config/debug/slab.h) \
+    $(wildcard include/config/failslab.h) \
+    $(wildcard include/config/have/hardened/usercopy/allocator.h) \
+    $(wildcard include/config/slab.h) \
+    $(wildcard include/config/slub.h) \
+    $(wildcard include/config/slob.h) \
+  include/linux/overflow.h \
+  include/linux/kasan.h \
+  include/linux/delay.h \
+  arch/arm/include/asm/delay.h \
+  arch/arm/include/asm/mach/map.h \
+    $(wildcard include/config/debug/ll.h) \
+  arch/arm/include/asm/io.h \
+    $(wildcard include/config/pci.h) \
+    $(wildcard include/config/need/mach/io/h.h) \
+    $(wildcard include/config/pcmcia/soc/common.h) \
+    $(wildcard include/config/isa.h) \
+    $(wildcard include/config/pccard.h) \
+  include/asm-generic/pci_iomap.h \
+    $(wildcard include/config/no/generic/pci/ioport/map.h) \
+    $(wildcard include/config/generic/pci/iomap.h) \
+  include/xen/xen.h \
+    $(wildcard include/config/xen.h) \
+    $(wildcard include/config/xen/pvh.h) \
+    $(wildcard include/config/xen/dom0.h) \
+  include/asm-generic/io.h \
+    $(wildcard include/config/generic/iomap.h) \
+    $(wildcard include/config/has/ioport/map.h) \
+    $(wildcard include/config/virt/to/bus.h) \
+  include/linux/logic_pio.h \
+    $(wildcard include/config/indirect/pio.h) \
+  include/linux/fwnode.h \
+  include/linux/vmalloc.h \
+
+/home/pi/Desktop/project/moter/moter_dev.o: $(deps_/home/pi/Desktop/project/moter/moter_dev.o)
+
+$(deps_/home/pi/Desktop/project/moter/moter_dev.o):
diff --git a/moter/.tmp_versions/moter_dev.mod b/moter/.tmp_versions/moter_dev.mod
new file mode 100644
index 0000000..3e73d81
--- /dev/null
+++ b/moter/.tmp_versions/moter_dev.mod
@@ -0,0 +1,3 @@
+/home/pi/Desktop/project/moter/moter_dev.ko
+/home/pi/Desktop/project/moter/moter_dev.o
+
diff --git a/moter/Makefile b/moter/Makefile
new file mode 100644
index 0000000..febcc9e
--- /dev/null
+++ b/moter/Makefile
@@ -0,0 +1,12 @@
+KERNEL_VER := $(shell uname -r)
+KERNEL_DIR = '/lib/modules/$(KERNEL_VER)/build'
+
+obj-m := moter_dev.o
+
+PWD := $(shell pwd)
+
+all:
+	make -C $(KERNEL_DIR) M=$(PWD) modules
+clean:
+	make -C $(KERNEL_DIR) M=$(PWD) clean
+
diff --git a/moter/Module.symvers b/moter/Module.symvers
new file mode 100644
index 0000000..e69de29
diff --git a/moter/modules.order b/moter/modules.order
new file mode 100644
index 0000000..2d1915a
--- /dev/null
+++ b/moter/modules.order
@@ -0,0 +1 @@
+kernel//home/pi/Desktop/project/moter/moter_dev.ko
diff --git a/moter/moter_dev.c b/moter/moter_dev.c
new file mode 100644
index 0000000..61e0d1b
--- /dev/null
+++ b/moter/moter_dev.c
@@ -0,0 +1,106 @@
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/fs.h>
+#include <linux/uaccess.h>
+#include <linux/slab.h>
+#include <linux/ktime.h>
+#include <linux/timer.h>
+#include <linux/delay.h>
+
+#include <asm/mach/map.h>
+#include <asm/io.h>
+#include <asm/uaccess.h>
+
+
+#define MOTER_MAJOR_NUMBER 505
+#define MOTER_MINOR_NUMBER 105
+#define MOTER_DEV_NAME "moter"
+
+#define GPIO_BASE_ADDR 0x3F200000
+#define GPFSEL1 0x04
+#define GPSET0 0x1C
+#define GPCLR0 0x28
+#define GPLEV0 0x34
+
+static void __iomem *gpio_base;
+volatile unsigned int *gpsel1;
+volatile unsigned int *gpset1;
+volatile unsigned int *gpclr1;
+volatile unsigned int *gplev1;
+
+int moter_open(struct inode *inode, struct file *filp){
+	printk(KERN_ALERT "moter driver open!!\n");
+	
+	gpio_base = ioremap(GPIO_BASE_ADDR, 0x60);
+	gpsel1 = (volatile unsigned int *)(gpio_base + GPFSEL1);
+	gpset1 = (volatile unsigned int *)(gpio_base + GPSET0);
+	gpclr1 = (volatile unsigned int *)(gpio_base + GPCLR0);
+	gplev1 = (volatile unsigned int *)(gpio_base + GPLEV0);
+	
+	*gpsel1 |= (1<<21);
+	return 0;
+}
+
+int moter_release(struct inode *inode, struct file *filp){
+	printk(KERN_ALERT "moter driver closed!!\n");
+	iounmap((void *)gpio_base);
+	return 0;
+}
+
+ssize_t moter_write(struct file *filp, const char *buf, size_t size, loff_t *f_pos){
+	mdelay(20);
+	int data=0;
+	copy_from_user(&data, buf, sizeof(data));
+	printk(KERN_ALERT "moter driver on!!\n");
+	long beepDelay = (long)(1000000/data);
+	long time = (long)((500*1000)/(beepDelay*2));
+	int i;
+	for(i=0;i<time;i++){
+		*gpset1 |= (1<<17);
+		udelay(beepDelay);
+		*gpclr1 |= (1<<17);
+		udelay(beepDelay/3);
+	}
+	
+	beepDelay = (long)(1000000/data);
+	time = (long)((500*1000)/(beepDelay*2));
+	for(i=0;i<time;i++){
+		*gpset1 |= (1<<17);
+		udelay(beepDelay/3);
+		*gpclr1 |= (1<<17);
+		udelay(beepDelay);
+	}
+	
+	*gpclr1 |= (1<<17);
+
+	return size;
+}
+
+static struct file_operations moter_fops={
+	.owner = THIS_MODULE,
+	.write = moter_write,
+	.open = moter_open,
+	.release = moter_release
+};
+
+int __init moter_init(void){
+	if(register_chrdev(MOTER_MAJOR_NUMBER, MOTER_DEV_NAME, &moter_fops) < 0)
+		printk(KERN_ALERT "moter driver initialization fail\n");
+	else
+		printk(KERN_ALERT "moter driver initialization success\n");
+	
+	return 0;
+}
+
+void __exit moter_exit(void){
+	unregister_chrdev(MOTER_MAJOR_NUMBER, MOTER_DEV_NAME);
+	printk(KERN_ALERT "moter driver exit done\n");
+}
+
+module_init(moter_init);
+module_exit(moter_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Damin");
+MODULE_DESCRIPTION("des");
diff --git a/moter/moter_dev.ko b/moter/moter_dev.ko
new file mode 100644
index 0000000000000000000000000000000000000000..6f2a766979efb9cf275c2f7f26e2e29cb4a06551
GIT binary patch
literal 7980
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

literal 0
HcmV?d00001

diff --git a/moter/moter_dev.mod.c b/moter/moter_dev.mod.c
new file mode 100644
index 0000000..1230d0d
--- /dev/null
+++ b/moter/moter_dev.mod.c
@@ -0,0 +1,50 @@
+#include <linux/build-salt.h>
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+BUILD_SALT;
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+MODULE_INFO(name, KBUILD_MODNAME);
+
+__visible struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+	.name = KBUILD_MODNAME,
+	.init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+	.exit = cleanup_module,
+#endif
+	.arch = MODULE_ARCH_INIT,
+};
+
+#ifdef CONFIG_RETPOLINE
+MODULE_INFO(retpoline, "Y");
+#endif
+
+static const struct modversion_info ____versions[]
+__used
+__attribute__((section("__versions"))) = {
+	{ 0xad1a7def, "module_layout" },
+	{ 0x6bc3fbc0, "__unregister_chrdev" },
+	{ 0xcfc78319, "__register_chrdev" },
+	{ 0xdb7305a1, "__stack_chk_fail" },
+	{ 0x5f754e5a, "memset" },
+	{ 0x28cc25db, "arm_copy_from_user" },
+	{ 0x8e865d3c, "arm_delay_ops" },
+	{ 0x8f678b07, "__stack_chk_guard" },
+	{ 0x2196324, "__aeabi_idiv" },
+	{ 0xedc03953, "iounmap" },
+	{ 0x2e5810c6, "__aeabi_unwind_cpp_pr1" },
+	{ 0xe97c4103, "ioremap" },
+	{ 0x7c32d0f0, "printk" },
+	{ 0xb1ad28e0, "__gnu_mcount_nc" },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
+
+MODULE_INFO(srcversion, "DADB434B38CDC1813B1D433");
diff --git a/moter/moter_dev.mod.o b/moter/moter_dev.mod.o
new file mode 100644
index 0000000000000000000000000000000000000000..0f46656ec402571d3e58a792d8b58202d37db34b
GIT binary patch
literal 3100
zcmb<-^>JflWMqH=Mg|QA1doB?2q##E)dWmwFz_?*fmzsy-29T%qWF~5GHjBgVxu8|
zB?O9#lFL$yiZk=`Y+W2(oJ@>OoQy4;U7QUq42_)(T}+IP85mMh3sUn^iftM45_3~+
z5vi;!wJ0|+Ju}(XM9<Jt&(d7C%v@U`*f&5SH$Nr5G%qJVF$KhgnqREo801@Ku25i9
zW}(2q#=rnc=Zp*tKACx?6;QXmua#Pxo1apelNz6sSeaj10u?8gI`I2&c6@wkUQud#
zW-%x`Bxe+nk|QLWkDrf^Cs#KE!$Q{L+wt+mC5g$|@yQw4@o9;fImEghq%O*@G(I;q
zw>XtlkApNbFfiO!J)@CWlpCL%Ur-sJR+OI`Us{}61eGL$vWac$1L;pm%}K0`&o3w@
zLJzVM_U`n4WdEm^CKjb2D<HsDNtR@ak55cZOv;SUOvxm<C=0ec@HR8QG%q)?fPhWd
zrH=_j=*2_rFU>2@%u9(+E+~jEC^E#Z9$l2#vF2rFeo-p9_J6owR8vrtnOBmHZZdKF
z2O4WP#>c1UmB!~L=a=S{#OEawrxB*g-PzenK_e)!xF9JrF;Brl&sfhu*G#*pAk$D2
z!eekWU|?VXM-c;~8Uq6ZtGTWt0~;5+BL^cV6Bm;ZlL(_Iqd2n!qa>pglN^&0a(xD~
z23d@S;p2apIEZG3lnfvy7&9|4foT}Q%)ks|f@x+376w5u3r4WO7+{*2felTbjX?w~
z!@!^nE{E6{bQu^JR2Uc-K-DcH0~>=K0|Qu$A1WWnz`$Sw#UOd8b}+@vz>a1<J3|Io
zhJir>te+jqgHX&29BAq}7+|Tjff-aTazGS9NoEEvC<{U{gIx(>gGgouZiZSAgMop;
zfr)`Zkb#Av8_EY!0t^fc(?JX<2Jso-#kgK>eu`c)gGvfRe0->%XJDvnyr)Y%qFyjG
zVu+827Rk_>07WIJQZO_`5rS0=h6W7rdHE%&@n#J1@$vDnihv<Lz9b{F7-}d(W?p6q
zjGdg5nwVEw0OK++++bi}U=n9wU}0ilU;+iEUU6k^Nn#R%UU5kggwBAmN>VFI81zyS
zOA;CMl8TEN^omk*^wRT6^>Q-vvh(wjQ}vLo1^GKOFD;)z59CBWNF{{iNWJ9z+}zZ>
z5~#epU#Kp)SZC044D!`WEGa3<Oe!r&C82<n2B!rEaNP%r3P_s{#DZX0o=}9UgQap@
z>eLw+7(gk7kUCIy1(^*~=KxJ75L+1-KztBe2b%t2d<9Mh22fhzVPIeY<tPva+2;jy
zA1qfkFflN|>Ti%aAax)*n1O)-l=5NfelS7u14s^pVd~=1%oAW{U;yO<kQxw%smp?@
z1NjFeK7kFAXF+Tb2Kf<$K~VytL1G}h1=QF8F`yVG*UZ2GDoJ2jj{&3(xtNEk1JN))
zfQ)#-#=tOvk%57ifq_8`8aAMC;)Iw7QUb;m91IN0z$^#>G6%#0l~u5~0Pzht85kym
J7*GsT2LOI_DF6Tf

literal 0
HcmV?d00001

diff --git a/moter/moter_dev.o b/moter/moter_dev.o
new file mode 100644
index 0000000000000000000000000000000000000000..d01e2d2cc5d051297ffda5dc52a3e927b52bb11b
GIT binary patch
literal 7036
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

literal 0
HcmV?d00001

diff --git a/moter/sc.sh b/moter/sc.sh
new file mode 100755
index 0000000..45352ef
--- /dev/null
+++ b/moter/sc.sh
@@ -0,0 +1,4 @@
+make clean
+make
+sudo rmmod moter_dev
+sudo insmod moter_dev.ko
diff --git a/pump/.pump_dev.ko.cmd b/pump/.pump_dev.ko.cmd
new file mode 100644
index 0000000..adda1c0
--- /dev/null
+++ b/pump/.pump_dev.ko.cmd
@@ -0,0 +1 @@
+cmd_/home/pi/Desktop/project/pump/pump_dev.ko := ld -r  -EL -T ./scripts/module-common.lds -T ./arch/arm/kernel/module.lds  --build-id  -o /home/pi/Desktop/project/pump/pump_dev.ko /home/pi/Desktop/project/pump/pump_dev.o /home/pi/Desktop/project/pump/pump_dev.mod.o ;  true
diff --git a/pump/.pump_dev.mod.o.cmd b/pump/.pump_dev.mod.o.cmd
new file mode 100644
index 0000000..be790dc
--- /dev/null
+++ b/pump/.pump_dev.mod.o.cmd
@@ -0,0 +1,499 @@
+cmd_/home/pi/Desktop/project/pump/pump_dev.mod.o := gcc -Wp,-MD,/home/pi/Desktop/project/pump/.pump_dev.mod.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DKBUILD_BASENAME='"pump_dev.mod"' -DKBUILD_MODNAME='"pump_dev"' -DMODULE  -c -o /home/pi/Desktop/project/pump/pump_dev.mod.o /home/pi/Desktop/project/pump/pump_dev.mod.c
+
+source_/home/pi/Desktop/project/pump/pump_dev.mod.o := /home/pi/Desktop/project/pump/pump_dev.mod.c
+
+deps_/home/pi/Desktop/project/pump/pump_dev.mod.o := \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/retpoline.h) \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/build-salt.h \
+    $(wildcard include/config/build/salt.h) \
+  include/linux/elfnote.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/arm/lpae.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/module.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/unused/symbols.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/init.h \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/vermagic.h \
+  include/generated/utsrelease.h \
+
+/home/pi/Desktop/project/pump/pump_dev.mod.o: $(deps_/home/pi/Desktop/project/pump/pump_dev.mod.o)
+
+$(deps_/home/pi/Desktop/project/pump/pump_dev.mod.o):
diff --git a/pump/.pump_dev.o.cmd b/pump/.pump_dev.o.cmd
new file mode 100644
index 0000000..fcc4b8d
--- /dev/null
+++ b/pump/.pump_dev.o.cmd
@@ -0,0 +1,720 @@
+cmd_/home/pi/Desktop/project/pump/pump_dev.o := gcc -Wp,-MD,/home/pi/Desktop/project/pump/.pump_dev.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DMODULE  -DKBUILD_BASENAME='"pump_dev"' -DKBUILD_MODNAME='"pump_dev"' -c -o /home/pi/Desktop/project/pump/.tmp_pump_dev.o /home/pi/Desktop/project/pump/pump_dev.c
+
+source_/home/pi/Desktop/project/pump/pump_dev.o := /home/pi/Desktop/project/pump/pump_dev.c
+
+deps_/home/pi/Desktop/project/pump/pump_dev.o := \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/retpoline.h) \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/init.h \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+    $(wildcard include/config/unused/symbols.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+    $(wildcard include/config/arm/lpae.h) \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/module.h \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/fs.h \
+    $(wildcard include/config/fs/posix/acl.h) \
+    $(wildcard include/config/security.h) \
+    $(wildcard include/config/cgroup/writeback.h) \
+    $(wildcard include/config/ima.h) \
+    $(wildcard include/config/fsnotify.h) \
+    $(wildcard include/config/fs/encryption.h) \
+    $(wildcard include/config/epoll.h) \
+    $(wildcard include/config/file/locking.h) \
+    $(wildcard include/config/quota.h) \
+    $(wildcard include/config/fs/dax.h) \
+    $(wildcard include/config/block.h) \
+    $(wildcard include/config/mandatory/file/locking.h) \
+    $(wildcard include/config/migration.h) \
+  include/linux/wait_bit.h \
+  include/linux/kdev_t.h \
+  include/uapi/linux/kdev_t.h \
+  include/linux/dcache.h \
+  include/linux/rculist.h \
+  include/linux/rculist_bl.h \
+  include/linux/list_bl.h \
+  include/linux/bit_spinlock.h \
+  include/linux/lockref.h \
+    $(wildcard include/config/arch/use/cmpxchg/lockref.h) \
+  include/linux/stringhash.h \
+    $(wildcard include/config/dcache/word/access.h) \
+  include/linux/hash.h \
+    $(wildcard include/config/have/arch/hash.h) \
+  include/linux/path.h \
+  include/linux/list_lru.h \
+    $(wildcard include/config/memcg/kmem.h) \
+  include/linux/shrinker.h \
+  include/linux/xarray.h \
+  include/linux/pid.h \
+  include/linux/mm_types.h \
+    $(wildcard include/config/have/aligned/struct/page.h) \
+    $(wildcard include/config/userfaultfd.h) \
+    $(wildcard include/config/have/arch/compat/mmap/bases.h) \
+    $(wildcard include/config/membarrier.h) \
+    $(wildcard include/config/aio.h) \
+    $(wildcard include/config/mmu/notifier.h) \
+    $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \
+    $(wildcard include/config/hmm.h) \
+  include/linux/mm_types_task.h \
+    $(wildcard include/config/split/ptlock/cpus.h) \
+    $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \
+  include/linux/auxvec.h \
+  include/uapi/linux/auxvec.h \
+  include/linux/uprobes.h \
+    $(wildcard include/config/uprobes.h) \
+  arch/arm/include/asm/mmu.h \
+    $(wildcard include/config/cpu/has/asid.h) \
+  include/linux/capability.h \
+  include/uapi/linux/capability.h \
+  include/linux/semaphore.h \
+  include/linux/fcntl.h \
+  include/uapi/linux/fcntl.h \
+  arch/arm/include/uapi/asm/fcntl.h \
+  include/uapi/asm-generic/fcntl.h \
+  include/uapi/linux/fiemap.h \
+  include/linux/migrate_mode.h \
+  include/linux/percpu-rwsem.h \
+  include/linux/rcuwait.h \
+  include/linux/rcu_sync.h \
+  include/linux/delayed_call.h \
+  include/linux/uuid.h \
+  include/uapi/linux/uuid.h \
+  include/linux/errseq.h \
+  include/linux/ioprio.h \
+  include/linux/sched.h \
+    $(wildcard include/config/virt/cpu/accounting/native.h) \
+    $(wildcard include/config/sched/info.h) \
+    $(wildcard include/config/schedstats.h) \
+    $(wildcard include/config/fair/group/sched.h) \
+    $(wildcard include/config/rt/group/sched.h) \
+    $(wildcard include/config/cgroup/sched.h) \
+    $(wildcard include/config/blk/dev/io/trace.h) \
+    $(wildcard include/config/compat/brk.h) \
+    $(wildcard include/config/cgroups.h) \
+    $(wildcard include/config/blk/cgroup.h) \
+    $(wildcard include/config/stackprotector.h) \
+    $(wildcard include/config/arch/has/scaled/cputime.h) \
+    $(wildcard include/config/virt/cpu/accounting/gen.h) \
+    $(wildcard include/config/posix/timers.h) \
+    $(wildcard include/config/sysvipc.h) \
+    $(wildcard include/config/detect/hung/task.h) \
+    $(wildcard include/config/auditsyscall.h) \
+    $(wildcard include/config/rt/mutexes.h) \
+    $(wildcard include/config/ubsan.h) \
+    $(wildcard include/config/task/xacct.h) \
+    $(wildcard include/config/cpusets.h) \
+    $(wildcard include/config/intel/rdt.h) \
+    $(wildcard include/config/futex.h) \
+    $(wildcard include/config/compat.h) \
+    $(wildcard include/config/perf/events.h) \
+    $(wildcard include/config/rseq.h) \
+    $(wildcard include/config/task/delay/acct.h) \
+    $(wildcard include/config/fault/injection.h) \
+    $(wildcard include/config/latencytop.h) \
+    $(wildcard include/config/function/graph/tracer.h) \
+    $(wildcard include/config/kcov.h) \
+    $(wildcard include/config/bcache.h) \
+    $(wildcard include/config/vmap/stack.h) \
+    $(wildcard include/config/arch/task/struct/on/stack.h) \
+    $(wildcard include/config/debug/rseq.h) \
+  include/uapi/linux/sched.h \
+  include/linux/sem.h \
+  include/uapi/linux/sem.h \
+  include/linux/ipc.h \
+  include/linux/rhashtable-types.h \
+  include/uapi/linux/ipc.h \
+  arch/arm/include/generated/uapi/asm/ipcbuf.h \
+  include/uapi/asm-generic/ipcbuf.h \
+  arch/arm/include/generated/uapi/asm/sembuf.h \
+  include/uapi/asm-generic/sembuf.h \
+  include/linux/shm.h \
+  include/uapi/linux/shm.h \
+  include/uapi/asm-generic/hugetlb_encode.h \
+  arch/arm/include/generated/uapi/asm/shmbuf.h \
+  include/uapi/asm-generic/shmbuf.h \
+  arch/arm/include/asm/shmparam.h \
+  include/linux/kcov.h \
+  include/uapi/linux/kcov.h \
+  include/linux/plist.h \
+    $(wildcard include/config/debug/pi/list.h) \
+  include/linux/hrtimer.h \
+    $(wildcard include/config/high/res/timers.h) \
+    $(wildcard include/config/time/low/res.h) \
+    $(wildcard include/config/timerfd.h) \
+  include/linux/timerqueue.h \
+  include/linux/seccomp.h \
+    $(wildcard include/config/seccomp.h) \
+    $(wildcard include/config/have/arch/seccomp/filter.h) \
+    $(wildcard include/config/seccomp/filter.h) \
+    $(wildcard include/config/checkpoint/restore.h) \
+  include/uapi/linux/seccomp.h \
+  arch/arm/include/generated/asm/seccomp.h \
+  include/asm-generic/seccomp.h \
+  include/uapi/linux/unistd.h \
+  arch/arm/include/asm/unistd.h \
+    $(wildcard include/config/oabi/compat.h) \
+  arch/arm/include/uapi/asm/unistd.h \
+  arch/arm/include/generated/uapi/asm/unistd-eabi.h \
+  arch/arm/include/generated/uapi/asm/unistd-common.h \
+  arch/arm/include/generated/asm/unistd-nr.h \
+  include/linux/resource.h \
+  include/uapi/linux/resource.h \
+  arch/arm/include/generated/uapi/asm/resource.h \
+  include/asm-generic/resource.h \
+  include/uapi/asm-generic/resource.h \
+  include/linux/latencytop.h \
+  include/linux/sched/prio.h \
+  include/linux/signal_types.h \
+    $(wildcard include/config/old/sigaction.h) \
+  include/uapi/linux/signal.h \
+  arch/arm/include/asm/signal.h \
+  arch/arm/include/uapi/asm/signal.h \
+  include/uapi/asm-generic/signal-defs.h \
+  arch/arm/include/uapi/asm/sigcontext.h \
+  arch/arm/include/generated/uapi/asm/siginfo.h \
+  include/uapi/asm-generic/siginfo.h \
+  include/linux/task_io_accounting.h \
+    $(wildcard include/config/task/io/accounting.h) \
+  include/uapi/linux/rseq.h \
+  include/linux/sched/rt.h \
+  include/linux/iocontext.h \
+  include/uapi/linux/fs.h \
+  include/uapi/linux/limits.h \
+  include/uapi/linux/ioctl.h \
+  arch/arm/include/generated/uapi/asm/ioctl.h \
+  include/asm-generic/ioctl.h \
+  include/uapi/asm-generic/ioctl.h \
+  include/linux/quota.h \
+    $(wildcard include/config/quota/netlink/interface.h) \
+  include/linux/percpu_counter.h \
+  include/uapi/linux/dqblk_xfs.h \
+  include/linux/dqblk_v1.h \
+  include/linux/dqblk_v2.h \
+  include/linux/dqblk_qtree.h \
+  include/linux/projid.h \
+  include/uapi/linux/quota.h \
+  include/linux/nfs_fs_i.h \
+  include/linux/uaccess.h \
+  arch/arm/include/asm/uaccess.h \
+    $(wildcard include/config/cpu/sw/domain/pan.h) \
+    $(wildcard include/config/cpu/use/domains.h) \
+    $(wildcard include/config/uaccess/with/memcpy.h) \
+  arch/arm/include/asm/domain.h \
+    $(wildcard include/config/io/36.h) \
+    $(wildcard include/config/cpu/cp15/mmu.h) \
+  arch/arm/include/generated/asm/extable.h \
+  include/asm-generic/extable.h \
+  include/linux/slab.h \
+    $(wildcard include/config/debug/slab.h) \
+    $(wildcard include/config/failslab.h) \
+    $(wildcard include/config/have/hardened/usercopy/allocator.h) \
+    $(wildcard include/config/slab.h) \
+    $(wildcard include/config/slub.h) \
+    $(wildcard include/config/slob.h) \
+  include/linux/overflow.h \
+  include/linux/kasan.h \
+  include/linux/delay.h \
+  arch/arm/include/asm/delay.h \
+  arch/arm/include/asm/mach/map.h \
+    $(wildcard include/config/debug/ll.h) \
+  arch/arm/include/asm/io.h \
+    $(wildcard include/config/pci.h) \
+    $(wildcard include/config/need/mach/io/h.h) \
+    $(wildcard include/config/pcmcia/soc/common.h) \
+    $(wildcard include/config/isa.h) \
+    $(wildcard include/config/pccard.h) \
+  include/asm-generic/pci_iomap.h \
+    $(wildcard include/config/no/generic/pci/ioport/map.h) \
+    $(wildcard include/config/generic/pci/iomap.h) \
+  include/xen/xen.h \
+    $(wildcard include/config/xen.h) \
+    $(wildcard include/config/xen/pvh.h) \
+    $(wildcard include/config/xen/dom0.h) \
+  include/asm-generic/io.h \
+    $(wildcard include/config/generic/iomap.h) \
+    $(wildcard include/config/has/ioport/map.h) \
+    $(wildcard include/config/virt/to/bus.h) \
+  include/linux/logic_pio.h \
+    $(wildcard include/config/indirect/pio.h) \
+  include/linux/fwnode.h \
+  include/linux/vmalloc.h \
+
+/home/pi/Desktop/project/pump/pump_dev.o: $(deps_/home/pi/Desktop/project/pump/pump_dev.o)
+
+$(deps_/home/pi/Desktop/project/pump/pump_dev.o):
diff --git a/pump/.tmp_versions/pump_dev.mod b/pump/.tmp_versions/pump_dev.mod
new file mode 100644
index 0000000..d243bc8
--- /dev/null
+++ b/pump/.tmp_versions/pump_dev.mod
@@ -0,0 +1,3 @@
+/home/pi/Desktop/project/pump/pump_dev.ko
+/home/pi/Desktop/project/pump/pump_dev.o
+
diff --git a/pump/Makefile b/pump/Makefile
new file mode 100644
index 0000000..f222616
--- /dev/null
+++ b/pump/Makefile
@@ -0,0 +1,11 @@
+KERNEL_VER := $(shell uname -r)
+KERNEL_DIR = '/lib/modules/$(KERNEL_VER)/build'
+
+obj-m := pump_dev.o
+
+PWD := $(shell pwd)
+
+all:
+	make -C $(KERNEL_DIR) M=$(PWD) modules
+clean:
+	make -C $(KERNEL_DIR) M=$(PWD) clean
diff --git a/pump/Module.symvers b/pump/Module.symvers
new file mode 100644
index 0000000..e69de29
diff --git a/pump/modules.order b/pump/modules.order
new file mode 100644
index 0000000..891c7c9
--- /dev/null
+++ b/pump/modules.order
@@ -0,0 +1 @@
+kernel//home/pi/Desktop/project/pump/pump_dev.ko
diff --git a/pump/pump_dev.c b/pump/pump_dev.c
new file mode 100644
index 0000000..861f7aa
--- /dev/null
+++ b/pump/pump_dev.c
@@ -0,0 +1,102 @@
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/fs.h>
+#include <linux/uaccess.h>
+#include <linux/slab.h>
+#include <linux/ktime.h>
+#include <linux/timer.h>
+#include <linux/delay.h>
+
+#include <asm/mach/map.h>
+#include <asm/io.h>
+#include <asm/uaccess.h>
+
+
+#define PUMP_MAJOR_NUMBER 503
+#define PUMP_MINOR_NUMBER 103
+#define PUMP_DEV_NAME "pump"
+
+#define GPIO_BASE_ADDR 0x3F200000
+#define GPFSEL1 0x04
+#define GPSET0 0x1C
+#define GPCLR0 0x28
+#define GPLEV0 0x34
+
+static void __iomem *gpio_base;
+volatile unsigned int *gpsel1;
+volatile unsigned int *gpset1;
+volatile unsigned int *gpclr1;
+volatile unsigned int *gplev1;
+
+int pump_open(struct inode *inode, struct file *filp){
+	printk(KERN_ALERT "pump driver open!!\n");
+	
+	gpio_base = ioremap(GPIO_BASE_ADDR, 0x60);
+	gpsel1 = (volatile unsigned int *)(gpio_base + GPFSEL1);
+	gpset1 = (volatile unsigned int *)(gpio_base + GPSET0);
+	gpclr1 = (volatile unsigned int *)(gpio_base + GPCLR0);
+	gplev1 = (volatile unsigned int *)(gpio_base + GPLEV0);
+	
+	*gpsel1 |= (1<<9);
+	*gpsel1 |= (1<<27);
+	*gpsel1 |= (1<<24);
+	*gpclr1 |= (1<<13);
+	*gpclr1 |= (1<<19);
+	*gpclr1 |= (1<<18);
+	return 0;
+}
+
+int pump_release(struct inode *inode, struct file *filp){
+	printk(KERN_ALERT "pump driver closed!!\n");
+	iounmap((void *)gpio_base);
+	return 0;
+}
+
+ssize_t pump_write(struct file *filp, const char *buf, size_t size, loff_t *f_pos){
+	mdelay(20);
+	int data=0;
+	copy_from_user(&data, buf, sizeof(data));
+	printk(KERN_ALERT "pump is opened!!\n");
+	*gpset1 |= (1<<13);
+		
+	long beepDelay = (long)(1000000/data);
+	long time = (long)((500*1000)/(beepDelay*2));
+	int i;
+	for(i=0;i<time*2;i++){
+		*gpset1 |= (1<<18);
+		udelay(beepDelay);
+		*gpclr1 |= (1<<18);
+		udelay(beepDelay);
+	}
+	*gpclr1 |= (1<<18);
+	return size;
+}
+
+static struct file_operations pump_fops={
+	.owner = THIS_MODULE,
+	.write = pump_write,
+	.open = pump_open,
+	.release = pump_release
+};
+
+int __init pump_init(void){
+	if(register_chrdev(PUMP_MAJOR_NUMBER, PUMP_DEV_NAME, &pump_fops) < 0)
+		printk(KERN_ALERT "pump driver initialization fail\n");
+	else
+		printk(KERN_ALERT "pump driver initialization success\n");
+	
+	return 0;
+}
+
+void __exit pump_exit(void){
+	unregister_chrdev(PUMP_MAJOR_NUMBER, PUMP_DEV_NAME);
+	printk(KERN_ALERT "pump driver exit done\n");
+}
+
+module_init(pump_init);
+module_exit(pump_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Damin");
+MODULE_DESCRIPTION("pump_detect");
diff --git a/pump/pump_dev.ko b/pump/pump_dev.ko
new file mode 100644
index 0000000000000000000000000000000000000000..524969a04572c6bbe1b2b33262f19bdf98adff20
GIT binary patch
literal 7828
zcmb<-^>JflWMqH=Mg|QA1doA1M*=LvY67M-7&I9)7+4q>7(^Ht7?>Ft7~K6r8I0~a
zFO>Xlx7Uhii^j{_g|-{cA1Y#FV1Ssz$iU!}nO9l?*3ZDedtkxC5BGInvTX2q#B;&-
z5z7PJr~m%{f6Y+9@R*^%;W0x1!{dZ(p2rLZ)1NW~I6OX+<M5cVVZlSD2@4*II4pQ<
zV8H#9#bD}FHiiWcjsNREWON95^y~kBDPDsG59@6YKejhG{Mf{S`>Bb8_ahF2$xm4n
zW;|k6xMaX!u)vssA^5QY1A`QYz=DS?3JV^yFf4cowwoc~F$)6&7mGo{BL;;94;cg&
zJZ5HSc>tDkV0g^n;P9A%f#ER&gTrHx7>B}?rw&XkkNFuK9y2s7c+6lh=_!*{^J4~s
zrl%$X(qR8I2rPKWkg(vP0wdRBcBsCF1q&W>Fho5RWMH@jG6UoX#)ghZApMNy5d9nm
zQ=fwT#iK9<>_=>JZ~y;)#lo=Q@umO&UxCzdGAwwAtj<6|`Y9;<m>Gf|GBPkoX<YDr
z^kMzn7a+Iu9$4_u;07f8;bD*Dw*-L&j~N&iJXYX$2K$vkf#ETOg2Q7LfeB9;3>G|O
zVQ6?H<IwzwNv82Ji$L>J7J<o6H6AoSVqs`{YI30Y5tA@N9ApkCOc+HVVj2RIpK>@f
zJ!O(=e5@hR{1n9JdC>HfNgTl!IMDQzQN8i8hC=gGgB5dMfZWS~$Gr>&438NMK=Csf
z9PVH{(e!a3r!$cMKz;)0Q*eOjRp@>Cosr=&qs{_|pBVx`@x7UWfnhNNgTrP928YF<
zumhRRbHV!&1Dg3DeV{Z0G6Uuwh<Zet0qJp>&DgkMLvtG_D>#AK4PZ8i55gN57#MgM
z7#KXka{p1}u&Ku;mXcbWT$EW*l9``pTTq%?5TBA-lA2t?kXTxhkzZu%l9-#B$B>hm
zoSIjhYU>{01G2ZcD7h@Ps2HTh!qUjd)Wq1t$k4^a+0@0r+1b?9$<%^@AtkjSH7}*u
zmLV@OHx*`b8ADlWQEp;-X0ok`o}s0lrMYgIxwb;EZ-7E>eoB04UQT{u3Wy0czF5IA
z$hXW~p}?rjLV<yS(GcW9g_NSqveY7l{DRaxMMW-9xq%{{oReRingWu6s?RJ2tA&Vx
zOaS=-DhD+yGcU6wGchN#DiIVA3TcU%Ib7)Wp{Xe@O-@cNF2=M!wIZ`bAtgUA6(j{N
z_XHRi7!E+o!1uLMYjg8cN^?@<a}q1_OG`kGApsxweK<QlzBI2WH9fPqB(*3$Iin~g
zwTx&JB%6<)kB=u;Hv_{$*5cdo@x>*H$=UJA8QJlmpd#9G1_p*GztZ^J)ZF4!Qaui}
z<hJS=jl`nd_~iV8%J{UR{M`7`;?yFjBoUNNY+D~le@bdjVr6`OK`{|}kd?4^r}rcK
zKfN@uC<R#o0k%rABvX8RVrpViW_)H!Ch-vmH8<Guz}w9H(!AWn0;mXS)G>hwy?Cho
zrFrF<c`5P91qJa1MTW$g!|Yh|GBdv@m0bHjTrjFBD9X$$$tKP|bX5;D)^3cCPtPlj
z&rQxR%`1t|OGZ~RWcZ-6D4vweJ7jz|>QI`7fV;D^m4Zf4VsSxIW@4U#g`TmVfv%Z$
zQ9-7mCWObpK!h4c0|o{La8bm-sK&s+z-q4R$iT+M?#RK&$;8DZ#3aHf$|%k(!6?Zn
z#U#h1gxt=@=09dg3mz`T%)kU^gBZ-<9sr01!ORS-5C)WFW?+Z1AQUqLCxihdnHjjD
zEC|I6Zv8;mAd;DZ4@AK+GXp=I4Pr1e2!bd$W@ZqAvq21IaBU4@K`=9eD1-qenHj{P
zEC|KS0O{;Nc%c4`B#a5BnHi+PG>l+okbyD5G&6%7n1&I|3<@wNm}X{B1k*5rnL!E0
z1k=n6%3vBsFf*vYm|&WjK@}xNSQtM32en1Ol3+rP0mO&&)j$H`48jZy3?M$pWJU&Y
z1|0?lh6n}*a7=*swxA@#zyJ<u5I=x{fgzuPfx!mU4r34pn+Gxpf|(f7Aq;RxF)}cr
z$xDOvf|N8cgZh8c3^gDQ6ocH`4rN0qR)#JJ14>FT^g~$?N(s$;ZZtj*!%PMSuv;MN
zB^Xf6XJ(kkz`y{?7BG2G_(0eok`K*1el-2;pbh{?Ar#9ntYu(eaDnnbHg95JU;sCw
z!D12&+Zh-b5H-03n)!lgd?7UZI2raZFfhyjn*}1!^^2hC7e(XCFdPJFV_;xt0LPyU
zn!FOjX{bD?56{S;#BdeL2c>*a{J)2WCofpPI0FkK1A{8GUjmXx4L@}Ep{Ex~1}SJE
zlfb~hAjH7VpaSJPFflL)GRQF)LHQtOfXsGbWB|Jv<UT<LB?fOa`Cup?l%|CkI2n@A
z_&HEM%)San2Jm<V%)EN2JgBcF#K6kX3FX7=pT)?)0Ftu+yO)(=Ihy<yH2xt*1_llW
zh#esJo<x(sh{nHx#=noo|AfY8LMn1W;Ufa&H!y<2lbJyt%7?k%j0w_*g!$JNO`ZYP
zNYTs9Pti+eP)T8kj}P_p3=DOR_jHLzbOjBK7~<ohJsW7}4@D)YA82TZA_VIU8X7Rf
z=jE5A#+xz3$H&LRI)4bOlNnSJ8T5Rd4H)!%9Q~X<{DVL&XG4&f5nK$+H3o^9fCy6%
zVFocI4b;$2FUZV~Pf9FKMR5dD2N>)Hgx?@tU^F*FyTXPB5Q9OTLWcPGl8nq^sOK3l
zdk5(SIjLoa46tT<a!zVuUTFbLJve|tokj+bVKCA3g5uO1Lx?4yo-T^9;7%7<Ur}mK
zD#S<NdK}WFK<(dvOez7{4r#PQ8{g1A7)U8vR|>s#joDiS+gx6hSpo`4h`nfCiS&Zx
zoFY(UW9_Jd#sXy`L8T!BgSH0)xK`BhU;x*C+QAIqI!7m%fnfpz1A|Ni1H&2+9S+H7
z+L{auTNoG^bTk<lb}%q7XzMY6%Rn7HNFQ4!jDg_^NPQ3k!w)E3!^prO696eEK=y*{
z*Vcg8ucHC6AEXad*U5xJ%72hOpfUqw52)`B(su-8pAG}V36T9d3=C&L=7%vbTmXq{
zGB8{LiEA=2+yRMuLB>2m`are5wh`2S#th(ETE~ciK?9`Tn1KOQcF06AFgSqBF@e+<
z+NKN)9w2!WNPVGW%D@1sYeDV=mA%@=5O?bsL(G+lgP5yr2{qRe5{@ACpuDaH%HSYI
z45aMQVuzGNAaT$b5{M6y)&dREf*3G$&?cA`tf>YQhc?BuKm)hP>OmC&0|NsSGsGSy
z7Kl9{8e|U>)Ep*vNV&rl4QX#M`9s<eOo0pxH$eJ*85mfY7#Ntm85kJ!iYs$V5|bG8
zic5+hbOwwCDmV1f^GfxSN;7j(bTd;J^uR)pF=V}>)EvE%)QS=YI7_cIFDElQHK!6H
z1j=(rDnR)V%5@C#)l01?NlXIs(X>G%GgB(iB_R@EM}q8za5GaX81x`aka=i!LL@+D
zAxS_4L8_6Qgkqu|l0<HPN@iYKK7(FSeoA6VA}E{;^-RD%jE8lUbMliJkP26DfPfT(
zRe^&rCo?ZQKQB2|54kwg13Ri9r-VT-skoRyFF8LqH#M&W8qDr~p}OF~Ac+4GOG=6|
zlS)fcNg7rGwUR+Ce^}K6%6G^uSy<B5V_*RH5Mb&+?NU%)03|;VhN-gyw?!BjU`Z3y
zz5>;MAT=NiQ)dNj*MjmLNZdt)fdMq{0O|{YvH?gPsIIO@Gw%Z<1H%iD1}Fxp12IAE
zJWzIlnYTv-(zXMc2TJxJbs+Q3qnUSuiGcys{s5T)!XR}ZIvmY?I--!aILJIuc!AV`
z%=?RGo&_@`Pl3z;VURiyorY#!izuY51DOYMH%J}Gyi%xnuyD>{hLn{cGe8)m4n$9a
zs4Hj!aTpjFT9_eaEXc1QA(*;8G<&y*LdqzRy`VAyqz+{7YKVF8UgH#INErb#3xq-H
zK=dw%I=H<Hm?32hD9%9gFm>C|?7brj@dwCWP|pyg4rK39h<R{(SKzSs9z-47-Yrmj
zL2-d>?=3WYzaZHQ>T$yC{R}Y=Ztor(_VO@-`bG?Jdrv^^1;rV%y&Q~?ei|(O@rWV(
z3+l<j>{W!A2e<bEGXn!C>_KLMFi0JU)`F@t0&y4^7;0D;7&b!LAPS@o)cmxCs)MB$
z16D{n0I30CkU9`;iRL~PF-YA7iVslF8Ke#rA6{tYIj}M?fcl3ZGe8)m4n#*n)xqNZ
z00*QW1Cj$_n7U9jdtH$11=Y<Ubs&3_(adw;WMBaGJ3wZEFf3f-(acK`gZLNZ4^WRD
zW?mDLc_4EdxWVxVG75}AVFzN=BB^s^Vqj>*p{^a;cYyh~g&Wew0GR>8AbUY{57azZ
zKNh48)Rq9rfiTEk5S|KE2NDC}GtfF6#0FuI8W6pd5j3`e=%#|yArBYB)PZPN8UX17
z4bOaFWnfTeU|?{A_IW^k5>UE@`2nQvgCGM#Ad*IqIUsS+XbrNu5-|pbtuRSw-T|ot
E0BwSGT>t<8

literal 0
HcmV?d00001

diff --git a/pump/pump_dev.mod.c b/pump/pump_dev.mod.c
new file mode 100644
index 0000000..f4ebe1d
--- /dev/null
+++ b/pump/pump_dev.mod.c
@@ -0,0 +1,50 @@
+#include <linux/build-salt.h>
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+BUILD_SALT;
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+MODULE_INFO(name, KBUILD_MODNAME);
+
+__visible struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+	.name = KBUILD_MODNAME,
+	.init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+	.exit = cleanup_module,
+#endif
+	.arch = MODULE_ARCH_INIT,
+};
+
+#ifdef CONFIG_RETPOLINE
+MODULE_INFO(retpoline, "Y");
+#endif
+
+static const struct modversion_info ____versions[]
+__used
+__attribute__((section("__versions"))) = {
+	{ 0xad1a7def, "module_layout" },
+	{ 0x6bc3fbc0, "__unregister_chrdev" },
+	{ 0xcfc78319, "__register_chrdev" },
+	{ 0xdb7305a1, "__stack_chk_fail" },
+	{ 0x5f754e5a, "memset" },
+	{ 0x28cc25db, "arm_copy_from_user" },
+	{ 0x8e865d3c, "arm_delay_ops" },
+	{ 0x8f678b07, "__stack_chk_guard" },
+	{ 0x2196324, "__aeabi_idiv" },
+	{ 0xedc03953, "iounmap" },
+	{ 0x2e5810c6, "__aeabi_unwind_cpp_pr1" },
+	{ 0xe97c4103, "ioremap" },
+	{ 0x7c32d0f0, "printk" },
+	{ 0xb1ad28e0, "__gnu_mcount_nc" },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
+
+MODULE_INFO(srcversion, "8922543421D4C5D0CC5EB58");
diff --git a/pump/pump_dev.mod.o b/pump/pump_dev.mod.o
new file mode 100644
index 0000000000000000000000000000000000000000..6ff9b7899e6edf163935b17f70d930724c05b494
GIT binary patch
literal 3100
zcmb<-^>JflWMqH=Mg|QA1doB?2q##E)dWmwFz_?*fmzsyg3{cA_>|N#Y;vPwqalDT
z1d5B2%TkMqGxPIoEi8?UOiheUj0{~&oK0N}oSjWwolGql7*bLTQu9)ZZ5i?sb5m{M
zsjMuuC^s=ZGuhTe&(KoO(p<O9Tw5X7H$WjbKPA32FDE}S1;m6JU##F5<XdL0P+(MM
zp}@ev#=rnc=Zp*tKACx?6;Q{$ua#Pxo1apelNz6sSeaj10u?8gI`I2&c6@wkUQud#
zW^qYsQG9Yn5h+<hvibP=_;_-4GcYV<ExsKeUtE%yoE@K>ksY6wn3+SY+d=B0{7U0<
zQ*(<`N%c5LGXn#|ZPhaxiAA~b$@vA9@o7c*x$&jNsYOspA}E{Kwmy*ll+>KW%J}?(
zVj}b)D`D?W???83dTC-&3bFzMY?Wk5rug{8)WoFB_{@|{lFPDS%L8vS^Gow`6AK8~
zgkAcWK!jdA)c(@E^31%H_~e3u_<|xs?CQ})nH_6hX66^Al578m3q~~sMVWae+2|${
z$A6%)c4K^edR}RKZgPHUUP*jjGI1JVs@$EOtrRqZ5{nCxG86L@EcA@^40O%3iwZIg
zH6c6(M*{{125=NHFsd;yFtD2IIx?_vu{&}wax!r-2{DN<iZY5bOE5|@N-@bXDIwQq
zFl&&-SQtM3hlzt|W=P2ZVuCR<0~45r5zGwCFeaF0W?*3u0JC5O3ycA#nHkv7<k=X6
z!7>aC%HVQ{jX{TjfkB0VfdN$AGBU6+*fKCM=rS;XYg-UMfPsO*nt_4A2C5#a9ZWGZ
zu%nsJ&X5k4VPKE|t7nJuAQUqL2by{ghJ1(=LjyCYT;zcAAQUqL7lZ*NnZd4vau^sG
zm>IYkYM@*PCI$vU1{Q`cC?7<D!e$zX0mUFb1FRU=%gs;GOJ-0>VTg|p_45o2b&dCQ
ziAPimhDHqW@z4?(S`nbA1l0+KhA2X?iowu;AwDm^BsJcQAwE7n9##=B#K)IpWEMjW
zWys9SEP=6;b5axYN(*3I1_p*33=9lR;tUKdObiT6pup5CuFNe-Ok&V0E-8Z088B8!
zYDEcyUP@v~B7<I1aWR8lQEHA}dS0nsPG(+qeqM5_9<se4k7wqk<umAk+^7esgpgdR
zmz<xQo0?Ywm3Q|G)dd&p40?`1zIurzB}JJ@r6s8(6p+&3v;e95Kv4l{(}7qJ49gRW
zP<60Wj!T_70|Nsnr4UjF%B~=@Vd@+h7#Kk51Y#=#1Bee|gYp0;NDjndU|>+-WB{jA
z9tH*mP>up&kbPcI_rY>y0}}&7IaCjb0;vPh!3+!xpp*|&_k#(NA3$;-3{w}6W}W~u
z12`Xm)POKdT^3Xw$Uh+Q32cx&3u1#X$d4cliV_eF5(D8apvDG>0mU%6W^mqNfL9bC
zb;!j$OdW`Z`2l3a3pNIZ35*O3ybKHsV$iSw<tb3u!NM4%u7ZPsVJV0K#UOJ)OhJgf
SASM_aa56AV2D2apOdSA=rYE2P

literal 0
HcmV?d00001

diff --git a/pump/pump_dev.o b/pump/pump_dev.o
new file mode 100644
index 0000000000000000000000000000000000000000..8d00e2b654abf8245d0b5fda0809b903207c12c2
GIT binary patch
literal 6928
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

literal 0
HcmV?d00001

diff --git a/pump/sc.sh b/pump/sc.sh
new file mode 100755
index 0000000..2959e1a
--- /dev/null
+++ b/pump/sc.sh
@@ -0,0 +1,4 @@
+make clean
+make
+sudo rmmod pump_dev
+sudo insmod pump_dev.ko
diff --git a/soil/.soil_dev.ko.cmd b/soil/.soil_dev.ko.cmd
new file mode 100644
index 0000000..918b809
--- /dev/null
+++ b/soil/.soil_dev.ko.cmd
@@ -0,0 +1 @@
+cmd_/home/pi/Desktop/project/soil/soil_dev.ko := ld -r  -EL -T ./scripts/module-common.lds -T ./arch/arm/kernel/module.lds  --build-id  -o /home/pi/Desktop/project/soil/soil_dev.ko /home/pi/Desktop/project/soil/soil_dev.o /home/pi/Desktop/project/soil/soil_dev.mod.o ;  true
diff --git a/soil/.soil_dev.mod.o.cmd b/soil/.soil_dev.mod.o.cmd
new file mode 100644
index 0000000..28e3079
--- /dev/null
+++ b/soil/.soil_dev.mod.o.cmd
@@ -0,0 +1,499 @@
+cmd_/home/pi/Desktop/project/soil/soil_dev.mod.o := gcc -Wp,-MD,/home/pi/Desktop/project/soil/.soil_dev.mod.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DKBUILD_BASENAME='"soil_dev.mod"' -DKBUILD_MODNAME='"soil_dev"' -DMODULE  -c -o /home/pi/Desktop/project/soil/soil_dev.mod.o /home/pi/Desktop/project/soil/soil_dev.mod.c
+
+source_/home/pi/Desktop/project/soil/soil_dev.mod.o := /home/pi/Desktop/project/soil/soil_dev.mod.c
+
+deps_/home/pi/Desktop/project/soil/soil_dev.mod.o := \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/retpoline.h) \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/build-salt.h \
+    $(wildcard include/config/build/salt.h) \
+  include/linux/elfnote.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/arm/lpae.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/module.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/unused/symbols.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/init.h \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/vermagic.h \
+  include/generated/utsrelease.h \
+
+/home/pi/Desktop/project/soil/soil_dev.mod.o: $(deps_/home/pi/Desktop/project/soil/soil_dev.mod.o)
+
+$(deps_/home/pi/Desktop/project/soil/soil_dev.mod.o):
diff --git a/soil/.soil_dev.o.cmd b/soil/.soil_dev.o.cmd
new file mode 100644
index 0000000..9b4de88
--- /dev/null
+++ b/soil/.soil_dev.o.cmd
@@ -0,0 +1,718 @@
+cmd_/home/pi/Desktop/project/soil/soil_dev.o := gcc -Wp,-MD,/home/pi/Desktop/project/soil/.soil_dev.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DMODULE  -DKBUILD_BASENAME='"soil_dev"' -DKBUILD_MODNAME='"soil_dev"' -c -o /home/pi/Desktop/project/soil/.tmp_soil_dev.o /home/pi/Desktop/project/soil/soil_dev.c
+
+source_/home/pi/Desktop/project/soil/soil_dev.o := /home/pi/Desktop/project/soil/soil_dev.c
+
+deps_/home/pi/Desktop/project/soil/soil_dev.o := \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/retpoline.h) \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/init.h \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+    $(wildcard include/config/unused/symbols.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+    $(wildcard include/config/arm/lpae.h) \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/module.h \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/fs.h \
+    $(wildcard include/config/fs/posix/acl.h) \
+    $(wildcard include/config/security.h) \
+    $(wildcard include/config/cgroup/writeback.h) \
+    $(wildcard include/config/ima.h) \
+    $(wildcard include/config/fsnotify.h) \
+    $(wildcard include/config/fs/encryption.h) \
+    $(wildcard include/config/epoll.h) \
+    $(wildcard include/config/file/locking.h) \
+    $(wildcard include/config/quota.h) \
+    $(wildcard include/config/fs/dax.h) \
+    $(wildcard include/config/block.h) \
+    $(wildcard include/config/mandatory/file/locking.h) \
+    $(wildcard include/config/migration.h) \
+  include/linux/wait_bit.h \
+  include/linux/kdev_t.h \
+  include/uapi/linux/kdev_t.h \
+  include/linux/dcache.h \
+  include/linux/rculist.h \
+  include/linux/rculist_bl.h \
+  include/linux/list_bl.h \
+  include/linux/bit_spinlock.h \
+  include/linux/lockref.h \
+    $(wildcard include/config/arch/use/cmpxchg/lockref.h) \
+  include/linux/stringhash.h \
+    $(wildcard include/config/dcache/word/access.h) \
+  include/linux/hash.h \
+    $(wildcard include/config/have/arch/hash.h) \
+  include/linux/path.h \
+  include/linux/list_lru.h \
+    $(wildcard include/config/memcg/kmem.h) \
+  include/linux/shrinker.h \
+  include/linux/xarray.h \
+  include/linux/pid.h \
+  include/linux/mm_types.h \
+    $(wildcard include/config/have/aligned/struct/page.h) \
+    $(wildcard include/config/userfaultfd.h) \
+    $(wildcard include/config/have/arch/compat/mmap/bases.h) \
+    $(wildcard include/config/membarrier.h) \
+    $(wildcard include/config/aio.h) \
+    $(wildcard include/config/mmu/notifier.h) \
+    $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \
+    $(wildcard include/config/hmm.h) \
+  include/linux/mm_types_task.h \
+    $(wildcard include/config/split/ptlock/cpus.h) \
+    $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \
+  include/linux/auxvec.h \
+  include/uapi/linux/auxvec.h \
+  include/linux/uprobes.h \
+    $(wildcard include/config/uprobes.h) \
+  arch/arm/include/asm/mmu.h \
+    $(wildcard include/config/cpu/has/asid.h) \
+  include/linux/capability.h \
+  include/uapi/linux/capability.h \
+  include/linux/semaphore.h \
+  include/linux/fcntl.h \
+  include/uapi/linux/fcntl.h \
+  arch/arm/include/uapi/asm/fcntl.h \
+  include/uapi/asm-generic/fcntl.h \
+  include/uapi/linux/fiemap.h \
+  include/linux/migrate_mode.h \
+  include/linux/percpu-rwsem.h \
+  include/linux/rcuwait.h \
+  include/linux/rcu_sync.h \
+  include/linux/delayed_call.h \
+  include/linux/uuid.h \
+  include/uapi/linux/uuid.h \
+  include/linux/errseq.h \
+  include/linux/ioprio.h \
+  include/linux/sched.h \
+    $(wildcard include/config/virt/cpu/accounting/native.h) \
+    $(wildcard include/config/sched/info.h) \
+    $(wildcard include/config/schedstats.h) \
+    $(wildcard include/config/fair/group/sched.h) \
+    $(wildcard include/config/rt/group/sched.h) \
+    $(wildcard include/config/cgroup/sched.h) \
+    $(wildcard include/config/blk/dev/io/trace.h) \
+    $(wildcard include/config/compat/brk.h) \
+    $(wildcard include/config/cgroups.h) \
+    $(wildcard include/config/blk/cgroup.h) \
+    $(wildcard include/config/stackprotector.h) \
+    $(wildcard include/config/arch/has/scaled/cputime.h) \
+    $(wildcard include/config/virt/cpu/accounting/gen.h) \
+    $(wildcard include/config/posix/timers.h) \
+    $(wildcard include/config/sysvipc.h) \
+    $(wildcard include/config/detect/hung/task.h) \
+    $(wildcard include/config/auditsyscall.h) \
+    $(wildcard include/config/rt/mutexes.h) \
+    $(wildcard include/config/ubsan.h) \
+    $(wildcard include/config/task/xacct.h) \
+    $(wildcard include/config/cpusets.h) \
+    $(wildcard include/config/intel/rdt.h) \
+    $(wildcard include/config/futex.h) \
+    $(wildcard include/config/compat.h) \
+    $(wildcard include/config/perf/events.h) \
+    $(wildcard include/config/rseq.h) \
+    $(wildcard include/config/task/delay/acct.h) \
+    $(wildcard include/config/fault/injection.h) \
+    $(wildcard include/config/latencytop.h) \
+    $(wildcard include/config/function/graph/tracer.h) \
+    $(wildcard include/config/kcov.h) \
+    $(wildcard include/config/bcache.h) \
+    $(wildcard include/config/vmap/stack.h) \
+    $(wildcard include/config/arch/task/struct/on/stack.h) \
+    $(wildcard include/config/debug/rseq.h) \
+  include/uapi/linux/sched.h \
+  include/linux/sem.h \
+  include/uapi/linux/sem.h \
+  include/linux/ipc.h \
+  include/linux/rhashtable-types.h \
+  include/uapi/linux/ipc.h \
+  arch/arm/include/generated/uapi/asm/ipcbuf.h \
+  include/uapi/asm-generic/ipcbuf.h \
+  arch/arm/include/generated/uapi/asm/sembuf.h \
+  include/uapi/asm-generic/sembuf.h \
+  include/linux/shm.h \
+  include/uapi/linux/shm.h \
+  include/uapi/asm-generic/hugetlb_encode.h \
+  arch/arm/include/generated/uapi/asm/shmbuf.h \
+  include/uapi/asm-generic/shmbuf.h \
+  arch/arm/include/asm/shmparam.h \
+  include/linux/kcov.h \
+  include/uapi/linux/kcov.h \
+  include/linux/plist.h \
+    $(wildcard include/config/debug/pi/list.h) \
+  include/linux/hrtimer.h \
+    $(wildcard include/config/high/res/timers.h) \
+    $(wildcard include/config/time/low/res.h) \
+    $(wildcard include/config/timerfd.h) \
+  include/linux/timerqueue.h \
+  include/linux/seccomp.h \
+    $(wildcard include/config/seccomp.h) \
+    $(wildcard include/config/have/arch/seccomp/filter.h) \
+    $(wildcard include/config/seccomp/filter.h) \
+    $(wildcard include/config/checkpoint/restore.h) \
+  include/uapi/linux/seccomp.h \
+  arch/arm/include/generated/asm/seccomp.h \
+  include/asm-generic/seccomp.h \
+  include/uapi/linux/unistd.h \
+  arch/arm/include/asm/unistd.h \
+    $(wildcard include/config/oabi/compat.h) \
+  arch/arm/include/uapi/asm/unistd.h \
+  arch/arm/include/generated/uapi/asm/unistd-eabi.h \
+  arch/arm/include/generated/uapi/asm/unistd-common.h \
+  arch/arm/include/generated/asm/unistd-nr.h \
+  include/linux/resource.h \
+  include/uapi/linux/resource.h \
+  arch/arm/include/generated/uapi/asm/resource.h \
+  include/asm-generic/resource.h \
+  include/uapi/asm-generic/resource.h \
+  include/linux/latencytop.h \
+  include/linux/sched/prio.h \
+  include/linux/signal_types.h \
+    $(wildcard include/config/old/sigaction.h) \
+  include/uapi/linux/signal.h \
+  arch/arm/include/asm/signal.h \
+  arch/arm/include/uapi/asm/signal.h \
+  include/uapi/asm-generic/signal-defs.h \
+  arch/arm/include/uapi/asm/sigcontext.h \
+  arch/arm/include/generated/uapi/asm/siginfo.h \
+  include/uapi/asm-generic/siginfo.h \
+  include/linux/task_io_accounting.h \
+    $(wildcard include/config/task/io/accounting.h) \
+  include/uapi/linux/rseq.h \
+  include/linux/sched/rt.h \
+  include/linux/iocontext.h \
+  include/uapi/linux/fs.h \
+  include/uapi/linux/limits.h \
+  include/uapi/linux/ioctl.h \
+  arch/arm/include/generated/uapi/asm/ioctl.h \
+  include/asm-generic/ioctl.h \
+  include/uapi/asm-generic/ioctl.h \
+  include/linux/quota.h \
+    $(wildcard include/config/quota/netlink/interface.h) \
+  include/linux/percpu_counter.h \
+  include/uapi/linux/dqblk_xfs.h \
+  include/linux/dqblk_v1.h \
+  include/linux/dqblk_v2.h \
+  include/linux/dqblk_qtree.h \
+  include/linux/projid.h \
+  include/uapi/linux/quota.h \
+  include/linux/nfs_fs_i.h \
+  include/linux/uaccess.h \
+  arch/arm/include/asm/uaccess.h \
+    $(wildcard include/config/cpu/sw/domain/pan.h) \
+    $(wildcard include/config/cpu/use/domains.h) \
+    $(wildcard include/config/uaccess/with/memcpy.h) \
+  arch/arm/include/asm/domain.h \
+    $(wildcard include/config/io/36.h) \
+    $(wildcard include/config/cpu/cp15/mmu.h) \
+  arch/arm/include/generated/asm/extable.h \
+  include/asm-generic/extable.h \
+  include/linux/slab.h \
+    $(wildcard include/config/debug/slab.h) \
+    $(wildcard include/config/failslab.h) \
+    $(wildcard include/config/have/hardened/usercopy/allocator.h) \
+    $(wildcard include/config/slab.h) \
+    $(wildcard include/config/slub.h) \
+    $(wildcard include/config/slob.h) \
+  include/linux/overflow.h \
+  include/linux/kasan.h \
+  arch/arm/include/asm/mach/map.h \
+    $(wildcard include/config/debug/ll.h) \
+  arch/arm/include/asm/io.h \
+    $(wildcard include/config/pci.h) \
+    $(wildcard include/config/need/mach/io/h.h) \
+    $(wildcard include/config/pcmcia/soc/common.h) \
+    $(wildcard include/config/isa.h) \
+    $(wildcard include/config/pccard.h) \
+  include/asm-generic/pci_iomap.h \
+    $(wildcard include/config/no/generic/pci/ioport/map.h) \
+    $(wildcard include/config/generic/pci/iomap.h) \
+  include/xen/xen.h \
+    $(wildcard include/config/xen.h) \
+    $(wildcard include/config/xen/pvh.h) \
+    $(wildcard include/config/xen/dom0.h) \
+  include/asm-generic/io.h \
+    $(wildcard include/config/generic/iomap.h) \
+    $(wildcard include/config/has/ioport/map.h) \
+    $(wildcard include/config/virt/to/bus.h) \
+  include/linux/logic_pio.h \
+    $(wildcard include/config/indirect/pio.h) \
+  include/linux/fwnode.h \
+  include/linux/vmalloc.h \
+
+/home/pi/Desktop/project/soil/soil_dev.o: $(deps_/home/pi/Desktop/project/soil/soil_dev.o)
+
+$(deps_/home/pi/Desktop/project/soil/soil_dev.o):
diff --git a/soil/.tmp_versions/soil_dev.mod b/soil/.tmp_versions/soil_dev.mod
new file mode 100644
index 0000000..75e4c2c
--- /dev/null
+++ b/soil/.tmp_versions/soil_dev.mod
@@ -0,0 +1,3 @@
+/home/pi/Desktop/project/soil/soil_dev.ko
+/home/pi/Desktop/project/soil/soil_dev.o
+
diff --git a/soil/Makefile b/soil/Makefile
new file mode 100644
index 0000000..94241e6
--- /dev/null
+++ b/soil/Makefile
@@ -0,0 +1,11 @@
+KERNEL_VER := $(shell uname -r)
+KERNEL_DIR = '/lib/modules/$(KERNEL_VER)/build'
+
+obj-m := soil_dev.o
+
+PWD := $(shell pwd)
+
+all:
+	make -C $(KERNEL_DIR) M=$(PWD) modules
+clean:
+	make -C $(KERNEL_DIR) M=$(PWD) clean
diff --git a/soil/Module.symvers b/soil/Module.symvers
new file mode 100644
index 0000000..e69de29
diff --git a/soil/modules.order b/soil/modules.order
new file mode 100644
index 0000000..1a1b517
--- /dev/null
+++ b/soil/modules.order
@@ -0,0 +1 @@
+kernel//home/pi/Desktop/project/soil/soil_dev.ko
diff --git a/soil/sc.sh b/soil/sc.sh
new file mode 100755
index 0000000..cb91733
--- /dev/null
+++ b/soil/sc.sh
@@ -0,0 +1,4 @@
+make clean
+make
+sudo rmmod soil_dev
+sudo insmod soil_dev.ko
diff --git a/soil/soil_dev.c b/soil/soil_dev.c
new file mode 100644
index 0000000..4dff006
--- /dev/null
+++ b/soil/soil_dev.c
@@ -0,0 +1,126 @@
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/fs.h>
+#include <linux/uaccess.h>
+#include <linux/slab.h>
+
+#include <asm/mach/map.h>
+#include <asm/io.h>
+#include <asm/uaccess.h>
+
+#define SOIL_MAJOR_NUMBER 501
+#define SOIL_MINOR_NUMBER 101
+#define DEV_NAME "soil"
+
+#define GPIO_BASE_ADDR 0x3F200000
+#define GPFSEL0 0x00
+#define GPFSEL1 0x04
+#define GPFSEL2 0x08
+#define GPCLR0 0x28
+#define SPI_BASE_ADDR 0x3F204000
+#define SPICS 0x00
+#define SPIFIFO 0x04
+#define SPICLK 0x08
+
+static void __iomem *gpio_base;
+volatile unsigned int *gpsel0;
+volatile unsigned int *gpsel1;
+volatile unsigned int *gpsel2;
+volatile unsigned int *gpclr0;
+static void __iomem *spi_base;
+volatile unsigned int *cs;
+volatile unsigned int *fifo;
+volatile unsigned int *clk;
+
+int SD_open(struct inode *inode, struct file *filp) {
+   printk(KERN_ALERT "soil_detect Sensor driver open!!\n");
+   
+   gpio_base = ioremap(GPIO_BASE_ADDR, 0x60);
+   gpsel0 = (volatile unsigned int *)(gpio_base + GPFSEL0);
+   gpsel1 = (volatile unsigned int *)(gpio_base + GPFSEL1);
+   gpsel2 = (volatile unsigned int *)(gpio_base + GPFSEL2);
+   gpclr0 = (volatile unsigned int *)(gpio_base + GPCLR0);
+   spi_base = ioremap(SPI_BASE_ADDR, 0x0C);
+   cs = (volatile unsigned int *)(spi_base + SPICS);
+   fifo = (volatile unsigned int *)(spi_base + SPIFIFO);
+   clk = (volatile unsigned int *)(spi_base + SPICLK);
+   
+   *cs = 0x00000000;
+   *cs |= (1<<4);
+   *cs |= (1<<5);
+   
+   return 0;
+}
+int SD_release(struct inode *inode, struct file *filp) {
+   printk(KERN_ALERT "soil_detect Sensor driver closed!!\n");
+   iounmap((void*)gpio_base);
+   iounmap((void*)spi_base);
+
+   return 0;
+}
+
+ssize_t SD_read(struct file* flip, char* buf, size_t size, loff_t* f_pos){
+   unsigned char buff[3];
+   *gpsel0 = (1<<26); //CE0
+   *gpsel0 |= (1<<29); //MISO
+   *gpsel1 |= (1<<2); //MOSI
+   *gpsel1 |= (1<<5); //CLK
+   
+   buff[0] = 0x01;
+   buff[1] = (0x08)<<4;
+   buff[2] = 0x00;
+   unsigned int adcValue = 0, i=0;
+   
+   *cs |= (1<<4);
+   *cs |= (1<<5);
+   *cs |= (1<<7);
+   
+   for(i=0;i<3;i++){
+      while(!(*cs & (1<<18)));
+      *fifo=buff[i];
+      
+      while(!(*cs & (1<<17)));
+      buff[i]=*fifo;
+   }
+   while(!(*cs&(1<<16)));
+   
+   adcValue = ((buff[1] & 0x03) <<8) | buff[2];
+   printk("result:%u\n", adcValue); 
+    
+   copy_to_user(buf, &adcValue, 4);
+
+   *cs |= (1<<4);
+   *cs |= (1<<5);
+   *cs &= ~(1<<7);
+   
+   return size;
+}
+
+static struct file_operations SD_fops = {
+   .owner = THIS_MODULE,
+   .read = SD_read,
+   .open = SD_open,
+   .release = SD_release,
+};
+
+int __init SD_init(void) {
+   if(register_chrdev(SOIL_MAJOR_NUMBER, DEV_NAME, &SD_fops) < 0)
+      printk(KERN_ALERT "soil_detect Sensor driver init failed\n");
+   else
+      printk(KERN_ALERT "soil_detect Sensor driver init successful\n");
+
+   return 0;
+}
+
+void __exit SD_exit(void) { 
+   unregister_chrdev(SOIL_MAJOR_NUMBER, DEV_NAME);
+   printk(KERN_ALERT "soil_detect Sensor driver cleanup\n");
+}
+
+module_init(SD_init);
+module_exit(SD_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Damin");
+MODULE_DESCRIPTION("soil_detect");
diff --git a/soil/soil_dev.ko b/soil/soil_dev.ko
new file mode 100644
index 0000000000000000000000000000000000000000..1ff4de15a4c4a3122b2373e8cadec2d86e8bb130
GIT binary patch
literal 7728
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
DzVU-x

literal 0
HcmV?d00001

diff --git a/soil/soil_dev.mod.c b/soil/soil_dev.mod.c
new file mode 100644
index 0000000..2446697
--- /dev/null
+++ b/soil/soil_dev.mod.c
@@ -0,0 +1,47 @@
+#include <linux/build-salt.h>
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+BUILD_SALT;
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+MODULE_INFO(name, KBUILD_MODNAME);
+
+__visible struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+	.name = KBUILD_MODNAME,
+	.init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+	.exit = cleanup_module,
+#endif
+	.arch = MODULE_ARCH_INIT,
+};
+
+#ifdef CONFIG_RETPOLINE
+MODULE_INFO(retpoline, "Y");
+#endif
+
+static const struct modversion_info ____versions[]
+__used
+__attribute__((section("__versions"))) = {
+	{ 0xad1a7def, "module_layout" },
+	{ 0x6bc3fbc0, "__unregister_chrdev" },
+	{ 0xcfc78319, "__register_chrdev" },
+	{ 0xdb7305a1, "__stack_chk_fail" },
+	{ 0xf4fa543b, "arm_copy_to_user" },
+	{ 0x8f678b07, "__stack_chk_guard" },
+	{ 0xedc03953, "iounmap" },
+	{ 0x2e5810c6, "__aeabi_unwind_cpp_pr1" },
+	{ 0xe97c4103, "ioremap" },
+	{ 0x7c32d0f0, "printk" },
+	{ 0xb1ad28e0, "__gnu_mcount_nc" },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
+
+MODULE_INFO(srcversion, "81F0836419654AA6812719B");
diff --git a/soil/soil_dev.mod.o b/soil/soil_dev.mod.o
new file mode 100644
index 0000000000000000000000000000000000000000..b9648c847f549c12eea6f7c97adced1eec6c9577
GIT binary patch
literal 2908
zcmb<-^>JflWMqH=Mg|QA1doA%g%d2pY67M-82B0Zz$|P;aeih_d`fB=Hn~x;(Gb8E
z0>wqiWvNBQnfZCP7KUyH7RF{KhL&cgCXS9~7KTRVhL%nY3@NDvsd*{IwhVcRxv94B
zR92Q+l$)5InQUvKXK1NsX|7vluB{O48=#PzpAui1my@5E0%AgqFII32@+~u0C@?Cs
zP+(wSV_<-!b4CURpUk|{3aI1W*GjF;%}*)KNsZ4*tjsShfr=AL9r%4XJ3hWNuP8M=
zv$!O+C_Xu(h?FcL*?jzbd_1|j85kC_7T=DKFD^+;&W=yc$c|4-%*-Ly?I3m5A-}#P
z7Ujk#=NDAQm*mHn7N-`0#EHf1-Rb?v_NSL77NroYnSp^J*z&;J%>2^4+{6MBbRm=;
z6Nu1@k55cZOv;Qe%`4B$ONmb|D2Oj8GDN7s$6|J@d6}7CluEAsA1)Zx6clCVm1N_y
z1-IM-jkO!&<J0p><8zbqOY=(N^OA8Z#wO$L>};i=5tLY5kd&F2r(mIHtY@HWrd?E!
zX{ZU|F*q79Fff3Fh=Ea!fq{Y5T-T9-jf>rpgOQVoi%Ez{gi(}HoLPcVl2M9Dj!6l*
zK7d(?EXKm{@jpx)L^DHj7KjPP%nVFm8b&ZPFvFN&nwf!xK>*Bx5iBqUm}X{RLz8D?
z5C+RIFerobF&l#p0|SE!0|Nu7x?*HtW3XjlV9;e?0M}L^egFdlgEa#KgAG(YR6Cer
zW?)A%pPeBcEW^Mc0anir<v}QB1`ag!91QsoDTV_~pmK!+%7akM3|tTflw=0G63Ss<
zU|?q8W~hO39hevx1Q}Qux}baz1qz#KAO;kJ_zbXOP%k$>MK75_C50hAKGe@MFw`~P
z(<L5JtQs0I#K%KRG-yGJq7qc58XBSq!3tJG1BUp#{F2moGluy1_;^@B$`Bu4l95>q
zHIyMUFS7*3PR>b9%quN`aTypGZZI$~Fo`oTurM(&Fo6P7uedU|Br%CWuehWLLTA8O
zC8-r940<VvC5a4rNyWtsdPS)@dg*zkdO4YS+4*_Nsd~uvf;^s?mzK|<2Xdnxq!34P
zrCxG=Zf<H`2~^(QFH{#?EHdah2KnkGmXs7_CY6??7DEG-2ud2979e#8NI9fU1Y$uj
zEKevx)xlCZE_Lb*3=E)@LP#AbyMoMysdHdpU;w2Ph^-6^AU=o<$^)DrIS_||fgyo|
z0h~^G7#J8pISPb9_IW|w2g{WWObiU=P(2_Dqz*&}GcYiKQa()G4<<-{0Lg(cOkF&h
zc>>G~;Cuj51Hv$MSx|K#|A53VutM@Ihz-IZKY}nQN<cJ741~Y1f=C30$u)!X4g<WR
z0I5SR=3(kUG|UemQ#9BZ7$z_>Fz_-kFo;3J29&2jVFwFikh&f03=B&_3@8Sf17Zq7
T>;*BwxPXI!VKSHnAz<nNnzI)d

literal 0
HcmV?d00001

diff --git a/soil/soil_dev.o b/soil/soil_dev.o
new file mode 100644
index 0000000000000000000000000000000000000000..ebe556dbbb0ad1a7ee9f6170f5ea459ccbd0ab75
GIT binary patch
literal 7012
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
UNZX5v71AyO(V%t|lL!L?008GB-T(jq

literal 0
HcmV?d00001

diff --git a/temp/.temp_dev.ko.cmd b/temp/.temp_dev.ko.cmd
new file mode 100644
index 0000000..ca3f6b6
--- /dev/null
+++ b/temp/.temp_dev.ko.cmd
@@ -0,0 +1 @@
+cmd_/home/pi/Desktop/project/temp/temp_dev.ko := ld -r  -EL -T ./scripts/module-common.lds -T ./arch/arm/kernel/module.lds  --build-id  -o /home/pi/Desktop/project/temp/temp_dev.ko /home/pi/Desktop/project/temp/temp_dev.o /home/pi/Desktop/project/temp/temp_dev.mod.o ;  true
diff --git a/temp/.temp_dev.mod.o.cmd b/temp/.temp_dev.mod.o.cmd
new file mode 100644
index 0000000..711ad99
--- /dev/null
+++ b/temp/.temp_dev.mod.o.cmd
@@ -0,0 +1,499 @@
+cmd_/home/pi/Desktop/project/temp/temp_dev.mod.o := gcc -Wp,-MD,/home/pi/Desktop/project/temp/.temp_dev.mod.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DKBUILD_BASENAME='"temp_dev.mod"' -DKBUILD_MODNAME='"temp_dev"' -DMODULE  -c -o /home/pi/Desktop/project/temp/temp_dev.mod.o /home/pi/Desktop/project/temp/temp_dev.mod.c
+
+source_/home/pi/Desktop/project/temp/temp_dev.mod.o := /home/pi/Desktop/project/temp/temp_dev.mod.c
+
+deps_/home/pi/Desktop/project/temp/temp_dev.mod.o := \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/retpoline.h) \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/build-salt.h \
+    $(wildcard include/config/build/salt.h) \
+  include/linux/elfnote.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/arm/lpae.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/module.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/unused/symbols.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/init.h \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/vermagic.h \
+  include/generated/utsrelease.h \
+
+/home/pi/Desktop/project/temp/temp_dev.mod.o: $(deps_/home/pi/Desktop/project/temp/temp_dev.mod.o)
+
+$(deps_/home/pi/Desktop/project/temp/temp_dev.mod.o):
diff --git a/temp/.temp_dev.o.cmd b/temp/.temp_dev.o.cmd
new file mode 100644
index 0000000..c9b94b9
--- /dev/null
+++ b/temp/.temp_dev.o.cmd
@@ -0,0 +1,720 @@
+cmd_/home/pi/Desktop/project/temp/temp_dev.o := gcc -Wp,-MD,/home/pi/Desktop/project/temp/.temp_dev.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned  -DMODULE  -DKBUILD_BASENAME='"temp_dev"' -DKBUILD_MODNAME='"temp_dev"' -c -o /home/pi/Desktop/project/temp/.tmp_temp_dev.o /home/pi/Desktop/project/temp/temp_dev.c
+
+source_/home/pi/Desktop/project/temp/temp_dev.o := /home/pi/Desktop/project/temp/temp_dev.c
+
+deps_/home/pi/Desktop/project/temp/temp_dev.o := \
+  include/linux/kconfig.h \
+    $(wildcard include/config/cpu/big/endian.h) \
+    $(wildcard include/config/booger.h) \
+    $(wildcard include/config/foo.h) \
+  include/linux/compiler_types.h \
+    $(wildcard include/config/have/arch/compiler/h.h) \
+    $(wildcard include/config/enable/must/check.h) \
+    $(wildcard include/config/arch/supports/optimized/inlining.h) \
+    $(wildcard include/config/optimize/inlining.h) \
+  include/linux/compiler-gcc.h \
+    $(wildcard include/config/retpoline.h) \
+    $(wildcard include/config/arch/use/builtin/bswap.h) \
+  include/linux/init.h \
+    $(wildcard include/config/have/arch/prel32/relocations.h) \
+    $(wildcard include/config/strict/kernel/rwx.h) \
+    $(wildcard include/config/strict/module/rwx.h) \
+  include/linux/compiler.h \
+    $(wildcard include/config/trace/branch/profiling.h) \
+    $(wildcard include/config/profile/all/branches.h) \
+    $(wildcard include/config/stack/validation.h) \
+    $(wildcard include/config/kasan.h) \
+  include/linux/compiler_types.h \
+  include/uapi/linux/types.h \
+  arch/arm/include/uapi/asm/types.h \
+  include/asm-generic/int-ll64.h \
+  include/uapi/asm-generic/int-ll64.h \
+  arch/arm/include/generated/uapi/asm/bitsperlong.h \
+  include/asm-generic/bitsperlong.h \
+    $(wildcard include/config/64bit.h) \
+  include/uapi/asm-generic/bitsperlong.h \
+  include/uapi/linux/posix_types.h \
+  include/linux/stddef.h \
+  include/uapi/linux/stddef.h \
+  arch/arm/include/uapi/asm/posix_types.h \
+  include/uapi/asm-generic/posix_types.h \
+  arch/arm/include/asm/barrier.h \
+    $(wildcard include/config/cpu/32v6k.h) \
+    $(wildcard include/config/thumb2/kernel.h) \
+    $(wildcard include/config/cpu/xsc3.h) \
+    $(wildcard include/config/cpu/fa526.h) \
+    $(wildcard include/config/arm/heavy/mb.h) \
+    $(wildcard include/config/arm/dma/mem/bufferable.h) \
+    $(wildcard include/config/smp.h) \
+    $(wildcard include/config/cpu/spectre.h) \
+  include/asm-generic/barrier.h \
+  include/linux/kasan-checks.h \
+  include/linux/types.h \
+    $(wildcard include/config/have/uid16.h) \
+    $(wildcard include/config/uid16.h) \
+    $(wildcard include/config/lbdaf.h) \
+    $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+    $(wildcard include/config/phys/addr/t/64bit.h) \
+  include/linux/kernel.h \
+    $(wildcard include/config/preempt/voluntary.h) \
+    $(wildcard include/config/debug/atomic/sleep.h) \
+    $(wildcard include/config/mmu.h) \
+    $(wildcard include/config/prove/locking.h) \
+    $(wildcard include/config/arch/has/refcount.h) \
+    $(wildcard include/config/panic/timeout.h) \
+    $(wildcard include/config/tracing.h) \
+    $(wildcard include/config/ftrace/mcount/record.h) \
+  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \
+  include/linux/linkage.h \
+  include/linux/stringify.h \
+  include/linux/export.h \
+    $(wildcard include/config/modules.h) \
+    $(wildcard include/config/modversions.h) \
+    $(wildcard include/config/module/rel/crcs.h) \
+    $(wildcard include/config/trim/unused/ksyms.h) \
+    $(wildcard include/config/unused/symbols.h) \
+  arch/arm/include/asm/linkage.h \
+  include/linux/bitops.h \
+  include/linux/bits.h \
+  arch/arm/include/asm/bitops.h \
+  include/linux/irqflags.h \
+    $(wildcard include/config/trace/irqflags.h) \
+    $(wildcard include/config/irqsoff/tracer.h) \
+    $(wildcard include/config/preempt/tracer.h) \
+    $(wildcard include/config/trace/irqflags/support.h) \
+  include/linux/typecheck.h \
+  arch/arm/include/asm/irqflags.h \
+    $(wildcard include/config/cpu/v7m.h) \
+  arch/arm/include/asm/ptrace.h \
+    $(wildcard include/config/arm/thumb.h) \
+  arch/arm/include/uapi/asm/ptrace.h \
+    $(wildcard include/config/cpu/endian/be8.h) \
+  arch/arm/include/asm/hwcap.h \
+  arch/arm/include/uapi/asm/hwcap.h \
+  include/asm-generic/irqflags.h \
+  include/asm-generic/bitops/non-atomic.h \
+  include/asm-generic/bitops/builtin-__fls.h \
+  include/asm-generic/bitops/builtin-__ffs.h \
+  include/asm-generic/bitops/builtin-fls.h \
+  include/asm-generic/bitops/builtin-ffs.h \
+  include/asm-generic/bitops/ffz.h \
+  include/asm-generic/bitops/fls64.h \
+  include/asm-generic/bitops/sched.h \
+  include/asm-generic/bitops/hweight.h \
+  include/asm-generic/bitops/arch_hweight.h \
+  include/asm-generic/bitops/const_hweight.h \
+  include/asm-generic/bitops/lock.h \
+  include/linux/atomic.h \
+    $(wildcard include/config/generic/atomic64.h) \
+  arch/arm/include/asm/atomic.h \
+    $(wildcard include/config/arm/lpae.h) \
+  include/linux/prefetch.h \
+  arch/arm/include/asm/processor.h \
+    $(wildcard include/config/have/hw/breakpoint.h) \
+    $(wildcard include/config/binfmt/elf/fdpic.h) \
+    $(wildcard include/config/arm/errata/754327.h) \
+  arch/arm/include/asm/hw_breakpoint.h \
+  arch/arm/include/asm/unified.h \
+  arch/arm/include/asm/cache.h \
+    $(wildcard include/config/arm/l1/cache/shift.h) \
+    $(wildcard include/config/aeabi.h) \
+  arch/arm/include/asm/cmpxchg.h \
+    $(wildcard include/config/cpu/sa1100.h) \
+    $(wildcard include/config/cpu/sa110.h) \
+    $(wildcard include/config/cpu/v6.h) \
+  include/asm-generic/cmpxchg-local.h \
+  include/asm-generic/atomic-long.h \
+  include/asm-generic/bitops/find.h \
+    $(wildcard include/config/generic/find/first/bit.h) \
+  include/asm-generic/bitops/le.h \
+  arch/arm/include/uapi/asm/byteorder.h \
+  include/linux/byteorder/little_endian.h \
+  include/uapi/linux/byteorder/little_endian.h \
+  include/linux/swab.h \
+  include/uapi/linux/swab.h \
+  arch/arm/include/asm/swab.h \
+  arch/arm/include/uapi/asm/swab.h \
+  include/linux/byteorder/generic.h \
+  include/asm-generic/bitops/ext2-atomic-setbit.h \
+  include/linux/log2.h \
+    $(wildcard include/config/arch/has/ilog2/u32.h) \
+    $(wildcard include/config/arch/has/ilog2/u64.h) \
+  include/linux/printk.h \
+    $(wildcard include/config/message/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/default.h) \
+    $(wildcard include/config/console/loglevel/quiet.h) \
+    $(wildcard include/config/early/printk.h) \
+    $(wildcard include/config/printk/nmi.h) \
+    $(wildcard include/config/printk.h) \
+    $(wildcard include/config/dynamic/debug.h) \
+  include/linux/kern_levels.h \
+  include/linux/cache.h \
+    $(wildcard include/config/arch/has/cache/line/size.h) \
+  include/uapi/linux/kernel.h \
+  include/uapi/linux/sysinfo.h \
+  include/linux/build_bug.h \
+  arch/arm/include/asm/div64.h \
+  arch/arm/include/asm/compiler.h \
+  include/asm-generic/div64.h \
+  include/linux/module.h \
+    $(wildcard include/config/sysfs.h) \
+    $(wildcard include/config/modules/tree/lookup.h) \
+    $(wildcard include/config/livepatch.h) \
+    $(wildcard include/config/module/sig.h) \
+    $(wildcard include/config/generic/bug.h) \
+    $(wildcard include/config/kallsyms.h) \
+    $(wildcard include/config/tracepoints.h) \
+    $(wildcard include/config/jump/label.h) \
+    $(wildcard include/config/event/tracing.h) \
+    $(wildcard include/config/module/unload.h) \
+    $(wildcard include/config/constructors.h) \
+    $(wildcard include/config/function/error/injection.h) \
+  include/linux/list.h \
+    $(wildcard include/config/debug/list.h) \
+  include/linux/poison.h \
+    $(wildcard include/config/illegal/pointer/value.h) \
+    $(wildcard include/config/page/poisoning/zero.h) \
+  include/linux/const.h \
+  include/uapi/linux/const.h \
+  include/linux/stat.h \
+  arch/arm/include/uapi/asm/stat.h \
+  include/uapi/linux/stat.h \
+  include/linux/time.h \
+    $(wildcard include/config/arch/uses/gettimeoffset.h) \
+  include/linux/seqlock.h \
+    $(wildcard include/config/debug/lock/alloc.h) \
+  include/linux/spinlock.h \
+    $(wildcard include/config/debug/spinlock.h) \
+    $(wildcard include/config/preempt.h) \
+  include/linux/preempt.h \
+    $(wildcard include/config/preempt/count.h) \
+    $(wildcard include/config/debug/preempt.h) \
+    $(wildcard include/config/trace/preempt/toggle.h) \
+    $(wildcard include/config/preempt/notifiers.h) \
+  arch/arm/include/generated/asm/preempt.h \
+  include/asm-generic/preempt.h \
+  include/linux/thread_info.h \
+    $(wildcard include/config/thread/info/in/task.h) \
+    $(wildcard include/config/have/arch/within/stack/frames.h) \
+    $(wildcard include/config/hardened/usercopy.h) \
+  include/linux/bug.h \
+    $(wildcard include/config/bug/on/data/corruption.h) \
+  arch/arm/include/asm/bug.h \
+    $(wildcard include/config/debug/bugverbose.h) \
+  arch/arm/include/asm/opcodes.h \
+    $(wildcard include/config/cpu/endian/be32.h) \
+  include/asm-generic/bug.h \
+    $(wildcard include/config/bug.h) \
+    $(wildcard include/config/generic/bug/relative/pointers.h) \
+  include/linux/restart_block.h \
+  include/linux/time64.h \
+    $(wildcard include/config/64bit/time.h) \
+  include/linux/math64.h \
+    $(wildcard include/config/arch/supports/int128.h) \
+  include/uapi/linux/time.h \
+  arch/arm/include/asm/thread_info.h \
+    $(wildcard include/config/crunch.h) \
+    $(wildcard include/config/arm/thumbee.h) \
+  arch/arm/include/asm/fpstate.h \
+    $(wildcard include/config/vfpv3.h) \
+    $(wildcard include/config/iwmmxt.h) \
+  arch/arm/include/asm/page.h \
+    $(wildcard include/config/cpu/copy/v4wt.h) \
+    $(wildcard include/config/cpu/copy/v4wb.h) \
+    $(wildcard include/config/cpu/copy/feroceon.h) \
+    $(wildcard include/config/cpu/copy/fa.h) \
+    $(wildcard include/config/cpu/xscale.h) \
+    $(wildcard include/config/cpu/copy/v6.h) \
+    $(wildcard include/config/kuser/helpers.h) \
+    $(wildcard include/config/have/arch/pfn/valid.h) \
+  arch/arm/include/asm/glue.h \
+  arch/arm/include/asm/pgtable-2level-types.h \
+  arch/arm/include/asm/memory.h \
+    $(wildcard include/config/need/mach/memory/h.h) \
+    $(wildcard include/config/page/offset.h) \
+    $(wildcard include/config/highmem.h) \
+    $(wildcard include/config/dram/base.h) \
+    $(wildcard include/config/dram/size.h) \
+    $(wildcard include/config/xip/kernel.h) \
+    $(wildcard include/config/have/tcm.h) \
+    $(wildcard include/config/arm/patch/phys/virt.h) \
+    $(wildcard include/config/phys/offset.h) \
+    $(wildcard include/config/xip/phys/addr.h) \
+    $(wildcard include/config/debug/virtual.h) \
+  include/linux/sizes.h \
+  include/asm-generic/memory_model.h \
+    $(wildcard include/config/flatmem.h) \
+    $(wildcard include/config/discontigmem.h) \
+    $(wildcard include/config/sparsemem/vmemmap.h) \
+    $(wildcard include/config/sparsemem.h) \
+  include/linux/pfn.h \
+  include/asm-generic/getorder.h \
+  include/linux/bottom_half.h \
+  include/linux/spinlock_types.h \
+  arch/arm/include/asm/spinlock_types.h \
+  include/linux/lockdep.h \
+    $(wildcard include/config/lockdep.h) \
+    $(wildcard include/config/lock/stat.h) \
+  include/linux/rwlock_types.h \
+  arch/arm/include/asm/spinlock.h \
+  include/linux/rwlock.h \
+  include/linux/spinlock_api_smp.h \
+    $(wildcard include/config/inline/spin/lock.h) \
+    $(wildcard include/config/inline/spin/lock/bh.h) \
+    $(wildcard include/config/inline/spin/lock/irq.h) \
+    $(wildcard include/config/inline/spin/lock/irqsave.h) \
+    $(wildcard include/config/inline/spin/trylock.h) \
+    $(wildcard include/config/inline/spin/trylock/bh.h) \
+    $(wildcard include/config/uninline/spin/unlock.h) \
+    $(wildcard include/config/inline/spin/unlock/bh.h) \
+    $(wildcard include/config/inline/spin/unlock/irq.h) \
+    $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+    $(wildcard include/config/generic/lockbreak.h) \
+  include/linux/rwlock_api_smp.h \
+    $(wildcard include/config/inline/read/lock.h) \
+    $(wildcard include/config/inline/write/lock.h) \
+    $(wildcard include/config/inline/read/lock/bh.h) \
+    $(wildcard include/config/inline/write/lock/bh.h) \
+    $(wildcard include/config/inline/read/lock/irq.h) \
+    $(wildcard include/config/inline/write/lock/irq.h) \
+    $(wildcard include/config/inline/read/lock/irqsave.h) \
+    $(wildcard include/config/inline/write/lock/irqsave.h) \
+    $(wildcard include/config/inline/read/trylock.h) \
+    $(wildcard include/config/inline/write/trylock.h) \
+    $(wildcard include/config/inline/read/unlock.h) \
+    $(wildcard include/config/inline/write/unlock.h) \
+    $(wildcard include/config/inline/read/unlock/bh.h) \
+    $(wildcard include/config/inline/write/unlock/bh.h) \
+    $(wildcard include/config/inline/read/unlock/irq.h) \
+    $(wildcard include/config/inline/write/unlock/irq.h) \
+    $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+    $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+  include/linux/time32.h \
+  include/linux/uidgid.h \
+    $(wildcard include/config/multiuser.h) \
+    $(wildcard include/config/user/ns.h) \
+  include/linux/highuid.h \
+  include/linux/kmod.h \
+  include/linux/umh.h \
+  include/linux/gfp.h \
+    $(wildcard include/config/zone/dma.h) \
+    $(wildcard include/config/zone/dma32.h) \
+    $(wildcard include/config/zone/device.h) \
+    $(wildcard include/config/numa.h) \
+    $(wildcard include/config/pm/sleep.h) \
+    $(wildcard include/config/memory/isolation.h) \
+    $(wildcard include/config/compaction.h) \
+    $(wildcard include/config/cma.h) \
+  include/linux/mmdebug.h \
+    $(wildcard include/config/debug/vm.h) \
+    $(wildcard include/config/debug/vm/pgflags.h) \
+  include/linux/mmzone.h \
+    $(wildcard include/config/force/max/zoneorder.h) \
+    $(wildcard include/config/zsmalloc.h) \
+    $(wildcard include/config/memcg.h) \
+    $(wildcard include/config/memory/hotplug.h) \
+    $(wildcard include/config/flat/node/mem/map.h) \
+    $(wildcard include/config/page/extension.h) \
+    $(wildcard include/config/no/bootmem.h) \
+    $(wildcard include/config/deferred/struct/page/init.h) \
+    $(wildcard include/config/transparent/hugepage.h) \
+    $(wildcard include/config/have/memory/present.h) \
+    $(wildcard include/config/have/memoryless/nodes.h) \
+    $(wildcard include/config/have/memblock/node/map.h) \
+    $(wildcard include/config/need/multiple/nodes.h) \
+    $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+    $(wildcard include/config/sparsemem/extreme.h) \
+    $(wildcard include/config/memory/hotremove.h) \
+    $(wildcard include/config/holes/in/zone.h) \
+    $(wildcard include/config/arch/has/holes/memorymodel.h) \
+  include/linux/wait.h \
+  arch/arm/include/generated/asm/current.h \
+  include/asm-generic/current.h \
+  include/uapi/linux/wait.h \
+  include/linux/threads.h \
+    $(wildcard include/config/nr/cpus.h) \
+    $(wildcard include/config/base/small.h) \
+  include/linux/numa.h \
+    $(wildcard include/config/nodes/shift.h) \
+  include/linux/nodemask.h \
+  include/linux/bitmap.h \
+  include/linux/string.h \
+    $(wildcard include/config/binary/printf.h) \
+    $(wildcard include/config/fortify/source.h) \
+  include/uapi/linux/string.h \
+  arch/arm/include/asm/string.h \
+    $(wildcard include/config/bcm2835/fast/memcpy.h) \
+  include/linux/pageblock-flags.h \
+    $(wildcard include/config/hugetlb/page.h) \
+    $(wildcard include/config/hugetlb/page/size/variable.h) \
+  include/linux/page-flags-layout.h \
+    $(wildcard include/config/numa/balancing.h) \
+  include/generated/bounds.h \
+  include/linux/memory_hotplug.h \
+    $(wildcard include/config/arch/has/add/pages.h) \
+    $(wildcard include/config/have/arch/nodedata/extension.h) \
+    $(wildcard include/config/have/bootmem/info/node.h) \
+  include/linux/notifier.h \
+    $(wildcard include/config/tree/srcu.h) \
+  include/linux/errno.h \
+  include/uapi/linux/errno.h \
+  arch/arm/include/generated/uapi/asm/errno.h \
+  include/uapi/asm-generic/errno.h \
+  include/uapi/asm-generic/errno-base.h \
+  include/linux/mutex.h \
+    $(wildcard include/config/mutex/spin/on/owner.h) \
+    $(wildcard include/config/debug/mutexes.h) \
+  include/linux/osq_lock.h \
+  include/linux/debug_locks.h \
+    $(wildcard include/config/debug/locking/api/selftests.h) \
+  include/linux/rwsem.h \
+    $(wildcard include/config/rwsem/spin/on/owner.h) \
+    $(wildcard include/config/rwsem/generic/spinlock.h) \
+  include/linux/err.h \
+  arch/arm/include/generated/asm/rwsem.h \
+  include/asm-generic/rwsem.h \
+  include/linux/srcu.h \
+    $(wildcard include/config/tiny/srcu.h) \
+    $(wildcard include/config/srcu.h) \
+  include/linux/rcupdate.h \
+    $(wildcard include/config/preempt/rcu.h) \
+    $(wildcard include/config/rcu/stall/common.h) \
+    $(wildcard include/config/no/hz/full.h) \
+    $(wildcard include/config/rcu/nocb/cpu.h) \
+    $(wildcard include/config/tasks/rcu.h) \
+    $(wildcard include/config/tree/rcu.h) \
+    $(wildcard include/config/tiny/rcu.h) \
+    $(wildcard include/config/debug/objects/rcu/head.h) \
+    $(wildcard include/config/hotplug/cpu.h) \
+    $(wildcard include/config/prove/rcu.h) \
+    $(wildcard include/config/rcu/boost.h) \
+    $(wildcard include/config/arch/weak/release/acquire.h) \
+  include/linux/cpumask.h \
+    $(wildcard include/config/cpumask/offstack.h) \
+    $(wildcard include/config/debug/per/cpu/maps.h) \
+  include/linux/rcutree.h \
+  include/linux/workqueue.h \
+    $(wildcard include/config/debug/objects/work.h) \
+    $(wildcard include/config/freezer.h) \
+    $(wildcard include/config/wq/watchdog.h) \
+  include/linux/timer.h \
+    $(wildcard include/config/debug/objects/timers.h) \
+    $(wildcard include/config/no/hz/common.h) \
+  include/linux/ktime.h \
+  include/linux/jiffies.h \
+  include/linux/timex.h \
+  include/uapi/linux/timex.h \
+  include/uapi/linux/param.h \
+  arch/arm/include/generated/uapi/asm/param.h \
+  include/asm-generic/param.h \
+    $(wildcard include/config/hz.h) \
+  include/uapi/asm-generic/param.h \
+  arch/arm/include/asm/timex.h \
+  include/generated/timeconst.h \
+  include/linux/timekeeping.h \
+  include/linux/timekeeping32.h \
+  include/linux/debugobjects.h \
+    $(wildcard include/config/debug/objects.h) \
+    $(wildcard include/config/debug/objects/free.h) \
+  include/linux/rcu_segcblist.h \
+  include/linux/srcutree.h \
+  include/linux/rcu_node_tree.h \
+    $(wildcard include/config/rcu/fanout.h) \
+    $(wildcard include/config/rcu/fanout/leaf.h) \
+  include/linux/completion.h \
+  include/linux/topology.h \
+    $(wildcard include/config/use/percpu/numa/node/id.h) \
+    $(wildcard include/config/sched/smt.h) \
+  include/linux/smp.h \
+    $(wildcard include/config/up/late/init.h) \
+  include/linux/llist.h \
+    $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+  arch/arm/include/asm/smp.h \
+  include/linux/percpu.h \
+    $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+    $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+    $(wildcard include/config/have/setup/per/cpu/area.h) \
+  arch/arm/include/asm/percpu.h \
+  include/asm-generic/percpu.h \
+  include/linux/percpu-defs.h \
+    $(wildcard include/config/debug/force/weak/per/cpu.h) \
+    $(wildcard include/config/virtualization.h) \
+    $(wildcard include/config/amd/mem/encrypt.h) \
+  arch/arm/include/asm/topology.h \
+    $(wildcard include/config/arm/cpu/topology.h) \
+  include/linux/arch_topology.h \
+  include/asm-generic/topology.h \
+  include/linux/sysctl.h \
+    $(wildcard include/config/sysctl.h) \
+  include/linux/rbtree.h \
+  include/uapi/linux/sysctl.h \
+  include/linux/elf.h \
+  arch/arm/include/asm/elf.h \
+    $(wildcard include/config/vdso.h) \
+  arch/arm/include/asm/auxvec.h \
+  arch/arm/include/uapi/asm/auxvec.h \
+  arch/arm/include/asm/vdso_datapage.h \
+  arch/arm/include/asm/user.h \
+  include/uapi/linux/elf.h \
+  include/uapi/linux/elf-em.h \
+  include/linux/kobject.h \
+    $(wildcard include/config/uevent/helper.h) \
+    $(wildcard include/config/debug/kobject/release.h) \
+  include/linux/sysfs.h \
+  include/linux/kernfs.h \
+    $(wildcard include/config/kernfs.h) \
+  include/linux/idr.h \
+  include/linux/radix-tree.h \
+    $(wildcard include/config/radix/tree/multiorder.h) \
+  include/linux/kobject_ns.h \
+  include/linux/kref.h \
+  include/linux/refcount.h \
+    $(wildcard include/config/refcount/full.h) \
+  include/linux/moduleparam.h \
+    $(wildcard include/config/alpha.h) \
+    $(wildcard include/config/ia64.h) \
+    $(wildcard include/config/ppc64.h) \
+  include/linux/jump_label.h \
+  arch/arm/include/asm/jump_label.h \
+  include/linux/rbtree_latch.h \
+  include/linux/error-injection.h \
+  include/asm-generic/error-injection.h \
+  include/linux/tracepoint-defs.h \
+  include/linux/static_key.h \
+  arch/arm/include/asm/module.h \
+    $(wildcard include/config/arm/unwind.h) \
+    $(wildcard include/config/arm/module/plts.h) \
+  include/asm-generic/module.h \
+    $(wildcard include/config/have/mod/arch/specific.h) \
+    $(wildcard include/config/modules/use/elf/rel.h) \
+    $(wildcard include/config/modules/use/elf/rela.h) \
+  include/linux/fs.h \
+    $(wildcard include/config/fs/posix/acl.h) \
+    $(wildcard include/config/security.h) \
+    $(wildcard include/config/cgroup/writeback.h) \
+    $(wildcard include/config/ima.h) \
+    $(wildcard include/config/fsnotify.h) \
+    $(wildcard include/config/fs/encryption.h) \
+    $(wildcard include/config/epoll.h) \
+    $(wildcard include/config/file/locking.h) \
+    $(wildcard include/config/quota.h) \
+    $(wildcard include/config/fs/dax.h) \
+    $(wildcard include/config/block.h) \
+    $(wildcard include/config/mandatory/file/locking.h) \
+    $(wildcard include/config/migration.h) \
+  include/linux/wait_bit.h \
+  include/linux/kdev_t.h \
+  include/uapi/linux/kdev_t.h \
+  include/linux/dcache.h \
+  include/linux/rculist.h \
+  include/linux/rculist_bl.h \
+  include/linux/list_bl.h \
+  include/linux/bit_spinlock.h \
+  include/linux/lockref.h \
+    $(wildcard include/config/arch/use/cmpxchg/lockref.h) \
+  include/linux/stringhash.h \
+    $(wildcard include/config/dcache/word/access.h) \
+  include/linux/hash.h \
+    $(wildcard include/config/have/arch/hash.h) \
+  include/linux/path.h \
+  include/linux/list_lru.h \
+    $(wildcard include/config/memcg/kmem.h) \
+  include/linux/shrinker.h \
+  include/linux/xarray.h \
+  include/linux/pid.h \
+  include/linux/mm_types.h \
+    $(wildcard include/config/have/aligned/struct/page.h) \
+    $(wildcard include/config/userfaultfd.h) \
+    $(wildcard include/config/have/arch/compat/mmap/bases.h) \
+    $(wildcard include/config/membarrier.h) \
+    $(wildcard include/config/aio.h) \
+    $(wildcard include/config/mmu/notifier.h) \
+    $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \
+    $(wildcard include/config/hmm.h) \
+  include/linux/mm_types_task.h \
+    $(wildcard include/config/split/ptlock/cpus.h) \
+    $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \
+  include/linux/auxvec.h \
+  include/uapi/linux/auxvec.h \
+  include/linux/uprobes.h \
+    $(wildcard include/config/uprobes.h) \
+  arch/arm/include/asm/mmu.h \
+    $(wildcard include/config/cpu/has/asid.h) \
+  include/linux/capability.h \
+  include/uapi/linux/capability.h \
+  include/linux/semaphore.h \
+  include/linux/fcntl.h \
+  include/uapi/linux/fcntl.h \
+  arch/arm/include/uapi/asm/fcntl.h \
+  include/uapi/asm-generic/fcntl.h \
+  include/uapi/linux/fiemap.h \
+  include/linux/migrate_mode.h \
+  include/linux/percpu-rwsem.h \
+  include/linux/rcuwait.h \
+  include/linux/rcu_sync.h \
+  include/linux/delayed_call.h \
+  include/linux/uuid.h \
+  include/uapi/linux/uuid.h \
+  include/linux/errseq.h \
+  include/linux/ioprio.h \
+  include/linux/sched.h \
+    $(wildcard include/config/virt/cpu/accounting/native.h) \
+    $(wildcard include/config/sched/info.h) \
+    $(wildcard include/config/schedstats.h) \
+    $(wildcard include/config/fair/group/sched.h) \
+    $(wildcard include/config/rt/group/sched.h) \
+    $(wildcard include/config/cgroup/sched.h) \
+    $(wildcard include/config/blk/dev/io/trace.h) \
+    $(wildcard include/config/compat/brk.h) \
+    $(wildcard include/config/cgroups.h) \
+    $(wildcard include/config/blk/cgroup.h) \
+    $(wildcard include/config/stackprotector.h) \
+    $(wildcard include/config/arch/has/scaled/cputime.h) \
+    $(wildcard include/config/virt/cpu/accounting/gen.h) \
+    $(wildcard include/config/posix/timers.h) \
+    $(wildcard include/config/sysvipc.h) \
+    $(wildcard include/config/detect/hung/task.h) \
+    $(wildcard include/config/auditsyscall.h) \
+    $(wildcard include/config/rt/mutexes.h) \
+    $(wildcard include/config/ubsan.h) \
+    $(wildcard include/config/task/xacct.h) \
+    $(wildcard include/config/cpusets.h) \
+    $(wildcard include/config/intel/rdt.h) \
+    $(wildcard include/config/futex.h) \
+    $(wildcard include/config/compat.h) \
+    $(wildcard include/config/perf/events.h) \
+    $(wildcard include/config/rseq.h) \
+    $(wildcard include/config/task/delay/acct.h) \
+    $(wildcard include/config/fault/injection.h) \
+    $(wildcard include/config/latencytop.h) \
+    $(wildcard include/config/function/graph/tracer.h) \
+    $(wildcard include/config/kcov.h) \
+    $(wildcard include/config/bcache.h) \
+    $(wildcard include/config/vmap/stack.h) \
+    $(wildcard include/config/arch/task/struct/on/stack.h) \
+    $(wildcard include/config/debug/rseq.h) \
+  include/uapi/linux/sched.h \
+  include/linux/sem.h \
+  include/uapi/linux/sem.h \
+  include/linux/ipc.h \
+  include/linux/rhashtable-types.h \
+  include/uapi/linux/ipc.h \
+  arch/arm/include/generated/uapi/asm/ipcbuf.h \
+  include/uapi/asm-generic/ipcbuf.h \
+  arch/arm/include/generated/uapi/asm/sembuf.h \
+  include/uapi/asm-generic/sembuf.h \
+  include/linux/shm.h \
+  include/uapi/linux/shm.h \
+  include/uapi/asm-generic/hugetlb_encode.h \
+  arch/arm/include/generated/uapi/asm/shmbuf.h \
+  include/uapi/asm-generic/shmbuf.h \
+  arch/arm/include/asm/shmparam.h \
+  include/linux/kcov.h \
+  include/uapi/linux/kcov.h \
+  include/linux/plist.h \
+    $(wildcard include/config/debug/pi/list.h) \
+  include/linux/hrtimer.h \
+    $(wildcard include/config/high/res/timers.h) \
+    $(wildcard include/config/time/low/res.h) \
+    $(wildcard include/config/timerfd.h) \
+  include/linux/timerqueue.h \
+  include/linux/seccomp.h \
+    $(wildcard include/config/seccomp.h) \
+    $(wildcard include/config/have/arch/seccomp/filter.h) \
+    $(wildcard include/config/seccomp/filter.h) \
+    $(wildcard include/config/checkpoint/restore.h) \
+  include/uapi/linux/seccomp.h \
+  arch/arm/include/generated/asm/seccomp.h \
+  include/asm-generic/seccomp.h \
+  include/uapi/linux/unistd.h \
+  arch/arm/include/asm/unistd.h \
+    $(wildcard include/config/oabi/compat.h) \
+  arch/arm/include/uapi/asm/unistd.h \
+  arch/arm/include/generated/uapi/asm/unistd-eabi.h \
+  arch/arm/include/generated/uapi/asm/unistd-common.h \
+  arch/arm/include/generated/asm/unistd-nr.h \
+  include/linux/resource.h \
+  include/uapi/linux/resource.h \
+  arch/arm/include/generated/uapi/asm/resource.h \
+  include/asm-generic/resource.h \
+  include/uapi/asm-generic/resource.h \
+  include/linux/latencytop.h \
+  include/linux/sched/prio.h \
+  include/linux/signal_types.h \
+    $(wildcard include/config/old/sigaction.h) \
+  include/uapi/linux/signal.h \
+  arch/arm/include/asm/signal.h \
+  arch/arm/include/uapi/asm/signal.h \
+  include/uapi/asm-generic/signal-defs.h \
+  arch/arm/include/uapi/asm/sigcontext.h \
+  arch/arm/include/generated/uapi/asm/siginfo.h \
+  include/uapi/asm-generic/siginfo.h \
+  include/linux/task_io_accounting.h \
+    $(wildcard include/config/task/io/accounting.h) \
+  include/uapi/linux/rseq.h \
+  include/linux/sched/rt.h \
+  include/linux/iocontext.h \
+  include/uapi/linux/fs.h \
+  include/uapi/linux/limits.h \
+  include/uapi/linux/ioctl.h \
+  arch/arm/include/generated/uapi/asm/ioctl.h \
+  include/asm-generic/ioctl.h \
+  include/uapi/asm-generic/ioctl.h \
+  include/linux/quota.h \
+    $(wildcard include/config/quota/netlink/interface.h) \
+  include/linux/percpu_counter.h \
+  include/uapi/linux/dqblk_xfs.h \
+  include/linux/dqblk_v1.h \
+  include/linux/dqblk_v2.h \
+  include/linux/dqblk_qtree.h \
+  include/linux/projid.h \
+  include/uapi/linux/quota.h \
+  include/linux/nfs_fs_i.h \
+  include/linux/uaccess.h \
+  arch/arm/include/asm/uaccess.h \
+    $(wildcard include/config/cpu/sw/domain/pan.h) \
+    $(wildcard include/config/cpu/use/domains.h) \
+    $(wildcard include/config/uaccess/with/memcpy.h) \
+  arch/arm/include/asm/domain.h \
+    $(wildcard include/config/io/36.h) \
+    $(wildcard include/config/cpu/cp15/mmu.h) \
+  arch/arm/include/generated/asm/extable.h \
+  include/asm-generic/extable.h \
+  include/linux/slab.h \
+    $(wildcard include/config/debug/slab.h) \
+    $(wildcard include/config/failslab.h) \
+    $(wildcard include/config/have/hardened/usercopy/allocator.h) \
+    $(wildcard include/config/slab.h) \
+    $(wildcard include/config/slub.h) \
+    $(wildcard include/config/slob.h) \
+  include/linux/overflow.h \
+  include/linux/kasan.h \
+  include/linux/delay.h \
+  arch/arm/include/asm/delay.h \
+  arch/arm/include/asm/mach/map.h \
+    $(wildcard include/config/debug/ll.h) \
+  arch/arm/include/asm/io.h \
+    $(wildcard include/config/pci.h) \
+    $(wildcard include/config/need/mach/io/h.h) \
+    $(wildcard include/config/pcmcia/soc/common.h) \
+    $(wildcard include/config/isa.h) \
+    $(wildcard include/config/pccard.h) \
+  include/asm-generic/pci_iomap.h \
+    $(wildcard include/config/no/generic/pci/ioport/map.h) \
+    $(wildcard include/config/generic/pci/iomap.h) \
+  include/xen/xen.h \
+    $(wildcard include/config/xen.h) \
+    $(wildcard include/config/xen/pvh.h) \
+    $(wildcard include/config/xen/dom0.h) \
+  include/asm-generic/io.h \
+    $(wildcard include/config/generic/iomap.h) \
+    $(wildcard include/config/has/ioport/map.h) \
+    $(wildcard include/config/virt/to/bus.h) \
+  include/linux/logic_pio.h \
+    $(wildcard include/config/indirect/pio.h) \
+  include/linux/fwnode.h \
+  include/linux/vmalloc.h \
+
+/home/pi/Desktop/project/temp/temp_dev.o: $(deps_/home/pi/Desktop/project/temp/temp_dev.o)
+
+$(deps_/home/pi/Desktop/project/temp/temp_dev.o):
diff --git a/temp/.tmp_versions/temp_dev.mod b/temp/.tmp_versions/temp_dev.mod
new file mode 100644
index 0000000..f48d054
--- /dev/null
+++ b/temp/.tmp_versions/temp_dev.mod
@@ -0,0 +1,3 @@
+/home/pi/Desktop/project/temp/temp_dev.ko
+/home/pi/Desktop/project/temp/temp_dev.o
+
diff --git a/temp/Makefile b/temp/Makefile
new file mode 100644
index 0000000..ae4c42c
--- /dev/null
+++ b/temp/Makefile
@@ -0,0 +1,11 @@
+KERNEL_VER := $(shell uname -r)
+KERNEL_DIR = '/lib/modules/$(KERNEL_VER)/build'
+
+obj-m := temp_dev.o
+
+PWD := $(shell pwd)
+
+all:
+	make -C $(KERNEL_DIR) M=$(PWD) modules
+clean:
+	make -C $(KERNEL_DIR) M=$(PWD) clean
diff --git a/temp/Module.symvers b/temp/Module.symvers
new file mode 100644
index 0000000..e69de29
diff --git a/temp/modules.order b/temp/modules.order
new file mode 100644
index 0000000..8e91cde
--- /dev/null
+++ b/temp/modules.order
@@ -0,0 +1 @@
+kernel//home/pi/Desktop/project/temp/temp_dev.ko
diff --git a/temp/sc.sh b/temp/sc.sh
new file mode 100755
index 0000000..dbeb880
--- /dev/null
+++ b/temp/sc.sh
@@ -0,0 +1,4 @@
+make clean
+make
+sudo rmmod temp_dev
+sudo insmod temp_dev.ko
diff --git a/temp/temp_dev.c b/temp/temp_dev.c
new file mode 100644
index 0000000..3086e04
--- /dev/null
+++ b/temp/temp_dev.c
@@ -0,0 +1,121 @@
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/fs.h>
+#include <linux/uaccess.h>
+#include <linux/slab.h>
+#include <linux/ktime.h>
+#include <linux/timer.h>
+#include <linux/delay.h>
+
+#include <asm/mach/map.h>
+#include <asm/io.h>
+#include <asm/uaccess.h>
+
+#define MAX_TIME 87
+
+#define TEMP_MAJOR_NUMBER 502
+#define TEMP_MINOR_NUMBER 102
+#define TEMP_DEV_NAME "temp"
+
+#define GPIO_BASE_ADDR 0x3F200000
+#define GPFSEL0 0x00
+#define GPSET0 0x1C
+#define GPCLR0 0x28
+#define GPLEV0 0x34
+
+static void __iomem *gpio_base;
+volatile unsigned int *gpsel0;
+volatile unsigned int *gpset1;
+volatile unsigned int *gpclr1;
+volatile unsigned int *gplev1;
+
+int temp_open(struct inode *inode, struct file *filp){
+   printk(KERN_ALERT "temp driver open!!\n");
+   
+   gpio_base = ioremap(GPIO_BASE_ADDR, 0x60);
+   gpsel0 = (volatile unsigned int *)(gpio_base + GPFSEL0);
+   gpset1 = (volatile unsigned int *)(gpio_base + GPSET0);
+   gpclr1 = (volatile unsigned int *)(gpio_base + GPCLR0);
+   gplev1 = (volatile unsigned int *)(gpio_base + GPLEV0);
+   return 0;
+}
+
+int temp_release(struct inode *inode, struct file *filp){
+   printk(KERN_ALERT "temp driver closed!!\n");
+   iounmap((void *)gpio_base);
+   return 0;
+}
+
+ssize_t temp_read(struct file *filp, char *buf, size_t size, loff_t *f_pos){
+   int dht11_dat[5] = {0, };
+   int count=0;
+   int j=0;
+   int i=0;
+   int laststate = 1;
+   dht11_dat[0] = dht11_dat[1] = dht11_dat[2] = dht11_dat[3] = dht11_dat[4] = 0;
+   
+   *gpsel0 |= (1<<12);
+   *gpclr1 |= (1<<4);
+   mdelay(18);
+   
+   *gpset1 |= (1<<4);
+   udelay(40);
+   *gpsel0 &= (0<<12);
+   
+   for (i = 0; i < MAX_TIME; i++) {
+      count = 0 ;
+      while (((*gplev1 >> 4) & 1) == laststate) {
+         count++;
+         udelay(1);
+         if (count > 200) break;
+      }
+      laststate = ((*gplev1 >> 4) & 1);
+      if (count > 200) break ;
+      if ((i >= 4) && (i % 2 == 0)) {
+         dht11_dat[j / 8] <<= 1 ;
+         if (count > 20) dht11_dat[j / 8] |= 1 ;
+         j++ ;
+      }
+      //printk(KERN_ALERT "j:%d\n",j);
+   }
+   
+   if ((j == 40) && (dht11_dat[4] == ((dht11_dat[0] + dht11_dat[1] + dht11_dat[2] + dht11_dat[3]) & 0xff))) {
+      printk(KERN_ALERT "humidity = %d.%d %% Temperature = %d.%d *C \n", dht11_dat[0], dht11_dat[1], dht11_dat[2], dht11_dat[3]) ;
+   }
+   else{
+      printk(KERN_ALERT "Data get failed\n");
+   }
+   
+   copy_to_user(buf, &dht11_dat, sizeof(dht11_dat));
+   
+   return size;
+}
+
+static struct file_operations temp_fops={
+   .owner = THIS_MODULE,
+   .read = temp_read,
+   .open = temp_open,
+   .release = temp_release
+};
+
+int __init temp_init(void){
+   if(register_chrdev(TEMP_MAJOR_NUMBER, TEMP_DEV_NAME, &temp_fops) < 0)
+      printk(KERN_ALERT "temp driver initialization fail\n");
+   else
+      printk(KERN_ALERT "temp driver initialization success\n");
+   
+   return 0;
+}
+
+void __exit temp_exit(void){
+   unregister_chrdev(TEMP_MAJOR_NUMBER, TEMP_DEV_NAME);
+   printk(KERN_ALERT "temp driver exit done\n");
+}
+
+module_init(temp_init);
+module_exit(temp_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Damin");
+MODULE_DESCRIPTION("des");
diff --git a/temp/temp_dev.ko b/temp/temp_dev.ko
new file mode 100644
index 0000000000000000000000000000000000000000..fb2c2eddb0c8f59c6bce50e130adc853cfd23907
GIT binary patch
literal 7900
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
I%{w4<0N?nT;{X5v

literal 0
HcmV?d00001

diff --git a/temp/temp_dev.mod.c b/temp/temp_dev.mod.c
new file mode 100644
index 0000000..f6301e9
--- /dev/null
+++ b/temp/temp_dev.mod.c
@@ -0,0 +1,48 @@
+#include <linux/build-salt.h>
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+BUILD_SALT;
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+MODULE_INFO(name, KBUILD_MODNAME);
+
+__visible struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+	.name = KBUILD_MODNAME,
+	.init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+	.exit = cleanup_module,
+#endif
+	.arch = MODULE_ARCH_INIT,
+};
+
+#ifdef CONFIG_RETPOLINE
+MODULE_INFO(retpoline, "Y");
+#endif
+
+static const struct modversion_info ____versions[]
+__used
+__attribute__((section("__versions"))) = {
+	{ 0xad1a7def, "module_layout" },
+	{ 0x6bc3fbc0, "__unregister_chrdev" },
+	{ 0xcfc78319, "__register_chrdev" },
+	{ 0xdb7305a1, "__stack_chk_fail" },
+	{ 0xf4fa543b, "arm_copy_to_user" },
+	{ 0x8e865d3c, "arm_delay_ops" },
+	{ 0x8f678b07, "__stack_chk_guard" },
+	{ 0xedc03953, "iounmap" },
+	{ 0x2e5810c6, "__aeabi_unwind_cpp_pr1" },
+	{ 0xe97c4103, "ioremap" },
+	{ 0x7c32d0f0, "printk" },
+	{ 0xb1ad28e0, "__gnu_mcount_nc" },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
+
+MODULE_INFO(srcversion, "1BF1E24B9057F508627EE8F");
diff --git a/temp/temp_dev.mod.o b/temp/temp_dev.mod.o
new file mode 100644
index 0000000000000000000000000000000000000000..281fa888883a8ad9d185d9755221555dc1a84135
GIT binary patch
literal 2972
zcmb<-^>JflWMqH=Mg|QA1doBig%d2pY67M-82B0Zz$|P;NosCEd`fB=Hn~x;(Gb8E
z0>wqiWvNBQnfZCPhE8sVu0|$KmIkKgZl(qnW=7_&t`=?#3@NDvsd*{IwhVcRxv94B
zR92Q+l$)5InQUvKXK1NsX|7vluB{O48=#PzpAui1my@5E0%AgqFII32@+~u0C@?Cs
zP+(wSV_<-!b4CURpUk|{3aI1W*GjF;%}*)KNsZ4*tjsShfr=AL9r%4XJ3hWNuP8M=
zv$!O+C_Xu(h?FcL*?jzbd_1|j85kC_7T=DKFD^+;&W=yc$c|4-%*-Ly?I3m5A-}#P
z7Ujk#=NDAQm*mHn7N-`0#EHc=v2A@I{VAzAiIwsB1;xZ_gsNljPVYx{e|l+RQ3_O!
z7%JHEz}w9H(!AWn0%DY7s5vGOp%)*Yn3|ZB8DE-Lo|%^tpIlH7Ur=O-p%kkCvt!N6
z%>1HMa_#?c!KkL7C^N4l8>{gI1s`av-54LAo>v;5o19;oR}!C>Oi&Ms0(WO;D+P_9
z#NvXa%)~qe3q4~!16?!iqJm6AO$d*{(SU)00USgOjA{%F46Nq5jtp#E?2a6aoJ?Fy
zLQEozqKx9q5{#0JQcQA8O33vI%r0ax7KV@iVd5Z~8Im(WOfY6<U;@)Hf|-FC#st&M
z3@i)+U>1yEfib`|GXoo%JR5^BScZW?8C(vqG3YQbFsLvvFo3E%Mg}$pTLuOOT?Phl
zZ3p59FfcG!GcYjNK-ELFgDGYPb~N+Z8PdTr3=9%r_3Tg{gkomkKvU1bkPne!0C|m(
zfdj?^)65K9U>Zg+gIx*ZfwXWl)IhloObiTy3@i*?P(FwPh0Qb&1ByX>23Rqwmz$rW
zm&~A&!Vn)H>gO34>KgCq5|1dB4UHJ$<Dn%Yv>--N2`ZBf4N-((1+$?6LwsI-Nou?q
zLwtOEJggvQh>tJH$Sj5$%8;3tSps7x=cFd)l@`Fb3=9l67#J9s#2FY^m>3wCK!K@O
zT$x*vn8cu0Tv7y~GhnQe)QS=Yy_Cd~L<YU2;$jB9qSPF{^t@8NoXouJ{Ji8;J!E@9
z9?#56%V*F7xls>N2_U&rFF8LqH#M&WD(~(WstYbw8T1^3eDxAbN{TX*N=s5nDBz^Q
zX#rCAfT9A@rUJ1b7?vj#q3U3%9G5zE1_p3SA*2qJT|s8U)HyIPFo4nt#8w6d5Ff+_
z<pEBR9Eiifz_5UW0h~^G7#J8pISPb9Dbow;K3J}7U}9h>hw1@QAax)*n1O)-l=5Nf
zelS7u14s^pVd~=1%o6}P6of&Fpmu|pSx|K#|A6=cY>+$)VuLWqk01<+5)cg%17Q<T
zWe;LNF-)$R0hD(b;1vZ(9da=bQwO49egGMf!N$NafsuiMmw|yn4C+2mo&tp(lCv3p
hurn|$1!;g{kU1cxAjDn}6O1=-FfdF8vmgXa9RQs}8|VN4

literal 0
HcmV?d00001

diff --git a/temp/temp_dev.o b/temp/temp_dev.o
new file mode 100644
index 0000000000000000000000000000000000000000..7d396bdf2ffaf1240da9ae51f0c679acc4269d2d
GIT binary patch
literal 7112
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

literal 0
HcmV?d00001

-- 
GitLab