OpenWRT — борьба за размер для DIR-320 ч.1: модуль WiFi

Когда то знакомство с альтернативными прошивками для маршрутизаторов началось с покупки DLink DIR-320 еще первой ревизии (rev.A1).
Впрочем, устройство дружелюбное и трудноубиваемое. С тех лет воды утекло не то чтобы много, но вот дать вторую жизнь старичку захотелось.
Хочется умную коробочку, скромно раздающую интернет и самостоятельно качающую файлы на подключаемый диск. И чтобы всё это было прямо в прошивке, как говорится «из коробки». Впрочем ничего больше и не требуется по задумке.
Однако задача усложняется не самым приятным фактом — в роутере всего 4 Мб встроенной памяти, причем для прошивки доступно всего примерно 3,69 Мб из них.

Чтобы была точка отчета — я собрал прошивку, основываясь на предыдущих статьях:

Вроде должно получиться что-то компактное, но на выходе имеем прошивку размером аж 5.32 Мб
Если быть досконально точным — 5574656 байт.

Многовато. Начнем поэтапно уменьшать аппетит.

Модуль ядра kmod-b43

Первым делом я вспомнил об модуле ядра kmod-b43, а так же модуле kmod-b43legacy.
Первый модуль — это открытый драйвер для поддержки беспроводной сети на чипах Broadcom 43xx.
Второй модуль — аналогично, но для совсем старых чипов.

С точки зрения разработчиков модулей чип в нашем DIR-320 rev.A1 — не такой и старый, так что kmod-b43legacy отключаем сразу и забываем про него.

Kernel modules  --->
    Wireless Drivers  --->
        < > kmod-b43legacy

У меня он был отключен, так что данная опция никак не повлияет на размер прошивки, однако решил, что знать должны.

Теперь о модуле kmod-b43. Он поддерживает большинство чипов серии Broadcom 43xx. А нам нужен лишь один чип, который установлен в нашем маршрутизаторе.
Чтобы убрать лишнее, приводим состояние модуля kmod-b43 к следующему виду:

Kernel modules  --->
    Wireless Drivers  --->
        <*> kmod-b43
            b43 firmware version  --->
                (X) Firmware 666.2 from driver 5.100.138 (stable)
            [*] Remove unnecessary firmware files
            (13)  Core revisions to include
            (LP)  PHY types to include
            Supported buses  --->
                (X) SSB
            [ ] Enable debug output and debugfs for b43
            [ ] Enable support for PIO transfer mode
            [ ] Enable support for G-PHYs
            [ ] Enable support for N-PHYs
            [*] Enable support for LP-PHYs
            [ ] Enable support for HT-PHYs

Сохраняем конфигурацию и пересобираемся:

make clean
make -j3

Результаты эксперимента

В результате «облегчения» модуля b43 получился файл размером 5443584 байт.
Таким образом мы сэкономили 128 кбайт.
Радоваться рано, нам предстоит еще найти способ вычистить 1,5 Мб «мусора».

Кстати, друзья, теперь за всеми свежими и важными записями можете следить прямо из паблика ВКонтакте.

Подпишись в один клик:

Комментариев: 5

  1. Встречались ли проблемы с WiFi на Dir320a1?
    Чип определяется, сканирование сетей работает, точку доступа клиенты видят, но при попытке подключения драйвер отваливается, что спасает только перезагрузка. В логе лишь b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07), что очень похоже на вот этот баг https://dev.openwrt.org/ticket/7552
    Ставил как прошивку с данного сайта, так и 14.07rc3 собранную в Image Generator — один результат.

  2. Сейчас в транке есть экспериментальный какой то новый, но мне все равно не на чем тестить его. А так да спасибо за статейку эту, всегда к ней обращаюсь.

  3. kmod-b43……………………………. Broadcom 43xx wireless support
    Remove unnecessary firmware files
    (13,14,15)Core revisions to include — а почему у вас только 13я ревизия оставлена? определяли методом тыка мол А1 первая ;)?
    (LP) PHY types to include
    kmod-b43legacy
    USB Support
    kmod-usb-core…………………………………….. Support for USB
    kmod-usb-ohci…………………………. Support for OHCI controllers
    kmod-usb-storage………………………………. USB Storage support
    kmod-usb2…………………………….. Support for USB2 controllers
    Filesystems
    kmod-fs-ext3………………………………. EXT3 filesystem support

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

    А2, кстати, тоже самое, там распайка чуть иная только)
    в данных уверен, что представлены в статье)

Оставьте свой комментарий

Войти с помощью: