HOW-TO по созданию бездисковых узлов на базе Linux

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

HOW-TO по созданию бездисковых узлов на базе Linux

Abstract

Этот документ описывает способ создания бездисковых узлов на базе Linux. Сетевые технологии быстро совершенствуются, а сетевые карты становятся дешевле и быстрее. Сейчас стандартны 100 Мбит ethernet карты, а через год-два промышленным стандартом станут 1000 Мбит, т.е. 1Гбит ethernet карты. Удаленный доступ через высокоскоростные сетевые карты по скорости сравним с доступом к локальному диску, что делает бездисковые узлы, объединенные локальной сетью жизнеспособной альтернативой рабочим станциям. Также бездисковые узлы помогают избежать расходов на обновление программного обеспечения и системное администрирование, так, например, резервное копирование и восстановление будет централизовано на сервере. Бездисковые узлы также позволяют применить "совместное использование/оптимизацию" процессора центрального сервера, памяти, жестких дисков, ленточных приводов и приводов компакт-дисков. Бездисковые компьютеры обеспечивают мобильность пользователей, так, например, пользователи могут войти в систему с любого бездискового узла, и не привязаны к своей рабочей станции. Бездисковые узлы полностью исключают необходимость наличия локального дисковода, привода cdrom, ленточного устройства и жесткого диска. Бездисковый узел содержит ВСЕГО ЛИШЬ сетевую плату, 8MB RAM, не скоростной процессор и очень простую материнскую плату, в которой нет никаких сокетов/слотов для жестких дисков, модемов, cdrom приводов, дисководов и т.п. С помощью бездисковых узлов на linux вы сможете запускать программы на удаленном 64-процессорном SMP Linux компьютере или даже на суперкомпьютере с Linux! Бездисковые узлы понижают "Совокупную стоимость владения" компьютерных систем. Авторские права на документ принадлежат Robert Nemkin и другим вышеперечисленным соавторам. Лицензия документа - GPL. Спасибо Bela Kis bkis@cartan.math.klte.hu за перевод на Английский начальной версии v0.0.3 этого документа (который был mini-howto).


Содержание
О чем все это?
Преимущества бездискового компьютера
Бездисковые компьютеры с "Linux CDROM"
Купить дешевле, чем сделать!
Интернет-кафе и банковские операции с помощью "Бездискового компьютера с Linux"
Бездисковый компьютер для Microsoft Windows 95/NT!!
Быстрый способ реализации бездисковых узлов
EEPROM или Flash ROM?
Создание программатора EEPROM
EPROM программатор и микросхемы памяти
Введение в загрузку по сети и Etherboot
Настройка Redhat Linux
LanWorks BootWare PROMs
Etherboot
Netboot
Ссылки по данной теме
Заметка о авторских правах
Другие форматы этого документа
Темы обсуждения для Академий и Университетов

О чем все это?

(Последняя версия этого документа доступна на http://www.milkywaygalaxy.freeservers.com).

У бездисковых компьютеров нет жесткого диска, флоппи-дисководов и ленточных приводов. Они обеспечивают значительное сокращение "Совокупной стоимости владения" путем устранения стоимости обслуживания. Вы можете создать бездисковый компьютер с Linux одним из следующих двух способов:

  1. Загружаясь прямо с загрузочного Linux CDROM. Linux CDROM это - Linux система, содержащая все необходимые приложения и программы, часть из которых загружается в RAM диск.

  2. Последние версии ядра делают возможным загружать linux непосредственно по сети, путем загрузки ядра и корневой файловой системы с сервера. В этом случае, клиент может использовать несколько способов получения начальных инструкций по загрузке: с самостоятельно созданного eprom; используя сетевые карты реализующие протоколы RARP, BOOTP или DHCP; используя cdrom, или загружаясь с дискеты или локального жесткого диска.

Самый простой путь создания бездискового компьютера состоит в использовании Linux на CDROM. Вы просто заносите Linux на CDROM, вставляете его в CDROM привод, включаете питание и все готово! Более детально смотрите главу "Linux на CDROM" в этом документе.

Второй вариант - использовать EPROM, но это потребует дополнительной работы, как со стороны сервера, так и со стороны клиента. Если вы выбрали метод с EPROM, я рекомендую вам просто купить бездисковый компьютер с Linux у приведенных в следующих главах производителей.

Преимущества бездискового компьютера

Бездисковый linux компьютер станет чрезвычайно популярен и будет продуктом этого и следующего столетий. Бездисковые linux компьютеры обретут успех из-за доступности очень высокоскоростных сетевых карт по очень низкой цене. Сегодня повсеместно распространены 100 Мегабит/секунду сетевые карты (скорость передачи 11.92 Мегабайт/секунду), а в следующие 1 или 2 года очень подешевеют и станут стандартными сетевые карты 1000 MBit (скорость передачи 119.2 Мегабайт/секунду).

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

Ниже приводятся преимущества использования бездисковых компьютеров:

Бездисковые компьютеры с "Linux CDROM"

"Linux CDROM" - CDROM на котором содержится файловая система с полной операционной системой Linux. Он создается копированием рабочей Linux системы на CDROM. "Linux CDROM" загружает Linux систему прямо с CDROM диска, но для этого вы должны настроить порядок загрузки в BIOS. Обычно последовательность загрузки такова: дисковод, жесткий диск, CDROM. Вы можете войти в BIOS, нажав клавишу Del после включения питания компьютера.

Возьмите "Linux CDROM" с

Рабочие станции с "Linux CDROM" становятся реальностью по следующим причинам:

  1. цена оперативной памяти все время снижается и 512MB памяти стоит всего лишь 70 долларов.

  2. CDROM диски становятся чрезвычайно быстрыми, их текущая скорость чтения достигает 72X.

  3. CDROM IDE диски очень дешевы, CDROM с 52X скоростью чтения стоит всего 33 доллара.

  4. DVD-ROM также дешевеют и могут хранить до 5 Гигабайт Linux программ, и они в три раза быстрее CDROM.

Главное преимущество Linux CDROM перед другими типами бездисковых узлов, такими как EEPROM, в простоте, вы можете запросто обновлять Linux CDROM новой версией ядра Linux каждые три месяца. Просто выбросите старый Linux CDROM и возьмите новую версию. Обновление всего за 20 секунд и стоит 30 центов (меньше доллара!). В ближайшем будущем, Linux на CDROM + DVD-ROM будет правилом для настольных компьютеров.

UPGRADE ЗА ПЯТЬ СЕКУНД: Linux на CDROM способствует БЫСТРОМУ обновлению операционной системы. Вы можете обносить OS менее, чем за 5 секунд!! Linux на CDROM представляет концепцию массового быстрого обновления. Просто выбросьте старый Linux на CDROM, вставьте новый CDROM и вы уже обносились!

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

  1. Linux CDROM

  2. Процессор

  3. Материнская плата

  4. Сетевая карта

  5. Привод CDROM (IDE или SCSI)

  6. Оперативная память (минимум 32 MB для графики и минимум 16 MB для консольного режима)

Лучшие цены на память и приводы CDROM IDE смотрите на online-аукционах, таких как Egghead http://www.egghead.com или местных магазинах вашего города, например, UBM, Houston.

После загрузки "Linux CDROM", вы можете монтировать дисковые разделы удаленного Linux сервера. И для доступа к Windows2000 и Linux серверам можете использовать VNC. Либо вы можете использовать WinConnect для доступа к MS Windows приложениям, таким как MS Office, Outlook и т.п. Но WinConnect требует MS Windows XP/2000/NT сервера.

Для оценки характеристик приводов CDROM/DVD пользуйтесь программами от http://www.cdspeed2000.com. Этот сайт также приводит сравнение характеристик приводов различных производителей. Наиболее высокоскоростные CDROM приводы (до 72x скоростей) у Kenwood http://www.kenwoodtech.com .

Создание Linux CDROM

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

Изначально эта секция была написана Hans de Goede j.w.r.degoede@et.tudelft.nl для Diskless-root-NFS-HOWTO. Я ее немного модифицировал для отражения некоторых различий между этим документом и Diskless-root-NFS-HOWTO.

Многое из приведенного также касается загрузки с cdrom. Зачем кому-то загружать компьютер с cdrom? Загрузка с cdrom интересна всем тем, кто хочет получить очень специфичное применение, такое как киоск, библиотечная база данных или интернет-кафе, и не хочет создавать сетевой сервер для использования корневой системы через NFS.

Создание тестовых настроек

Теперь, когда мы знаем, что и как мы хотим сделать, самое время создать тестовые настройки:

Создание CD

Если вам нужна более подробная информация, чем приводимая ниже, обратитесь к CD-Writing-HOWTO.

Создание загрузочного образа

Прежде всего, загрузитесь в рабочую систему. Для создания загрузочного cd я рекомендую образ загрузочной дискеты. Простое копирование zImage программой dd не работает, так как загрузчик в начале zimage не видит фиктивного дисковода создаваемого загрузочным компакт-диском. Поэтому вместо этого мы используем syslinux.

Создание образа iso

Сейчас у нас есть загрузочный образ и инсталляция, которая может монтироваться в режиме только чтение, самое время создать iso образ компакт-диска:

Проверка iso образа

Запись на CD

Предположим у вас уже установлен и настроен cdrecord для вашего типа устройства записи компакт-дисков:
# cdrecord -v speed=<желаемая скорость записи>\
              dev=<путь к обобщенному scsi устройству вашего устройства записи>\
              boot.iso

Загрузитесь с компакт диска и проверьте его

Что ж, судя по заголовку параграфа - все сделано;)

