1. Nội dung thiết kế tốt nghiệp:
3.4.3 Thêm một driver đơn giản
Trước tiên, ta tìm hiểu về cách thêm một driver đơn giản vào kernel. VD: driver hello3 in một chuỗi ra màn hình khi khởi động. Quá trình thêm driver gồm các bước như sau:
Đầu tiên ta tạo một file nios2-linux/linux-2.6/drivers/misc/hello3.c với nội dung in một chuỗi ra màn hình terminal.
56
Ta thêm các dòng sau vào file drivers/misc/Kconfig trước dòng “#endif” để hiển thị module này trong menuconfig.
config HELLO3
tristate "testmodule programming" help
Test module programming
Để hướng dẫn trình make khi biên dịch, ta thêm dòng sau vào Makefile chỉ đến file thực thi của module hello3.
obj-$(CONFIG_HELLO3) += hello3.o
Biên dịch module vừa thêm vào có hai lựa chọn:
Module khởi động ngay sau khi boot linux:
Module hello3 chúng ta vừa thêm vào sẽ hiển thị trong menuconfig như mô tả trên Hình 3.10.
Hình 3.10 Cách lựa chọn biên dịch module hello3
Sau khi biên dịch lại kernel, nạp file zImage xuống kit, module được thêm vào sẽ khởi động trong quá trình boot, chuỗi“in ra man hinh dong hello3” được in ra như trên Hình 3.11.
57
Hình 3.11 Kết quả thêm module hello3
Người dùng có thể load/unload module
Trong kernel selection, chúng ta chọn như sau:
Loadable module support -->
[*] Enable loadable module support [*] Module unloading
Device Drivers --> Misc devices --->
<M> example hello module
Sau khi thực hiện lệnh make, module (hello3.ko) sẽ được thêm vào romfs/lib/modules/2.6.30/kernel/drivers/misc và trở thành một driver của kernel. Khi khởi động, module sẽ không tự động chạy cùng với kernel. Người dùng có thể tùy chọn load/unload module bằng cách sử dụng lệnh:
modprobe hello3
Kết quả lệnh trên là chuỗi “Hello, world" sẽ được in ra màn hình terminal . [10]