Мы с немалым удивлением и восхищением наблюдаем за ростом популярности ОС Linux. Еще пять лет назад ни один аналитик не предполагал, что она будет теснить своих конкурентов не только как серверная операционная система, но и как пользовательская. Системные требования Linux к аппаратному обеспечению невысоки, поэтому его можно установить на все, что подвернется под руку, например на ноутбук. Тем более что существует вторичный рынок компьютерной техники и стать обладателем ноутбука сейчас можно без оглядки на его стоимость. Но установить OC Linux на портативный компьютер сложнее, так как в нем почти все устройства интегрированы и довольно специфичны. Поэтому, закончив установку и настройку ASPLinux на своем ноутбуке IBM ThinkPad 600, я подумал, почему бы не упростить жизнь и другим.

Подготовка

Из множества разновидностей OC Linux, представленных на нашем рынке, я выбрал ASPLinux. Преимуществом этого продукта является качественная русификация системы и документация. Да и наличие большого количества программ для пакета Red Hat также стало дополнительным стимулом для установки именно ASPLinux.

Все описываемые ниже действия были проверены для версий 7.2 («Байкал») и 7.3 («Восток»). Собственно процесс установки ОС достаточно хорошо описан в документации к дистрибутиву, поэтому считаем, что непосредственно установка ASPLinux произведена и требуется только настройка отдельных компонентов — звука, видео и т. п.

Первое включение после установки

Если в ноутбуке установлено более 64 Mбайт оперативной памяти, то необходимо об этом сообщить ядру при загрузке. Для этого при каждом включении или перезагрузке, после появления приглашения boot: следует ввести строку:

boot: linux-V.V.V append ?mem=xxK?

Здесь linux-V.V.V — название загружаемого ядра (соответствует значению label в /etc/lilo.conf), а xxK — количество оперативной памяти, установленной в ноутбуке, которое рассчитывается по формуле:

xK=1024*n-576,

где n — количество памяти в мегабайтах.

У нас имеется 224 Mбайт. Соответственно значение xK равно 1024 . 224-576=228 800, и строка для приглашения будет выглядеть следующим образом:

boot: linux-2.4.9 append ?mem=228800K?

Для того чтобы не делать этого каждый раз, необходимо изменить конфигурационный файл /etc/lilo.conf. В данном случае была добавлена строка:

append = ?mem=228800K?

После внесенных изменений в конфигурационном файле нужно выполнить команду lilo, иначе эти изменения не вступят в силу.

Настройка параметров ноутбука

Далее речь пойдет о настройках, характерных только для ноутбуков компании IBM. Каждый производитель компьютерной техники стремится расширить спектр настроек своего оборудования, чтобы конечный пользователь мог изменять не только стандартные параметры, такие как яркость и контрастность монитора, но и более специфичные настройки — режимы работы IR-порта, жесткого диска и т. п. Для того чтобы воспользоваться этими возможностями, в OC Linux необходимо установить пакеты с драйверами и утилитами. Список поддерживаемых моделей ноутбуков можно найти внутри рассматриваемых пакетов. Сначала придется загрузить пакеты из Интернета по адресу http://sourceforge.net/projects/tpctl/. Понадобятся следующие пакеты: thinkpad_<3.7>.tar.gz (драйверы для работы с содержимым КМОП) и tpctl_<3.7>.tar.gz (утилита, которая обеспечивает доступ и изменение памяти КМОП).

Для установки необходимо перейти в каталог с сохраненными пакетами, скопировать их в папку /usr/src и распаковать, выполнив последовательность команд:

# /bin/cp ./thinkpad_<3.7>.tar.gz /usr/src
# /bin/cp ./tpctl_<3.7>.tar.gz /usr/src
# cd /usr/src
# /bin/tar xvfz ./thinkpad_<3.7>.tar.gz
# /bin/tar xvfz ./tpctl_<3.7>.tar.gz

Следующим шагом будет установка драйверов:

# cd thinkpad-<3.7>
# /usr/bin/make all
# /usr/bin/make install

После того как драйверы скомпилированы и установлены в каталог /lib/modules/<2.4.9-13>/thinkpad, нужно создать новое устройство в системе /dev/ thinkpad с помощью следующей команды:

# /bin/mknod —mode=644 /dev/thinkpad c 10 170

Для установки утилиты tpctl выполняется такая последовательность команд:

