Results 1 to 1 of 1
Hi!
I wrote a driver that scans on startup dynamically for available EEPROM's on a certain I²C bus. For each EEPROM a new character device is created in /dev like:
...
- 07-28-2011 #1Just Joined!
- Join Date
- Jul 2011
- Posts
- 1
Create hierarchy in /dev
Hi!
I wrote a driver that scans on startup dynamically for available EEPROM's on a certain I²C bus. For each EEPROM a new character device is created in /dev like:
/dev/bus0eepromA0
/dev/bus0eepromA1
/dev/bus0eepromA2 ...
But my aim is to put theese cdevs in a new folder like:
/dev/mydriver/bus0eepromA0
/dev/mydriver/bus0eepromA1
/dev/mydriver/bus0eepromA2 ...
In my probe function I have a loop that runs through all existing minor numbers. It looks like that:
The line "mydriver!bus%deeprom%02X" effected that every cedv was put in the /dev/mydriver/ folder in kernel version 2.6.33. But in the version I am using now (2.6.35.7) it doesn't work anymore. The excalamation mark (!) is simply witten in the cdevs name that I am gettingCode:for (minor = client->addr; minor < (num_addresses + client->addr); minor++) { dev = device_create(mydriver_class, &client->dev, MKDEV(mydriver_major, (minor<<1)), NULL, "mydriver!bus%deeprom%02X", gfeeprom->bus_id, (minor<<1)); if (IS_ERR(dev)) dev_err(&client->dev, "Could not create device file node.\n"); }
/dev/mydriver!bus0eepromA0
/dev/mydriver!bus0eepromA1
/dev/mydriver!bus0eepromA2 ...
I examined many functions called by device_create but I could not find any differences between the kernel versions. Anyone an idea what could have been changed or how I can fix it with a work around? A link where to find some information about structing devices would be nice as well.
Thank you for your help!


Reply With Quote
