Page 1 of 31 12311 ... LastLast
Results 1 to 15 of 460

Thread: Сборка собственной прошивки

  1. #1
    Join Date
    Aug 2008
    Location
    Saratov, Russia
    Posts
    27

    Lightbulb Сборка собственной прошивки

    Создание собственной прошивки

    специально для всех даю краткую инструкцию... всего десяток комманд... для компиляции нужно иметь linux-box (в моем случае Debian GNU/Etch 4.0 развернутый в VMWare для чистоты экспиремента)

    Code:
    # uname -a
    Linux debian 2.6.26-1-amd64 #1 SMP Thu Aug 28 13:32:26 UTC 2008 x86_64 GNU/Linux
    подготовим место для сборки и скачали три необходимых файла

    Code:
    # rm -rf /opt/brcm /opt/broadcom
    # ls -la ~/tmp
    -rw-r--r-- 1 root root 273177367 2008-09-13 00:12 GPL_1927.ZIP
    -rw-r--r-- 1 root root   2015762 2008-09-13 00:12 hndtools-mipsel-uclibc-3.2.3-full.tar.bz2
    -rw-r--r-- 1 root root  15256385 2008-09-13 00:12 wl500g-1.9.2.7-10.tar.bz2
    выполняем по очереди комманды... вывод каждой не привожу... смысла не вижу (кому нужно могу сделать логи выполнения каждой комманды make)

    Code:
    # tar -C /opt -zxvf ~/tmp/GPL_1927.ZIP
    # mv /opt/broadcom/opt/brcm /opt
    # tar -C / -jxvf ~/tmp/hndtools-mipsel-uclibc-3.2.3-full.tar.bz2
    # rm /opt/brcm/hndtools-mipsel-uclibc
    # ln -sf /opt/brcm/hndtools-mipsel-uclibc-3.2.3-full /opt/brcm/hndtools-mipsel-uclibc
    # export PATH=$PATH:/opt/brcm/hndtools-mipsel-uclibc/bin:/opt/brcm/hndtools-mipsel-linux/bin
    # tar -C /opt/broadcom/src -jxvf ~/tmp/wl500g-1.9.2.7-10.tar.bz2
    # cd /opt/broadcom/src/wl500g-1.9.2.7-10 && make kernel && make
    # cd /opt/broadcom/src/gateway && make && make images
    в результате получаем все образы

    Code:
    # ls -la /opt/broadcom/src/gateway/mipsel-uclibc/
    total 39880
    drwxr-xr-x  5 root root    4096 2008-09-13 00:33 .
    drwxr-xr-x 49 root root    4096 2008-09-13 00:18 ..
    drwxr-xr-x 40 root root    4096 2008-09-13 00:33 install
    drwxr-xr-x  3 root root    4096 2008-09-13 00:26 modules
    drwxr-xr-x 14 root root    4096 2008-09-13 00:33 target
    -rwx------  1 root root 3095166 2008-09-13 00:33 target.cramfs
    -rw-r--r--  1 root root  669542 2008-09-13 00:33 vmlinuz
    -rw-r--r--  1 root root 3674112 2008-09-13 00:28 WL320gE-1.9.2.7-10.trx
    -rw-r--r--  1 root root 3674112 2008-09-13 00:29 WL320gP-1.9.2.7-10.trx
    -rw-r--r--  1 root root 3674112 2008-09-13 00:33 WL330gE-1.9.2.7-10.trx
    -rw-r--r--  1 root root 3702784 2008-09-13 00:30 WL500gp-1.9.2.7-10.trx
    -rw-r--r--  1 root root 3698688 2008-09-13 00:32 WL500gpv2-1.9.2.7-10.trx
    -rw-r--r--  1 root root 3706880 2008-09-13 00:27 WL500gx-1.9.2.7-10.trx
    -rw-r--r--  1 root root 3702784 2008-09-13 00:31 WL500W-1.9.2.7-10.trx
    -rw-r--r--  1 root root 3698688 2008-09-13 00:31 WL520gu-1.9.2.7-10.trx
    -rw-r--r--  1 root root 3698688 2008-09-13 00:28 WL550gE-1.9.2.7-10.trx
    -rw-r--r--  1 root root 3768320 2008-09-13 00:33 WL700g-1.9.2.7-10.trx
    Last edited by Omega; 16-08-2011 at 20:29. Reason: fixed

  2. #2

    Unhappy

    Quote Originally Posted by makcumka View Post
    специально для всех даю краткую инструкцию... всего десяток комманд... для компиляции нужно иметь linux-box (в моем случае Debian GNU/Etch 4.0 развернутый в VMWare для чистоты экспиремента)
    Code:
    # uname -a
    Linux debian 2.6.26-1-amd64 #1 SMP Thu Aug 28 13:32:26 UTC 2008 x86_64 GNU/Linux
    Попробовал на Debiane под VMWare
    Code:
    debian:/# uname -a
    Linux debian 2.6.18-6-686 #1 SMP Mon Aug 18 08:42:39 UTC 2008 i686 GNU/Linux
    Свежая установка, из дополнительных настроек только openssh. Все операции проделаны через ssh, из под root`а. ~/tmp/ у меня не оказалось, сложил и соответственно распаковывал из /tmp/tt/
    До следующей команды все проходит без ошибок
    Code:
    cd /opt/broadcom/src/wl500g-1.9.2.7-10 && make kernel
    А на make выдает:
    Code:
    patching file options.h
    Hunk #1 succeeded at 204 (offset 19 lines).
    cd /opt/broadcom/src/gateway/dropbear-0.50 && \
                    CC=mipsel-uclibc-gcc ./configure --host=mipsel-linux --disable-zlib --disable-shadow \
                    --disable-lastlog --disable-utmp --disable-utmpx --disable-wtmp --disable-wtmpx \
                    --disable-libutil --disable-loginfunc --disable-pututline --disable-pututxline
    configure: WARNING: If you wanted to set the --build type, don't use --host.
        If a cross compiler is detected then cross compile mode will be used.
    checking for mipsel-linux-gcc... mipsel-uclibc-gcc
    checking for C compiler default output file name... configure: error: C compiler cannot create executables
    See `config.log' for more details.
    make: *** [/opt/broadcom/src/gateway/dropbear/config.h] Error 77
    Может быть еще какие телодвижения нужно делать?
    Last edited by Omega; 16-08-2011 at 20:31. Reason: fixed

  3. #3

    Unhappy Создание собственной прошивки

    Создание собственной прошивки

    makcumka, спасибо все получилось.

    Итак, по порядку:
    1. Ставил на WMware, линух под ядро 2.6. При создании виртуальной машины указывал сетку "host-only", размер винта 8Гб (реально понадобилось меньше 5-ти), 256 оперативки.
    2. Ставил Debian с CD образов под именем "debian-40r4a-i386-CD-1.iso" и т.д. Ставил стандартную установку, там проблем не ожидается. При запросе параметров сети, выбирал сеть с DHCP-manual, и указывал IP хоста.
    3. Подготовка к установке нужных пакетов
      - заполняем локальный репозиторий. В рутовой консоле выполняем
      Code:
      #apt-cdrom add
      Вставляем(или монтируем к vmware) cd с маркировкой "debian-40r4a-i386-CD-2.iso".
      Повторяем ввод команды для каждого диска. Не уверен, но может быть понадобится только первые четыре.
    4. Проверяем на наличие и устанавливаем пакет с ssh-сервером
      Code:
      #aptitude search openssh-server
      i   openssh-server                  - Secure shell server, an rshd replacement
      #aptitude install openssh-server
      После этого у меня при помощи программы TunnelierPortable соединение проходило без проблем.
      И далее я все делал через ssh - мне так привычней и удобней.
    5. Проверка доступности необходимых пакетов.
      Вывод не привожу, должен быть аналогичен предыдущему пункту:
      Code:
      #aptitude search build-essential
      #aptitude search libncurses-dev
      #aptitude search gawk
      #aptitude search flex
      #aptitude search zlib1g-dev
      Если какой-то пакет не доступен, то нужно повторить заполнение локального репозитария.
    6. Установка пакетов:
      Code:
      #aptitude install build-essential
      #aptitude install libncurses-dev
      #aptitude install gawk
      #aptitude install flex
      #aptitude install zlib1g-dev
    7. Копирование исходников в виртуальную машину.
      Через SFTP, реализованный в TunnelierPortable, положим в /home/user/tt/ файлы
      GPL_1927.zip
      hndtools-mipsel-uclibc-3.2.3-full.tar.bz2
      wl500g-1.9.2.7-10.tar.bz2

      Дальше действовал по инструкции от makcumkи
    8. Удаляем хвосты(на всякий случай
      Code:
      # rm -rf /opt/brcm /opt/broadcom
    9. Проверяем, что нужные исходники лежат там, где необходимо
      Code:
      # ls -la /home/user/tt/
      -rw-r--r-- 1 root root 273177367 2008-09-13 00:12 GPL_1927.ZIP
      -rw-r--r-- 1 root root   2015762 2008-09-13 00:12 hndtools-mipsel-uclibc-3.2.3-full.tar.bz2
      -rw-r--r-- 1 root root  15256385 2008-09-13 00:12 wl500g-1.9.2.7-10.tar.bz2
    10. Распаковка исходников
      Code:
      #rm -rf /opt/brcm /opt/broadcom 
      #tar -C /opt -zxvf /home/user/tt/GPL_1927.ZIP
      #mv /opt/broadcom/opt/brcm /opt
      #tar -C / -jxvf /home/user/tt/hndtools-mipsel-uclibc-3.2.3-full.tar.bz2
      #rm /opt/brcm/hndtools-mipsel-uclibc
      #ln -sf /opt/brcm/hndtools-mipsel-uclibc-3.2.3-full /opt/brcm/hndtools-mipsel-uclibc
      #export PATH=$PATH:/opt/brcm/hndtools-mipsel-uclibc/bin:/opt/brcm/hndtools-mipsel-linux/bin
      #tar -C /opt/broadcom/src -jxvf /home/user/tt/wl500g-1.9.2.7-10.tar.bz2
      Делается достаточно долго, но проблем не ожидается.
    11. Собственно сборка и компиляция:
      Code:
      #cd /opt/broadcom/src/wl500g-1.9.2.7-10 && make kernel && make
      #cd /opt/broadcom/src/gateway && make && make images
      При первых проходах вываливались ошибки.
      На этом этапе, по совету DemonGloom, я начал подбирать необходимые пакеты, установленные "выше".
    12. Проверка получившегося
      Code:
      # ls -la /opt/broadcom/src/gateway/mipsel-uclibc/
      total 39880
      drwxr-xr-x  5 root root    4096 2008-09-15 16:46 .
      drwxr-xr-x 49 root root    4096 2008-09-15 16:33 ..
      drwxr-xr-x 40 root root    4096 2008-09-15 16:45 install
      drwxr-xr-x  3 root root    4096 2008-09-15 16:34 modules
      drwxr-xr-x 13 root root    4096 2008-09-15 16:46 target
      -rwx------  1 root root 3094584 2008-09-15 16:46 target.cramfs
      -rw-r--r--  1 root root  669529 2008-09-15 16:45 vmlinuz
      -rw-r--r--  1 root root 3674112 2008-09-15 16:37 WL320gE-1.9.2.7-10.trx
      -rw-r--r--  1 root root 3674112 2008-09-15 16:39 WL320gP-1.9.2.7-10.trx
      -rw-r--r--  1 root root 3674112 2008-09-15 16:45 WL330gE-1.9.2.7-10.trx
      -rw-r--r--  1 root root 3702784 2008-09-15 16:40 WL500gp-1.9.2.7-10.trx
      -rw-r--r--  1 root root 3698688 2008-09-15 16:43 WL500gpv2-1.9.2.7-10.trx
      -rw-r--r--  1 root root 3706880 2008-09-15 16:35 WL500gx-1.9.2.7-10.trx
      -rw-r--r--  1 root root 3702784 2008-09-15 16:41 WL500W-1.9.2.7-10.trx
      -rw-r--r--  1 root root 3698688 2008-09-15 16:42 WL520gu-1.9.2.7-10.trx
      -rw-r--r--  1 root root 3698688 2008-09-15 16:36 WL550gE-1.9.2.7-10.trx
      -rw-r--r--  1 root root 3768320 2008-09-15 16:46 WL700g-1.9.2.7-10.trx

    Можно устанавливать Debian с сети, тогда в настройках виртуальной машину нужно выбирать мост или NAT, и третий пункт (подготовка локального репозитория) не понадобится.

    PS. Сейчас будут пробовать перепрошивать.
    PPS. Перепрошил - работает. Но почему же размер отличается от оригинального на 94208?
    Last edited by Omega; 16-08-2011 at 20:38. Reason: fixed

  4. #4
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    169

    Опыт создания custom firmware

    Добрый вечер!
    Сегодня весь день провел, разбираясь с toolchain-ом.
    Мне нужно было, как минимум, скомпилировать модуль ядра hid.o для поддержки моего UPS (Krauler UP-M500VA), который снабжен usb разъемом и поддерживает HID интерфейс.

    Попутно я разобрался с процессом создания прошивки. Вот какие проблемы возникли:
    (1) Сначала решил попробовать собрать прошивку (версия 1.9.2.7-7f), ничего не меняя в конфигурации, чтобы проверить, что все работает. Все скачал, установил, пропатчил. Но! В самом конце, после компиляции всех исходников, при выполнении make install для окончательной сборки прошивки возникла ошибка с исходниками библиотеки lzma - их не было на нужном месте.
    На форуме нашел подсказку попробовать make lzma в каталоге прошивки, но и это не сработало. Покопался в Makefile, показалось что там все в порядке . Вобщем, пропатчил вручную.

    (2) Еще такое дело: когда все-таки собрал, размер моего trx файла оказался на 230КБ меньше, чем оригинальная прошивка Олега. Это тоже очень странно... Как добиться, чтобы размеры совпадали?

    (3) Но, моя цель была - модуль hid.o, так что выполнил команду make menuconfig в каталоге src/gateway.
    Добавил поддержку hid устройств в секции usb (модуль) и опцию для поддержки устройств hiddev.
    Сделал make и тут-то пошли ошибки в файлах drivers/usb/hid-core.c и drivers/usb/hiddev.c.
    Путем тщательного анализа до меня дошло, что кто-то патчил код поддержки usb устройств кодом из ядра версии 2.4.25 (тогда как оригинальный код из 2.4.20), но недопатчил!!
    Дело в том что в каталоге drivers/usb/ заменены были все файлы, но header файлы, которыми они пользовались (в моем случае - это include/linux/hiddev.h), были заменены только частично. Пришлось качать исходники ядра 2.4.25 и обновлять файл.
    После этого все прекрасно скомпилировалось, я засунул полученный hid.o на работающий роутер и тот увидел мой UPS. Я его немного потестил, все работает прекрасно.
    Так что, считаю, патч для этого файла (хотя бы) можно было бы добавить в прошивку.

    P.S. Оффтоп. Еще в свое время обнаружил, что в библиотеку uClibc при сборке не была включена локаль ru_RU.CP1251, зато включена be_BY.CP1251 (Беларуссия) и они совершенно идентичны (это показал анализ исходников). У меня это было необходимо для svn checkout на роутере, если в именах файлов на сервере встречаются русские буквы.
    Может быть, кому-нибудь пригодится.
    Last edited by Xander; 11-11-2006 at 21:19.

  5. #5
    Join Date
    Dec 2003
    Location
    Russian Federation
    Posts
    8,353
    (1) понятия не имею.
    (2) это мой маленький секрет - там лежит tcpdump
    (3) да, да. АСУС так развлекается. Дайте патч для юсб я добавлю его.

  6. #6
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    169
    Спасибо за мгновенный ответ
    Вот и патч.
    Attached Files Attached Files

  7. #7
    Join Date
    Dec 2003
    Location
    Russian Federation
    Posts
    8,353
    Добавил этот патч, назвав kernel-usb-hiddev.patch

  8. #8
    Господа прикрепите эту ветку многие уже пытаются создать на Олеговой прошивке свои сборки с некими дополнениями им это нужно !!!
    Мож кто DM иль wget добавит=)))))

  9. #9
    Join Date
    Oct 2006
    Location
    Россия, Ульяновск
    Posts
    15
    Добрый день, ребята! Вопрос, конечно ламерский для Вас, но иожно я его задам? Есть железяка Asus Wl-500g Deluxe. Есть модифицированная прошивка для моего роутера (чтобы мобильник можно было подлючить свой). Так вот, есть задача воткнуть туда видеокамеру. Но, к сожалению, моя видеокамера не поддерживается. Объясните, пожалуйста, или ткните где можно прочитать, как моздать свою прошивку на основе модифицированной, но с поддержкой моей видеокамеры? Драйвера для этой видеокарты скачаны! Спасибо! Извините, если где-то на этом сайте есть, но я не нашел!

    Quote Originally Posted by Xander View Post
    Добрый вечер!
    Сегодня весь день провел, разбираясь с toolchain-ом.
    Мне нужно было, как минимум, скомпилировать модуль ядра hid.o для поддержки моего UPS (Krauler UP-M500VA), который снабжен usb разъемом и поддерживает HID интерфейс.
    Уважаемый не подскажите куда вы скопировали файлы с вашими драйверами. У меня задача сунуть отдельные скомпилированные модули ядра и отдельно их подключать. Но никак не могу их сунуть в прошивку, чтобы они были в /lib/kernel/modules? УЖе голову всю сломал. спасибо!

    Друзья, вообщем скачал драйвер для моей видеокамеры Creative PC-CAM 300, взятый отсюда: http://wl500g.info/showthread.php?t=1698
    Загружаю этот драйвер. В логах при подключении камеры пишет:
    Jan 1 03:01:42 kernel: usb.c: registered new driver '
    Jan 1 03:01:42 kernel: drivers/usb/spca5xx.c: spca5xx driver 00.56.02 registered
    Jan 1 03:01:54 kernel: hub.c: new USB device 01:02.0-1, assigned address 2
    Jan 1 03:01:54 USB webcam: attached
    Jan 1 03:02:03 kernel: pwc Philips PCA645/646 + PCVC675/680/690 + PCVC730/740/750 webcam module version 8.12 loaded.
    Jan 1 03:02:03 kernel: pwc Also supports the Askey VC010, various Logitech Quickcams, Samsung MPC-C10 and MPC-C30,
    Jan 1 03:02:03 kernel: pwc the Creative WebCam 5, SOTEC Afina Eye and Visionite VCS-UC300 and VCS-UM100.
    Jan 1 03:02:03 kernel: usb.c: registered new driver Philips webcam

    Но при заходе на http://my.router:7776 говорит, что image not ready. В чем может быть проблема? или если несложно ткните где можно прочитать про компилирование данного модуля ядра для поддержки в моем роутере? Спасибо! Просьба сильно не бить и не ругаться на меня. Пока я мало что понимаю в этом роутере!

    Вообщем, примерно понял из-за чего это. Не запускается почему-то сервер activex на порту 7777. сделал на рутере netstat -na, нету такого порта хотя http на 7776 висит исправно. Не подскажите где копать?

    Ребят, нету ни у кого идей по поводу этого? Спасибо, ребята! Как всегда понимание наблюдаю. Собираю свою прошивку. так имхо правильнее будет.
    Last edited by Omega; 16-08-2011 at 20:23. Reason: fixed

  10. #10
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    169
    Quote Originally Posted by Snaut View Post
    Уважаемый не подскажите куда вы скопировали файлы с вашими драйверами. У меня задача сунуть отдельные скомпилированные модули ядра и отдельно их подключать. Но никак не могу их сунуть в прошивку, чтобы они были в /lib/kernel/modules? УЖе голову всю сломал. спасибо!
    Их не обязательно засовывать в прошивку или /lib/modules
    insmod лезет в этот каталог только если не указаны путь и расширение файла модуля. Поэтому достаточно положить ваш smth.o куда-нибудь и сделать:
    insmod /some/path/smth.o

    А засунуть в прошивку, я так понимаю, проще всего с помощью toolchain-а на компьютере. Если исходные тесты модуля уже там лежат, но в стандартной конфигурации этот модуль не собирается, то можно поправить конфиг с помощью make menuconfig.
    Если ваш модуль уже скомпилирован, то его можно положить в src/gateway/mipsel-uclibc/target/lib/modules/... (путь даю по памяти, проверьте) после компиляции прошивки, но перед окончательным make install. Я таких вещей не делал, но, думаю, это сработает.
    Last edited by Xander; 13-11-2006 at 14:32.

  11. #11
    Join Date
    Oct 2006
    Location
    Россия, Ульяновск
    Posts
    15

    Unhappy

    Quote Originally Posted by Xander View Post
    Их не обязательно засовывать в прошивку или /lib/modules
    insmod лезет в этот каталог только если не указаны путь и расширение файла модуля. Поэтому достаточно положить ваш smth.o куда-нибудь и сделать:
    insmod /some/path/smth.o

    А засунуть в прошивку, я так понимаю, проще всего с помощью toolchain-а на компьютере. Если исходные тесты модуля уже там лежат, но в стандартной конфигурации этот модуль не собирается, то можно поправить конфиг с помощью make menuconfig.
    Если ваш модуль уже скомпилирован, то его можно положить в src/gateway/mipsel-uclibc/target/lib/modules/... (путь даю по памяти, проверьте) после компиляции прошивки, но перед окончательным make install. Я таких вещей не делал, но, думаю, это сработает.
    нет, он этот путь создает после make install

  12. #12
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    169
    Quote Originally Posted by Snaut View Post
    нет, он этот путь создает после make install
    значит, надо добавить команду в Makefile
    P.S. Да, похоже, только так. Или еще можно разбить цель install на две (как минимум), но к этому надо будет подойти с умом .
    Last edited by Xander; 13-11-2006 at 19:02.

  13. #13

    Создание собственной прошивки

    Подскажите пожалуйста, как вообще делать собственные прошивки?
    У меня есть wl-520g, но алтернативной прошивки под него нет. Вот и появилась идея, растрясти прошивку от Oleg`а до состояния пригодного для моего устройства. Но немогу толком разобраться, где, что и как делать. Для этого дела есть SUSE Linux 10. Будте так добры, дайте инструкцию по подробней.

  14. #14
    Join Date
    Dec 2003
    Location
    Russian Federation
    Posts
    8,353
    Начать Вам надо с загрузки с сайта АСУС исходных текстов для прошивки 1.9.5.4 и изучения Readme.

  15. #15
    Надо наверно уточнить, я заходил на вашу страничку, и читал там как пересобирать прошивку. Так вот, меня засмущало, что прошивка базируется на 1.8.2.7 или как-то так. И поэтому незнал как наложатся патчи на более новую версию. За одно в WiKi нашел руководство, но сырци пока не выкачал.
    Тут больше вопрос вот в чем, насколько реально растрясти вашу прошивку, и понять что в ней "лишнего". При том что базовая прошивка от ASUS меня устраивает за исключением статической маршрутизации и некоторых глюков с Wi-Fi (кпк через 5-8 подключений неподключается, так как будто MAC фильтр включается, а в список разрешенных я его добавил).

Page 1 of 31 12311 ... LastLast

Similar Threads

  1. Загрузка прошивки с USB
    By VictorL in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 170
    Last Post: 23-08-2016, 15:19
  2. Новый веб-интерфейс прошивки от энтузиастов
    By euseller in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 636
    Last Post: 27-08-2014, 02:26
  3. Прошивки для Asus RT-N16
    By Oleg in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 395
    Last Post: 20-08-2014, 18:17
  4. Сборка пакетов под WL-500g Premium
    By angel_il in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 127
    Last Post: 24-11-2011, 13:28

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
  •