Linux операционная система контроллер

Содержание
  1. 16 команд для проверки аппаратной части компьютера в Linux
  2. Информация о комплектации компьютера
  3. 1. lscpu
  4. 2. lshw – список аппаратных устройств
  5. 3. hwinfo – информация об аппаратуре компьютера
  6. 4. lspci – список устройств PCI
  7. 5. lsscsi — список устройств scsi
  8. 6. lsusb – подробный список шин и устройств usb
  9. 7. Inxi
  10. 8. lsblk — список блочных устройств
  11. 9. df – дисковое пространство файловых систем
  12. 10. Pydf – команда df, написанная на языке Python
  13. 11. fdisk
  14. 12. mount
  15. 13. free – проверка оперативной памяти
  16. 14. dmidecode
  17. 15. Файлы /proc
  18. 16. hdparm
  19. Заключение
  20. Linux-контроллер UCDK: адаптируем к задаче
  21. Начало проекта: использование готового устройства
  22. Старт за час: программирование на виртуальной Linux-машине
  23. Что? Где? Когда? Распределение памяти
  24. Драйверы: лучше, когда они уже есть
  25. Начните с модификации демонстрационных программ
  26. Выйдите на рынок первыми
  27. Заключение
  28. Литература
  29. AMOS-3001 — индустриальный безвентиляторный компьютер умещается на ладони

16 команд для проверки аппаратной части компьютера в Linux

Информация о комплектации компьютера

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

В данной статье кратко рассказывается о нескольких наиболее часто используемых командах, предназначенных для получения информации и особенностях настройки различных периферийных устройств и компонентах компьютера. Среди рассматриваемых — команды lscpu, hwinfo, lshw, dmidecode, lspci и другие.

1. lscpu

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

2. lshw – список аппаратных устройств

Утилита общего назначения, которая сообщает подробную и краткую информацию о нескольких различных аппаратных устройствах, таких как процессор, память, диск, контроллеры usb, сетевые адаптеры и т.д. Команда lscpu извлекает информацию из различных файлов /proc.

Если вы хотите больше узнать о команде lshw, то обратите внимание на пост Получаем интфомацию в Linux об аппаратных частях компьютера с помощью команды lshw .

3. hwinfo – информация об аппаратуре компьютера

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

4. lspci – список устройств PCI

Команда lspci выдает список всех шин PCI, а также подробную информация об устройствах, которые к ним подключены. Под эту категорию подпадают следующие устройства — адаптер vga, графическая карта, сетевой адаптер, порты usb, контроллеры sata и т.д.

Отфильтруйте информацию о конкретном устройстве с помощью команды grep.

5. lsscsi — список устройств scsi

Выдается список устройств scsi/sata, например, жестких дисков и оптических приводов.

6. lsusb – подробный список шин и устройств usb

Эта команда показывает информацию о контроллерах usb и подробные сведения о подключенных к ним устройствах. По умолчанию выдается краткая информация. Для того, чтобы о каждом порте usb получить подробную информацию, используйте параметр «-v».

В системе, информация о которой приведена выше, один порт usb используется для подключения мыши.

7. Inxi

Inxi является мега скриптом bash, состоящим из 10000 строк кода, с помощью которого из разных источников и команд системы будет получена подробная информация об аппаратном обеспечении и будет создан отчет в виде, позволяющим его читать пользователям, которые не являются техническими специалистами.

8. lsblk — список блочных устройств

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

9. df – дисковое пространство файловых систем

Отчеты о различных разделах, об их точках монтирования и о том, сколько в каждом разделе есть свободного места.

10. Pydf – команда df, написанная на языке Python

Улучшенный вариант команды df , написанной на языке python, который выдает информацию в цвете, что выглядит лучше, чем информация, выдаваемая командой df

11. fdisk

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

12. mount

Команда mount используется для монтирования/демонтирования, а также для просмотра смонтированных файловых систем.

Опять же, используйте команду grep для отфильтровывания информации только о тех файловых системах, которые вам интересны

13. free – проверка оперативной памяти

С помощью команды free проверьте объем используемой, свободной и общий объема оперативной памяти, имеющейся в системе.

14. dmidecode

Команда dmidecode отличается от всех других команд. Она извлекает информацию об оборудовании, читая для этого данные из структур данных SMBOIS (которые также называются таблицами DMI).

Подробности смотрите на странице man.

15. Файлы /proc

Во многих виртуальных файлах каталога /proc содержится информация об аппаратном обеспечении и о конфигурациях. Ниже приведены некоторые из них.

Читайте также:  Linux upload file http

Информация о процессоре/памяти

Информация о Linux/ядре

16. hdparm

Команда hdparm получает информацию об устройствах sata, например, жестких дисков.

Заключение

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

Для тех, кто не хочет запоминать и вводить команды, на рабочем столе есть графические инструментальные средства. Hardinfo и I-nex — некоторые из популярных инструментальных средств, с помощью которых можно получить подробную информацию о большом количестве различных аппаратных компонентов.

Источник

Linux-контроллер UCDK: адаптируем к задаче

В институте, где я учился, преподает профессор, который не устает повторять студентам, что инженер должен разрабатывать «оборудование в корпусе, а не в принципе». В свете недавнего кризиса я бы добавил: «за три месяца, а не в ближайшее время». Эта статья для тех, кто разделяет такую точку зрения, кто планирует разработать устройство с определенной функциональностью и за конкретный срок, используя в нем операционную систему (ОС) Linux. Целесообразность использования Linux проверить просто: если устройство должно подключаться к Интернету и поддерживать сложные протоколы обмена, если Вы хотите использовать программы, написанные другими программистами, и не хотите покупать средства отладки и лицензии, то ваша следующая разработка должна быть сделана на Linux-e.

Да, чуть не забыл сказать про Windows TM CE, VxWorks TM и подобные ОС. Как правило, все эти системы платные, либо требуют лицензионных отчислений с продаж. И, если Вы не знаете однозначных аргументов в пользу использования какой-либо из них, то стоит начать с полностью открытой и бесплатной ОС. Зачем платить, когда это не обязательно? Выбрав платную ОС, Вы обрекаете себя на постоянные отчисления разработчикам (на обновления, на новые библиотеки и т.п.).

Перед тем как перейти к делу, оговорюсь: статья построена на описании конкретного устройства — контроллера UCDK, которое может быть использовано в:

  • Промышленной автоматизации;
  • Системах класса «умный дом»;
  • Системах учета энергоресурсов (АСКУЭ, АСТУЭ);
  • Охранно-пожарных системах;
  • Системах мониторинга работы и дистанционного управления оборудованием (связь, торговля, рекламные стенды, автоматы для продажи еды и платежные терминалы).

Несмотря на то, что в статье описан определенный продукт, в ней приводятся базовые стадии проекта, знакомство с которыми может быть полезными всем разработчикам, начинающим свой первый Linux-проект.

Начало проекта: использование готового устройства

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

Рис. 1. Плата контроллера UCDK

В первую очередь, однако, стоит уделить внимание наличию в составе отладочного комплекта исходных текстов операционной системы и драйверов для периферии — Board Support Package (BSP). Если их нет, или есть только бинарные образы, то помните, что исходные коды придется покупать дополнительно или «собирать» самостоятельно. «Собирать» есть из чего, ведь Linux — это открытая система, однако дело это долгое и требующее высокой квалификации. Например, нашей компании потребовалось полгода, чтобы запустить и отладить ядро, а также написать BSP для первого продукта.

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

Если Вы планируете разработку в области промышленной автоматизации, обратите внимание на контроллер UCDK производства компании «НПК Свитрон», который поставляется как в виде отдельной платы, так и в четырех видах корпусов. Контроллер UCDK имеет следующие технические характеристики (таблица 1).

Таблица 1. Технические характеристики контроллера UCDK

Процессорное ядро Процессор Atmel, AT91SAM9G20-CU (ARM9, 400 МГц)
SDRAM 64 Мбайт, 2 x K4S561632J-UI75
FLASH 128 Мбайт, K9F1G08UOB (NAND)
Сетевые интерфейсы Ethernet 1xEthernet 10/100 Мбит/с (KSZ8721CL) (опционально РоЕ)
GSM* 1xGSM/GPRS (HiLo NC, Sagem)
Интерфейсы 4 UARTs: 1хRS-232 (Rx+Tx), 1x RS-232/RS-485 (2 wire), 1xRS-485/CAN (2 wire), 1xTTL (Rx+Tx)
2xUSB-Host, 1xUSB-Slave
Датчики два порта 1-WireTM: до 20 цифровых датчиков на порт
Входы восемь изолированных* и восемь неизолированных входов
Питание Неизолированный блок питания 9…28 В DC
Изолированный блок питания* 36…75 В DC (опция 18…75 В DC)
Потребляемая мощность В минимальной комплектации 2,5 Вт
В максимальной комплектации с учетом зарядки аккумулятора До 20 Вт
Характеристики Диапазон рабочих температур -40…70°С
Габаритные размеры платы 203х141 мм
Дополнительно* Блок зарядки аккумулятора (BQ24702, TI), держатель SD-карты, звуковая подсистема (WAU8812YG, Nuvoton)
Датчики Дополнительно могут быть поставлены цифровые датчики: температуры, дыма, влажности, освещенности, переменного и постоянного напряжения
Читайте также:  Убираем тормоза windows 10

На UCDK установлена операционная система Linux 2.6.27. В комплект поставки входит DVD-диск, содержащий образ виртуальной машины, на котором уже записаны необходимые компиляторы и загрузчики, исходные тексты ОС, необходимые драйверы и примеры программ.

Контроллер UCDK является полностью открытой платформой — все исходные коды и схемы записаны на DVD-диск, а обновления и исправления доступны из Интернета.

Старт за час: программирование
на виртуальной Linux-машине

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

Комплект поставки UCDK использует технологию виртуальной машины (ВМ) [1] и разработан для максимально быстрого старта у заказчика. ВМ, входящая в поставку UCDK, представляет собой программную систему, эмулирующую аппаратное и программное обеспечение машины разработчика, на которой уже установлены все необходимые для работы и гарантированно совместимые компиляторы и загрузчики.

При этом для компиляции всех исходных кодов разработчик должен:

  • Разархивировать образ ВМ на диск своего компьютера;
  • Установить среду запуска ВМ;
  • Запустить ВМ (при этом на WindowsTM-машине запустится виртуальная машина Debian Linux);
  • Перейти в папку проекта (он также записан на ВМ) и выполнить команду «make all»;

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

Согласитесь, что начинать работу с полностью работающим проектом значительно удобнее. Ведь изменять быстрее, чем разбираться, как запустить.

Что? Где? Когда? Распределение памяти

Контроллер UCDK использует микросхему памяти NAND Flash объемом 128 Мбайт, которая логически разделена на блоки (partition) следующим образом (таблица 2).

Таблица 2. Деление на блоки контроллера UCDK

Блок (MTD partition) Размер, байт Название Описание
/dev/mtd0 128k Bootstrap Начальный загрузчик (0-го уровня)
/dev/mtd1 256k uboot Загрузчик ядра (1-го уровня)
/dev/mtd2 256k uboot environment Настройки окружения
/dev/mtd3 128k Не используется
/dev/mtd4 128k
/dev/mtd5 128k
/dev/mtd6 2M kernel Ядро Linux в сжатом виде
/dev/mtd7 2M
/dev/mtd8 123M root filesystem Корневая файловая система (JFFS2)

При включении питания управление передается начальному загрузчику Bootstrap, который устанавливает частоту работы процессора, настраивает порты ввода/вывода, подсистему watchdog и т.п. Далее управление получает загрузчик ядра U-Boot. Кроме функций распаковки и запуска ядра Linux, U-Boot предоставляет возможность настроить индивидуальные параметры модуля: МАС-адрес, серийный номер платы, распределение Flash и т.п. с использованием командной строки. Настройки, сделанные в U-Boot, сохраняются в разделе uboot environment. Они будут доступны системе при загрузке и во время работы ОС Linux. После запуска ядра Linux система становится похожей на обычный персональный компьютер. Она использует раздел root filesystem для хранения файлов. В этом разделе хранятся все драйвера, пользовательские и системные программы.

UCDK поставляется с загруженной микросхемой Flash-памяти. Пользователь может запускать программы, модифицировать и удалять файлы, записанные в корневой файловой системе UCDK. Эта файловая система использует раздел mtd8 во Flash и имеет тип JFFS2 (Journaling Flash File System version 2) [2].

Для ускорения разработки можно переключить UCDK на использование файловой системы NFS (Network File System), физически расположенной на диске персонального компьютера (рис. 2).

Рис. 2. Доступ к файловым системам из UCDK

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

  • Увеличить объем памяти контроллера (NFS хранится на диске компьютера). Увеличение особенно полезно при установке стандартных пакетов командой apt-get (см. ниже);
  • Существенно ускорить работу, связанную с частыми компиляциями программ. После компиляции программы на ВМ и ее копирования в папку NFS она сразу становится видимой из контроллера (перезагрузка не требуется).

Переключение между файловыми системами производится настройкой в U-boot.

Запись файлов-образов в NAND flash-контроллера осуществляется c использованием бесплатного пакета SAM-BA (Atmel Corporation) через интерфейсы USB Slave или JATG, а файла rootfs — по Ethernet.

Драйверы: лучше, когда они уже есть

Как уже отмечалось выше, ключевым фактором при выборе отладочной платы является наличие необходимых в вашем проекте интерфейсов. Этот фактор приобретает еще больший вес, если вместе с платой поставляются драйверы. Написать драйвер под Linux — дело, в принципе, несложное. Однако, оно требует опыта и знаний архитектуры Linux [3]. Кроме того, требуется время на его тестирование и отладку. И не стоит «утешать» себя мыслью, что для Linux есть все драйверы. Это верно, но интеграция свободно распространяемого компонента в вашу систему потребует значительного времени. Сначала новый драйвер работать не будет. Потребуется основательно разобраться в теме, чтобы через неделю-другую «сражений» исправить пяток ключевых строк.

В комплект поставки UCDK входят следующие драйверы:

  • Драйверы последовательных портов. Для CAN и RS-485 переключение направления передачи- автоматическое;
  • Драйвер для микросхемы Ethernet PHY, подключенной по шине RMII;
  • Драйвер часов реального времени (RTC);
  • Драйвер подсистемы WatchDog;
  • Поддержка 2хUSB- host;
  • Драйвер шины I 2 C;
  • Драйвер цифровых входов;
  • Драйвер опроса и управления GPIO-процессора (управление светодиодами, кнопка, состояние SIM-карты и т.п.)
Читайте также:  Windows 10 не печатают сетевые принтеры

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

Используйте программные пакеты и пакетные менеджеры

При работе с Linux программист должен быть хорошим читателем, мастером «copy-paste» и, только в небольшой степени, «Си-писателем». Основная прелесть Linux состоит в том, что для нее уже написано огромное число различных программ. Для установки, обновления и удаления программных пакетов в операционной системе Debian Linux (установленной в UCDK) используется пакетный менеджер Advanced packaging tool (apt). Он предназначен для автоматической установки, настройки и удаления программ из предварительно откомпилированных пакетов или из исходных кодов [4]. Пакеты берутся из так называемых репозиториев — хранилищ в Интернет, либо устанавливаются с внешних носителей.

Аpt (apt-get) значительно упрощает процесс установки программ. Например, для установки игры типа «тетрис» на UCDK следует ввести: apt-get update (обновление базы данных пакетного менеджера); apt-get install tint (установить приложение).

