Menulis Linux Device Driver – Module Param

Anda kenal dengan program semacam berikut?

ls -al

Tentu saja bagi pengguna Linux atau system administrator jawaban dari pertanyaan tersebut adalah: YA. Perintah di atas adalah sebuah aplikasi CLI dengan argument/parameter yang nantinya diproses oleh si aplikasi, dalam hal ini /bin/ls.

Dalam dunia driver pun kita dapat memasukkan parameter pada device driver ketika loading. Kita mengenal parameter ini dengan istilah MODULE_PARM. Well, lebih dari sekedar istilah, tetapi memang seperti itulah macro yang dulu digunakan untuk memberikan parameter ke device driver ketika runtime, tetapi sekarang sudah tidak lagi, melainkan kita gunakan module_param() . Mari kita perhatikan kode berikut:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/moduleparam.h>

static char *string = "Kamu";
module_param(string, charp, 0);
static int num = 1;
module_param(num, int, 0);

static int foo_init(void)
{
        printk(KERN_ALERT "num = %d, string = %sn", i, string);
        return 0;
}
module_init(foo_init);

static void foo_exit(void)
{
    	printk(KERN_ALERT " Selamat tinggal, %sn", tujuan);
}
module_exit(foo_exit);

MODULE_LICENSE("GPL");

Untuk menggunakan module_param() kita wajib mengambil header <linux/moduleparam.h> parameter/argument dideklarasikan sebagai berikut module_param:

    module_param(name, type, perm);

name adalah nama parameter (atau variable), type adalah tipe data, dapat berupa byte, short, ushort, int, uint, long, ulong, charp, bool atau invbool, dan perm adalah permission untuk ditaruh di entry sysfs. Tipe data dari parameter akan dicek waktu kompilasi kode sehingga kesalahan karena memberikan tipe data yang tidak tepat dapat dihindari.

Hari ini kita belajar:

  1. module_param()

Sumber: LWN

Pos ini dipublikasikan di Linux dan tag , , , . Tandai permalink.

2 Balasan ke Menulis Linux Device Driver – Module Param

  1. teguhginanjar berkata:

    bagaimana cara mengkompilenya?
    linux/module.h dan linux/init.h mesti di intsall juga ?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s