Menu
Categories
OpenWrt, libiconv и Full Language Support
December 23, 2014 Сеть и интернет

Бывают ситуации, когда в 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 можно из нашего архива.

"14" Comments
  1. У меня с флагом 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 килобайт и ставился без ошибок. Я на размер не обратил внимания.

      • Aleksander Sukhorukov

        На openwrt в apache листинг русских букв знаками вопросов. Это по этой же причине? Из-за libiconv ?
        У меня листинг каталога в котором лежит .htaccess в котором написано IndexOptions +Charset=UTF-8 , но при открытии все равно вместо русских знаки вопроса.

  2. А еще когда пытаешься скачать всю папку в архиве tar. Архив в итоге получаешь битый.

    • На какой именно папке проблема? Проверил несколько разных, включая ту, на которую ссылка в посте – везде tar-архивы генерируются корректные.

      • Хм, у меня хром ругается что сайт с вирусами. Ссылка на libiconv-full.
        После подтверждения того что я все таки хочу скачать файл. Архиватор пишет что неожиданный конец архива. Пробовал скачивать и открывать этот архив в линуксе, получил подобную ошибку…

        • Проблема с хромом и блокированием доступа решена. Она была из-за того, что Google решил считать те сайты, где выложен дистрибутив uTorrent’а – “завирусованными”. Как по мне – откровенная дурь.

          Насчет “неожиданного конца архива”: попробовал скачать libiconv-full – WinRAR все корректно открыл. Как и tar под Linux.

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

Leave a Reply to root

Click here to cancel reply.




*