Автоматически перемонтировать диск boostfs

Для тех, кто знаком со сборкой Linux или Linux модули в частности, вот еще одно возможное исправление.

Это добавляет исправление в модуль rndis_host linux для исправления поврежденного MAC-адреса и делает его снова готовым решением для модема.

Интересно, что кто-то уже добавил обходной путь для «перепутанного» mac-адреса в rndis_host.c. К сожалению, это не касается случая с Samsung S7. Я добавил следующие строки:

   int
   generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags)
   {
      ...
      if (bp[0] & 0x02)
         eth_hw_addr_random(net);
      else
         ether_addr_copy(net->dev_addr, bp);

    // correct Samsung S7 'zero' mac address
    if ( (bp[0]==0) && (bp[1]==0) && (bp[2]==0) /*&& (bp[3]==0) && (bp[4]==0) && (bp[5]==0)*/ ) {
       // invalid mac address ==> generate one
       eth_hw_addr_random(net);
    }      
    // end of my fix

Теперь пересоберите модуль ядра и замените его оригинальным «rndis_host.ko.xz» и запустите «depmod -a». Я предлагаю перезагрузить или хотя бы удалить старый модуль: 'rmmod rndis_host'

Надеюсь, это сработает для вас. Теперь просто подключите Smamsung S7 и включите режим модема. Теперь он должен загрузить новый модуль сборки rndis_host и автоматически создать правильную настройку интерфейса и необходимые маршруты.

   # ifconfig enp0s20u3
   enp0s20u3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 192.168.42.253  netmask 255.255.255.0  broadcast 192.168.42.255
       inet6 fe80::f970:b67b:661f:254c  prefixlen 64  scopeid 0x20<link>
       ether 92:06:fe:75:9e:43  txqueuelen 1000  (Ethernet)
       RX packets 100  bytes 35951 (35.1 KiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 135  bytes 31911 (31.1 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

   # netstat -nr
   Kernel IP routing table
   Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
   0.0.0.0         192.168.42.129  0.0.0.0         UG        0 0          0 enp0s20u3
   192.168.42.0    0.0.0.0         255.255.255.0   U         0 0          0 enp0s20u3

Вот отличие от того, что я исправил:

   # diff -u rndis_host.c.ORIG rndis_host.c
   --- rndis_host.c.ORIG   2017-04-05 15:19:01.353765062 -0700
   +++ rndis_host.c        2017-04-05 15:18:37.327765272 -0700
   @@ -434,6 +434,13 @@
       else
            ether_addr_copy(net->dev_addr, bp);

   +//--------- correct Samsung S7 'zero' mac address -------------------------------------------------//
   +    if ( (bp[0]==0) && (bp[1]==0) && (bp[2]==0) /*&& (bp[3]==0) && (bp[4]==0) && (bp[5]==0)*/ ) {
   +        // invalid mac address ==> generate one
   +               eth_hw_addr_random(net);
   +    }      
   +//----- end of correction--------------------------------------------------------------------------//
   +
      /* set a nonzero filter to enable data transfers */
      memset(u.set, 0, sizeof *u.set);
      u.set->msg_type = cpu_to_le32(RNDIS_MSG_SET);
1
12.09.2018, 23:56
1 ответ

См. стр. 37 Руководства по настройке BoostFS для Linux . Там вы увидите раздел об использовании mount. Для вашей среды команда монтирования будет mount -t boostfs datastore.company.com:Commvault /cvdisk. В терминах /etc/fstab:

datastore.company.com:Commvault /cvdisk boostfs defaults 0 0
0
28.01.2020, 00:30

Теги

Похожие вопросы