четверг, 28 июня 2012 г.

Thinstation 5

Наконец-то дошли руки до thinstation пятой версии. Кому интересно, прошу

После года активной разработки, была представлена новая версия thinstation - thinstation 5. Во время разработки версия thinstation нумеровалась как 2.5, но в итоге разработчики решили уйти от нумерации 2.х и выпустили релиз под версией 5.0. С пятой версии существенно облегчилась задача добавления и изменения пакетов, входящих в thinstation, благодаря кодовой базе дистрибутива Crux Linux, на котором основан thinstation. Самым важным изменением в версии 5 является переход на ядро linux 3.2(уже даже 3.4.2) и xorg7.

Подготовка


Мы рассмотрим вариант работы бездисковых рабочих станций, т.е. клиенты будут грузиться по сети, не имея своего жесткого диска или любого другого накопителя. Для этих целей вы можете использовать как брендовые терминальные клиенты(ТК), так и самосборные из нового или старого железа. Также сразу полагаем, что DHCP- и TFTP-серверы у нас установлены, чтобы остановиться только на конфигурировании и сборке загрузочных образов.
Для сборки нам понадобится машина с установленным дистрибутивом линукс. Скачать исходники thinstation можно двумя способами - скачать архив с сайта или воспользоваться git. Второе, IMHO, более предпочтительно.

z1kk0@work-pc:~ # git clone --depth 1 git://thinstation.git.sourceforge.net/gitroot/thinstation/thinstation

Мы перенесли весь репозиторий исходников thinstation к себе на машину. Теперь необходимо подготовить систему для сборки образа. Переходим в каталог, куда скачали репозиторий и выполняем setup-chroot от имени рута:

z1kk0@work-pc:~ # cd thinstation
z1kk0@work-pc:~ # su
Пароль:
work-pc:/home/z1kk0/thinstation # ./setup-chroot

Дальше мы переходим в каталог, где лежат конфигурационные файлы thinstation.conf.buildtime и build.conf, а также скрипт для сборки образа:

[root@TS_chroot]/# cd ts/5.x
где 5.х - номер версии thinstation(на момент написания 5.1)

build.conf - это основной конфигурационный файл, в котором указывается какое оборудование, какие программы и возможности включать в загрузочный образ при сборке.thinstation.conf.buildtime - файл параметров загрузочного образа.

Конфигурационные файлы, которые лежат на TFTP-сервере, по структуре и содержанию в целом не поменялись по сравнению с версией 2.2.2 (см. здесь). Хотя отличия между версиями 5.0 и 2.2.х все же есть. Наиболее это касается именно build.conf. В прошлой версии thinstation мы могли перечислять все драйвера нашего оборудования, но с переходом на новое ядро число драйверов(а точнее модулей) лавинообразно выросло. Поэтому управление драйверами теперь происходит по-другому. В файле build.conf теперь присутствует новый параметр под названием machine. Этот параметр указывает на имя каталога, находящегося по адресу ts/5.x/machine, в котором находится список модулей ядра для отдельного профиля оборудования. В файл build.conf можно добавлять различное множество таких параметров для совмещения разных профилей оборудования в одном загрузочном образе. Теперь разберем весь механизм получения этого списка модулей:
  • раскомментируем в build.conf параметр "package extensions"
  • соберем загрузочный образ с опцией --allmodules [root@TS_chroot]/ts/5.1# ./build --allmodules
  • загружаемся с собранного образа на выбранном ТК и по комбинации ALT+CTRL+F3 переходим в консоль. Заходим под рутом, пароль рута определяется параметром "param rootpasswd"(по-умолчанию "pleasechangeme")
  • выполним команду hwlister.sh, которая сгенерирует один, два или три файла: module.list(всегда), vbe_modes.list(возможно) и firmware.list (может быть). Эти  файлы сохраняются в корне загруженной файловой системы ТК. Забрать эти файлы можно, например, флешкой или дать всем право на запись в корневом каталоге TFTP-сервера, куда эти файлы загрузятся при вылнении команды hwlister.sh(или создать заранее эти файлы в корне TFTP-сервера и поставить бит записи только на эти файлы).
  • создадим в каталоге ts/5.x/machine подкаталог, например, с именем test_tc и положим туда файлы, созданные командой hwlister.sh
  • создадим новый параметр в файле build.conf - machine test_tc
  • выполним сборку [root@TS_chroot]/ts/5.1# ./build 

Хотя количество действий и увеличилось, но теперь появилась автоматизация выбора драйверов для конкретного железа. Возможность добавить вручную конечно же осталась - драйвера добавляются в файл module.list.

Следует оговориться, что при использовании скрипта hwlister.sh вы получите только список оборудования, доступного на момент выполнения этого скрипта. Поэтому если вы решили использовать, например, usb-клавиатуру, то ее надо подключить заранее, чтобы hwlister.sh определил модуль для поддержки usb-клавиатуры в module.list.

Примеры параметров основных конфигов


Рассмотрим пример настроек для компиляции загрузочного образа. В своей организации мне необходимо было использовать ТК для подключения к терминальному серверу на базе Windows Server 2008 R2. Клиентов для подключения по протоколу rdp предостаточно - 2Xclient, freerdp, rdesktop. Вы можете выбирать любой, который вам подходит. Я остановился на freerdp. Я не буду приводить здесь весь конфиг, потому как он достаточно большой. Приведу только то, что раскомментировал в файле build.conf:

#наш каталог, в котором лежит сгенерированный с помощью hwlister.sh профиль оборудования
machine test_pc

#модуль поддержки usb-накопителей
module usb-storage

#поддержка файловой системы ISO9960 для CDROMов
module isofs

#поддержка файловой системы UDF для CDROMов
module udf

#поддержка файловой системы FAT для флешек
module vfat

#поддержка файловой системы NTFS для флешек и внешних накопителей
module ntfs

#на время отладки рекомендую использовать в качестве видеодрайвера именно vesa
package xorg7-vesa

#требуемая локаль
package locale-ru_RU

#наш rdp-клиент
package freerdp

#добавляет разные shell-команды, в том числе hwlister.sh (используйте на период отладки)
package extensions

param basepath .

Все параметры param я оставил по-умолчанию, за исключением только param rootpasswd, который выставил только на период отладки. При сборке окончательного образа, рекомендую закомментировать этот параметр, чтобы не иметь возможность попасть в консоль загруженного образа. Еще обратите внимание на параметр param basepath - он задает директорию поиска конфигурационных файлов на TFTP-сервере. По-умолчанию, значение равно ts5.0. В своих целях я оставляю еще параметр package lp_server для подключения принтеров к ТК (об этом ниже).
Теперь поговорим о thinstation.conf.buildtime:

#использовать как проводные, так и беспроводные интерфейсы
NET_USE=BOTH

#использовать DHCP
NET_USE_DHCP=ON

#использовать конфиги с сервера
NET_FILE_ENABLED=ON

#использовать telnet-сервер
NET_TELNETD_ENABLED=ON

#разрешить удаленное подключение с любых адресов
NET_REMOTE_ACCESS_FROM="0.0.0.0"

#включает более безопасную запись на usb-накопители
USB_STORAGE_SYNC=ON

В этом файле я конечно же указал не все параметры, а только те, что нужны мне для компиляции в загрузочный образ. Остальные важные параметры я буду указывать в конфигах на TFTP-сервере. Как я уже выше указывал, за справкой по конфигам обращайтесь сюда. Примеры некоторых конфигов(подключение принтера, возможности rdp-клиентов и т.д.) также можно посмотреть в ts/5.1/conf.

В файле build.conf все параметры достаточно документированы, поэтому трудностей возникнуть не должно (если конечно с английским дружите ;). Касаемо параметров в файле thinstation.conf.buildtime,то рядом с thinstation.conf.buildtime (до недавнего момента он там был, теперь его там не наблюдаю почему-то) находится файл thinstation.conf.sample, в котором подробно описаны все параметры, которые могут иметь место либо в файле thinstation.conf.buildtime либо в конфигах на сервере(за исключением файла thinstation.hosts, пример которого thinstation.hosts.example находится вместе с thinstation.conf.sample.

Особо хотелось бы отметить важность выбора локали, так как названия файлов из русских букв на флешках или других накопителях будут отображаться некорректно. Клавиатурная раскладка переключается сочетанием клавиш, которыми она определена на самом сервере и ваши настройки на это не влияют (если только вы не грузите полную оболочку, из которой уже вручную подключаетесь к серверам). Однако вы можете выставить язык по-умолчанию при подключении. В файле ts/5.x/packages/locale-ru_RU/lib/locale/ru_RU_locale есть параметр XKEYBOARD, который, по-умолчанию, равен "ru,us". Если вам необходим при авторизации английский язык по-умолчанию, то меняете на "us,ru" или даже можете просто оставить "us", так как к раскладкам в вашей rdp-сессии это никак не относится. Вы также можете управлять этим параметром из файла thinstation.conf.buildtime или thinstation.conf.network, например. Для этого нужно параметр XKEYBOARD удалить из файла ts/5.x/packages/locale-ru_RU/lib/locale/ru_RU_locale и добавить в thinstation.conf.buildtime или в thinstation.conf.network. Если вам нужна другая локаль и язык, то действия те же самые.

Добавление недостающих модулей ядра


Как я уже говорил, чтобы все подключенные к вашему терминальному клиенту компоненты работали, нужно подключить их заранее, чтобы hwlister.sh занес модули этих устройств в файл module.list. Однако возможна ситуация, когда даже подключение желаемого устройства при составлении списка модулей не дает никакого эффекта и оно не работает. У меня была ситуация, когда при обработке скриптом hwlister.sh я подключал usb-мышь, которая потом благополучно работала. Однако, когда я подключал другую мышь, то она признаков жизни не подавала, причем даже когда я выполнял скрипт hwlister.sh при этой подключенной мыши. Как оказалось, причина банальна - отсутствие модуля ядра, поэтому hwlister.sh и не обнаруживал моё устройство.
В thinstation 5 процесс сборки ядра изменился, поэтому выясним, как же можно добавить нужные нам модули.
Переходим в каталог, где лежит ядро. Если сборка проходит впервые, то необходим доступ в интернет

z1kk0@work-pc:~ # cd thinstation
z1kk0@work-pc:~ #; su
Пароль:
work-pc:/home/z1kk0/thinstation # ./setup-chroot
[root@TS_chroot]/# cd ts/ports/components/kernel-TS

Конфиг ядра именуется как ts.config. Делаем там изменения. Например, мне нужен модуль поддержки hid-устройств a4tech

CONFIG_HID_A4TECH=y

Далее, выполним команду

[root@TS_chroot]/# pkgmk -d -kw

Эта команда скачает недостающие исходники и должна скомпилировать новое ядро с нашими изменениями. Однако после наших изменений md5 сумма файла ts.config измениласс и после выполнения этой команды в самом конце вы увидите примерно такой вывод

ERROR: Md5sum mismatch found:
MISSING 1dc020d1d3b8005b33a2bfbf730d2709 ts.config
NEW e605a50ca1d9d85e9113f5cc8a7eb4e3 ts.config
=======# ERROR: Building '/ts/ports/components/kernel-TS/kernel-TS#3.4.2-1.pkg.tar.gz' failed.

Чтобы этого избежать, нужно обновить сумму(можно выполнить перед командой pkgmk -d -kw) и запустить сборку

[root@TS_chroot]/# pkgmk -um
[root@TS_chroot]/# pkgmk -i

После долгой сборки вы увидите вот такую ошибку:

=======# ERROR: Footprint mismatch found:
NEW -rw-r--r-- root/root ts/components/kernel/kernel/modules-3.4.2TS/kernel/drivers/hid/hid-a4tech.ko
NEW -rw-r--r-- root/root usr/src/kernels/3.4.2TS/include/config/hid/a4tech.h (EMPTY)
=======> ERROR: Building '/ts/ports/components/kernel-TS/kernel-TS#3.4.2-1.pkg.tar.gz' failed.

Эта ошибка говорит о несоответствии с файлом footprint. Этот файл содержит список файлов, которые должны находится в собранном пакете. После изменения конфига ядра, файлов становится больше, поэтому и выдается ошибка несоответствия. Вручную этот файл править не нужно, после "неудачной" сборки достаточно выполнить команду обновления файла footprint:

[root@TS_chroot]/# pkgmk -uf

Замечу, что до "неудачной" сборки выполнение этой команды ничего не даст, так как файл footprint ничего не знает о грядущих изменениях.
После обновления файла можно просто выполнить сборку и установку пакета в качестве простого обновления:

[root@TS_chroot]/# pkgmk -u

Всё, ядро собралось с нужным нам модулем. Теперь нам осталось скопировать собранное ядро в каталог, из которого thinstation забирает эти модули:

[root@TS_chroot]/# cp -r /ts/components/kernel/kernel/modules-3.4.2TS /ts/5.1/kernel/
или воспользоваться более правильным методом:
[root@TS_chroot]/# update -k

Теперь можете спокойно пользоваться скриптом hwlister.sh, который подхватит недостающий модуль.

33 комментария:

  1. Привет!
    ПО твоей статье удачно пересобрал ядро. Я Thinstation использую давно, но сейчас с переходом на Crux и отсутвием мануалов не понимаю как собрать ( точнее обновить) пакет. Не подскажешь что почитать на эту тему?
    Спасибо

    ОтветитьУдалить
  2. Привет!
    Раньше в комментариях было описание как скомпилировать драйвер от Realtek. Теперь нет не могли бы вы заново написать инструкцию по компиляции драйверов.

    ОтветитьУдалить
    Ответы
    1. Скачиваете архив с драйвером отсюда http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=5&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2
      и распаковываете.
      Правите файл autorun.sh и оставляете только ЭТО

      TARGET_PATH=$(find /ts/$(echo $TSVER)/kernel/modules-$(cat /ts/$(echo $TSVER)/utils/KERNEL_VERSION)/kernel/drivers/net/ethernet -name realtek -type d)
      if [ "$TARGET_PATH" = "" ]; then
      TARGET_PATH=find /ts/$(echo $TSVER)/kernel/modules-$(cat /ts/$(echo $TSVER)/utils/KERNEL_VERSION)/kernel/drivers/net/ethernet
      fi
      echo "Build the module and install"
      echo "-------------------------------" >> log.txt
      date 1>>log.txt
      make $@ all 1>>log.txt || exit 1
      module=`ls src/*.ko`
      module=${module#src/}
      module=${module%.ko}

      if [ "$module" = "" ]; then
      echo "No driver exists!!!"
      exit 1
      elif [ "$module" != "r8169" ]; then
      if test -e $TARGET_PATH/r8169.ko ; then
      echo "Backup r8169.ko"
      if test -e $TARGET_PATH/r8169.bak ; then
      i=0
      while test -e $TARGET_PATH/r8169.bak$i
      do
      i=$(($i+1))
      done
      echo "rename r8169.ko to r8169.bak$i"
      mv $TARGET_PATH/r8169.ko $TARGET_PATH/r8169.bak$i
      cp src/r8168.ko $TARGET_PATH/r8168.ko
      else
      echo "rename r8169.ko to r8169.bak"
      mv $TARGET_PATH/r8169.ko $TARGET_PATH/r8169.bak
      cp src/r8168.ko $TARGET_PATH/r8168.ko
      fi
      fi
      fi
      echo "Completed."
      exit 0

      открываете файл makefile(там же где и autorun.sh) и правите
      KFLAG := 3x

      открываете файл makefile в src и правите такие строчки
      BASEDIR := /ts/$(TSVER)/kernel/modules-$(shell cat /ts/$(TSVER)/utils/KERNEL_VERSION)
      KERNELDIR ?= /ts/ports/components/kernel-TS/work/src/linux-3.4.5
      DRIVERDIR := $(shell find $(BASEDIR)/kernel/drivers/net/ethernet -name realtek -type d)
      DRIVERDIR := $(BASEDIR)/kernel/drivers/net

      затем переходите в chroot, и выполняете ./autorun.sh. В src появится модуль r8168.ko и копируете его сюда ts/5.1/kernel/modules-3.4.5TS/kernel/drivers/net/ethernet/realtek
      затем собираете с --allmodules и проверяете командой «lsmod | grep 8168»

      Удалить
    2. обязательно обратите внимание на версию ядра

      Удалить
  3. Уважаемый, Z1kk0! Спасибо за подробную статью.
    Однако, требуется помощь при сборке своего Thinstation 5. Огромноа просьба - свяжитесь со мной. hapkot_one@inbox.ru

    ОтветитьУдалить
    Ответы
    1. есть джаббер z1kk0@jabber.hot-chilli.net
      вы можете здесь задавать вопросы

      Удалить
  4. Может, скайп? maxim.k.a.
    Я собрал свой Thinstation 5 с загрузкой по tftp. Но после загрузки на рабочей машине (их 10 разных) НЕ работает сеть.
    Собирал не под определенную машину.
    Теперь не могу подсунуть дрова на сеть в сборку.

    ОтветитьУдалить
  5. Нужна оперативная консультация по нескольким вопросам. Поэтому, и прошу в скайп.

    ОтветитьУдалить
    Ответы
    1. есть аська ещё, но только в понедельник
      скайпа нет - не пользуюсь

      Удалить
  6. 325-278-710 - моя аська.
    Очень прошу связаться.
    Заранее благодарен.

    ОтветитьУдалить
  7. Хочу выразить вам огромную благодарность за помощь!
    У меня всё получилось. На деле оказалось, что нужно было пользоваться исходниками Thinstation 5 из архива. Но, у меня они криво распаковывались архиватором. Я его обновил и всё стало на свои места. Распаковал исходники, сделал ./setup-chroot, настроил конфиги, собрал всё это дело ./build --allmodules. Сборку делал именно ./build --allmodules, потому, что она предназначалась не для конкретной машины, а для 10-ти разных с загрузкой по tftp.
    Сборка завесила 50 Мб, именно из-за этого она не грузилась на стареньких машинах, на которых было по 128 Мб оперативки. Добавлили еще 128 Мб и всё взлетело замечательно: и сеть, и терминал, и принтеры, и сканеры штрих-кодов.

    ОтветитьУдалить
  8. Ребята, если нужна консультация - пишите, помогу разобраться. Ибо, сам долго и упорно вникал во все подробности.
    ICQ 325-278-710
    Skype maxim.k.a.
    e-mail hapkot_one@inbox.ru

    ОтветитьУдалить
  9. спасибо, по сборке ядра отличная статья, все как надо

    ОтветитьУдалить
  10. После выполнения описанных тут действий Thinstation 5.1 на ядре 3.6.5 образ собирает, но по PXE он не загружается. Весь процесс зависает на "Loading vmlinuz..."
    До выполнения действий из этого мануала загрузка проходила без проблем.
    Подскажите где можно копнуть?

    ОтветитьУдалить
  11. Добрый день!

    Первый раз нормально скачал иходники TS, пользуясь вышеприведенной командой "git clone --depth 1 git://thinstation.git.sourceforge.net/gitroot/thinstation/thinstation"

    Спустя неlелю, или около того, поставил базовую ОС посвежее (opesSUSE 12.3, первый раз была 11.2),
    и та же самая команда не хочет скачивать исходники:

    "
    suse123:/home # git clone --depth 1 git://thinstation.git.sourceforge.net/gitroot/thinstation/thinstation
    Cloning into 'thinstation'...
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.
    suse123:/home #
    "

    помогите пожалуйста

    ОтветитьУдалить
    Ответы
    1. У вас не правильный адрес репозитория git. Согласно http://sourceforge.net/projects/thinstation/files/thinstation/thinstation-5/ адрес должен быть git://github.com/Thinstation/thinstation.git. команда должна выглядеть так
      git clone --depth=1 git://github.com/Thinstation/thinstation.git -b 5.1-Stable

      Удалить
  12. Или мы работаем с разными сырцами - или у вас в тексте ашыпка.
    У меня 5.1-Stable из git, ts.config и всё остальное находится в /ts/ports/kernel-modules/kernel-TS.
    У вас указано - /ts/ports/components/kernel-TS.
    Проверьте еще раз.

    (А то у меня, например, не получается отключить CMOV)

    ОтветитьУдалить
    Ответы
    1. возможно в последних версиях что-то изменили и поменяли пути, но проверить у меня пока возможности нет. Проверю - отпишусь. Спасибо за информацию.

      Удалить
  13. Всем добрый вечер, такая проблема, сам давно пользую 5.1.1 сборку , но тут нашлось время допилить, давно хотел сделать еще один запуск Х-сов в tty при переходе на ctrl+alt+fx. В моей сборке почему то

    SESSION_x_SCREEN=x не прокатывает,

    решил обновится, всё выставил как в старом buil.conf
    он грузится, ругается и TS зависает.
    "error no valid session type"
    Решил собрать с --allmodules
    так же самая ошибка , проскакивает, но после еще и черный экран.
    В чем может быть проблема подскажите пожалуйста ?

    build.conf :
    package dbus
    package xorg7-vesa
    package locale-ru_RU
    package freerdp
    package extensions
    param rootpasswd pleasechangeme
    param xorgvncpasswd pleasechangeme
    param splash silent
    param fbmtrr 0
    param fbsm ywrap
    param bootresolution 1024x600-32
    param defaultconfig thinstation.conf.buildtime
    param basename thinstation
    param basepath config
    param fulllocales true
    #param icaencryption false
    param haltonerror false
    param hardlinkfs true
    param sametimestmp true
    param initrdcmd "gzip -9"
    param bootverbosity 3


    thinstation.conf.buildtime:

    SESSION_0_AUTOSTART=on
    SESSION_1_AUTOSTART=off
    NET_USE=BOTH
    NET_USE_DHCP=on
    NET_FILE_ENABLED=On
    NET_TELNETD_ENABLED=ON
    NET_REMOTE_ACCESS_FROM="0.0.0.0"

    thinstation.conf-ts001:
    SCREEN=0
    WORKSPACE=1
    AUTOSTART=On

    SESSION_0_TITLE="Terminal"
    SESSION_0_TYPE=freerdp
    SESSION_0_SCREEN=1
    SESSION_0_SCREEN_POSITION=1
    SESSION_0_FREERDP_SERVER=10.10.10.10
    SESSION_0_FREERDP_OPTIONS="-u user01 -d domain -p pass"
    SESSION_0_AUTOSTART=On

    FREERDP_USB=Off # Mount USB Drive On/Off
    FREERDP_KEYMAP=419 # Keymap number
    FREERDP_CONSOLE=Off # Conect to console, On/Off
    FREERDP_SLOWLINK=Off # Slow Network Link, On/Off

    KEYBOARD_MAP=en_us
    TIME_ZONE="Europe/Moscow"
    USB_ENABLED=On

    CUSTOM_CONFIG=off
    VIA_UNI_DRV=On
    SCREEN_RESOLUTION="1024x768"
    X_MOUSE_DEVICE=/dev/input/mice
    MOUSE_RESOLUTION=100
    MOUSE_ACCELERATION="1"
    X_DRIVER_OPTION1="swcursor On"

    ОтветитьУдалить
  14. Может можно обновить инструкцию под новые версии thinstation?
    если сейчас скачать исходники с официального сайта, то там совсем другие каталоги и нету исходников для userspace
    ps: если качать отсюда и собирать, то всё работает, но хочется новую версию http://sourceforge.net/projects/nixts/files/thinstation-5/5.1.tar.xz/download

    ОтветитьУдалить
    Ответы
    1. К сожалению , линукса под рукой пока не имею и времени нет вообще. Как только появится возможность - обновлю

      Удалить
  15. не могу избавиться от линуксового рабочего стола (установить автозапуск vmview) .
    Такое ощущение, что он просто не читает файл thinstation.conf.network
    Подскажите в чем может быть проблема?

    ОтветитьУдалить
    Ответы
    1. Хоть и поздно, но скорее всего не хватает опции NET_FILE_ENABLED=On

      Удалить
  16. Подключаю USB принтер. Нарисовалась внезапность: принтер нормально подключился, дрова нормально стали, на печать идёт, в логах печати печать срабатывает, журнал показывает отметку, что документ успешно напечатан - ляля. Только из принтера ничего не лезет. Принтер живой, проблемы с ним самим исключены. Может быть какая-то дрянь с конфигами?

    ОтветитьУдалить
  17. "Может можно обновить инструкцию под новые версии thinstation?
    если сейчас скачать исходники с официального сайта, то там совсем другие каталоги и нету исходников для userspace"
    Интересует статья)) действительно может обновите еще раз?
    так же не плохо было бы конкретный пример сборки с freerdp citrix

    ОтветитьУдалить
  18. Может кому пригодится - клиент-серверная система управления Thinstation 5, с веб-интерфейсом.
    http://thinstation.pro/thin/101-tsmon.html

    ОтветитьУдалить
  19. Здравия
    скажите а можно ли и как положить на рабочий стол thinstation линк на запуск скрипта и сам скрипт

    ОтветитьУдалить
  20. Этот комментарий был удален автором.

    ОтветитьУдалить
  21. При попытке собрать:
    Dependencies are clean!
    ./build: line 1072: ./utils/tools/depmod: No such file or directory

    Adding and install non-distributable binaries

    ./packages/alsa/build/install: 7: ./packages/alsa/build/install: repackage: not found

    Error has occured while installing package
    Build Aborted

    package extension раскомментировал, все файлы есть в папках

    ОтветитьУдалить
    Ответы
    1. ./setup-chroot
      Тоже наступил на эти грабельки =) Все дальнейшие манипуляции должны в чруте происходить. Тогда билданется без ошибок.

      Удалить