From 713f44cf52813106d8b67999e7486cc0fd922e20 Mon Sep 17 00:00:00 2001
From: Rohmindo <shalseh@naver.com>
Date: Fri, 3 Jul 2020 08:45:00 +0100
Subject: [PATCH] command management Pi

---
 .lcd_dev.ko.cmd           |   1 +
 .lcd_dev.mod.o.cmd        | 499 ++++++++++++++++++++++++++
 .lcd_dev.o.cmd            | 720 ++++++++++++++++++++++++++++++++++++++
 .tmp_versions/lcd_dev.mod |   3 +
 Makefile                  |  12 +
 Module.symvers            |   0
 app2                      | Bin 0 -> 8660 bytes
 app.c => app2.c           |   2 +-
 lcd                       |   0
 lcd_dev.ko                | Bin 0 -> 7124 bytes
 lcd_dev.mod.c             |  46 +++
 lcd_dev.mod.o             | Bin 0 -> 2840 bytes
 lcd_dev.o                 | Bin 0 -> 6448 bytes
 modules.order             |   1 +
 script.sh                 |   8 +
 15 files changed, 1291 insertions(+), 1 deletion(-)
 create mode 100644 .lcd_dev.ko.cmd
 create mode 100644 .lcd_dev.mod.o.cmd
 create mode 100644 .lcd_dev.o.cmd
 create mode 100644 .tmp_versions/lcd_dev.mod
 create mode 100644 Makefile
 create mode 100644 Module.symvers
 create mode 100755 app2
 rename app.c => app2.c (98%)
 create mode 100755 lcd
 create mode 100644 lcd_dev.ko
 create mode 100644 lcd_dev.mod.c
 create mode 100644 lcd_dev.mod.o
 create mode 100644 lcd_dev.o
 create mode 100644 modules.order
 create mode 100644 script.sh

diff --git a/.lcd_dev.ko.cmd b/.lcd_dev.ko.cmd
new file mode 100644
index 0000000..c6853bc
--- /dev/null
+++ b/.lcd_dev.ko.cmd
@@ -0,0 +1 @@
+cmd_/home/pi/lcd/lcd_dev.ko := ld -r  -EL -T ./scripts/module-common.lds -T ./arch/arm/kernel/module.lds  --build-id  -o /home/pi/lcd/lcd_dev.ko /home/pi/lcd/lcd_dev.o /home/pi/lcd/lcd_dev.mod.o ;  true
diff --git a/.lcd_dev.mod.o.cmd b/.lcd_dev.mod.o.cmd
new file mode 100644
index 0000000..440305c
--- /dev/null
+++ b/.lcd_dev.mod.o.cmd
@@ -0,0 +1,499 @@
+cmd_/home/pi/lcd/lcd_dev.mod.o := gcc -Wp,-MD,/home/pi/lcd/.lcd_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='"lcd_dev.mod"' -DKBUILD_MODNAME='"lcd_dev"' -DMODULE  -c -o /home/pi/lcd/lcd_dev.mod.o /home/pi/lcd/lcd_dev.mod.c
+
+source_/home/pi/lcd/lcd_dev.mod.o := /home/pi/lcd/lcd_dev.mod.c
+
+deps_/home/pi/lcd/lcd_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/lcd/lcd_dev.mod.o: $(deps_/home/pi/lcd/lcd_dev.mod.o)
+
+$(deps_/home/pi/lcd/lcd_dev.mod.o):
diff --git a/.lcd_dev.o.cmd b/.lcd_dev.o.cmd
new file mode 100644
index 0000000..44be014
--- /dev/null
+++ b/.lcd_dev.o.cmd
@@ -0,0 +1,720 @@
+cmd_/home/pi/lcd/lcd_dev.o := gcc -Wp,-MD,/home/pi/lcd/.lcd_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='"lcd_dev"' -DKBUILD_MODNAME='"lcd_dev"' -c -o /home/pi/lcd/.tmp_lcd_dev.o /home/pi/lcd/lcd_dev.c
+
+source_/home/pi/lcd/lcd_dev.o := /home/pi/lcd/lcd_dev.c
+
+deps_/home/pi/lcd/lcd_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/lcd/lcd_dev.o: $(deps_/home/pi/lcd/lcd_dev.o)
+
+$(deps_/home/pi/lcd/lcd_dev.o):
diff --git a/.tmp_versions/lcd_dev.mod b/.tmp_versions/lcd_dev.mod
new file mode 100644
index 0000000..a5e34d1
--- /dev/null
+++ b/.tmp_versions/lcd_dev.mod
@@ -0,0 +1,3 @@
+/home/pi/lcd/lcd_dev.ko
+/home/pi/lcd/lcd_dev.o
+
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..1129e64
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,12 @@
+KERNEL_VER := $(shell uname -r)
+KERNEL_DIR = '/lib/modules/$(KERNEL_VER)/build'
+
+obj-m := lcd_dev.o
+
+PWD := $(shell pwd)
+
+all :
+	make -C $(KERNEL_DIR) M=$(PWD) modules
+
+clean :
+	make -C $(KERNEL_DIR) M=$(PWD) clean
diff --git a/Module.symvers b/Module.symvers
new file mode 100644
index 0000000..e69de29
diff --git a/app2 b/app2
new file mode 100755
index 0000000000000000000000000000000000000000..dd8e3ca14aebedc3977fee36aa6a6870f913f54a
GIT binary patch
literal 8660
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

