Автор Тема: Как подключениться к интернет  (Прочитано 17150 раз)

Оффлайн solman

  • Специалист
  • ****
  • Сообщений: 79
  • Репутация: +26/-0
    • Просмотр профиля
    • E-mail
Как подключениться к интернет
« : Январь 03, 2011, 04:24:56 am »
Стоит OpenSolaris 2008 и есть 3G-usb modem. С виндой проблем нет - спокойно заходит в инет. А как в Солярис настроить подключиение к интернет и можно ли вообще ?

Илья

  • Гость
Re: Как подключениться к интернет
« Ответ #1 : Январь 03, 2011, 09:12:54 am »
А какой фирмы 3g модем если МТС то можно прочитать на главной странице как подключить

Оффлайн solman

  • Специалист
  • ****
  • Сообщений: 79
  • Репутация: +26/-0
    • Просмотр профиля
    • E-mail
Re: Как подключениться к интернет
« Ответ #2 : Январь 07, 2011, 08:31:06 am »
нет. Beeline

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 461
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Как подключениться к интернет
« Ответ #3 : Январь 09, 2011, 10:15:14 am »
Как называется модем (фирма-изготовитель и марка)?

Оффлайн solman

  • Специалист
  • ****
  • Сообщений: 79
  • Репутация: +26/-0
    • Просмотр профиля
    • E-mail
Re: Как подключениться к интернет
« Ответ #4 : Январь 10, 2011, 04:52:07 am »
3G-usb-modem HUAWEI

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 461
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Как подключениться к интернет
« Ответ #5 : Январь 10, 2011, 05:00:44 am »
Норм. Значит скорее всего все можно подключить. Главное - переключить модем из режима флешки в режим модема. Тут нужна специальная программа.

Оффлайн solman

  • Специалист
  • ****
  • Сообщений: 79
  • Репутация: +26/-0
    • Просмотр профиля
    • E-mail
Re: Как подключениться к интернет
« Ответ #6 : Январь 10, 2011, 05:17:56 am »
И как же быть-то ?
Можешь прогу подсказать?

Оффлайн solman

  • Специалист
  • ****
  • Сообщений: 79
  • Репутация: +26/-0
    • Просмотр профиля
    • E-mail
Re: Как подключениться к интернет
« Ответ #7 : Январь 11, 2011, 07:15:54 am »

Наткнулся на одну статью. Глянь плиз. Подойдет ли она в моем случае?

http://cd-freeos.blogspot.com/2008/11/huawei-e219-e220-e226-3g-beeline-mts.html


Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 461
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Как подключениться к интернет
« Ответ #8 : Январь 11, 2011, 10:22:25 am »
Да, похоже. Можно попробовать. Только там самый важный момент пропущен - как обратить модем из флешки в модем. Некоторые модемы обращаются после того, как флешку извлекают, а для некоторых надо писать программу на libusb, чтобы отправить им команду обращения в модем. Если не получится настроить по статье - пиши, поразбираемся.

Оффлайн solman

  • Специалист
  • ****
  • Сообщений: 79
  • Репутация: +26/-0
    • Просмотр профиля
    • E-mail
Re: Как подключениться к интернет
« Ответ #9 : Январь 12, 2011, 01:57:35 am »
Вообщем такая тема...
Следовал я точно по данной статье. Но не получилось. Дело в том, что у меня строчка инициализации следующая:
AT+CGDCONT=1,"ip","internet.beeline.ru".

И еще момент. Там написано:
"Проверяем работает ли устройство:
$ pfexec tip /dev/term/0"
но когда я делаю, во первых у меня /dev/term/a. И когда я делаю  pfexec tip /dev/term/а , у меня токо внизу пишет "connect" и висит.... Т.е. в моем случае

solman@nix# pfexec tip /dev/term/a
connect


. Также, у меня номер дозвона *99***1#. Соотвествующим образом я написал в файлах. И в последний момент когда набираю последнюю команду
pfexec pppd call beeline debug - - - появляется AT&F и висит.  Т.е.

solman@nix# pfexec pppd call beeline debu
AT&F


Через минут 5-10 останавливается. И ниче не получается. Т.е. ип-адрес не получает.



Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 461
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Как подключениться к интернет
« Ответ #10 : Январь 12, 2011, 04:10:44 am »
Если /dev/term/0 нету, значит модем как модем не определился и настраивать pppd еще рано.  Для начала надо определить id производителя и id продукта на шине USB. Делается это командой echo "::prtusb"|pfexec mdb -k . Скинь, что выведет эта команда и еще команда определения соответствия устройств и драйверов prtconf -D.

Оффлайн solman

  • Специалист
  • ****
  • Сообщений: 79
  • Репутация: +26/-0
    • Просмотр профиля
    • E-mail
Re: Как подключениться к интернет
« Ответ #11 : Январь 15, 2011, 04:41:59 am »
Приветствую!
Ниже то, что ты просил

echo "::prtusb" | pfexec mdb -k
INDEX   DRIVER      INST  NODE            VID.PID     PRODUCT             
1       ehci        0     pci1043,8179    0000.0000   No Product String
2       uhci        0     pci1043,8179    0000.0000   No Product String
3       uhci        1     pci1043,8179    0000.0000   No Product String
4       uhci        2     pci1043,8179    0000.0000   No Product String
5       uhci        3     pci1043,8179    0000.0000   No Product String
6       scsa2usb    0     storage         125f.d18a   A-DATA USB Flash Drive
7       usb_mid     0     device          046d.c311   USB Multimedia Keyboard
8       hid         2     mouse           045e.0040   Microsoft 3-Button Mouse with IntelliEye(TM)
9       usb_mid     2     device          12d1.1446   HUAWEI Mobile

System Configuration:  Sun Microsystems  i86pc
Memory size: 1024 Megabytes
System Peripherals (Software Nodes):

i86pc (driver name: rootnex)
    scsi_vhci, instance #0 (driver name: scsi_vhci)
    isa, instance #0 (driver name: isa)
        motherboard
        fdc, instance #0 (driver name: fdc)
            fd, instance #0 (driver name: fd)
        lp, instance #0 (driver name: ecpp)
        asy, instance #0 (driver name: asy)
        motherboard
        pit_beep, instance #0 (driver name: pit_beep)
    pci, instance #0 (driver name: npe)
        pci1043,8178, instance #0 (driver name: agptarget)
        pci8086,2771, instance #0 (driver name: pcie_pci)
            display, instance #0 (driver name: nvidia)
        pci1043,817f, instance #0 (driver name: audiohd)
        pci8086,27d0, instance #1 (driver name: pcie_pci)
        pci8086,27d6, instance #2 (driver name: pcie_pci)
            pci1043,81aa, instance #0 (driver name: rge)
        pci1043,8179, instance #0 (driver name: uhci)
            device, instance #0 (driver name: usb_mid)
                keyboard, instance #0 (driver name: hid)
                input, instance #1 (driver name: hid)
            mouse, instance #2 (driver name: hid)
        pci1043,8179, instance #1 (driver name: uhci)
        pci1043,8179, instance #2 (driver name: uhci)
        pci1043,8179, instance #3 (driver name: uhci)
        pci1043,8179, instance #0 (driver name: ehci)
            storage, instance #0 (driver name: scsa2usb)
                disk, instance #1 (driver name: sd)
            device, instance #2 (driver name: usb_mid)
                storage, instance #3 (driver name: scsa2usb)
                    disk, instance #4 (driver name: sd)
                storage, instance #4 (driver name: scsa2usb)
                    disk, instance #5 (driver name: sd)
        pci8086,244e, instance #0 (driver name: pci_pci)
        pci1043,8179
        pci-ide, instance #0 (driver name: pci-ide)
            ide, instance #0 (driver name: ata)
                sd, instance #0 (driver name: sd)
            ide (driver name: ata)
        pci-ide, instance #1 (driver name: pci-ide)
            ide, instance #2 (driver name: ata)
                cmdk, instance #0 (driver name: cmdk)
                cmdk, instance #1 (driver name: cmdk)
            ide (driver name: ata)
        pci1043,8179
    pseudo, instance #0 (driver name: pseudo)
    agpgart, instance #0 (driver name: agpgart)
    options, instance #0 (driver name: options)
    xsvc, instance #0 (driver name: xsvc)
    used-resources
    cpus, instance #0 (driver name: cpunex)
        cpu (driver name: cpudrv)
        cpu (driver name: cpudrv)

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 461
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Как подключениться к интернет
« Ответ #12 : Январь 15, 2011, 04:57:15 pm »
Модем определился как флешка и на шине USB имеет VID.PID=12d1.1446.
Вот стек драйверов, которые к нему подцепились:
device, instance #2 (driver name: usb_mid)
                storage, instance #3 (driver name: scsa2usb)
                    disk, instance #4 (driver name: sd)
                storage, instance #4 (driver name: scsa2usb)
                    disk, instance #5 (driver name: sd)
