it-advisor.ru: Подгрузка драйверов методом "module_pkg" (1/1) | Thinstation по русски
Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Отключите пожалуйста ADblock, если включен...

ТЕМА: Подгрузка драйверов методом "module_pkg"

Подгрузка драйверов методом "module_pkg" 17 Март 2016 19:14 #3577

  • alish
  • alish аватар
Здравствуйте, уважаемы коллеги.

Хотел бы узнать, имел ли кто-либо из вас опыт по использованию подгрузки драйверов с tftp-сервера используя инструкцию "module_pkg"? Драйверы должны лежать в корне tftp? Или этот путь где-то можно прописать? И в каком виде должны быть эти драйверы - в виде .run-пакетов (как драйверы nVidia :))?

Просто у нас разнообразный парк устарелых рабочих машин и добавлять все драйверы, утяжеляя образ, представляется неоптимальным. А так лежат драйверы на tftp и подгружаются по мере необходимости - лепота!

Если кто-то подобное реализовывал - поделитесь знанием или хоть намекните куда копать? :)
Администратор запретил публиковать записи гостям.

Подгрузка драйверов методом "module_pkg" 21 Март 2016 13:54 #3581

  • dementor5
  • dementor5 аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 25
  • Спасибо получено: 10
  • Репутация: 3
Интересная идея. Только что в свободную минутку попробовал поиграться на эту тему.
Нужно просто в конфиге в строчке с пакетом за место module написать module_pkg (или за место package pkg) и данный модуль (пакет) не будет добавлен в основной образ, а будет собран в виде набора pkg файлов по адресу /thinstation/build/boot-images/pxe (пробовал с medit).

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

Я в настоящий момент использую Thinstation OS уважаемого admin-a, там по tftp скачивается лишь загрузчик, а сам образ он тянет wgetom с web сервера apachi по адресу http://ip_thistation_os/boot/initrd
Причём папка boot на самом сервере лежит по адресу /srv/www/htdocs/boot (вернее её симлинк).
Я предполагаю, что тонкий клиент пытается стянуть эти pkg пакеты по адресу http://ip_thistation_os/*pkg (либо по tftp)

Я попробовал скопировать все *.pkg medita из /thinstation/build/boot-images/pxe в /srv/www/htdocs/
и попытаться их скачать браузером, но увы апач жадный и их не отдаёт и логах по адресу /var/log/apache2 и /var/log/atftp на тему попыток скачки этих файлов упоминаний нет.

Думаю дальше надо поковырять конфиги оного на тему memo-type
И может реорганизовать немного симлинки (в корень апача кидать симлинк не на /thinstation/build/boot-images/pxe/boot,а на /thinstation/build/boot-images/pxe, поправить конфиги загрузчика и т.д.

Дальше пока экспериментировать не стал, свободное время закончилось.
Администратор запретил публиковать записи гостям.

Подгрузка драйверов методом "module_pkg" 21 Март 2016 21:57 #3586

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Сообщений: 1804
  • Спасибо получено: 269
  • Репутация: 153
Опции в thinstation.conf.buildtime
# --- PKG Options
#
# PKG_PACKAGES       Choice of packages to download for PKG
#                    You can also use PKG_PACKAGES1-8 for additional package selections
#                    This is useful for using multiple network group files
# PKG_PREFIX         Download PKGs from a subdir of /tftpboot or PKG Path if PKG_PATH
#                    is set in thinstation.conf
# PKG_PATH           Path to PKG files if not using tftpboot
#                    Floppy: /mnt/floppy
#                    CD-ROM: /mnt/cdrom
#                    HD:     /mnt/disc/hdX/part1   (first disc, first partition)
#                    NFS:    /mnt/nfs
#                    Samba:  /mnt/smb
# MOD_PACKAGES       Choice of modules to download for MPKG
#                    You can also use MOD_PACKAGES1-8 for additional package selections
#                    This is useful for using multiple network group files
# MOD_PREFIX         Downloads and insmod's a module from a subdir of /tftpboot
#                    if MOD_PREFIX is set in thinstation.conf

#PKG_PACKAGES="blackbox rxvt"
#PKG_PREFIX=pkg
#PKG_PATH=/mnt/cdrom
#MOD_PACKAGES="usb-hid usb-storage"
#MOD_PREFIX=modules
Нужна индивидуальная помощь - обращайтесь shweew[кобель]it-advisor.ru
Реквизиты для материальной поддержки проекта =>
Последнее редактирование: 21 Март 2016 22:04 от admin.
Администратор запретил публиковать записи гостям.

Подгрузка драйверов методом "module_pkg" 05 Апр 2016 19:30 #3610

  • alish
  • alish аватар
В общем, используя module_pkg можно получить пакет *.mpkg, который, по всей видимости, можно использовать для динамической подгрузки модулей, но у меня это не получилось. Думаю, это связано с очередность загрузки модулей - сначала загружаются модули, включенные в образ, а затем уже прописанные как "module_pkg". А динамической выгрузки текущего модуля и подгрузки другого я не осилил как сделать. Возможно, что и никак и сфера применения этих параметров находится вне видео, а распространяется на устройства, которые могут быть подключены уже после загрузки образа. Да в общем, это и не дает ощутимого сокращения размера образа - пара-тройка мегабайт. Гораздо больше толку вышло от применения просто "pkg" - там да, образ сокращается на более 20 МБ только от "pgk xorg7-intel"! :)
Администратор запретил публиковать записи гостям.

