Журнал LinuxFormat - перейти на главную

LXF123:Ответы

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Ответы

Есть вопрос по Open Source? Пишите нам по адресу answers@linuxformat.ru

1 Интернет без интернета

В Пытался попасть в Интернет с помощью телефонного соединения из Ubuntu 9.04. После поиска на форумах я попробовал установить Gnome-PPP и wvdial, но пакетный менеджер захотел дополнительно скачать еще 6 файлов из репозитория Ubuntu. То есть получается порочный круг: пакеты нужны для настройки Интернета, а без Интернета — не получить пакетов! Я скачал пакеты вручную с другого компьютера, но где их разместить в Ubuntu так, чтобы их нашел пакетный менеджер?

Генри Монкур [Henry Moncur]

О Здесь два пути решения, и один из них Вы прошли почти до конца. Вместо того, чтобы скачивать файлы вручную, отметьте нужные для установки пакеты в Synaptic и затем выберите пункт Создать сценарий закачки пакетов в меню Файл [File > Generate Package Download Script]. Создастся скрипт, который можно запустить на другом компьютере с Linux. Сохраните его на флэшке – например, как gnome-ppp.sh; подключите флэшку к другому компьютеру, перейдите командой cd в каталог на флэшке, запустите скрипт

sh gnome-ppp.sh

и все необходимые Вам файлы будут загружены на флэшку. Подключив ее снова к своему компьютеру, выберите в окне менеджера Synaptic в меню Файл пункт Добавить закачанные пакеты [File>Add Downloaded Packages] и укажите путь до каталога на флэшке, содержащего закачанные файлы. Synaptic заберет их все.

Для компьютера без интернет-соединения это единственная возможность, но телефонное соединение можно наладить с базового установочного диска Ubuntu, поскольку в его состав включен стандартный PPP, работающий из консоли – Gnome-PPP служит для него графической оболочкой.

Запускаем терминал и вводим:

sudo pppconfig

Появится программа конфигурации, с помощью которой можно настроить интернет-соединение. Для навигации по опциям используйте клавиши со стрелками, для выбора – пробел, а для передвижения к кнопкам OK и Отмена [Cancel] – клавишу табуляции. Также не забудьте отметить опцию создания конфигурационных файлов на последнем экране настроек. Как только программа создаст профиль с именем Вашего провайдера, можно подключаться и отключаться от Интернета с помощью команд pon и poff – например, так:

sudo pon myisp

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

2 Будем игнорировать

В Нет ли способа отключить автомонтирование конкретного внешнего диска USB в Ubuntu 9.04? Монтировать остальные USB-приводы я хотел бы как обычно.

Sjhawk, вопрос с форума

О Раньше подобные задачи решались с помощью написания правил udev с заданием конкретного имени устройства, а затем менеджеру томов или программе автоматического монтирования передавалась установка игнорировать его. Теперь же достаточно один раз велеть HAL не обращать внимания на устройство. Это означает, что udev создаст файл устройства, но HAL никак не будет обрабатывать эту информацию. Преимущество данного метода в том, что он работает на всех системах, независимо от используемого менеджера томов. Но если, по-Вашему, писать правила для udev – это головная боль, значит, Вы никогда еще не редактировали файлы политики HAL. Они хранятся в /etc/hal/fdi/policy, и можно изменить существующий файл preferences.fdi или создать отдельный файл для этой задачи с нуля.

Простейший способ отличить нужный Вам привод ото всех остальных – это воспользоваться его UUID (универсальным уникальным идентификатором, Universally Unique Identifier). Если в своем Ubuntu Вы когда-нибудь просматривали файл /etc/fstab, Вам уже знакомы эти идентификаторы. Для начала найдем параметры HAL для Вашего привода – подключайте его и смотрите, какое имя он получит, выполнив в терминале команду mount и взглянув на последнюю строчку. При единственном внутреннем накопителе это скорее всего будет /dev/sdb1. Теперь вводим

hal-find-by-property ----key block.device ----string /dev/sdb1

что покажет список всех идентификаторов HAL для устройств, содержащих key block.device со значением /dev/sdb1. В действительности оно должно быть одно, например, /org/freedesktop/Hal/devices/volume_uuid_623C_6219_0. Теперь предложим это значение утилите lshal, которая покажет все HAL-свойства нужного устройства. Нас интересует volume.uuid, поэтому запустим

lshal ----show /org/freedesktop/Hal/devices/volume_uuid_623C_6219_0 | grep volume.uuid

и поместим полученное значение в файл FDI в /etc/hal/fdi/policy:

 <?xml version=”1.0” encoding=”UTF-8”?>
 <deviceinfo version=”0.2”>
 <device>
 <match key=”volume.uuid”string=”623C_6219”>
 <merge key=”volume.ignore” type=”bool”>true</merge>
 </match>
 </device>
 </deviceinfo>

При редактировании уже существующего preferences.fdi' просто используйте фрагмент от <device> до </device> и поместите его перед </deviceinfo>. Это дает проверку volume.uuid относительно заданной строки. В положительном случае для volume.ignore добавляется (сливается) новый ключ, со значением true. Человеческим языком это можно выразить так: если UUID имеет значение, которые Вы хотели бы пропустить, то этот том нужно проигнорировать и ничего из него не передавать менеджеру томов. Чтобы HAL подхватил новую настройку, его нужно перезапустить. Сделать это можно из Настройки служб [Service Manager], но поскольку у нас уже есть открытый терминал, то просто введем:

sudo /etc/init.d/hal restart

Есть надежда, что когда HAL будет повсеместно заменен на DeviceKit, процесс в целом станет гораздо проще. НБ

3 Rip, rip, rip

В Для резервного копирования множества DVD на моем домашнем сервере я использую DVD::Rip. Для каждого диска операция длится примерно 2 часа 20 минут, но меня не устраивает сам процесс настройки. Можно ли запускать операцию автоматически с помощью скрипта?

Bobthebob123, вопрос с форумов

О Есть обходный путь для решения этой проблемы с помощью того же DVD::Rip. Сначала пройдите весь процесс с первым DVD до того момента, когда будете готовы нажать пункт меню Transcode. Далее выбираем Показать команды Transcode [Show Transcode Commands] из меню Отладка [Debug], делаем щелчок правой кнопкой мыши и выбираем Выделить все [Select All], затем копируем и вставляем в любимом текстовом редакторе. Нужные нам две команды – rip и transcode. Каждая из них должна быть одной строкой, так что если в редакторе они заняли по несколько – подправьте. Третьей командой добавляем eject, сохраняем файл в виде, скажем, ripdvd.sh и запускаем его:

sh ripdvd.sh

Возможно, потребуется правка относительно каждого DVD. Но в любом случае это быстрее, чем рыться в графическом интерфейсе.

Но, возможно, Вам больше подойдет программа AcidRip. Опции ее аналогичны параметрам DVD::Rip, а для перекодирования используется Mencoder. Главное, что здесь имеется возможность создать очередь перекодирования и экспортировать ее в сценарий оболочки. Если места на диске у Вас достаточно, эффективнее будет переносить каждый нужный трек в обычном DVD-формате (MPEG2) и затем с помощью AcidRip массово переконвертировать все эти файлы. Отдельные треки с DVD проще всего копировать в MPlayer; команда

mplayer dvd://1 -dumpstream -dumpfile firsttrack.mpg

перенесет первый трек с DVD в файл. Повторите операцию для всех нужных треков, затем поочередно выберите каждый трек в AcidRip, настройте параметры – обычно после первого DVD этого не требуется – и нажмите кнопку Очередь [Queue]. После добавления можно либо нажать кнопку Пуск [Start] и оставить компьютер работать на ночь, либо же нажать кнопку Экспорт [Export], чтобы записать команды в скрипт ~/acidrip.sh. Запустите его для обработки файлов. ГМ

4 Документация OOo

В У меня проблемы с краткосрочной памятью, и мне хотелось бы распечатать для себя некоторые инструкции для OpenOffice.org — например, как заменять заголовки строк и столбцов метками. Есть ли простой способ собрать воедино страницы только с той информацией, которая мне нужна?

Артур Грин [Arthur Green]

О Доступ к документации OpenOffice.org можно получить через меню Справка [Help]. Хотя существуют способы получить документацию и в других форматах – их мы сейчас опишем – для Вас это может стать хорошим выбором. Там есть встроенный поиск, который нельзя воспроизвести в печатной документации, и можно распечатать отдельные страницы. Более значимой для Вас может оказаться возможность сделать закладку на конкретных страницах или разделах, и таким образом получить список страниц, к которым Вам нужно обращаться. Вкладка Закладки [Bookmarks] вполне может стать Вашим личным оглавлением.

