OpenWRT.su

Open.Wireless.Super and LEDE

Маскировка своей сборки OpenWrt под официальный репозитарий

Маскировка своей сборки OpenWrt под официальный репозитарийОчень часто пользователи OpenWrt вырезают из сборки для своего устройства те пакеты, которые им не нужны, и наоборот включают требуемые. Но как быть, когда манипуляции произведены минимальные, а каждая попытка поставить какие-нибудь дополнительные пакеты из официального репозитария какой-нибудь стабильной ветки заканчивается возмущением менеджера пакетов opkg на несоответствие зависимостей ядра, несмотря на то, что версии ядра одинаковые? Тут то и придется прибегнуть к своеобразному хаку на свой страх и риск. 

При каждой сборке OpenWrt, при минимальном изменении конфиг файлов в итоге меняется уникальный hash-код сборки. Он присваивается как в зависимости пакетов, так и к самому ядру OpenWrt. Например, при установке в самособранной OpenWRT 18.06.1 пакетов из официального репозитария несмотря на то, что версии ядра одинаковые, opkg будет ругаться что не может выполнить зависимости. И --force-depends тут не всегда помогает. Для тех, кто хочет чтобы все проходило гладко - есть один непопулярный способ ниже.

Внимание! Использование данного хака допускается ну прям в случае крайней необходимости! И то, если вы умеете перезаливать прошивку OpenWRT вручную, в случае если ваша собственная сборка встанет криво или не встанет вовсе!

1. Узнаем hash-код ядра из официальной сборки вашей версии OpenWrt

Открываем репозитарий нашей версии OpenWrt и нашей архитектуры. Например https://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/packages/ - это версия OpenWrt 18.06.1 и популярная архитектура ar71xx. Находим пакет kernel_4.9.120-1-adfb989aae12e239d65a2c73ca35b8a3_mips_24kc.ipk. 32 cимвола "adfb989aae12e239d65a2c73ca35b8a3" в его названии это есть md5 hash ядра официальной сборки. У вас соответственно он может быть иной. 

2. Указываем md5 hash сборки принудительно для кросс-компилятора OpenWrt

Открываем папку с исходниками OpenWRT, находим и открываем для редактирования файл openwrt/include/kernel-defaults.mk Находим примерно 102ю строку следующего содержания:

grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | mkhash md5 > $(LINUX_DIR)/.vermagic 

И приводим ее к вижу 

grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | echo "нашхэшкодтут" > $(LINUX_DIR)/.vermagiс

Далее собираем сборку и пользуемся официальным репозитарием без лишних возмущений. 

Добавить комментарий

Если вы хотите получать сообщения c ответами на ваши комментарии - то укажите свой настоящий e-mail. Если же вы тут проездом, чтобы оставить комментарий укажите в поле email no@openwrt.su