1 (05.09.2012 23:05:35 отредактировано Wehrmacht_Rover)

Установил  nvtv-0.4.7-i486-6sl.txz - А бинарников оказывается нет! Кто и зачем тогда собирал этот пакет? Где мне их взять, родить чтоли?  ag
Очень хочу эту прогу, так как выход на телек так и не удалось настроить  ak

bash-4.1# whereis nvtv   
nvtv: /usr/include/nvtv
bash-4.1# ls /usr/include/nvtv
nvtv_simple.h

Сорсы не собираются ac
Последние строки вывода ./configure:

checking for pci_init in -lpci... no
checking for pci_init in -lpciutils... no
configure: error: pci library required
[ installed ] - libpciaccess-0.12.1-i486-1
[ installed ] - pciutils-3.1.7-i486-1
OS: Gentoo
CPU: Xeon E5450 RAM: 8 Gb DDR2, VGA: GeForce GTX750 Ti
MB: Asus P5Q SE2

2

Если это оно, то посмотрите на дату последнего обновления - 2006 год. Оно требует чего-нибудь постарее, похоже. ab

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

3 (06.09.2012 10:28:56 отредактировано bormant)

Wehrmacht_Rover пишет:

Установил  nvtv-0.4.7-i486-6sl.txz - А бинарников оказывается нет! Кто и зачем тогда собирал этот пакет?

Ответы в порядке очерёдности.
1) Бинарники есть, только в виде библиотеки: libnvtvsimple.so.0.2.0 и сопутствующих libnvtvsimple.la, nvtvsimple.pc и заголовочного (.h) файла к ним, это и в SlackBuild-е английским по фоновому написано (cd $PKGNAME-$VERSION/lib ... configure; make; make install).
2) Кто? Собирал (по крайней мере переделывал слакбилд для slacky.eu Loris Vincenzi, о чём прямо внутри слакбилда и написано).
3) Зачем? Кому-то нужна была библиотека для сборки/работы чего-либо, её и опакетили.
4) Для сборки явно необходим libpciutils в каком-то конкретном (статическом/динамическом) виде, которого в данный момент в системе нет, или есть, но не той версии, или он по каким-то причинам не обнаруживается. Это именно те проблемы, которые решаются при разработке, следовательно, писать разработчикам (за давностью последних изменений вряд ли что-то даст), править самому или заинтересовать кого-либо.
5) На офсайте есть бинарная версия. Если заработает, можно перепаковать из неё.

4 (06.09.2012 13:19:35 отредактировано yars)

Кстати, у меня в 13.37 под виртуалкой все замечательно собралось... могу выложить пакет, если нужно. Брал все в репозитории Slacky.eu.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

5

yars пишет:

все

Всё в /lib или вообще всё, в том числе nvtv, nvtvd?

6 (06.09.2012 14:55:47 отредактировано yars)

bormant пишет:

Всё в /lib или вообще всё, в том числе nvtv, nvtvd?

Только пакет с библиотеками. Я думал, что этот кусок вывода configure в первом сообщении темы относится к нему... А nvtv и nvtvd не собирал. Сейчас попробую...
UPD: Попробовал. Вываливается куча ошибок:

+ открыть спойлер
gcc -I  -O2    ../src/nvtv.c   -o nvtv
gcc -I  -O2    ../src/nvtvd.c   -o nvtvd
../src/nvtv.c: В функции «usage»:
../src/nvtv.c:245:23: ошибка: expected «)» before «PACKAGE_VERSION»
../src/nvtv.c: В функции «main»:
../src/nvtv.c:786:5: ошибка: expected «}» before «else»
../src/nvtv.c: На верхнем уровне:
../src/nvtv.c:803:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:821:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:831:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:884:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:921:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:924:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:957:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:977:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:1000:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:1008:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:1026:3: ошибка: expected identifier or «(» before «switch»
../src/nvtv.c:1052:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:1092:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:1104:3: ошибка: expected identifier or «(» before «if»
../src/nvtv.c:1112:3: ошибка: expected identifier or «(» before «return»
../src/nvtv.c:1113:1: ошибка: expected identifier or «(» before «}» token
../src/nvtvd.c: В функции «srv_listModes»:
../src/nvtvd.c:355:6: предупреждение: несовместимая неявная декларация внутренней функции «strlen» [по умолчанию включена]
../src/nvtvd.c: В функции «srv_findBySize»:
../src/nvtvd.c:373:6: предупреждение: несовместимая неявная декларация внутренней функции «strlen» [по умолчанию включена]
../src/nvtvd.c: В функции «srv_findByOverscan»:
../src/nvtvd.c:395:6: предупреждение: несовместимая неявная декларация внутренней функции «strlen» [по умолчанию включена]
make: *** [nvtv] Ошибка 1
make: *** Ожидание завершения заданий...
/tmp/ccufg8rD.o: In function `srv_openCard':
nvtvd.c:(.text+0x336): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x39d): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x3c7): undefined reference to `pipeWriteList'
nvtvd.c:(.text+0x3de): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_closeCard':
nvtvd.c:(.text+0x40f): undefined reference to `pipeReadArgs'
/tmp/ccufg8rD.o: In function `srv_setHeads':
nvtvd.c:(.text+0x48b): undefined reference to `pipeReadArgs'
/tmp/ccufg8rD.o: In function `srv_getHeads':
nvtvd.c:(.text+0x508): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x572): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x5c3): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_getHeadDev':
nvtvd.c:(.text+0x607): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x655): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x679): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_probeChips':
nvtvd.c:(.text+0x6aa): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x6c9): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x6ea): undefined reference to `pipeWriteList'
/tmp/ccufg8rD.o: In function `srv_setChip':
nvtvd.c:(.text+0x747): undefined reference to `pipeReadArgs'
/tmp/ccufg8rD.o: In function `srv_setSettings':
nvtvd.c:(.text+0x7e0): undefined reference to `pipeReadArgsOpt'
/tmp/ccufg8rD.o: In function `srv_getSettings':
nvtvd.c:(.text+0x821): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x846): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x86a): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_setMode':
nvtvd.c:(.text+0x8ba): undefined reference to `pipeReadArgsOpt'
/tmp/ccufg8rD.o: In function `srv_getMode':
nvtvd.c:(.text+0x901): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x929): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x950): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_setModeSettings':
nvtvd.c:(.text+0x9bc): undefined reference to `pipeReadArgsOpt'
/tmp/ccufg8rD.o: In function `srv_setTestImage':
nvtvd.c:(.text+0xa45): undefined reference to `pipeReadArgsOpt'
/tmp/ccufg8rD.o: In function `srv_getStatus':
nvtvd.c:(.text+0xaa9): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0xabe): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0xaf5): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_getConnection':
nvtvd.c:(.text+0xb26): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0xb3b): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0xb6c): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_listModes':
nvtvd.c:(.text+0xbaf): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0xbc4): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0xbfa): undefined reference to `pipeWriteArray'
nvtvd.c:(.text+0xc64): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_findBySize':
nvtvd.c:(.text+0xced): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0xd02): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0xd9a): undefined reference to `pipeWriteArgs'
nvtvd.c:(.text+0xdb1): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_findByOverscan':
nvtvd.c:(.text+0xe3c): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0xe51): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0xf22): undefined reference to `pipeWriteArgs'
nvtvd.c:(.text+0xf39): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_initSharedView':
nvtvd.c:(.text+0xf73): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0xf9f): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0xfd2): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_getTwinView':
nvtvd.c:(.text+0x1003): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x1032): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x1074): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_adjustViewport':
nvtvd.c:(.text+0x10d2): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x1108): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x114a): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_serviceViewportCursor':
nvtvd.c:(.text+0x11c8): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x120c): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x124e): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_version':
nvtvd.c:(.text+0x1277): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x128c): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x12b0): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `srv_init':
nvtvd.c:(.text+0x12e1): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x1313): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x1332): undefined reference to `pipeWriteList'
/tmp/ccufg8rD.o: In function `srv_kill':
nvtvd.c:(.text+0x134f): undefined reference to `pipeReadArgs'
/tmp/ccufg8rD.o: In function `srv_loop':
nvtvd.c:(.text+0x150c): undefined reference to `pipeReadCmd'
nvtvd.c:(.text+0x167b): undefined reference to `pipeReadArgs'
nvtvd.c:(.text+0x1699): undefined reference to `pipeWriteCmd'
nvtvd.c:(.text+0x16ae): undefined reference to `pipeWriteArgs'
/tmp/ccufg8rD.o: In function `main':
nvtvd.c:(.text+0x1875): undefined reference to `back_null_init'
nvtvd.c:(.text+0x1881): undefined reference to `back_root_avail'
nvtvd.c:(.text+0x188a): undefined reference to `back_root_init'
nvtvd.c:(.text+0x18a6): undefined reference to `back_nvdev_avail'
nvtvd.c:(.text+0x18af): undefined reference to `back_nvdev_init'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
make: *** [nvtvd] Ошибка 1
Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580
bormant пишет:

5) На офсайте есть бинарная версия. Если заработает, можно перепаковать из неё.

Не работает - Segmentation fault.

OS: Gentoo
CPU: Xeon E5450 RAM: 8 Gb DDR2, VGA: GeForce GTX750 Ti
MB: Asus P5Q SE2

8

Wehrmacht_Rover пишет:

Не работает - Segmentation fault.

Проверьте бинарники при помощи ldd. У меня все библиотеки нашлись под виртуальной Slackware 13.37, при попытке запуска nvtv сказала, что не нашла поддерживаемой карты.

yars пишет:

Попробовал. Вываливается куча ошибок:

Поправочка: эти ошибки лезут, если не собрать библиотеки, когда они собраны - требует

checking for pci_init in -lpci... no
checking for pci_init in -lpciutils... no
configure: error: pci library required

Версия pciutils в 12.1 - 2.2.10. Пока что думаю, как ее собрать в /opt куда-нибудь, да так, чтобы не нарушить работу штатного пакета. Почему я именно из Slackware-12.1 взял pciutils? Потому, что в репозитории Slacky.eu лежит собранный пакет именно на эту версию Slackware, хотя это еще ничего не значит - тамошний пакет содержит только библиотеки.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580
yars пишет:

Версия pciutils в 12.1 - 2.2.10. Пока что думаю, как ее собрать в /opt куда-нибудь, да так, чтобы не нарушить работу штатного пакета. Почему я именно из Slackware-12.1 взял pciutils? Потому, что в репозитории Slacky.eu лежит собранный пакет именно на эту версию Slackware, хотя это еще ничего не значит - тамошний пакет содержит только библиотеки.

Можно собрать nvtv со статическими библиотеками.

OS: Gentoo
CPU: Xeon E5450 RAM: 8 Gb DDR2, VGA: GeForce GTX750 Ti
MB: Asus P5Q SE2

10 (17.09.2012 00:51:58 отредактировано yars)

Пытаюсь понять, почему "оно" не находит функцию(?) pci_init. Я оптимизировал и собрал-таки версию pciutils 2.1.8 для Slackware 13.37, эта функция есть в access.o:

# ar -t libpci.a 
access.o
generic.o
dump.o
names.o
filter.o
proc.o
i386-ports.o
# ar -x libpci.a access.o
file access.o 
access.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped

Смотрел по F3 в mc... (а как это делается правильно?)
Готовый пакет вместе с патчами и сорцами прилагаю.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

11

yars пишет:

Пытаюсь понять, почему "оно" не находит функцию(?) pci_init.

А что тут пытаться-то? Берём и читаем (сначала документацию, потом вывод об ошибке, потом что именно вызвало ошибку, ага, в config.log):

+ открыть спойлер
$ tar xf nvtv-0.4.7.tar.gz
$ cd nvtv-0.4.7
$ ./configure
...
checking for pci_init in -lpci... no
checking for pci_init in -lpciutils... no
configure: error: pci library required

$ less config.log
...
configure:5674: checking for pci_init in -lpci
configure:5705: gcc -o conftest  -g -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include   -I/usr/local/include  conftest.c -lpci   -L/usr/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXext -lX11 -lm -lm >&5
/usr/lib/libpci.a(names-parse.o): In function `id_parse_list':
names-parse.c:(.text+0xce): undefined reference to `gzgets'
names-parse.c:(.text+0x12a): undefined reference to `gzeof'
/usr/lib/libpci.a(names-parse.o): In function `pci_load_name_list':
names-parse.c:(.text+0x6a0): undefined reference to `gzopen'
names-parse.c:(.text+0x6c4): undefined reference to `gzclose'
names-parse.c:(.text+0x792): undefined reference to `gzopen'
names-parse.c:(.text+0x7c3): undefined reference to `gzerror'
names-parse.c:(.text+0x7d2): undefined reference to `gzclose'
names-parse.c:(.text+0x7e9): undefined reference to `zError'
names-parse.c:(.text+0x7f3): undefined reference to `gzclose'
collect2: ld returned 1 exit status
configure:5708: $? = 1
configure: failed program was:
| #line 5681 "configure"
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "nvtv"
| #define PACKAGE_TARNAME "nvtv-0.4.7"
| #define PACKAGE_VERSION "0.4.7"
| #define PACKAGE_STRING "nvtv 0.4.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "nvtv"
| #define VERSION "0.4.7"
| #define HAVE_X 1
| #define HAVE_GTK 1
| #define HAVE_GTK_VERSION 1
| #define USE_UNIX_BACKEND 1
| #define USE_CLIENT_BACKEND 1
| /* end confdefs.h.  */
|
| /* Override any gcc2 internal prototype to avoid an error.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| /* We use char because int might match the return type of a gcc2
|    builtin and then its argument prototype would still apply.  */
| char pci_init ();
| int
| main ()
| {
| pci_init ();
|   ;
|   return 0;
| }
configure:5726: result: no

По характеру ошибок понимаем, что  при сборке не нашлись gzopen(), gzgets(), gzclose() , а вовсе не libpci.a. По LSB это zlib, библиотеку ея звать libz (можно глянуть в составе пакета: grep /lib/ /var/log/packages/zlib-*). Проверяем предположение, добавив библиотеку libz (ключ -lz):

$ cat <<EOF >conftest.c
/* Override any gcc2 internal prototype to avoid an error.  */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
   builtin and then its argument prototype would still apply.  */
char pci_init ();
int
main ()
{
pci_init ();
  ;
  return 0;
}
EOF

$ gcc -o conftest  -g -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include   -I/usr/local/include  conftest.c -lpci   -L/usr/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXext -lX11 -lm -lz
$

Бинго! Осталось найти по исходникам, где забыли -lz, и поправить.

12

Да уж, мне до вас  еще учиться и учиться ab
Теперь найду, спасибо!

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

13 (17.09.2012 11:47:15 отредактировано bormant)

Там и искать особо нечего. Источником для создания configure является configure.ac, а при его отсутствии -- configure.in (наш случай). Смотрим внутрь, не видим проверки на наличие zlib и добавления ея в LIBS. Допишем:

--- a/configure.in        2004-03-09 13:26:21.000000000 +0300
+++ b/configure.in    2012-09-17 11:42:42.036011913 +0400
@@ -247,6 +247,9 @@
 AC_CHECK_LIB(m,sin,LIBS="$LIBS -lm",
   AC_MSG_ERROR(math library required))

+AC_CHECK_LIB(z,gzopen,LIBS="$LIBS -lz",
+  AC_MSG_ERROR(z library required))
+
 case ${host} in
   *-*-netbsd*)
     AC_CHECK_LIB(i386,i386_iopl,LIBS="$LIBS -li386",

и выполним autoconf.
Теперь сконфигурится и соберётся.

ps. Любите книгу -- источник знаний, читайте маны, они рулёз :-)

14

bormant пишет:

ps. Любите книгу -- источник знаний, читайте маны, они рулёз :-)

Я и так люблю ab вот только не всегда есть у меня возможность ее купить, к сожалению. А от чтения с монитора глаза устают.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

15

Хм. Во всей этой истории есть по крайней мере один положительный для меня момент - я научился двум вещам: делать патчи и разбирать Makefile'ы ab

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

Где взять рабочий NVTV?  bu  at  au

OS: Gentoo
CPU: Xeon E5450 RAM: 8 Gb DDR2, VGA: GeForce GTX750 Ti
MB: Asus P5Q SE2

17

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

Да, не собирается.
Да, пожалуйста, попробуйте собрать
OS: Slackware 14.0 i486
CPU: Intel Celeron

Ошибка сборки указана в первом посте. NVTV - Nvidia TV-Out utility

OS: Gentoo
CPU: Xeon E5450 RAM: 8 Gb DDR2, VGA: GeForce GTX750 Ti
MB: Asus P5Q SE2