Linux mini-HOWTO

         

Алгоритм действий


ПРИМЕЧАНИЕ:

Номера в круглых скобках - это размеры разделов и дисков (в мегабайтах) на моем 1.2Гб винчестере.

Итак, приступим к описанию алгоритма действий:

Запустите программу view.exe с компакт-диска Linux Slakware и создайте загрузочную (BOOT) и основную (ROOT) дискеты Linux. Не путайтесь -- по каким-то причинам программа начальной загрузки Linux называет основную (ROOT) дискету "RAMDISK floppy". Далее по тексту эта дискета будет называться "основной".

Сделайте резервные копии всей вашей информации.

Загрузите MS-DOS с загрузочной дискеты

Когда появится ``Starting MSDOS'', нажмите F5 для отмены загрузки config.sys и autoexec.bat.

Запустите a:\fdisk.exe.

Удалите ВСЕ существующие разделы (помните, что УДАЛЕНИЕ / ИЗМЕНЕНИЕ ЛЮБОГО РАЗДЕЛА ПРИВЕДЕТ К ПОТЕРЕ ДАННЫХ НА РАЗДЕЛЕ!).

Добавьте основной раздел MSDOS. (11Мб)

Отформатируйте (Format) этот раздел.

Запустите a:\setup.exe для инсталляции MSDOS на этот раздел.

Загрузите программу установки OS/2.

Выберите "Advanced" установку.

Запустите FDISK. (этот пункт должен появиться перед вами, когда вы начнете устанавливать OS/2)

Добавьте 1 раздел после раздела MSDOS. Это будет раздел под Windows 95. (349Мб)

Добавьте следующим разделом Boot Manager. (2Мб)

Добавьте расширенный раздел.

Создайте логический диск на расширенном разделе. Это диск для общих данных MSDOS и Windows. (511Мб)



Добавьте еще один логический диск на расширенный раздел. Это будет раздел под OS/2 с файловой системой HPFS - - Высоко Производительной Файловой Системой (``High Performance File System''). (127Мб)

Добавьте последний логический диск в расширенный раздел, размером во все оставшееся свободное место. В последствии этот диск будет разделен на 2 диска под Linux - на основной раздел и раздел для файла подкачки Linux. Но, так как OS/2 (как и DOS) может создавать только 6 разделов на одном винчестере (3 основных раздела и 3 логических диска на расширенном разделе), мы создадим сейчас один раздел. И мы ДОЛЖНЫ создать этот раздел СЕЙЧАС, не оставлять тут свободное место, ожидая, что Linux в последствии создаст тут 2 логических диска. Из-за особого способа работы программы FDISK для OS/2 там, где заканчивается последний (созданный этой программой) логический диск, программа поставит маркер конца расширенного раздела. И потом мы уже НЕ сможем использовать оставшееся свободное место для создания дисков после этой отметки. Иными словами, мы создаем этот диск только для того, чтобы зарезервировать место. Позже мы удалим этот диск и, под Linux, создадим на его месте два новых диска.


Добавим разделы 1, 2, и 5 в Boot Manager.



Отметим раздел 5 как "инсталлируемый" для OS/2. Сейчас экран FDISK должен показывать примерно следующее:


FDISK

Диск 1 ___________________________________________________________________________

Информация о разделах Название Статус Доступ Тип ФС Мегабайт ___________________________________________________________________________

MSDOS Загружаемый C: Основной FAT 11 WIN 95 Загружаемый : Основной FAT 350 Стартовый : Основной BOOT MANAGER 2 Нет D: Логический Неформатирован 511 OS/2 Инсталлируемый E: Логический Неформатирован 127 Нет F: Логический Неформатирован 219




Продолжаем процесс инсталляции OS/2.



Перезагружаемся и выбираем в меню Boot Manager для загрузки раздел 2 (Windows 95).



Когда появится сообщение об ошибке из-за "отсутствия операционной системы", загрузитесь с инсталляционной дискеты MSDOS. Мы выбрали этот раздел для того, чтобы ``спрятать'' раздел MSDOS. Boot Manager для OS/2 работает немного необычно. Из всех загружаемых разделов ВИДЕТЬ можно только один (в нашем случае, либо MSDOS либо OS/2). То есть, при загрузке одного раздела, например, MSDOS, другой раздел (Win95) будет невидим. Эти разделы, как бы делят имя диска между собой. Поэтому в вышеуказанной таблице, в графе ``ДОСТУП'' у раздела MSDOS стоит имя диска C, а у раздела Win95 нет никакого обозначения. Итак, сейчас ситуация такова, что в системе есть раздел MSDOS, как диск C, а раздел Win95 невидим. Если мы при загрузке выберем Win95, то ситуация совершенно противоположная: диск C - это раздел с Win95, а раздел MSDOS невидим. К невидимому диску нет НИКАКОГО ДОСТУПА. И если вы захотите скопировать файл с одного диска на другой, то придется использовать общий (не основной, а логический) диск для обмена. В нашем случае, диск DOS/Win95 (диск D размером 511Мб) будет таким общим диском. Возможно, вы спросите: "Но ведь нам надо будет еще и Linux загружать?". Вопрос справедлив, но мы вернемся к нему несколько позже.



Установите MSDOS на раздел 2 (это необходимо для дальнейшей установки туда Windows 95).





Загрузитесь со второго раздела.



Установите Windows 95 на этот раздел (если вы используете версию Win95, которая устанавливается только на существующий продукт старой версии, то приготовьте инсталляционную дискету ©1 с Win3.1).



Загрузитесь с первого раздела.



Отформатируйте раздел 4.



Восстановите ваши данные (если вы их сохраняли до этого) в разделах 1 и 4.



Загрузитесь с загрузочной дискеты Linux.



Продолжите загрузку с основной дискеты Linux.



Когда вы войдете в систему как root и увидите маркер приглашения к работе #, наберите ``fdisk'', и нажмите enter.



Удалите последний раздел (тот, что мы создавали в пункте 18).



Добавьте 1 раздел размером в 16Мб, и отметьте его, как раздел подкачки Linux. (17Мб)



Добавьте последний раздел на все оставшееся свободное место и обозначьте его как основной раздел Linux. (198Мб)



Запишите изменения в загрузочный сектор и перезагрузитесь.



Когда вы снова увидите приглашение к работе #, запустите setup.



Установите Linux на последний раздел



Во время установки LILO убедитесь, что вы устанавливаете его на последний раздел (НЕ на Основную Загрузочную Запись (MBR), ибо этим вы уничтожите всю проделанную ранее работу!) В меню загрузки LILO добавьте только последний раздел, а таймер установите на ноль. Тогда, при выборе Linux в меню Boot Manager для OS/2, LILO начнет работу и далее загрузит Linux с его основного диска на расширенном разделе. А так как Linux - единственный раздел, который будет грузиться под LILO - таймер нам не нужен (кроме, конечно, случая, если у вас не будет еще ядер для запуска. В таком случае таймер нужно поставить на ненулевое число секунд)



