RU Linux

Частота процессора в Linux, tickless kernel, Powertop

Алаверды О сохранении энергии, батареях и процессорах. Модуль ядра Linux cpufreq отвечает за изменение частоты и напряжения процессоров. Не все процессоры это умеют делать, но большинство мобильных процессоров для ноутбуков а также VIA С3 и С7 определяются при загрузке ядра и cpufreq подгружается сам. После загрузки модуля в каталоге /sys/devices/system/cpu/cpu0/ появляются файлы, читая из которых можно просматривать информацию о работе модуля. В некоторые файлы можно писать, тем самым управляя частотой и другими параметрами. Например cat /sys/devices/system/cpu/cpu0/scaling_available_governors выведет доступные режимы автоматического управления частотой. У меня обычно стоит ondemand, что для моего ноута означает работу на 600MHz в обычном режиме с временным повышением частоты до 1600MHz при повышении нагрузки на процессор. Чтобы не делать echo в эти файлы в консоли есть масса разных GUI для управления процессором. Я сейчас пользуюсь KPowersave, хотя он и показывает, что у меня две батарейки вместо одной :)

Кроме частоты процессора, на его энергопотребление влияет насколько часто прерывания выводят камень из спящего режима. Это зависит от того, какие программы и драйвера оборудования запущены. Начиная с версии 2.6.21 ядро Linux уже не тикает 1000 раз в секунду. Ядро реже будит процессор -- процессор чаще отправляется в Idle-режим. Это называется tickless kernel. Поиграться с ним можно используя программу Powertop из одноименного пакета Debian. Делаем aptitude install powertop и потом запускаем powertop под рутом. Спустя 5 секунд видим потребляемую по данным ACPI мощность, статистику по нахождению процессора в различных спящих режимах, количество пробуждений в секунду и рабочих частотах а также программы, виновные в пробуждении процессора. У меня будится 120-150 раз в секунду, если ничего не делать. Вот некоторые цифры с моего ноутбука, во всех случаях гувернёр решил работать на 600MHz, подсчитано очень приблизительно:

Что делаем Wakeup-from-idle процессора в секунду Потребляемая мощность согласно ACPI, Ватт Часов батареи осталось согласно powertop Время нахождения процессора в режиме сна (С2), проценты Время нахождения процессора в режиме работы (С0), проценты
Ничего 135 16.3 1,5 99 1
Xine на паузе 415 16,5 1,4 98 2
Xine на паузе, KTorrent бешено качает и сидирует 800 17,5 1,3 70 30
Xine на паузе, KTorrent бешено качает и сидирует, AC97 и Wi-Fi в режиме энергосбережения 660 16,6 1,4 70 30
Xine показывает DVD, KTorrent бешено качает и сидирует, AC97 и Wi-Fi в режиме энергосбережения 830 19,6 1,2 55 45

Еще такие интересные цифры:

Что делаем Wakeup-from-idle процессора в секунду
Xine на паузе 415
VLC на паузе 550
Xine играет DVD 950
VLC играет DVD 450

Несмотря на разницу в цифрах, разницы в нагрузке на процессор и потребляемой мощности не видно.

Выводы. Заметной экономии от перехода на tickless kernel я не обнаружил, примерно те же 16 Ватт если ничего не делать. От того, насколько часто программа будит процессор, потребляемая мощность не зависит, зависит от того, что программа делает. Самое ценное в powertop -- советы о том, что можно сделать, чтобы уменьшить энергопотребление применительно к конкретной конфигурации. Программа выдает готовые команды с коротким описанием. Например, как перевести AC97 в энергосберегающий режим, включить энергосбережение Wi-Fi, выключить опрос cdrom с помощью HAL. Выполнение первых двух рекомендаций экономит мне примерно 1 Ватт, что уже ощутимо. Надо бы вписать в скрипты laptop-mode. Авторы powertop в будущем обещают расширить анализ возможностей отключения внепроцессорных компонентов системы.

Еще powertop показывает какие-то режимы глубокой спячки C3 и летаргического сна С4, куда мой процессор никогда не попадает. Интересно что это. Есть идеи?

Блог: RU Linux

