LINUX.ORG.RU

[ubuntu 9.10] bluez, blueman nap, автоматическое поднятие bnep0


0

0

подскажите пожалуйста как в убунточке сделать так, чтобы сетевой интерфейс при своём появлении сразу поднимался? я раньше пробовал делать, и даже работало, но видимо не грамотно (/etc/network/interfaces):

allow-hotplug bnep0
mapping hotplug
script grep
map bnep0
iface bnep0 inet ipv4ll
auto bnep0
потому что после обновления blueman, интерфейс bnep0 чтото перестал автоматически UP-аться:
bnep0     Link encap:Ethernet  HWaddr 00:1a:7d:0a:c3:fe  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          коллизии:0 txqueuelen:1000 
          RX bytes:344 (344.0 B)  TX bytes:0 (0.0 B)

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


>убунта умная система и может.

дебиан умный, на котором она основана =)

По сабжу - можно сделать скриптик на шелле, который будет этим заниматься и засунуть его в rcf-update add ~/script.sh defaults

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

то есть чтобы скриптик постоянно проверял наличие интерфейса и апал его? я пробовал подобное через watch -n1 ifconfig bnep0 up =) но это дико помоему. возможно есть какие то варианты через /etc/network/interfaces или через udev? у меня недостаточно знаний на счёт этого...

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

Запустите sudo udevadm monitor и посмотрите, какие события случаются при втыкании/вытыкании вашего устройства. Покажите их сюда (http://paste.org.ru/), а мы поможем с написанием /etc/udev/rules/*.rules.

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

тут не много:

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[1271888949.085335] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/bluetooth/hci0/hci0:7 (bluetooth)
UDEV  [1271888949.085403] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/bluetooth/hci0/hci0:7 (bluetooth)
KERNEL[1271888949.585819] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/bluetooth/hci0/hci0:7/bnep0 (net)
UDEV  [1271888949.640957] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/bluetooth/hci0/hci0:7/bnep0 (net)

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

извиняюсь что долго отвечаю.. только домой с работы пришёл =) сейчас уже при подключении выводит с другой цифрой: UDEV [1271928745.839178] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/bluetooth/hci0/hci0:6 (bluetooth)

alx-desktop alx-desktop alx # udevadm info -a -p "/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/bluetooth/hci0/hci0:6"

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/bluetooth/hci0/hci0:6':
    KERNEL=="hci0:6"
    SUBSYSTEM=="bluetooth"
    DRIVER==""
    ATTR{type}=="ACL"
    ATTR{address}=="00:1C:A4:50:B2:2A"
    ATTR{features}=="0xffe98dfe9be90000"

  looking at parent device '/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/bluetooth/hci0':
    KERNELS=="hci0"
    SUBSYSTEMS=="bluetooth"
    DRIVERS==""
    ATTRS{type}=="USB"
    ATTRS{name}=="Alx"
    ATTRS{class}=="0x122104"
    ATTRS{address}=="00:1A:7D:0A:C3:FE"
    ATTRS{features}=="0xffff0d3808080000"
    ATTRS{manufacturer}=="15"
    ATTRS{hci_version}=="1"
    ATTRS{hci_revision}=="3"
    ATTRS{inquiry_cache}==""
    ATTRS{idle_timeout}=="0"
    ATTRS{sniff_max_interval}=="800"
    ATTRS{sniff_min_interval}=="80"

  looking at parent device '/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0':
    KERNELS=="5-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="btusb"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="03"
    ATTRS{bInterfaceClass}=="e0"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bInterfaceProtocol}=="01"
    ATTRS{modalias}=="usb:v0C10p0000d0112dcE0dsc01dp01icE0isc01ip01"
    ATTRS{supports_autosuspend}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:1d.3/usb5/5-1':
    KERNELS=="5-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 3"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="209690"
    ATTRS{idVendor}=="0c10"
    ATTRS{idProduct}=="0000"
    ATTRS{bcdDevice}=="0112"
    ATTRS{bDeviceClass}=="e0"
    ATTRS{bDeviceSubClass}=="01"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="5"
    ATTRS{devnum}=="8"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Broadcom"
    ATTRS{product}=="Broadcom2035 ROM"

  looking at parent device '/devices/pci0000:00/0000:00:1d.3/usb5':
    KERNELS=="usb5"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{urbnum}=="121"
    ATTRS{idVendor}=="1d6b"
    ATTRS{idProduct}=="0001"
    ATTRS{bcdDevice}=="0206"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="5"
    ATTRS{devnum}=="1"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="2"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Linux 2.6.31-20-generic uhci_hcd"
    ATTRS{product}=="UHCI Host Controller"
    ATTRS{serial}=="0000:00:1d.3"
    ATTRS{authorized_default}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.3':
    KERNELS=="0000:00:1d.3"
    SUBSYSTEMS=="pci"
    DRIVERS=="uhci_hcd"
    ATTRS{vendor}=="0x8086"
    ATTRS{device}=="0x24de"
    ATTRS{subsystem_vendor}=="0x1458"
    ATTRS{subsystem_device}=="0x24d2"
    ATTRS{class}=="0x0c0300"
    ATTRS{irq}=="16"
    ATTRS{local_cpus}=="ff"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{modalias}=="pci:v00008086d000024DEsv00001458sd000024D2bc0Csc03i00"
    ATTRS{enable}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

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

Спасибо. Конкретные цифра значения не имеют.

От root'а (через sudo, gksudo или kdesu) запустите ваш любимый текстовый редактор, откройте /etc/udev/rules.d/99-mymodem.rules и напишите:

SUBSYSTEM=="bluetooth" DRIVER=="" ATTR{type}=="ACL" ATTR{address}=="00:1C:A4:50:B2:2A" ATTR{features}=="0xffe98dfe9be90000" RUN+="/sbin/ifup bnep0"

Сохраните файл, после чего перезапустите udev (sudo /etc/init.d/udev restart) и понаблюдайте за сообщениями ядра (watch -n 1 'dmesg | tail') при втыкании устройства (и действиями системы: поднимается ли интерфейс?). Если появится сообщение об ошибке, покажите его сюда.

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

Большое Вам спасибо!

всё заработало =) правда понадобилась перезагрузка (возможно служба boot-овая). только есть ещё вопрос - как данное правило можно сделать универсальным (например если подключу другой телефон к компьютеру)? ведь поменяется hwaddr устройства и, возможно, даже номер интерфейса. ещё интересно - умеет ли сетевая подсистема в Gentoo (которая настраивается через /etc/conf.d/net) сама поднимать такие внезапно появляющиеся интерфейсы?

AlxQ ()
Ответ на: Большое Вам спасибо! от AlxQ

Re: Большое Вам спасибо!

Попробуйте оставить SUBSYSTEM, ATTR{type}, и ATTR{feautures}. Можно также проверять имя интерфейса. Насчёт gentoo не знаю.

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