module_param_array(array,charp,&number_of_elements,0644);
ожидает, что array
будет массивом char *
.Вам просто нужно заменить static char array[5][10];
на static char *array[5];
Обычная командная оболочка, такая как / bin / sh, будет обрабатывать "string1","string2","string3"
как один параметр (при условии, что вы не возились с оболочкой IFS
переменная).Синтаксический анализатор параметров модуля ядра будет видеть его как один параметр: string1,string2,string3
и использовать запятые, чтобы разделить его на три строки с нулевым символом в конце.Ваше содержимое char *array[5]
будет заполнено указателями на эти строки с нулевым символом в конце, а для вашего number_of_elements
будет задано количество строк, разделенных запятыми.