Также на официальном сайте OpenOffice.org, http://documentation.openoffice.org, доступна документация в других форматах, хотя и не настолько полная, как встроенная справка. Можно найти PDF’ы и wiki-страницы, описывающие различные компоненты семейства OpenOffice.org, а также несколько FAQ и руководств, хотя свежайший PDF по Calc представляет собой неполное руководство по OpenOffice.org 2.0.

Наиболее гибкой альтернативой будет собрать Ваше собственное руководство в формате PDF на основе инструмента Collections, описанного в wiki по адресу http://wiki.services.openoffice.org/wiki/Help:Collections. Зайдите на http://wiki.services.openoffice.org/wiki/Documentation и поищите нужные документы. При прочтении страницы обратите внимание на пункт меню слева – Создать книгу [Create A Book]. Щелкните на Добавить страницу в книгу [Add Wiki Page], чтобы добавить текущую страницу к Вашей выборке. После добавления хотя бы одной страницы появляется ссылка Показать книгу [Show Collection], ведущая на страницу, где можно рассортировать то, что Вы выбрали: переставить страницы местами, собрать их в главы и скачать собранную вами книгу в формате PDF или Open Document. Кроме того, файл формата Open Document можно перед отправкой на печать отредактировать в OOWriter. НБ

5 Мини-сервер почты

В Пытаюсь настроить удаленный хост для отсылки файлов журналов через Mail, Mailx или Mutt на базе Cron, скажем, раз в неделю или в месяц. Настроить Cron не проблема, но мне нужна помощь с почтой.

В настоящее время у меня установлен Exim4 в Ubuntu 9.04, и требуется помощь с настройкой пересылки почты через моего провайдера. Любой совет будет очень кстати, поскольку найденные мной источники с документацией противоречат друг другу. Все, что мне нужно — это отправлять почту из скрипта или из консоли.

Munkyn, вопрос с форума

О Если Вам достаточно передачи почты через почтовый сервер вашего провайдера, то нет нужды использовать полнофункциональный агент передачи сообщений (MTA). Существует пара минимальных ретрансляторов, созданных именно для этого. Они не занимаются локальной доставкой или приемом почты с других серверов – они только передают почту на нужный почтовый сервер, например, почтовый сервер Вашего провайдера.

У каждого из этих «посредников» есть свои преимущества и недостатки. Первым в списке идет SSMTP, разработка которого сейчас, похоже, приостановлена. Вдобавок он не очень хорошо отрабатывает ошибки: в случае сбоя программа способна сообщить об успешной отправке. С другой стороны, поддерживаются шифрованные соединения SSL/TLS, что может оказаться важным, если Вы работаете через беспроводное соединение с ноутбука и не хотите, чтобы кто-то пронюхал Ваши почтовые реквизиты. Агент Nullmailer выполняет аналогичные задания, активно разрабатывается и выдает более точную информацию о результатах попытки отправки почты, но не поддерживает шифрованные соединения. Каждая из программ предоставляет замену для Sendmail, а Nullmailer работает еще и как почтовый демон. Обе доступны в репозиториях Jaunty и ставятся из Synaptic.

Чтобы работать с SSMTP, просто отредактируйте файл /etc/ssmtp/ssmtp.conf. Нам нужны всего две настройки: для Mailhub укажите адрес почтового сервера вашего провайдера, а для Root – адрес, на который будет приходить почта для пользователя root (почта, настроенная, например, в задачах Cron). Если сервер провайдера вместо 25‑го порта использует какой-то другой, внесите это в настройки Mailhub, например:

mailhub=mail.myisp.net:465
root=me@myisp.net

Nullmailer использует несколько файлов в /etc/nullmailer, по одной настройке в каждом, а именно:

  • Adminaddr Адрес, на который приходит почта для root
  • Defaultdomain Домен, добавляемый к адресам, состоящим только из хоста
  • Me Полное имя хоста компьютера, на котором запущенNullmailer
  • Remotes Один или несколько серверов, используемых для отправки почты

Формат файла remotes таков:

address protocol options

Значением address может быть домен или IP-адрес, protocol – это почти всегда SMTP, а options нужны для указания порта, отличного от используемого по умолчанию или авторизации пользователя. Пример правильных настроек:

mail. example.com smtp
mail.example.com smtp ----port 465
mail.example.com smtp ----user=michael ----pass=peekaboo

В Nullmailer нужно также настроить запуск службы при загрузке. Теперь осталось сделать выбор между Mailx или Mutt – а о доставке почты пусть заботится Ваш провайдер. НБ

6 Grep — выборка по дате