Купить дешевле, чем сделать!

Иногда купить бездисковый компьютер с linux дешевле купить, чем сделать самому!! В настоящее время мы фокусируем нашу энергию на экономии и эффективном управлении временем. Прошли те дни, когда вы должны были все делать сами! Люди внедрили концепцию массового производства (на заводе есть производственные линии, выдающие продукцию на гора миллионами штук). В индустриальных нациях, таких как США, каждый продукт, который вы видите, сделан массовым, и бездисковые компьютеры не исключение. В США есть много кампаний производящих бездисковые компьютеры в больших количествах.

Посетите следующие коммерческие сайты, которые продают сетевые карты для бездисковой загрузки linux и бездисковые компьютеры. Эти кампании массово производят бездисковые компьютеры на Linux миллионами штук со значительно сниженной стоимостью за единицу. Все, из почти 1000 кампаний в США, будут заменять MS Windows PC бездисковыми компьютерами в ближайшем будущем, так как бездисковые компьютеры на основе linux могут запускать как Linux, так и MS Windows 95 программы (посредством программы VMWare BIOS). VMWare - НЕ эмулятор, но содержит BIOS, который позволяет устанавливать Windows 98/NT в качестве гостевой операционной системы в linux. Для запуска с бездискового узла программ Windows95/Linux Вы можете использовать команду 'xhost' и переменную окружения DISPLAY. Смотрите 'man xhost' на linux. Также для запуска программ Windows95/NT на бездисковых узлах linux вы можете пользоваться Virtual Network Computing (VNC). Возьмите VNC с http://www.uk.research.att.com/vnc Либо вы можете использовать WinConnect для доступа к MS Windows приложениям, таким как MS Office, Outlook и т.п. Но WinConnect требует MS Windows XP/2000/NT сервера.

Даже если вы купили бездисковый linux компьютер, возможно, вам все-же будет интересно дочитать этот документ до конца.

Интернет-кафе и банковские операции с помощью "Бездискового компьютера с Linux"

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

Установка IP Masquerading, IP Netfilter и Squid

Для подключения бездисковых узлов к Интернет, на главном, подключенном к Интернет, Linux сервере вы должны установить IP Masquerading. Главный сервер выступает в роли прокси-сервера для бездисковых узлов.

Настройка Firewall и IP Masquerading : Для Linux ядер серии 2.4 и выше, firewall и IP Masquerading реализованы посредством пакета NetFilter. Тем не менее, вы должны активизировать Netfilter в настройках ядра и запустить Firewall/IPMasq скрипт. Загрузите скрипты с Скрипты для Firewall-IPMasq , главная страница Netfilter - http://netfilter.samba.org. Относящиеся к данной теме материалы на firewalling-matures и Netfilter-FAQ.

Для ядер версий ниже 2.4 вы должны установить firewall rpm из rpmfind.net или firewall.src.rpm.

Также смотрите http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html.

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

Squid - высокопроизводительный кэширующий прокси-сервер для Web клиентов, поддерживает FTP, gopher, и HTTP объекты. В отличие от традиционных кэширующих серверов, Squid обрабатывает все запросы в одном не блокируемом процессе ввода-вывода. Squid хранит в памяти кеш данных и специальных горячих объектов, кэширует DNS запросы, поддерживает не блокирующие DNS запросы, и реализует отрицательное кэширование отказавших запросов.

Squid состоит из главной северной программы squid, программы обзора Domain Name System (dnsserver), программы получения FTP данных (ftpget), и некоторых управляющих и клиентских утилит.

Установка Squid с Linux cdrom -
bash# rpm -i /mnt/cdrom/RPMS/squid*.rpm
Номер порта, на котором запускается Squid, можно узнать, просмотрев файл /etc/services и поискав слово "squid". Должна быть строка примерно такого вида 'squid 3128/tcp # squid web proxy'

На бездисковых узлах запустите броузер и щелкните на Настройки и проверьте "использование прокси". Вставьте имя хоста главного Linux сервера и номер порта 3128. Теперь бездисковый узел может ходить в Интернет по Web страницам!

Бездисковый компьютер для Microsoft Windows 95/NT!!

Так как Microsoft Windows 95/NT НЕ поддерживает бездисковых узлов, есть элегантный способ обойти это. Корпорация Microsoft будет удивлена!!

Пакет VMWare

Программа VMWare BIOS используется вместе с Linux, и служит основой для Windows 95/98/NT. Linux будет основной операционной системой, а Windows 95/NT будет гостевой операционной системой. VMWare - НЕ эмулятор, а содержит BIOS, который позволяет вам установить Windows 95/98/NT в качестве гостевой операционной системы на linux. Установите VMWare на Linux сервер, а затем установите Windows 95/NT на VMWare.

Вы можете использовать команду 'xhost' и переменную окружения DISPLAY с любого бездискового хоста. Смотрите 'man xhost' на linux. На бездисковом узле дайте -
export DISPLAY=server_hostname:0.0
где server_hostname - имя машины-сервера. И запустите X-терминал xterm
Используя VMWare, бездисковые компьютеры могут запускать программы как Linux, так и для MS Windows 95. VMWare доступна на http://www.vmware.com.

