テキストデバイスドライバについて見つけることができるすべての本/記事/チュートリアル/例を読んで、すべてドライバコードから主要なデバイス番号を取得する方法について説明し、すべて呼び出して実際のデバイスノードを作成することを提案しましたalloc_chrdev_region()
。mknod
外部ドライバコードを手動またはスクリプトで。推薦者の一人は私の運転者がマスター装置番号を印刷したいと思った。他の人はキーを見つけるためにawk
onを使用したいと思います。/proc/devices
この関数は言及されていますが、mknod()
ユーザーエリアコードで使用するためのものです。
私のドライバーを自給自足する方法がない理由を理解していないので、何か抜けたのは明らかです。つまり、これを行うと、他の作業をしなくても作成されますmodprobe my_driver
。/dev/my_driver
答え1
Linuxでは、device_createとclass_createコマンドのペアがこれを行います。確認する https://stackoverflow.com/questions/5970595/create-a-device-node-in-code
答え2
Unixは伝統的に「非政策メカニズム」の伝統に従ってきました。デバイスドライバの場合、これはカーネルのドライバ識別が単にメジャー/マイナーデバイス番号であることを意味します。 mknodを使用してデバイス名を指定する操作( "policy *")は、ユーザースペースに委ねられました。