Активизируйте раздел подкачки Linux (обратитесь к "Инструкции по установке Linux" или руководству "Начинаем работу", автор Matt Welsh).



Загрузите OS/2.



Запустите FDISK.



Добавьте Linux в стартовое меню Boot Manager (ОСНОВНОЙ раздел Linux) (наберите 83 а не 82!).



Теперь экран FDISK должен показывать примерно следующее:


FDISK

Диск 1 ___________________________________________________________________________

Информация о разделах Название Статус Доступ Тип ФС Мегабайт ___________________________________________________________________________

MSDOS Загружаемый C: Основной FAT 11 WIN 95 Загружаемый : Основной FAT 350 Стартовый : Основной BOOT MANAGER 2 Нет D: Логический FAT 511 OS/2 Загружаемый E: Логический HPFS 127 Нет : Логический Тип 82 17 Linux Загружаемый : Логический Тип 83 198



...Вот и все!

Присылайте любые комментарии/предложения/замечания и сообщения о проблемах (в крайнем случае) мне на адрес r3mdh@raex.com.

Mike Harlan, 11 Ноября 1997


The Linux ``Linux-DOS-Win95-OS2'' mini-HOWTO


Mike Harlan
r3mdh@raex.com


Перевод: Станислав Рогин, ASPLinux

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



Благодарности и юридическая информация


Спасибо членам команды *BSD user group in Denmark за ответы на вопросы по FreeBSD, Mr. Takeshi Okazaki за то, что обратил мое внимание на U2FS, и Mr. David O'Brien за ценные предложения.



FreeBSD: "slices" и "partitions".


FreeBSD необходим свой раздел на Вашем жестком диске. В FreeBSD этот первичный раздел называется "slice". На первичном разделе с помощью программы disklabel, можно создать до восьми подразделов . В FreeBSD эти логические разделы называют ``partitions'' . Эта концепция подобна Linux (и DOS) с разбивкой расширенного раздела на логические. FreeBSD нельзя устанавливать в расширенный раздел, сделанный Linux (или DOS). Обратите внимание, что Linux-программа fdisk не показывает "partition"-разделы из основного меню, но она может это делать при помощи команды "b". Это выглядит примерно так (/dev/hda4 - это "slice"-раздел FreeBSD):



Юридическая информация


Все торговые знаки являются собственностью их владельцев.

Хотя, как мне кажется, информация в данном документе абсолютно правильна, автор не берет на себя ответственности за ошибки, возникшие в результате использования данного mini-HOWTO. Используйте его на свой собственный страх и риск.

Copyright 97-2000 by Niels Kristian Bech Jensen. This document may be distributed only subject to the terms and conditions set forth in the LDP License at http://www.linuxdoc.org/COPYRIGHT.html.



Мини-HOWTO: "Linux+FreeBSD"


Niels Kristian Bech Jensen
nkbj@image.dk


Перевод: Станислав Рогин, ASPLinux

Этот документ содержит информацию о том, как использовать Linux и FreeBSD на одной машине. Здесь обсуждается, как эти две системы могут разделять некоторые ресурсы, например, область подкачки. Я предполагаю, что Вы имеете некоторые навыки в работе с Linux или FreeBSD, а так же то, что Вы разбили на разделы свой жесткий диск (программой fdisk), прежде чем приступить к чтению данного документа. Советы, данные ниже, были проверены на FreeBSD 2.2.2, но, наверняка, все они будут справедливы и для более новых версий. Не стесняйтесь писать мне, если у Вас есть вопросы, комментарии или предложения относительно данного документа. Я также хотел бы получить письма от людей, которые используют Linux вместе с NetBSD или OpenBSD.



Настройка области подкачки FreeBSD для использования в Linux


Запустите dmesg, когда загрузитесь в Linux. Вы должны увидеть следующее:

Partition check: hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >

Это значит, что /dev/hda4 - это "slice"-раздел FreeBSD, а /dev/hda5, /dev/hda6, /dev/hda7 и /dev/hda8 - "partitions"-разделы FreeBSD. Если у Вас разделом подкачки является второй "partition"-раздел на "slice"-разделе, то это будет /dev/hda6.

В Linux вы должны добавить строку в файл /etc/fstab, чтобы разрешить использование раздела подкачки:

/dev/hda6 none swap sw 0 0

FreeBSD сразу может использовать этот раздел подкачки, Linux же нуждается в специальном указании на него. Оно может быть сделано mkswap. mkswap необходимо запускать каждый раз при перезагрузке Linux, однако, при желании Вы можете автоматизировать эту процедуру. Для этого Вам надо найти файл, который запускает swapon при загрузке. В Red Hat Linux это /etc/rc.d/rc.sysinit. Добавьте в этот файл до строки swapon -a

следующую строку:

awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab

Это обеспечит запуск, при загрузке системы, команды mkswap для всех разделов подкачки, заданных в файле /etc/fstab.

После перезагрузки запустите free для проверки размера раздела подкачки. Затем загрузитесь в FreeBSD, чтобы быть уверенным, что все работает. Если Вы не получили желаемого результата, то, скорее всего, Вы использовали не тот раздел. В этом случае, попробуйте переустановить FreeBSD. Повторение - мать учения ;-)



Подключение файловой системы ext2fs под FreeBSD


Чтобы подключить файловую систему ext2fs в FreeBSD, вы должны собрать новое ядро с поддержкой ext2fs. Прочитайте the FreeBSD handbook, чтобы узнать, как это делается. Вставьте строку

options "EXT2FS"

Затем, когда Вы загрузитесь с только что собранным ядром, подключите файловую систему ext2fs командой: mount -t ext2fs /dev/wd0s3 /mnt

Если Вы используете FreeBSD версии 2.2.8 и ранее, то отключайте все файловые системы ext2fs до перезагрузки FreeBSD. Если Вы перезагрузите FreeBSD с подключенной файловой системой ext2fs, FreeBSD не сможет синхронизировать файловые системы UFS. В результате этого, при последующей загрузке автоматически запустится fsck. Вы можете работать, не обращая внимания на эту ошибку системы, если будете всегда отключать ext2fs-разделы. Для автоматического отключения всех файловых систем ext2fs, можно вставить строку:

umount -a -t ext2fs

в файл /etc/rc.shutdown. Данная ошибка была исправлена в ядре FreeBSD версий 3.x.



Подключение файловой системы UFS под Linux