В Краснодаре прошёл семинар по терминальным технологиям в образовании с демонстрацией Linux + LTSP

27 февраля в Краснодаре прошёл семинар по использованию терминальных технологий и тонких клиентов для организации компьютерных классов в школах. При содействии ГИНМЦ были приглашены заинтересованные учителя информатики и системные администраторы школ города. Актовый зал и компьютерный класс были предоставлены центром "Старт".

Я рассказал о терминальных технологиях и о преимуществах тонких клиентов в компьютерных классах, провёл сравнение решений для терминальных классов с использованием Windows 2003 Server + Terminal Services и Linux + LTSP. Помимо стоимости аппаратной части, надёжности и экономичности тонких клиентов, для учебных классов приятной особенностью является отсутствие установленной операционной системы на компьютерах учащихся и централизованное управление терминальными сессиями. Как правило, в компьютерных классах игрушки и вирусы, которые дети приносят на флешках, доставляют массу неприятностей. При установке программ на сервере и загрузке тонких клиентов по сети такой проблемы нет. В качестве расширенных возможностей централизованного управления тонкими клиентами, актуальных для учителей информатики, я рассказал о функциональности thin-client-manager (бывший student-control-panel) в Edubuntu 7.10.

Встроенная в Edubuntu программа управления тонкими клиентами в последней версии Edubuntu позволяет просматривать список клиентов и их IP-адресов, одновременно видеть что происходит на всех экранах в классе, просматривать список процессов на каждом клиенте, завершать и запускать процессы с компьютера учителя, подключаться к рабочему столу ученика и перехватывать действия мыши и клавиатуры для помощи не вставая с места, блокировать экран и действия на компьютерах для привлечения внимания к учителю, в окне подключать компьютеры учеников к рабочему столу учителя для демонстрации.

Далее Роман рассказал о применении наших тонких клиентов Mini-ITX, потом показал примеры расчётов стоимости новых классов для Windows 2003 Server + Terminal Services и Linux + LTSP, рассказал о терминальных лицензиях Microsoft, необходимых для создания классов на тонких клиентах с использованием Windows.

В конце мы продемонстрировали Edubuntu 7.10 и некоторые возможности thin-client-manager в старом компьютерном классе. В качестве сервера использовали принесённый ноутбук, клиентами были старые машины в классе и одна из наших бесшумных Mini-ITX коробочек. Компьютеры не умели грузиться по сети, поэтому пришлось подготовить универсальный загрузочный компакт диск: с установкой gPXE разбирался Александр Кваско, за что ему отдельное спасибо :)

Хочу поблагодарить Алексея Александровича Оробец из ГИНМЦ и Александра Васильевича из центра "Старт" за помощь в организации мероприятия. Во вложении к посту наша презентация с семинара.

Блог: RU Linux

Тонкий клиент Windows Terminal Services (RDP) на VIA Mini-ITX под управлением Linux

Первый наш тонкий клиент в Краснодаре, Рома и Саня читают маны
Mini-ITX вид сзади, Катя читает Кинга
Наш второй тонкий клиент на Mini-ITX с пингвином у меня дома

Меня часто посещает мысль, что большинство десктопов не должны быть такими большими, шумными, прожорливыми и дорогими. С открытием в Краснодаре фирмы аутсорсинга техподдержки и разработки ПО, ориентированной на свободный софт, наконец появилась возможность притворить некоторые идеи в жизнь. На днях продали первую партию своего первого продукта с Linux на борту -- тонкий клиент Windows Remote Desktop на платформе Mini-ITX. Правда размер дистрибутива Linux всего 7Мб и грузится он по сети, но все равно, первый пингвин пошёл! Вот небольшой отчёт как мы его сделали.

Аппаратная часть нашего тонкого клиента представляет собой небольшой корпус форм-фактора Mini-ITX с внешним блоком питания 60 Ватт, материнскую плату 17x17 см. c впаянным процессором VIA на частоте от 600 до 1500MHz и планку памяти DDR. Все. Остальное интегрировано в плату. В корпусе нет ни одного вентилятора, жесткого диска тоже нет, флешки нет.