В Я настроил задачу для Cron, которая запускает Bash-скрипт для проверки состояния одного сервера — место на диске, загрузка и так далее — а затем отсылает результаты мне. Для поиска в журнальных файлах в скрипте используется grep, а для вывода строчек, содержащих определенную информацию — cat.

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

Дэвид [David]

О Чтобы извлечь данные из начала каждой строки и преобразовать их во временную отметку UNIX, которую можно сравнить с точкой отсчета, воспользуйтесь awk. Обработка требует времени, и для экономии ресурсов запускайте ее после того, как отработает grep:

 #!/bin/sh
 DAYS=7
 FROM=$(($(date +%s) - 86400 * $DAYS))
 grep нужная_информация /var/log/messages | while read LINE; do
 DATE=$(date -d “$(echo $LINE | awk{print $1, $2, $3})” +%s)
 if [[ $DATE -gt $FROM ]]; then делайте_что_вам_нужно_с $LINE
 fi
 done

Здесь мы устанавливаем срез даты на основе значения, установленного для DAYS (86400 секунд – это один день). Затем читается каждая строка в выводе grep и используется awk, чтобы забрать первые три значения, разделенные пробелами. Стандартный формат строки syslog выглядит так:

Jun 26 12:30:37 zaphod dhcpcd[4037]: eth0:renewing lease of 192.168.1.1

поэтому awk вернет Jun 26 12:30:37. Echo | awk заключены в $(...), которое выполняет содержащуюся в них команду и вместо него будет подставлен вывод этой команды. Со строкой из примера эта команда будет выглядеть так:

DATE=$(date -d “Jun 26 12:30:37” +%s)

В результате %s команда date выводит дату в формате Unix, то есть количество секунд, прошедших с 1 января 1970 года, а внешний $(...) означает, что это значение передается переменной DATE, которая здесь равна 1246015837. Теперь мы просто сравниваем это со значением FROM, чтобы увидеть, не является ли этот фрагмент журнала более свежим, и обрабатываем его при положительном результате.

Вместо $(...) для подстановки можно использовать обратные кавычки, но мы используем $(...) по двум причинам. Во-первых, это лучше читается. Во-вторых, $(...) можно вложить, а обратные кавычки – нет.

Несколько более читаемым (за счет некоторого снижения скорости выполнения) код можно сделать, разделив все команды таким образом:

 DATESTR=$(echo $LINE | awk{print $1, $2, $3})
 DATENUM=$(date -d$DATESTR” +%s)
 if [[ $DATENUM -gt $FROM ]]; then

Применяйте наиболее подходящий вам вариант. ПХ

7 Карта SD и EeePC

В На моем Asus Eee PC 900 вполне успешно работает Mandriva 2008.1. Для дополнительного дискового пространства я приобрел SD-карту на 16 ГБ. Это сработало, но карта не опознается ни в другой ОС на Eee, ни в Mandriva 2009.1, установленной на настольном ПК. Чтобы получить доступ к карте, мне приходится снова устанавливать Mandriva 2008.1. Не можете ли сказать, отчего так происходит и можно ли как-то решить эту проблему?

Малькольм Бейкер [Malcolm Baker]

О Корни проблемы лежат в том, что Ваша карта на самом деле является картой SDHC, а не SD. Внешне эти форматы очень похожи, но в них применяются различные стандарты. SDHC – это карты большего объема, и могут вмещать до 32 ГБ, а возможный накопительный объем стандартных карт SD ограничен 4 ГБ.

К сожалению, не все устройства SD умеют работать с SDHC, и, в частности, это касается многих кард-ридеров. То есть в том, что на Вашей настольной машине карта не читается, нужно винить кард-ридер. Возможно, он слишком старый, чтобы распознать новый формат.

Что касается чтения карты на Eee PC 900 с установленной другой ОС, то Вы уже определили, что карта работает. На нашем Eee PC900 тоже постоянно смонтирована карта на 16 ГБ, что исключает несовместимость ПО. Это означает, что вопрос, возможно, упирается в наличие поддержки SDHC в ядре выбранного Вами дистрибутива. Вы не упомянули, какие именно дистрибутивы Вы пробовали установить на свой Eee PC, но большинство из них должны распознавать карты SDHC, особенно те, что специально предназначены для нетбуков. Тем не менее, мы обнаружили, что на некоторых дистрибутивах распознавание карты SDHC может занять до нескольких секунд. Может быть, Вам следует только чуть потерпеть, и Вы обнаружите, что система в итоге сделает то, что Вам нужно. НБ

8 Дрессируем Puppy

В На моем ноутбуке HP Pavilion laptop установлены беспроводная карта Broadcom 802.11b/g WLAN и проводная Realtek RTL8139/810X FamilyFast Ethernet NIC. Мне очень нравится Puppy Linux, но при запуске мастера соединений я добавляю модуль, который, по словам системы, устанавливается правильно, а затем при попытке поднять соединение мне предлагается использовать новый. Что мне с этим делать?

Роберт Виндзор [Robert Windsor]

О Карты Realtek используют один из двух модулей: 8139too или 8139cp, а карты Broadcom обычно используют модуль b43. Чтобы узнать, который из них работает в данный момент, есть пара тестов. Все эти команды необходимо запустить в терминале от имени root, поэтому сначала введите su и пароль для root. Затем:

modprobe -l | grep 8139
modprobe -l | grep b43
lsmod | grep 8139
lsmod | grep b43

modprobe -l выведет список всех модулей, доступных в системе, а lsmod – список модулей, загруженных в данный момент. Оба списка фильтруются с помощью grep. В идеале, b43 должен присутствовать в обоих этих списках. Если же он есть в системе, но не загружен, введите:

modprobe -v b43

а затем ifconfig -a чтобы увидеть все сетевые интерфейсы. Если там будет wlan0, то продолжайте настройку сети. Если в Вашем распоряжении нет модуля b43 или он не работает с Вашей беспроводной картой, воспользуйтесь NdisWrapPer. Он входит в стандартную установку Puppy, но его нужно настроить. Найдите INF-файл на CD, прилагающемся к Вашему компьютеру или к Вашей беспроводной карте, и введите:

ndiswrapper -i /path/to/driver.inf
ndiswrapper -l

Первая команда добавляет драйвер, вторая – выводит список всех загруженных драйверов, и там должен присутствовать только что добавленный драйвер. Теперь объясните системе, что модуль b43 использовать не нужно. Для этого добавляем опцию “blacklist b43” в файл /etc/modprobe.conf командой

echo “blacklist b43” >>/etc/modprobe.conf

Точно так же добавьте строку alias wlan0 ndiswrapPer. Теперь Ваша карта называется wlan0, а изменения, которые мы внесли в /etc/modprobe.conf, гарантируют, что и после перезагрузки она получит то же имя. НБ

9 Если нужна Windows

В Я — радиолюбитель и использую несколько программ, доступных только в Windows. Тем не менее, я хотел бы работать с ними и в Linux, в предпочитаемой мной Ubuntu. Я знаю о существовании Wine, но никак не могу найти его.

Мой вопрос очень простой: откуда можно скачать Wine?

Лесли Бисон [Leslie Beeson]

О Домашняя страница проекта Wine находится по адресу http://www.winehq.com, но искать в первую очередь нужно не там. Как и многие другие дистрибутивы Linux, Ubuntu располагает обширными репозиториями с пакетами программ, специально собранных именно для этой операционной системы и готовыми для установки «одним щелчком». Запустите менеджер пакетов Synaptic из меню Система > Администрирование [System > Administration] и нажмите кнопку Обновить [Reload], чтобы получить самый свежий список доступных пакетов. Затем введите wine в строке поиска и просмотрите список предлагаемых вариантов. Отметьте галочку слева от главного пакета Wine, выберите Отметить для установки [Mark] и нажмите кнопку Применить [Apply] для инсталляции. Это не только самый простой способ установки программ: при наличии обновлений система уведомит Вас об этом автоматически.

После установки Wine Вы увидите новый пункт в меню Приложения, хотя единственной записью в нем будет Notepad. Теперь, если Вы дважды щелкнете по EXE-файлу скачанной Windows-программы, запустится Wine и в свою очередь откроет ее. Если это установщик – как это обычно бывает со скачанными программами для Windows – программа появится в каталоге, который в Wine является диском C:, то есть в директорию. wine/drive_c Вашего домашнего каталога. Сразу после установки программа появится в меню Приложения > Wine > Программы [Applications > Wine > Programs].

Wine воспроизводит программный интерфейс Windows, и приложениям кажется, что они работают в Windows. Эта техника несовершенна, и не каждая программа будет работать отлично, но с каждым релизом Wine поддержка программ улучшается.