Пакет Plex86

Есть несколько других, подобных vmware утилит:

VNC пакет фирмы AT and T

Вы также можете использовать технологию VNC (Virtual Network Computing) фирмы AT & T. VNC - распространяется под лицензией GPL и является свободной программой. Используя VNC, вы сможете на бездисковом linux компьютере работать с программами для Windows 95/NT, фактически запуская их на удаленном Windows95/NT сервере.

Используя VNC, вы сможете отображать на вашем локальном мониторе программы, работающие на удаленных машинах.

Компиляция qvwm на Solaris : На Solaris вы должны установить следующие пакеты - xpm, imlib, jpeg, libungif, giflib, libpng, tiff, их можно получить с http://sun.freeware.com. Также можно загрузить бинарный пакет для solaris с http://www.qvwm.org.

Или же можно загрузить исходный код qvwm для solaris с http://www.qvwm.org и откомпилировать его с помощью gcc.

Проблемы при компиляции: Вам следует вставить unsigned long перед аргументом в usleep() --- usleep((unsigned long) 10000)

Быстрый способ реализации бездисковых узлов

Ниже следует обзор способов построения бездисковых узлов:

Проект Linux Terminal Server Project - LTSP

LTSP - open source проект по созданию бездисковых компьютеров на linux.

На сайте LTSP вы найдете RPM пакеты для дистрибутивов Redhat и Debian, которые помогут сохранить вам много времени. Последующие главы этого документа только для академических целей. Вы можете их прочесть, если у вас есть время.

Посетите LTSP и связанные с ним сайты на:

Стоит взглянуть на относящийся к данной теме сайт -

EEPROM или Flash ROM?

Если Flash ROM поддерживается вашей сетевой платой - вы можете ее использовать. Многие новые сетевые платы поддерживают flash ROM. Для более старых требуется EEPROM и возможно вам потребуется создать EEPROM. Вместо EEPROM можно использовать Flash Boot Rom (если flash boot ROM поддерживается сетевой платой).

Создание программатора EEPROM

Что это такое?

Заметка: Эта глава написана Abhijit Dasgupta. Его email адрес: takdoom@yahoo.com

Проект называется EEP и может быть получен с:

Пожалуйста, не пользуйтесь старым URL для EEP.

EEP - имеющий открытый аппаратный дизайн (вы можете свободно его копировать, использовать, и модифицировать) программатор EEPROM для 24-контактных и 28-контактных 5-вольтовых EEPROM. Есть много разных разработок, но главной целью было получить нечто

Последняя версия - EEP-0.2.

Микросхемы в EEP из распространенной 74HCT серии, используется интерфейс параллельного порта. Я написал код драйвера только для Linux, но этот код под лицензией GPL, и вы можете его модифицировать для других операционных систем.

Я использую EEP для создания загрузочных PROM для сетевых карт, эти карты я использовал для создания бездисковых компьютеров на linux. Более детально о том, как это делается, смотрите в пакете netboot/etherboot. Также вы можете использовать его для программирования систем на микроконтроллерах с внешним ПЗУ (например, 8031).

Поддерживаемые EEPROM

Большинство программируемых 5-вольтовых 24-контактных и 28-контактных EEPROM должны работать с EEP-0.2. Вот список EEPROM, которые точно работают:

  • 24-контактная 2816/28C16, 2048 байт (16 килобит)

  • 28-контактная 2817/28C17, 2048 байт (16 килобит)

  • 28-контактная 2864/28C64, 8192 байт (64 килобит)

  • 28-контактная 28256/28C256, 32768 байт (256 килобит)

Эти EEPROM производятся различными производителями. Вот некоторые из них: Microchip, Atmel, Xicor, Catalyst, и STM.

Схема и номера контактов

Схема в PostScript (schematic.ps), но к ней прилагается рисунок GIF (schematic.gif). Версия в ascii устарела. На схеме, номера контактов показаны вне каждой микросхемы. В большом прямоугольнике справа приведены номера контактов для 28-контактного ZIF сокета.

Файл pinouts.txt содержит информацию о номерах контактов используемых микросхем.

Для используемых микросхем 74HCT, контакты Питания (Vcc) и Земли (Ground) не показаны на схеме. Разумеется, эти контакты должны быть правильно подключены. Полный список контактов (включая Vcc/Ground) приведен в файле pinouts.txt.

Конструкция

ВНИМАНИЕ: Параллельный порт вашего ПК можно запросто повредить, что-либо к нему подключая. Также возможно повредить весь ваш ПК, периферию, и окружающих людей в результате неправильного подключения и несчастных случаев с электричеством. БУДЬТЕ ПРЕДЕЛЬНО ОСТОРОЖНЫ.

Отречение: Используйте на свой риск. Не дается абсолютно никакой гарантии, смотрите ниже COPYING/LICENSE.

Программатор может быть создан на макете, но для более постоянной версии используйте печатную плату. Для шунтирования шины питания используйте 0.1uF конденсаторы. Питание 5V может быть взято из PC, но будьте с ним осторожны. 28-контактный ZIF сокет, вероятно, самый дорогостоящий компонент. Если вы используете макет, можете обойтись без него (не рекомендуется).

Резистор 180 Ом соединяет контакт 10 (Y6) верхней микросхемы 74HCT259 и контакт 1 ZIF сокета - ограничительный резистор для защиты микросхемы 74HCT259 в случае использования 28-контактной EEPROM с контактом RDY/BSY. При использовании 32 килобайтных (256 килобит) EEPROM таких как 28256, для более надежного функционирования рекомендуется, чтобы этот резистор был закорочен.

Установки джамперов

J1 и J2 - однорядные 3-контактные разъемы для джамперов. При использовании 28-контактных EEPROM, замкните пару ножек справа как на J1 так и на J2. Для 24-контактных EEPROM, замкните пару ножек слева на J1 и J2.

Нижнее выравнивание 24-контактных EEPROM

При подключении 24-контактных EEPROM (таких как 2816) в 28-контактный ZIF сокет, проверьте, что 24-контактное устройство выровнено по нижнему краю ZIF сокета. Это значит, что ножки 1, 2, 27, и 28 ZIF сокета должны остаться неиспользуемыми, и ножка земли соответственно подключена (т.е. ножка 12 24-контактного устройства должна сидеть в контакте 14 ZIF сокета).

Список компонентов

  • Микросхемы:74HCT123, 74HCT132, 74HCT138, 74HCT157, 74HCT574 (1 шт. ), и 2 74HCT259s.

  • Резисторы: 100K, 10K, 1K, 180 Ом, и 390 Ом (1 шт.).

  • Конденсаторы:100пФ, 1uF, (1 шт.) и 3 0.1uF конденсатора на шине питания.

  • Прочее: 1 Светодиод, 1 SPST переключатель, 25-контактный ленточный кабель с DB25 разъемом ("папой"), 28 контактный ZIF сокет (вместо него может использоваться макет), контактные ножки для джамперов.

Если у вас уже есть EEP-0.1