На тонких клиентах по сети загружается в оперативную память специально собранный минидистрибутив Linux на основе Thinstation, который сразу ломится с помощью rdesktop на сервер терминалов Windows. Etherboot-образ дистрибутива размером 7-9 Мб вместе с файлами конфигурации лежит в корне папки RemoteInstall, которую создаёт сервер развёртывания приложений Windows, приспособленный нами для метания пингвинов в тонкие клиенты по сети с помощью PXE-загрузки. Remote Installation Service или RIS -- штатный компонент Windows Server -- представляет собой обычную для загрузки по PXE комбинацию DHCP+TFTP, но конфигурация TFTP интегрирована с ActiveDirectory. Каждый тонкий клиент добавляется как компьютер под управлением ActiveDirectory и к нему в качестве образа для удалённой установки прописывается путь к нашему pxe-загрузчику. В сервере DHCP выставляется атрибут 66 c IP-адресом сервера развёртывания приложений, с которого грузятся клиенты, и атрибут 67 с названием образа пингвина, который грузить. В нашем случае DHCP, RIS и сервер терминалов находились на одной машине под управлением Windows 2003 Server.

В целом всё работает шустро. Скорость загрузки по сети и старта Linux до появления приглашения с логином Windows не более полминуты. При завершении сеанса rdesktop переподключается заново.

Был один глюк, когда привезли собранные коробочки клиенту, настроили сервер и стали тестировать, почему-то не выставлялось разрешение экрана не смотря на настройки X-Window -- всегда ставилось 640x480. Причем в лабораторных условиях всё работало на тех же компьютерах с теми же образами и настройками. Поменялся по сути только монитор. И еще какие-то помехи по нему бежали периодически. Я уже представлял себе мучительные копания в экзотических настройках иксов, но вовремя сообразил, что виной тому может быть переключатель, через который подсоединён монитор. Так и оказалось :)

Еще по непонятной причине "залипают" левые Ctrl и Shift и не работает правая клавиша Windows. Причем правые Ctrl и Shift и левый Win работают нормально. В лабораторных условиях глюк воспроизводится, попробую поменять настройки клавиатуры в иксах.

UPDATE: После нажатия левого Alt наблюдались глюки, Ctrl и Shift не виноваты, вроде поправил, скоро протестируем и напишу подробности.
UPDATE: Работает, Barvinok спасибо!

Теперь у нас в Краснодаре можно раздобыть компьютеры Mini-ITX, собрать недорогие тонкие клиенты и получить помощь по настройке терминального сервера и загрузки по сети для Windows Server.

В ближайших планах -- R&D на тему тонких клиентов с использованием VNC вместо RDP для обеспечения терминального доступа к Windows-приложениям без необходимости платить за терминальные лицензии Windows, сравнение нагрузки на сеть при использовании RDP и различных VNC-серверов.

UPDATE: К сожалению, известные способы запуска более одной пользовательской сессии в Windows без покупки терминальной лицензии, не зависимо от технологии соединения с тонким клиентом, достаточно сомнительны с точки зрения лицензионной чистоты. На http://support.microsoft.com/kb/823313 написано: "If you want to conduct a Windows session, an incremental Terminal Server Client Access License (TS CAL) is required also. A Windows session is defined as a session where the server software hosts a graphical user interface (GUI) on a device. For Windows sessions, a TS CAL is required for each user or device." Поэтому использовать в комбинации с серверной Windows что-то, кроме RDP, кажется избыточным.

Катя держит Mini-ITXMini-ITX лежит с флешкой

Блог: RU Linux

Bash-cкрипт пакетного кодирования *.wav в *.mp3 c помощью LAME

MP3-энкодер LAME по патентным соображениям не входит в состав некоторых дистрибутивов Linux, для Debian например его можно скачать с сайта Debian Unofficial. Почему-то закодировать все файлы в каталоге командой lame *.wav не удалось и пришлось написать скриптик:

#!/bin/bash
for i in *.wav
do
  b="`basename "$i" .wav`"
  lame --preset standard "$b".wav "$b".mp3
done
Блог: RU Linux

Оформление компьютеров предприятия в частную собственность для препятствия их изъятия ОБЭП

Вступивший в силу в январе новый закон об авторском праве призывает жестоко подозревать всех в нарушении копирайта и арестовывать компьютеры на основании "достаточных данных". Сисадмины теперь должны следить не только за лицензиями, но и периодически просматривать содержимое find /mnt/share -name '*.mp3'. В новом году кодовые замки на дверях офиса станут обычным делом. Между тем, обнаружилось еще одно законное антиобэпное читерство, помимо введения коммерческой тайны. В одной Краснодарской фирме все компьютеры проданы сотрудникам и являются частной собственностью физ. лиц. По мнению руководства, это защищает машины от изъятия ОБЭПом на экспертизу лицензионной чистоты т.к. для изъятия частной собственности требуется решение суда.

Блог: RU Linux

KDE 4 назревает

Вчера вышел второй релиз кандидат KDE 4. Konqueror поседел. Сборки сразу под Debian, Kubuntu, Mandriva, openSUSE и Fedora готовы. И как они так быстро успевают?

Блог: RU Linux

Linux в вечерней школе: настройка принтера HP LaserJet 1005 и сканера BENQ 5000U в Xubuntu Linux 7.10

Сразу после рассылки письма по всем школам города о проведении Mandriva Install Party 2007 в Краснодаре при помощи городского научно-методического центра, нам позвонили из вечерней школы и попросили прийти поставить Linux, т.к. привезти компьютеры возможности нет, а очень нужно. На месте выяснилось, что в школе нелицензионный софт и всякие органы пишут письма -- закупить лицензию или перейти на Линукс. И потом, как сказал зам. директора, он слышал что там "вирусов нет" и хотел бы попробовать. В вечерней школе нет компьютерного класса и всего два слабеньких компьютера. Как мы долго ставили Xubuntu Alternate на Celeron 700 c 98Мб памяти лучше не рассказывать, в общем в итоге из оборудования трудности были только с принтером HP LaserJet 1005 LPT и сканером BENQ 5000U USB. Сегодня все настроили и я записал последовательность действий.

С принтером проблема в необходимости скачивания и установки Firmware от Windows-драйвера, который вшивается компьютером в принтер при каждой перезагрузке девайса. По соображениям лицензионности Firmware этот не входит в бесплатный Linux и его надо докачивать и устанавливать, для чего написан штатный скрипт getweb. Он к сожалению содержит ошибку, еще с версии Ubuntu 7.04 качает не с того хоста и поэтому HP LaserJet 1000/1005/1018/1020 настраиваются с бубном. Буквально неделю назад багу пофиксили и даже решили доставание этих прошивок встроить в менеджер проприетарных драйверов. В общем можно и вручную поправить адреса в скрипте getweb или обновить из репозитариев пакеты foo2zjs и hplip и дальше выполнить:

getweb 1005
(или другую модель принтера, скачается и распакуется фирмвара)
sudo arm2hpdl sihp1005.img > sihp1005.dl
(это какое-то хитрое шаманство)
sudo cp sihp1005.dl /usr/share/foo2zjs/firmware/sihp1005.dl
(копируем где он должен быть)

Для USB-принтера HP LJ 1018 этого было достаточно. А LPT-принтер надо правильно добавить. Делается это и в Ubuntu и в Xubuntu одинаково через программу настройки принтеров. В ней нужно добавить модель принтера, что для 1005 по крайней мере можно сделать двумя путями, причем самый очевидный не работает :) Если добавить драйвер HP так что строка адреса принтера будет выглядеть hp:/par/hp_LaserJet_1005_series?device=/dev/parport0 или hp:/par/hp_LaserJet_1005_series?device=/dev/lp0, то просто не печатает. Нужно на первом экране визарда выбрать просто LPT#, а потом уже HP, тогда строка адреса принтера будет типа /dev/lp0 или /dev/parport0. А как узнать какое именно устройство соответствует порту? Ну не знаю, я скомандовал sudo cat /usr/share/foo2zjs/firmware/sihp1005.dl > /dev/parport0, мне ответили что-то невнятное, потом сказал sudo cat /usr/share/foo2zjs/firmware/sihp1005.dl > /dev/lp0, мне ответили что нет прав, сказал sudo chmod 777 /dev/lp0 и повторил sudo cat /usr/share/foo2zjs/firmware/sihp1005.dl > /dev/lp0 -- принтер радостно захрюкал!

В процессе еще выяснилось что в логе CUPS пишется такое:

[11/Dec/2007:19:35:55 +0300] CUPS-Delete-Printer: Unauthorized
[11/Dec/2007:19:36:24 +0300] [cups-driverd] Unable to open PPD directory "/opt/share/ppd": No such file or directory
[11/Dec/2007:19:40:11 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:40:11 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:41:10 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:41:11 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:41:20 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:41:29 +0300] [cups-driverd] Unable to open PPD directory "/opt/share/ppd": No such file or directory
[11/Dec/2007:19:42:25 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:42:25 +0300] CUPS-Add-Modify-Printer: Unauthorized

Когда это было я не помню, кажется при настройке через драйвер HP, может потому он и не заработал.

Что же до сканера, ему тоже нужно положить куда-нибудь фирмварь от Windows-драйвера и прописать её в /etc/sane.d/snapscan.conf так:

firmware /usr/share/sane/snapscan/u96v121.bin

Причем заработало не с первого раза, а только с фирмварой 20FCV112.bin которая для этого сканера указана на http://snapscan.sourceforge.net/ и находится в драйвере конкретной версии 6.2.5000U на сайте BENQ (распаковать, найти в каталоге Bin и скопировать в /usr/share/sane/snapscan). При запуске xsane из консоли выяснилось, что в процессе сканирования вылет происходит из за невозможности калибровки:

[snapscan] calibrate: reading calibration data (2 lines)
[snapscan] usb_read Only 0 bytes read
[snapscan] read_calibration_data: snapscan_cmd command failed: Error during device I/O
[snapscan] calibrate: read_calibration_data command failed: Error during device I/O
[snapscan] sane_snapscan_start: calibration failed.

Нашел соответствующую багу, где люди пишут что в ранних (1.0.17) версиях sane это работало, а теперь поломалось. Чтобы даунгрейдиться надо снести всю систему печати, которую я только что настроил, по причине зависимости кучи пакетов печати от libsane (с чего бы?). Под Debian люди собирают libsane 1.0.17 из сорсов. Решение простое -- в опциях сканирования выбрать черно-белый вариант. При отсутствии цвета калибровка не происходит и все сканится. Сканер в школе используется вместо ксерокса, так что этого оказалось достаточно.

Ну что, сложно? Я лично считаю, что ни одна нормальная информатичка, зам. директора или тем более секретарша не в состоянии завести такой принтер в последней Ubuntu Linux. Так что проекту Linux в школах работы хватит, хотя сомневаюсь что у них руки дойдут до допиливания визардов настройки периферии. При отсутствии более-менее опытного линуксоида, внедрение Linux в школе обречено на провал, о чем мы недавно говорили с учителем информатики эксперементальной школы N25 г. Краснодара, где, как выяснилось, вся школа уже год как переведена под Ubuntu Linux. Но об этом попозже.

Из нерешенных проблем в этой школе осталась программа ведения базы учеников, сохраняющая все в mdb-файл MS Access и звонящая прямо по модему в гороно (замечу, в школе есть интернет, еще и модем стоит для конекта с гороно!) и отправляющая файл. Эта программа вроде бы во всех школах города стоит, так что мы с ней не раз встретимся еще. Все контакты авторов я записал. Будем спрашивать с них кроссплатформную версию.

P.S. В школе есть Интернет и мы его настроили на обоих компьютерах под Linux при помощи Антона из NCLUG (он знает на память адреса DNS-серверов городских провайдеров :). Настраивая принтер сегодня, я прямо из школы в блог скидывал что в консоли набирал, чтобы потом не забыть, и случайно опубликовал кусок с командами и логами. Прошу прощения что все его заагрегировали :) GiNeR тут же, заметив сообщение об ошибке в команде:

sudo arm2hpdl sihp1005.img > /usr/share/foo2zjs/firmware/sihp1005.dl
bash: /usr/share/foo2zjs/firmware/sihp1005.dl: Permission denied

предложил вариант без копирования, перенаправлением ввода-вывода под sudo :)

Блог: RU Linux
RSS-материал