Программы в репозиториях Ubuntu – это свежие стабильные версии, тщательно протестированные именно в этом релизе дистрибутива. На сайте проекта, возможно, будет доступна более свежая или бета- версия. Если Ваша программа не работает с поставляемой версией Wine, то на странице по адресу http://www.winehq.org/download/deb есть инструкции, которые нужно выполнить, чтобы добавить репозиторий Wine в список источников программ в Ubuntu.

Вы не привели точного названия программы, которую используете в своей радиолюбительский деятельности, но в Linux существует несколько программ из этой области. При прочих равных, «родная» программа предпочтительней, чем приложение, работающее в режиме совместимости. Стоило бы задать несколько вопросов на каких-нибудь популярных сайтах, форумах и списках рассылки радиолюбителей, чтобы узнать рекомендации других пользователей Linux.

Стать пользователем Linux проще, если начать с двойной загрузки. Установите выбранный дистрибутив рядом с Windows вместо того, чтобы переходить бесповоротно – и переход получится более плавным. Большинство дистрибутивов предоставляют такую возможность. При каждой загрузке можно выбирать, какую из ОС запустить после включения компьютера. Как вариант, если Вам нужна одна или пара программ Windows, и они не работают с Wine, рассмотрите возможность установки VirtualBox и запускайте Windows для работы с этими программами в виртуальной машине. МС

10 До 16 и больше

В Подскажите, пожалуйста, как в Linux можно осуществить показ видеокартинки на 16 мониторов (например, для демонстрации рекламы или трансляции мероприятий), и возможно ли такое вообще?

Рашид Матякубов

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

Если же изображение дробится на множество мониторов и каждый из них показывает свою часть картинки («видеостенка»), Вам поможет расширение Xinerama, позволяющее работать на двух и более физических дисплеях как на одном. Подразумевая, что все видеокарты установлены и мониторы подключены, запускаем в консоли sudo lspci, что даст нам информацию о расположении карт на системной шине. Интересующий нас фрагмент вывода будет примерно таким:

0000:01:00.0 VGA compatible controller: ATI Tech...
0000:01:00.1 Display controller: ATI Technol...
0000:02:00.0 VGA compatible controller: nVidia...
0000:02:01.0 VGA compatible controller: nVidia...
0000:02:02.0 VGA compatible controller: nVidia...

Здесь видны две карты ATI, и три – NVidia. Цифры – это адрес на шине, и его следует указать в xorg.conf в разделе Device для каждой карты. Например:

Section “Device”
 Identifier “nVidia 1”
 Driver “nvidia”
 BusID “PCI:2:0:0”
EndSection

Затем нужно составить разделы Monitor для каждого из подключенных мониторов, по типу:

Section “Monitor”
  Identifier “monitor1”
  VendorName “Plug'n Play”
  HorizSync 24-80
  VertRefresh 56-75
EndSection

Частоты вертикальной и горизонтальной развертки и другие параметры будут различаться в зависимости от используемых Вами устройств. Далее, необходимо создать разделы Screen, связывающие мониторы с видеокартами, задающие разрешение, глубину цвета и т. п.:

Section “Screen”
  Identifier “screen1”
  Device “nVidia 1”
  Monitor “monitor1”
  DefaultColorDepth 24
EndSection

Теперь, имея для каждого из дисплеев по секции Screen, нужно увязать их все вместе с помощью ServerLayout – раздела, описывающего все мониторы и их взаимное расположение и конкретное используемое устройство ввода. Вот так:

Section “ServerLayout”
 Identifier “layout1”
 InputDevice “Keyboard1” “CoreKeyboard”
 InputDevice “Mouse1” “CorePointer”
 Screen “screen1”
 Screen “screen2” RightOf “screen1”
EndSection

Здесь сообщается, что экран screen2 находится справа от screen1. Наконец, можно внести изменения в раздел ServerFlags, задействовав Xinerama и указав, какую раскладку ServerLayout надо использовать по умолчанию.

Section “ServerFlags”
  Option “Xinerama” “true”
  Option “DefaultServerLayout” “layout1”
EndSection

ЮД

11 Плоский мир

В На моем компьютере с видеокартой GeForce FX5500 инсталлированы Windows XP и Ubuntu 8.10. После установки драйверов в Ubuntu экран монитора гаснет; переключение на первый виртуальный терминал и обратно решает проблему, но нет поддержки 3D. Чтобы она появилось, надо перезагрузиться в Windows XP, а потом снова в Ubuntu. Из-за этого я вынужден держать на диске вторую систему, в которой даже не работаю. Проблема проявляется и в других дистрибутивах. В чем может быть дело (файлы журналов X прилагаю)?

