Бывают ситуации, когда в OpenWrt не хватает полной языковой поддержки. Особенно, когда дело касается работы с кириллицей в кодировке UTF-8. Для таких случаев в OpenWrt предусмотрена неурезанная версия библиотеки libiconv-full, а также глобальная опция Compile with full language support.
Вот только скомпилировав прошивку с данными опциями выясняется, что никакой поддержки кириллических кодировок как не было, так и нет.
Разгадка кроется в малозаметном патче к libiconv-full под названием 100-strip-charsets.patch. Пролистав его можно с удивлением обнаружить, что пакет, вроде бы имеющий в названии слово “full”, ничего общего с этим словом не имеет: доблестные разработчики OpenWrt в “полной” версии libiconv просто выпилили 97% всех кодировок, включая все упоминания кириллических, и оставив лишь несколько западноевропейских.
Наиболее простое решение – просто удалить патч 100-strip-charsets.patch из пакета libiconv-full. Но так размер данной библиотеки увеличится в несколько раз! По этой причине мы сделали исправленную версию исходного патча, в которой оставлены кириллические кодировки, но вырезано большинство прочих.
Скачать исходный код модифицированного libiconv-full можно из нашего архива.
У меня с флагом Compile with full language support. Монтирование davfs2 не работает. Пишет mount.davfs: can’t mount using fuse kernel file system
Так же не работает монтирование CIFS =(
Т.е. без этого флага монтирование работает, а именно с ним – нет? Может, сейчас внесли какие-то изменения в код openwrt и от этого что-то сломалось, я последний раз пересобирал несколько месяцев назад – никаких проблем не возникало.
Будет время – перепроверю и обновлю пост, если что-то выяснится.
Ок, буду ждать. Я пробовал стабильный релиз и пробовал последнюю версию транка. В транке поставил поддержку Full Language Support. Получил такую же проблему =( Отписался на форум там тишина. Проблема именно с файловыми системами. Хотя модули файловых систем в ядро загружаются корректно и ошибок не пишут.
Вот мой тикет
https://dev.openwrt.org/ticket/19805
Тестировал на mr3020
Хотя похоже проблема в другом, сейчас убрал поддержку языков. Все равно не монтируется файловая система та же CIFS. Странно…
Скачал Chaos Calmer 15.05-rc2 поставил уже готовую прошивку. CIFS так же не монтируется, хотя раньше работал. Либо я криворук, либо что-то сломали в последних версиях(
Так с этим разобрался в новой версии нет репрозитории пакета cifsmount. А без него монтирование cifs не работает. Осталось разобраться почему davfs отказал и почему в моей сборке cifsmount не работает.
У меня fuse криво собрался поэтому и не работал dav2fs. Пакет был собран но весил 1 килобайт и ставился без ошибок. Я на размер не обратил внимания.
На openwrt в apache листинг русских букв знаками вопросов. Это по этой же причине? Из-за libiconv ?
У меня листинг каталога в котором лежит .htaccess в котором написано IndexOptions +Charset=UTF-8 , но при открытии все равно вместо русских знаки вопроса.
Пардон, я забыл у Mount опцию iocharset=utf8 ))
А еще когда пытаешься скачать всю папку в архиве tar. Архив в итоге получаешь битый.
На какой именно папке проблема? Проверил несколько разных, включая ту, на которую ссылка в посте – везде tar-архивы генерируются корректные.
Хм, у меня хром ругается что сайт с вирусами. Ссылка на libiconv-full.
После подтверждения того что я все таки хочу скачать файл. Архиватор пишет что неожиданный конец архива. Пробовал скачивать и открывать этот архив в линуксе, получил подобную ошибку…
Проблема с хромом и блокированием доступа решена. Она была из-за того, что Google решил считать те сайты, где выложен дистрибутив uTorrent’а – “завирусованными”. Как по мне – откровенная дурь.
Насчет “неожиданного конца архива”: попробовал скачать libiconv-full – WinRAR все корректно открыл. Как и tar под Linux.
Сейчас попробовал скачать и распаковать. Все прошло без ошибок. Странно, хотя раньше пробовал качать разными средствами и все равно был неожиданный конец архива. Может быть мой провайдер чудил или блокировка как-то влияла.