Сайт | Скачать | Видео | Wiki

Автор Тема: Русифицированный initrd.gz для Richy  (Прочитано 16565 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
Re:Русифицированный initrd.gz для Richy
« Ответ #15 : 18 Март 2013, 13:34:34 »
Барри "для того чтобы перевести эти несколько строчек" сделал специальный механизм, который при установке пакета локализации распаковывает initrd.gz, переводит init и запаковывает обратно, более того, он разработал для этого свою систему перевода т.к. gettext там не работает.
http://bkhome.org/blog/?viewDetailed=02689

Оффлайн andy-voit

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1251
  • Репутация: +60/-0
  • Расту!!!
Re:Русифицированный initrd.gz для Richy
« Ответ #16 : 19 Март 2013, 03:48:30 »
Ну нам то перепаковывать ничего не надо, более того - все уже придумано и даже сделано - взять например твои переводы дистрибутивов Presice. Сразу русский язык и никаких ведь особых костылей.
XFCE forever!!!
Перешел на приставку 3vi. Теперь издеваюсь над ней! :)

Оффлайн vadim

  • Постоялец
  • ***
  • Сообщений: 102
  • Репутация: +20/-0
Re:Русифицированный initrd.gz для Richy
« Ответ #17 : 19 Март 2013, 11:30:03 »
... , но почему вы это пилите для richy - загадка.
Объяснюсь за себя:
1. Для меня Richy на сегодня самая стабильная для моих машин и отвечающая моим запросам система Puppy.
(По исправлял ошибки, добавил нужное, наделал .pet и .sfs - и я доволен.)
2. Richy, насколько я понимаю, никто никуда уже развивать не собирается, и эти "костыли" с русификацией initrd.gz в ней
вполне уместны.
3. Для 218 можно обойтись и без "костылей", если кто нибудь сможет объяснить как в puppy_precise реализовано подключение
консольного шрифта. Я с этим не смог разобраться. А сама русификация ерунда, на пару часов работы от силы.
Netbook Lenovo S12
Desktop i5 750, P7P55D-E EVO

Оффлайн andy-voit

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1251
  • Репутация: +60/-0
  • Расту!!!
Re:Русифицированный initrd.gz для Richy
« Ответ #18 : 19 Март 2013, 11:59:25 »
До конца я и сам не понял, иначе сделал бы. Но понял одно - все лежит в запакованном initrd.gz.
Лучше рассмотреть на примере одной из русифицированых сборок rodin's
Если распаковать можно увидеть сам шрифт ter-u16n.psf.gz , находящийся в каталоге /lib/consolefonts, и файл init, содержащий собственно перевод-находится в каталоге /locale/ru.(в аттаче файл от precise-в качестве примера, возможно не подходит к нашему) Там же в корне находится файл PPUPPYLANG - c указанием языка.

Ну и самое основное - это код в основном скрипте init

#120215 internationalize... (based on work by L18L)
if [ ! $1 ];then
 mount -t proc none /proc
 mount -t sysfs none /sys
 mount -t rootfs -o remount,rw rootfs /
 ln -s /proc/mounts /etc/mtab #resize2fs,e2fsck need this.
 [ $plang ] && PLANG=$plang #boot parameter
 [ "`echo -n "$PLANG" | grep '_'`" = "" ] && PLANG="" #120222 PLANG must be complete, ex: de_DE.UTF-8.
 [ ! "$PLANG" ] && [ -f /PUPPYLANG ] && PLANG=`cat /PUPPYLANG` #so Woof can specify a default lang.
 #note, a running puppy could also open initrd.gz and stick PUPPYLANG inside (i plan for chooselocale to do that!)
 if [ "$PLANG" ];then
  if [ -f /locale/${PLANG%.*}/init ];then #chop off .UTF-8 if it is there.
   TRANSLATIONFILE="/locale/${PLANG%.*}/init"
  else
   [ -f /locale/${PLANG%_*}/init ] && TRANSLATIONFILE="/locale/${PLANG%_*}/init" #get first 2 chars of PLANG, ex: en
  fi
  if [ "$TRANSLATIONFILE" ];then
   sed -f $TRANSLATIONFILE /init > /init2
   chmod 755 /init2
   exec /init2 $PLANG #run translated script.
  fi
 fi
else #2nd entry, running /init2
 PLANG=${1}
fi

export LANG=C #w004
. /DISTRO_SPECS #v412 has DISTRO_VERSION, DISTRO_FILE_PREFIX

PATH="/bin:/sbin"
KERNELVER="`uname -r`"

и вот эта секция

#120216 L18L suggests load these, instead of what is below...
 case $PLANG in
  en*) echo ;;
  ar*|iw*) #L18L no Greek
   setfont /lib/consolefonts/LatArCyrHeb-16.psfu.gz -C /dev/tty1
   FONTMAP='LatArCyrHeb-16.psfu'
  ;;
  
    ru*)
   #vkvkvk for ru
   zcat /lib/consolefonts/ter-u16n.psf.gz | loadfont
   FONTMAP='ter-u16n.psf'
  ;;
  
  *) #L18L All European languages; new default ?!
   zcat /lib/consolefonts/LatGrkCyr-8x16.psfu.gz | loadfont
   FONTMAP='LatGrkCyr-8x16.psfu'
  ;;

Вот с кодами у меня собственно и проблемы. Не получается приспособить правильно к нашему init. На всякий случай в аттаче полный скрипт init
Может я где чего пропустил-поправьте меня rodin's или еще кто в теме..
« Последнее редактирование: 19 Март 2013, 12:17:14 от andy-voit »
XFCE forever!!!
Перешел на приставку 3vi. Теперь издеваюсь над ней! :)

