Показаны сообщения с ярлыком mc. Показать все сообщения
Показаны сообщения с ярлыком mc. Показать все сообщения

суббота, 30 октября 2010 г.

DSM-G600. Установка midnight commander.

Румынский товарищ собрал форк midnight commander 4.11 под DSM G600 и написал об этом в соответсвующем форуме.

Но со стороны администратора особой поддержки не получил. Я решил сохранить его опыт и файлы в моем блоге.




Итак, подключаемся терминалом и вводим следующие команды.
cat >> "/.profile" <<\EOF > export PATH=/mnt/HD_a2/bin:$PATH > export TERMINFO=/mnt/HD_a2/share/terminfo > export TERM=xterm > EOF # mkdir -p /mnt/HD_a2/bin # wget http://www.opendrive.com/files/7602285_vKuk5_7b2f/tar --directory-prefix=/mnt/HD_a2/bin # wget http://www.opendrive.com/files/7602286_vGZB0_6f89/gzip --directory-prefix=/mnt/HD_a2/bin # chmod +x /mnt/HD_a2/bin/tar # chmod +x /mnt/HD_a2/bin/gzip # rm /bin/tar # mkdir -p /mnt/HD_a2/tmp # wget http://www.opendrive.com/files/7582436_cBijN_6e3d/mc-4.1.40-pre9-dsmg600.tar.gz --directory-prefix=/mnt/HD_a2/tmp # tar -xzvf tmp/mc-4.1.40-pre9-dsmg600.tar.gz Закрываем терминал, снова подключаемся и вводим в командной строке команду mc

Чтобы после перезагрузки устройства все работало нужно отредактировать файл /mnt/HD_a2/fun_plug.
#!/bin/sh
###########################################
# telnet deamon start
if [ ! -e /mnt/HD_a2/ash ]
then
ln -s /mnt/HD_a2/busybox /mnt/HD_a2/ash
fi

if [ ! `grep root /etc/shadow` ]
then
echo kontroll.`grep admin /etc/shadow` >> /etc/shadow
/mnt/HD_a2/sed -i -e 's/kontroll.admin/root/' /etc/shadow
fi

/mnt/HD_a2/sed -i -e 's/root:.*/root:x:0:0:Linux User,,,:\/:\/mnt\/HD_a2\/ash/' /etc/passwd
ash /mnt/HD_a2/snfs
cd /dev && /mnt/HD_a2/busybox makedevs ptyp c 2 0 0 9
cd /dev && /mnt/HD_a2/busybox makedevs ttyp c 3 0 0 9

echo 'export PATH=/mnt/HD_a2/bin:$PATH' > /.profile
echo 'export TERMINFO=/mnt/HD_a2/share/terminfo' >> /.profile
echo 'export TERM=xterm' >> /.profile

export PATH=/mnt/HD_a2/bin:$PATH
export TERMINFO=/mnt/HD_a2/share/terminfo
export TERM=xterm 

/mnt/HD_a2/busybox telnetd &
Upd 09/12/10.

пятница, 15 октября 2010 г.

Midnight Commander v 4.7.4-54 для HDX BD-1.

Эта статья устарела. Для установки используйте ipkg.

Собрал текущую версию Midnight Commander. Архив качать отсюда: mc-4.7.4-bd1.tar.gz
Инструкции по самостоятельной сборке здесь.








Устанавливать так: sh-3.00# mv /opt /opt_org sh-3.00# mkdir -p /HD_Media/hda3/.opt/opt sh-3.00# ln -s /HD_Media/hda3/.opt/opt / sh-3.00# ln -s /HD_Media/hda3/sybhttpd /opt sh-3.00# cd / sh-3.00# tar -xzvf /path-to-archive/mc-4.7.4-bd1.tar.gz sh-3.00# cat >> "/persistfs/senv.sh" <<\EOF > #!/bin/sh > > if [ ! -d /opt_org ] > then > mv /opt /opt_org > ln -s /HD_Media/hda3/.opt/opt / > fi > > export PATH=/opt/bin:$PATH > export LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH > alias mc="mc -c" > EOF sh-3.00# chmod +x /persistfs/senv.sh sh-3.00#
Запускать так: sh-3.00# source /persistfs/senv.sh sh-3.00# mc

вторник, 6 апреля 2010 г.

Cross compiling midnight commander for nmt (Sigma SMP86XX) (Часть 1)

Собственно появилось желание установить новую версию mc на HDX-1000 и время разобраться в процессе кросс-компиляции.

Я буду проделывать все шаги от начала - почти полного незнания того, как делается кросс-копиляция, до, надеюсь, рабочего midnight commander.

Полного и исчерпывающего how to я нигде не нашел. Попытаюсь устранить пробел.


Хочу поблагодарить разработчиков и мейнтейнеров проекта midnight commander с которыми мне довелось пообщаться, а именно andrew_b, il.smind, repolainen, slavazanko за доброе отношение и желание помочь.
Итак, сначала Устанавливаем toolchain (кросс компилятор) для Sigma 86xx

Здесь отвлечемся и просто уточним процесс сборки из исходников программы в linux.

Собственно весь процесс сборки изображен на диаграмме слева.

Почти для всех программ этот процесс одинаков.

Когда мы собираем программу или библиотеку мы последовательно выполняем три шага


$ ./configure [param-1]...[param-n]
$ make
$ make install


Выполнение по шагам этой инструкции предполагает отсутствие ошибок. Составляя эту инструкцию, я все проделывал самолично и, думаю, значительно минимизировал их количество. Но, все таки, в вашей сборке могут выявиться ошибки, которые не возникли в моей конфигурации. Причин, почему это происходит, достаточно.
  • Во первых сам проект midnight commander далеко не тривиальный;

  • Все проекты созданы разными людьми, которые иногда и не осознавали как их творение будет использоваться;

  • Зачастую, разработчики не парятся тестированием своих проектов на совместимость с кросскомпиляцией;

  • Китайцы, которые реализовали устройство на китайской платформе Syabas, куда мы будем кросскомпилировать midnight commander, учились не в академгородке.

Есть еще пара десятков причин. Но не будем заморачиваться. Как правило, все проблемы решаются.

Теперь договоримся о структуре каталогов для ведения проекта.
Для сборки toolchain мы использовали каталог Staff. Он у нас и дальше будет корнем проекта.
А все библиотеки и сам midnight commander будут располагаться в каталогах ниже Staff по иерархии.
Ну вот теперь все готово. Вперед!

  1. Скомпилировать zlib

  2. Скомпилировать libpng

  3. Скомпилировать slang-2.2.2

  4. Скомпилировать gettext-0.16

  5. Скомпилировать libiconv-1.13.1

  6. Скомпилировать glib-2.22.5

  7. Скомпилировать midnight commander



Если нет подходящей темы, открывайте новую.

Пока еще:


Если есть желание помочь - велкам. В форуме есть все мои наработки.

Если лениво все это проделывать, то можно просто скачать
дистрибутив: mc-4.7.1-mipsel.tar.bz.
и библиотеки: mc-4.7.1-mipsel-libs.tar.bz

воскресенье, 31 января 2010 г.

ReadyNAS Duo. How to compile Midnight Commader 4.7.0.1

Хочу сказать спасибо разработчикам mc из конференции mc-dev@conference.jabber.ru
il.smind, slavazanko, andrew_b, repolainen за терпение и позитивный настрой.
Без их помощи я потратил бы, наверняка, значительно больше времени с неизвестным результатом.

В репозитории ReadyNas Duo есть сбранный midnight commander. И проще всего установить именно из репозитериев. Но в нем отсутствует поддержка utf-8, что затрудняет работу с файлами в русской кодировке. Поэтому я решил собрать из исходников последнюю версию.

Итак.
  1. Должны быть установлены add-on: EnableRootSSH_1.0.bin, APT_1.0.bin

  2. Установить компилятор

    # apt-get update # apt-get install libc6-dev gcc gdb libtag1-dev uuid-dev pkg-config gettext bzip2

  3. Полезно установить какой нибудь редактор. Например nano
    # apt-get install nano

  4. Компилировать все пакеты будем в директории staff. В моем случае полный путь к staff будет /homes/akhromov/staff.

    # cd /homes/akhromov # mkdir staff # cd staff

  5. Установить checkinstall (чтобы было можно создавать установочные пакеты)

    # wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz # tar xvfz checkinstall-1.6.2.tar.gz # cd checkinstall-1.6.2 # make # make install # checkinstall ... ... The package documentation directory ./doc-pak does not exist. Should I create a default set of package docs? [y]: n ... Please choose the packaging method you want to use. Slackware [S], RPM [R] or Debian [D]? D ... This package will be built according to these values: 0 - Maintainer: [ root@rnd ] 1 - Summary: [ CheckInstall installations tracker, version 1.6.2 ] 2 - Name: [ checkinstall ] 3 - Version: [ 1.6.2 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ sparc ] 8 - Source location: [ checkinstall-1.6.2 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ ] 12 - Conflicts: [ ] 13 - Replaces: [ ] ... ... # dpkg -i checkinstall_1.6.2-1_sparc.deb # cd ..

    Курсивом показаны вопросы, которые задает checknstall. Жирным - ответы. Аналогично ответить нужно будет и дальше при создании дистрибутивов slang, glib и mc.

  6. Компиляция glib-2.14.6 (~20 минут)

    # wget http://ftp.gnome.org/pub/gnome/sources/glib/2.14/glib-2.14.6.tar.bz2 # tar xjf glib-2.14.6.tar.bz2 # cd glib-2.14.6 # ./configure --build='sparc-linux' # make # chechinstall # dpkg -i glib_2.14.6-1_sparc.deb # cd ..


  7. Компилируем slang-2.2 (~15 минут)

    # wget ftp://space.mit.edu/pub/davis/slang/v2.2/slang-2.2.0.tar.bz2 # tar xjf slang-2.2.0.tar.bz2

    В модуле slang-2.2.0/modules/fork-module.c (line 273) добавить
    #ifndef WCONTINUED
    #  define WCONTINUED 0                /* not available on ReadyNas Duo */
    #endif
    
    # cd slang-2.2.0 # ./configure --build='sparc-linux' # make # checkinstall # dpkg -i slang_2.2.0-1_sparc.deb # cd ..


  8. компилируем mc (~ 20 минут)

    # wget http://www.midnight-commander.org/downloads/22 -O mc-4.7.0.1.tar.bz2 # tar xjf mc-4.7.0.1.tar.bz2 # cd mc-4.7.0.1 # ./configure --disable-vfs --build='sparc-linux' # make # checkinstall # dpkg -i mc_4.7.0.1-1_sparc.deb


Ну и вот что из этого получилось:



Кому лениво все это проделывать, тот может установить из собранных мной пакетов # cd /tmp # wget http://www.opendrive.com/files/8633064_sal1L_8351/glib_2.16.6-1_sparc.deb # wget http://www.opendrive.com/files/8633061_FyV1y_b1e9/slang_2.2.0-1_sparc.deb # wget http://www.opendrive.com/files/8633065_WMLjj_84b1/mc_4.7.4-1_sparc.deb # dpkg -i glib_2.16.6-1_sparc.deb slang_2.2.0-1_sparc.deb mc_4.7.4-1_sparc.deb

Подводные камни.

Я нарвался на такой фокус. Установил из репозитория предыдущую версию mc и старый glib. Компилируя новый glib, старый я не удалал. Из-за этого в библиотеках получалась мешанина и линкер не мог правильно собрать mc.