Если у вас уже есть программатор EEP-0.1, для преобразования его в программатор EEP-0.2 вы можете сделать следующие модификации:

  1. удалите соединение между 74HCT157 ножкой 1 (SEL) и верхней 74HCT259 ножкой 11 (Y6)

  2. удалите 1K резистор, соединяющий ножку 1 ZIF-сокета с Vcc

  3. добавьте соединение между ножкой 1 (SEL) микросхемы 74HCT157 и ножкой 9 разъема параллельного порта DB-25

  4. добавьте новое соединение между ножкой 10 верхней микросхемы 74HCT259 и неиспользуемой ножкой J1

  5. добавьте 180 Ом резистор между ножкой 11 верхней микросхемы 74HCT259 и ножкой 1 ZIF-сокета

Как создать программное обеспечение

Загрузите и распакуйте программное обеспечение http://metalab.unc.edu/pub/Linux/apps/circuits/EEP-0.2.tar.gz. Затем зайдите в каталог src и наберите `make'.

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

Для создания и считывания eeprom используется программа eep. Она читает данные из stdin и записывает их в eeprom. Данные должны быть в двоичном (чистом) формате. Обычные hex и/или ascii форматы (Intel, Motorola srecord, и т.п.) не поддерживаются, так что если ваш ассемблер выводит данные только в формате hex/ascii, вам следует преобразовать их в двоичный формат (смотрите, например, Hex2bin и srecord, доступные в архиве metalab.unc.edu/pub/Linux). При чтении, вывод также в виде необработанных двоичных данных на stdout (если не указана опция -t).

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

      eep  -0|-1|-2  -r|-w  -b|-t  offset  size

где:

    -0|-1|-2  -0 выбирает порт lp0, -1 порт lp1, и -2 порт lp2,
    -r|-w     -r считывает eeprom в stdout, и -w записывает его данными из stdin,
    -b|-t     -b обычный (двоичный) режим, и -t режим отладки (ascii hex),
    offset    стартовый адрес в eeprom, 0..32767, и,
    size      количество считываемых/записываемых байт, 0..32768.

offset и size могут указываться в виде строк цифр в десятичной записи,
но будут рассматриваться в шестнадцатеричной записи, если предваряются префиксом ``0x'',
и в восьмеричной записи, если предваряются ``0''.

Примеры
--------

# Считывание содержимого 2864 в двоичном (чистом) виде и запись его в файл
eep -1 -r -b 0 8192 > contents.bin
# То же самое:
eep -1 -r -b 0 0x2000 > contents.bin


# Список 16 байт, начиная со смещения 128
eep -1 -r -t 128 16
# Same as:
eep -1 -r -t 0x80 0x10


# Запись 16384 байт из файла nepci.lzrom в первую половину 
# 28C256 eeprom, через lp0:
cat nepci.lzrom | eep -0 -w -b 0 16384

Электрическая схема в ASCII символах


                       +-------+                      J1
              +5-------|RST    |               +5---o o o----+   +-----------+
              +5--o----|/CLR1  |         10K          |      |   |           |
                  |    |       |-----o--/VVV\-- +5    +------|---|26 A13(+5V)|
      +------+    |    |1/2 123|     |              +--------|-->|27 /WE(NC) |
 16 o-|/CS2  |    |    |       |--||-+              | +------|-->|23 A11(/WE)|
      |   CS1|----o----|B1     | 100pF              | | J2   |   |           |
      |      |         |    /Q1|---------->---------o o o    |   |  ZIF28    |
      |    Y1|---------|/A1    |                        |    |   |  socket   |
      | 138  |         +-------+         _ 1/2 74HCT132 |    |   |   for     |
      |      |                     +5 --| \   __        |    |   |  EEPROM   |
      |    Y2|--------------------------|  O--| \       |    |   |           |
  8 o-|A2    |                +-------+ |_/   |  O-----------|-->|22 /OE     |
  7 o-|A1  Y4|--------------->|EN   Y7|-----o-|_/       |    |   |           |
  6 o-|A0  Y3|----+    +5-----|RST    |     |   180 ohm |    |   |           |
      |    Y0|-+  |           |     Y6|-----|---/VVV\---|----|---|1 A14(NC)  |
      |  /CS3| |  |           | 259 Y5|-----|-----------|----+   |           |
      +------+ |  |           |     Y4|-----|-----------|------->|2 A12(NC)  |
            |  |  |           |     Y3|-----|-----------+        |           |
  5 o--->---|--|--|--------o--|D    Y2|-----|------------------->|21 A10     |
  4 o--->---|--|--|------o-|--|A2   Y1|-----|------------------->|24 A9      |
  3 o--->---|--|--|----o-|-|--|A1   Y0|-----|------------------->|25 A8      |
  2 o--->---|--|--|--o-|-|-|--|A0     |     |                    |           |
            |  |  |  | | | |  +-------+     |      +5------------|28 +5V(NC) |
            |  |  |  | | | |                |                    |           |
            |  |  |  | | | |  +-------+     |                    |           |
            |  |  |  | | | |  |     Y7|-----|------------o------>|3  A7      |
            |  |  +---------->|EN     |-----|-----------o|------>|4  A6      |
            |  |     | | | |  |       |-----|----------o||------>|5  A5      |
            |  |     | | | |  | 259   |-----|---------o|||------>|6  A4      |
            |  |     | | | |  |       |-----|--------o||||------>|7  A3      |
            |  |     | | | |  |       |-----|-------o|||||------>|8  A2      |
            |  |     | | | +--|D      |-----|------o||||||------>|9  A1      |
            |  |     | | +----|A2   Y0|-----|-----o|||||||------>|10 A0      |
            |  |     | +------|A1     |     |     ||||||||       |           |
            |  |     +--------|A0  RST|     |     ||||||||       | ZIF28     |
            |  |              +-------+     |   +------------+   | socket    |
            |  |                    |       |   |   data in  |   |  for      |
            |  |                   +5       +-->|/OE         |   | EEPROM    |
            |  |                                |     574    |   |           |
            |  +------------------------------->|CLK         |   |           |
            +----+                              |   data out |   |           |
                 |                              +------------+   |           |
                 |              +------------+     ||||||||      |           |
  9 o-------------------------->| SEL        |     ||||||||      |           |
                 |              |          B3|<----|||||||o------|19 D7      |
 11 o---<-----------------------|Y3        B2|<----||||||o-------|18 D6      |
 12 o---<-----------------------|Y2        B1|<----|||||o--------|17 D5      |
 13 o---<-----------------------|Y1  157   B0|<----||||o---------|16 D4      |
 15 o---<-----------------------|Y0        A3|<----|||o----------|15 D3      |
                 |              |          A2|<----||o--- data---|13 D2      |
                 |              |          A1|<----|o---- bus ---|12 D1      |
                 |       GND----|/OE       A0|<----o-------------|11 D0      |
  +5--o--+       |              +------------+                   |           |
      |  |  __   o---------------------------------------------->|20 /CE   14|
    100K +-|  \  |  __                                           +---------+-+
  sw1 |    |   O-o-|  \ 1/2 74HCT132                                       |
  o-->o----|__/    |   O---390ohm--+                                       |
  |   |          +-|__/            |                                  GND -+
  |  --- 1uF     |                LED
  |  ---     +5--+                 |
  |   |                            |
  +---o----------------------------o- GND