literal 0
HcmV?d00001

diff --git a/app.c b/app2.c
similarity index 98%
rename from app.c
rename to app2.c
index 48860e2..c5bbf2a 100644
--- a/app.c
+++ b/app2.c
@@ -111,7 +111,7 @@ int main(void)
 
    memset(&server_addr, 0, sizeof(server_addr));
    server_addr.sin_family = AF_INET;
-   server_addr.sin_port = htons(4026);
+   server_addr.sin_port = htons(4029);
    server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 
    if(bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {
diff --git a/lcd b/lcd
new file mode 100755
index 0000000..e69de29
diff --git a/lcd_dev.ko b/lcd_dev.ko
new file mode 100644
index 0000000000000000000000000000000000000000..a0201ab8fa7430e0fc39b55991f03686380be69d
GIT binary patch
literal 7124
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

literal 0
HcmV?d00001

diff --git a/lcd_dev.mod.c b/lcd_dev.mod.c
new file mode 100644
index 0000000..203b4fb
--- /dev/null
+++ b/lcd_dev.mod.c
@@ -0,0 +1,46 @@
+#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" },
+	{ 0x5f754e5a, "memset" },
+	{ 0x28cc25db, "arm_copy_from_user" },
+	{ 0x12da5bb2, "__kmalloc" },
+	{ 0xe97c4103, "ioremap" },
+	{ 0x2e5810c6, "__aeabi_unwind_cpp_pr1" },
+	{ 0x7c32d0f0, "printk" },
+	{ 0xb1ad28e0, "__gnu_mcount_nc" },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
+
+MODULE_INFO(srcversion, "26062333FCF0DFDA5362B37");
diff --git a/lcd_dev.mod.o b/lcd_dev.mod.o
new file mode 100644
index 0000000000000000000000000000000000000000..b407ba0e39bb04ab4abf80177ef5ce9e2213b674
GIT binary patch
literal 2840
zcmb<-^>JflWMqH=Mg|QA1doB?00&rx)dWmwFz_?*fmzsyoaB`Fl+-e8Qlny{A%Ham
zii?uVQj3Z+^Yd(t%nZzojE#-moZSpu+*}+@jm?aljLjJsQc??2^HPd!8S)ZyQ*B|X
ztSq%CH!(dk+15nQ&{EIRT(`_zTOrstKp{6jCB8H-CqFR-#Dtn&tl${rTV}3MU{q$I
zz`(%3#=rnc=Zp*tKACx?6;Ri`ua#Pxo1apelNz6sSeaj10u?8gI`I2&c6@wkUQud#
zW^qYsQG9Yn5h-~>vibP=_;_-4GcZK?mB#0$<`$=t>TswBZ>yfsNG!^YPtGr>j87}d
z&y6oFPA!5;5<zW>z9keNpPieSlarrJgnD!(%#JlLGxLj5a}x{DrHJAm6Nu1@k55cZ
zOv;Qe%`4B$ONmb|D2Oj8G9*en!-oq-H3dbPc_rDzsYh4!Kx6I3`1tg^()iru{L;LV
z_&gFr!QI)}N<kwivA7^9GcixWLeE&wK-WyWs36l&6T)L~G+<z00DF;vQH_Ctfz@2s
zk%5hi-I0TllZlH-h)IM|lu?{nf>DxDib;-13AsFnxffZCh2i6Wm^g@LhU5$o6O5S|
zn7}lQU}j*3F~Kx50}BH`m<1zPU<@$L%)o{w&&D7GmSJE}2IoUI25klg1{DSd22Lp7
zhJk@Wmw|zS7s~f%U|_IfU|;}=GlFw3)Bpws24)6!H1pXR(xB23VEyb+9)x0M;6PK)
z!H@@$VrXCjl?#wc4=TjK%)kX>f@x;3E5S@K!OXzTPz`1=FgP$VFbFcRFmyusAWDFN
zfnh3$0mUFb1GE^^%gs;GOJ-0>VTg|p_45o2b&dCQiAR)*hDHqW@z4SZS`MP91Qm&f
zhA2X?g3-``AwDm^BsJcQAwE7n9##-C#K)IpWEMjWWys9SEP=6;b5axYN(*4z8w?B#
zOyUd-EKCdxOrU_&E3V8fNlaqUD=sO5&>1jRNoqw2gI-EvNg{(@QgJbZUQud}UV2`s
zUQT9Sc79%RsvfeXAYW(ZrR6i|fgGp@DS(ljsF$3do12<f0+o073)L+yNleaW&~ps(
z)k`cXDauSLElDkg1}G7fG&mhV%6*V>NP7mvf?!yFP=u<3rEpy8)EO8UK&ga~I#5;x
znGI9tzyL`j5L+1-KztBe2b%U_d>IY~22eWTVPIeY<t7jY+2;jyA1p_L(kpU{3#1NY
zUN8d#11QzQ)cs&$U;srSNDhQy>f+JN6JTZl=K+u!5QeGCf~o`g2P8g$6_Q^;Y!C+d
z5rjce0-`};AiRYYL?SRut{I$f8Q_IHNF8z!4O0iAVSWIa@`9CtVFDwhTo8kX4Je#A
kA?AUUfN=#o1H%$93qpX*0kH(p)ah_AFiZwXKru`m04O{O7ytkO

literal 0
HcmV?d00001

diff --git a/lcd_dev.o b/lcd_dev.o
new file mode 100644
index 0000000000000000000000000000000000000000..6f45ddde24fc0a736f3f3f06cf1390f16399646a
GIT binary patch
literal 6448
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

literal 0
HcmV?d00001

diff --git a/modules.order b/modules.order
new file mode 100644
index 0000000..3e46d7e
--- /dev/null
+++ b/modules.order
@@ -0,0 +1 @@
+kernel//home/pi/lcd/lcd_dev.ko
diff --git a/script.sh b/script.sh
new file mode 100644
index 0000000..9070bc8
--- /dev/null
+++ b/script.sh
@@ -0,0 +1,8 @@
+sudo rmmod lcd_dev
+sudo rm /dev/lcd_dev
+make clean
+make
+sudo insmod lcd_dev.ko
+sudo mknod -m 666 /dev/lcd_dev c 509 0
+gcc -o lcd lcd.c 
+sudo ./lcd
-- 
GitLab