linuxドライバ作成時によく使用されるコマンド

2037 ワード

insmod  xxx.koロードモジュール
lsmodビューモジュール
rmmod xxx.koアンインストールモジュール
ls/dev/xxx  デバイスがdevにインストールされているかどうかを確認します  xxxはデバイス名
のように ls/dev/led*
# ls/dev/led*/dev/led1  /dev/led2  /dev/led3  /dev/leds  
cat proc/devices  プライマリ・デバイス番号の表示
mknod/dev/xxx c  250 0   プライマリ・デバイス番号とセカンダリ・デバイス番号を手動で指定するか、コードで関数の作成を呼び出すことができます.
ls/sys/class    sysにデバイス名のクラスがあるかどうかを確認します
ls/sys/class/xxx -l  クラス内のデバイスの表示
例えば#ls/sys/class/leds-l
表示される情報は、ledsがデバイス名drwxr-xr-xである   2 0        0               0 Jan  1 01:19 led1 drwxr-xr-x    2 0        0               0 Jan  1 01:19 led2 drwxr-xr-x    2 0        0               0 Jan  1 01:19 led3 drwxr-xr-x    2 0        0               0 Jan  1 01:19 leds
さらに表示
# ls/sys/class/leds/led1 dev        subsystem  uevent
引き続き表示
# cat/sys/class/leds/led1/dev 231:1 # cat/sys/class/leds/led2/dev 231:2 # cat/sys/class/leds/led3/dev 231:3
# cat/sys/class/leds/leds/dev 231:0
ここで、ledsデバイスは3つのledを組み合わせて操作することができ、led 1、led 2、led 3はそれぞれ各ledを操作することができるが、なぜコードでMKEVを呼び出すと自動的にこれらのデバイスが生成されるのか.次のスクリプトファイルのためです
vi/etc/init.d/rcS
スクリプトの内容が表示されます
#!/bin/sh
ifconfig eth0 192.168.1.17

mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
if [ ! -e /etc/pointercal ]
then
/bin/ts_cal.sh
fi
/bin/qpe.sh &
~
~
~
~
~
~
~
~
~
~
- /etc/init.d/rcS 13/13 100%

insmodとrmmodはホットスワップに相当します.このスクリプトに基づいて、ホットスワップは/sbin/mkdevを呼び出してデバイスの作成とアンインストールを行います.
 
man 2 open  Open関数を呼び出すために使用するヘッダファイルの表示 
注意デバイス名とモジュール名は異なる.
 
register_chrdev(LED_MAJOR, "device_name", &s3c24xx_leds_fops);
「device_name」はcat/proc/devicesで表示されます
leds_class = class_create(THIS_MODULE, "led_class");
「led_class」はls/sys/classでディレクトリ名です
leds_class_devs[0] = class_device_create(leds_class, NULL, MKDEV(LED_MAJOR, 0), NULL, "leds");/*/dev/leds */
「leds」はls/dev/leds-lで表示され、プライマリ・デバイス番号セカンダリ・デバイス番号が表示されます.