Доброго дня!
Работаю с платой на базе ARM-процессора и требуется подгружать модули ядра при работе.
modprobe ищет модули в /lib/modules/`uname -r`, используя insmod можно загрузить модули из любого места, но это немного усложняет код, так как требуется следить за расположением модулей.
Итак, что имеем...
host-машина 2.6.32-5-686
вывод после кросс-компиляции ядра Linux-2.6.32.17-davinci1-ga2e745
вывод с платы 2.6.32.17-davinci1-g2de3b63-dirty
Вопрос - возможно ли привести вывод uname -r на плате к виду с хост-машины или задать его при компиляции?
Думаю понятно для чего это надо, при этом не сложно на плате создать директорию /lib/modules/`uname -r` с модулями и загружать их использую modprobe.
Спасибо.
Задать при компиляции значение uname -r
Модератор: Модераторы разделов
Re: Задать при компиляции значение uname -r
На хост машине, для кросс-компиляции, надо взять тот же конфиг, который использовался для компиляции ядра, залитого на плату. И с помощью этого конфига кросс-компилировать или конфигурировать ядро. Тогда у вас и CONFIG_LOCALVERSION будет такой же, и не будет глупых несовместимостей между ядром в NAND платы и вашими бинарными модулями.
Если такого конфига нет, то просто залейте на плату ядро с вашим конфигом и обновите /lib/modules на плате.
Если такого конфига нет, то просто залейте на плату ядро с вашим конфигом и обновите /lib/modules на плате.
С уважением, Сергей.
Re: Задать при компиляции значение uname -r
По-видимому, я не совсем точно объяснил проблему. Мне не надо на хосте или плате иметь одно и тоже ядро.
Мне нужен точно прогнозируемый вывод uname -r на плате. Сейчас в конфиге следующее:
В основном меня интересует откуда при выводе на плате берётся dirty.
Мне нужен точно прогнозируемый вывод uname -r на плате. Сейчас в конфиге следующее:
Код: Выделить всё
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
В основном меня интересует откуда при выводе на плате берётся dirty.
Re: Задать при компиляции значение uname -r
Скорее всего подставляется в конфиг тулчейном от Texas Instruments в процессе сборки ядра. Вообще говоря, uname это системный вызов, я бы посмотрел, не наложены ли на него какие то патчи. К сожалению, этим тулчейном не пользуюсь, т.к. вожусь с AT91SAM9.
Я бы поступил так:
Т.к. суффикс "-gXXXXXXX" берется из локального дерева git.
После этого должно быть так, теоретически:
Независимо от того, где запущено это ядро.
Я бы поступил так:
Код: Выделить всё
CONFIG_LOCALVERSION="-davinci1"
# CONFIG_LOCALVERSION_AUTO is not set
Т.к. суффикс "-gXXXXXXX" берется из локального дерева git.
После этого должно быть так, теоретически:
Код: Выделить всё
2.6.32.17-davinci1
Независимо от того, где запущено это ядро.
С уважением, Сергей.
Спасибо сказали: