#!/bin/sh
NIC_INST=`cat /proc/pci |grep 0200 |wc -l` #Placas nos slots PCI
NIC_CONF=`ifconfig -a |grep eth |wc -l` #Placas configuradas
# Verifica se existe placas não instaladas
echo Placas instaladas..: $NIC_INST
echo Placas configuradas: $NIC_CONF
if [ $NIC_INST -le $NIC_CONF ]
then
echo As placas já estão instaladas
exit
fi
# Carrega os modulos
for i in `ls /tmp/modules`
do
insmod /tmp/modules/$i 2>/dev/null
NIC_CONF=`ifconfig -a |grep eth |wc -l`
if [ $NIC_INST = $NIC_CONF ] # Verica se a placa foi configurada
then
echo Placa instalada com sucesso!!
echo Modulo: $i
echo $i |cut -f1 -d. >>/etc/modules
cp /tmp/modules/$i /lib/modules
exit
fi
done
Vou montar o pacote de forma que execute no primeiro boot após a instalação e se remova após ser executado.
Bus 0, device 8, function 0:
Class 0200: PCI device 10ec:8139 (rev 16).
IRQ 4.
Master Capable. Latency=32. Min Gnt=32.Max Lat=64.
I/O at 0xa800 [0xa8ff].
Non-prefetchable 32 bit memory at 0xee800000 [0xee8000ff].
Bus 0, device 10, function 0:
Class 0200: PCI device 168c:0013 (rev 1).
IRQ 10.
Master Capable. Latency=168. Min Gnt=10.Max Lat=28.
Non-prefetchable 32 bit memory at 0xe2800000 [0xe280ffff].
#!/bin/sh
NIC_INST=`cat /proc/pci |grep 0200 |wc -l` #Placas nos slots PCI
NIC_CONF=`ifconfig -a |grep th |wc -l` #Placas configuradas
DIR_MODULES="/etc/addnic/modules"
# Verifica se existe placas não instaladas
echo Placas instaladas..: $NIC_INST
echo Placas configuradas: $NIC_CONF
if [ $NIC_INST -le $NIC_CONF ]; then
echo As placas já estão instaladas
# exit
fi
# Carrega os modulos
for i in `ls $DIR_MODULES |cut -f1 -d.`; do #Todos os modulos
insmod $DIR_MODULES/$i.o 2>/dev/null #Carrega o modulo
NIC_LOAD=`ifconfig -a |grep th |wc -l`
if [ $NIC_LOAD -gt $NIC_CONF ]; then # Verica se a placa foi configurada
for j in mii 8390; do
if [ "$(grep $i $j.lst)" != "" ]; then #Verifica dependencia
if [ "$(grep $j /etc/modules)" = "" ]; then #Verifica se não existe
echo $j >>/etc/modules
#echo $j
cp $DIR_MODULES/$j.o /lib/modules
fi
fi
done
echo $i >>/etc/modules
cp $DIR_MODULES/$i.o /lib/modules
NIC_CONF=$NIC_LOAD
echo Placa instalada com sucesso!!
echo Modulo: $i
echo Faça backup e reinicie o sistema.
fi
done
if [ $NIC_INST -le $NIC_CONF ]; then
echo As placas já estão instaladas
# exit
else
# Carrega os modulos
for i in `ls $DIR_MODULES |cut -f1 -d.`; do #Todos os modulos
insmod $DIR_MODULES/$i.o 2>/dev/null #Carrega o modulo
NIC_LOAD=`ifconfig -a |grep th |wc -l`
if [ $NIC_LOAD -gt $NIC_CONF ]; then # Verica se a placa foi configurada
for j in mii 8390; do
if [ "$(grep $i $j.lst)" != "" ]; then #Verifica dependencia
if [ "$(grep $j /etc/modules)" = "" ]; then #Verifica se não existe
echo $j >>/etc/modules
#echo $j
cp $DIR_MODULES/$j.o /lib/modules
fi
fi
done
echo $i >>/etc/modules
cp $DIR_MODULES/$i.o /lib/modules
NIC_CONF=$NIC_LOAD
echo Placa instalada com sucesso!!
echo Modulo: $i
echo Faça backup e reinicie o sistema.
fi
done
fi
Bender escreveu:Preciso de voluntário para testar. Fiz para instalar mais de uma placa de uma só vez.
O ideal seria integrá-lo no instalação pelo CD.
Claudio escreveu:Você fez uma coisa que eu estou com preguiça de fazer a um tempão.
Bender escreveu:Que tal um disquete de boot que "detecta" as placas e substitui o modules.tgz do sistema já instalado?
C:\Documents and Settings\Gustavo>dir a: /w
O volume na unidade A é BRAZILFW
O número de série do volume é 4595-6954
Pasta de A:\
LDLINUX.SYS [config] dhcpd.tgz etc.tgz linux
root.tgz syslinux.cfg syslinux.dpy webadmin.tgz modules.tgz
l7filter.tgz
10 arquivo(s) 1.366.299 bytes
1 pasta(s) 68.608 bytes disponíveis
Criei um disquete apartir do Wizard. O que preciso fazer para montar o hd e o que posso retirar para ficar só com o boot?
Bender escreveu:Taí o protótipo funcional (ISO: Imagem de CD):
http://www.brazilfw.com.br/users/Bender/addnic/addnic_CD.zip
Dá o boot pelo cd na máquina que já tem o BrazilFW instalado e ele instala o módulo da nova placa de rede.
Ainda falta fazer:
- Por enquanto está funcionando quando o hd está em /dev/hda1. Vou procurar o BFW em todos os discos.
- Melhorar as mensagens, inclusive mostrar qual os módulos que foram adicionados.
- E mais algumas coisas que pensei e agora não me lembro mais .
#!/bin/sh
DIR_MODULES="/cdrom/install/modules"
mount/dev/hda1/mnt
mkdir/tmp/addnic
tar-zxvf/mnt/modules.tgz-C/tmp/addnic>/dev/null
foriin`cat /tmp/addnic/etc/modules`;do
| if[-f"$DIR_MODULES/$i.o"];then
| | insmod/tmp/addnic/lib/modules/$i.o
| fi
done
NIC_INST=`cat /proc/pci |grep 0200 |wc -l`#Placas nos slots PCI
NIC_CONF=`ifconfig -a |grep th |wc -l`| | #Placas configuradas
NIC_INI=$NIC_CONF
# Verifica se existe placas não instaladas
echo======================================================echoPlacasinstaladas..:$NIC_INST
echoPlacasconfiguradas:$NIC_CONF
echo======================================================echo.
echo.
if[$NIC_INST-le$NIC_CONF];then
| echo======================================================
| echoNãohá placasderedeparasereminstaladas.
| echo.
| echoRemovaoCDdaunidadeereinicieosistema.
| echo======================================================
| umount/mnt
| exit
fi
# Carrega os modulos
foriin`ls $DIR_MODULES |cut -f1 -d.`;do#Todos os modulos
| insmod$DIR_MODULES/$i.o2>/dev/null>/dev/null#Carrega o modulo
| NIC_LOAD=`ifconfig -a |grep th |wc -l`
| if[$NIC_LOAD-ne$NIC_CONF];then# Verica se a placa foi configurada
| | forjinmii8390;do
| | | if["$(grep $i /cdrom/install/$j.lst)"!=""];then#Verifica dependencia
| | | | if["$(grep $j /tmp/addnic/etc/modules)"=""];then#Verifica se não existe
| | | | | echo$j>>/tmp/addnic/etc/modules
| | | | | #echo $j
| | | | | cp$DIR_MODULES/$j.o/tmp/addnic/lib/modules
| | | | fi
| | | fi
| | done
| | echo$i>>/tmp/addnic/etc/modules
| | cp$DIR_MODULES/$i.o/tmp/addnic/lib/modules
| | NIC_CONF=$NIC_LOAD
| | echo======================================================
| | echoPlacainstalada!
| | echoModulo:$i
| fi
done
if[$NIC_CONF-ne$NIC_INI];then
| cd/tmp/addnic
| chmod-x+rlib/modules/*
| tar-cvzfmodules.tgz*
| cpmodules.tgz/mnt
| cd/
| umount/mnt
| echo======================================================
| echoInstaladocomsucesso!!
| echo.
| echoRemovaoCDdaunidadeereinicieosistema.
| echo======================================================fi
exit
Marcelo - Brazil escreveu:Existem erros no log, mas não dá pra pegar se não for com uma camera fotografica.
Claudio, tem como consultar qualquer ID essa lista, ou só mostra do que está instalado?
Bender escreveu:Marcelo - Brazil, certificou-se que o hd estava em /dev/hda1?
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes