LINUX.ORG.RU

Новый программный интерфейс датчиков в OpenBSD


0

0

Недавно в OpenBSD 4.0-current Theo de Raadt добавил патчи Константина Муренина, которые существенно изменяют каркас приложений для датчиков.

Среди изменений особенно стоит отметить значительные улучшения адресации датчиков в sysctl и sensorsd. Например, раньше первый датчик температуры на устройстве lm0 мог быть доступен по адресу типа "hw.sensors.7" (где номер "7" зависел от количества других датчиков, зарегистрированных в системе до датчиков температуры), теперь же он имеет постоянный адрес "hw.sensors.lm0.temp0". Т.к. при данной адресации отсутствует необходимость обязательного использования поля "desc" структуры "sensor", то после данных патчей ядро OpenBSD претерпело некоторое уменьшение в размере без каких-либо потерь в функциональности.

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

Пользуясь случаем, автор выражает глубокую благодарность научным руководителям Йордану Димитрову и Михаилу Гоману, под руководством которых был написан прототип данного каркаса приложений.

Предварительные результаты данного исследования были представлены на весенней конференции UKUUG в марте 2006 года.

>>> Подробности

★★★

Проверено: Teak ()

драйверы датчиков

Кстати, для тех, кому интересна информация о количестве драйверов в OpenBSD, имеющих датчики: 

2006/12/23 10:46:40

Modified files:
	sys/kern       : tty_nmea.c 
	sys/dev/pci    : viaenv.c mbg.c arc.c 
	sys/dev        : ipmi.c ipmivar.h 
	sys/scsi       : safte.c ses.c 
	sys/dev/usb    : udcf.c 
	sys/dev/onewire: owid.c owtemp.c 
	sys/dev/isa    : aps.c apsvar.h it.c itvar.h nsclpcsio_isa.c 
	                 viasio.c 
	sys/dev/ic     : ami.c amivar.h ciss.c cissvar.h lm78.c 
	                 lm78var.h mfi.c mfivar.h 
	sys/dev/i2c    : ad741x.c adm1021.c adm1024.c adm1025.c 
	                 adm1026.c adm1030.c adm1031.c adt7460.c 
	                 asb100.c ds1631.c fcu.c fintek.c gl518sm.c 
	                 lm75.c lm87.c maxim6690.c pca9554.c tsl2560.c 
	                 w83l784r.c 
	sys/dev/acpi   : acpiac.c acpibat.c acpidev.h acpitz.c 
	sys/arch/i386/i386: esm.c 
	sys/arch/macppc/dev: asms.c smu.c 
	sys/arch/sparc64/dev: pcf8591_ofw.c 

km ★★★
() автор топика

Мне это один анекдот напомнило

"...Наконец-то русские изобрели радио..."

x86 ★★
()
Ответ на: комментарий от Stalwart

И такой банальной вещи как bf2 нет под Линакс. :(

A тоб мы ее на FreeBSD погоняли.

ansi ★★★★
()

Респект, Константин и за проделанную работу, и за то что отстоял эту новость в жарких схватках.

Lumi ★★★★★
()
Ответ на: комментарий от anonymous

>Как же надоел этот бессмысленный спам об OpenBSD, ей Богу... +1 Юношеский максимализм km уже достал.

По теме: "до этого мы написали криво и с плохим дизайном. Но теперь нас осенило и мы сделали всё круто." IPMI v2 openbsd поддерживает?

ЗЫ: забавно вообще. Рядом новость про паравиртуализацию в linux, поддержку VT, а в openbsd только-только температуру правильно мерить научились :)))

anonymous
()

даже тостеры делают тосты по sysctl!

> По теме: "до этого мы написали криво и с плохим дизайном. Но теперь нас осенило и мы сделали всё круто."

Ув. тов. anonymous 08.01.2007 16:12:51! Первые драйверы датчиков были портированы в OpenBSD 3.4 из NetBSD ещё в апреле 2003 года товарищем Александром Юрченко (grange@). Только вот NetBSD использовал и до сих пор использует довольно ёмкий и муторный уровень абстракции sysmon(4), к которому, кстати, ещё и до сих пор отсутствует документация! Тов. Юрченко же, вместо того, чтобы портировать избыточный sysmon(4), который даже в NetBSD считается "экспериментальной фичей" (см. раздел BUGS envsys(4) на NetBSD: http://netbsd.gw.com/cgi-bin/man-cgi?envsys++NetBSD-3.1 ), разработал простой и понятный интерфейс, основанный на sysctl.

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

Сейчас же драйверов с датчиками в OpenBSD развелось столько, что на определённых машинах может быть и не один десяток разнообразных датчиков. Поэтому я и предложил использовать в качестве идентификатора -- xname устройства, тип датчика и только потом порядковый номер датчика данного типа на данном устройстве. Так что теперь мы сделали чуточку сложнее, зато с намного более удобным интерфейсом, причём как с пользовательской точки зрения, так и с точки зрения разработчика драйверов.

P.S. Стоит отметить, что в OpenBSD каркас датчиков используются и для обычных температур и вентиляторов, и для мониторинга статуса RAID, и для передачи результатов расшифровки часовой информации из NMEA в ntpd. А для снятия показаний в OpenBSD достаточно любому пользователю просто написать `sysctl hw.sensors` в командной строке без каких-либо предварительных настроек, без сторонних патчей, и без дополнительных утилит.

P.P.S. Даже тостер на NetBSD контролировался посредством sysctl! Так что сдаётся мне, что в OpenBSD сразу выбрали правильный путь для каркаса датчиков -- через sysctl. ;) См. подробности о тостере и примеры контроля нагревательного элемента по sysctl: http://hardware.slashdot.org/comments.pl?sid=158747&cid=13298702 . ;)

km ★★★
() автор топика
Ответ на: комментарий от Stalwart

> Мдя, оказывается такие банальные вещи в опёнке отсутствуют =(

Это что же такое отсутствует? Или вы знаете какие-нибудь другие системы кроме NetBSD и OpenBSD, где в базовый комплект поставки уже сразу входят готовые к использованию датчики температур и напряжения? Без каких-либо патчей и сторонних утилит? ;)

> Автору полюбас респект

Спасибо. ;)

km ★★★
() автор топика
Ответ на: комментарий от Lumi

Спасибо.

Кстати, буду рад получить примеры `sysctl hw` пользователей OpenBSD на почту, либо можно даже здесь пару примерчиков разместить. Особенно интересно будет посмотреть на ipmi(4) или esm(4).

Или вот, например, можете посмотреть, как можно наблюдать за статусом RAID на ami(4):

http://www.openbsd.org/cgi-bin/man.cgi?query=ami&sektion=4&manpath=Op...

Самое главное в данном подходе, что интерфейс является универсальным, а не специфическим для определённых RAID-контроллеров.

К.

km ★★★
() автор топика
Ответ на: даже тостеры делают тосты по sysctl! от km

>Ув. тов. anonymous 08.01.2007 16:12:51! Первые драйверы датчиков были портированы в OpenBSD 3.4 из NetBSD ещё в апреле 2003 года товарищем Александром Юрченко (grange@). 

ув. тов. km! Скажите, а все эти сенсоры правда важнее нормального smp,
тредов, (пара)виртуализации, нормальных fs и cpu/io schedulers?

Ведь сейчас очень трудно купить сервер с 1 одноядерным процессором.

И ещё... Если взглянуть сюда:
http://www.tancsa.com/blast.html

Как вы прокомментируете результаты openbsd?
Какие преимущества у OpenBSD по сравнению с FreeBSD, Linux, Solaris?
(Только не надо старых песен про аудит кода, secure by default, etc)
Есть ли в ней поддержка cpu/memory hotplug?

anonymous
()
Ответ на: комментарий от anonymous

Ув. тов. anonymous! А вы готовы проспонсировать разработчиков? Или вы до сих пор наивно полагаете, что все это появилось в других системах от безграничного энтузиазма?

CruZ
()
Ответ на: комментарий от CruZ

>Ув. тов. anonymous! А вы готовы проспонсировать разработчиков?

А оно мне надо? 
От OpenBSD Team мне, как и многим, надо OpenSSH & pf.
Ну и пусть дальше спеки вытрясают.

PS: запарил PR этой посредственной ОС.

anonymous
()

Уууу... а km-то оказывается не только новости постить может ;) Респект.

php-coder ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.