promo

О Как видно из представленных вами журналов, в случае, когда проблема наличествует, драйвер NVIDIA не может инициализировать GART. Это можно понять по строкам

(II) NVIDIA(0): Initialized AGP GART.
(EE) NVIDIA(0): Error recovery failed.

GART – специализированный блок управления памятью, отвечающий за загрузку текстур, вершин и тому подобных вещей в память видеокарты. Без него адаптер Nvidia переключается из AGP в стандартный PCI-режим, и ни о каком 3D-ускорении речи уже не идет. По-видимому, Windows удается инициализировать GART на Вашей плате правильно, а Linux-драйвер agpgart (являющийся частью стандартного ядра) с этим не справляется.

Чтобы исправить ситуацию, можно вынудить драйвер Nvidia использовать встроенную поддержку AGP, для чего в соответствующую секцию Device в файле xorg.conf надо добавить строку:

Option “NvAGP” “1”

Теперь все должно быть в порядке. ВС

12 Что поставить на Eee PC?

В У моей мамы есть Eee PC 900 с Windows XP. Она сыта по горло приключениями с Wi-Fi, и я уговорил ее попробовать Linux. Она уже хочет взглянуть на него, но еще не готова установить. Ее навыки ограничиваются базовыми операциями с файлами и работой в MS Office, поэтому она вряд ли сумеет настроить дистрибутив.

Мне нужен Live-USB дистрибутив, который заработает «из коробки», включая Wi-Fi, Skype и ее web-камеру. Я бы хотел остановиться на сборке Ubuntu, а не на Mandriva или Eeedora. Дистрибутив может быть реализован как в виде Live-образа, так и просто установлен на флэшку, чтобы я смог внести необходимые изменения перед тем, как мама попробует его в работе.

Heiowge, вопрос с форума

О Если Вы хотите выбрать дистрибутив именно на базе Ubuntu, то у Вас есть пара вариантов. Один – использовать стандартный Ubuntu (или Xubuntu) и перенастроить его для использования на нетбуке, а второй – Ubuntu Netbook Remix (UNR). Последний представляет собой образ для флэшки, хотя загрузочный USB-образ можно создать и из стандартного Live CD Ubuntu.

Рассматривали ли Вы возможность инсталляции на карту SD? В этом случае у Вас будет постоянная установка – хотя и немного более медленная, чем работающая с жесткого диска или SSD – которая не затронет существующих систем. Для этого сначала скачайте образ UNR с любого из зеркал Ubuntu (файл называется ubuntu-9.04‑netbookremix-i386.img). Минимальный объем требуемого USB-диска – 1 ГБ, но затем Вы сможете скопировать образ на привод такой консольной командой:

dd if=ubuntu-9.04‑netbook-remix-i386.img of=/dev/sdX

где /dev/sdX – это Ваша флэшка (или /dev/sdb – если у Вас в наличии только жесткий диск и нет подключенных USB-накопителей). В момент запуска команды устройство USB не должно быть смонтировано. После этого запустите Eee PC с флэшки и нажмите Esc в момент загрузки BIOS, чтобы попасть в меню выбора загрузочного устройства. Карта SD объемом как минимум в 4 ГБ должна находиться в разъеме кард-ридера. Запустите установщик, и когда дойдете до момента подготовки разделов на диске, выберите кард-ридер как диск, на который нужно будет выполнить установку. На Eee PC 900 это будет /dev/sdd, поскольку два внутренних диска будут числиться как sda и sdb, а USB-флэшка, с которой Вы загрузились – как sdc. Обязательно укажите правильное устройство, а также опцию Использовать Диск целиком [Use The Entire Disk].

Когда доберетесь до момента готовности к установке, нажмите кнопку Дополнительно [Advanced] и проверьте, что загрузчик будет установлен на карту SD. Таким образом, загрузчик Windows останется нетронутым, а выбирать ОС можно будет нажатием Esc при старте нетбука.

Хотя карты SD работают медленнее, чем внутренние диски SSD, тем не менее это гораздо быстрее, чем работать со сжатой файловой системы образа Live CD с флэшки. Дополнительное преимущество – возможность сохранять файлы и настройки и даже устанавливать и обновлять программы. Ваша мама получит опыт, гораздо более близкий к опыту работы в обычной установленной системе. ГМ

Коротко про... At

Cron прекрасно справляется с запуском команд в указанное время или через определенные промежутки времени, но что если вам нужно выполнить команду только один раз и в определенное время? Можно прибегнуть к sleep и подождать, пока это время настанет:

