Вы правильно определили, что 4
происходит от расширения .mp4
в имени файла. Знак вопроса, вероятно, ls
отображает новую строку, которая grep -o
вставляется между каждым совпадением (это одна из причин не доверять именам файлов, которые отображает ls
, кстати ).
Чтобы извлечь первую цифру или, точнее, последнюю цифру перед расширением .mp4
, вы можете выполнить
n=${i%.mp4}
number=${n##*[!0-9]}
Это сначала удалит расширение из имени в i
, а затем удалит все цифры, отличные от -, в начале этого имени.
Вы можете добавить их только в том случае, если у вас есть полный исходный код вашего ядра, а также его .config
файл (, хотя последний может не потребоваться ). В этом случае вы можете отредактировать .config
и включить отсутствующие модули ядра.
Если вам повезет, вы можете попробовать загрузить этот исходный код ядра с сайта kernel.org, а затем скомпилировать его с помощью перекрестного -компилятора сборки (. Я не уверен, что это за архитектура платы. -вы его пропустили ), например sudo apt install gcc-arm-none-eabi
.В идеальном мире вы должны использовать ту же версию компилятора, которая использовалась для сборки вашего ядра, иначе модули могут вызвать панику ядра / OOP из-за другого ABI.