Если сетевое устройство не пингуется, значит что-то с ним не так. Если простое "ВКЛ./ВЫКЛ." не помогает и к консоли из-под устройства нам не достучаться, то все плохо. Если раньше все было хорошо, а после запуска очередного демона все изменилось, то скорее всего, виноват именно он. Значит надо его убить. А как убить демона внутри модема, к которому нет доступа из-под консоли? Рекурсия налицо: нет консоли -- нет работы. Почему так? Не знаю, так получилось...
Далее приведено описание одного из способов реанимации модема на Angstrom'е без bios'a.
Что же делать, если ваш демон сделал "грязные делишки" ?
1. Нужно к какому-нибудь рабочему ПК подключиться по USB-интерфейсу (если это возможно).
2. Зайти microcom'ом на модем и посмотреть, что творится в модеме.
sudo microcom -s 115200 -p /dev/ttyUSB0
Если на этом моменте получается залогиниться, то проблем никаких нет и не было (возможно, вам это все приснилось). Если же происходит перезагрузка, вывод исключений на стандартный вывод или что-то непонятное, значит переходим к 3му пункту.
3. У модема (сетевого устройства) делаем "ВКЛ./ВЫКЛ." и добиваемся захода в U-Boot. Должны увидеть что-то такое:
DRAM: 64 MB
NAND: 512 MiB
In: serial
Out: serial
Err: serial
Net: macb0
macb0: PHY present at 1
macb0: Starting autonegotiation...
macb0: Autonegotiation complete
macb0: link up, 100Mbps full-duplex (lpa: 0x45e1)
Hit any key to stop autoboot: 0
U-Boot>
U-Boot>
4. Затем посмотреть на параметры окружения с помощью команды:
printenv
Получим, например, такое:
baudrate=115200
bootargs=mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2 mtdparts=atmel_nand:4M(Bootstrap),60M(root),-(data)
bootcmd=nand read 0x22200000 0x200000 0x200000; bootm 0x22200000
bootdelay=3
ethact=macb0
ethaddr=00:1F:63:02:04:6A
ethaddr2=00:1F:63:02:05:6A
fileaddr=22200000
filesize=20000
ipaddr=192.168.64.100
serial=0020
serverip=192.168.64.3
stdin=serial
stdout=serial
stderr=serial
Environment size: 419/262139 bytes
Самые важные параметры в этой "простыне":
bootargs=mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2 mtdparts=atmel_nand:4M(Bootstrap),60M(root),-(data)
5. Настраиваем своий параметры окружения с помощью команды set bootargs. Но помимо вышеперечисленных, нам не хвататет старта консоли после очередного ребута: init=/bin/sh.
Для этого, выполяем команду:
set bootargs mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2 mtdparts=atmel_nand:4M(Bootstrap),60M(root),-(data) init=/bin/sh
6. Запуск ядра:
boot
NAND read: device 0 offset 0x200000, size 0x200000
2097152 bytes read: OK
## Booting kernel from Legacy Image at 22200000 ...
Image Name: linux-3.9
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1952671 Bytes = 1.9 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
7. Теперь убираем демон, который возможно и испортил вашу жизнь:
update-rc.d -f daemonname remove
8. Последние шаги:
sync
exec /sbin/init
Итог: должны увидеть приветствие в виде:
.-------.
| | .-.
| | |-----.-----.-----.| | .----..-----.-----.
| | | __ | ---'| '--.| .-'| | |
| | | | | |--- || --'| | | ' | | | |
'---'---'--'--'--. |-----''----''--' '-----'-'-'-'
-' |
'---'
login:
Вводим логин и пароль и все ок =).
Если вы еще со мной, вот вам торт:
Далее приведено описание одного из способов реанимации модема на Angstrom'е без bios'a.
Что же делать, если ваш демон сделал "грязные делишки" ?
1. Нужно к какому-нибудь рабочему ПК подключиться по USB-интерфейсу (если это возможно).
2. Зайти microcom'ом на модем и посмотреть, что творится в модеме.
sudo microcom -s 115200 -p /dev/ttyUSB0
Если на этом моменте получается залогиниться, то проблем никаких нет и не было (возможно, вам это все приснилось). Если же происходит перезагрузка, вывод исключений на стандартный вывод или что-то непонятное, значит переходим к 3му пункту.
3. У модема (сетевого устройства) делаем "ВКЛ./ВЫКЛ." и добиваемся захода в U-Boot. Должны увидеть что-то такое:
DRAM: 64 MB
NAND: 512 MiB
In: serial
Out: serial
Err: serial
Net: macb0
macb0: PHY present at 1
macb0: Starting autonegotiation...
macb0: Autonegotiation complete
macb0: link up, 100Mbps full-duplex (lpa: 0x45e1)
Hit any key to stop autoboot: 0
U-Boot>
U-Boot>
4. Затем посмотреть на параметры окружения с помощью команды:
printenv
Получим, например, такое:
baudrate=115200
bootargs=mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2 mtdparts=atmel_nand:4M(Bootstrap),60M(root),-(data)
bootcmd=nand read 0x22200000 0x200000 0x200000; bootm 0x22200000
bootdelay=3
ethact=macb0
ethaddr=00:1F:63:02:04:6A
ethaddr2=00:1F:63:02:05:6A
fileaddr=22200000
filesize=20000
ipaddr=192.168.64.100
serial=0020
serverip=192.168.64.3
stdin=serial
stdout=serial
stderr=serial
Environment size: 419/262139 bytes
Самые важные параметры в этой "простыне":
bootargs=mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2 mtdparts=atmel_nand:4M(Bootstrap),60M(root),-(data)
5. Настраиваем своий параметры окружения с помощью команды set bootargs. Но помимо вышеперечисленных, нам не хвататет старта консоли после очередного ребута: init=/bin/sh.
Для этого, выполяем команду:
set bootargs mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2 mtdparts=atmel_nand:4M(Bootstrap),60M(root),-(data) init=/bin/sh
6. Запуск ядра:
boot
NAND read: device 0 offset 0x200000, size 0x200000
2097152 bytes read: OK
## Booting kernel from Legacy Image at 22200000 ...
Image Name: linux-3.9
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1952671 Bytes = 1.9 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
7. Теперь убираем демон, который возможно и испортил вашу жизнь:
update-rc.d -f daemonname remove
8. Последние шаги:
sync
exec /sbin/init
Итог: должны увидеть приветствие в виде:
.-------.
| | .-.
| | |-----.-----.-----.| | .----..-----.-----.
| | | __ | ---'| '--.| .-'| | |
| | | | | |--- || --'| | | ' | | | |
'---'---'--'--'--. |-----''----''--' '-----'-'-'-'
-' |
'---'
login:
Вводим логин и пароль и все ок =).
Если вы еще со мной, вот вам торт:
вангую, что вместо команды
ОтветитьУдалитьset bootargs mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2 mtdparts=atmel_nand:4M(Bootstrap),60M(root),-(data) init=/bin/sh
можно ввести что-то типа
set bootargs "$bootargs init=/bin/sh"
а вот нифига) у тебя ж там не шелл..
Удалить