Перейти к содержанию
    

автозагрузка модулей ядра... не понятно.

Возник вопрос - как загрузить модули (нужные) до запуска служб. Можно конечно и чезез /etc/init.d/*, но там же и надо перезапускать разные службы.

Хотелось бы так:

1. загрузка ядра

2. загрузка модулей (возможно и через каие-то минимальные службы)

3. запуск всяких служб  

но не хотелось бы старовать через дополнительные скрипты. Может персобрать ядро с запуском ( где-то с строке инициализации  или чего-то ещё)? Как обычно это положено делать? Пока ковыряюсь с автозагрузкой модулей ( не выходит ) избегая пропись в скрипт автозапуска набора типа modprobe <module> а потом перзапускать ряд служб (ну хотя бы одну из них /etc/init.d/S40network restart - ведь модули wifi загружаются, когда сеть уже поднята)

Заранее благодарен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Загрузка модулей делается либо через udev, либо через /etc/modules, /etc/modprobe.d/, /etc/modules-load.d/.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Модули и так грузятся вместе с ядром, т.к. они часть ядра. А скрипты /etc/rcS уже потом. Вроде в /lib/modules есть modules.order, он и определяет порядок загрузки модулей. Но в разных ОС может быть по-другому, конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо! Буду испытывать. Ядро и модули собираю для платы at91sam9260-ek. За основу принято:

Linux at91sam9260 4.8.6 #49 Sat Dec 3 16:12:08 MSK 2022 armv5tejl GNU/Linux

Спасибо! Сейчас пока файл /etc/init.d/S00sys для опытов такого содержания:

#!/bin/sh
#
#
#

modprobe rfkill
modprobe bluetooth
modprobe cfg80211
modprobe lib80211 
modprobe lib80211_crypt_ccmp
modprobe lib80211_crypt_tkip
modprobe lib80211_crypt_wep
modprobe hostap

modprobe 8192eu


exit 0

Текущая цель SD/MMC на плате и BLUETOOT по USB. WIFI-USB точка доступа поднята.

 

Изменено пользователем Igor68

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

57 minutes ago, Igor68 said:

Спасибо! Буду испытывать. Ядро и модули собираю для платы at91sam9260-ek. За основу принято:

Linux at91sam9260 4.8.6 #49 Sat Dec 3 16:12:08 MSK 2022 armv5tejl GNU/Linux

Спасибо! Сейчас пока файл /etc/init.d/S00sys для опытов такого содержания:

#!/bin/sh
#
#
#

modprobe rfkill
modprobe bluetooth
modprobe cfg80211
modprobe lib80211 
modprobe lib80211_crypt_ccmp
modprobe lib80211_crypt_tkip
modprobe lib80211_crypt_wep
modprobe hostap

modprobe 8192eu


exit 0

Текущая цель SD/MMC на плате и BLUETOOT по USB. WIFI-USB точка доступа поднята.

 

 

Уточняю: Bluetooth-USB поднял только что (минут пять назад). Устройство:

Bus 001 Device 003: ID 0a12:0001

добавлено модулей (последовательно):

modprobe btintel
modprobe btbcm
modprobe btrtl
modprobe btusb

потому как файл: /lib/modules/4.8.6/modules.dep пока не построил - делаю вручную. Может есть какой-нибудь скрипт? Мой самодельный скипт не строит пока дерево зависимостей.

Теперь пытаюсь SD/MMC поднять, но пока без успехов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/4/2022 at 2:31 PM, Igor68 said:

Возник вопрос - как загрузить модули (нужные) до запуска служб.

Есть два стандартных пути

1 Собирать ядро с нужными драйверами статически вместо загружаемых модулей

2 Использовать initramfs с нужными модулями перед монтированием основной ФС

Как вы модули загрузите - своим скриптом или штатными средствами ОС (в разных дистрибутивах они отличаются) или udev/mdev - это всё непринципиальная вкусовщина

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пока не понятно к сожалению... я своего рода новичок. Зачем всё это? Планирутся делать плату с ОС и модулями в NAND. Плата максимально маленького размера с выводами и она впаивается в будущее устройство. По мере выбора применения конфигуриуется выбор заружаемых необходимых модулей, согласно требованиям устройства.

Предполагаемые требования:

SPI - может быть или не быть

I2C - может быть или не быть

USB(хост и/или устройство) может быть или не быть

WIFI;  BLUETOOTH; ETHERNET и прочее могут быть или не быть.

Единственное - это КОНСОЛЬ через которую можно скорретировать (сконфигурировать) ту или иную конфигурацию перед применением.

PS: собрались бинутилиты в buildroot ( и даже уже есть в текущей rootfs) а вот gcc нет: А хотелось бы.

Изменено пользователем Igor68

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, Igor68 said:

потому как файл: /lib/modules/4.8.6/modules.dep пока не построил - делаю вручную. Может есть какой-нибудь скрипт? Мой самодельный скипт не строит пока дерево зависимостей.

man depmod

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все работает следующим образом.

Подразумевается, что после добавления модулей была исполнена команда:
sudo depmod -a

Ядро загружается при старте без модулей. Если в дереве устроойств есть описание устройства (с вставляемыми/удаляемыми в процессе работы как USB немного иначе), есть модуль с драйвером устройства и в правилах udev есть правило для этого устройства, то модуль загрузится.
Если правила нет, но есть все остальное, то можно поставить вручную:

sudo modprobe <имя файла модуля без расширения .ko> 

Описание устройства в дереве устроойств отражается в директории  /sys/. То же происходит и с драйвером, когда он загружен (точнее зарегистрирован в системе. драйвер может быть частью ядра, а не в виде модуля).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...