Заметки:

  1. Номера контактов разъема параллельного порта DB25 с левого угла.
  2. 24-контактные микросхемы (например, 2816) должны быть выровнены по нижнему краю 28-контактного ZIF сокета.
  3. Номера ножек справа для ZIF-28 сокета, не для микросхем.
  4. Названия сигналов в ZIF-28 сокете для 28-контактных EEPROM ( для 24-контактных EEPROM они приведены в приложениях).
  5. J1 и J2 однорядные 3-контактные разъемы для джамперов (или используйте DPDT переключатель).
  6. Для 28-контактных EEPROM, замкните левую пару контактов как на J1, так и на J2.
  7. Для 24-контактных EEPROM, замкните левую пару контактов и на J1, и на J2.
  8. Переключатель SPST sw1 должен быть открыт для разрешения функционирования программатора.
  9. Полный список контактов микросхем смотрите в файле pinouts.txt
Abhijit Dasgupta
takdoom@yahoo.com

EPROM программатор и микросхемы памяти

ниже приведена информация о EPROM и различных типах микросхем памяти.

Постоянные микросхемы памяти

Приводится короткое описание типов микросхем памяти.

  • PROM: Произносится prom - сокращение для программируемых ПЗУ. PROM - микросхема памяти, на которую данные могут быть записаны только один раз. Как только программа была записана на PROM, она остается там навсегда. В отличие от RAM, PROM хранят свое содержимое даже при выключении питания компьютера. Разница между PROM и ROM (ПЗУ) в том, что PROM производится с чистой памятью, а ROM программируется в процессе производства. Для записи в микросхемы PROM, вам потребуется специальное устройство, называемое PROM программатором. Процесс программирования PROM иногда называется созданием PROM. EPROM (стираемые ПЗУ) - специальный тип PROM, который может быть стерт ультрафиолетовым светом. После стирания микросхема может быть перепрограммирована. EEPROM подобны PROM, но требуют электрического стирания.

  • EPROM: Сокращение для стираемой энергонезависимой памяти и произносится e-prom, EPROM - специальный тип памяти, который хранит содержимое до того, как будет стерт ультрафиолетовым светом. Ультрафиолетовый свет стирает содержимое, делая возможным перепрограммирование памяти. Для записи стертой EPROM вам нужно специальное устройство называемое PROM программатором. EPROM отличаются от PROM тем, что PROM может быть записан только единожды и не может быть стерт. EPROM широко используются в ПК, так как они позволяют производителям менять содержимое PROM перед отгрузкой компьютера. Это означает, что могут быть устранены ошибки или записаны более новые версии. Заметка о EPROM технологии: Биты в EPROM программируются инжекцией электронов повышенным напряжением в плавающие ворота field-effect транзистора, где желателен 0 бит. Тут электроны попадают в ловушку, так как транзистор не проводящий, читается как 0. Для стирания EPROM, пойманным электронам дается достаточно энергии для выхода через плавающие ворота путем бомбардирования микросхемы ультрафиолетовым излучением через кварцевое окно. При обычном использовании для предотвращения медленной очистки в течение нескольких лет от солнечного и флуоресцентного света, это кварцевое окно покрывается непрозрачной пленкой.

  • EEPROM: Сокращение для электрически стираемых ПЗУ. Произносится как double-e-prom или e-e-prom, EEPROM - специальный тип ППЗУ, может быть стерт посредством электрического заряда. Как и другие типы ППЗУ, EEPROM сохраняет свое содержимое даже при отключении питания. И, как и другие типы ПЗУ, EEPROM не быстрее RAM. EEPROM подобен flash памяти (иногда называется flash EEPROM). Принципиальная разница в том, что EEPROM способен считывать или записывать данные побайтно, а flash память позволяет записывать или стирать данные блоками. Таким образом, flash память более быстрая.

  • FRAM: Сокращение для Ferroelectric Random Access Memory, тип энергонезависимой памяти разработанной Ramtron International Corporation. FRAM сочетает скорость DRAM и SRAM с энергонезависимостью ПЗУ. Из-за ее высокой скорости, она заменила EEPROM во многих устройствах. Термин FRAM - торговая марка Ramtron.

  • NVRAM: Сокращение для Non-Volatile Random Access Memory, тип памяти, которая сохраняет свое содержимое при отключенном питании. Один из типов NVRAM - SRAM, которая делается энергонезависимой подключением к постоянному источнику питания, например батарейке. Другой тип NVRAM использует для сохранения содержимого при отключенном питании микросхемы EEPROM. В этом случае, NVRAM состоит из комбинации микросхем SRAM и EEPROM.

  • Пузырьковая память: Тип энергонезависимой памяти состоящей из тонких слоев материала, который может намагничиваться в одном направлении. Когда магнитное поле прилагается к окружности в веществе, которое не намагничивается в том же направлении, площадь ограничивается маленькой окружностью, или пузырьком. Было широко распространено мнение, что пузырьковая память станет одной из лидирующих технологий памяти, но эти обещания не были выполнены. Другие типы энергонезависимой памяти, такие как EEPROM, и быстрее и дешевле, чем пузырьковая память.

  • Flash память: Специальный тип EEPROM, который может быть стерт или перепрограммирован блоками, а не побайтно. BIOS многих современных ПК размещен в flash памяти, так что он может быть просто обновлен при необходимости. Такой BIOS называется flash BIOS. Flash память также очень популярна в модемах, что позволяет производителям поддерживать новые протоколы по мере их стандартизации.

Список производителей EEPROM

Список производителей EPROM смотрите на сайте Yahoo и сходите в economy->company->Hardware->Peripherals->Device programmers.

Введение в загрузку по сети и Etherboot

Эта глава написана Ken Yap ken.yap@acm.org и объясняет способ загрузки компьютера без доступа к вашему жесткому диску с размещенной в энергонезависимой памяти программы. Это идеальная техника для содержания и настройки группы linux компьютеров.

Что такое загрузка по сети?

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

Как это работает?

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

  1. идентификацию

  2. образ операционной системы и

  3. обычно, рабочую файловую систему.

Рассмотрим бездисковый компьютер (DC) у которого есть загрузочная сетевая ПЗУ. Возможно наличие нескольких идентичных бездисковых компьютеров. Как же их различать? У этих компьютеров (фактически у их сетевых карт) есть некоторая уникальная информация, это - сетевой Ethernet адрес. Каждая Ethernet карта в мире имеет уникальный 48 битный Ethernet адрес, так как каждый производитель Ethernet аппаратуры зарезервировал для себя блок адресов. По соглашению эти адреса записываются в виде шестнадцатеричных чисел разделенных двоеточием по группам, в каждой группе по две цифры, например - 00:60:08:C7:A3:D8 .

Используемые для получения IP адреса по данному Ethernet адресу протоколы называются Boot Protocol (BOOTP) и Dynamic Host Configuration Protocol (DHCP). DHCP - развитие BOOTP. В наших рассуждениях, если не указано иное, все что применимо к BOOTP также применимо к DHCP. (Фактически немного неправильно говорить, что BOOTP и DHCP всего лишь транслируют Ethernet адреса, в них предусмотрено обеспечение работы BOOTP и DHCP с любым типом аппаратных адресов, но большинство использует Ethernet.)

Пример обмена информацией BOOTP выглядит подобным образом:

