А давайте попросим Oleg`a в следущей прошивке добавить переменную в NVRAM time_date (чч:мм:дд:мм:гггг) и "flashfs" останется "flashfs"-ом.
вообще то, вот это:
/bin/date "+%m%d%H%M%Y" > /usr/local/etc/date
сохраняет и дату и время 20 секунд ИМХО непринципиальны.
А вот сохранение flashfs при каждой перезагрузке --- дискуссионный вопрос. Иной раз бывает желательно забыть то что там наваял.
А давайте попросим Oleg`a в следущей прошивке добавить переменную в NVRAM time_date (чч:мм:дд:мм:гггг) и "flashfs" останется "flashfs"-ом.
Last edited by Contemplator; 02-02-2008 at 19:58.
после выполнения nvram set требуется выполнять nvram commit
Так что --- что с flashfs, что с nvram --- выходит получаются те же яйца, но только вид в профиль. Просто разные области одного и того же флаша требуется перезаписывать.
те же, да не совсем, не важно где эти области расположены физически, важно то, что они разные и преназначения у них тоже разные. я бы даже предложил создать еще одну область (урезав nvram, его и так с избытком) и назвать ее eeprom, где бы хранились не критически важные переменные, например предложенная time_date (или date_time? ), в результате выполняя eeprom commit мы совершенно не рискуем повредить переменные хранящиеся с nvram
вот только гложут меня смутные сомненья...
у любой flash памяти имеется ресурс циклов перезаписи (а Spansion никогда не отличалась качеством), так что стоит задуматься о том с какой периодичностью перезаписывать этот участок памяти. Думаю оптимально будет переписывать time_date из pre-shutdown, а если уж будет суждено перезагрузится рутеру (электричество к примеру отключили) предварительно не сохранив время и дату - значит так ему и надо пусть чекает диски. а можно cron`у поручить, раз в сутки или даже в неделю, пусть каждый решает для себя сам.
З.Ы. вот бы еще UPS (бесперебойник) с интерфейсом к нему прикрутить, то вообще была бы песня, но это совсем другая тема....
Last edited by Contemplator; 02-02-2008 at 21:01.
вот тут вот процесс настройки ups неплохо изложен
http://www.opennet.ru/base/sys/smart_ups_nut.txt.html
как нибудь сегодня поищу шнурок и попробую подключить управление. года 4 назад настраивал на своем инет серваке когда еще был админом . все прекрасно работало.
vim имеет два режима - бибикать и все портить (с) не мое
/bin/date 020400492008 из командной строки работает, а из pre-boot нет. прошивка WL500gp-1.9.2.7-8.12.trx
да и по pre-shutdown не все ясно, а где shutdown или как он должен выглядеть?
Last edited by Contemplator; 04-02-2008 at 15:36.
Проверить несложно
logger "pre-boot: started"
Если запусить вручную pre-boot - работает? Может шелл неверное прописан.
это как раз не способ, т.к. pre-boot запускается до syslogd, следовательно в логе ничего не будет.
Я знаю, что он у меня запускается, например, потому, что там прописан insmod ipt_recent и после загрузки я вижу ipt_recent с помощью lsmod
Ну понятно, опять не получится часики вправить, pre-boot слишком рано, а post-boot слишком поздно, т.к. к моменту запуска pre-boot /bin еще не подмонтирован.
ipt_recent отрабатывает потому что (спасибо Олегу) он уже в прошивке.
ну что ж, возможно, что и так, однако, все равно не соглашусь насчет /bin: echo и awk отрабатывают успешно. Хотя date действительно не срабатывает.
Батенька Contemplator --- а Вы, однако, в заблуждение вводите. Не запускается ipt_recent сам без ручного прописывания в pre-boot... Вот так то.
al37919, ладно я не так выразился, а Вы не так поняли:
"ipt_recent отрабатывает из pre-boot потому, что (спасибо Олегу), он уже в прошивке"
я это хотел сказать.
И awk в /bin нету - он в ядре и echo там же...
И вообще где Олег? без него часы полюбому не победить...
Вы свои бредовые идеи держите лучше при себе
В /bin есть busybox, а echo, awk и date --- это апплеты бизибокса. Кроме того, ipt_recent я гружу из /usr/local/lib
Итого, объективные факты:
1) pre-boot выполняется
2) squashfs (содержащая /bin /sbin /usr/bin /usr/sbin итд), а также ramfs к этому моменту доступны
3) date 010101012000 > /tmp/date.log 2>&1 выполняется и выводит в /tmp/date.log следующее: Sat Jan 1 01:01:00 MSK 2000
4) Однако, несмотря на все это --- время не меняется.
5) Время меняется после отработки ddns update:
6) ntp client запускается существенно позже во время запуска демонов из rc.unslung и не делает никакой полезной работы.PHP Code:
Jan 1 03:00:13 ddns: ddns update ok
Feb 5 01:48:55 pre-mount: 59f/c41/0 started.
Почему наблюдается пункт 4 --- неясно.
А с пунктом 5 мне просто повезло, т.к. PPPoE через ADSL устанавливается очень быстро --- где-то на 8й секунде, так что описываемой проблемы с кривым временем во время выполнения e2fsck у меня нет.
P.S. А еще бывает вот так:
Так что почему ddns (если это он время получает --- а почему бы и нет) ждет 5 сек чтобы его применить...? А может не он?PHP Code:
Jan 1 03:00:13 ddns: ddns update ok
Jan 1 03:00:18 dnsmasq[75]: DHCPDISCOVER(br0) 00:0e:35:15:ec:4b
Jan 1 03:00:18 dnsmasq[75]: DHCPOFFER(br0) 192.168.1.60 00:0e:35:15:ec:4b
Jan 1 03:00:18 dnsmasq[75]: DHCPREQUEST(br0) 192.168.1.60 00:0e:35:15:ec:4b
Jan 1 03:00:18 dnsmasq[75]: DHCPACK(br0) 192.168.1.60 00:0e:35:15:ec:4b hp-lcpm
Jan 1 03:00:18 pre-mount: 59f/c41/0 started.
Feb 5 09:43:08 e2fsck: /dev/discs/disc0/part2: clean, 17145/245280 files, 116278/489982 blocks
Last edited by al37919; 05-02-2008 at 07:41.