# cd /usr/src/tpctl-<3.7>
# /usr/bin/make all
# /usr/bin/make install

Результатом выполненных действий станут скомпилированные программы tpctl и ntpctl, которые можно будет найти в папке /usr/bin. В папке /usr/lib будет находиться скомпилированная библиотека — libsmapidev.so.1.

После этого необходимо добавить в файл /etc/modules.conf следующие строки:

keep
path[thinkpad]=/lib/modules/`uname -r`/thinkpad
options thinkpad enable_smapi=1 enable_superio=1
enable_rtcmosram=1 enable_thinkpadpm=1
alias char-major-10-170 thinkpad
alias /dev/thinkpad thinkpad
alias /dev/thinkpad/thinkpad thinkpad
alias /dev/thinkpad/smapi smapi
alias /dev/thinkpad/superio superio
alias /dev/thinkpad/rtcmosram rtcmosram
alias /dev/thinkpad/thinkpadpm thinkpadpm

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

# /sbin/depmod -a

Этой командой подгружаются драйверы для работы с памятью КМОП ноутбука. Проверить правильность выполненных действий и, как следствие, корректность загрузки драйвера можно одной из утилит — tpctl или ntpctl:

# /usr/bin/tpctl —all

или

# /usr/bin/ntpctl

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

# /sbin/lsmod

Должны появиться следующие строки (или им подобные):

smapi	 	2756	0 (autoclean)
thinkpad	2852	1 (autoclean) [smapi]

Указанные утилиты дают возможность настраивать параметры ноутбука (параметры экрана, порты и т. п.).

На момент написания статьи последняя версия была 4.1 для ядра версии 2.4.19 и выше.

Настройка звука

Для настройки драйверов звукового устройства в операционной системе можно воспользоваться пакетом sndconfig. Если он отсутствует, то необходимо его установить с помощью графической утилиты менеджера пакетов (GnoRPM или Kpackage) или из командной строки, выполнив команду в окне эмулятора терминала:

# /bin/rpm -Uhv ./sndconfig-
<0.65.2-1>.i386.rpm

Для настройки звуковой платы следует запустить программу-конфигуратор звукового устройства:

# /sbin/sndconfig

Первым появится окно приветствия. Поскольку в данном ноутбуке интегрирована звуковая плата ISA, то после нажатия кнопки ОК программа начнет безрезультатно искать устройства PNP и PCI. Не найдя их, предложит выбрать тип звуковой карты из имеющегося списка. Теперь следует выбрать «Crystal CS423x sound chip», а затем установить его параметры. Приведу примеры параметров, которые устанавливаются по умолчанию.

Port io = 530
IRQ	= 5
DMA1	= 1
DMA2	= 0
MPU io	= 330
MPU irq	= 9

После этих установок и нажатия кнопки OК программа попробует загрузить драйвер выбранного устройства с указанными параметрами. Если они заданы правильно, будет предложено прослушать звуковое приветствие и ответить на вопрос: «Слышали ли вы его?» Затем то же будет предложено для MIDI-фрагмента. После этого в файл /etc/modules.conf будут добавлены строки:

alias sound-slot-0 cs4232
post-install sound-slot-0
 /bin/aumix-minimal -f /etc/.aumixrc 
-L >/dev/null 2>&1 || :
pre-remove sound-slot-0
 /bin/aumix-minimal -f /etc/.aumixrc -S 
>/dev/null 2>&1 || :
options sound dmabuf=1
alias synth0 opl3
options opl3 io=0х388
options cs4232 io=0х530 irq=5
 dma=1 dma2=0 mpuio=0x330 mpuirq=9,

а в файл /etc/sysconfig/soundcard — строка:

CARDTYPE=CS4232

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

# !/bin/bash
# chkconfig: 345 84 16
# description: Starts/stops the CS4232
 driver at boot time and shutdown
HOME=/etc
case "$1" in
start)
echo "Starting CS4232 driver"
rmmod cs4232
modprobe cs4232
;;
stop)
echo "Stopping CS4232 driver"
rmmod cs4232
;;
restart)
$0 stop
$0 start
;;
status)
echo "Status (NO-OP)"
;;
*)
echo "Usage: cs4232 {start|stop|
status|restart}"
exit 1
esac
exit 0

