Мы с немалым удивлением и восхищением наблюдаем за ростом популярности ОС 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.