Покуражимся ( Courage блог)

  • любопытный плагин для показа эпг на вдр
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

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


    даем команду "newplugin yoor_plugin_name" - скрипт который создает
    болванку плагина - вводим туда имя плагина - для примера я ввел имя bouquet

    Исходный код
    # newplugin bouquet


    идем в PLUGINS/src/bouquet и видим структуру созданную скриптом
    предположим мы хотим чтобы было меню плагина в основном меню да с
    переводом заголовка и строки меню и меню установок плагинов - то есть
    сразу заложим возможность интернационализации


    Надо:
    - отредактировать bouquet.c
    - создать i18n.c i18n.h
    - отредактировать Makefile


    Начнем....
    ======= в bouquet.c =======================================================


    - добавляем заголовок на файл перевода - он же у нас отдельный
    #include "i18n.h"


    - меняем как хотим
    static const char *VERSION = "0.0.1";
    static const char *DESCRIPTION = "Change Bouquet file";
    static const char *MAINMENUENTRY = "Bouquets";


    DESCRIPTION - будет показано в меню вдр в меню установок плагина
    MAINMENUENTRY - строка в основном меню вдр


    - чтобы не забылось сразу задаем то чтоб переводились эти строки
    в определеннии class cPluginBouquet : public cPlugin {
    добавляем tr() в DESCRIPTION и MainMenuEntry
    --- название в меню setup plugins
    virtual const char *Description(void) { return tr(DESCRIPTION); }
    --- название входа в меню плагина в основном меню вдр
    virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); }


    - по тексту далее - вводим класс своего меню - у меня он называется cBouquetMenu


    т/е/ вводим следущий блок ближе к началу - собственно всавка находится
    между start of plugin code и end of bouquet plugin code и правим DESCRIPTION MAINMENUENTRY


    -- в вызове cOsdMenu() заголовок окна прописвываем с каким заголовком меню плагина будет
    (у меня он Bouquets picker ) и говорим что его тоже надо переводить tr()


    =================================================================================


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


    -- немного правим в нижней части


    - в cPluginBouquet::Start(void) прописываем RegisterI18n(Phrases);

    Исходный код
    bool cPluginBouquet::Start(void)
    {
      // Start any background activities the plugin shall perform.
      RegisterI18n(Phrases);
      return true;
    }


    - в определеннии class cPluginBouquet : public cPlugin {


    --- название в меню setup plugins

    Исходный код
    virtual const char *Description(void) { return tr(DESCRIPTION); }


    --- название входа в меню плагина в основном меню вдр

    Исходный код
    virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); }


    - в cOsdObject *cPluginBouquet::MainMenuAction(void) делаем вызов на
    свое меню - в котором вообщем то весь ваш код и будет содержаться
    return new cBouquetMenu - и означает что код меню будет cBouquetMenu -
    это тот блок что мы ввели выше и закомментируем return NULL


    Исходный код
    cOsdObject *cPluginBouquet::MainMenuAction(void)
    {
      // Perform the action when selected from the main VDR menu.
      return new cBouquetMenu;
    
    
      //return NULL;
    }


    С bouquet.c пока все - болванка кода сделана - переходим к переводу


    ============== перевод ===============================================
    Имеем 3 фразы которые мы хотим чтобы переводились -
    "Change Bouquet file" "Bouquets" "Bouquets picker" - создадим файлы


    i18n.h = заголовочный файл - создается раз и навсегда вот его содержание


    i18n.c = собственно переводы - здесь и будем все переворды прописывать



    и не забываем - иначе перевод не подлинкуется добавить в Makefile
    добавляем досборку в плагин и файла перевода - добавляем i18n.o в OBJS =

    Исходный код
    OBJS = $(PLUGIN).o i18n.o


    как бы все )))) можете собирать свой плагин и подключать к вдр '-P'


    в прицепке плагин test который я по горячим следам этого описания слепил

    Файлы

    • vdr-test-0.0.1.tar.gz

      (10.34 kB, скачали 3 раз, последнее скачивание: )
  • ээээ - я без задней мысли - только с передними )))
    я это описалово без намека - просто сам разобрался как интернационализацию делать
    и решил по горячим следам отписаться - а плагин практически готов - надо еще несколько дней - вот первый скриншот
    если кто хочет потестить - могу сырые исходные выложить - релиз 0.0.0 так сказать )))


    то что там внизу написано и кажется абракадаброй - попытки втиснуть в 7-8
    символов на кнопке слова "загрузить букет и настроить на первый канал"
    и "загрузить букет и настроить на сохраненный для этого букета канал" .....
    а кнопка "редактирование" и вообще пока для мебели - имеется ввиду
    редактирование описаний букетов


    если кто придумает более осмысленные сочетания букв на кнопках - буду благодарен

  • .........

    Файлы

    • xorg.conf.txt

      (4.02 kB, скачали 2 раз, последнее скачивание: )

    Сообщение было отредактировано 2 раз, последнее редактирование пользователем Bikalexander ().

  • попробуй так


    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    здесь есть рабочий xorg.conf для двухголового ati - vы все делали правильно - толькео
    в секции где busid "PCI:1:0:0" screen 0 задаются еще специфические для ати опции

    Исходный код
    # SPECIFIC FOR DUAL DISPLAY!!
      Option "MergedFB" "True"
      Option "EnablePageFlip" "True"
      Option "AGPMode" "4"
      Option "AGPFastWrite" "True"
      Option "MergedXineramaCRT2IsScreen0" "True"
      Option "CRT2Position" "RightOf"


    и в секции Section "ServerLayout" вместо screen "Screen2"

    Исходный код
    screen "Screen2" 0 0

    Файлы

    • xorg.conf-2.txt

      (3.77 kB, скачали 7 раз, последнее скачивание: )
  • двухголовая змея Сис - не путать с одноглазой змеей )))


    итак - имеем баребон Асус на чипсете sis
    сзади у этого чуда такой набор видео-выходов VGA (15 пин), DVI-D, Composite video (колокольчик), S-Video
    сразу же забегая вперед скажу - разъем VGA - это грубо говоря одна видео карта, а все остальные разъемы - другая ... далее считаем так
    CRT2 = разъем DVI-D и прочее а CRT1= разъем VGA
    а посему одновременный вывод DVI-D и скажем S-Video невозможен
    возможные варианты такие VGA + DVI-D, VGA + S-Video, VGA + Composite video
    причем подключение к разъему телика по S-video отрубает вывод по DVI-D
    продолжаем про железки - далее понадобится какой же видео чип в чипсете


    # lspci
    0000:01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 65x/M650/740 PCI/AGP VGA Display Adapter


    # dmesg
    agpgart: Detected SiS 651 chipset
    sisfb: Detected SiS301B video bridge
    fb0: SiS 651 frame buffer device version 1.8.9
    sisfb: Copyright (C) 2001-2005 Thomas Winischhofer


    из этой инфо пригодится видео-чип SiS301B адрес pci 01:00.0 и автор Thomas Winischhofer


    страница драйвера sis - как sisfb так и sis для Х окошек
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    на той же странице в нижней части есть и поддерживаемые драйвером sis разрешения
    отличная таблица под словами Available built-in modes on the 300 series:
    а тут страница скачки - внизу есть примеры конфигов -
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    в том числе для двухголового варианта
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    в-общем хватит инфы - переходим к телу ))) правим файл /etc/X11/xorg.conf
    в двух словах - что и как - вместо одного устройства монитора и экрана надо
    создать 2 - и указать в секции лайоут в каком порядке их размещать
    каждому "Device" должен соответствовать свой "Monitor" которому должен быть сопоставлен
    свой "Screen" - сопоставление через Identifier - смотри не перепутай - Кутузов )))



    в-общем все прозрачно и понятно кроме одного момента может быть - по поводу "Xinerama" -
    да - если указать "Xinerama" "on" - то и вправду запускается один х-сервер но при этом
    из кде3 не позволяет установить разрешение каждого из экранов - а вот когда запущены
    2 сервера - то прямо их Х можно устанавливать разрешение для каждого экрана порознь

  • переводим время в юникс эпохальное
    итак - чтобы не забылось - как перевести в bash скрипте любую произвольную
    дату в так называемую эпохальную можно так - кавычки в записи обязательны!!!

    Исходный код
    $ date +%s --date='1970/01/01 00:00:00 -0000'
    0


    без указания временного сдвига -0000 берется установленная в системе временная зона

    Исходный код
    courage@debian:~$ date +%s --date='1970/01/01 00:00:00'
    -10800


    без указания даты и временного сдвига - берется текущая дата и установленный часовой пояс
    вычитается из эпохи - то есть для msd летнего вычитается 4 часа

    Исходный код
    courage@debian:~$ date +%s --date='00:00:00'
    1184097600


    хотя эквивалентная запись записывается с плюсом

    Исходный код
    courage@debian:~$ date +%s --date='00:00:00 +0400'
    1184097600


    а вот так будет для gmt

    Исходный код
    courage@debian:~$ date +%s --date='00:00:00 -0000'
    1184112000


    итак - если программа передач установлена для GMT+2 и событие
    наступает по их зоне в 12:00

    Исходный код
    courage@debian:~$ date +%s --date='2007/07/11 12:00:00 +0200'
    1184148000


    а в нашем часовом поясе GMT+4 это соответственно наступит в 14:00

    Исходный код
    courage@debian:~$ date +%s --date='2007/07/11 14:00:00 +0400'
    1184148000


    то похоже ничего дополнительно делать и не надо - просто в строке
    указываешь сдвиг того пояса для которого программа написана
    для Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. - это для летнего времени +0300
    например там прописано событие 14:00 Мультфильм
    тогда данная команда дает верную строчку для вдр

    Исходный код
    courage@debian:~$ date +%s --date='2007/07/11 14:00:00 +0300'
    1184151600


    и событие прописывается в моей машинке с установкой на летнее
    время Москвы как 15:00 Мультфильм - попали!!!!


    теперь разборки с форматом записей в epg.data


    C S4.8E-85-13-6290 TV5
    E 21 1184153400 4500 4F FF
    T Спрут /сериал, 1999/
    e
    E 21 1184157900 1800 4F FF
    T Телемагазин
    e
    c


    - блок для каждого канала замыкается между C c
    - каждое событие эпг замыкается между E e
    - с идентификатором канала все ясно )))
    - за Т прописывается заголовочная строка
    - за S - подзаголовок - обычно тип программы - фильм год выпуска и т.п.
    - за D длинное описание - обычно для фильмов
    - два длинных числа - это Unix эпохальное время начала программы
    и длина программы в секундах
    - S и D необязательны


    невыясненными остались 3 числа из строки E 21 1184153400 4500 4F FF
    21 и 4F FF - но если сформировать строку вида E 21 <epg_time> <epg_duration> 4F FF
    то вдр ее проглотит
    напомню как получить epg_time

    Исходный код
    $ date +%s --date='2007/07/11 14:00:00 +0300'


    где
    14:00 = время указанное в программе
    +0300 = временной сдвиг той зоны для которой программа составлена


    если время в программе указано для прибалтики тогда +0300 для Москвы +0400

  • как то уже смирился с мыслью что в КДЕ переключение раскладок
    на выбор не очень удобное - но вот натолкнулсмя на инфу что можэно
    любую комбинацию на переключение использовать - и мало того -
    повесить на русскую раскладку свечение светодиода на клаве )))
    xorg.conf


    в предвкушении перезагрузил - и ... НИЧЕГО не изменилось - после некоторого
    времени сделал quit кде приложению которое в трее показывает флаги раскладок
    и т.п. - и о чудо!заработало! переключение ctrl+shift и scroll индикатор
    загорается при русской раскладке


    из консоли можно управлять xkbd так

    Исходный код
    courage@debian:~$ setxkbmap -model pc104 -layout us,ru -variant ,winkeys
    courage@debian:~$ setxkbmap -option grp_led:scroll,grp:ctrl_shift_toggle


    таким образом получается что kde keybord tool берет комбинацию на переключение
    из установок в keybord shortcuts - а xkbd - из своих установок - и эти
    две проги не дружат между собой


    для сохранения фичи чтобы и на экране был флажок раскладки - и индикатор
    на клаве пришлось поставить в keybord shortcuts -
    > switch to next keybord layout -> ISO_next_group (появляется при нажатии
    на клавишу menu) и в xorg.conf опции прописать

    Исходный код
    Option "XkbLayout"  "us,ru"
    	Option "XkbVariant" ",winkeys"
    	Option "XkbOptions" "grp:menu_toggle,grp_led:scroll"
  • не буду мучить рассказами как я дошел до жизни такой - только результат
    имеем на входе имидж для катрейна 910 - и желание посмотреть что там внутри


    сразу же скажу - имидж упакован squashfs-lzma ver 2.1 - инструменты для
    распаковки собираемые из исходных Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. для
    этой версии не подходят - это чтоб не было мучительно больно после долгой
    дороги в дюнах ))


    и еще - в файле есть крошечный префикс - назовем его так - из 16 байт -
    там имя (4 символа) + время(8символов) + словечко 'root' = 16 байт
    так вот - перед распаковокой его надо отгрызть
    а потом распаковать

    Исходный код
    # dd if=usb_rootfs.img of=root.tmp bs=16 skip=1
    # ./unsquashfs -dest ./root7 root.tmp


    в прицепке вид распакованной части под именем root
    чтож - кое что уже видно
    - busybox
    - кернел версии /2.6.11.12_stm20-33

  • чтобы не забылось - что мы приобрели в России с вводом в эксплуатацию Астры 1L


    переброшенные пока транспондеры
    с Астры 1KR
    11509 :V :22000-5/6
    11538 :V :22000-5/6
    11568 :V :22000-5/6
    11597 :V :22000-5/6
    c Астры 1G
    12545 :H :22000-5/6
    c Астры 1H
    12633 :H :22000-5/6


    так - а вот примерные уровни сигналов
    с Астры 1L 13.6dB (12545 h)
    с Астры 1KR 13.6dB (11156 v)
    c Астры 1G 8.5dB (12574 h)
    c Астры 1H 6.1dB (12663 h)


    то есть перенос с 1KR ничего не дает - и вообще странно чего это они с него
    транспондеры перенесли - освобождать его вроде не собирались - может в резерв
    переведут
    и конечно огромный прирост в уровне для транспондеров перекинутых с
    Астры 1G и 1H - 5 и 7 дБ --- это огромное приращение ... так держать - Астра!
    даешь все транспондеры на 1KR и 1L )))

  • Цитата

    Со слов пользователя Courage
    как то уже смирился с мыслью что в КДЕ переключение раскладок
    на выбор не очень удобное - но вот натолкнулсмя на инфу что можэно
    любую комбинацию на переключение использовать - и мало того -
    повесить на русскую раскладку свечение светодиода на клаве )))
    ...


    Courage - еще сделай apt-get install kkbswitch и соответственно запусти эту прогу в KDE - я думаю результат порадует 8):D

  • а вот еще интересный и полезный проект
    X Neural Switcher (XNeur) ¶


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

  • kkbswitch стоит изначально и я вроде писал про это - только название проги не знал

    Цитата

    для сохранения фичи чтобы и на экране был флажок раскладки - и индикатор
    на клаве


    - но смотреть на экран - высматривать там иконку -
    на какой раскладке стою - при "слепом однопальцевом методе набора текста"
    не помогает - а индикатор на клавиатуре - само то ))) -
    еще надо будет этот светодиод перенести прямо рядом с клавишей меню которой раскладки переключаю


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

  • Цитата

    Со слов пользователя Courage
    kkbswitch стоит изначально и я вроде писал про это - только название проги не знал


    ХМ. Ниасилил. Обычно трабл возникает между xxkb и встроенной переключалкой Кедов (Control Center - региональные параметры - раскладки клавы) она тоже выводит в трей флажки. kkbswitch - это скорее просто фроненд к xxkb, непонятно тогда почему его "плющило" ??

  • now on the show - "голубой зуб" в линукс и голубозубый смартфон 6260 серии60 нокии
    ===============================================================
    два режима работы блютус девайсов connectable и discoverable


    режим connectable = означает что к машине можно подключится по ранее
    определенному на этапе сканирования имени - то есть это так сказать -
    только своим - тем кто знает


    режим discoverable = означает что машина открыта для нового сканирования - и будет
    отвечать всем что вот она есть такая - вот ее имя


    включить оба режима сразу можно или консольной командой

    Исходный код
    hciconfig hci0 piscan


    или аналогичной оконной командой для кде

    Исходный код
    khciconfig


    но ... режим discoverable по умолчанию длится 3 минуты - почему так и как его изменить?
    вроде как он должен устанавливаться так же из hciconfig

    Исходный код
    hciconfig hci0 discovto <nn seconds>


    но не тут то было - не реагирует на установку


    bluetooth: inquiry and page scan
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    Цитата

    Попробуйте добавить опцию discovto 0; в секцию device файла hcid.conf и
    произвести следующие действия:
    # /etc/init.d/bluetooth stop
    # rm /var/lib/bluetooth/*/config
    # /etc/init.d/bluetooth start


    хм - на самом деле - так сработало ...
    и в директории
    /var/lib/bluetooth/00:80:C8:35:46:44/
    в файле config вместо mode connectable появилось mode discoverable и девайс
    теперь всегда откликается на сканирование ....


    можно установить /etc/bluetooth/hcid.conf время на отклик на сканирование
    например на 10 минут discovto 600;
    и потом скажем открывать машину на сканирование через khciconfig
    inquiry scan -> enable
    ок ... с этим разобрались - т.е. эту установку он понимает и принимает
    ==============================================================
    чтобы не забылось - как раздать в линуксе инет с одной машины на другую
    через "голубой зуб"
    Раздача интернета через bluetooth
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    к сожалению как сделать это если второй девайс не линукс машина а смартфон - пока не нашел
    вот вроде тут есть что
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    и упоминание некого PythonForSeries60_1stEd.SIS - надо читать в-общем -
    правда на каковском это языке - не знаю пока - похоже на французский
    ==============================================================
    и напоследок какие пакеты для блютус в дебиан этч актуальны и работают
    bluetooth_3.7-1_all.deb bluez-utils_3.7-1_i386.deb kdebluetooth_0.99+1.0beta2-3_i386.deb
    есть уже версия кдеблютус 1.0 бэта3
    The KDE Bluetooth Framework
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    - я пробовал ее собирать - но работает у меня криво -
    надо погодить пока не появится .deb пакет для дебиан (для кубунту есть такой)
    ===============================================================
    как подсмотреть какие сервисы предоставляет сопряженное устройство
    смотрим адрес удаленного устройства hcitool

    Исходный код
    # hcitool scan
    Scanning ...
            00:12:62:31:CF:17       Nokia 6260


    и подставляем этот адрес в sdptool

    Исходный код
    # sdptool browse  00:12:62:31:CF:17 | grep "Service Name"
    Service Name: Hands-Free Audio Gateway
    Service Name: OBEX File Transfer
    Service Name: SyncMLClient
    Service Name: Nokia OBEX PC Suite Services
    Service Name: OBEX Object Push
    Service Name: Fax
    Service Name: Dial-Up Networking


    а так смотрим что за сервисы предоставляются на локальной машине

    Исходный код
    # sdptool browse local | grep "Service Name"
    Service Name: Obex Push Server
    Service Name: KBtSerialChat
    Service Name: KDE Bemused Server


    есть еще любопытная консольная программа btscanner - там еще много чего любопытного
    она может выдать


    а так можно пропинговать удаленное устройство - но не по протоколу tcp/ip
    а по блютусному протоколу l2ping

    Исходный код
    # l2ping 00:12:62:31:CF:17
    Ping: 00:12:62:31:CF:17 from 00:80:C8:35:46:44 (data size 44) ...
    0 bytes from 00:12:62:31:CF:17 id 0 time 83.23ms
    0 bytes from 00:12:62:31:CF:17 id 1 time 42.71ms
    0 bytes from 00:12:62:31:CF:17 id 2 time 43.58ms
    0 bytes from 00:12:62:31:CF:17 id 3 time 44.40ms
    0 bytes from 00:12:62:31:CF:17 id 4 time 37.24ms
    5 sent, 5 received, 0% loss
  • в-общем я почти рехнулся с этим интерфейсом сервиса Network Access Point
    !!!!! он появляется только если какое то внешнее устройство подключилось к этой сети!!!!
    появлятся появляется но не поднимается ;)


    значит действия следущие
    1) проверяем наличие модуля ядра bnep

    Исходный код
    # lsmod | grep bnep


    пусто? не страшно - он потом подгрузится при запуске сервиса
    можно проверить его в modconf в разделе kernel/net/bluetooth/bnep
    должен быть + там


    1а) проверяем в /etc/bluetooth/hcid.conf класс БТ девайса он состоит из 3х байтов
    class 0xSSDDdd
    "SS" "Major Service Class"
    "DD" "Major Device Class"
    "dd" "Minor Device Class"
    подробности - в man hcid.conf
    в двух словах - в SS для поддержки Network Access Point второй бит должен быть 1
    то есть достаточно х02
    второй + 3 байты - можно выбрать из этого
    0x0104 - Workstation
    0x0108 - Server
    0x010c - Laptop
    скажем х020104 это подходящий вариант
    в итоге /etc/bluetooth/hcid.conf


    являются вполне рабочим вариантом - и класс содержит возможность определения данной
    машины как Network Access Point - и машина всегда готова к спариванию discovto 0;
    пин-код по умолчанию - 1234 - это тоже запомним


    2) проверяем что БТ нормально функционирует UP RUNNING PSCAN ISCAN

    Исходный код
    # hciconfig
    hci0:   Type: USB
            BD Address: 00:02:72:01:7D:DA ACL MTU: 192:8 SCO MTU: 64:8
            UP RUNNING PSCAN ISCAN
            RX bytes:57856 acl:445 sco:0 events:322 errors:0
            TX bytes:4719 acl:112 sco:0 commands:96 errors:0


    режим ISCAN - даст возможность чуть позже провести спаривание


    3) смотрим какие локальные сервисы присутствуют

    Исходный код
    # sdptool browse local
    Browsing FF:FF:FF:00:00:00 ...
    #


    ничего нет


    4) добавим сервис Network Access Point - здесь есть разные варианты - лучше всего так

    Исходный код
    # start-stop-daemon --start --exec /usr/bin/pand -- --role NAP  --listen


    но можно и так - но первый вариант лучше

    Исходный код
    # sdptool add NAP
    NAP service registered


    остановить сервис чтобы скажем запустить с другими параметрами можно так

    Исходный код
    # start-stop-daemon --stop --exec /usr/bin/pand


    и проверим появился ли сервис


    есть такое дело ....


    ага - и модуль ядра bnep появился

    Исходный код
    # lsmod | grep bnep
    bnep                   14400  2
    l2cap                  21696  11 bnep,rfcomm,hidp,cmtp
    bluetooth              45732  11 bnep,rfcomm,hidp,cmtp,l2cap,sco,hci_usb


    5) теперь то без чего дальше не пройдешь - с другой машины надо подключится
    к этой сети
    - пока допер до этого - рехнулся - второй линукс машины не было -
    пришлось в виндах - есть там опция в блютус меню - "присоеденится к личной сети (PAN)"
    после поиска и выбора девайса - потребовался паринг - ввел ключ который прописан в hcid.conf (1234)
    по умолчанию - паринг прошел и появился в виндах значок сетевого подключения
    и некий адрес выделился - откуда - не знаю


    и только теперь и появился bnep0 на линукс-сервере !!!!!!

    Исходный код
    # ifconfig -a
    bnep0     Link encap:Ethernet  HWaddr 00:02:72:01:7D:DA
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:40 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:8887 (8.6 KiB)  TX bytes:0 (0.0 b)


    и заработал pand --show

    Исходный код
    # pand --show
    bnep0 00:80:C8:35:46:44 NAP
    #


    теперь можно и поднять интерфейс и установить ему ip


    6) поднимаем интерфейс и проверяем что он поднялся UP RUNNING

    Исходный код
    # ifconfig bnep0 192.168.1.254 netmask 255.255.255.0 
    # ifconfig -a
    bnep0     Link encap:Ethernet  HWaddr 00:02:72:01:7D:DA
              inet addr:192.168.1.254  Bcast:192.168.100.255  Mask:255.255.255.0
              inet6 addr: fe80::202:72ff:fe01:7dda/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:350 errors:0 dropped:0 overruns:0 frame:0
              TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:77237 (75.4 KiB)  TX bytes:7076 (6.9 KiB)


    и на клиенте - у меня в виндах - в свойствах сетевого соединения поднятого при
    подключении к "серверу" в своиствах протокол интернета ставим фиксированный адрес
    192.168.1.253 255.255.255.0


    по завершению установок проходят пинги с 192.168.1.254 и наоборот

    Исходный код
    # ping 192.168.1.253


    чтобы каждый раз не задавать вручную ip - пишем в /etc/network/interfaces

    Исходный код
    # bluetooth network interfaces
    allow-hotplug bnep0
    iface bnep0 inet static
            address 192.168.100.254
            netmask 255.255.255.0


    теперь чтобы не поднимать каждый раз сервис - прописываем его в /etc/default/bluetooth
    и именно сюды - а не в /etc/init.d/bluetooth хотя там и есть опции
    PAND_ENABLED=0
    PAND_OPTIONS=""
    но они перебиваются тем что прописано в /etc/default/bluetooth - итак пишем туда

    Исходный код
    PAND_ENABLED=1
    PAND_OPTIONS="--listen --role NAP"


    и можно перезапустить весь блютус теперь

    Исходный код
    # /etc/init.d/bluetooth stop
    # /etc/init.d/bluetooth start
    Starting bluetooth: hcid sdpd sdp_options rfcomm pand.


    в итоге - прописали в /etc/network/interfaces и в /etc/default/bluetooth и в /etc/bluetooth/hcid.conf
    и забыли
    - только никак не забывавется что интерфейс не появляется пока с другой
    стороны к нему ктонибудь не подключится - этого я точно не забуду никогда


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


    TODO - перекинуть мостик между пиконет и проводной локальной сетью на "сервере"
    где есть 2 интерфейса связанных с 2-мя сетями
    - eth0 локальная сеть 192.168.0.ххх - ip сервера 192.168.0.98 - в ней есть также роутер 192.168.0.2
    - bnep0 пиконет 192.168.1.ххх = сервер 192.168.1.254 и клиент 192.168.1.253

  • а теперь вопрос - надеюсь на помощь - чем надо заменить знаки вопроса на рисунке -
    как прокинуть мостик между двумя сетями так чтобы с desktop #2 был выход через
    router - и хорошо бы чтобы из БТ сети были видны все компы из проводной сети


    на рисунке все хорошо видно - а это маршруты на Desktop #1 - может пригодится

    Исходный код
    # route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.1.0     *               255.255.255.0   U     0      0        0 bnep0
    192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
    default         192.168.0.2     0.0.0.0         UG    0      0        0 eth0


    да - еще - с desktop #2 пингуются оба интерфейса Desktop #1 и 192.168.1.254 и
    192.168.0.98 - а вот роутер 192.168.0.2- не пингуется


    :Pв общем сам разобрался :P
    спасение утопающих дело рук самих утопающих )))
    1) в /etc/sysctl.conf раскомментировать
    net/ipv4/ip_forward=1


    и перезапустить комп или без перезапуска

    Исходный код
    # echo "1" > /proc/sys/net/ipv4/ip_forward


    теперь магическая строка

    Исходный код
    # iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE


    теперь надо сохранить маршрут в файл - в дебиан это делается так

    Исходный код
    # iptables-save > /etc/iptables.save


    это делается единыжды


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

    Исходный код
    # iptables-restore < /etc/iptables.save


    и усе .... надо заделать какой нибудь стартовый скрипт с единственной
    этой строкой и линки в нужные директории /etc/rcX.d положить - но это
    после ... а пока после всего этого безобразия осталось вручную
    запускать эту строку и клиентская машина через БТ - сервер - роутер - в инете ))))


    да - на клиенте шлюз GW 192.168.0.98 DNS 192.168.0.2 - картинку потом перересую )))

  • ============ готовим дебиан-машину ===========================


    1) включить энкрипцию - это понадобится потом - уже при работе- к сожалению в дебиан
    в hcid.conf опция encrypt enable; не прокатывает поэтому надо будет каждый раз при старте
    это сделать
    а вручную включается так

    Исходный код
    # hciconfig hci0 encrypt


    несколько странно но факт - труба будет выводится в сеть через
    профиль DUND (вернее LAN Access Using PPP) а не Network Access Point
    но таковы правила игры
    здесь надо несколько слов сказать о распределении сетей на компе
    в итоге на компе 192.168.0.98 будет сходится 3 сети
    - локальная сеть - у меня это 192.168.0.0 255.255.255.0
    - локальная сеть подключенная через Network Access Point - у меня это 192.168.100.0 255.255.255.0
    - локальная сеть подключенная через LAN Access Using PPP - у меня это 192.168.1.0 255.255.255.0


    итак для подключения через LAN Access Using PPP надо
    2) создать /etc/ppp/peers/dun

    Исходный код
    460800
    debug
    192.168.1.1:192.168.1.2
    ms-dns 192.168.0.98
    lock
    crtscts
    noauth


    в ms-dns прописать адрес своего днс сервера


    3) занести запуск DUND и опции для него в /etc/default/bluetooth

    Исходный код
    DUND_ENABLED=1
    DUND_OPTIONS="--listen call dun"


    и сразу же можно - это надо для пиконет через Network Access Point там же

    Исходный код
    PAND_ENABLED=1
    PAND_OPTIONS="--listen --role NAP --encrypt"


    а вручную запускается так

    Исходный код
    # dund --listen call dun


    4) создать маршрут и сохранить маршруты для последущего восстановления

    Исходный код
    # iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE -o eth0
    # iptables -t nat -A POSTROUTING -s 192.168.100.0/255.255.255.0 -j MASQUERADE -o eth0
    # iptables-save > /etc/iptables.save.bt


    5) прописать для автостарта форвардирования при старте системы в sysctl.conf -
    вернее раскомментировать там строку

    Исходный код
    net/ipv4/ip_forward=1


    а так можно можно вручную включить маршрутизацию

    Исходный код
    echo 1 > /proc/sys/net/ipv4/ip_forward


    6) для работы пиконет через Network Access Point пропишем интерфейс
    в /etc/network/interfaces

    Исходный код
    # bluetooth network interfaces
    allow-hotplug bnep0
    iface bnep0 inet static
            address 192.168.100.254
            netmask 255.255.255.0



    7) создать стартовый скрипт который бы запускался при старте системы и устанавливал
    бы энкрипцию и восстанавливал бы маршруты
    создадим /etc/init.d/bluetooth_1


    и дадим этому файлу пермиссии 755
    пока не будем создавать линки в rcX.d - проверим как все работает


    с линукс машиной вроде бы как все
    все измененные в процессе настройки файлы - в прицепке


    - можно перезагрузить - проверить как все поднимется
    и установится


    =============== проверка после рестарта =======================


    8a) после перезагруза запускаем скрипт /etc/init.d/bluetooth_1

    Исходный код
    # /etc/init.d/bluetooth_1


    8b) проверка энкрипции

    Исходный код
    debian:/home/courage# hciconfig
    hci0:   Type: USB
            BD Address: 00:02:72:01:7D:DA ACL MTU: 192:8 SCO MTU: 64:8
            UP RUNNING PSCAN ISCAN AUTH ENCRYPT
            RX bytes:401 acl:0 sco:0 events:18 errors:0
            TX bytes:321 acl:0 sco:0 commands:18 errors:0


    видим UP RUNNING PSCAN ISCAN AUTH ENCRYPT - это хорошо


    8с) проверяем наличие сервисов


    видим LAN Access Using PPP и Network Access Point - это тоже хорошо


    8d) проверяем маршруты

    Исходный код
    # iptables-save
    # Generated by iptables-save v1.3.6 on Thu Jul 26 13:44:57 2007
    *nat
    :PREROUTING ACCEPT [326:103154]
    :POSTROUTING ACCEPT [2:94]
    :OUTPUT ACCEPT [2:94]
    -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 192.168.100.0/255.255.255.0 -o eth0 -j MASQUERADE
    COMMIT
    # Completed on Thu Jul 26 13:44:57 2007


    тоже ОК - маршруты принялись .....


    ================= проверка работы с Network Access Point ===========
    подключаемся с другой блютус машины в PAN - в виндах это Личная сеть
    выбираем точку доступа debian-0 и в параметрах соедениния tcp/ip
    вводим ip 192.168.100.253 255.255.255.0 шлюз 192.168.0.98 днс 192.168.0.2
    это у меня так - машина на которой все это делается имеет ип 192.168.0.98 -
    его и надо выбрать в качестве шлюза - а днс может быть любой из доступных в сети


    проверяем хоть тем же браузером в инет сходим по нужде - все работает )))


    ================ теперь переходим к настройке трубы =============
    здесь все тоже так же просто ))))


    9) установка gnubox основное - это чтобы труба оказалась в перечне
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    мне повезло - для моей трубы есть отдельно собранная программа sis
    Nokia 6260 2005-04-11 gnubox_6260.sis v1.1 beta, working
    ставится как обычная программа в смартфон- после установки
    появляется иконка gnubox -только не спешите ее запускать - ее время не настало еще )))


    10) создаем специальную точку доступа


    лезем в "настройки" -> "соединение" -> "точки доступа" -> "функции"
    -> "новая точка доступа" -> "исп. стандартные параметры"

    Исходный код
    Имя соединения: 	Bt
    Канал данных: 		Данные GSM
    Телефонный номер: 	0000
    Имя пользователя: 	bt
    Запрос пароля:		нет
    Пароль:			bt
    Аутентификация: 	обычная
    Домашняя страница: 	нет
    Тип вызова:		аналоговый
    Макс. скорость: 	автоматически


    жмем "функции" -> "доп. параметры"
    здесь все оставляем по умолчанию
    жмем "назад" - "назад" - тем самым точка доступа сохраняется


    сразу скажу о двух моментах
    - имя соединения обязательно должно выглядеть именно "Bt" и никак по другому!!!
    - канал передачи данных именно "Данные GSM"
    - телефонный номер любой - и этот номер будет скидываться при работе в пустышку -
    и если потом захотите чтото изменить потом в точке доступа Bt - номер надо будет
    не забыть ввести заново


    11)и вот настало время программы gnubox


    11.1) запускаем программу
    11.2) "функции" -> "2box bluetooth" -> "LAN Access server"
    выведется стандартное окно выбора и поиска соседних голубозубых девайсов
    ищем жмем "новый поиск" -> выбираем debian-0 ->
    do you want to require encryption? -> жмем ОК
    если запросит спаривание - вводим 1234 (то что прописано в hcid.conf)


    если все Ок - он напишет типа "set bt registry here"
    11.3) "функции" -> "install" -> auto set modem ID - напишет типа New modem ID4


    11.4) "функции" -> "install" -> "create records" должно написать "Done"- вот и все )))
    или выскочила системная ошибка (-22) просто перезапустите трубу и по новой
    проверьте все установки в точке доступа - и запустите gnubox и все пункты 1-4 по новой
    как увидели этот "Done" - программку можно закрыть - если все сработает как надо -
    про нее вообще можно забыть )))


    проверим теперь как с этой точкой доступа работают инет приложения - например stICQ
    выбираем в stICQ точку доступа Bt и наблюдаем что все работает )))
    в уголке появился значек активного блютус соединения
    проверены также стандартный браузер в трубе - с претензионным названием - Интернет )))
    и Опера Мини (кстати вышла 4-ая бетка - очень хороший браузер для мобилы)
    все эти приложения работают - причем даже одновременно )))
    одно замечание - опера мини рисует значек "поднятая трубка" - типа что соединение идет
    по каналу gsm - но на самом деле - по блютус ...


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

    Файлы