Jump to content

gvan

Forum Members
  • Posts

    210
  • Joined

  • Days Won

    2

Posts posted by gvan

  1. 1 минуту назад, Захар сказал:

    Всё равно в шапке лучше указать что с некоторыми прошивками бывает

    Если это бывает, то, скорее всего, это баг. В этом случае его нужно устранять.

    Для этого нужна полная информация по названию роутера, версии прошивки, как воспроизвести.

    У меня кнопочка Fn далеко, поэтому проверил воспроизводство бага логически на своей версии прошивки. Вам также советую это попробовать (а не игнорировать).

  2. 2 минуты назад, Захар сказал:

    Сами проверьте. Я ничего не передёргивал.

    У меня не подтвердилось. 

    Была активна entware на разделе sda3. Через веб-интерфейс на главной странице отсоединил логический раздел. Entware естественно при этом отвалилась сама.

    Перегрузил роутер. При старте sda3 подключился без ошибок и entware с него также подцепилась нормально.

  3. 1 минуту назад, Захар сказал:

    что перед каждым извлечением USB-носителя надо отключать галочку  "Включить"

    Т.е., даже если перед извлечением диска в веб-морде предварительно отмонтировать диск, но при этом не отключить entware через раздел opkg, то затем на диске будут возникать ошибки?

  4. 4 часа назад, Захар сказал:

    У меня постоянно после отсоеденение и повторного присоеденения выходит сообщение об ошибке: "[W] Feb 21 15:38:55 ndm: kernel: EXT4-fs (sda1): warning: mounting fs with errors, running e2fsck is recommended"

    А сам раздел sda1 надеюсь "полечили" предварительно, как и предлагается в журнале? В ходе проверки они какие-то ошибки нашел?

    Такое сообщение может появиться, если когда-то произошло некорректное отключение роутера или же диск отсоединили без отмонтирования. Оно будет появляться постоянно, пока не провести проверку (либо загрузившись с другого раздела с entware, либо, подключив диск для проверки на ПК с linux). Выполните проверку, исправьте ошибки и понаблюдайте. Попробуйте перегрузить роутер штатно через веб и непосредственно через entware для того, чтобы убедиться, что ошибки после перезагрузке (без предварительного ручного отмонтирования) не появляются вновь.

    Как правило, при наличии некритичных ошибок на разделе с ext3/ext4 ничего теряться не должно (если конечно нет каких-то хардварных проблем).

     

  5. 2 часа назад, emlen сказал:

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

    Нет, этого не нужно делать. Роутер сам корректно отмонтирует накопители, если выполняется штатная перезагрузка.

    • Thanks 1
  6. 11 час назад, emlen сказал:

    а как-то можно внешний носитель при этом корректно отрубать?

    А в чем некорректность отключения носителя при выполнении роутером команды reboot?

    В принципе можно заменить команду перезагрузки роутера на более нативную - 

    ndmq -p 'system reboot' -P message
  7. Сделал небольшой скрипт, который может рипить сразу несколько станций.

    В примере записываются 3 URL (их намеренно испортил, т.е. замените на свои по ссылке в первом сообщении).

    На Giga II при рипе одновременно трех станций нагрузка на роутер небольшая. Вполне можно и больше рипить.

    Этот скрипт можно запустить с параметром "stop" для завершения всех рипов.

    Создаем файл stream-di.sh. Размещаем в нем указанный код и делаем файл исполняемым командой 'chmod +x stream-di.sh'.

    Код скрипта:

    Скрытый текст

     

    
    #!/opt/bin/sh
    prefix="/opt"
    PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # Каталог, куда будут писаться рипы
    SDIR='/tmp/mnt/KINGSTON1/DI'
    
    # Список URL для рипа в формате 'описание|URL'. На каждой строчке по одной станции
    SLIST='Ambient|http://___.__.fm/ambient_hi?xxxx
    AtmosphericBreaks|http://___.__.fm/atmosphericbreaks_hi?xxxx
    ClassicVocalTrance|http://___.__.fm/classicvocaltrance_hi?xxxx'
    
    # Если запустить с ключем stop, то завершаются все копии рипов. Иначе запускаем в screen рип каждого из URL
    if [ "$1" != "stop" ]
        then
            for STATION in $SLIST
                do  
                    # Вычленяем имя станции и URL
                    SNAME=`echo $STATION | cut -d '|' -f 1`
                    SURL=`echo $STATION | cut -d '|' -f 2`
                    echo "Starting ripping $SNAME $SURL"
                    # Запускаем процесс рипа с именем окна, состоящим из имени станции
                    screen -t $SNAME streamripper $SURL -q -d $SDIR
                done
        else
            # Если запущен с ключем stop, завершаем все процессы рипа
            killall streamripper
    fi

     

    Также рекомендую предварительно настроить screen, разместив в конфигурационном файле код, представленный ниже. В этом случае экраны с запущенными сеансами будут подписаны и между ними можно будет легко переключаться по клавишам F11 и F12, чтобы посмотреть информацию по рипу станций. В принципе этим конфигом screen пользуюсь для всех случаев, но это отдельная тема для обсуждения...

    Конфиг screen в  /opt/etc/screenrc:

    Скрытый текст
    
    # Bind F11 and F12 (NOT F1 and F2) to previous and next screen window
    bindkey -k F1 prev
    bindkey -k F2 next
    
    startup_message off
    
    # Window list at the bottom.
    hardstatus alwayslastline
    hardstatus string "%-w%{= BW}%50>%n %t%{-}%+w%<"
    
    # From Stephen Shirley
    # Don't block command output if the terminal stops responding
    # (like if the ssh connection times out for example).
    nonblock on
    
    # Allow editors etc. to restore display on exit
    # rather than leaving existing text in place
    altscreen on
    
    # Enable 256-color mode when screen is started with TERM=xterm-256color
    # Taken from: http://frexx.de/xterm-256-notes/
    #
    # Note that TERM != "xterm-256color" within a screen window. Rather it is
    # "screen" or "screen-bce"
    # 
    # terminfo and termcap for nice 256 color terminal
    # allow bold colors - necessary for some reason
    attrcolor b ".I"
    # tell screen how to set colors. AB = background, AF=foreground
    #termcapinfo xterm-256color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
    
    

     

    Нужно понимать, что объем флэшки и диска небезграничный. Посчитайте через минут 20 объем зарипленных мелодий и определите насколько вам хватит размера диска.

    Далее можно разместить в cron вызов скрипта с параметром stop, чтоб автоматически прекратить запись станций в нужный момент. Можно, конечно этого и не делать, тогда процесс streamripper завершится сам, когда место на диске кончится.

    • Thanks 1
  8. 2 минуты назад, demos.vlz сказал:

    Feb 06 03:00:00ndmkernel: AP 2.4GHz: run channel auto-switch

    "оптимальный", через 6 часов - выборы будут в 3, 9, 15, 21

    Нашел. Не успешные выборы (если по мнению роутера "есть трафик") получается никак в логах не отражаются.

    Значит, то что произошло у меня вчера, скорее всего, никак с выборами не связано, т.к. произошло это около 23 часов. 

  9. 5 минут назад, demos.vlz сказал:

    Бывает, что автоскан не срабатывает с одним подключенным устройством, а бывает, что срабатывает с 4.

    А в логах что-то должно появиться при успешных/не успешных попытках "конклава"? Как выглядит это строка?

    У меня стоит "оптимальный", через 6 часов. Но в логах ничего не обнаружил.

    Хотя такое ощущение, что вчера попал на выборы, причем в это время по wi-fi работало он-лайн видео. Естественно, это привело к полной остановке трафика.

  10. 22 часа назад, Oleg Shabanov сказал:

    ~ # ls -l /opt/etc/logrotate.conf

    Тогда нужно еще:

    $ ls -l /opt/etc/logrotate.d/
    -rw-r--r--    1 root     root           158 Oct 10 09:19 messages

    Я думаю, что на файле /opt/etc/logrotate.d/messages у вас стоят права rwrwrw. Попробовал у себя поменять на такие - тоже появилась подобная ошибка.

  11. 2 часа назад, Le ecureuil сказал:

    но чаще всего он запрашивает последний выданный, возможно даже в другой сети, с WiFi это элементарно

    Скорее всего. В настройках на ее телефоне нашел какую-то еще сохраненную открытую гостевую точку. Причем эта точка находится в зоне слабой видимости. Также была включена опция оповещения об открытых сетях.

    Наверно, на нее и цеплялось, а потом уже переключалось на основную, предлагая предыдущий IP.

  12. 31 минуту назад, Mamay сказал:

    Клиент - телефон дочери на андроид. Вероятность того, что кто-то умышленно забил статичный IP на её телефоне - равняется нулю...

    Угу. Тоже телефон дочери, и тоже на андроид:grin: Только это и на предыдущих прошивках роутера наблюдалось ("без улучшенного DHCP").

    С другими андроидами подобного в логах не видел. 

    Jan 29 19:29:11 192.168.1.1 ndhcps: DHCPREQUEST received (STATE_INIT) for 192.168.1.83 from 00:xx:xx:xx:xx:xx.
    Jan 29 19:29:11 192.168.1.1 ndhcps: static client with wrong IP.
    Jan 29 19:29:11 192.168.1.1 ndhcps: sending NAK to 00:xx:xx:xx:xx:xx.                                                                                         
    Jan 29 19:29:12 192.168.1.1 ndhcps: DHCPDISCOVER received  from 00:xx:xx:xx:xx:xx.
    Jan 29 19:29:12 192.168.1.1 ndhcps: making OFFER of 192.168.1.vw to 00:xx:xx:xx:xx:xx.
    Jan 29 19:29:12 192.168.1.1 ndhcps: DHCPREQUEST received (STATE_SELECTING) for 192.168.1.vw from 00:xx:xx:xx:xx:xx.
    Jan 29 19:29:12 192.168.1.1 ndhcps: sending ACK of 192.168.1.vw to 00:xx:xx:xx:xx:xx.

    У нее Philips w6500.

    Посмотрел предыдущие логи (имеются с 1.01.2017) такой ошибки не нашел. Прошивки обновляю регулярно. Но точно помню, что видел такую ошибку и ранее, возможно, пару месяцев назад. Версию прошивки, конечно, не вспомню. Настройки wi-fi в ее телефоне гляну сегодня вечером. Но сомневаюсь, что кто-то статично там забил адрес, поскольку виноват тогда буду я ;)

  13. 19 часов назад, Oleg Shabanov сказал:

    error: Ignoring messages because of bad file mode - must be 0644 or 0444.

    Файловая система на диске с entware какая? Что показывает команда:

    $ ls -l /opt/etc/logrotate.conf
    -rw-------    1 root     root           893 Dec 24 17:46 /opt/etc/logrotate.conf

    Должно быть так, как в пример выше - только чтение/запись для root. Но если файловая система ntfs, то корректно права на нужные изменить не удастся.

  14. 16 часов назад, Le ecureuil сказал:

    Скиньте ссылку на более-менее популярный MIB с подобной информацией, подумаем.

    Не знаю, насколько это то, что нужно:

    D-link ftp://ftp.dlink.ru/pub/Wireless/DWL-2100AP/Firmware/2.50/Dview-DWL2100-v250eu-rc358.mib , раздел AdClientEntry (но там входящие/исходящие байты не прописаны).

    Есть еще у Cisco, но MIB-ы закрыты для скачивания.

    Возможно, кто-то еще подкинет ссылки.

  15. 15 часов назад, Buha сказал:

    Роутер так же начинает циклически перезагружаться.

    Во втором сообщении темы об этом написано. 

    Причина, скорее всего, в том, что батарейки в часах в роутере нет. При перезагрузке текущее время записывается в конфиг и при старте роутера берется от туда.

    У вас:

    1. Настало 12-12
    2. Cron в entware, увидел, что нужно выполнить задачу ребута
    3. Запись времени 12-12 в конфиг
    4. Ребут
    5. Старт роутера
    6. Запись в часы роутера времени из конфига - 12-12
    7. Старт entware и cron
    8. Cron видит, что пора выполнить задачу ребута, т.к. время 12-12
    9. Далее повторить с п.2 нужное число раз

    Решение есть, но оно не совсем очевидное.

    Нужно задачу из cron выполнять только, если uptime роутера больше, например, 10 минут. Тогда есть надежда, что и часы засинхронизируются, и задача не выполнится повторно.

    Т.е. можно модернизировать запуск в cron так:

    [ `cut -d '.' -f 1 < /proc/uptime` -ge 600 ] && reboot

     

    • Thanks 2
  16. Нет ли в планах и насколько сложно реализовать в SNMP информацию о Wi-Fi клиентах?

    Вкладку с wi-fi клиентами нам вернули, в вебе информация с трафиком отображается. NDMS об этих клиентах знает.

    Информацию можно получить через http://my.keenetic.net/rci/show/associations или CLI "show associations":

    {
      "station": [
        {
          "mac": "xx:xx:xx:xx:xx:xx",
          "ap": "WifiMaster0/AccessPoint0",
          "authenticated": "1",
          "txrate": "65",
          "uptime": "6273",
          "txbytes": "554139",
          "rxbytes": "4347197",
          "ht": "20",
          "mode": "11n",
          "gi": "800",
          "rssi": "-63",
          "mcs": "7"
        }
      ]
    }

    Если бы это можно было получить через SNMP и отразить на графиках, то вообще бы было замечательно.

    Понятно, что можно парсить эту информацию через скрипты. Но это предполагает наличие лишнего "костыля".

  17. 1 час назад, emlen сказал:

    не могли бы уточнить что за баг и в каком месте был

    Мне не понравилась предыдущая версия логики сохранения версий конфига (когда по подобию стал делать сохранение версий прошивки), если скрипт обнаружил, что она изменилась. Это кусок кода в условии "if [ "$OLDCONF" != "$CURCONF" ]"

    Скрытый текст

    Было:

    
    if [ "$OLDCONF" != "$CURCONF" ]
                then
                    logger -t $TAG "Config is changed. Do new copy."
                    cp -f ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur
                    gzip -f ${BACSTORDIR}config-${DATE}
                else
                    logger -t $TAG "Config is not changed. Renew current config copy."
                    cp -f ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur
                    rm ${BACSTORDIR}config-${DATE}
    fi

    У меня тоже вроде проблем не возникало. Но по факту получается следующее. Есть вчерашняя версия конфига config-cur, получили свежую копию config-$DATE. Сравнили и, если есть различия, фактически затерли существующую версию конфига в архиве командой "cp -f ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur"

    Поменял код на более логичный, когда предыдущая версия конфига точно "уйдет" в архив, а существующая версия станет config-cur

    
    if [ "$OLDCONF" != "$CURCONF" ]
        then
            logger -t $TAG "Config is changed. Do new copy."
            cp -f ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur-new
            mv -f ${BACSTORDIR}config-cur ${BACSTORDIR}config-${DATE}
            gzip -f ${BACSTORDIR}config-${DATE}
            mv ${BACSTORDIR}config-cur-new ${BACSTORDIR}config-cur
        else
            logger -t $TAG "Config is not changed. Renew current config copy."
            mv -f ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur
    fi

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

    • Thanks 1
  18. Скрипт в первом сообщении темы изменен. 

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

    Как показала практика, не все отладочные версии прошивок могут полюбиться пользователю с первого раза. Особенно, если предварительно не ознакомиться в соответствующей теме об исправлениях и дополнениях в прошивке, а также о ее возможных багах. ;)

    Теперь, если перед обновлением прошивки забыл ее сохранить через веб, то есть возможность откатиться на предыдущую версию, взяв ее из резервной копии.

    • Thanks 3
  19. 8 минут назад, Le ecureuil сказал:

    Web валидирует прошивку и подпись, поэтому он не даст вам засунуть испорченную, а также просто неправильный файл. Можете попробовать.

    Да, проверку файл прошел. Прошивка на роутер загрузилась.

    Будем считать изменения в 6 байтах неважными, но подозрительными...

    • Thanks 1
  20. 28 минут назад, kis-markiz сказал:

    У меня в своё время была проблема с долгой раскруткой диска сигейт при выходе из сна. Hdparm не помог, пришлось запрещать сон утилиткой от производителя.

    Для своего fujitsu такой утилитки не видел. С другой стороны, пока никаких других багов (кроме как ошибок при раскрутке в логе) не видел:

    Jan 19 04:02:06 192.168.1.1 ndm: kernel: sd 1:0:0:0: [sdb] Unhandled error code                                                                               
    Jan 19 04:02:06 192.168.1.1 ndm: kernel: sd 1:0:0:0: [sdb]  Result: hostbyte=0x00 driverbyte=0x00                                                             
    Jan 19 04:02:06 192.168.1.1 ndm: kernel: sd 1:0:0:0: [sdb] CDB: cdb[0]=0x28: 28 00 13 e8 08 18 00 00 08 00                                                     
    Jan 19 04:02:06 192.168.1.1 ndm: kernel: end_request: I/O error, dev sdb, sector 333973528

    Совсем запрещать сон тоже не хочется. И даже не в целях экономии электроэнергии, а в целях тишины. Да и бывают ситуации, что подключенный к кинетику винт не требуется пару недель. И зачем тогда его заставлять работать в холостую.

  21. 5 минут назад, Le ecureuil сказал:

    Если затем попробовать прошить через Web, он принимает оба файла без ошибок?

    Так я и не пробовал файл, полученный через CLI файл, засовывать через веб. Пока такой необходимости не было. А различие в содержимом меня как раз и насторожило, т.к. опасаюсь испортить роутер.

  22. 1 час назад, zyxmon сказал:

    `hdparm -B 254` или `hdparm -B 255` должно помочь.

    Я пробовал и так, и так. hdparm частично ругается на ошибку (поэтому прошлый раз я на эксперименты забил). smartctl отрабатывает без ошибок, но влияния на остановку двигателя не оказывает, т.к. винт продолжает засыпать.

    Еще раз попробовал.

    root$ hdparm -B 255 /dev/sdb
    /dev/sdb:
     setting Advanced Power Management level to disabled
     HDIO_DRIVE_CMD failed: Invalid argument
     APM_level      = off
    
    root$ smartctl -s standby=off /dev/sdb
    smartctl 6.5 2016-05-07 r4318 [mips-linux-3.4.113] (localbuild)
    Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
    === START OF ENABLE/DISABLE COMMANDS SECTION ===
    Standby timer set to 0 (disabled)

    И, если не ошибаюсь, то для hdparm требуется флаг -S (из хелпа: "-S   Set standby (spindown) timeout"). Но его установка у меня тоже проходит с ошибкой:

    root$ hdparm -S 0 /dev/sdb
    /dev/sdb:
     setting standby to 0 (off)
     HDIO_DRIVE_CMD(setidle) failed: Invalid argument

    Сделал еще так:

    root$ smartctl -s apm=off /dev/sdb
    smartctl 6.5 2016-05-07 r4318 [mips-linux-3.4.113] (localbuild)
    Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
    === START OF ENABLE/DISABLE COMMANDS SECTION ===
    APM disabled
    1 час назад, zyxmon сказал:

    Это баг ядра. Проявляется на разных устройствах. Есть такое решение (пост №37)

    Попробовал

    echo 'temporary write through' > /sys/block/sdb/device/scsi_disk/1:0:0:0/cache_type

    Но содержимое этого файла так и остается просто "write through".

  23. Возможно, глупый вопрос. Но сейчас озадачился периодическим сохранением прошивки из роутера по cron. 

    Соответственно, для этого использую команду cli наподобие:

    copy flash:/firmware USBFLASH:/firmware-cli

    Также для сравнения сохраняю прошивку через веб (Система-Файлы). Прошивки по размеру получаются одинаковыми, но почти в самом конце 6 байт отличаются. Пробовал несколько раз. Байты одни и те же различаются, их содержимое также не изменяется (что для CLI, что для веба):

    Сравнение файлов firmware-web и firmware-cli
    00BB0030: 10 7C
    00BB0031: CE 91
    00BB0032: 99 91
    00BB0034: E0 68
    00BB0035: 3E F5
    00BB0036: C1 95

    Это нормально? По какой причине это происходит? Безопасно ли восстанавливаться с прошивки, сохраненной через CLI (не дают мне покоя различия в этих 6 байтах:-?)?

    • Thanks 1
×
×
  • Create New...