Надо сделать так, чтобы флешка превратилась в модем и число PID поменялось на другое, соответственно другие драйвера подцепятся к устройству. Для этого надо запустить программу, приведенную ниже.
/*
 *  Copyright (C) 2009 ChenL
 *
 *  switch_modem.c
 *  Switch HUAWEI series modem from storage to modem device.
 *  To compile:
 *   gcc switch_modem.c -lusb -o switch_huawei
 */

#include <stdio.h>
#include "usb.h"

#define   HUAWEI_VENDOR   0x12d1
#define   HUAWEI_PRODUCT   0x1446 /* Change this to your own device ID! */

static usb_dev_handle *udev;

/*
 * Not sure what's purpose of this command. But we need it. The device
 * seems to perform a reset upon receiving it.
 */
int send_bulk_command()
{
   unsigned char command[] = {0x55, 0x53, 0x42, 0x43, 0x78, 0x56, 0x34, 0x12, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
/*      0x55, 0x53, 0x42, 0x43, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,
      0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
*/
   };
   
   if (usb_claim_interface(udev, 0) != 0) {
      printf("Fail to claim interface: %d\n", usb_strerror());
      return (-1);
   }

   if ((usb_clear_halt(udev, 0x81) != 0) ||
       (usb_clear_halt(udev, 0x01) != 0)) {
      printf("Fail to clear halt: %s\n", usb_strerror());
      return (-1);
   }

   if (usb_bulk_write(udev, 0x01, (char *)command, 31, 0) != 0) {
      printf("Fail to send SCSI command: %s\n", usb_strerror());
   }
}

int main(void)
{
   struct usb_bus *bus;
   struct usb_device *dev;

   usb_init();

   usb_find_busses();
   usb_find_devices();

   printf("bus/device  idVendor/idProduct\n");

   for (bus = usb_busses; bus; bus = bus->next) {
      for (dev = bus->devices; dev; dev = dev->next) {
         int i, ret;
         char string[256];

         printf("%s/%s     %04X/%04X\n", bus->dirname,
             dev->filename, dev->descriptor.idVendor,
             dev->descriptor.idProduct);

         udev = usb_open(dev);
         if (udev) {
            if (dev->descriptor.iManufacturer) {
               ret = usb_get_string_simple(udev,
                   dev->descriptor.iManufacturer,
                   string, sizeof(string));
               if (ret > 0)
                  printf("- Manufacturer : %s\n",
                      string);
               else
                  printf("- Unable to fetch"
                      " manufacturer string %d\n",
                      ret);
            }


            if (dev->descriptor.iProduct) {
               ret = usb_get_string_simple(udev,
                   dev->descriptor.iProduct,
                   string, sizeof(string));
               if (ret > 0)
                  printf("- Product      : %s\n",
                      string);
               else
                  printf("- Unable to fetch"
                      " product string\n");
            }

            if (dev->descriptor.iSerialNumber) {
               ret = usb_get_string_simple(udev,
                   dev->descriptor.iSerialNumber,
                   string, sizeof(string));
               if (ret > 0)
                  printf("- Serial Number: %s\n",
                      string);
               else
                  printf("- Unable to fetch serial"
                      " number string\n");
            }

            if ((dev->descriptor.idVendor == HUAWEI_VENDOR)
                && (dev->descriptor.idProduct == HUAWEI_PRODUCT)) {
               int rval;

               rval = usb_control_msg(udev,
                   USB_TYPE_STANDARD | USB_RECIP_DEVICE,
                   USB_REQ_SET_FEATURE,
                   1, /* wValue */
                   0, /* wIndex */
                   0, /* wLength */
                   0, /* size */
                   0  /* timeout */);

               if (rval != 0) {
                  printf("Can't switch the modem's"
                      " configuration \n");
               } else {
                  printf("Switch Huawei modem's"
                      " config successfully\n");
               }

               send_bulk_command();

               usb_close(udev);

               goto done;
            }

            printf("No matching devices found!\n");

            usb_close(udev);
         }
      }
   }

done:
   return 0;
}


Оффлайн solman

  • Специалист
  • ****
  • Сообщений: 79
  • Репутация: +26/-0
    • Просмотр профиля
    • E-mail
Re: Как подключениться к интернет
« Ответ #13 : Январь 16, 2011, 02:24:48 am »
keremet, a как запустить-то её? Это как bash скрипт ?

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 461
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Как подключениться к интернет
« Ответ #14 : Январь 17, 2011, 04:25:22 am »
Это код на С. Его сначала надо скомпилировать. Надо сохранить текст программы в файл switch_modem.c, а затем в терминале выполнить команду gcc switch_modem.c -lusb -o switch_huawei . Появится исполняемый файл switch_huawei. Его надо запустить в терминале командой ./switch_huawei