Скрипт нужно поместить в каталог /etc/rc.d/init.d, а затем запустить графическую утилиту «редактора скриптов SysV» (ksysv) или ее консольный вариант ntsysv:

# /usr/sbin/ntsysv -levels 5

После запуска утилиты появится единственная колонка, соответствующая заданному уровню загрузки — пятому. Необходимо пометить скрипт cs4232, чтобы он выполнялся при загрузке операционной системы.

При запуске графической утилиты ksysv вы увидите окно с семью уровнями запуска: от 0 до 6. Чтобы поместить скрипт cs4232 в исполняемые при запуске, нужно перетянуть его и колонки «Доступные сервисы» в колонку «Уровень запуска 5». Порядковый номер запуска следует установить равным 84 (согласно рекомендации разработчиков).

Настройка модема

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

Сотрудники фирмы IBM не бросили свое детище (ноутбук) на произвол судьбы и написали драйвер для DSP-модема, благодаря чему мы имеем Linmodem.

Загрузить пакет с драйвером можно с сайта IBM по адресу http://www-124.ibm.com/acpmodem/ (в разделе «Download the ACP Modem driver» необходимо выбрать пункт «Current source code»). Затем его следует распаковать и сконфигурировать. Желательно в первый раз оставить все конфигурационные файлы без изменений и выполнить следующие команды:

# tar zxvf mwavem-<1.0.3>.i386.tar.gz
# cd mwavem-<1.0.3>
# ./configure -enable-mwavedd

Во время выполнения команды может возникнуть ошибка с сообщением «Не найден каталог /usr/src/linux», которая устраняется созданием символической ссылки на существующее ядро:

# /bin/ln -s /usr/src/linux-<2.4.9-13>
 /usr/src/linux

А затем необходимо скомпилировать и установить драйвер:

# make
# make install

После этого кроме файлов различных программ и утилит в системе будет создано устройство /dev/ modems/mwave и драйвер

/lib/modules/<2.4.9-13>custom/kernel/drivers/char/ mwave/mwave.o

Далее нужно скопировать папку с драйвером mwave.o в /lib/modules/<2.4.9-13>/kernel/drivers/char, а папку /lib/modules/<2.4.9-13>custom/ со всем ее содержимым удалить.

Затем следует выполнить команду, которая перенастроит файл описания драйверов /lib/modules/<2.4.9-13>/modules.dep:

# cd /lib/modules/<2.4.9-13>
# /sbin/depmod

Перейдем к созданию устройства /dev/modems/ mwave и редактированию конфигурационного файла /usr/local/etc/mwavem.conf.

В разделе [WORLDTRADE] необходимо установить значение переменной Country равным 7, что соответствует России (переменной для Украины в этом списке нет).

Country=7

Теперь загрузим драйвер mwave:

# /sbin/modprobe mwave

Проверим его:

# /sbin/lsmod

Если выводится строка:

mwave	30656	4,

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

Если же вышеуказанная строка не вывелась на консоль, то вероятнее всего возникла ошибка, связанная с неверно установленными значениями irq и io. Методом проб и ошибок для данной модели ноутбука было выявлено, что устройством, которое «мешает» загрузке драйвера mwave, является pcmcia-контроллер. Проверить это можно, запустив утилиту редактор скриптов (ntsysv или ksysv) и удалив из 5-го уровня загрузки скрипт поддержки pcmcia-контроллера, который так и называется — PCMCIA.

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

# /sbin/modprobe mwave

Скорее всего, после этого драйвер загрузится. Проверить это можно с помощью команды lsmod. Если же произошло невероятное и выдается сообщение об ошибке, то не стоит отчаиваться. Необходимо проанализировать содержание файлов /proc/ioports, /proc/dma, /proc/interrupts и определить, какое устройство все-таки «мешает» работать mwave. Измените значения параметров загрузки драйвера (используйте свободные значения io, dma, irq) и попробуйте еще раз.

Итак, драйвер загружается, и можно считать, что полдела сделано. Теперь предстоит добавить скрипт, который будет загружать модуль mwave при каждом старте OC Linux. Для этого следует скопировать /mwavem-1.0.3/src/mwavem/mwaved в папку /etc/ rc.d init.d. Далее запустим утилиту ntsysv (ksysv) и добавим в требуемый уровень загрузки скрипт mwaved с порядковым номером 30 (согласно рекомендациям авторов).

