Install:
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
Install:
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
Open file in nano (or other text editor) from root user:
nano /etc/systemd/system/multi-user.target.wants/mariadb.service
Change parameters in file:
# Restart crashed server only, on-failure would also restart, for example, when # my.cnf contains unknown option Restart=always RestartSec=45s
Restart daemons:
systemctl daemon-reload systemctl restart mariadb.service
1. Connect to router over ssh and run opkg update
2. Install packages opkg install kmod-usb-net kmod-usb-net-rndis kmod-usb-net-cdc-ether kmod-usb2 kmod-usb3 kmod-usb-net-huawei-cdc-ncm usb-modeswitch kmod-usb-serial usbutils
3. Check modem lsusb:
4. Check connection name for modem dmesg | grep usb (for me it’s usb0, somethimes there’s name eth1 and etc.:
5. Create interface in Openwrt Web Panel «Network» — «Interfaces»:
6. Important! Add new mobile interface in WAN-zone in firewall.
7. After all this manipulation you can see working interface:
8. And after all these steps, I was able to go to the model control panel at the address of http://192.168.8.1/
For 4G USB Modem Dongle (Huawei) E3372-325 — first seconds you can see in lsusb Bus 005 Device 013: ID 3566:2001 Mobile Mobile and after Bus 005 Device 015: ID 12d1:155e Huawei Technologies Co., Ltd. Mobile
Full instruction here https://blog.tanatos.org/posts/huawei_e3372h-325_brovi_with_linux/.
So 2 scripts are below
/usr/local/bin/brovi_switch (make it executable!)
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# vim: filetype=bash
# 2023-01-28 Pavel Piatruk, piatruk.by
ID=$$
USB_ID=$(basename $DEVPATH)
{
#set|sort
#ls -la /sys/$DEVPATH
echo bInterfaceClass on ports as follows
grep -H . /sys$DEVPATH/1*/bInterfaceClass
IC=$( grep -h . /sys$DEVPATH/*:1.0/bInterfaceClass )
echo "got bInterfaceClass on 1st port $IC"
echo usb_modeswitch -b $BUSNUM -g $DEVNUM -v 3566 -p 2001
case $IC in
08)
echo Storage MODE
;;
e0)
echo "Already RNDIS"
LOCKFILE=/var/run/brovi.$USB_ID.lock
if [[ -e $LOCKFILE ]]
then
LOCKFILE_AGE=$(( $(date +%s ) - $(stat $LOCKFILE -c %Y) ))
echo LOCKFILE_AGE=$LOCKFILE_AGE
fi
if [[ -n $LOCKFILE_AGE ]] && [[ $LOCKFILE_AGE -lt 10 ]]
then echo was switched VERY recently, noop
else
set > $LOCKFILE
CMDS=(
"usb_modeswitch -b $BUSNUM -g $DEVNUM -v $ID_VENDOR_ID -p $ID_MODEL_ID -W -R -w 400 "
"usb_modeswitch -b $BUSNUM -g $DEVNUM -v $ID_VENDOR_ID -p $ID_MODEL_ID -W -R "
)
i=0
for CMD in "${CMDS[@]}"
do
i=$(($i+1))
echo "=====STEP$i, run: $CMD"
$CMD
done
fi
;;
ff)
echo Serial Port
;;
*)
echo Unknown mode
;;
esac
} | logger -t BROVI
exit 0
and UDEV script /etc/udev/rules.d/40-huawei.rules
ACTION!="add", GOTO="modeswitch_rules_end"
SUBSYSTEM!="usb", GOTO="modeswitch_rules_end"
# All known install partitions are on interface 0
ATTRS{bInterfaceNumber}!="00", GOTO="modeswitch_rules_end"
GOTO="modeswitch_rules_begin"
LABEL="modeswitch_rules_begin"
# Huawei E3372-325
ATTR{idVendor}=="3566", ATTR{idProduct}=="2001", RUN+="/usr/local/bin/brovi_switch %k %p"
LABEL="modeswitch_rules_end"
Firstly find and buy cable on aliexpress by keywords «APC Smart UPS DB9, CP2102, USB RS232, serial 9 D-Sub, cable 940-0024C, Windows 7/8/10, Mac, Linux».
The GPLDL Premium WordPress Themes Repository currently counts 604 downloads.
GPLDL provides free downloads of Premium WordPress Themes from all leading WordPress Developers like AppThemes, CSSIgniter, Dessign, Cyberchimps, Elegant Themes, Elmastudio, Envato/Themeforest, Graph Paper Press, Obox, PanKogut, BuddyPress Team, ThemeZilla, Themify, WooThemes, WPMUDEV including regular updates when they become available.
All WordPress Themes at GPLDL are true originals (no modifications, not nulled, no malware) obtained from the respective developers and are redistributed legally under the terms of the GNU General Public License.
Alternative syntax with Literal Object:
const x = 0;
const height = {
[true]: 0,
[x < 100]: 100,
[100 <= x && x < 200]: 200,
[x >= 200]: 250,
}[true];
console.log(height); // you can see "100"