Привет,
Евгений, для начала хочу вас поблагодарить за отличную прошивку, грамотный подход и адекватное отношение к GPL. Спасибо большое!
По сути дела: так уж получилось, что у нас в лаборатории есть аж 3 "***линка" G700AP и для повышения надежности хотелось бы использовать вменяемую прошивку (по сути нам достаточно просто bridge между wlan и lan). Я знаю, что вы уже не поддерживаете убогие 8-мегабайтные устройства, но решил все же попробовать самостоятельно скомпилировать, отключив лишнее (fyi при прошивке вашего образа 0.3.17 рутер показывал активацию проводных интерфейсов и потом через пару минут перезагружался, видимо по watchdog, без oom killer или kernel panic, просто вдруг перезагружался). Кстати, я не очень понимаю, почему вы по умолчанию не отключаете в прошивке вообще все, кроме eth0 и inetd/dropbear, т.к. все равно же нужно подсоединяться и полностью все отстраивать под свои задачи, но при этом консоль на последовательном порту по умолчанию отключена (и, кстати, то, что mkimg перезаписывает изменения в etc/inittab, было для меня сюрпризом).
Комментарии по сборке:
Для сборки toolchain я применил gcc 4.3.4, единственная тонкость -- перед make нужно сделать export CFLAGS=-D_FORTIFY_SOURCE=0. Скрипт make_links.sh мне показался сомнительным (у меня в local другие программы тоже установлены, поэтому bin и прочие радости уже присутствуют) и вообще ненужным -- я добавил /opt/Wive/toolchain/bin в PATH перед сборкой. Это оказалось необходимо, т.к. не во всех местах корректно учитывается CROSS_COMPILE, где-то подразумевается, что toolchain доступен в PATH, а в Makefile ядра путь к toolchain вообще hardcoded (знаю, что для 2.6.x достаточно запускать make CROSS_COMPILE=/path/to/chain/prefix-, как это корректно делается в 2.4 -- не интересовался, может это и не важно; как вариант -- добавить include ../.config и заменить = на ?=). Вообще было бы неплохо, чтобы был сразу очевиден метод собрать и установить весь toolchain и прошивку, не имея прав root, это и удобно и безопасно (и порой необходимо, если кто-нибудь захочет собирать это на чужой машине). Даже если для rtl8186 ничего делать уже не имеет смысла, возможно, вы учтете это пожелание для других ваших разработок.
Еще непонятный момент: мне показалось, что сборка ramdisk происходит на последнем этапе, уже после линковки ядра, т.о. получается, что после любых изменений файловой системы нужно запускать make два раза подряд.
Комментарии по устройству:
Насколько я могу понять, работает нормально после отключения ненужных компонентов. Размер ramdisk сделал 512k, но это оказалось совсем впритык -- /tmp/tgzfs не умещался, пока я не удалил пару ненужных конфигов. Возможно, стоит немного подправить скрипт, чтобы он предупреждал пользователя, если не удается его создать, а то получается, что он полуготовый архив записывает, потом, естественно, при перезагрузке возвращается к значениям по умолчанию.
Thanks again for all your efforts,
Happy hacking!