ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] coldplug
@ 2005-08-30  8:29 Денис Смирнов
  2005-08-30  8:45 ` Denis Ovsienko
  0 siblings, 1 reply; 22+ messages in thread
From: Денис Смирнов @ 2005-08-30  8:29 UTC (permalink / raw)
  To: devel; +Cc: mike

[-- Attachment #1: Type: text/plain, Size: 1194 bytes --]

Проблема:

Есть новый установки дистрибутива, хотелось бы при их установке
автоматически определять список требуемых модулей, и прописывать их в
/etc/modules. Соответственно если после этого будет обновлён hotplug и
libhw, и "вдруг" для имеющегося железа изменится в его базе соответствие
модулей, не хотелось бы чтобы производились какие-либо лишние изменения.

При этом установка нового оборудования должна отрабатывать корректно.

Решение:

Скрипт, поверх pciscan -r, который сам пропишет модули в /etc/modules, что
весьма удобно.

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

Процедура добавления выглядит так:
 - сначала формируем временный файл со списком
 - если в нём что-то есть -- _добавляем_ это прямо в /etc/modules.

Скрипт в аттаче.

Скоро в сизиф уйдёт пакет с этим скриптом (у меня он, видимо, будет одной
из системообразующих компонент).

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------
Посмотрите MTU на интерфейсах.
Фрагментация IP-пакетов разрешена?

Всё, мой телепатический модуль перегрелся.
		-- alb in community@


[-- Attachment #2: cold --]
[-- Type: text/plain, Size: 2191 bytes --]

#!/bin/sh
# coldplug	Adding new modules to /etc/modules
#
# chkconfig: 2345 29 69
# description:	Script for adding new modules to /etc/modules, \
#		for don't depend to hotplug correctly works
# processname: coldplug
##config: /etc/template.conf
##pidfile: /var/run/template.pid
#=============================================================================#
#    				Add modules for loading to modules.conf					  #
#=============================================================================#
# (c) Denis Smirnov <mithraen@freesource.info>
#=============================================================================#
# + must be run _before_ sound
# + must be run _before_ hotplug
# + must be run _after_ mounting /usr (for comm and uniq utilites)
set +e

WITHOUT_RC_COMPAT=1

# Source function library.
. /etc/init.d/functions

#PIDFILE=/var/run/template.pid
#LOCKFILE=/var/lock/subsys/template
RETVAL=0

start()
{
T_OLD=`mktemp`
T_NEW=`mktemp`
T_DIFF=`mktemp`

cat /etc/modules \
	| /bin/grep -v '^#' \
	| /bin/grep . \
	| /bin/sort \
	| /usr/bin/uniq \
	> $T_OLD

# Get list for PCI-card drivers
/usr/bin/pciscan -r \
	| /bin/sort \
	| /usr/bin/uniq \
	> $T_NEW

/usr/bin/comm -13 $T_OLD $T_NEW  > $T_DIFF
/bin/rm -f $T_OLD $T_NEW

if [ -s $T_DIFF ]; then
	echo "# Added by coldplug @ `date -I`" >> /etc/modules
	cat $T_DIFF >> /etc/modules
fi

	RETVAL=$?
	return $RETVAL
}

stop()
{
#	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root -- template
	RETVAL=$?
	return $RETVAL
}

restart()
{
#	stop
	start
}

reload()
{
#	msg_reloading template
#	stop_daemon --pidfile "$PIDFILE" --expect-user root -HUP -- template
	RETVAL=$?
	return $RETVAL
} 

# See how we were called.
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	reload)
		reload
		;;
	restart)
		restart
		;;
	condstop)
		if [ -e "$LOCKFILE" ]; then
			stop
		fi
		;;
	condrestart)
		if [ -e "$LOCKFILE" ]; then
			restart
		fi
		;;
	condreload)
		if [ -e "$LOCKFILE" ]; then
			reload
		fi
		;;
	status)
		status --pidfile "$PIDFILE" --expect-user root -- template
		RETVAL=$?
		;;
	*)
		msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}"
		RETVAL=1
esac


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2005-08-30 15:54 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-30  8:29 [devel] coldplug Денис Смирнов
2005-08-30  8:45 ` Denis Ovsienko
2005-08-30  9:00   ` Денис Смирнов
2005-08-30  9:21     ` [devel] coldplug Anton Farygin
2005-08-30 10:41       ` [devel] Re: coldplug/warmplug Michael Shigorin
2005-08-30 11:20         ` Денис Смирнов
2005-08-30 11:50           ` Michael Shigorin
2005-08-30 13:13             ` Денис Смирнов
2005-08-30 13:56               ` Michael Shigorin
2005-08-30 14:27                 ` Denis Smirnov
2005-08-30 11:40         ` [devel] Re: [hotplug] " Sviataslau Svirydau
2005-08-30 11:23       ` [devel] Re: coldplug Денис Смирнов
2005-08-30 12:35         ` [devel] " Anton Farygin
2005-08-30 14:37           ` Денис Смирнов
2005-08-30 14:52             ` [devel] " Anton Farygin
2005-08-30 15:30               ` Денис Смирнов
2005-08-30 15:48                 ` [devel] " Anton Farygin
2005-08-30 15:54                   ` [devel] " Michael Shigorin
2005-08-30  9:24     ` [devel] coldplug Igor Tertishny
2005-08-30 11:14       ` Denis Smirnov
2005-08-30 11:47         ` [devel] coldplug Michael Shigorin
2005-08-30  9:46   ` Michael Shigorin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git