Page 4 of 9 FirstFirst ... 23456 ... LastLast
Results 46 to 60 of 134

Thread: Размышления об использовании файлов pre-* и post-* в новых прошивках Олега

  1. #46
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    вообще то, вот это:
    /bin/date "+%m%d%H%M%Y" > /usr/local/etc/date
    сохраняет и дату и время 20 секунд ИМХО непринципиальны.

    А вот сохранение flashfs при каждой перезагрузке --- дискуссионный вопрос. Иной раз бывает желательно забыть то что там наваял.

  2. #47
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    А давайте попросим Oleg`a в следущей прошивке добавить переменную в NVRAM time_date (чч:мм:дд:мм:гггг) и "flashfs" останется "flashfs"-ом.
    Last edited by Contemplator; 02-02-2008 at 19:58.

  3. #48
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    после выполнения nvram set требуется выполнять nvram commit
    Так что --- что с flashfs, что с nvram --- выходит получаются те же яйца, но только вид в профиль. Просто разные области одного и того же флаша требуется перезаписывать.

  4. #49
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    те же, да не совсем, не важно где эти области расположены физически, важно то, что они разные и преназначения у них тоже разные. я бы даже предложил создать еще одну область (урезав nvram, его и так с избытком) и назвать ее eeprom, где бы хранились не критически важные переменные, например предложенная time_date (или date_time? ), в результате выполняя eeprom commit мы совершенно не рискуем повредить переменные хранящиеся с nvram

  5. #50
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    вот только гложут меня смутные сомненья...
    у любой flash памяти имеется ресурс циклов перезаписи (а Spansion никогда не отличалась качеством), так что стоит задуматься о том с какой периодичностью перезаписывать этот участок памяти. Думаю оптимально будет переписывать time_date из pre-shutdown, а если уж будет суждено перезагрузится рутеру (электричество к примеру отключили) предварительно не сохранив время и дату - значит так ему и надо пусть чекает диски. а можно cron`у поручить, раз в сутки или даже в неделю, пусть каждый решает для себя сам.

    З.Ы. вот бы еще UPS (бесперебойник) с интерфейсом к нему прикрутить, то вообще была бы песня, но это совсем другая тема....
    Last edited by Contemplator; 02-02-2008 at 21:01.

  6. #51
    Quote Originally Posted by Contemplator View Post
    З.Ы. вот бы еще UPS (бесперебойник) с интерфейсом к нему прикрутить, то вообще была бы песня, но это совсем другая тема....
    вот тут вот процесс настройки ups неплохо изложен
    http://www.opennet.ru/base/sys/smart_ups_nut.txt.html

    как нибудь сегодня поищу шнурок и попробую подключить управление. года 4 назад настраивал на своем инет серваке когда еще был админом . все прекрасно работало.
    vim имеет два режима - бибикать и все портить (с) не мое

  7. #52
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    Quote Originally Posted by al37919 View Post
    тут проблема в том, что время мы получаем из внешней сети, и вопрос что будет сделано раньше --- установлено соединение и обновлено время или дойдем до проверки дисков pre-mount . У себя в логах я вижу, что PPPoE соединение, обычно, устанавливается первым. Потом запускается ddns клиент, который, похоже и обновляет время. После этого запускается pre-mount, и только после этого ntp получает время и далее каждые 2 часа...

    В общем универсальных решений я не вижу.

    Вариант 3 из предыдущего поста плох тем, что возможно проверки не будет никогда. Тогда зачем весь этот огород городить.

    От себя предлагаю четвертый вариант:

    создать файл с текущей датой (и естественно сохранить его в flashfs):

    /bin/date "+%m%d%H%M%Y" > /usr/local/etc/date

    Добавить в pre-boot:

    /bin/date `cat /usr/local/etc/date`

    Если сделать только это, то первую операцию придется выполнять раз в полгода, поскольку по умолчанию fs создается с требованием проверки раз в полгода.

    Возможен и еще вариант. У себя я давно вместо flashfs save && flashfs commit использую скрипт, который выполняет дополнительные действия (например на всякий случай сохраняет последнее состояние flashfs и nvram перед перезагрузкой). Так что первой комманде место как раз в этом файле.
    /bin/date `cat /usr/local/etc/date` из командной строки работает, а из pre-boot нет. И по моему pre-boot вообще не обрабатывается, прошивка WL500gp-1.9.2.7-8.12.trx
    Last edited by Contemplator; 04-02-2008 at 12:01.

  8. #53
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94

    pre-boot не работает...

    /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.

  9. #54
    Проверить несложно
    logger "pre-boot: started"

    Если запусить вручную pre-boot - работает? Может шелл неверное прописан.

  10. #55
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    это как раз не способ, т.к. pre-boot запускается до syslogd, следовательно в логе ничего не будет.

    Я знаю, что он у меня запускается, например, потому, что там прописан insmod ipt_recent и после загрузки я вижу ipt_recent с помощью lsmod

  11. #56
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    Ну понятно, опять не получится часики вправить, pre-boot слишком рано, а post-boot слишком поздно, т.к. к моменту запуска pre-boot /bin еще не подмонтирован.
    ipt_recent отрабатывает потому что (спасибо Олегу) он уже в прошивке.

  12. #57
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    ну что ж, возможно, что и так, однако, все равно не соглашусь насчет /bin: echo и awk отрабатывают успешно. Хотя date действительно не срабатывает.

  13. #58
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Батенька Contemplator --- а Вы, однако, в заблуждение вводите. Не запускается ipt_recent сам без ручного прописывания в pre-boot... Вот так то.

  14. #59
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    al37919, ладно я не так выразился, а Вы не так поняли:
    "ipt_recent отрабатывает из pre-boot потому, что (спасибо Олегу), он уже в прошивке"
    я это хотел сказать.
    И awk в /bin нету - он в ядре и echo там же...
    И вообще где Олег? без него часы полюбому не победить...

  15. #60
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Вы свои бредовые идеи держите лучше при себе
    В /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:
    PHP Code:
    Jan  1 03:00:13 ddnsddns update ok
    Feb  5 01
    :48:55 pre-mount59f/c41/0 started
    6) ntp client запускается существенно позже во время запуска демонов из rc.unslung и не делает никакой полезной работы.

    Почему наблюдается пункт 4 --- неясно.

    А с пунктом 5 мне просто повезло, т.к. PPPoE через ADSL устанавливается очень быстро --- где-то на 8й секунде, так что описываемой проблемы с кривым временем во время выполнения e2fsck у меня нет.

    P.S. А еще бывает вот так:
    PHP Code:
    Jan  1 03:00:13 ddnsddns update ok
    Jan  1 03
    :00:18 dnsmasq[75]: DHCPDISCOVER(br000:0e:35:15:ec:4b
    Jan  1 03
    :00:18 dnsmasq[75]: DHCPOFFER(br0192.168.1.60 00:0e:35:15:ec:4b
    Jan  1 03
    :00:18 dnsmasq[75]: DHCPREQUEST(br0192.168.1.60 00:0e:35:15:ec:4b
    Jan  1 03
    :00:18 dnsmasq[75]: DHCPACK(br0192.168.1.60 00:0e:35:15:ec:4b hp-lcpm
    Jan  1 03
    :00:18 pre-mount59f/c41/0 started.
    Feb  5 09:43:08 e2fsck: /dev/discs/disc0/part2clean17145/245280 files116278/489982 blocks 
    Так что почему ddns (если это он время получает --- а почему бы и нет) ждет 5 сек чтобы его применить...? А может не он?
    Last edited by al37919; 05-02-2008 at 07:41.

Page 4 of 9 FirstFirst ... 23456 ... LastLast

Similar Threads

  1. Replies: 586
    Last Post: 30-01-2016, 18:32
  2. Replies: 83
    Last Post: 11-12-2012, 18:31
  3. Установки MTU в последних прошивках от Олега
    By Uncle Sharic in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 12
    Last Post: 08-06-2008, 18:05

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •