У вас есть приложение, которое не интегрировано в систему (установлено в каталоге, отличном от каталога по умолчанию, загрузка библиотек не по умолчанию), что вызывает некоторые проблемы, если оно неправильно настроено. Вероятно, он настроен в .bashrc
или около того, но в основном это пропускается, если вы запускаете только команду, а не интерактивную оболочку. Есть два варианта:
Используйте стандартный ввод для отправки команды на сервер:
echo "sqlplus SOAF_PUBLISHER/S_PUBLISHER_SOAF@OSBS1" | ssh -tt (скрыто)
Исправлено инициирование переменных среды PATH
и LD_LIBRARY_PATH
в ~/.bashrc
(или других файлах запуска), чтобы они не пропускались для неинтерактивных команды. Обычно он содержит что-то вроде
# Если не работает в интерактивном режиме, ничего не делайте
случай $- в
*и*) ;;
*) возвращение;;
эсак
# ваши команды...
Просто добавьте над ним модификации PATH
и LD_LIBRARY_PATH
и повторите попытку.
Ошибка исходит не от компилятора, а от компоновщика.Заголовочные файлы содержат только объявление функций, они не содержат кода функции, поэтому объявления функции в заголовке недостаточно для ее выполнения. Компоновщик времени сборки предупреждает вас, что он не нашел места, где определена функция. Когда вы пытаетесь загрузить модуль, ядро выполняет последние шаги связывания. На этом этапе все функции, используемые загруженным модулем, должны быть определены работающим ядром. В вашем случае crc8
требуется модулю, но не определен ядром, поэтому модуль не может быть загружен.
Функция crc8
- это дополнительная функция, которая должна быть активирована с помощью CONFIG_CRC8
(«функция CRC8» в «подпрограммах библиотеки») во время сборки. Его можно загрузить как модуль, также называемый crc8
. Попробуйте
modprobe crc8
. Если это сработает, значит в вашей установке есть модуль crc8
. После компиляции bq76pl536
и установки в / lib / modules
запустите depmod -a
; при этом создается файл зависимости, и после обычной загрузки bq76pl536
(т.е. с modprobe bq76pl536
, а не напрямую с insmod
) также будет загружен crc8
модуль.
Если это не сработает, значит, в вашей установке нет модуля crc8
, и вам необходимо перекомпилировать ядро с ним. Используйте упаковку и конфигурацию Ubuntu (за исключением изменения одного этого элемента конфигурации). См. вики Ubuntu для пошагового руководства.Поскольку вы изменили конфигурацию, не забудьте добавить модификатор версии в debian.master / changelog
, как описано в вики. Затем перезагрузитесь с новым ядром и перекомпилируйте модуль bq76pl536
для нового ядра.