Ядро 3.18.9
int retval;
struct kstat stat;
retval = vfs_stat("/dev/sdb1", &stat);
printk(KERN_INFO "vfs_stat(%s, &stat)=%d stat.uid.val=%d\n", "/dev/sdb1", retval, stat.uid.val);Получаем dmesg:
vfs_stat(/dev/sdb1, &stat)=-14 stat.uid.val=3
Ошибка 14 это Bad address
Я знаю что vfs_stat работает AT_FDCWD, но я указываю абсолютный путь.
При этом устройство существует
stat /dev/sdb1
Файл: «/dev/sdb1»
Размер: 0 Блоков: 0 Блок В/В: 4096 блочный специальный файл
Устройство: 5h/5d Inode: 7866 Ссылки: 1 Тип устройства: 8,11
Доступ: (0660/brw-rw----) Uid: ( 0/ root) Gid: ( 6/ disk)
Доступ: 2015-04-13 15:29:35.794198691 +0300
Модифицирован: 2015-04-13 15:29:35.794198691 +0300
Изменён: 2015-04-13 15:29:35.794198691 +0300
Создан: -
Тема закрыта, стока должна быть из пространства пользователя.
>[оверквотинг удален]
> Устройство: 5h/5d Inode: 7866 Ссылки:
> 1 Тип устройства: 8,11
> Доступ: (0660/brw-rw----) Uid: ( 0/
> root) Gid: ( 6/
> disk)
> Доступ: 2015-04-13 15:29:35.794198691 +0300
> Модифицирован: 2015-04-13 15:29:35.794198691 +0300
> Изменён: 2015-04-13 15:29:35.794198691 +0300
> Создан: -
>
В само ядро скрипты как правило не ставят. Все скрипты компиллируют в виде отдельных модулей, а затем подключают. Bios даже если и определит устройство все равно не сможет его прописать.