Page 1 of 2 12 LastLast
Results 1 to 15 of 17

Thread: Asus WL-500gPv1: Linux - архитектура дерева каталогов

  1. #1

    Lightbulb Asus WL-500gPv1: Linux - архитектура дерева каталогов

    насчёт линукса я весьма тёмный,полазил сегодня по инету подкачал книг,
    вопрос в следуюшем какие допустимые команды можно использовать в командной строке,какая именно операционка стоит,думаю что стоит осваивать,до этого стояли заводские прошивки,но прошивки Olega явно удобней,самое главное чтоб асус не прекратил выпуск делюкса,если возможно ткните в ссылки,заранее благодарен

  2. #2
    операционка Linux, а список команд как в любом линуксе можно получить нажав два раза tab в тервминале

  3. #3
    Quote Originally Posted by arcad38 View Post
    насчёт линукса я весьма тёмный,полазил сегодня по инету подкачал книг,
    вопрос в следуюшем какие допустимые команды можно использовать в командной строке,какая именно операционка стоит,думаю что стоит осваивать,до этого стояли заводские прошивки,но прошивки Olega явно удобней,самое главное чтоб асус не прекратил выпуск делюкса,если возможно ткните в ссылки,заранее благодарен
    http://easylinux.ru/node/3

  4. #4
    Основа прошивки - BusyBox - The Swiss Army Knife of Embedded Linux

  5. #5

    wl500gp v1 архетектура дерева каталогов

    Возник вот вопрос где можно прочитать? интересуют моменты такие какие папки во временной памяти какие в постоянной.

    Какие не сотрутся после перезагрузки ... обьясните на пальцах.

  6. #6
    Join Date
    Mar 2009
    Location
    Russia, Moscow
    Posts
    2,108
    Blog Entries
    32

    Cтруктура директорий операционной системы Linux

    Cтруктура директорий операционной системы Linux

    Операционная система Linux имеет четкую структуру расположения директорий и файлов. Поэтому многие люди,
    начинающие изучать линукс, сталкиваются с трудностью понимания нужности каждой отдельной директории.
    В этой статье приведен список основных директорий файловой системы Линукс и их очень краткое описание.
    Краткое описание структуры файловой системы
    Linux

    01. / <root> Корневой раздел. Домашняя папка суперпользователя root располагается в корне файловой системы
    02. ├─ /bin Здесь хранятся основные команды операционной системы (ОС) - оболочки и файловой системы (ls, cp)
    03. ├─ /boot В этой директории хранятся образы ядер операционной системы Linux и менеджер загрузки (grub, lilo)
    04. ├─ /dev Директория содержит файлы устройств (принтеры, жёсткие диски), подключенные к операционной системе (ОС)
    05. ├─ /etc Здесь находятся конфигурационные файлы ОС (настройки сети, список пользователей) и программ (Apache, Samba)
    06. ├─ /home В этой директории должна в целях безопасности размещаться вся личная информация пользователей системы
    07. │ └─ /home/username Это домашняя папка пользователя usermame - хранится пользовательская часть конфигурационных файлов
    08. ├─ /lost+found Сюда скидываются файлы, на которые не было ссылок ни в одной директории, хотя их inod не помечены как свободные
    09. ├─ /lib Эта директория для хранения системных библиотек, необходимых для работы программ из директорий /bin и /sbin и ОС в целом
    10. ├─ /media Эта директория используется для автоматического монтирования USB-накопителей
    11. ├─ /mnt В эту директорию командой mount вручную монтируются различные USB-накопители
    12. ├─ /opt Директория для размещения установленных программ с большим дисковым размером или вспомогательными пакетами
    13. ├─ /proc Сюда примонтирована виртуальная файловая система procfs с информацией, которую ядро может сообщить пользователям
    13! │ ├─ /proc/modules - В этом файле находится список загруженных модулей ядра
    13ii │ └─ /proc/cpuinfo - В этом файле находится информация о процессоре компьютера
    14. ├─ /root Это домашний каталог или домашняя папка суперпользователя, по умолчанию всегда расположена в корневом каталоге
    15. ├─ /sbin Здесь находятся основные системные программы для администрирования и настройки системы (iptables, ifconfig)
    16. ├─ /srv Тут хранятся специфичные параметры для окружения системы, чаще всего данная директория бывает пустой
    17. ├─ /sys Это директория с виртуальной файловой системой sysfs с информацией ядра Linux (>v.2.6) о устройствах и драйверах
    18. │ ├─ /sys/block Эта содержит директории всех блочных устройств, присутствующих в данный момент в системе
    19. │ ├─ /sys/bus В этой директории находится список шин, определенных в ядре Linux (eisa, pci)
    20. │ └─ /sys/class Каталог содержит список группированных устройств по классам (printer, scsi-devices)
    21. ├─ /tmp Временное хранилище данных, все пользователи имеют права чтения и записи в этом каталоге
    22. ├─ /usr Здесь хранятся все установленные пакеты программ, документация и исходный код ядра (все, кроме root - Read Only)
    23. │ ├─ /usr/bin Эта директория дополнительных программ для всех учетных записей
    24. │ ├─ /usr/games Каталог для размещения доступных компьютерных игр в системе
    25. │ ├─ /usr/include В этой директории хранятся заголовочные файлы С++
    26. │ ├─ /usr/lib Тут находятся системные библиотеки для программ, расположенных в директории /usr
    27. │ ├─ /usr/sbin В этой директории хранятся дополнительные системные программы
    28. │ ├─ /usr/share А в этой директории хранятся общие данные установленных программ
    29. │ │ ├─ /usr/share/icons В этом каталоге находятся все иконки системы
    30. │ │ └─ /usr/share/doc Это директория, в которой находится справочная документация по установленным программам
    31. │ └─ /usr/src В этой директории хранятся исходные коды (здесь также располагаются исходные коды ядра)
    32. ├─ /var Это каталог для часто меняющихся данных, здесь находятся журналы ОС и системные файлы (log, cache)
    33. │ ├─ /var/cache В этом месте хранятся все cache - кэши различных программ
    34. │ ├─ /var/games В этом месте расположены файлы с игровыми достижениями
    35. │ ├─ /var/lib В этом месте - постоянные данные, изменяемые программами в процессе работы (базы данных, мета-данные)
    36. │ ├─ /var/lock Здесь лежат lock-файлы, указывающие на занятость некоторых ресурсов
    37. │ ├─ /var/log В этой директории хранятся все log - лог-файлы системы и установленных программ
    38. │ ├─ /var/spool Здесь лежат задачи, ожидающие обработки (задачи cron, очереди печати)
    39. │ └─ /var/www В этой директории размещаются Web-страницы для сервера Apache
    40. └─ / <swap> Раздел файла подкачки - виртуальной памяти для увеличения скорости обмена с оперативной памятью

    RTFM http://itshaman.ru/articles/10/directory-linux
    Last edited by Omega; 06-08-2009 at 13:57.

  7. #7
    Join Date
    Jul 2009
    Location
    Челябинск
    Posts
    236
    Quote Originally Posted by Omega View Post
    Ну это не совсем соответствует нашей структуре. Хотя после прочтения становится понятнее.
    Asus RT-N16 1.9.2.7-rtn-r2730 + D-link DNS 323 1.08 + WDTV Live 1.01.24

  8. #8
    Join Date
    Mar 2009
    Location
    Russia, Moscow
    Posts
    2,108
    Blog Entries
    32

    Cтруктура директорий операционной системы Linux

    Дополнительные каталоги в прошивке Олега для Asus WL-500gP

    Скрипты в /usr/local/sbin для выполнения пользовательских программ в определённые моменты времени :
    • /usr/local/sbin/pre-boot - исполняется до основной инициализации, в момент, когда ещё не подгружены
      никакие модули ядра, но уже развёрнут flashfs и скопирован начальный образ для /etc из /usr/etc.
    • /usr/local/sbin/post-boot - исполняется после того, как устройство закончило загрузку и запустило
      все сервисы, за исключением связанных с веб-камерой и usb дисками (они запустятся примерно
      через 10 секунд после этого при "обработке" hot plug событий, когда обработчик до них доберётся)
    • /usr/local/sbin/post-mount - отрабатывает, когда устройство завершает монтирование usb дисков,
      с тем чтобы Вы могли запустить свои сервисы, которые эти диски используют для своей работы
    • /usr/local/sbin/post-firewall - исполняется всякий раз, после того, как устройство меняет внутренние
      правила с помощью команд iptables, для того, чтобы Вы могли внести свои изменения в firewall
    • /usr/local/sbin/pre-shutdown - работает перед перезагрузкой системы, заканчивая все процессы

    http://wl500g.info/showpost.php?p=23521&postcount=12
    Last edited by Omega; 06-08-2009 at 14:02.

  9. #9
    Join Date
    Jun 2008
    Location
    Russia, Perm
    Posts
    476
    Извращенцы....
    Кратко так : /tmp - в оперативной памяти и после перезапуска сотрется, если не сделать список исключений. Остальное - на флеше..

  10. #10
    хм, а вот люди пишут /tmp/opt и туда ставят все в память у В1 есть же 32 метра своего родного, что можно загадить ... проста интересно куда ставить программы что бы не потерлись после ребута ... флешка это потом ... т.к. poptop хочется держать именно в памяти роутера ...

  11. #11
    Join Date
    Feb 2008
    Location
    Moscow, Tver
    Posts
    3,962
    Quote Originally Posted by sergey_privacy View Post
    Если кто то не заметил, даже веток форума со словами "с нуля" несколько. Прикрепленная тема имеет 81 страницу, что исключает вдумчивое ее поглощение в разумные сроки. Мне завтра надо настроить 6 точек, а на форуме вместо реальной помощи указания пальцем в стог сена.
    http://wl500g.info/showpost.php?p=19983&postcount=1
    Пункт "Общая информация по работе роутера"

    В двух словах по поводу невозможности писать в корень:
    То, что мы видим как корневой раздел - на самом деле область на флеш памяти роутера, называется flashfs.
    Ее содержимое перезаписывается только с помощью специальных команд, на основе зашитых в прошивку скриптов - из специально генерируемого архива flash.tar.gz.
    При старте роутера, все содержимое flashfs разворачивается в оперативную память по определенным алгоритмам (обратите внимание, что размер флеш памяти роутеров сильно меньше размера оперативки).
    В результате, после загрузки роутера, нам доступны на запись следующие разделы:
    /tmp - только после ручного chmod 777 /tmp, иначе запись доступна только для системных процессов.
    /mnt - сюда можно примонтировать что-нибудь вручную.
    /opt - стандартный раздел для монтирования внешнего носителя в качестве "расширителя" внутренней флеш памяти.
    Все автомонтирования подцепляемых по USB носителей (диски и флешки) проходят в /tmp/mnt/discX_Y, где X и Y - последовательные числа, в зависимости от порядка монтирования разделов: X - номер диска, Y - номер раздела на нем.
    /usr/local - для пользовательских настроек и хранения специальных скриптов.
    Чтобы не потерять сделанные изменения в файлах (кроме раздела /opt), необходимо список измененных вручную файлов записывать в специальном файле /usr/local/.files и выполнять магическую команду:
    flashfs save && flashfs commit && flashfs enable && reboot
    (данное справедливо в основном для конфигов в /etc и скриптов в /usr/local).
    Для стандартных автоматических операций существует дополнительная опция в прошивках от Олега и последователей:
    Quote Originally Posted by Oleg
    Стартовые скрипты

    "Итак, моя прошивка пытается исполнить следующие файлы:
    * /usr/local/sbin/pre-boot - исполняется до основной инициализации, в момент, когда ещё не подгружены никакие модули ядра, но уже развёрнут flashfs и скопирован начальный образ для /etc из /usr/etc.

    * /usr/local/sbin/post-boot - исполняется после того, как устройство закончило загрузку и запустило все сервисы, за исключением связанных с веб-камерой и usb дисками (они запустятся примерно через 10 секунд после этого при "обработке" hot plug событий, когда АСУСовский обработчик до них доберётся)

    * /usr/local/sbin/post-mount - отрабатывает, когда устройство завершает монтирование usb дисков, с тем чтобы Вы могли запустить свои сервисы, которые эти диски используют

    * /usr/local/sbin/pre-shutdown - работает перед перезагрузкой системы

    * /usr/local/sbin/post-firewall - исполняется всякий раз, после того как устройство меняет внутренние правила с помощью команд iptables, с тем, чтобы Вы могли внести свои изменения в firewall"
    Вроде все.
    Я могу и ошибаться в деталях, если кто поправит - исправлю.

  12. #12
    Join Date
    May 2007
    Location
    Истра
    Posts
    1,246
    Quote Originally Posted by vectorm View Post
    Я могу и ошибаться в деталях, если кто поправит - исправлю.
    Если уж точнее, то дело обстоит так (на примере прошивки Олега ...-10 и роутера wl-500gp):
    вся flash-память роутера делится на 5 областей (местами перекрывающихся):
    1. boot - загрузчик, сюда лучше не пытаться писать, может закончиться необходимостью выпаивания микросхемы с flash-памятью.
    2. linux - сюда записывается файл прошивки при перепрошивке.
    3. rootfs - часть раздела linux. Содержит корневую файловую систему (~ 3 МБ). Раздел защищён от записи.
    4. nvram - сюда пишутся параметры nvram (команда nvram commit).
    5. flashfs - также является частью раздела linux (идёт внутри него после rootfs). Размер - всё не занятое остальными разделами место (у меня ~ 4 МБ). Здесь хранится то, что называется flashfs (по факту - один файл в формате .tar.gz). Раздел доступен для записи. Сюда пишет команда flashfs commit.


    Так вот, раздел rootfs содержит корневую файловую систему в формате squashfs. Мало того, что сам раздел защищён от записи (запись в него косвенно идёт только во время перепрошивки, т.к. он - часть раздела linux), так ещё и squashfs - принципиально read-only файловая система.

    После монтирования squashfs на / мы имеем полностью read-only ФС (мы тут не рассматриваем всякие /dev и /proc). Но после этого на /tmp монтируется ramfs (ФС, сидящая в оперативной памяти), и она уже доступна для записи.
    Затем в /tmp создаётся некоторая структура папок. Если присмотреться, некоторые папки в squashfs - это символические ссылки на подпапки в /tmp (например, /etc -> tmp/etc, /usr/local -> ../tmp/local, /usr/tmp -> ../tmp), таким образом, в них тоже можно писать.

    После этого распаковывается *.tar.gz-архив, лежащий в flashfs. Обычно всё его содержимое попадает в /usr/local/ (который, на самом деле, /tmp/local/), но это зависит от того, что вы туда сохраните командами flashfs save && flashfs commit.

    Команда flashfs save сохраняет всё содержимое /tmp/local/ а также все файлы и папки, пути к которым указаны в файле /usr/local/.files (если этот файл существует), в архив /tmp/flash.tar.gz. Команда flashfs commit записывает этот архив в раздел flashfs.

    Команда flashfs enable записывает в один из параметров nvram (конкретно, в boot_local) специальное значение - версию текущей прошивки. Если при загрузке роутера значение из nvram равно номеру версии текущей прошивки, то архив из flashfs распаковывается. Если нет - то не распаковывается. Есть также специальное значение этого параметра - "enabled" (задаётся командой flashfs enabled), при таком значении flashfs распаковывается независимо от версии текущей прошивки.
    Команда flashfs disable очищает этот параметр, так что flashfs больше при загрузке не распаковывается.
    Таким образом, совсем не обязательно каждый раз выполнять flashfs enable, достаточно одного раза после каждой смены прошивки или вообще одного раза flashfs enabled.

    Вообще, по поводу flashfs полезно почитать cat /sbin/flashfs.
    Everybody stand back. I know iptables.
    Мой вариант правильного выключения роутера.

  13. #13
    Join Date
    Mar 2009
    Location
    Russia, Moscow
    Posts
    2,108
    Blog Entries
    32

    Arrow MAC-адреса интерфейсов роутера DIR-320

    Quote Originally Posted by chyuliy View Post
    пипл, ни у кого в логах такой строчки нет?
    Code:
    Jan  1 03:00:04 kernel: vlan2: Setting MAC address to  хх хх хх хх хх хх.
    Jan  1 03:00:04 kernel: VLAN (vlan2):  Underlying device (eth0) has same MAC, not checking promiscious mode.
    А поиском не пробовали воспользоваться ? Этот вопрос на форуме уже пицот раз задавался
    Quote Originally Posted by avk View Post
    Code:
    kernel: vlan1: Setting MAC address to  00 22 15 6c de f7.
    kernel: VLAN (vlan1):  Underlying device (eth0) has same MAC, not checking promiscious mode.
    Такое сообщение присутствует, если в секции Special Requirement from ISP не используется подмена
    MAC-адреса для интерфейса vlan1 и обоим интерфейсам vlan1 и eth0 назначаются одинаковые адреса
    .
    Если у Вас роутер DIR-320 - нужно поменять MAC-адреса интерфейсов на свои, иначе может быть конфликт в сети
    После перепрошивки они становятся одинаковыми у всех роутеров - WAN : 00 90 4c c0 00 00 и Wi-Fi : 00 90 4c c1 00 00.
    Quote Originally Posted by sorine View Post
    P.P.S. Обращаю внимание, что после перепрошивки MAC-адрес проводной части роутера изменится на 00 90 4c c0 00 00,
    а беспроводной на 00 90 4c c1 00 00. Так что если у вашего проводного провайдера была авторизация по MAC-адресу,
    либо если в вашей проводной сети существуют такие же переделанные D-link DIR-320, то установите необходимый
    MAC адрес (например, с днища роутера) в соответствующее поле настроек подключения.
    Если используем несколько D-link DIR-320, соединив их по Wi-Fi в режиме Hibrid или WDS, то необходимо сделать
    различные MAC-адреса Wi-Fi у всех роутеров. Для этого вводим MAC-адреса Wi-Fi следующей командой:
    Code:
    nvram set il0macaddr=00:11:22:33:44:55
    nvram commit
    где вместо 00:11:22:33:44:55 вводим нужный адрес.
    Как узнать заводские MAC-адреса роутера DIR-320 :
    Code:
    MAC-адрес LAN: cat /dev/mtd/3|grep lanmac
    MAC-адрес WAN: cat /dev/mtd/3|grep wanmac
    *Guest Zone: cat /dev/mtd/3|grep lan2mac
    * в прошивке Олега не используется
    Как установить новые MAC-адреса интерфейсов :
    Code:
    nvram set il0macaddr=xx:xx:xx:xx:xx:xx <- WiFi
    nvram set et0macaddr=xx:xx:xx:xx:xx:xx <- LAN
    nvram commit
    reboot
    Для WAN-порта можно ввести в WEB-морде или вот так :
    Code:
    nvram set il0macaddr=xx:xx:xx:xx:xx:xx <- MAC-адрес Wi-Fi
    nvram set wl0_hwaddr=xx:xx:xx:xx:xx:xx <- MAC-адрес Wi-Fi
    nvram set et0macaddr=xx:xx:xx:xx:xx:xx <- MAC-адрес LAN
    nvram set lan_hwaddr=xx:xx:xx:xx:xx:xx <- MAC-адрес LAN
    nvram set wan_hwaddr=xx:xx:xx:xx:xx:yy <- MAC-адрес WAN
    nvram set wan0_hwaddr=xx:xx:xx:xx:xx:yy <- MAC-адрес WAN
    nvram commit
    reboot
    Для проверки MAC-адресов интерфейсов вводим :
    Code:
    ifconfig | grep HWaddr
    Получаем результат - таблицу MAC-адресов :
    Code:
    br0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx <- LAN
    eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx <- LAN
    eth1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx <- WiFi
    vlan0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx <- LAN
    vlan2 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:yy <- WAN
    По умолчанию MAC-адреса: Wi-Fi=LAN+1, WAN=LAN+2
    т.е. для WAN нужно просто прибавить +2 (yy=xx+2)

    Поиск по тэгу mac в помощь, это уже здесь писали ...
    http://wl500g.info/showthread.php?p=140556#post140556

    Нельзя использовать erаse /dеv/mtd/3 для сброса nvram - тогда из памяти
    сотрется заводской mac-адрес и будут проблемы с родной прошивкой.


    Не забываем изменить интерфейсы роутера после прошивки :
    9. Для прошивки 1.9.2.7-10.7 заходим телнетом (C:/bin > telnet 192.168.1.1) на роутер
    (логин и пароль - admin) и только для прошивки 1.9.2.7-10.7 вводим следующие команды,
    для остальных прошивок (> 1.9.2.7-d-r423) этот пункт выполнять не надо:

    Code:
    nvram unset vlan2ports
    nvram unset vlan2hwname
    nvram set vlan1hwname=et0
    nvram set vlan1ports="0 5"
    nvram set wandevs=vlan1
    nvram set wan_ifname=vlan1
    nvram set wan_ifnames=vlan1
    nvram set wan0_ifname=vlan1
    nvram set wan0_ifnames=vlan1
    nvram commit
    reboot
    Этот пункт для прошивки 1.9.2.7-10.7 необходимо выполнять после каждого сброса в исходное состояние.

    Все. Теперь у вас роутер D-Link DIR-320 с прошивкой Олега, представляющийся как Asus WL-500gP V2.
    http://wl500g.info/showthread.php?t=17641

    Пожааалуйййста объясните какой мак адресс надо писать , куда его пропсать и как праильно его написать.
    Прописывать нужно MAC-адрес сетевой карты компа, который точно работает в сети напрямую (без роутера)
    Писать надо подряд и без знака ":", например, так : 001A2B4C6D8E (в нём нет буквы "О", там только 0 "нуль")

    IP Config - WAN & LAN Special Requirement from ISP -> MAC Address: 001A2B4C6D8E



    Проверить MAC-адреса интерфейсов можно так : зайти в настройках роутера на страницу
    System Setup - System Command, в строке ввести ifconfig | grep HWaddr, затем "Refresh"
    _________________________________________________
    З.Ы. Если будут ещё вопросы, добавим и ответы ...
    Last edited by Omega; 08-10-2009 at 22:37. Reason: добавление и исправление

  14. #14
    Join Date
    Mar 2009
    Location
    Russia, Moscow
    Posts
    2,108
    Blog Entries
    32

    Дополнительные разделы и команды в прошивке Олега

    Дополнительные разделы и команды в прошивке Олега

    Quote Originally Posted by vectorm View Post
    http://wl500g.info/showpost.php?p=19983&postcount=1

    Пункт "Общая информация по работе роутера" -- В двух словах по поводу невозможности писать в корень:

    То, что мы видим как корневой раздел - на самом деле область на флеш-памяти роутера, называется flashfs.
    Ее содержимое перезаписывается только с помощью специальных команд, на основе зашитых в прошивку
    скриптов - из специально генерируемого архива flash.tar.gz.

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

    В результате, после загрузки роутера, нам доступны на запись следующие разделы:
    • /tmp - только после ручного chmod 777 /tmp, иначе запись доступна только для системных процессов.
    • /opt - стандартный раздел для монтирования внешнего носителя для расширения внутренней флеш-памяти.
    • /mnt - сюда можно примонтировать что-нибудь вручную. Все автомонтирования подцепляемых по USB
      носителей (диски и флешки) проходят в /tmp/mnt/discX_Y, где X и Y - последовательные числа,
      в зависимости от порядка монтирования разделов: X - номер диска, Y - номер раздела на нем.
    • /usr/local - для пользовательских настроек и хранения специальных скриптов.

    Чтобы не потерять сделанные изменения в файлах (кроме раздела /opt), необходимо список измененных
    вручную файлов записывать в специальном файле /usr/local/.files и выполнять магическую команду:
    Code:
    flashfs save && flashfs commit && flashfs enable && reboot
    (данное правило справедливо в основном для конфигов в /etc и скриптов в /usr/local).

    Для стандартных автоматических операций существует дополнительная опция в прошивках от Олега и последователей:
    Скрипты в /usr/local/sbin для выполнения пользовательских программ в определённые моменты времени :
    • /usr/local/sbin/pre-boot - исполняется до основной инициализации, в момент, когда ещё не подгружены
      никакие модули ядра, но уже развёрнут flashfs и скопирован начальный образ для /etc из /usr/etc.
    • /usr/local/sbin/post-boot - исполняется после того, как устройство закончило загрузку и запустило
      все сервисы, за исключением связанных с веб-камерой и usb дисками (они запустятся примерно
      через 10 секунд после этого при "обработке" hot plug событий, когда обработчик до них доберётся)
    • /usr/local/sbin/post-mount - отрабатывает, когда устройство завершает монтирование usb дисков,
      с тем чтобы Вы могли запустить свои сервисы, которые эти диски используют для своей работы
    • /usr/local/sbin/post-firewall - исполняется всякий раз, после того, как устройство меняет внутренние
      правила с помощью команд iptables, для того, чтобы Вы могли внести свои изменения в firewall
    • /usr/local/sbin/pre-shutdown - работает перед перезагрузкой системы, заканчивая все процессы

    http://wl500g.info/showpost.php?p=23521&postcount=12
    Вроде все. Я могу и ошибаться в деталях, если кто поправит - исправлю.
    http://wl500g.info/showpost.php?p=159244&postcount=1503

    Quote Originally Posted by Power View Post
    Если уж точнее, то дело обстоит так (на примере прошивки Олега ...-10 и роутера wl-500gp) -
    Bся flash-память роутера делится на 5 областей (местами перекрывающихся):
    Code:
    0x00000000-0x00020000 : "boot"
    0x00020000-0x003f0000 : "linux"
    0x000c4000-0x003f0000 : "rootfs"
    0x003f0000-0x00400000 : "nvram"
    0x003c0000-0x003f0000 : "flashfs"
    1. boot - загрузчик (бутлоадер), сюда лучше не пытаться писать, может
      закончиться необходимостью выпаивания микросхемы с flash-памятью.
    2. linux - сюда записывается файл прошивки при перепрошивке роутера.
    3. rootfs - часть раздела linux. Содержит корневую файловую систему (~ 3 МБ).
    4. nvram - в этот раздел пишутся параметры nvram (команда nvram commit).
    5. flashfs - также является частью раздела linux (идёт внутри него после rootfs).
      Размер этого раздела - всё не занятое остальными разделами место (у меня ~ 4 МБ).
      Здесь хранится то, что называется flashfs (по факту - один файл в формате .tar.gz).
      Раздел доступен для записи. Сюда пишет команда flashfs commit.

    Так вот, раздел rootfs содержит корневую файловую систему в формате squashfs. Мало того,
    что сам раздел защищён от записи (запись в него косвенно идёт только во время перепрошивки,
    т.к. он - часть раздела linux), так ещё и squashfs - принципиально read-only файловая система.

    После монтирования squashfs на / мы имеем полностью read-only ФС (мы тут не рассматриваем /dev и /proc).
    Но после этого на /tmp монтируется ramfs (ФС, сидящая в оперативной памяти), и она уже доступна для записи.
    Затем в /tmp создаётся некоторая структура папок. Если присмотреться, некоторые папки в squashfs - это
    символические ссылки на подпапки в /tmp (/etc -> /tmp/etc, /usr/local -> /tmp/local, /usr/tmp -> /tmp),
    таким образом, в них тоже можно писать.

    После этого распаковывается *.tar.gz-архив, лежащий в flashfs. Обычно всё его содержимое попадает в /usr/local/
    (который, на самом деле, /tmp/local/), но это зависит от того, что вы туда сохраните командами :
    Code:
    flashfs save && flashfs commit

    Команда flashfs save сохраняет всё содержимое /tmp/local/, а также все файлы и папки, пути к которым указаны в файле
    /usr/local/.files (если он есть), в архив /tmp/flash.tar.gz. Команда flashfs commit записывает этот архив в раздел flashfs.

    Команда flashfs enable записывает в один из параметров nvram (конкретно, в boot_local) специальное значение - версию
    текущей прошивки. Если при загрузке роутера значение из nvram равно номеру версии текущей прошивки, то архив из
    flashfs распаковывается. Если нет - то не распаковывается. Есть также специальное значение этого параметра - "enabled"
    (задаётся командой flashfs enabled), при таком значении flashfs распаковывается независимо от версии текущей прошивки.

    Команда flashfs disable очищает этот параметр, так что архив из flashfs больше при загрузке не распаковывается.
    Таким образом, совсем не обязательно каждый раз выполнять flashfs enable, достаточно одного раза после каждой смены
    прошивки или вообще одного раза flashfs enabled. Вообще, по поводу flashfs полезно почитать cat /sbin/flashfs.
    http://wl500g.info/showpost.php?p=159260&postcount=1505

  15. #15

    можно еще раз про структуру встроенного флеша?

    Имеется ASUS WL-500gP2 с 8Mb встроенного флеша, прошивка WL500gpv2-1.9.2.7-d-r1222.trx.

    cat /proc/mtd выдает:

    dev: size erasesize name
    mtd0: 00020000 00010000 "boot"
    mtd1: 007d0000 00010000 "linux"
    mtd2: 0071e3a8 00010000 "rootfs"
    mtd3: 00010000 00010000 "nvram"
    mtd4: 00430000 00010000 "flashfs"

    Сам я достаточно далек от понимания - что такое mtd в Linux, но гуру пишут:

    Quote Originally Posted by Power View Post
    Если уж точнее, то дело обстоит так (на примере прошивки Олега ...-10 и роутера wl-500gp):
    вся flash-память роутера делится на 5 областей (местами перекрывающихся):
    Хотелось бы понять что такое "область", что значит "области частично перекрываются" и как рассчитывается ее size в cat /proc/mtd ?

    Насколько я понимаю - это не разделы диска в привычном понимании, потому как - если тупо просуммировать size по всем dev, то итоговая сумма выходит далеко за 8Mb.

    Насчет "перекрытия" - я так понял, что дело обстоит примерно так (хотя уверен, что не так, но тем не менее :

    -> boot (0x00020000 = 131 072)
    -> nmram (0x00010000 = 65 536)
    -> linux (0x007d0000 = 8 192 000)
    ----> rootfs (0x0071e3a8 = 7 463 848)
    --------> каталоги Linux из прошивки (размером 7 463 848 - flashfs = 3 072 936)
    --------> flashfs (0x00430000 = 4 390 912)
    ----> что-то размером (8 192 000 - 7 463 848 = 728 152)

    При этом для разделов boot и nvram во флеше, вроде как, места нет.

    Плюс еще Олег пишет:
    Quote Originally Posted by OlegI View Post

    Общая информация по работе роутера:

    ...

    при включении питания считываются первые 256Кб флэша, в них лежит загрузчик (CFE, аналог BIOS), он читает кусок флэша с параметрами (nvram 64Кб).
    а "область" boot показывается размером в 128Кб.

    Думаю, что ликбез по обозначенным вопросам многим будет полезен.
    Меня, в частности, сюда занесло в связи с вопросом установки mc во встроенный флеш..

    Спасибо!
    Last edited by marcellus; 09-06-2010 at 21:42.

Page 1 of 2 12 LastLast

Similar Threads

  1. Mini PCI mod: делаем из WL-500gPv1 WL-500W и получаем Wi-Fi N !
    By slava in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 294
    Last Post: 17-06-2017, 18:37
  2. Mini PCI mod: Asus WL-500gPv1 (WL-500W) с 2.4/5 GHz DualBand
    By kolbasa in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 115
    Last Post: 19-10-2015, 17:11
  3. Блок питания Asus WL-500gPv1/W - ремонт и замена
    By alexanderm in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 370
    Last Post: 23-12-2014, 09:29
  4. Replies: 141
    Last Post: 08-04-2014, 09:32
  5. USB audio - from Linux
    By mangodan in forum WL-500g Custom Development
    Replies: 5
    Last Post: 10-04-2007, 12:25

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
  •