(решено) Проблемы и решения

Цитата: Удаленный пользователь от 29/03/2018, 14:40Не монтируется USB накопитель после извлечения через web-интерфейс: "automount: dir /media/sda1 is exist". Предлагаемое решение:
--- ./wive-ng-wive-ng-mt/user/usb/umount_all.sh-wive 2018-03-29 08:49:48.034967280 +0300 +++ ./wive-ng-wive-ng-mt/user/usb/umount_all.sh 2018-03-29 08:54:40.362968217 +0300 @@ -12,7 +12,7 @@ if [ -n "$mounted" ]; then for disk in $mounted; do echo "Umount external drive /dev/$disk." - (sync && umount -fl /dev/$disk && sync) & + (sync && umount -fl /dev/$disk && sync && rmdir /media/$disk) & done sleep 2 fiАльтернативное решение: доработать функцию try_umount() в файле automount.sh.
Не запускается transmission-daemon: "/bin/transmission-daemon: can't load library 'libnatpmp.so.1". Предлагаемое решение:
--- ./wive-ng-wive-ng-mt/libext/libnatpmp/Makefile-wive 2018-03-27 12:49:09.424394701 +0300 +++ ./wive-ng-wive-ng-mt/libext/libnatpmp/Makefile 2018-03-27 12:50:23.121222579 +0300 @@ -169,6 +169,8 @@ endif shared: $(SHAREDLIB) + ln -sf libnatpmp.so libnatpmp.so.1 + ln -sf libnatpmp.so libnatpmp.so.0 cp -vfa *.so* $(LIBCDIRSHARED)/lib -cp -vfa *.la* $(LIBCDIRSHARED)/lib cp -vfa *.h $(LIBCDIRSHARED)/includeСтранная переменная wan_portN в файле /wive-ng-wive-ng-mt/etc/scripts/config-vlan.sh. Возможно N лишняя:
--- ./wive-ng-wive-ng-mt/etc/scripts/config-vlan.sh-wive 2018-03-28 08:11:38.277978199 +0300 +++ ./wive-ng-wive-ng-mt/etc/scripts/config-vlan.sh 2018-03-28 08:14:52.543070453 +0300 @@ -667,10 +667,10 @@ if [ "$OperationMode" != "1" ] || [ "$CONFIG_GE2_RGMII_AN" = "y" ]; then wan_phy="" else - if [ "$wan_portN" = "0" ]; then + if [ "$wan_port" = "0" ]; then wan_phy="4" else wan_phy="0" fi fiКоммит 1ded76 не приводит к желаемому результату. Предположу, что значения задержек взяты из проекта OpenWRT. Не заслуженно упущена одна задержка. Предлагаемое решение:
--- ./wive-ng-wive-ng-mt/linux-3.4.x/arch/mips/rt2880/pci.c-wive 2018-03-19 08:21:23.614124000 +0300 +++ ./wive-ng-wive-ng-mt/linux-3.4.x/arch/mips/rt2880/pci.c 2018-03-19 08:22:59.746163700 +0300 @@ -624,7 +624,7 @@ pcie_link_status = 0; val = RALINK_PCIE0_RST | RALINK_PCIE1_RST | RALINK_PCIE2_RST; ASSERT_SYSRST_PCIE(val); // raise reset all PCIe ports - udelay(200); + udelay(100); #if defined (GPIO_PERST) val = RALINK_GPIOMODE; val &= ~((0x3<<PCIE_SHARE_PIN_SW) | (0x3<<UARTL3_SHARE_PIN_SW)); @@ -640,9 +640,9 @@ #if defined (CONFIG_PCIE_PORT2) val |= (0x1<<GPIO_PCIE_PORT2); #endif - mdelay(100); + mdelay(50); RALINK_GPIO_CTRL0 |= val; // switch PERST_N pin to output mode - mdelay(100); + mdelay(50); RALINK_GPIO_DATA0 &= ~(val); // fall PERST_N pin (reset peripherals) #else /* !defined (GPIO_PERST) */ RALINK_GPIOMODE &= ~(0x3<<PCIE_SHARE_PIN_SW); // fall PERST_N pin (reset peripherals) @@ -674,12 +674,14 @@ #endif RALINK_CLKCFG1 = val; // enable clock for needed PCIe ports - mdelay(50); + mdelay(10); if ((ralink_asic_rev_id & 0xFFFF) == 0x0101) // MT7621 E2 bypass_pipe_rst(); set_phy_for_ssc(); + mdelay(100); + #if defined (GPIO_PERST) val = 0; #if defined (CONFIG_PCIE_PORT0) @@ -766,7 +768,7 @@ #endif /* wait before detect card in slots */ - mdelay(1000); + mdelay(500); #if defined (CONFIG_RALINK_MT7621) #if defined (CONFIG_PCIE_PORT0)
Не монтируется USB накопитель после извлечения через web-интерфейс: "automount: dir /media/sda1 is exist". Предлагаемое решение:
--- ./wive-ng-wive-ng-mt/user/usb/umount_all.sh-wive 2018-03-29 08:49:48.034967280 +0300 +++ ./wive-ng-wive-ng-mt/user/usb/umount_all.sh 2018-03-29 08:54:40.362968217 +0300 @@ -12,7 +12,7 @@ if [ -n "$mounted" ]; then for disk in $mounted; do echo "Umount external drive /dev/$disk." - (sync && umount -fl /dev/$disk && sync) & + (sync && umount -fl /dev/$disk && sync && rmdir /media/$disk) & done sleep 2 fi
Альтернативное решение: доработать функцию try_umount() в файле automount.sh.
Не запускается transmission-daemon: "/bin/transmission-daemon: can't load library 'libnatpmp.so.1". Предлагаемое решение:
--- ./wive-ng-wive-ng-mt/libext/libnatpmp/Makefile-wive 2018-03-27 12:49:09.424394701 +0300 +++ ./wive-ng-wive-ng-mt/libext/libnatpmp/Makefile 2018-03-27 12:50:23.121222579 +0300 @@ -169,6 +169,8 @@ endif shared: $(SHAREDLIB) + ln -sf libnatpmp.so libnatpmp.so.1 + ln -sf libnatpmp.so libnatpmp.so.0 cp -vfa *.so* $(LIBCDIRSHARED)/lib -cp -vfa *.la* $(LIBCDIRSHARED)/lib cp -vfa *.h $(LIBCDIRSHARED)/include
Странная переменная wan_portN в файле /wive-ng-wive-ng-mt/etc/scripts/config-vlan.sh. Возможно N лишняя:
--- ./wive-ng-wive-ng-mt/etc/scripts/config-vlan.sh-wive 2018-03-28 08:11:38.277978199 +0300 +++ ./wive-ng-wive-ng-mt/etc/scripts/config-vlan.sh 2018-03-28 08:14:52.543070453 +0300 @@ -667,10 +667,10 @@ if [ "$OperationMode" != "1" ] || [ "$CONFIG_GE2_RGMII_AN" = "y" ]; then wan_phy="" else - if [ "$wan_portN" = "0" ]; then + if [ "$wan_port" = "0" ]; then wan_phy="4" else wan_phy="0" fi fi
Коммит 1ded76 не приводит к желаемому результату. Предположу, что значения задержек взяты из проекта OpenWRT. Не заслуженно упущена одна задержка. Предлагаемое решение:
--- ./wive-ng-wive-ng-mt/linux-3.4.x/arch/mips/rt2880/pci.c-wive 2018-03-19 08:21:23.614124000 +0300 +++ ./wive-ng-wive-ng-mt/linux-3.4.x/arch/mips/rt2880/pci.c 2018-03-19 08:22:59.746163700 +0300 @@ -624,7 +624,7 @@ pcie_link_status = 0; val = RALINK_PCIE0_RST | RALINK_PCIE1_RST | RALINK_PCIE2_RST; ASSERT_SYSRST_PCIE(val); // raise reset all PCIe ports - udelay(200); + udelay(100); #if defined (GPIO_PERST) val = RALINK_GPIOMODE; val &= ~((0x3<<PCIE_SHARE_PIN_SW) | (0x3<<UARTL3_SHARE_PIN_SW)); @@ -640,9 +640,9 @@ #if defined (CONFIG_PCIE_PORT2) val |= (0x1<<GPIO_PCIE_PORT2); #endif - mdelay(100); + mdelay(50); RALINK_GPIO_CTRL0 |= val; // switch PERST_N pin to output mode - mdelay(100); + mdelay(50); RALINK_GPIO_DATA0 &= ~(val); // fall PERST_N pin (reset peripherals) #else /* !defined (GPIO_PERST) */ RALINK_GPIOMODE &= ~(0x3<<PCIE_SHARE_PIN_SW); // fall PERST_N pin (reset peripherals) @@ -674,12 +674,14 @@ #endif RALINK_CLKCFG1 = val; // enable clock for needed PCIe ports - mdelay(50); + mdelay(10); if ((ralink_asic_rev_id & 0xFFFF) == 0x0101) // MT7621 E2 bypass_pipe_rst(); set_phy_for_ssc(); + mdelay(100); + #if defined (GPIO_PERST) val = 0; #if defined (CONFIG_PCIE_PORT0) @@ -766,7 +768,7 @@ #endif /* wait before detect card in slots */ - mdelay(1000); + mdelay(500); #if defined (CONFIG_RALINK_MT7621) #if defined (CONFIG_PCIE_PORT0)

Цитата: sfstudio от 29/03/2018, 17:34Спасибо.
1 - пока добавил удаление, в будущем логика работы с USB перепишется полностью
2 - странно, но пусть будет
3 - очепятка, хорошо хоть не грозит особо чем-то
4 - причём тут WRT не понял, а задержки были увеличены при работе над CG1 сэмплом и девбордой со сменными pci картами, часть из которых без этого не стартовала. Так что могу только добавить задержку после ssc set, но на нашем железе проблем нет, а другое мы не поддерживаем по определению. Т.к. ничем не грозит то добавлю, не вопрос.
Спасибо.
1 - пока добавил удаление, в будущем логика работы с USB перепишется полностью
2 - странно, но пусть будет
3 - очепятка, хорошо хоть не грозит особо чем-то
4 - причём тут WRT не понял, а задержки были увеличены при работе над CG1 сэмплом и девбордой со сменными pci картами, часть из которых без этого не стартовала. Так что могу только добавить задержку после ssc set, но на нашем железе проблем нет, а другое мы не поддерживаем по определению. Т.к. ничем не грозит то добавлю, не вопрос.