DC: Привет, мой аппаратный адрес 00:60:08:C7:A3:D8, дай мне мой IP адрес.

BOOTP сервер: (Смотрит в базу данных адресов.) Твое имя aldebaran, твой IP адрес 192.168.1.100, твой сервер 192.168.1.1, твой предполагаемый загрузочный файл /tftpboot/vmlinux.nb (и еще несколько частей информации).

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

После получения IP адреса, DC должен загрузить образ операционной системы и выполнить его. Другой используемый тут Интернет протокол называется Trivial File Transfer Protocol (TFTP). TFTP подобен обрезанной версии FTP --- тут нет идентификации, и он работает поверх User Datagram Protocol (UDP), а не поверх Transmission Control Protocol (TCP). UDP был выбран вместо TCP для упрощения. Реализация UDP на DC может быть маленькой, посему код легко помещается в ПЗУ. Так как UDP блочно-ориентированный протокол, в отличие от потоково-ориентированных протоколов, передача следует блок за блоком, как например:

DC: Дай мне 1 блок файла /tftpboot/vmlinux.nb.
TFTP сервер: Лови.
DC: Дай мне блок 2.

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

В конце, в случае запуска операционной системы, должна быть предоставлена корневая файловая система. Linux и другими Unix-ами обычно используется Network File System (NFS), однако возможны другие варианты. В этом случае код не должен находиться в ROM, а должен быть частью загружаемой операционной системы. Однако операционная система вместо реального диска должна запустить корневую файловую систему - NFS. Linux содержит требуемые для этого настройки.

Сетевая загрузка на практике

Сетевой загрузчик - небольшая программа, запускаемая как расширение BIOS, расположена обычно на EPROM сетевой платы. Она обрабатывает BOOTP запрос и загрузку по TFTP, а затем передает управление загруженному образу. Она использует TCP/IP протокол, но загруженный образ не обязательно должен быть Linux. Загруженный образ может быть любым, даже DOS. Он также может быть загружен с дискеты для проверки и временных настроек.

Наряду с коммерческими ROM, есть ДВА свободных пакета сетевой загрузки. Свободные реализации TCP/IP сетевых загрузчиков -

  1. ETHERBOOT http://www.slug.org.au/etherboot/ и его зеркало, а также google-сайт

  2. NETBOOT http://www.han.de/~gero/netboot.html

Etherboot использует встроенные драйвера, в то время как Netboot использует Packet драйвера. Сначала вы должны проверить, что ваша сетевая карта поддерживается Etherboot или Netboot. До того как вы, в конечном счете, найдете того, кто захочет вставить для вас код в EPROM (Erasable Programmable Read Only Memory), вы можете загружаться по сети с дискеты.

Для создания загрузочной дискеты требуется специальный загрузочный блок, присутствующий в дистрибутиве. Это - маленькая 512 байтная программа загружает следующие далее на дискете блоки в память и предает им выполнение. Таким образом, для создания загрузочной дискеты, требуется соединить загрузочный блок с содержащим драйвер сетевой карты исполняемым файлом Etherboot следующим образом:

# cat floppyload.bin 3c509.lzrom > /dev/fd0

Возьмите пакет nfsboot (пакет доступен на вашем любимом зеркале linux в каталоге /pub/Linux/system/Linux-boot directory). Он содержит booteprom образ вашей сетевой карты (например wd8013), который можно непосредственно записать. Также смотрите LTSP сайт http://www.ltsp.org

Перед тем, как ставить дискету для загрузки по сети, вам следует настроить три службы на Linux -

  1. BOOTP (или DHCP)

  2. TFTP и

  3. NFS.

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

Bootp

Установите Bootp. Ищите bootp*.rpm на компакт-диске Redhat linux. Также взгляните на RPM пакеты на сайте LTSP http://www.ltsp.org. Просмотрите следующие страницы руководств 'man 5 bootptab', 'man 8 bootpd', 'man 8 bootpef', 'man 8 bootptest'. Затем проверьте, что сервер ожидает bootp запросы. Демон может быть запущен либо непосредственно командой
bootpd -s

либо используя inetd, отредактируйте файл /etc/inetd.conf и вставьте похожую строку:

bootps dgram   udp     wait    root    /usr/sbin/in.bootpd    bootpd
Вставьте или раскомментируйте следующие две строки в /etc/services:
bootps          67/tcp          # BOOTP server
tftp            69/udp          # TFTP server

Если вы модифицировали /etc/inetd.conf, перезапустите inetd, послав процессу HUP сигнал.
kill -HUP <номер процесса inetd>.

Далее, вам следует указать bootp базу данных с соответствиями Ethernet адресов IP адресам. Эта база данных находится в /etc/bootptab. Вы должны модифицировать ее вставив IP адрес вашего шлюза (gateway), dns сервера, и ethernet адреса ваших бездисковых машин. Он содержит строки следующего вида:

aldebaran.foo.com:ha=006008C7A3D8:ip=192.168.1.100:bf=/tftpboot/vmlinuz.nb 

Можно указать и прочую информацию, но мы начнем с простого.

Другой пример /etc/bootptab:

  global.prof:\
          :sm=255.255.255.0:\
          :ds=192.168.1.5:\
          :gw=192.168.1.19:\
          :ht=ethernet:\
          :bf=linux:
  machine1:hd=/export/root/machine1:tc=global.prof:ha=0000c0863d7a:ip=192.168.1.140:
  machine2:hd=/export/root/machine2:tc=global.prof:ha=0800110244e1:ip=192.168.1.141:
  machine3:hd=/export/root/machine3:tc=global.prof:ha=0800110244de:ip=192.168.1.142:

global.prof - общий шаблон элементов хостов, где

  • поле sm содержит маску подсети (subnet mask)

  • поле ds содержит адрес DNS сервера

  • поле gw содержит адрес шлюза (gateway)

  • поле ht содержит аппаратный тип сети

  • поле bf содержит имя загрузочного файла

После этого, каждая машина должна быть представлена строкой:

  • первое поле содержит имя хоста,

  • поле hd содержит каталог загрузочного файла,

  • общий шаблон может быть указан в поле tc

  • поле ha содержит аппаратный адрес ethernet карты

  • поле ip содержит назначаемый ip адрес.

Теперь загрузите бездисковый компьютер с дискеты, и он должен обнаружить вашу Ethernet карту и выдать широковещательный BOOTP запрос. Если все идет как надо, сервер должен вернуть ему требуемую информацию. Так как /tftpboot/vmlinux.nb еще не существует, у него не получится загрузить этот файл. Теперь вам следует скомпилировать специальное ядро, оно должно включать опцию монтирования корневой файловой системы с NFS. Также вам следует включить опцию получения IP адреса из BOOTP ответа. Также вы должны включить в ядро Linux драйвер вашей сетевой карты, а не загружать его как модуль. Можно загружать начальный ramdisk, и таким образом сделать возможной загрузку модулей, но этим лучше заняться позже.

Вы не можете установить zImage полученный непосредственно в результате компиляции ядра. Он должен быть преобразован в помеченный образ. Помеченный образ - обычное ядро со специальным заголовком, который указывает сетевому загрузчику, куда в памяти помещать байты и с какого адреса запускать программу. Для создания этого образа используете программу mknbi-linux. Эта утилиту можно найти в дистрибутиве Etherboot. После создания образа, поместите его в каталог /tftpboot под именем указанным в /etc/bootptab. Проверьте, чтобы этот файл был доступен всем для чтения, так как у tftp сервера нет специальных привилегий.

