Наконец-то дошли руки до 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, более предпочтительно.
Мы перенесли весь репозиторий исходников thinstation к себе на машину. Теперь необходимо подготовить систему для сборки образа. Переходим в каталог, куда скачали репозиторий и выполняем setup-chroot от имени рута:
Дальше мы переходим в каталог, где лежат конфигурационные файлы thinstation.conf.buildtime и build.conf, а также скрипт для сборки образа:
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 можно добавлять различное множество таких параметров для совмещения разных профилей оборудования в одном загрузочном образе. Теперь разберем весь механизм получения этого списка модулей:
Хотя количество действий и увеличилось, но теперь появилась автоматизация выбора драйверов для конкретного железа. Возможность добавить вручную конечно же осталась - драйвера добавляются в файл module.list.
Следует оговориться, что при использовании скрипта hwlister.sh вы получите только список оборудования, доступного на момент выполнения этого скрипта. Поэтому если вы решили использовать, например, usb-клавиатуру, то ее надо подключить заранее, чтобы hwlister.sh определил модуль для поддержки usb-клавиатуры в module.list.
Рассмотрим пример настроек для компиляции загрузочного образа. В своей организации мне необходимо было использовать ТК для подключения к терминальному серверу на базе Windows Server 2008 R2. Клиентов для подключения по протоколу rdp предостаточно - 2Xclient, freerdp, rdesktop. Вы можете выбирать любой, который вам подходит. Я остановился на freerdp. Я не буду приводить здесь весь конфиг, потому как он достаточно большой. Приведу только то, что раскомментировал в файле build.conf:
Все параметры param я оставил по-умолчанию, за исключением только param rootpasswd, который выставил только на период отладки. При сборке окончательного образа, рекомендую закомментировать этот параметр, чтобы не иметь возможность попасть в консоль загруженного образа. Еще обратите внимание на параметр param basepath - он задает директорию поиска конфигурационных файлов на TFTP-сервере. По-умолчанию, значение равно ts5.0. В своих целях я оставляю еще параметр package lp_server для подключения принтеров к ТК (об этом ниже).
Теперь поговорим о thinstation.conf.buildtime:
В этом файле я конечно же указал не все параметры, а только те, что нужны мне для компиляции в загрузочный образ. Остальные важные параметры я буду указывать в конфигах на 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 процесс сборки ядра изменился, поэтому выясним, как же можно добавить нужные нам модули.
Переходим в каталог, где лежит ядро. Если сборка проходит впервые, то необходим доступ в интернет
Конфиг ядра именуется как ts.config. Делаем там изменения. Например, мне нужен модуль поддержки hid-устройств a4tech
Далее, выполним команду
Эта команда скачает недостающие исходники и должна скомпилировать новое ядро с нашими изменениями. Однако после наших изменений md5 сумма файла ts.config измениласс и после выполнения этой команды в самом конце вы увидите примерно такой вывод
Чтобы этого избежать, нужно обновить сумму(можно выполнить перед командой pkgmk -d -kw) и запустить сборку
После долгой сборки вы увидите вот такую ошибку:
Эта ошибка говорит о несоответствии с файлом footprint. Этот файл содержит список файлов, которые должны находится в собранном пакете. После изменения конфига ядра, файлов становится больше, поэтому и выдается ошибка несоответствия. Вручную этот файл править не нужно, после "неудачной" сборки достаточно выполнить команду обновления файла footprint:
Замечу, что до "неудачной" сборки выполнение этой команды ничего не даст, так как файл footprint ничего не знает о грядущих изменениях.
После обновления файла можно просто выполнить сборку и установку пакета в качестве простого обновления:
Всё, ядро собралось с нужным нам модулем. Теперь нам осталось скопировать собранное ядро в каталог, из которого thinstation забирает эти модули:
Теперь можете спокойно пользоваться скриптом hwlister.sh, который подхватит недостающий модуль.
После года активной разработки, была представлена новая версия 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
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)
где 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 .
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
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
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.
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
[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.
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, который подхватит недостающий модуль.
Привет!
ОтветитьУдалитьПО твоей статье удачно пересобрал ядро. Я Thinstation использую давно, но сейчас с переходом на Crux и отсутвием мануалов не понимаю как собрать ( точнее обновить) пакет. Не подскажешь что почитать на эту тему?
Спасибо
Привет!
ОтветитьУдалитьРаньше в комментариях было описание как скомпилировать драйвер от Realtek. Теперь нет не могли бы вы заново написать инструкцию по компиляции драйверов.
Скачиваете архив с драйвером отсюда 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»
обязательно обратите внимание на версию ядра
УдалитьСпасибо!
ОтветитьУдалитьУважаемый, Z1kk0! Спасибо за подробную статью.
ОтветитьУдалитьОднако, требуется помощь при сборке своего Thinstation 5. Огромноа просьба - свяжитесь со мной. hapkot_one@inbox.ru
есть джаббер z1kk0@jabber.hot-chilli.net
Удалитьвы можете здесь задавать вопросы
Может, скайп? maxim.k.a.
ОтветитьУдалитьЯ собрал свой Thinstation 5 с загрузкой по tftp. Но после загрузки на рабочей машине (их 10 разных) НЕ работает сеть.
Собирал не под определенную машину.
Теперь не могу подсунуть дрова на сеть в сборку.
Нужна оперативная консультация по нескольким вопросам. Поэтому, и прошу в скайп.
ОтветитьУдалитьесть аська ещё, но только в понедельник
Удалитьскайпа нет - не пользуюсь
325-278-710 - моя аська.
ОтветитьУдалитьОчень прошу связаться.
Заранее благодарен.
Хочу выразить вам огромную благодарность за помощь!
ОтветитьУдалитьУ меня всё получилось. На деле оказалось, что нужно было пользоваться исходниками Thinstation 5 из архива. Но, у меня они криво распаковывались архиватором. Я его обновил и всё стало на свои места. Распаковал исходники, сделал ./setup-chroot, настроил конфиги, собрал всё это дело ./build --allmodules. Сборку делал именно ./build --allmodules, потому, что она предназначалась не для конкретной машины, а для 10-ти разных с загрузкой по tftp.
Сборка завесила 50 Мб, именно из-за этого она не грузилась на стареньких машинах, на которых было по 128 Мб оперативки. Добавлили еще 128 Мб и всё взлетело замечательно: и сеть, и терминал, и принтеры, и сканеры штрих-кодов.
Ребята, если нужна консультация - пишите, помогу разобраться. Ибо, сам долго и упорно вникал во все подробности.
ОтветитьУдалитьICQ 325-278-710
Skype maxim.k.a.
e-mail hapkot_one@inbox.ru
спасибо, по сборке ядра отличная статья, все как надо
ОтветитьУдалитьПосле выполнения описанных тут действий Thinstation 5.1 на ядре 3.6.5 образ собирает, но по PXE он не загружается. Весь процесс зависает на "Loading vmlinuz..."
ОтветитьУдалитьДо выполнения действий из этого мануала загрузка проходила без проблем.
Подскажите где можно копнуть?
Добрый день!
ОтветитьУдалитьПервый раз нормально скачал иходники 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 #
"
помогите пожалуйста
У вас не правильный адрес репозитория 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
Или мы работаем с разными сырцами - или у вас в тексте ашыпка.
ОтветитьУдалитьУ меня 5.1-Stable из git, ts.config и всё остальное находится в /ts/ports/kernel-modules/kernel-TS.
У вас указано - /ts/ports/components/kernel-TS.
Проверьте еще раз.
(А то у меня, например, не получается отключить CMOV)
возможно в последних версиях что-то изменили и поменяли пути, но проверить у меня пока возможности нет. Проверю - отпишусь. Спасибо за информацию.
УдалитьВсем добрый вечер, такая проблема, сам давно пользую 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"
Может можно обновить инструкцию под новые версии thinstation?
ОтветитьУдалитьесли сейчас скачать исходники с официального сайта, то там совсем другие каталоги и нету исходников для userspace
ps: если качать отсюда и собирать, то всё работает, но хочется новую версию http://sourceforge.net/projects/nixts/files/thinstation-5/5.1.tar.xz/download
К сожалению , линукса под рукой пока не имею и времени нет вообще. Как только появится возможность - обновлю
Удалитьне могу избавиться от линуксового рабочего стола (установить автозапуск vmview) .
ОтветитьУдалитьТакое ощущение, что он просто не читает файл thinstation.conf.network
Подскажите в чем может быть проблема?
Хоть и поздно, но скорее всего не хватает опции NET_FILE_ENABLED=On
УдалитьПодключаю USB принтер. Нарисовалась внезапность: принтер нормально подключился, дрова нормально стали, на печать идёт, в логах печати печать срабатывает, журнал показывает отметку, что документ успешно напечатан - ляля. Только из принтера ничего не лезет. Принтер живой, проблемы с ним самим исключены. Может быть какая-то дрянь с конфигами?
ОтветитьУдалитьПринтеры - вещь капризная. Какая модель?
Удалить"Может можно обновить инструкцию под новые версии thinstation?
ОтветитьУдалитьесли сейчас скачать исходники с официального сайта, то там совсем другие каталоги и нету исходников для userspace"
Интересует статья)) действительно может обновите еще раз?
так же не плохо было бы конкретный пример сборки с freerdp citrix
Может кому пригодится - клиент-серверная система управления Thinstation 5, с веб-интерфейсом.
ОтветитьУдалитьhttp://thinstation.pro/thin/101-tsmon.html
Здравия
ОтветитьУдалитьскажите а можно ли и как положить на рабочий стол thinstation линк на запуск скрипта и сам скрипт
А Вы чего с форума соскочили то?
УдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьПри попытке собрать:
ОтветитьУдалить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 раскомментировал, все файлы есть в папках
./setup-chroot
УдалитьТоже наступил на эти грабельки =) Все дальнейшие манипуляции должны в чруте происходить. Тогда билданется без ошибок.