Если нет подходящей темы, открывайте новую.

суббота, 9 мая 2009 г.

Устанавливаем Midnight Commander на ReadyNAS Duo

Установить mc можно двумя способами:
  • Из репозитория.
    Этот способ описан ниже. Он проще и быстрее, но будут проблемы с русской кодировкой.
  • Собрать из исходников
    Второй способ сложнее. Но в результате получается последняя версия mc с поддержкой русской кодировки.
Установка из репозитория:
  1. Установить add-on APT, как описано здесь
  2. Выполнить поключение из telnet по ssh:

    ssh root@192.168.1.65

  3. Выполнить команду:

    apt-get update

  4. Установить midnight commander:

    apt-get install mc


После установки APT становится доступно почти 20000 пакетов. Но с этим аккуратно. Не все будут работать на ReadyNas Duo.

Списки репозиториев хранятся в /etc/apt/sources.list

У меня они такие:
deb http://www.readynas.com/packages readynas/

deb http://archive.debian.org/debian sarge main contrib non-free

deb-src http://archive.debian.org/debian sarge main contrib non-free

#deb http://www.infrant.com/packages readynas/

#deb http://http.us.debian.org/debian oldstable main contrib non-free
#deb http://non-us.debian.org/debian-non-US oldstable/non-US main contrib non-free
#deb http://security.debian.org oldstable/updates main contrib non-free

#deb-src http://http.us.debian.org/debian oldstable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US oldstable/non-US main contrib non-free

Списки пакетов хранятся в директории /var/lib/apt/lists.


вторник, 14 апреля 2009 г.

Устанавливаем Midnight Commander на HDX 1000

Копируем mc.gz отсюда: http://www.networkedmediatank.com/showthread.php?tid=6247 Разархивируем mc в каталог /share/bin Запускаем mc
export TERM=xterm
export PATH=$PATH:/share/bin
mc
Переименовываем mc в MC Создаем в каталоге /share/bin скрипт mc
export TERM=xterm
MC -c
Добавляем в скрипт start_app.sh две строки определения переменных окружеения PATH и HOME
#!/bin/sh
#
#M_A_R_K_E_R_do_not_remove_me
PATH=$PATH:/share/bin
HOME=/share

/share/.usr/bin/telnetd -l /bin/sh &

exit 0
Теперь сразу после включения telnet можно запускать Midnight Commander

вторник, 20 января 2009 г.

Color Theme mc

1.

[Colors]
base_color=normal=yellow,black:directory=brightcyan,black:executable=brightgreen,black:link=yellow,black:stalelink=brightred,black:special=lightgrey,black:marked=brightmagenta,black:editnormal=yellow,black:editmarked=black,grey:hidden=lightgray,black




2.

[Colors]
base_color=normal=,black:marked=,gray:directory=lightgray,gray:link=lightgray,gray:device=,gray:special=red,gray:executable=lightgreen,gray:viewunderline=,gray:editor=,gray:editnormal=green,gray:hidden=lightgray,gray:temp=gray,black:doc=brown,black:archive=brightmagenta,black:source=cyan,black:media=green,black:graph=brightcyan,black:database=brightred,black




3.

[Colors]
base_color=normal=brightgray,black:core=brightblue,black:marked=yellow,black:directory=normal,black:marked=yellow,black:special=brightblue,black:errors=red,black:marked=yellow,black:executable=brightgreen,black:marked=yellow,black:stalelink=red,black:link=brightblue,black:marked=yellow,black:device=brightmagenta,black:marked=yellow:editnormal=brightgray,black:editbold=yellow,black:editmarked=black,cyan




4.

[Colors]
base_color=normal=green,default:marked=yellow,default:directory=brightblue,default:marked=yellow,default:errors=red,default:marked=yellow,default:executable=brightgreen,default:marked=yellow,default:link=grey,default:marked=yellow,default:device=brightmagenta,default:marked=yellow,default




5.