К сожалению, драйвер UFS не поддерживается ядром Linux 2.0.хх. Если Вы попробуете подключить файловую систему FreeBSD, то получите сообщение об ошибке (фактически файловая система подключается, но Вы ничего не можете с ней делать). Эта проблема решена в более поздних версиях ядра (2.1.87 и выше).

На metalab.unc.edu есть другой драйвер UFS для ядра Linux 2.0.xx (xx U2FS. В настоящее время это файл u2fs-0.4.3.tar.gz. Версию U2FS (ufs-0.4.4.tar.gz) для Linux 2.0.31 и выше (2.0.xx; не 2.1.xx) можно найти на этом сайте. Там же есть дополнительная информация по U2FS (и UFS).

Теперь вы можете заново собрать ядро с поддержкой файловой системы U2FS. См. главу установка и настройка Linux для получения большей информации об этом. Также Вы можете убрать поддержку файловой системы UFS из ядра, т.к. теперь будете использовать U2FS.

Когда Вы установите новое ядро, подключите файловую систему UFS (все "partition"-разделы, кроме раздела подкачки) командой вида:



Раздел Linux. Сравнение Linux и FreeBSD.


Названия жестких дисков в Linux и FreeBSD:

Linux FreeBSD Первичный IDE винчестер /dev/hda /dev/wd0 Вторичный IDE винчестер /dev/hdb /dev/wd1 Первичный SCSI винчестер /dev/sda /dev/sd0 Вторичный SCSI винчестер /dev/sdb /dev/sd1

Названия разделов (в FreeBSD "slices"-разделов) на IDE-винчестере (например, /dev/hda):

Linux FreeBSD Первый первичный раздел /dev/hda1 /dev/wd0s1 Второй первичный раздел /dev/hda2 /dev/wd0s2 Третий первичный раздел /dev/hda3 /dev/wd0s3 Четвертый первичный раздел /dev/hda4 /dev/wd0s4

Названия разделов "partitions" в моей системе FreeBSD. Эти наименования вы получите по умолчанию. Вы можете изменить их, если выберете выборочную установку FreeBSD (/dev/hda4 - это FreeBSD "slice" раздел):

Linux наимен. FreeBSD наимен. FreeBSD точка монтирования /dev/hda5 /dev/wd0s4a / /dev/hda6 /dev/wd0s4b swap /dev/hda7 /dev/wd0s4e /var /dev/hda8 /dev/wd0s4f /usr

Если Вы запустите dmesg в Linux, то вы увидите примерно следующее (Ядро linux должно быть собранно с поддержкой файловой системы UFS. См. главу Установка и настройка Linux):

hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >

Если система FreeBSD у Вас установлена в раздел /dev/sd1s3 (/dev/sdb3 в Linux), а /dev/sdb2 - это расширенный раздел Linux, содержащий два логических раздела (/dev/sdb5 и /dev/sdb6), то предыдущий пример будет выглядеть так:

Linux наимен. FreeBSD наимен. FreeBSD точка монтирования /dev/sdb7 /dev/sd1s3a / /dev/sdb8 /dev/sd1s3b swap /dev/sdb9 /dev/sd1s3e /var /dev/sdb10 /dev/sd1s3f /usr

Это будет показано dmesg как:

Partition check: sdb: sdb1 sdb2 < sdb5 sdb6 > sdb3 < sdb7 sdb8 sdb9 sdb10 >

Если расширенный раздел Linux находится после "slice"-раздела FreeBSD, то у Вас могут возникнуть некоторые проблемы, т.к. обычно Linux инсталлируется без поддержки UFS. В этом случае, он не будет распознавать разделение внутри "slice"-раздела FreeBSD. Данная ситуация может выглядеть следующим образом (/dev/hda3 "slice"-раздел FreeBSD, а /dev/hda4 - это расширенный раздел Linux) с поддержкой UFS:

Partition check: hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 > hda4 < hda9 hda10 >

без нее:

Partition check: hda: hda1 hda2 hda3 hda4 < hda5 hda6 >

Из-за этого Вы можете получить неправильные названия устройств и даже потерять некоторую информацию. Мой совет: всегда располагайте ваш "slice"-раздел FreeBSD после расширенных разделов Linux и не изменяйте никакие логические разделы в расширенном разделе Linux, после установки FreeBSD!



Разметка жесткого диска


В Linux и FreeBSD названия жестких дисков и разделов строятся по двум разным схемам. В этой главе описаны главные различия между ними. Фактически, в FreeBSD маркировка разделов взята из традиционного BSD; она адаптирована для fdisk. Таким образом, она очень похожа на ту, которая используется в BSD-подобных системах, таких как NetBSD, OpenBSD, Ultrix, Digital Unix, SunOS и Solaris.



Совместное использование области подкачки в Linux и FreeBSD.


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



Ссылки на информационные ресурсы


Последнюю версию этого mini-HOWTO можно найти на этом сайте в нескольких форматах (включая sgml и PostScript). Документ был перведен на японский Mr. Teruyoshi Fujiwara в рамках проекта JF.

Здесь вы можете найти несколько статей о различиях между Linux и FreeBSD.

Вы можете найти достаточно информации по системе FreeBSD (включая и ее саму) на этом сайте. Также можно купить компакт-диски на Walnut Creek CDROM (их сервера работают под FreeBSD).

Linux Kernel HOWTO и этот mini-HOWTO реализованы в рамках проекта The Linux Documentation Project.



Установка FreeBSD


Установите FreeBSD в соответствии с документацией. Удалите раздел подкачки Linux, если он у Вас есть (можете использовать для этого FreeBSD fdisk). Обратите внимание на порядок разделения ``slice''-раздела FreeBSD. Если Вы используете разбивку по умолчанию, то второй "partition"-раздел(подраздел) будет разделом подкачки. Завершите установку и загрузите Linux, используя загрузочную дискету с новым ядром.



Установка и настройка Linux


Первый шаг описывает нормальную установку Linux. Вы должны на жестком диске оставить место для FreeBSD. Не создавайте в Linux раздел подкачки, но если Вы очень хотите сделать его, то разместите его туда, куда затем установите FreeBSD. Таким образом, потом Вы сможете удалить этот раздел и использовать место для установки FreeBSD.

Когда Вы установите Linux, необходимо пересобрать ядро. Прочитайте The Linux Kernel HOWTO, если еще никогда этого не делали. Вы должны ответить ``y'' на UFS filesystem support (read only) и BSD disklabel (FreeBSD partition tables) support:



Загрузка FreeBSD с использованием LILO


Вы можете легко загрузить FreeBSD, используя LILO. Не устанавливайте загрузчик FreeBSD (Booteasy), если хотите использовать LILO. Добавьте следующие строки в файл /etc/lilo.conf и запустите lilo (я предполагаю, что "slice"-раздел FreeBSD - это /dev/hda4):

other=/dev/hda4 table=/dev/hda label=FreeBSD

Если Ваш FreeBSD установлен на второе SCSI-устройство, используйте что-нибудь типа ("slice"-раздел FreeBSD - это /dev/sdb2):

other=/dev/sdb2 table=/dev/sdb loader=/boot/chain.b label=FreeBSD



Запуск программ FreeBSD под Linux


Пакет iBCS поддерживает запуск программ FreeBSD под Linux, но у меня не получилось сделать это. Пожалуйста, сообщите мне, если у Вас получится.



Запуск программ Linux под FreeBSD


FreeBSD поддерживает программы Linux. Чтобы работать с ними, необходимо проделать следующее:

Разрешите совместимость с Linux. Для этого нужно отредактировать файл /etc/rc.conf (в FreeBSD 2.2.2, в других версиях могут быть незначительные отличия). Исправьте строку

linux_enable="NO"

на

linux_enable="YES"

и перезагрузитесь. Кроме того, можно разрешить FreeBSD поддержку бинарных файлов Linux, запустив /usr/bin/linux. После этого не надо перезагружаться. Этот вариант хорош тем, что позволяет экономить память и запускать поддержку бинарных файлов Linux только тогда, когда это необходимо. Если Вы решите пересобрать ядро, то не забудьте добавить строку

options COMPAT_LINUX

в файл конфигурации ядра.

Если Ваши бинарные файлы Linux связаны динамически, то необходимо установить библиотеки, которые включены в FreeBSD 2.2.{2,5,6} в пакете linux_lib-2.4.tgz (версия может быть новее). Установите пакет следующей командой:

pkg_add /linux_lib-2.4.tgz

это каталог, где находится данный пакет. Также можно установить его из сети:

pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/packages-stable/All/linux_lib-2.4.tgz

или запустив /stand/sysinstall. Войдите в пункт "Configure", затем "Packages". Если Ваши бинарные файлы Linux связаны статически , то выполните следующую команду:

brandelf -t Linux

Установите программу Linux, которую Вы хотите запустить. Программа может быть установлена на файловую систему UFS или ex2fs. См. раздел "Подключение файловой системы ext2fs под FreeBSD" для получения большей информации об использовании раздела с файловой системой ext2fs под FreeBSD.

Я успешно запускал Linux версии Applixware 4.3 и Netscape 3.01 (и то, и другое ELF формата) под FreeBSD 2.2.2, используя вышеизложенный метод (да, я знаю, что существует Netscape 4 под FreeBSD). Linux версии acroread и StarOffice 3 и 4 также хорошо работают под FreeBSD. StarOffice 5 в настоящее время не работает под FreeBSD. Читайте документацию по FreeBSD для получения большего количества информации по этой теме.



Bootpart


Для NT существует программа bootpart, созданная G. Vollant, которая может помочь вам выполнить действия, описанные в последующих двух пунктах данного руководства. Bootpart можно найти по адресу http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm.

Если же вы сами хотите понять, как взаимодействуют системы NT и Linux, то проанализируйте и выполните действия, описанные в пунктах 5 и 6 руководства.



Действия в Linux


Пока не исправлены конфигурационные файлы NT, придется загружать Linux с дискет.

Сейчас необходимо получить образ стартового загрузочного сектора с загрузочного раздела Linux. Если этот раздел - /dev/hda2, то команда должна быть такой:

# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

Если размер файла bootsect.lnx больше, чем 512 байт, то что-то прошло неправильно.

Теперь скопируем файл bootsect.lnx на отформатированную DOS-дискету (если вы таким образом обмениваетесь информацией с NTFS-Windows-разделом)

Скопировать файл можно командой

# mcopy /bootsect.lnx a:

или командами

# mount -t msdos /dev/fd0 /mnt # copy /bootsect.lnx /mnt # umount /mnt



Действия в Windows NT


Скопируйте полученный файл с дискеты в C:\\bootsect.lnx. Не мне вам объяснять, как это делать.

Чем является файл lilo.conf для Linux, тем же является и файл c:\\boot.ini

для Windows NT. Снимите с него атрибуты System и Read-Only командой:

C:\attrib -s -r c:\boot.ini

Поменяем содержимое файла boot.ini (в любом текстовом редакторе, например в "notepad"), таким вот образом:

[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ... multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ... C:\BOOTSECT.LNX="Linux"

В нашем случае, в файл была добавлена только последняя строчка. Восстановите прежние атрибуты файла (после того, как сохраните boot.ini) командой:

C:\attrib +s +r c:\boot.ini

Теперь, после выключения Windows NT и перезагрузки компьютера, вы должны увидеть следующее:

OS Loader V4.00

Please select the operating system to start:

Windows NT Workstation Version 4.0 Windows NT Workstation Version 4.0 [VGA mode] Linux

Выберите пункт меню Linux и получите долгожданную строчку

LILO loading zImage ....



Диагностика проблем


Если все работает совсем не так, как вы ожидали, то для начала проверьте саму возможность загрузки и нормальной работы Linux с помощью загрузочной дискеты. Если ваш основной раздел - это /dev/hdb1, то в файле /etc/lilo.conf вы должны увидеть следующие строки:

root=/dev/hdb1 boot=/dev/fd0

Вставьте загрузочную дискету и запустите lilo. Если Linux не запускается с /dev/hdb1, то, соответственно, и загрузчик NT OS не сможет его запустить. Если вы видите много символов 01 01 01 01, то это означает, что основной раздел Linux недоступен. Проверьте, правильно ли определены в BIOS ваши винчестеры.

Если вы, с помощью дискеты, смогли загрузить Linux, то осталось всего лишь скопировать загрузочный сектор с дискеты для загрузчика NT OS.

# dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1

Можно сохранить эту дискету для аварийной загрузки на случай, если вдруг что-нибудь случится с системой Windows NT.



Инсталляция Linux


Загрузите Linux с дискет, создайте основной раздел и раздел подкачки. Fdisk выводит NTFS-разделы, как HPFS. Так и должно быть. Снова перезагрузитесь с дискет, и продолжайте устанавливать Linux так, как вам хочется, в необходимой конфигурации.

Если процедура установки Linux сообщит вам, что у вас есть возможность подключить раздел HPFS, обнаруженный на компьютере, то ПРОИГНОРИРУЙТЕ это предложение.



Как работает загрузчик NT OS


Загрузчик NT OS сохраняет загрузочные сектора других операционных систем в виде файлов. При старте считывается нужный файл и начинается загрузка или Windows NT в выбранном режиме, или какой-то другой операционной системы.



Lilo


Когда вы начнете работу с Lilo, то определите ваш основной раздел Linux как загрузочное устройство, так как Master Boot Record (MBR) вашего жесткого диска используется Windows NT. Проверьте следующее - записи о корневом (root) и загрузочном (boot) устройстве в конфигурационном файле /etc/lilo.conf должны быть идентичны. Если у вас стоит IDE-винчестер, и Linux установлен на втором разделе, то запись о загрузочном устройстве в файле /etc/lilo.conf будет выглядеть так:

boot=/dev/hda2

Если у вас стоит два винчестера, и Linux установлен на первый раздел на втором диске, то запись о загрузочном устройстве в файле /etc/lilo.conf

будет выглядеть так:

boot=/dev/hdb1

Запускайте lilo и Linux соответствующих версий! Если вы не помните номер версии вашей системы, то загрузитесь с дискеты, и посмотрите, какую версию вы используете.

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



Мини-HOWTO: "Использование загрузчика NT OS с Linux"


Bernd Reichert
reichert@dial.eunet.ch


Перевод: Станислав Рогин, ASPLinux



Отзывы и предложения


Мы с уважением примем любые комментарии и примечания о работе вышеописанной системы.



Первоисточники


Мини-HOWTO Linux+WindowsNT

Часто задаваемые вопросы (FAQ) для FreeBSD 2.X



Создание разделов на жестком диске


При совместном использовании Windows NT и Linux на одном компьютере не рекомендуется использовать NT "Disk Administartor" для создания основного Linux-раздела и раздела подкачки. Его лучше запускать только для получения информации о свободном для новых разделов месте на винчестере. А вообще, желательно использовать Linux-программу fdisk.



Установка Windows NT


Сначала установите Windows NT. Если вы хотите использовать файловую систему NTFS для разделов Windows NT, то помните, что на настоящее время в Linux нет поддержки NTFS. Тестовую версию драйвера (только для чтения) NTFS можно найти по адресу http://www.informatik.hu-berlin.de/?loewis/ntfs. Для обмена информацией вы можете создать отдельный FAT-раздел, или передавать ее через флоппи-диски, отформатированные под DOS.



Все по новой...


Как только во время работы изменится загрузочный сектор основного раздела Linux, вам придется повторить операцию с копированием файла bootsect.lnx в C:\BOOTSECT.LNX. Такое может произойти, например, после того, как вы обновите версию вашей системы или переустановите lilo. Понятно, что подобная комбинация систем совсем не предназначена для отладки и тестирования экспериментальных версий ядер Linux.



Быстрая проверка по списку


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

У Вас не более 3 записей в таблице разделов

Ваш раздел подкачки Linux не является первичным

У Вас имеется, как минимум, один первичный раздел Linux ext2

У Вас имеется, по крайней мере, 1Гб неразмеченного пространства



Другой путь


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

Дискета

Я не знаю, какая файловая система на дискетах является стандартной для Solaris. Вы знаете? Напишите мне.

Сеть

И Solaris, и Linux прекрасно работают с NFS. Скорее всего, это наилучший путь обмена данными или совместного их использования.



Интерактивный Solaris


Solaris 7

Интерактивный Solaris находится на первом CD. Загрузитесь с него.

Solaris 8

На дисках Solaris 8 интерактивный инсталлятор находится на первом CD с программами. Отдельный CD с инсталлятором не нужен вообще.

Установка Solaris обычно не вызывает никаких трудностей. Единственная трудность, которая может возникнуть - деление на разделы. Solaris будет автоматически использовать все свободное место на Вашем жестком диске и создаст на этом диске свой раздел. Когда раздел будет делиться на подразделы, не забудьте выделить место для обмена Solaris/Linux. Хорошее место для этого - дополнительный раздел /export/share.

Пожалуйста, обратите внимание: Если Вы прервете установку Solaris, MBR на Вашем жестком диске может быть уже перезаписан и Вы не сможете загрузиться с него вообще.



Использование grub


К сожалению, у меня нет опыта работы с Solaris-загрузчиком grub. Если Вы с ним работали, пожалуйста, напишите мне!



Использование lilo


Теперь ваш lilo стал вторичным системным загрузчиком, но Вы хотите, чтоб он снова стал первичным загрузчиком? Нет проблем. Lilo может легко заменить загрузчик Solaris. Только добавьте/исправьте строку other= в файле lilo.conf.

Для проверки, Вы должны к lilo первым добавить системный загрузчик Solaris. Теперь проверьте цепочку: lilo, Solaris, lilo, Solaris, .... Если она срабатывает, то, наверняка, Вы сможете без каких-либо проблем поместить lilo обратно в MBR.

Однако, Solaris может конфликтовать с lilo. У меня возникла такая проблема после установки Solaris 8, т.к. lilo не понравился новый раздел. У меня не было проблем с Solaris 7.



Использование раздела shared


Если Вы собрали ядро с поддержкой файловых систем Sun и UFS, как это описано в разделе Разд. Сборка нового ядра, то можете подключать раздел Solaris. Во время загрузки на экране должно появляться нечто подобное: hda: [PTBL] [523/255/63] hda1 hda2 < hda5 hda6 hda7 hda8 > hda3 В данном случае: раздел 3 (hda3) - это Solaris-раздел с шестью подразделами (s0,s1,s2,s3,s6,s7). В Linux они будут иметь имена от hda9 до hda14.

Попробуйте подключить раздел Solaris. Когда подключаете раздел UFS, Вы всегда должны указывать параметр -oufstype= в командной строке, в нашем случае, это -oufstype=sunx86. Итак, команда для подключения раздела должна выглядеть следующим образом:

mount -oufstype=sunx86 /dev/hda14 /mnt Проверьте, подключился ли Ваш раздел. Пожалуйста, обратите внимание: Запись на раздел UFS находится пока только на экспериментальном уровне. Будьте крайне осторожны с записью на него: проверяйте записанные данные!

Если Вы хотите, чтобы Ваш Solaris-раздел подключался автоматически во время загрузки, добавьте строку /dev/hda14 /solaris ufs ufstype=sunx86 0 0 в файл /etc/fstab



Использование системного загрузчика Solaris


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



License


This document is copyrighted Max Berger. You may use and/or modify it according to the Linux Documentation Project License (LDPL) found at http://www.linuxdoc.org/COPYRIGHT.html.

According to the license you don't have to tell me, but I'd very much like to know when you modify and/or republish this document.

Although the information given in this document is believed to be correct, the author will accept no liability for the content of this document. Use the tips and examples given herein at your own risk.



Linux+Solaris HOWTO


Max Berger
max.berger@xslt.de


Перевод: Станислав Рогин, ASPLinux

В этом документе содержится информация о том, как использовать Linux (x86) и Solaris (x86) одновременно на одной машине



Подготовка системного загрузчика


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

К сожалению, при установке Solaris переписывает область начальной загрузки (MBR) и стирает Ваш старый системный загрузчик.

К счастью, системный загрузчик Solaris позволяет цепную загрузку. Поместите старый системный загрузчик (например lilo) в загрузочный сектор одного из первичных разделов Linux.

Для lilo: посмотрите Ваш файл /etc/lilo.conf. Найдите строку boot= . Если там написано, что-то вроде boot=/dev/hda1, то это хорошо. Но если там есть, что-то вроде boot=/dev/hda, то это указатель на MBR. Исправьте этот указатель так, чтобы грузиться с первичного раздела Linux (например, boot=/dev/hda1).

Чтобы попробовать, позволяет ли Ваш системный загрузчик производить цепную загрузку, установите lilo в MBR и попробуйте загрузиться при помощи другого системного загрузчика. Я использую для этого файл lilo.conf.mbr со следующим содержанием:

#lilo.conf.mbr #Lilo в MBR только передает загрузку другому lilo boot=/dev/hda root=/dev/hda5 install=/boot/boot.b map=/boot/map vga=ask delay=50 other=/dev/hda1 label=lilochain

Теперь наберите lilo -C lilo.conf.mbr для установки lilo в MBR. И не забудьте запустить lilo для того, чтобы получить lilo в загрузочном секторе Вашего жесткого диска.

Если теперь Вы перезагрузитесь, то увидите приглашение lilo. Если вы выберете other, то загрузится старый lilo, который, в свою очередь, загрузит Linux.



Подготовка Вашего жесткого диска


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



Получение GNU-утилит


В стандартную поставку Solaris не входит даже команда less. Некоторые советуют установить менеджер пакетов Redhat (RPM) для Solaris, но и стандартные инструменты могут выполнять его функции. Вы можете найти замечательные пакеты на http://www.sunfreeware.com. Стандартные пакеты устанавливаются командой pkgadd0;пакет>, а пакеты web-start java java0;packagewithoutclassextension>.



Разметка Solaris-разделов


Solaris имеет собственную схему разделов.Он делает собственную запись в таблице разделов и работает с ней.

Этот раздел Solaris делится на 8 подразделов. Третий подраздел фактически охватывает весь раздел, так что, на самом деле, могут использоваться только 7 подразделов.

К сожалению, запись раздела Solaris в таблице разделов такого же типа, как и Linux swap-раздел (82). Поэтому Ваш swap-раздел Linux не должен быть первичным разделом.

Хотя программа Linux fdisk имеет поддержку ``Sun disklabel'', кажется, это не помогает.



Сборка нового ядра


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

Опции ядра для "совместимости с Solaris":

В code maturity:

Prompt for development drivers

К сожалению, возможность писать в файловую систему UFS все еще экспериментальна

В file systems:

UFS file system support

UFS - это файловая система Solaris

UFS file system write support

Единственный способ передавать данные Solaris

partition types / Solaris (x86) partition table support

Это необходимо для поддержки подразделов в пределах Вашего Solaris-раздела.

Дополнительную информацию о сборке ядра можно найти в Kernel-HOWTO



Ссылки на дополнительную информацию


Вот некоторые ссылки, которые помогут Вам и дадут более обширную информацию:

Sun Freeware

Прекрасный сайт, на нем много бесплатных утилит, готовых к установке.

Sun Microsystems

Официальный сайт корпорации Sun.

Solaris Homepage

Solaris Hardware Compatibility List (HCL)

Solaris Online Documentation

My Website

Здесь Вы всегда найдете самую последнюю версию данного документа



Свободное место


Безусловно, Solaris нуждается в свободном месте на жестком диске. Минимальная инсталляция Solaris 8 занимает около 300Мб. Для нормальной инсталляции необходимо около 700Мб, с установкой "инструментов разработчика" - около 1Гб.

Но эти требования только для базовой инсталляции. Кроме этого, Вы можете установить утилиты GNU и т.п. Если Вы хотите совместно использовать данные в Linux и Solaris, то необходимо, чтобы эти данные находились на разделе Solaris.

Вероятно, Вы надеетесь совместно использовать Ваши домашние каталоги. Забудьте об этом! Я попробовал это реализовать и был очень счастлив, что предварительно сделал резервные копии. Также смотрите раздел Разд. Совместное использование данных



Традиционные разделы


Стандартная таблица разделов имеет всего четыре раздела. Из них для нас важны:

Primary Partition (Первичный раздел)

Может содержать только один раздел. Только с этого раздела Вы можете загружаться!

extended Partition (Расширенный раздел)

Может содержать много подразделов DOS, Linux и др.

Solaris Partition (Solaris раздел)

Может содржать много подразделов Solaris.

Чтобы убедиться, что Ваш жесткий диск разделен на разделы, используйте программу fdisk. Номера разделов от 1 до 4 (hda1..4, sda1..4, ...) должны присутствовать в вашей таблице разделов.



Вопросы, комментарии, предложения


Всегда пожалуйста. Вы можете написать мне на max.berger@xslt.de



Web-Start


Я не смог заставить работать Web-Start. Пожалуйста, напишите мне, если у Вас есть опыт работы с ним.

Однако, однажды я смог установить Solaris без всяких проблем, связанных с установкой пакетов web-start.



Запуск программ Linux в Solaris


По идее, для этого используется программа ``lxrun''. Но у меня нет ее, и я не имел возможности ее испытать. Ищите ее на официальном сайте Solaris, для получения большей информации об этом.



Запуск программ Solaris в Linux


Насколько мне известно, Linux не поддерживает бинарные файлы Solaris.



LinuxGL (GLX) QuakeWorld Client compile mini-HOWTO


Robert B Easter
reaster@comptechnews.com
Перевод: Александр Ермолаев, ASPLinux

Этот miniHOWTO описывает способ, как собрать клиент OpenGL/GLX Linux QuakeWorld, работающий на системе, которая поддерживает аппаратное ускорение.



Процедура


Бинарный файл glqwcl.glx доступен по адресу: www.quakeworld.net

в пакете qwcl-2.30-glibc-i386-unknown-linux2.0.tar.gz. Он не откомпилирован должным образом и при запуске ищет библиотеку libglide2x.so.

Клиенты QuakeWorld доступны в нескольких разновидностях:

OpenGL:

glqwcl (только для 3dfx?)

glqwcl.glx (MesaGL/XFree4)

Только с использованием программного ускорения:

qwcl (svgalib)

qwcl.xl1 (x11/svgalib)

Повторю, что этот miniHOWTO описывает процесс получения файла glqwcl.glx, для работы с XFree86 4.x DRI.

Загрузите исходные тексты Quake, q1source.zip, с FTP ftp://ftp.idsoftware.com/idstuff/source/q1source.zip. Этот архив содержит все версии Quake1/QuakeWorld.

После компиляции, вы должны получить версию:

LinuxGL (0.98) QuakeWorld 2.40 (Aug 19, 2000)

Вам также необходимо загрузить исходные тексты библиотеки Mesa 3D с узла http://mesa3d.sourceforge.net/. Подойдет файл MesaLib-3.3.tar.gz.

cd /usr/src tar -xvzf MesaLib-3.3.tar.gz

Этим самым вы распакуете исходные тексты в каталог /usr/src/Mesa-3.3

Сборка библиотеки mesa:

cd /usr/src/Mesa-3.3 ./configure --prefix=/usr make

В зависимости от вашей установки, Mesa может быть не установлена. Если вы собираетесь установить Mesa, знайте, что Mesa будет установлена поверх файлов libGL.*, которые уже есть в каталоге /usr/lib. Те файлы libGL.* вероятно, были версиями, поддерживающие аппаратное ускорение. Установка Mesa перепишет подключаемые файлы glx в каталоге /usr/X11R6/include/GL. Однако, до того, как вы установите Mesa, сделайте резервную копию файлов /usr/lib/libGL.* и /usr/X11R6/include/GL/glx*.h.

Чтобы установить библиотеку:

make install

После того, как вы установите полный пакет Mesa, вам может понадобиться переустановить файлы libGL для аппаратного ускорения или восстановить их из резервной копии (как было предложено выше). Вам также может понадобится восстановить подключаемые файлы glx. Либо восстановите подключаемые файлы glx, либо восстановите их из резервной копии (как было предложено выше), либо, если у вас есть исходные тексты X, скопируйте эти файлы из каталога исходных текстов: cp xc/include/GL/*.h /usr/X11R6/include/GL.

Устанавливая библиотеки Mesa, вы получите файлы libGLU* и подключаемые файлы установленные на вашей системе.


XFree86 4.0. 1 appeared to be lacking libGLU* and its include files.

GLU - это стандартная часть нормальной установки OpenGL, которая отсутствует в XFree86 4 и может не работать со специализированными драйверами OpenGL.

XFree86 4.0.1 включает только ядро Mesa 3.3, которое во время разработки было/есть MesaGL. Direct Rendering Infrastructure (DRI) XFree86 основано на коде Mesa.

Если вам посчастливилось иметь видеокарту Nvidia, то и вы можете заинтерисоваться установкой драйверов Nvidia и выбором библиотек OpenGL (GLU, glut, Qt, страницы руководства OpenGL), поэтому посмотрите NVIDIA-OpenGL-Configuration miniHOWTO здесь:

http://www.comptechnews.com/~reaster/nvgl.txt

Проверьте также на сайте LDP.



Сделайте каталог для хранения исходных текстов quake:


mkdir q1src cd q1src unzip ../q1source.zip cd QW cp Makefile.Linux Makefile




Отредактируйте Makefile:

Строка 30:

MAINDIR=/home//q1src (куда вы распакуете исходные тексты)

Строка 37:

MESA_DIR=/usr/src/Mesa-3.3 или то, куда вы положите исходный код Mesa

Строки 43 и 46:

Вам может понадобится удалить все оптимизирующие флаги компилятора, чтобы получить стабильный бинарный код. Вы можете поэкспериментировать с ними. Например, творились странные вещи, когда открывались PAK-файлы с включенной оптимизацией: программа говорила, что имеются миллионы файлов в id1/pak0.pak!

Я удалил все флаги RELEASE_CFLAGS:


-O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2


Однако, далее эксперименты показали, что по крайней мере при двух включенных флагах, все было в порядке:


-ffast-math -fexpensive-optimizations


Действительно неприятный флаг кажется - -O6. Я пробовал установить -O1, но результат был тот же. Флаги -malign* также не были нужны.

Строка 50:

Добавьте: -DGL_EXT_SHARED

Это #define найдено внутри файла gl_vidlinuxglx.c, где оно условно компилирует некоторый 3DFx/glide-специфичный код #ifndef! Без этого, компилятор будет выдавать ошибку: неразрешенные внешние функции, связанная с glide/3dfx.

Удалите: -I/usr/include/glide

Измените: -L/usr/local/src/Mesa-3.0/lib на то, куда вы положили исходный код Mesa: -L/usr/src/Mesa-3.3/lib

Удалите любые ссылки на glide и исправьте путь к исходным кодам Mesa, везде, где они еще упомянуты.

Строка 73:



Уберите файлы, которые вы не хотите собирать. Некоторые из них не будут собраны? Оставте только glqwcl.glx.

Убедитесь, что у вас есть символьная ссылка /usr/X11 на /usr/X11R6. При установке X, вы можете забыть сделать это, некоторые программы и исходные тексты ищут X именно там:


cd /usr ln -s X11R6 X11


Сохраните Makefile.



Исправление проблемы скрывания мыши.

Код quake, как он есть, не скрывает мышь, когда вы ее используете. Указатель остается видимым в центре экрана, что очень раздражает. Я нашел следующее простое исправление: http://lists.openprojects.net/pipermail/glx-dev/1999-October/000994.html



cd q1src/QW/client отредактируйте файл: gl_vidlinuxglx.c


В начале функции, называемой install_grabs(void) (Строка 234), добавьте следующий код:


static void install_grabs(void) { /* переменные для создания пустого курсора */ Pixmap blank; XColor dummy; char data[1] = {0}; Cursor cursor;

/* делаем пустой курсор */ blank = XCreateBitmapFromData (dpy, win, data, 1, 1); if(blank == None) fprintf(stderr, "error: out of memory.\n"); cursor = XCreatePixmapCursor(dpy, blank, blank, &dummy, &dummy, 0, 0); XFreePixmap (dpy, blank); Con_Printf("Cursor blanked.\n");


8-й параметр в функции XGrabPointer должен быть изменен с "None" на "cursor", чтобы использовать пустой курсор:


XGrabPointer(dpy, win, True, 0, GrabModeAsync, GrabModeAsync, win, cursor, CurrentTime);


(см: man XGrabPointer)

Это исправление может работать и для других клиентов, если вы сделаете подобные исправления в соответствующем файле *vid*.c. Оно вызывает утечку памяти, поскольку здесь каждый раз происходит выделение памяти для другого объекта (Cursor) и не вызывается функция XFreeCursor(), но это, вероятно не проблема, т.к. я не думаю, что курсор размером 1x1 использует много памяти. Если вы хотите, вы можете использовать следующий патч q1src/QW/client/gl_vidlinuxglx.c

(patch gl_vidlinuxglx.c patchfile). Только "вырежьте" содержимое кода между началом/концом приведенного ниже patchfile и "вставьте" его в файл patchfile (можете использовать другое имя). Сохраните patchfile в каталоге q1src/QW/client, где есть gl_vidlinuxglx.c. Затем запустите команду:





patch gl_vidlinuxglx.c patchfile



Этот патч сделает gl_vidlinuxglx. c таким, чтобы не было никаких утечек памяти. Вы можете загрузить этот патч: http://www.comptechnews.com/~reaster/gl_vidlinuxglx.c.patch.



*************************** начало patchfile ************************************ *** q1src-p/QW/client/gl_vidlinuxglx.c Tue Dec 21 18:45:54 1999 --- gl_vidlinuxglx.c Sat Aug 19 20:47:42 2000 *************** *** 1,22 **** ! /* ! Copyright (C) 1996-1997 Id Software, Inc. ! ! This program is free software; you can redistribute it and/or ! modify it under the terms of the GNU General Public License ! as published by the Free Software Foundation; either version 2 ! of the License, or (at your option) any later version. ! ! This program is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ! ! See the GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! ! */ #include #include #include --- 1,22 ---- ! /* ! Copyright (C) 1996-1997 Id Software, Inc. ! ! This program is free software; you can redistribute it and/or ! modify it under the terms of the GNU General Public License ! as published by the Free Software Foundation; either version 2 ! of the License, or (at your option) any later version. ! ! This program is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ! ! See the GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! ! */ #include #include #include *************** *** 66,71 **** --- 66,74 ----



static int scr_width, scr_height;

+ /* blank cursor - gets initialized in VID_Init, freed in VID_Shutdown */ + Cursor cursor; + /*-----------------------------------------------------------------------*/

//int texture_mode = GL_NEAREST; *************** *** 236,243 **** 0, GrabModeAsync, GrabModeAsync, win, ! None, CurrentTime);

#ifdef USE_DGA XF86DGADirectVideo(dpy, DefaultScreen(dpy), XF86DGADirectMouse); --- 239,247 ---- 0, GrabModeAsync, GrabModeAsync, win, ! cursor, CurrentTime); + Con_Printf("Cursor blanked.\n");

#ifdef USE_DGA XF86DGADirectVideo(dpy, DefaultScreen(dpy), XF86DGADirectMouse); *************** *** 350,355 **** --- 354,360 ---- if (!ctx) return;

+ XFreeCursor(dpy, cursor); glXDestroyContext(dpy, ctx); }

*************** *** 602,608 **** unsigned long mask; Window root; XVisualInfo *visinfo; ! S_Init();

Cvar_RegisterVariable (&vid_mode); --- 607,617 ---- unsigned long mask; Window root; XVisualInfo *visinfo; ! /* vars to make blank cursor */ ! Pixmap blank; ! XColor dummy; ! char data[1] = {0}; ! S_Init();

Cvar_RegisterVariable (&vid_mode); *************** *** 701,706 **** --- 710,720 ---- Con_SafePrintf ("Video mode %dx%d initialized.\n", width, height);

vid.recalc_refdef = 1; // force a surface cache flush + + blank = XCreateBitmapFromData(dpy, win, data, 1, 1); + if(blank == None) fprintf(stderr, "error: out of memory.\n"); + cursor = XCreatePixmapCursor(dpy, blank, blank, &dummy, &dummy, 0, 0); + XFreePixmap(dpy, blank); }

void Sys_SendKeyEvents(void)

*************************** конец patchfile ************************************


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


bind q "_windowed_mouse 0" bind w "_windowed_mouse 1"




Сборка (наконец-то!)

Запустите "make build_release", без параметров, оттуда, где расположен Makefile:


cd q1src/QW make build_release


Если все прошло хорошо, вы получите бинарный файл, glqwcl.glx, в каталоге releasei386-glibc. Скопируйте файл glqwcl.glx в другой каталог (например "qw"), и из каталога установки quake скопируйте каталог id1 и все остальные каталоги игры (ctf, Fortress и т.п.) в новый каталог quakeworld.





Запуск игры.

Вы можете попробовать запустить игру через XQF: glqwcl.glx -width 1280 -height 1024

(или любое другое разрешение, поддерживаемое вашей системой)

XQF - хорошая программа для поиска серверов QuakeWorld, и вы найдете ее по адресу: http://www.linuxgames.com/xqf

Чтобы играть в полноэкранном режиме, требуется запустить игру в таком же разрешении, какое установлено для вашего рабочего стола. Если у вас запущен рабочий стол, вы не можете скрыть все. Надежный способ получить полноэкранный режим - запустить XFree86 без рабочего стола или без window manager:

XFree86 &

Эта команда запускает X XFree86 без рабочего стола или без window manager. /etc/X11/xinit/xinitrc, обычным образом запускает ваш рабочий стол.

CTRL-ALT-'-' и CTRL-ALT-'+'

Переключают разрешение экрана. Отредактируйте ваш /etc/X11/XF86Config, если вы не хотите иметь другие доступные разрешения.

CTRL-ALT-F1

Переключают в текстовую консоль.

xterm -display localhost:0.0 &

Все X приложения понимают команду -display, чтобы сообщить X, какой X отображать на экране. Каждая X программа - клиент X сервера. 0.0 представляет экран по клавише F7, 1.0 по F8, и т.д. localhost - ваш компьютер. Это дает возможность выполнять программу на одном компьютере, а отображать данные на другом. localhost может быть IP адрес или имя того компьютера, с запущенным X, который принимает подключения, от компьютера, где вы выполняете клиентскую программу.

ALT-F7

Переключаемся обратно в X 0.0. Используя xterm, запустите XQF или другую программу, которую вы используете для запуска Quake.

glqwcl.glx -width w -height h

Для запуска quake сообщите вашей программе параметры w и h (ширину и высоту) для установки разрешения экрана. Хорошее разрешение - 1024 на 768.

Световые эффекты.

В консоли вы можете попробовать включить или выключить функцию flashblend и посмотреть, какие световые эффекты вам предпочтительнее:


gl_flashblend 0 gl_flashblend 1


Когда включено (1), вы заметите цветные световые эффекты вокруг флагов и специальных элементов. В этом режиме, вы можете не увидеть вспышки от оружия или свет на стене от ракет. Точные эффекты могут зависеть от вашей установки OpenGL.

Когда выключено (0), не будет никакого ЦВЕТНОГО света, но все световые эффекты работают. Вокруг флаго и специальных элементов, виден свет вокруг поверхностей, а также вспышки от оружия во время стрельбы и огонь от ракеты в полете.



НАСЛАЖДАЙТЕСЬ!