sleep 1h; somecommand

но это «заморозит» терминал, а при перезагрузке все потеряется. Демон at предоставляет нам вариант получше. Он работает как Cron: просыпается каждую минуту и проверяет, нет ли заданий, которые необходимо выполнить, но каждое такое задание – единично. Команда at настраивает задачу, считывая необходимую к выполнению команду из стандартного ввода. Так,

echo “какая-то_команда -- с-ключами” | at 15:00

запустит команду в три часа дня. Если это время сегодня уже прошло, команда будет запущена завтра. Также можно указать интервалы в часах, минутах и днях и даже прибавить их к вашему основному времени:

echo “другая_команда -- тоже-ключи” | at 5am + 2 days

Специальная величина now означает, что вы можете использовать отсрочку вместо указания конкретного времени, поэтому наш пример со sleep можно запустить и таким образом:

echo “какая-то_команда” | at now + 1 hour

Можно ввести эту команду, закрыть терминал и даже перезагрузиться, а команда все еще будет работать.

Чтобы просмотреть планируемое расписание, запустите atq. Если вы передумаете, то atrm удалит задание из расписания. За более подробным описанием параметров указания времени обращайтесь к man-странице at.

Чтобы запустить сразу несколько команд, поместите их в файл, одну команду в одной строке, и «скормите» его команде at:

at midnight <мои_команды.txt

Часто задаваемые вопросы Fuse

Это ведь не связано с защитой компьютера от сбоев питания? [fuse по-англ. в т. ч. бытовой электропредохранитель, «пробка», – прим. ред.]

Не связано. Fuse расшифровывается как Filesystem in USErspace [файловая система в пространстве пользователя]. Это модуль ядра, позволяющий файловым системам запускаться в пространстве пользователя вместо пространства ядра.

Ага, понял. Ну и в чем тут фишка?

Традиционные файловые системы, типа ext3, XFS или ISO9660, входящие в ядро Linux – они либо встроены в ядро, либо устанавливаются в виде модулей, включаемых в ядро при загрузке. Это нормально для файловых систем, но означает, что либо их код должен быть включен в основное дерево исходных текстов ядра, либо его нужно компилировать специально для вашего ядра. Обновите ядро, и все ваши внешние модули не будут работать, пока вы их не восстановите, как известно многим владельцам видеокарт NVidia.

Почему Fuse от них отличается?

Fuse cам представляет собой модуль ядра и является частью официального ядра Linux с версии 2.6.14. Он обеспечивает мостик между пространством пользователя, где запускается файловая система Fuse, и самим ядром, что позволяет использовать файловые системы, не являющиеся частью ядра.

Умно, конечно, ну, а мне какая с этого польза?

Да в общем небольшая, если только вы не решите закодировать собственную файловую систему. Но это не значит, что другие не захотят такого сделать, и существует много файловых систем, которых без Fuse могло бы и не быть.

Есть уже и Ext2/3, и ReiserFS, и XFS — зачем нам еще куча файловых систем?

Если вы так ставите вопрос, то незачем. Но Fuse очень часто применяется для создания виртуальных файловых систем.

А это что еще за чудище?

Виртуальные файловые системы не существуют на диске, но предоставляют информацию с помощью файлов-интерфейсов, например, /proc. Fuse реализует множество из них: SSHFS позволяет монтировать каталоги на удаленном компьютере, используя только SSH; EncFS дает зашифрованную файловую систему, и отдельные каталоги могут быть зашифрованы и смонтированы через EncFS для доступа. NTFS-3G обеспечивает полное чтение/запись NTFS-разделов Windows, так что это одна из немногих файловых систем Fuse, являющаяся файловой системой в традиционном смысле этого слова.

Больше он ничего не умеет делать?

Существуют файловые системы для монтирования различных онлайн-сервисов, как если бы они были локальными каталогами. Можно подмонтировать системы онлайн-хранения или репозиторий фотографий, вроде Flickr. Если ваш цифровой фотоаппарат не монтируется как USB-накопитель, и вам необходим Gphoto2 для извлечения снимков, вы тоже можете использовать файловую систему Fuse.

Где я могу узнать больше?

Домашняя страница Fusehttp://fuse.sourceforge.net, а список поддерживаемых файловых систем – на http://fuse.sourceforge.net/wiki/index.php/FileSystems

Персональные инструменты
купить
подписаться
Яндекс.Метрика