Я нашел способ, который работает для меня, тот, который не использует правила udev (Я бы предпочел сделать это программно ). Это проще, чем я думал раньше.
alloc_chrdev_region
для количества устройств. devnode
классов с помощью пользовательской функции, например:return kasprintf(GFP_KERNEL, "name/%d", global++);
. Здесь происходит именование. Удев должен соблюдать эту функцию. cdev_init
&& cdev_add
и установите их fops. device_create
(равно NULL)Обратите внимание, что здесь нет иерархии устройств.просто независимые устройства, находящиеся в одном и том же каталоге /dev/. Имена, указанные в шагах 2 -5, попадут в /sys/.
Значения в сообщении об ошибке задаются во время компиляции, поэтому они полезны только при сборке из исходного кода.
Я предлагаю вам добавлять файлы .pdf
по одному.
Что-то вроде
for i in $(seq 1 10); do
if [[ $i -eq 1 ]] ; then
cp $i.pdf a.tmp.pdf
else
pdftk a.tmp.pdf $i.pdf output b.tmp.pdf
mv b.tmp.pdf a.tmp.pdf
fi
done
mv a.tmp.pdf total.pdf
Предупреждение Я не пробовал.