Установка пакетов программ в Debian GNU/Linux



28 коммент.
После установки Debian и графического интерфейса хочется поставить приложения для повседневной работы в Linux. В Debian установка пакетов делается просто, о чём будет говориться в этом посте.

Итак, базовая система Debian поставлена, графическая среда настроена и запущена. В общем, даже краше, чем в Windows - теперь время наполнить это всё нужными и полезными программами Linux. А как ставить пакеты программ в Linux, например в Debian GNU/Linux?


1. Консольный способ установки пакетов в Debian
Этим способом следует воспользоваться хотя бы один раз - мало ли что случится с графической средой (например, при обновлении системы). Консоль всегда рядом, ей можно (и нужно) пользоваться. Можно воспользоваться консольным способом установки программ и в графической среде: для этого запускаем Konsole, Terminal или xterm в зависимости от выбранной среды.

Чтобы найти название пакетов программ в Debian GNU/Linux по описанию, выполняем команду:
# apt-cache search чего_хочу | grep чего_конкретно_хочу
Это даст список названий и описаний пакетов, которые вам интересны. Чтобы поставить пакет в Debian GNU/Linux, пишем:
# aptitude install что_нашёл_
Почти наверняка пакетная система потребует поставить дополнительные пакеты, требующиеся для работы приложения. Смотрим, сколько это займёт, и, если это устраивает, ставим.

Для того, чтобы удалить пакет программы
в Debian GNU/Linux, выполняем:
# aptitude remove имя_пакета
А чтобы удалить программный пакет
в Debian GNU/Linux вместе с его конфигурационными файлами, пишем:
# aptitude purge имя_пакета
Опять-таки, знать эти команды очень даже стоит, потому как управлять софтом
в Debian GNU/Linux тогда можно в любой ситуации (не загружаются иксы, обновление системы и проч.).



2. Графический способ
установки программ в Debian GNU/Linux
Для любителей графических приложений имеется synaptic - графический интерфейс установки и удаления приложений в Debian GNU/Linux. Чтобы его поставить, пишем:
# aptitude install synaptic sudo
Последний пакет нужен, так как от рута synaptic стартовать откажется. Под рутом не сидим, не забыли?

Для настройки sudo вводим в терминале\консоли su и пишем пароль root и редактируем файл /etc/sudoers при помощи MC или командой:
# nano /etc/sudoers
Этот файл нужно довести до, например, такого состояния:

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
# See the man page for details on how to write a sudoers file.
#

# User privilege specification
root ALL=(ALL) ALL
ВАШЛОГИН ALL=(ALL) ALL

Далее запускаем synaptic при помощи делегирования рутовых полномочий простому пользователю посредством sudo:
$ sudo synaptic
Либо ищем его в меню приложений KDE или GNOME (если вы поставили себе эти среды)
Появится что-то вроде:


И далее можно искать и устанавливать приложения. Просто выделяете мышкой программу, жмёте правой кнопкой мыши и выбираете "Отметить для установки" или "Отметить для удаления". Помните, что если нужно удалить программный пакет
в Debian GNU/Linux полностью, с конфигурационными файлами, следует "Отметить для полного удаления".


Ставим необходимые приложения
в Debian GNU/Linux
Хотели рабочую станцию? Мы её почти получили: у нас есть графический сервер и графическая оболочка/среда, и осталось наполнить её приложениями. Основные программы, который вам потребуются для комфортной работы, перечислены в этом посте.

Полезно побродить по списку пакетов и посмотреть на то, сколько и чего нам положили в дистрибутив. Любую программу в репозитории можно легко и просто установить - либо прямым вводом команд в консоли, либо через графическую оболочку.
Читать далее

Построение графиков в gnuplot: двухмерные графики



9 коммент.
Построение графиков в gnuplot достаточно просто и очень эффективно, особенно когда их нужно строить много. Ниже на примерах будет показано, как строить двухмерные графики.

Как построить несколько функций на одном графике?
Есть два варианта: использовать функцию multiplot или внешними редакторами шаманить с EPS-файлами. Ниже будет описан первый вариант как более простой.

При построении нескольких графиков нужно включить режим multi-plot, после чего будет возможно размещать несколько функций или графиков данных в одном окне. Например, построим три функции: y=x, y=x*x и y=x*x*x. Что для этого дополнительно нужно задать в интерактивном режиме:

gnuplot> set multiplot
multiplot> plot x
multiplot> plot x*x
multiplot> plot x*x*x
multiplot> set nomultiplot
Вот что при этом может произойти:



Такое случается потому, что гнуплот определяет границы для каждого графика автоматически, что может привести к нежелательному результату. Следует задавать границы принудительно:
gnuplot> set xrange [-10:10]
gnuplot> set yrange [-10:10]





Как построить график внутри графика?
Рассмотрим это на рабочем примере. Есть файл с данными, точек много, и интерес представляет участок на кривой. Данных много, и естественно это скормить перловому скрипту, который нашинкует графики с подстановкой имён. Вот код графика:
#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid
set output "~/matlab/programs/kmvdecoder/plots/2conventionalRAWMAXtoSaturatecomparing.ps"
set encoding koi8r
set xlabel "Exposure time, sec." font "Helvetica,18"
set xrange [1:60]
set key top right
set ylabel "Pixels maximum value" font "Helvetica,18"
Это не должно вызывать вопросов - подобное разбиралось тут. Дальше:
set multiplot
set origin 0.0,0.0
set size 1.0,1.0
Устанавливаем стиль линий, которыми будем строить графики
set style line 1 lt 1 pt 9
set style line 2 lt 3 pt 7
set style line 3 lt 2 pt 5
Теперь, собственно, строим основной график.
plot "~/matlab/programs/kmvdecoder/plots/RAWMAXmeasurementresult"
using
3 notitle with linespoints linestyle 2,
"~/matlab/programs/kmvdecoder/plots/RAWMAXmeasurementresult" using 3 n
Пути и имена файлов, естественно, нужно поменять, так как я даю всё на примере собственных файлов. Напоминаю, что для ленивых людей, помимо гнуплота, есть ещё и Perl, скрипты которого резво подставят всё нужное в имя файла: и вы поймёте, и цикл перебора организовать проще. Основной график построен - загружаем его в программу просмотра PostScript-файлов и смотрим, где значения, которые нужно строить внутри маленького графика.
set origin 0.55,0.1
set size 0.4,0.4
Первый параметр задаёт положение левой верхней границы маленького графика в относительных единицах длины. Второй - размер графика. Так как подписи к осям на вложенном графике будут только мешать - отключаем их:
set noxlabel 
set noylabel
С видом графика определились, теперь определяемся с осями:
set xrange [ 30 : 38]
set yrange [ 3300 : 3800 ]
Всё, теперь осталось приказать гнуплоту перестроить график (чтобы появился вложенный):
replot
set nomultiplot
Готово - качественный график быстро и легко построен. Вот как он выглядит:



Как построить простую гистограмму?
Если вы создаёте графики в формате PostScript, самый простой способ заключается в том, чтобы нарисовать это при помощи with impluses с очень тонкими линиями. Например, так:
gnuplot> set term postscript eps enhanced color
gnuplot> set style line 1 lt 1 lw 50
gnuplot> plot "test.dat" using 1:2 with imp ls 1
Вот что при этом получится:


Так же можно заполнять столбики гистограмм цветом или вариантами текстурной заливки при помощи команд
with boxes fs [pattern | solid] номерстилязаливки. Так же можно задавать независимо стиль при помощи команды set style fill.

В случае с with boxes fs pattern, параметр pattern используется для определения заполняющей текстуры. Параметр solid определяет плотность заполнения столбца гистограммы, значени от 0 до 1.

Вот пример гистрограммы, построенной с различной заливкой:
gnuplot> plot "test.dat" usi 1:2:(3) w boxes fs pattern 1,\
gnuplot> "test.dat" usi ($1+5):2:(3) w boxes fs solid 0.7






Как на одном графике построить данные в логарифмическом и обычном масштабе?
Например, есть такой график:


По оси Х в диапазоне [0:30], но вблизи нуля по оси Х данные очень важны и нужно показать их детально. Можно сделать два разных графика, но можно провернуть тоже и на одном.
Сначала построим график до единицы в логарифмическом масштабе:
gnuplot> set log xy
gnuplot> set xrange [ 0.001 : 1 ]
gnuplot> set yrange [ 0.1 : 5000 ]
gnuplot> set xlabel "Energy [eV]"
Для данных в диапазоне [1:30] используем линейные оси, и поместим второй график за первым, используя возможности multiplot. Таким образом, логарифмическая часть графика будет слева, а линейная - справа. Каждый подграфик займёт половину размера картинки. Вот как это выглядит в коде:
gnuplot> set multiplot
multiplot> set size 0.5,1
multiplot> set origin 0.0,0.0
multiplot> set lmargin 10
multiplot> set rmargin 0
multiplot> plot "calc.dat" u 1:2 w l
multiplot> set origin 0.5,0.0
multiplot> set format y ""
multiplot> set lmargin 0
multiplot> set rmargin 2
multiplot> set nolog x
multiplot> set xrange [1:30]
multiplot> set xtic 0,10
multiplot> set mxtic 5
multiplot> plot "calc.dat" u 1:2 w l
multiplot> set nomultiplot
gnuplot>
Результат смотрится очень эффектно:





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

Для того, чтобы вычислить соотношение данных одного ряда по отношению к другому, значения по оси Х должны быть одинаковы для обоих рядов. В примере ниже, первая колонка содержит значения Х, вторая колонка содержит значения по оси Y набора данных А, третья колонка содержит значения Y набора данных Б.

Сначала устанавливаем параметры оси Х, одинаковые для обоих наборов данных:
gnuplot> set xrange [ 0.01 : 30 ]
gnuplot> set nokey
gnuplot> set log x
gnuplot> set xtics 10
gnuplot> set mxtics 10
gnuplot> set lmargin 10
gnuplot> set rmargin 2
Теперь создаём нижнюю часть графика, которая показывает соотношение данных. Так как данные по оси Y находятся во втором и третьем столбце файла с данными, можно построить их соотношение так plot 1:($2/$3). Таким образом, вторая часть выглядит так:

gnuplot> set multiplot
multiplot> set yrange [ 0.5 : 1.5 ]
multiplot> set ytic 0.6,0.2,1.4
multiplot> set ylabel "Ratio"
multiplot> set size 1,0.4
multiplot> set xlabel "Energy [eV]"
multiplot> set origin 0.0,0.0
multiplot> set bmargin 3
multiplot> set tmargin 0
multiplot> plot 1 w l 0,"cross.dat" u 1:($2/$3) w l 1
Осталось доделать верхнюю часть, чем сейчас и займёмся. Сделаем размер графика поменьше и отобразим в логарифмических осях. Наименования по оси Х стираем, и вот что получилось:
multiplot> set log xy
multiplot> set yrange [ 0.1 : 5000 ]
multiplot> set ytic 0.1,10
multiplot> set ylabel "Cross Section [b]"
multiplot> set size 1,0.6
multiplot> set origin 0.0,0.4
multiplot> set bmargin 0
multiplot> set tmargin 1
multiplot> set format x ""
multiplot> set xlabel ""
multiplot> plot "cross.dat" u 1:2 w l,"" u 1:3 w l
multiplot> set nomultiplot
gnuplot>
Результат:

Читать далее

Установка Debian GNU/Linux через Интернет



27 коммент.
Для того, чтобы установить Debian GNU/Linux из-под Windows через Интернет, даже не требуется качать и пропаливать диск c Debian - можно установить его из Интернет (но на всякий случай хорошо прочитать рекомендации по правильной установке Debian). Достаточно нажать на изображение:




Нажмите на картинку,чтобы начать установку Debian GNU/Linux

После этого должен скачаться файл debian.exe, который запусит процесс скачивания и установки Дебиан. По умолчанию устанавливается стабильный дистрибутив Линукс.

Перед тем, как всё начнётся, лучше открыть и прочитать (а ещё лучше распечатать) исчерпывающую инструкцию по установке Дебиана.



Минимальные требования к оборудованию:
Процессор: Intel Pentium I, 100MHz и более. Для комфортной работы Intel Pentium II-400 MHz желателен.
Память: 64Мб ОЗУ, но для навороченных сред 256Мб рекомендуется.
Жёсткий диск: для минимальной установки 500 Мб, для нормальной работы с десктопом 1Гб рекомендуется.
Видеокарта: любая VGA-совместимая карта, S3 Trio сойдёт, но для навороченных графических сред нужно что-то с графическим ускорением.


1. Скачается инсталлятор Debian Linux под Windows
Итак, сначала нажимаем на начать установку скачается инсталлятор и запустится. Не бойтесь, вирусов там нет - запускайте смело.





Запустится инсталлятор, который проведёт вас по установке Линукс.



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

Бояться этого не надо, инсталлятор задаст несколько вопросов, переразобьёт винчестер и поставит Линукс - либо второй системой (винду не снесёт), либо основной (вместо винды).



3. Скачаются необходимые данные для инсталляции
Далее потребуется скачать около 11Мб данных, необходимых для первичной загрузки Линукс и начала инсталляции.


Файлы скачаются на винчестер, распакуются и установятся. Снова не боимся - это Линукс, вирусов и шпионских программ нет.



4. Перезагрузка для начала инсталляции 

Если вы тверды духом и готовы к знакомству с миром Линукс - уверенно жмём кнопку Yes на предложение инсталлятора перезагрузиться.





После перезагрузки начнётся установка.



5. Начало инсталляции
После перезагрузки вас будет ждать выбор загрузки операционной системы - выбираем Debian Installer.


Это запустит инсталлятор, который задаст десяток вопросов о вашей будущей системе.



6. Начинётся процесс инсталляции

Всё готово, начнётся процесс установки Linux. Вас скорее всего попросят выбрать зеркала загрузки пакетов программ для Линукс.


Выбираем русский язык, и после этого вам остаётся только вменяемо отвечать на вопросы инсталлятора (настройки по умолчанию разумны). Инсталляция подробно освещена здесь.

 


 
Всё, после окончания установки на вашей машине будет поставлена современная, мощная, стабильная и надёжная операционная система, которой доверяет данные, например, Яндекс.

Читать далее

Создание графиков в gnuplot: оформление двухмерных графиков



13 коммент.
В этом посте освещается ряд вопросов об оформлении графиков: управление осями, изменение полей и шрифтов графиков, изменение сетки и прочее.
Читать далее

Железо в Linux: Как узнать подробности оборудования в Linux?



25 коммент.
Задача: требуется узнать подробности о работе оборудования в Linux для сборки ядра или установки нового оборудования в Linux.
Решение: благодаря тому, что в Линуксе очень хорошо ведётся протоколирование работы системы, это совсем не сложно.

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

Здесь на конкретных примерах будет показано, как найти информацию об устройствах в Linux, пользуясь мощью командной строки - это совсем не сложно, а заодно сильно продвинетесь в познании того, что же запихал производитель в эту маленькую гудящую коробку :-)


1. Ищем сведения об устройстве в Linux с помощью lspci
Весьма распространённая проблема на ноутбуках - кардридеры от дядюшки Ляо, к которым даже не знаешь, как подступиться. Сначала нужно выяснить производителя устройства и потом как оно называется.

Для этого в консоли от простого пользователя пишем:
lspci
В результате будет выведена информация об устройствах, подключённых к шине PCI, как и следует из названия утилиты. Ищем среди строк что-то, что содержит SD или MMC - то, что должен читать кардридер (в данном примере это именно он).

00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 04)
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04)
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04)
00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 04)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 04)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 04)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 04)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 04)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d4)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 04)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 04)
01:03.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
01:03.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08)

01:03.2 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)
01:03.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 08)
01:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
01:05.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)



Устройство, напоминающее кардридер в диагностических строках - это Ricoh SD Host Adapter (прим.: Выделение серым и полужирным - моё). Теперь есть довольно подробная информация об устройстве, которая структурирована так:


01:03.2 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)

Идентификатор (Device ID), Класс (Class), Производитель (Vendor), Наименование устройства (Device), Ревизия (Revision).


Как видно, всё весьма логично и понятно - по крайней мере настолько, насколько это позволяет обратиться к Гуглу и поинтересоваться у него насчёт поддержки устройства в Линукс.

Можно получить дополнительную информацию по устройству, которая может быть иногда полезна при устранении проблем с работой оборудования. Для этого нужно воспользоваться подробным (verbose) режимом работы программы:
lspci -v
Вывод будет очень длинным, но то, что относится к рассматриваемому в примере устройству, будет выглядеть так:

01:03.2 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)
Subsystem: ASUSTeK Computer Inc. Unknown device 1997
Flags: bus master, medium devsel, latency 64, IRQ 21
Memory at fe8fe400 (32-bit, non-prefetchable) [size=256]
Capabilities: [80] Power Management version 2

Отсюда можно узнать, например, номер IRQ, на котором висит устройство.


1.1 Устройства с подключением по USB в
Linux
Аналогичная команда есть и для USB-устройств, что тоже весьма полезно, например, при подключении USB-IR или USB-Bluetooth устройств. Так вы узнаете точную марку устройства. Вот, например, Bluetooth адаптер, на котором написано только Billington, видится так:
lsusb
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000


Можно так же заметить, что помимо синезубого адаптера, сейчас подключена ещё и оптическая мышка с колёсиком от Logitech.


1.2 Расширенная информация о конфигурации железа с помощью lshw в
Linux
Эта утилита по умолчанию, как правило, не устанавливается, но в репозиториях она должна быть (есть в Дебиане 4 ставится при помощи aptitude install lshw). Утилита lshw выводит структурированный список оборудования вместе с информацией об устройствах. Например, простой запуск от пользователя:
lshw
даёт много пищи для размышлений:
notebeast
description: Computer
width: 32 bits
*-core
description: Motherboard
physical id: 0
*-memory
description: System memory
physical id: 0
size: 495MB
*-cpu
product: Intel(R) Pentium(R) M processor 1.73GHz
vendor: Intel Corp.
physical id: 1
bus info: cpu@0
version: 6.13.8
size: 1729MHz
capacity: 1729MHz
width: 32 bits
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx est tm2 cpufreq
*-pci
description: Host bridge
product: Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller
vendor: Intel Corporation
physical id: 100
bus info: pci@00:00.0
version: 04
width: 32 bits
clock: 33MHz
*-display:0
description: VGA compatible controller
product: Mobile 915GM/GMS/910GML Express Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@00:02.0
version: 04
size: 256MB
width: 32 bits
clock: 33MHz
capabilities: vga bus_master cap_list
configuration: latency=0
resources: iomemory:feb80000-febfffff ioport:ec00-ec07 iomemory:d0000000-dfffffff iomemory:feb40000-feb7ffff irq:20
<...>


Список длинный, поэтому приведена только часть. Очень полезно для анализа оборудования.



2. Ищем сведения об устройстве с помощью dmesg в
Linux
Эта команда предоставляет доступ к логам ядра - того, что происходило при загрузке и того, что происходит в процессе работы. При загрузке устройства инициализируются и опознаются системой, и если что-то идёт не так, в логах обязательно это будет отражено.

Лог dmesg как правило очень длинный и изобилует подробностями работы с оборудованием. Читать его полностью довольно утомительно, поэтому стоит воспользоваться потоковой утилитой поиска grep. Например, чтобы узнать подробности о процессоре, нужно написать:
dmesg | grep CPU
SLUB: Genslabs=22, HWalign=64, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
CPU: After generic identify, caps: afe9fbff 00100000 00000000 00000000 00000180 00000000 00000000
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 2048K
CPU: After all inits, caps: afe9fbff 00100000 00000000 00002040 00000180 00000000 00000000
Intel machine check reporting enabled on CPU#0.
CPU: Intel(R) Pentium(R) M processor 1.73GHz stepping 08
ACPI: CPU0 (power states: C1[C1] C2[C2])
ACPI: Processor [CPU1] (supports 8 throttling states)
Switched to high resolution mode on CPU 0
Use X86_ACPI_CPUFREQ (acpi-cpufreq) instead.

Так можно многое узнать о работе своего железа. Эта информация может пригодиться при сборке своего ядра и \или устранении проблем (последние строки dmesg содержат информацию о том, что происходило недавно с системой). Именно поэтому на форумах требуют выкладывать логи системы - это и есть исчерпывающая информация о работе вашей системы и её оборудовании.

Лог dmesg и многие другие логи хранятся в /var/log/ хотя часть из них доступна только привилегированному пользователю - пользуйтесь sudo.


3. Ищем сведения об устройстве с помощью /proc в
Linux
Файловая система /proc на самом деле является "слепком" состояния системы и её переменных, там хранится множество полезных сведений о системе. Например, уровень заряда батарей ноутбука и скорости вращения вентиляторов, информация о подключённых устройствах - и многое другое.

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

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : Intel(R) Pentium(R) M processor 1.73GHz
stepping : 8
cpu MHz : 1729.000
cache size : 2048 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx est tm2
bogomips : 3459.64
clflush size : 64



Здесь же, в каталоге /proc, хранятся и обновляются сведения о скоростях вращения вентиляторов, заряде батарей и прочих ACPIшных радостях (если оные поддерживаются для вашего оборудования ядром). Вот, к примеру, как можно узнать состояние батарей ноутбука:
cat /proc/acpi/battery/BAT0/info
Отсюда берут данные все графические утилиты мониторинга, типа klaptop_check (в KDE висит в трее и показывает состояние батареи). Вот что там имеется:

present: yes
design capacity: 50600 mWh
last full capacity: 51381 mWh
battery technology: rechargeable
design voltage: 11100 mV
design capacity warning: 5060 mWh
design capacity low: 2530 mWh
capacity granularity 1: 506 mWh
capacity granularity 2: 506 mWh
model number: S5-2P24
serial number:
battery type: LIon
OEM info: ASUSTEK

Как видно, весьма полезная, и главное - постоянно обновляемая информация.



4. Ищем сведения о жёстком диске в
Linux
Сведения о ёмкости и геометрии винчестера можно получить при помощи fdisk, запущенном от рута или через sudo:

# fdisk -l /dev/hda

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 36 289138+ 82 Linux swap / Solaris
/dev/hda2 * 37 7296 58315950 83 Linux



Если требуется получить более глубокие сведения о возможностях винчестера, например о поддержке им DMA или S.M.A.R.T, потребуется утилита hdparm, включённая в состав (почти?) всех современных дистрибутивов. Она так же требует рутовых полномочий, и обращаться с ней нужно весьма осторожно (использование параметров без чёткого понимания того, что вы делаете, может привести к потере данных). Так, например, можно запросить информацию о винчестере и его возможностях:

sudo hdparm -I /dev/hda
/dev/hda:

ATA device, with non-removable media
Model Number: HTS421260H9AT00
Serial Number: HKA210AJGKHV1B
Firmware Revision: HA2OA70G
Standards:
Used: ATA/ATAPI-7 T13 1532D revision 1
Supported: 7 6 5 4
Configuration:
Logical max current
cylinders 16383 65535
heads 16 1
sectors/track 63 63
--
CHS current addressable sectors: 4128705
LBA user addressable sectors: 117210240
LBA48 user addressable sectors: 117210240
device size with M = 1024*1024: 57231 MBytes
device size with M = 1000*1000: 60011 MBytes (60 GB)
Capabilities:
LBA, IORDY(can be disabled)
Standby timer values: spec'd by Vendor, no device specific minimum
R/W multiple sector transfer: Max = 16 Current = 16
Advanced power management level: 128 (0x80)
Recommended acoustic management value: 128, current value: 254
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=240ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* DOWNLOAD_MICROCODE
* Advanced Power Management feature set
Power-Up In Standby feature set
* SET_FEATURES required to spinup after power up
Address Offset Reserved Area Boot
SET_MAX security extension
* Automatic Acoustic Management feature set
* 48-bit Address feature set
* Device Configuration Overlay feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
* General Purpose Logging feature set
* WRITE_{DMA|MULTIPLE}_FUA_EXT
* 64-bit World wide name
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
46min for SECURITY ERASE UNIT.
HW reset results:
CBLID- above Vih
Device num = 0 determined by the jumper
Checksum: correct


Здесь можно видеть не только размер и геометрию винчестера, но и то, что DMA для диска активирован (стоит udma5) и возможности S.M.A.R.T (самотестирование) поддерживается.

Так же можно узнать о состоянии винчестера при помощи утилит hddtemp и smartctl. Например, текущую температуру винчестера можно узнать так:
# hddtemp /dev/hda

/dev/hda: HTS421260H9AT00: 33°C
Возможный выход винчестера из строя помогает засечь команда smartctl, с помощью которой можно протестировать жёсткий диск:
# smartctl -a /dev/hda
Диагностический вывод здесь тоже весьма подробный, вот только часть:

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 062 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 040 Pre-fail Offline - 0
3 Spin_Up_Time 0x0007 206 206 033 Pre-fail Always - 2
4 Start_Stop_Count 0x0012 099 099 000 Old_age Always - 1719
5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0
7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 040 Pre-fail Offline - 0
9 Power_On_Hours 0x0012 088 088 000 Old_age Always - 5549
10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 875
191 G-Sense_Error_Rate 0x000a 100 100 000 Old_age Always - 0
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 2
193 Load_Cycle_Count 0x0012 071 071 000 Old_age Always - 299291
194 Temperature_Celsius 0x0002 166 166 000 Old_age Always - 33 (Lifetime Min/Max 11/43)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 1
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0




5. Считываем информацию о BIOS с помощью dmidecode в
Linux
Причиной множества мелких пакостей может быть BIOS или его настройки, особенно на ноутбуках. В Линукс имеется несколько утилит для чтения информации о BIOS, например dmidecode. Здесь можно узнать о точном названии и версии BIOS, возможностях BIOS и другой интересной информации. Пишем от рута:
# dmidecode
и в результате получаем, например, такие сведения:

# dmidecode 2.8
SMBIOS 2.3 present.
34 structures occupying 1318 bytes.
Table at 0x000F8DD0.

Handle 0x0000, DMI type 0, 20 bytes
BIOS Information
Vendor: American Megatrends Inc.
Version: 0205
Release Date: 06/10/2005
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 512 kB
Characteristics:
ISA is supported
PCI is supported
PC Card (PCMCIA) is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25"/360 KB floppy services are supported (int 13h)
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 KB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
AGP is supported
LS-120 boot is supported
ATAPI Zip drive boot is supported
BIOS boot specification is supported
Function key-initiated network boot is supported

Весьма познавательно, и не нужно перезагружаться и входить в BIOS.

Ссылки
Так же стоит обратить внимание на замечательную статью
Как получить информацию от железе компьютера, не покидая терминала.
Читать далее

Цифровые фотокамеры Canon: характеристики и документация



6 коммент.
Те, кто занимается астрономией или оптикой, часто используют обычные зеркальные камеры. Параметрых этих камер - большая тайна, но кое-что раскопать всё-таки удаётся.
Спецификации, они же White Papers, есть правда разной степени сермяжности о том, что же засунул производитель в фотокамеру. Особенно волнует многих вопрос насчёт сенсоров и его характеристик. Относительно Canon огорчу: они делают сенсоры сами и делиться относительно параметров сенсоров, похоже, не намерены.

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

Огромное спасибо комментатору Павлу за дополнительные ссылки!

А вот это есть просто кладезь полезного и интересного: не жалейте мегабайтов трафика, друзья, ибо это есть подробное описание полнокадрового CMOS сенсора, который разработали ребята из Canon (Full Frame CMOS sensor). Там без кучи формул, на простом языке говорится, почему они перешли на CMOS и как отважно они решали свои проблемы.
Читать далее

Цифровые камеры Canon EOS 400D и 40D - так ли они отличаются?



22 коммент.
Не так давно вышла новая цифровая камера от Canon - Canon EOS 40D. Было анонсировано, кроме прочего, наличие 14-битного АЦП. Думаю, что многие загорелись возможностью купить такую цифровую камеру и использовать её для измерительных целей: такая же техническая камера стоит раз в 30 дороже. Однако позже выяснилось горькая правда - внутри установлена та же самая матрица и, есть обоснованные подозрения, что и сходное АЦП. В переводе на русский это означает, что дополнительные биты вы получите ценой усиления шума, что сводит на нет всю прелесть 14-битного АЦП.

Полученные данные позволяют утверждать, что в цифровых камерах Canon EOS 400D и 40D установлены фотосенсоры одной и той же модели. Более того, возможно, что к АЦП на камере 40D двухступенчатый, на что указывает график зависимости стандартного отклонения темнового шума от значения ISO. Многие параметры фотосенсора, например, BLO (Black Level Offset), стандартное отклонение шума, величина сигнала при насыщении, особенности зависимости сигнала от шума при некоторых значениях освещённости говорят о том, что в 40D и 400D установлены идентичные фотосенсоры. На это же намекают в whitepaper на камеру 40D:
Although the EOS 40D’s single-piece CMOS sensor is based on the Canon EOS Digital Rebel XTi’s sensor design and manufacturing technology, new processes were incorporated in the CMOS semiconductor fabrication and microlens-forming process.
Курсивом отмечены золотые слова: КМОП-сенсор 40D основан на дизайне и производственной схеме 400D (он же Digital Rebel), а что они там нахимичили в микролинзах - это дело десятое.

А это значит, что преимущество 14-битного АЦП в таком случае нивелируется возросшим уровнем шумов и, как следствие, уменьшением величины отношения ``сигнал/шум'' при том же динамическом диапазоне.


Экспериментальные данные
Из рисунков Рис.9а) и б) можно видеть, что среднее значение темнового шума увеличивается с ISO очень медленно, однако величина постоянного темнового шума
отличается в 4 раза. Это можно объяснить увеличением разрядности АЦП
при том же фотосенсоре.

Более того, анализируя графики зависимости стандартного отклонения темнового шума от ISO (рис.1) можно сделать вывод, что скорее всего АЦП на Canon 40D двухступенчатый.
Это объясняет характерные провалы СКО шума на промежуточных значениях
ISO, однако если соединить точки 100, 200, 400, 800 и 1600, то
получится гладкая кривая, значения которой опять-таки примерно в 4 раза
отличаются от тех, которые имеют место быть на Canon 400D.


а)
б)

Рис.1: Изменение среднего значения темнового шума
от величины ISO: а) для Canon 400D, б) для Canon 40D.

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

а)
б)
Рис.2: Изменение стандартного отклонения темнового шума
от ISO: а) для Canon 400D, б) для Canon 40D.

Видно, что в точках 100, 200, 400, 800 и 1600 соответственно стандартное отклонение темнового шума отличается так же почти в 4 раза - это свидетельствует о том, что АЦП установлены со сходными характеристиками.

Более того, на зависимости сигнала от шума имеется аномальное отклонение для данных, полученных с Canon EOS 400D - наблюдающийся провал на зависимости, приведённой на рис. 3 воспроизводится даже при некотором изменении параметров эксперимента.

а)
б)

Рис.3: Зависимость сигнала от шума для данных, обработанных
DCRAW в документальном режиме (данные приведены для красного канала):
а) для Canon 400D, б) для Canon 40D.

На рис.3 приведены данные по световым шумам фотосенсоров Canon 400D и 40D в
красном канале. Видно, что в обоих случаях имеется аномальное поведение зависимости сигнала от шума - и эта аномалия одна и та же для двух рассматриваемых камер. Это однозначно указывает на то, что фирма Canon установила ту же самую матрицу в модель 40D, которая устанавливалась и в 400D. А это в свою очередь означает, что 14-битный АЦП ничего не даёт в плане увеличения динамического диапазона камеры, если её рассматривать в качестве измерительной.

Так, для 12-битной камеры Canon EOS 400D были получены следующие характеристики:
  • Предельное значение сигнала: 3726 DN.
  • Оптический динамический диапазон (ODR): 59 dB.
  • Линейный динамический диапазон (LDR): 58 dB.
  • Максимальный "сигнал/шум": 117 (6.9 bit).
  • Стандартное отклонение темнового шума: 1.6 DN.
В то же время, для 14-битной камеры Canon EOS 40D измерительные характеристики хуже:
  • Предельное значение сигнала: 13825 DN.
  • Оптический динамический диапазон (ODR): 56 dB.
  • Линейный динамический диапазон (LDR): 52 dB.
  • Максимальный "сигнал/шум": 75 (6.2 bit).
  • Стандартное отклонение темнового шума: 6.0 DN.
Во всех случаях минимальный сигнал\шум принимался равным 2.

Выводы:
Если вы используете цифровые зеркальные фотокамеры в качестве измерительных приборов, то выбор в этом качестве Canon EOS 40D не оправдан из-за меньшего значения линейного динамического диапазона и более высокой стоимости.
Читать далее