Tftp

TFTP ищите в tftp*.rpm на компакт-диске Redhat Linux. TFTP (Trivial File Transfer Protocol) - подобный ftp протокол передачи файлов, но намного более простой, что делает возможным закодировать его в EPROM. TFTP может использоваться двумя путями:

  • Простой tftp: обозначает, что клиент получает доступ ко всем файлам вашей системы. Это просто, но образуется большая дыра в безопасности (любой может получить по tftp ваш файл с паролями).

  • Безопасный tftp: tftp сервер использует систему chroot.2 для смены собственного корневого каталога. Все, что находится вне нового корневого каталога полностью недоступно. Так как chroot каталог становится новым корневым каталогом, поле hd в файле bootptab должно отражать эту ситуацию. Например: при использовании небезопасного tftp, поле hd содержит полный путь к загрузочному каталогу: /export/root/machine1. При использовании безопасного tftp с каталогом /export в качестве корневого каталога, каталог /export станет / , и поле hd должно быть /root/machine1.

Обычно tftpd запускается из inetd подобного вида строкой в /etc/inetd.conf.

tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s /tftpboot
#tftp   dgram   udp     wait    root    /usr/sbin/in.tftpd     tftpd /export

Еще раз перезапустите inetd, послав ему HUP сигнал, и снова попробуйте загрузиться по сети, на этот раз должно загрузиться и выполниться ядро. Вы заметите, что загрузка продолжается до точки, где ядро пытается смонтировать корневую файловую систему. Теперь вы должны настроить экспорт NFS разделов.

Корневая файловая система на NFS

По различным причинам, использовать корневую файловую систему сервера в качестве корневой файловой системы бездискового компьютера - плохая идея. Одна из них: есть множество различных конфигурационных файлов, и бездисковый компьютер таким путем будет получать неправильную информацию. Другая - безопасность. Опасно разрешать доступ на запись (а доступ на запись требуется корневой файловой системе по различным причинам) к вашему серверу. Однако хорошей новостью является то, что корневая файловая система бездискового компьютера невелика, всего лишь около 30 Мб и большая ее часть разделяется всеми бездисковыми компьютерами.

В идеале, для создания корневой файловой системы вам нужно знать какие из файлов вашего дистрибутива должны присутствовать. Критичными для загрузки являются файлы устройств, файлы в /sbin и /etc. Вы можете избежать тяжелой работы, создав копию корневой файловой системы и модифицировав несколько файлов для бездискового компьютера. В дистрибутиве Etherboot есть учебник и ссылки на группу скриптов, которые создают корневую файловую систему бездискового компьютера из существующей корневой файловой системы сервера. Также в документации Etherboot есть подсказки, так как это часто сложная часть установки.

Подстроенное для бездискового компьютера ядро Linux ожидает увидеть корневую файловую систему в /tftpboot/(IP адрес бездискового компьютера), например: /tftpboot/192.168.1.100 в вышеприведенном случае. По желанию его можно изменить при конфигурировании ядра.

Теперь создайте или отредактируйте на сервере /etc/exports (см. 'man 5 exports' и 'man 8 exportfs') и поместите строку следующего вида:

/tftpboot/192.168.1.100 aldebaran.foo.com(rw,no_root_squash)

Доступ rw требуется различным системным службам. Атрибут no_root_squash предохраняет NFS систему от отображения root идентификатора на другой. Если это не указано, различные демоны и программы регистрации будут несчастны.

Запустите или перезапустите службы NFS (rpc.portmap и rpc.mountd) и попробуйте загрузить бездисковый компьютер. Если вам повезет, ядро смонтирует корневую файловую систему и загрузится до приглашения к входу. Скорее всего, вы обнаружите, что что-то упустили из виду. Большинство дистрибутивов Linux не предусмотрены для бездисковой загрузки и требуют небольшой модификации. Наиболее частая неисправность - система, в процессе загрузки, полагается на файлы в каталоге /usr, который при загрузке обычно импортируется с сервера позже. Два возможных решения -

  1. Предоставить несколько требуемых файлов в небольшом каталоге /usr на корневой файловой системе, который далее будет перекрыт при импорте /usr, и

  2. Модифицировать пути для поиска файлов в корневой файловой системе. Файлы нужно редактировать в каталоге /tftpboot/192.168.1.100 (помните, что это корневой каталог бездискового компьютера).

Возможно, вы захотите монтировать сервера и другие каталоги, такие как /usr (который должен экспортироваться в режиме только для чтения).

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

Одним из основных способов использования загрузки по сети являются X-терминалы. Отсутствие диска на терминале делает его более тихим и предоставляет удобное рабочее окружение. В идеале, машина должна иметь 16 или более мегабайт памяти и самую лучшую видео карту, которую вы сможете для нее найти. Это идеальное использование устаревших старших 486 и нижних Pentium моделей. Некоторые люди используют загрузку по сети для создания кластеров машин, с упрощенным обслуживанием, например кластера из машин в одной комнате.

Дополнительная информация

Для начала вам следует остановиться на домашней странице Etherboot: http://www.slug.org.au/etherboot/ или зеркале и google-сайт

Там вы найдете ссылки на другие ресурсы, включая списки рассылки на которые вы можете подписаться, и где обсуждаются проблемы и решения по данной теме.

Сопутствующие документы

Настройка Redhat Linux

Бездисковый компьютер запрашивает у NFS сервера монтирование /tftpboot/< IP адрес бездискового компьютера> (в ядре Linux 2.1 и выше это - /tftpboot/<имя бездискового компьютера в bootptab> ) в качестве корневого каталога '/'. Вы должны экспортировать его с сервера (rw, no_root_squash) так как бездисковый компьютер захочет в него писать (регистрационные файлы и т.д.).

Корневой каталог / должен содержать /sbin, /bin, /lib, /etc, /var, /tmp, /root, /dev и /proc.

/sbin, /bin, /lib могут быть копиями с существующей Redhat Linux системы. Они могут совместно использоваться всеми бездисковыми компьютерами. Они не должны быть ссылками на оригинальные файлы.

/etc, /var и /dev не должны быть совместно используемыми копиями. Постройте /etc/sysconfig/network, /etc/sysconfig/network-scripts/ifcfg-eth0, /etc/fstab, /etc/conf.modules, и прочее. Выключите все не нужные вам сетевые службы. Удалите все лишнее из /var, например базу данных RPM, файлы lpd.

/root и /proc должны существовать. /tmp должен существовать и иметь режим доступа 1777.

Вероятно вы захотите создать токи монтирования /usr и /home. /usr может быть смонтирован в режиме ro (только чтение).

Должно быть достаточно около 10 Мб на бездисковый компьютер плюс около 15 Мб разделяемых файлов. Если ваши бездисковые компьютеры очень похожи, также можно совместно использовать один образ ядра.