[Colors]
base_color=normal=default,default:reverse=brightcyan,default:gauge=brightcyan,black:errors=white,red:input=black,white:menu=black,brightcyan:menusel=white,black:menuhot=red,brightcyan:menuhotsel=red,black:dnormal=default,black:dfocus=black,brightcyan:dhotnormal=brightcyan,black:dhotfocus=brightcyan,black:helpnormal=brightcyan,black:helplink=brightcyan,default:helpslink=black,brightcyan:helpbold=green,default:helpitalic=brightcyan,black:executable=green,default:selected=black,brightcyan:marked=brightcyan,default:markselect=brightcyan,black:directory=white,default:link=cyan,default:device=brightgreen,default:special=magenta,default:core=red,default:editnormal=default,default:editbold=default,default




6.

[Colors]
base_color=lightgray,blue:normal=blue,default:selected=white,brightblue:marked=yellow,default:markselect=yellow,gray:directory=brightblue,default:executable=brightgreen,default:link=cyan,default:device=brightmagenta,default:special=lightgray,default:errors=red,default:reverse=green,default:gauge=green,default:input=white,gray:dnormal=green,gray:dfocus=brightgreen,gray:dhotnormal=cyan,gray:dhotfocus=brightcyan,gray:menu=green,default:menuhot=cyan,default:menusel=green,gray:menuhotsel=cyan,default:helpnormal=cyan,default:editnormal=green,default:editbold=blue,default:editmarked=gray,blue:stalelink=red,default




7.

[Colors]
base_color=lightgray,green:normal=green,default:selected=white,gray:marked=yellow,default:markselect=yellow,gray:directory=blue,default:executable=brightgreen,default:link=cyan,default:device=brightmagenta,default:special=lightgray,default:errors=red,default:reverse=green,default:gauge=green,default:input=white,gray:dnormal=green,gray:dfocus=brightgreen,gray:dhotnormal=cyan,gray:dhotfocus=brightcyan,gray:menu=green,default:menuhot=cyan,default:menusel=green,gray:menuhotsel=cyan,default:helpnormal=cyan,default:editnormal=green,default:editbold=blue,default:editmarked=gray,blue:stalelink=red,default




8.

[Colors]
base_color=dnormal=brightblue,default:dfocus=brightcyan,default:dhotnormal=brightcyan,default:dhotfocus=white,default:menu=white,blue:menusel=yellow,cyan:menuhot=yellow,blue:menuhotsel=white,cyan:input=white,blue:reverse=brightblue,default:gauge=brightblue,default:normal=cyan,default:selected=white,blue:marked=yellow,default:directory=brightcyan,default:link=red,default:device=brightblue,default:special=red,default:core=brightred,default:executable=green,default:editnormal=lightgray,default:editbold=brightred,default:editmarked=black,lightgray




9.

[Colors]
base_color=normal=default,default:reverse=brightblue,default:gauge=brightblue,black:errors=white,yellow:input=black,lightgray:menu=lightgray,brightblue:menusel=white,black:menuhot=yellow,brightblue:menuhotsel=yellow,black:dnormal=default,black:dfocus=lightgray,brightblue:dhotnormal=brightblue,black:dhotfocus=brightblue,black:helpnormal=brightblue,black:helplink=brightblue,default:helpslink=lightgray,brightblue:helpbold=green,default:helpitalic=brightblue,black:executable=green,default:selected=lightgray,brightblue:marked=brightblue,default:markselect=brightblue,black:directory=white,default:link=cyan,default:device=brightgreen,default:special=magenta,default:core=yellow,default:editnormal=default,default:editbold=default,default




10.