Подгрузка драйверов методом "module_pkg" 20 Май 2016 00:50 #3681

  • dementor5
  • dementor5 аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 25
  • Спасибо получено: 10
  • Репутация: 3
Целый день возился, научился дебажить, разбирать скрипты
и чуток их править. В общем мне таки удалсь починить эту фишку
в нашей сборке ThinstationOS - закачку с веб сервара wget-om
внеших модулей и пакетов.

1. Нужно в файле thinstation/build/packages/base/bin/pkg
заменить 28 строчку
`transport ${BASEPATH}/$4/$2.$3 /$2.$3 $SERVER_IP`
на следующую проверку (пришлось соорудить, т.к. скрипт выдавал
посреди адреса для закачки wget-om точку, используя в своих алгоритмах
переменную param basepath (коя как раз и является точкой по-умолчанию в build.conf)
if [ "$NET_FILE_METHOD" = "wget" -a "$basepath" = "." ] ; then
	`transport $4/$2.$3 /$2.$3 $SERVER_IP`
else
	`transport ${BASEPATH}/$4/$2.$3 /$2.$3 $SERVER_IP`
fi

2. Создаём мягкую ссылку на папку для внешних модулей на http сервере
ln -s /home/thinstation/ts/build/boot-images/pxe /srv/www/htdocs/tsmon/configs/pxe

3. Далее надо закомментировать в build.conf (если включали)
#param fastboot true
(из-за этой улучшалки система монтируется в режиме
read-only и скачивающиеся внешние пакеты не могут установиться в систему, кста скорее всего из-за
него мне так и не удавалось писать на флешки)

4. Прописать в thinstation.conf.buildtime
PKG_PREFIX="pxe"

5. Теперь можно пробовать включить пакеты как pkg, а модули как module_pkg и собрать.
6. Обращаем внимание на крайние строки в логе, когда закончится сборка. Там указано, какую строчку
добавить в пользовательские конфиги, те что лежат по адресу
/srv/www/htdocs/tsmon/configs
что бы включить наши внешние модули. Я эксперементировал с огнелисом и у меня она выглядела как
PKG_PACKAGES="firefox"

Проверить, что всё ок, можно следующим образом:
1. Выставляем в build.conf
param bootverbosity   2
2. И после загрузки тонкого клиента проверяем содержимое
/var/log/boot.log
Последнее редактирование: 30 Май 2016 11:38 от dementor5.
Администратор запретил публиковать записи гостям.
Спасибо сказали: admin