Вот пример скрипта для создания первой корневой файловой системы.
#!/bin/sh
if [ $# != 1 ]
then
 echo Usage: $0 client-IP-addr
 exit 1
fi

cd /

umask 022

mkdir -p /tftpboot/$1

# создаем каталоги
for d in home mnt proc tmp usr
do
 mkdir /tftpboot/$1/$d
 done

 chmod 1777 /tftpboot/$1/tmp

 touch /tftpboot/$1/fastboot
 chattr +i /tftpboot/$1/fastboot

 # копируем каталоги
 cp -a bin lib sbin dev etc root var /tftpboot/$1

cat <<EOF
Теперь в /tftpboot/$1/etc, редактируем

  sysconfig/network
  sysconfig/network-scripts/ifcfg-eth0
  fstab
  conf.modules

и настраиваем

  rc.d/rc3.d
EOF

Вот примерный скрипт для дублирования корневой файловой системы
#!/bin/sh
if [ $# != 2 ]
then
 echo Usage: $0 olddir newdir
 exit 1
fi

cd /tftpboot

if [ ! -d $1 ]
then
 echo $1 is not a directory
 exit 1
fi

umask 022

mkdir -p $2

# создаем каталоги
for d in home mnt proc tmp usr
do
 mkdir $2/$d
done

chmod 1777 $2/tmp

touch $2/fastboot
chattr +i $2/fastboot

# link these ones
for d in bin lib sbin
do
 (cd $1; find $d -print | cpio -pl ../$2)
done

# копируем 
for d in dev etc root var
do
 cp -a $1/$d $2
done

cat <<EOF
Теперь в /tftpboot/$2/etc редактируем

 sysconfig/network
 sysconfig/network-scripts/ifcfg-eth0
 fstab (maybe)
 conf.modules (maybe)

и настраиваем

 rc.d/rc3.d
EOF

X-terminal

На сервере, проверьте, что бездисковый компьютер соответствует пунктам в /etc/X11/xdm/Xaccess и закомментируйте :0 /etc/X11/xdm/Xservers. Затем проверьте, что xdm запускается з init скриптов.

На клиенте запустите X -query server

вы увидите окно xdm с приглашением к входу, и затем все ваши X клиенты будут запускаться на сервере.

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

LanWorks BootWare PROMs

Эта информация поможет сохранить вам время. При создании LanWorks BootWare(tm) PROM для корректного запуска образа ядра Linux, нужно модифицировать "bootsector" часть образа ядра так, чтобы позволить загрузочному prom переходить непосредственно к стартовому адресу образа. Формат загрузочного образа созданного утилитой `mknbi-linux' из пакета netboot/etherboot не запустится при использовании BootWare PROM.

Модифицированный загрузочный сектор вместе с Makefile для создания BootWare-bootable образа после компиляции можно найти в -

Детали по его установке смотрите в файле README. На данный момент, поддерживаются только "zImage" типы ядер. К несчастью, параметры ядра игнорируются.

Эта секция любезно предоставлена Jochen Kmietsch, с вопросами обращаться по email jochen.kmietsch@tu-clausthal.de.

Etherboot

Пакет для создания образов ПЗУ, которые выполняются на X86 компьютерах и могут загружать код по сети. Обычно компьютеры - бездисковые, а код - Linux, но возможны и другие варианты.

Способ установки, настройки и использования пакета Etherboot объясняет документ на домашней странице Etherboot, на зеркале и на google-сайте.

Netboot

Netboot написан ZurЭck zu Gero. Его главный сайт на http://www.han.de/~gero/netboot.html.

Введение

Следующий список приводит несколько примеров использования Netboot:

  • Спул принтера

  • Сервер терминалов

  • X11 терминал

  • Система регистрации данных

  • Сетевые компьютеры

  • И еще много чего ...

Протокол BOOTP как определено в Разд. Темы обсуждения для Академий и Университетов > используется для нахождения образа bootrom, для получения необходимой информации о загрузке, а затем и фактического использования образа используется протокол TFTP ка определено Разд. Темы обсуждения для Академий и Университетов >.

Точное описание этого процесса можно найти на http://www.han.de/~gero/netboot/english/spec.html.

Почтовые рассылки

Касательно загрузки по сети есть почтовые рассылки. Для подписки просто пошлите письмо со следующей строкой в теле письма

subscribe netboot

по адресу majordomo@baghira.han.de

Тема письма не имеет значения. После подписки, вы можете посылать сообщения в список рассылки по адресу netboot@baghira.han.de.

Полезные ссылки по Netboot

Архив почтовых рассылок по Netboot на http://www.han.de/~gero/netboot/archive/maillist.html

Ссылки по данной теме

Заметка о авторских правах

Copyright policy is GNU/GPL as per LDP (Linux Documentation project). LDP is a GNU/GPL project. Additional restrictions are - you must retain the author's name, email address and this copyright notice on all the copies. If you make any changes or additions to this document then you should intimate all the authors of this document.

Правила распространения GNU/GPL согласно LDP (Linux Documentation project). LDP это - GNU/GPL проект. Дополнительные ограничения - вы должны сохранить имя автора, его email адрес и эту заметку об авторских правах во всех копиях. Если вы делаете любые изменения или дополнения к этому документу, то вы обязаны поставить в известность всех авторов этого документа.

Другие форматы этого документа

Данная глава не является переводом соответствующей главы оригинального документа, с разрешения Al Dev (Alavoor Vasudevan), она переписана для учета особенностей переведенного документа.

Оригинальный документ распространяется в 14 различных форматах - DVI, Postscript, Latex, Adobe Acrobat PDF, LyX, GNU-info, HTML, RTF(Rich Text Format), обычный текст, Unix man page, отдельный HTML файл, SGML (Linuxdoc format), SGML (Docbook format), MS WinHelp. Переведенный документ доступен в форматах - DocBook XML, HTML и PDF.

Оригинал документа находится на -

Домашняя страница перевода http://mvd.h1.ru/tr/

Переведенный документ написан в формате DocBook XML.

Перевод документа в html формат выполнен с помощью утилиты xsltproc входящей в пакет libxslt. Пакет libxslt можно взять на http://xmlsoft.org. Также потребуются Docbook DTD с http://www.oasis-open.org/docbook/. и Docbook XSL с http://docbook.sourceforge.net/projects/xsl/.

Преобразование в HTML формат выполняется следующим образом:

Формат Acrobat PDF

Формат Acrobat PDF можно получить следующим образом:

Заметка: Созданный таким способом pdf успешно просматривается программами Acrobat Reader и gv, но его нельзя просмотреть программой xpdf. Если вы знаете, каким образом сделать возможным просмотр в программе xpdf сообщите мне, пожалуйста, по адресу mvd@altlinux.ru. У меня не получилось успешно внедрять pfb шрифты, все кириллические символы в pdf документе заменялись символом '#'. Если вы знаете способ решения этой проблемы, сообщите мне по тому же адресу.

Темы обсуждения для Академий и Университетов

Эта глава представляет только академический интерес - для университетов или исследовательских институтов. Если у вас есть время, вы можете ее прочесть. Это - ссылки на RFC и историю бездисковых узлов. Студенты могут найти эти ссылки интересными для прочтения информации об истории и разработке бездисковых рабочих станций.

Предостережение: Приведенная информация и данные по этим URLs могут быть устаревшими.

[Источник: linux-ve.net]

[ опубликовано 11/06/2003 ]

Robert Nemkin - HOW-TO по созданию бездисковых узлов на базе Linux