По умолчанию на UCDK записаны два программных пакета:

  • One Wire File System (OWFS). Используется для работы с цифровыми датчиками по протоколу 1-WireTM;
  • Apache2. Самая распространенная в мире платформа для WEB-серверов.

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

Начните с модификации демонстрационных программ

В комплект поставки UCDK входит несколько демонстрационных программ:

  • Работа с последовательными портами;
  • Пример для работы с WatchDog;
  • Hello world! (куда же без него).

Начните эксперименты с их редактирования, компиляции и запуска. Описание UCDK содержит пошаговые инструкции по их компиляции и запуску.

Выйдите на рынок первыми

Мир электроники развивается все быстрее, и ключевым фактором выхода на рынок становится скорость создания продуктов. Именно поэтому мы предлагаем контроллер UCDK не только в виде платы, на которой Вы можете отладить свое решение, но и в виде законченного устройства в корпусе (см. таблица 3)

Таблица 3. Конструктивные исполнения контроллера UCDK

Стальной, на DIN-рейку (216×42,5×150 мм) Стальной 1U «MiniRack» в 19’ стойку (440x44x245 мм) Пластиковый, настольн./настен. (216х44х152 мм) Алюминиевый, класс защиты IP67 (298х168х77 мм)

Кроме контроллеров UCDK «НПК Свитрон» предлагает внешние цифровые датчики температуры, влажности, освещенности, напряжения, адаптеры для подключения двухпроводных датчиков дыма и внешние реле. Все датчики поставляются в пластиковых корпусах и подключаются к UCDK по интерфейсу 1-WireTM.

Возможно, что у нас нет 100% требуемой Вам функциональности, однако для пилотного проекта ее может оказаться достаточно. Использовать готовое решение на старте — значительно дешевле и быстрее.

Ну а дальше — есть альтернативы. Если проект небольшой, то можно построить его на контроллерах в их текущем виде. Благодаря дополнительным разъемам на плате UCDK возможно расширение функциональности с использованием дочерних плат. Если же проект большой, требующий существенных изменений, то оправдана новая разработка аппаратной части.

Заключение

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

Литература

2. Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman. Linux Device Drivers, Third Edition. O’Reilly Media, 2005. — 640 с.

Получение технической информации, заказ образцов, поставка — e-mail: automation.vesti@compel.ru

AMOS-3001 — индустриальный безвентиляторный компьютер умещается на ладони

На склад КОМПЭЛ поступил миниатюрный индустриальный компьютер AMOS-3001-1E10A1 производства VIA Technologies, Тайвань. Компьютер выполнен во встраиваемом индустриальном корпусе и может работать в интервале температур от -20 до 70°C. Компьютер абсолютно бесшумен, так как в нем нет никаких движущихся элементов. Ядром системы является малопотребляющий процессор 1,0 ГГц VIA Eden TM ULV с низким тепловыделением, что позволило отказаться от активной системы охлаждения (нет вентиляторов). Вместо жесткого диска использован твердотельный SSD-накопитель. Большое количество внешних интерфейсов (HDMI, LAN, 4xUSB, 1xRS-232, 1xRS-232/422/485/GPIO) позволяет использовать компьютер в широком спектре приложений. AMOS-3001-1E10A1 поставляется с предустановленной ОС Windows XP.

  • Размер, мм: 150,0х45,0х108,0
  • Рабочая температура, °C: -20…70
  • Тактовая частота процессора 1,0 ГГц
  • ОЗУ — 1ГБ RAM
  • SSD — 2ГБ
  • 3D/2D AGP графика MPEG2
  • Внешний блок питания в комплекте
  • ОС Windows XP

Основное преимущество компании VIA Technologies — производство высокоэффективных микропроцессоров VIA Nano, VIA C7 и VIA Eden, встраиваемых материнских плат на базе архитектуры x86, малопотребляющие миниатюрные индустриальные компьютеры, предназначенные для решения широкого круга задач на производстве и в M2M-проектах.

Источник

Оцените статью