Чтобы драйверы pcmcia и mwaved заработали совместно, в файле /etc/pcmcia/config.opts нужно убрать символ комментария («#») перед строкой:

exclude irq 3

Эта строка указывает скрипту, который устанавливает драйвер pcmcia, что третье прерывание (irq 3) не надо использовать, так как оно зарезервировано для другого устройства.

Теперь следует запустить утилиту ntsysv (ksysv) и вернуть скрипт pcmcia на прежнее место (номер 45). После перезагрузки ноутбука можно проверить, как ведут себя драйверы устройств при одновременной загрузке. Подтверждением успешной загрузки скриптов будет OK в строке каждого устройства и pcmcia, и mwave.

После успешной загрузки драйверов может возникнуть проблема с сетевой картой 3com 589, если она пожелает занять десятое прерывание (irq 10). Проверить, активен ли сетевой интерфейс, можно командой, которая показывает состояние всех сетевых интерфейсов:

# /sbin/ifconfig -a

Если сетевая карта конфликтует с mwave-модемом, проверьте, какие прерывания заняты, а какие свободны. Это можно увидеть по содержимому файла /proc/interrupts

# /bin/cat /proc/interrupts

Но вернемся к редактированию файла /etc/pcmcia/ config.opts. Если параллельный порт не используется, а в файле /etc/pcmcia/config.opts присутствует строка

exclude irq 7,

значит, седьмое прерывание (irq 7) зарезервировано и его можно использовать для другого устройства. Достаточно закомментировать эту строку, добавив в начало строки символ «#». Для того чтобы драйвер сетевой карты не пытался занять десятое прерывание (irq 10), добавьте в файл следующую строку:

exclude irq 10

После этих действий конфликт прерываний должен быть устранен.

Теперь вернемся к настройке модема и создадим «мягкую» ссылку на устройство /dev/ttyS1

# /bin/ln -s /dev/ttyS1 /dev/modem

Для проверки работоспособности модема воспользуемся программой minicom. Ее необходимо выполнить c параметром -s, который позволит настроить программу сразу после ее запуска.

# /usr/bin/minicom -s

В появившемся окне Configuration следует выбрать строку Serial port setup. Возникнет окно, отображающее текущие настройки. Они должны быть следующего содержания:

A - Serial Device         : /dev/modem
....
E - Bps/Par/Bits          : 38400 8N1
F - Hardware Flow Control : Yes
G - Software Flow Control : No

После нажатия клавиши Enter и выбора строки Exit происходит инициализация модема. Если она прошла успешно, то можно позвонить какому-нибудь провайдеру командой:

ATDP 1111111,

где ATDP — команда набора номера в пульсовом режиме, а 1111111 — номер телефона.

В случае успешного соединения через некоторое время вы должны увидеть строку:

CONNECT ..

Это означает, что модем работает и соединение установлено.

Однако может случиться так, что модем начнет «общаться», но через три-четыре секунды «зависнет», издавая пронзительный писк. При этом через динамики ноутбука звук не слышен. Реанимировать его можно только перезагрузкой всей OC. Если у вас сложилась описанная ситуация, то необходимо исправить раздел [STARTUP] конфигурационного файла /usr/local/etc/mwavem. conf. Строка скорости должна выглядеть так:

SPEED=33600

После этих изменений все должно успешно заработать.

Настройка видео

Перейдем к настройке графического экрана. За нее отвечает один из двух файлов — /etc/X11/XF86Config или /etc/X11/XF86Config-4. Первый — за настройки Х-сервера версии 3, а второй — версии 4. В выбранном дистрибутиве ASPLinux по умолчанию используется X-сервер версии 4. Для настройки графического режима рекомендуется воспользоваться утилитой Xconfigurator, запустив ее из текстовой консоли, чтобы иметь возможность загрузить Х-сервер и протестировать его в заданном режиме. Так как, согласно исходным данным, мы работаем в графическом режиме, то для успешной работы программы из него необходимо выйти. Для этого надо выбрать пункт «Выйти» в выпадающем меню, появившемся после нажатия кнопки <К>. Когда появится приглашение для входа в систему, следует нажать сочетание клавиш + + для перехода в консольный режим.

Успешно пройдя авторизацию в качестве пользователя root, можно запускать конфигурационную утилиту Xconfigurator:

# /usr/X11R6/bin/Xconfigurator

Первым появится приветствие. Следующее окно содержит сведения об обнаруженном видеоустройстве, X-сервере и драйвере. Затем предлагается определиться с монитором. Следует выбрать строку IBM 9513 T55A TFT. Допустимые диапазоны частот вертикальной и горизонтальной разверток выбранного типа составляют 30—61 кГц и 56—75 Гц, что полностью соответствует рабочим характеристикам ЖК-матрицы данного ноутбука. После этого откроется окно, предлагающее провести тестирование и определить оптимальное разрешение и глубину цвета для ноутбука. Когда вы нажмете кнопку «Проверить», экран начнет мигать и переключаться в различные режимы. В результате этого тестирования программа предложит использовать разрешение экрана 1024х768 с количеством цветов 16 бит на пиксел. Принять это предложение можно, нажав кнопку «Использовать настройки по умолчанию». Затем появится предупреждение о том, что утилита запустит Х-сервер для проверки созданной конфигурации. Откроется графический экран. Потребуется подтверждение того, что изображение функционирует нормально (кнопка ОК). Программа закроет этот экран и, вернувшись в консольный режим, предложит автоматически запускать Х-сессию при каждой загрузке. Для загрузки операционной системы в графическом режиме придется согласиться, иначе в следующий раз ноутбук загрузится в режиме 3 (текстовом). После этого все сделанные настройки сохранятся и программа закончит свою работу.

Последний штрих

В заключение хотелось бы обратить ваше внимание на утилиту, которая позволяет полнофункционально использовать TrackPoint (заменитель мыши, расположенный посреди клавиатуры и используемый для управления курсором). Ее можно взять по адресу http://www-hft.ee.tu-berlin.de/~strauman/tp4utils/. Но в данной статье мы не будем описывать процесс ее установки и настройки потому, что она работает не со всеми моделями ноутбуков IBM, где имеется это устройство.

Вячеслав Логачев, e-mail: linux@vlan.virtualave.net


Условные обозначения:

$ — приглашение командного процессора для пользователя.

# — приглашение командного процессора для администратора.

<3.2> — версия пакета. На момент выхода статьи может быть большей. При вводе команд скобки необходимо пропускать.

Конфигурация:

IBM ThinkPad 600(E)

Модель: IBM ThinkPad 600(E) (Type 2645-41U)

Процессор: Pentium II-233 (512 Kбайт)

Оперативная память: 224 Mбайт RAM

Жесткий диск: 3,2 Гбайт

Экран: 13,3 XGA TFT (1024х768)

CD-ROM: 24X

Модем: 56K встроенный (ACP)

Сетевой адаптер: 3Com 10Base-T PCMCIA card (3C589D-TP)

Исходные данные:
  • Загрузчик операционной системы - LiLo.
  • При установке выбран режим "графический", что соответствует 5-му.
  • Оконный менеджер - КDE.
  • Все действия выполняются от имени администратора "root".

Если при установке был выбран пакет sendmail, то во время загрузки операционной системы (при инициализации скрипта) процесс приостанавливается и создается впечатление, что все «зависло». На самом деле выполняется скрипт, но в файле настройки sendmail.cf по умолчанию время ожидания ответа от сервера DNS установлено в 300 с, вследствие чего и происходит приостановка загрузки системы на 5 мин. Такое поведение наблюдается, когда не настроен DNS. Существует несколько способов устранения столь длительного ожидания:

  • удалить из списка выполняемых скриптов sendmail (если он не используется);
  • отредактировать файл sendmail.cf;
  • настроить DNS.

После успешной загрузки операционной системы Linux следующим шагом будет создание нового пользователя. Зайдите в систему под именем root и запустите графическую утилиту redhat-config-users (kuser) или addusers для текстового режима. Не забудьте установить пароль для этого пользователя. Выйдите из системы и снова зайдите — уже под новым именем. Данная процедура настоятельно рекомендуется для всех пользователей, как для новичков, так и для гуру, по той причине, что суперпользователь root с его правами может совершить необратимую ошибку, которая приведет к краху всей системы. Для того чтобы иметь возможность запускать программы от имени пользователя, необходимо открыть текстовую консоль и сменить пользователя для данной консоли на root командой su.

$ su root -

Введите пароль администратора (root?а). Появится приглашение командного процессора: #

Если в тексте статьи встречается команда, начинающаяся с этого знака, то она должна выполняться пользователем root.