[Colors]
base_color=normal=default,default:reverse=yellow,default:gauge=yellow,black:errors=white,red:input=black,white:menu=black,yellow:menusel=white,black:menuhot=red,yellow:menuhotsel=red,black:dnormal=default,black:dfocus=black,yellow:dhotnormal=yellow,black:dhotfocus=yellow,black:helpnormal=yellow,black:helplink=yellow,default:helpslink=black,yellow:helpbold=green,default:helpitalic=yellow,black:executable=green,default:selected=black,yellow:marked=yellow,default:markselect=yellow,black:directory=white,default:link=cyan,default:device=brightgreen,default:special=magenta,default:core=red,default:editnormal=default,default:editbold=default,default




11.

[Colors]
base_color=normal=default,default:reverse=lightgray,default:gauge=lightgray,black:errors=white,red:input=black,white:menu=black,lightgray:menusel=white,black:menuhot=red,lightgray:menuhotsel=red,black:dnormal=default,black:dfocus=black,lightgray:dhotnormal=lightgray,black:dhotfocus=lightgray,black:helpnormal=lightgray,black:helplink=lightgray,default:helpslink=black,lightgray:helpbold=green,default:helpitalic=lightgray,black:executable=green,default:selected=black,lightgray:marked=lightgray,default:markselect=lightgray,black:directory=white,default:link=cyan,default:device=brightgreen,default:special=magenta,default:core=red,default:editnormal=default,default:editbold=default,default




12.

[Colors]
base_color=normal=default,default:reverse=brightmagenta,default:gauge=brightmagenta,black:errors=white,yellow:input=black,white:menu=black,brightmagenta:menusel=white,black:menuhot=yellow,brightmagenta:menuhotsel=yellow,black:dnormal=default,black:dfocus=black,brightmagenta:dhotnormal=brightmagenta,black:dhotfocus=brightmagenta,black:helpnormal=brightmagenta,black:helplink=brightmagenta,default:helpslink=black,brightmagenta:helpbold=green,default:helpitalic=brightmagenta,black:executable=green,default:selected=black,brightmagenta:marked=brightmagenta,default:markselect=brightmagenta,black:directory=white,default:link=cyan,default:device=brightgreen,default:special=magenta,default:core=yellow,default:editnormal=default,default:editbold=default,default




13.

[Colors]
base_color=normal=lightgray,red:input=white,brown:errors=white,brightred:gauge=brown,black:selected=black,white:marked=yellow,red:markselect=yellow,white:directory=white,red:executable=brightgreen,red:link=lightgray,red:device=brightmagenta,red:special=brightmagenta,red:core=brightred,red:menu=black,white:menuhot=yellow,white:menuhotsel=brightred,black:dnormal=black,white:dfocus=white,lightgray:dhotnormal=yellow,white:dhotfocus=brightred,lightgray:editnormal=lightgray,black:editmarked=yellow,white




14.

[Colors]
base_color=lightgray,green:normal=green,default:selected=white,gray:marked=yellow,default:markselect=yellow,gray:directory=blue,default:executable=brightgreen,default:link=cyan,default:device=brightmagenta,default:special=lightgray,default:errors=red,default:reverse=green,default:gauge=green,default:input=white,gray:dnormal=green,gray:dfocus=brightgreen,gray:dhotnormal=cyan,gray:dhotfocus=brightcyan,gray:menu=green,default:menuhot=cyan,default:menusel=green,gray:menuhotsel=cyan,default:helpnormal=cyan,default:editnormal=green,default:editbold=blue,default:editmarked=gray,blue:stalelink=red,default




15.

[Colors]
base_color=normal=default,default:reverse=green,default:gauge=green,black:errors=white,red:input=black,white:menu=black,green:menusel=white,black:menuhot=red,green:menuhotsel=red,black:dnormal=default,black:dfocus=black,green:dhotnormal=green,black:dhotfocus=green,black:helpnormal=green,black:helplink=green,default:helpslink=black,green:helpbold=green,default:helpitalic=green,black:executable=green,default:selected=black,green:marked=green,default:markselect=green,black:directory=white,default:link=cyan,default:device=brightgreen,default:special=magenta,default:core=red,default:editnormal=default,default:editbold=default,default