Оффлайн vadim

  • Постоялец
  • ***
  • Сообщений: 102
  • Репутация: +20/-0
Re:Русифицированный initrd.gz для Richy
« Ответ #19 : 19 Март 2013, 12:43:29 »
Посмотрел, разобрался и понял, что только два варианта:
1. Компилить busybox с функциями loadfont и setfont.
2. Использовать "костыль" busybox с функциями loadfont и setfont.
Netbook Lenovo S12
Desktop i5 750, P7P55D-E EVO

Оффлайн andy-voit

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1251
  • Репутация: +60/-0
  • Расту!!!
Re:Русифицированный initrd.gz для Richy
« Ответ #20 : 19 Март 2013, 12:47:39 »
А если просто взять готовые утилиты? Из того же precise? Может есть такие утилиты без busybox. Попробовать найти или скомпилировать отдельно?
« Последнее редактирование: 19 Март 2013, 12:54:55 от andy-voit »
XFCE forever!!!
Перешел на приставку 3vi. Теперь издеваюсь над ней! :)

Оффлайн vadim

  • Постоялец
  • ***
  • Сообщений: 102
  • Репутация: +20/-0
Re:Русифицированный initrd.gz для Richy
« Ответ #21 : 19 Март 2013, 13:00:28 »
А если просто взять готовые утилиты? Из того же precise?
loadfont и setfon - это функции busybox из initrd.gz, а он нам не подходит(там нет отдельных функций,
которые используются в initrd.gz в 216 и 218).
Может есть такие утилиты без busybox. Попробовать найти или скомпилировать отдельно?
Я такие не нашел, и к тому же какая разница тогда, что компилить: busybox с одной функцией как бинарник или что-то еще.
« Последнее редактирование: 19 Март 2013, 13:08:12 от vadim »
Netbook Lenovo S12
Desktop i5 750, P7P55D-E EVO

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 9230
  • Репутация: +93/-0
Re:Русифицированный initrd.gz для Richy
« Ответ #22 : 19 Март 2013, 13:01:59 »
Вам нужен исправленный busybox?
Я загружаю новые пакеты сюда: http://file.puppyrus.ml/users/ а дальше можно найти самостоятельно.

Оффлайн andy-voit

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1251
  • Репутация: +60/-0
  • Расту!!!
Re:Русифицированный initrd.gz для Richy
« Ответ #23 : 19 Март 2013, 13:07:05 »
Да нужен, или дай параметры, я сам попробую скомпилить. Там была какая то проблема с компиляцией, как я помню
XFCE forever!!!
Перешел на приставку 3vi. Теперь издеваюсь над ней! :)

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 9230
  • Репутация: +93/-0
Re:Русифицированный initrd.gz для Richy
« Ответ #24 : 19 Март 2013, 13:20:34 »
параметры лежат на сервере нашем.... Гдето в gaff.
компилировать надо через uclibc
Я загружаю новые пакеты сюда: http://file.puppyrus.ml/users/ а дальше можно найти самостоятельно.

Оффлайн andy-voit

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1251
  • Репутация: +60/-0
  • Расту!!!
Re:Русифицированный initrd.gz для Richy
« Ответ #25 : 19 Март 2013, 13:30:53 »
В Gaff нет никаких файлов чтобы назывались busybox :'( И что такое uclibc..

Раскопал.. В самом архиве gaff есть два конфига -config-busybox-1.19.3 и config-busybox-init-1.19.3. Каким из них пользоваться или нужны оба?

P.S: В конфиге указано CONFIG_LOADFONT=y Значит такая функция есть, вопрос только к
# CONFIG_SETFONT is not set
# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
CONFIG_DEFAULT_SETFONT_DIR=""
« Последнее редактирование: 19 Март 2013, 13:51:37 от andy-voit »
XFCE forever!!!
Перешел на приставку 3vi. Теперь издеваюсь над ней! :)

Оффлайн andy-voit

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1251
  • Репутация: +60/-0
  • Расту!!!
Re:Русифицированный initrd.gz для Richy
« Ответ #26 : 19 Март 2013, 14:02:40 »
Pro, помочь смогешь? Можно заодно скомпилить последний busybox
XFCE forever!!!
Перешел на приставку 3vi. Теперь издеваюсь над ней! :)

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 9230
  • Репутация: +93/-0
Re:Русифицированный initrd.gz для Richy
« Ответ #27 : 19 Март 2013, 14:35:22 »
config-busybox-init-1.19.3 слово init как  бы намекает....

щас качну попробую скомпилировать
Я загружаю новые пакеты сюда: http://file.puppyrus.ml/users/ а дальше можно найти самостоятельно.

Оффлайн vadim

  • Постоялец
  • ***
  • Сообщений: 102
  • Репутация: +20/-0
Re:Русифицированный initrd.gz для Richy
« Ответ #28 : 19 Март 2013, 15:01:15 »
Неплохо бы было определиться что нужно компилить.
Мне кажется, что должен быть новый busybox (в смысле 19) с поддержкой функций, которые есть у нас в 17 в initrd.gz+ функция loadfont.
Netbook Lenovo S12
Desktop i5 750, P7P55D-E EVO

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 9230
  • Репутация: +93/-0
Re:Русифицированный initrd.gz для Richy
« Ответ #29 : 19 Март 2013, 15:45:41 »
забираем http://cdn.2safe.com/426256033560/busybox-1.21.0-init.tar.bz2

не забываем что бинарник работает только в init среде, в обычной системе не запустить.
« Последнее редактирование: 19 Март 2013, 15:51:23 от Pro »
Я загружаю новые пакеты сюда: http://file.puppyrus.ml/users/ а дальше можно найти самостоятельно.