1

Temat: OpenWrt na modemie E3372

Ktoś próbował kiedyś OpenWrt na modemie jak w temacie lub innym?
Jak wiadomo - wersje hilink to tak naprawdę routery podłączane przez USB, zarządzane przez WebUI np. 192.168.8.1

Tam jest zwykły Linux a procesor to ARMv7 (firmware z odblokowanym telnet i adb):

# cat /proc/version
Linux version 3.4.5 (w00228874@mbb-v7r2-platform) (gcc version 4.6.x-google 

20120106 (prerelease) (GCC) ) #1 PREEMPT Tue Apr 22 22:29:51 CST 2014

# cat /proc/meminfo
MemTotal:          36092 kB

# cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 1325.46

# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00040000 00020000 "m3boot"
mtd1: 000c0000 00020000 "fastboot"
mtd2: 00240000 00020000 "nvbacklte"
mtd3: 00400000 00020000 "nvimg"
mtd4: 00200000 00020000 "nvdload"
mtd5: 00180000 00020000 "nvdefault"
mtd6: 00140000 00020000 "oeminfo"
mtd7: 00600000 00020000 "kernel"
mtd8: 00600000 00020000 "kernelbk"
mtd9: 00080000 00020000 "m3image"
mtd10: 00300000 00020000 "dsp"
mtd11: 00b00000 00020000 "vxworks"
mtd12: 00600000 00020000 "om"
mtd13: 00480000 00020000 "app"
mtd14: 00f00000 00020000 "webui"
mtd15: 00a80000 00020000 "system"
mtd16: 00480000 00020000 "userdata"
mtd17: 02900000 00020000 "online"
mtd18: 00800000 00020000 "cdromiso"
mtd19: 00000000 00020000 "nullMTD"
mtd20: 00000000 00020000 "nullMTD"
mtd21: 00000000 00020000 "nullMTD"
mtd22: 00000000 00020000 "nullMTD"
mtd23: 00000000 00020000 "nullMTD"
mtd24: 00000000 00020000 "nullMTD"
mtd25: 00000000 00020000 "nullMTD"
mtd26: 00000000 00020000 "nullMTD"
mtd27: 00000000 00020000 "nullMTD"
mtd28: 00000000 00020000 "nullMTD"
mtd29: 00000000 00020000 "nullMTD"
mtd30: 00000000 00020000 "nullMTD"
mtd31: 00000000 00020000 "nullMTD"

2

Odp: OpenWrt na modemie E3372

Hisilicony nie są wspierane w sumie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: OpenWrt na modemie E3372

Ale czy miałoby sens, żeby na takim modemie był OpenWrt przecież normalnie modem USB trzeba gdzieś wpiąć np. do routera na którym też jest OpenWrt.

4

Odp: OpenWrt na modemie E3372

Modem nie posiada fizycznych portów ani WiFi. Więc sens jest raczej żaden. OpenWrt nie obsłuży lepiej połączenia LTE.

5

Odp: OpenWrt na modemie E3372

No tak, racja ale dobrze mieć Linux na takim modemie - zwłaszcza z czytnikiem microSD. Właśnie zainstalowałem na modemie Midnight Commander smile
Można kopiować pliki z/na kartę microSD np. robić kopię urządzeń blokowych mtd

6

Odp: OpenWrt na modemie E3372

czytałeś ten wątek ? https://eko.one.pl/forum/viewtopic.php?id=22268

7 (edytowany przez jzef 2022-09-09 17:00:31)

Odp: OpenWrt na modemie E3372

Czyli są modemy USB z Wifi.

Swoją drogą to na modemie E3372 jest chyba Linux w wersji Android albo ma coś z Androida bo polecenia adb działają takie jak przy połączeniu z Androidem:

adb shell cat /system/build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=GRI40
ro.build.display.id=balongv7r2-eng 2.3.3 GRI40 eng.w00228874.20140422.222825 test-keys
ro.build.version.incremental=eng.w00228874.20140422.222825
ro.build.version.sdk=10
ro.build.version.codename=REL
ro.build.version.release=2.3.3
ro.build.date=Tue Apr 22 22:28:36 CST 2014
ro.build.date.utc=1398176916
ro.build.type=eng
ro.build.user=w00228874
ro.build.host=mbb-v7r2-platform
ro.build.tags=test-keys
ro.product.model=Balong V7R2 Android Refrence Design
ro.product.brand=balongv7r2
ro.product.name=balongv7r2
ro.product.device=balongv7r2
ro.product.board=balongv7r2
ro.product.cpu.abi=armeabi
ro.product.manufacturer=unknown
ro.product.locale.language=hdpi
ro.product.locale.region=
ro.wifi.channels=
ro.board.platform=balongv7r2
# ro.build.product is obsolete; use ro.product.device
ro.build.product=balongv7r2
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=balongv7r2-eng 2.3.3 GRI40 eng.w00228874.20140422.222825 test-keys
ro.build.fingerprint=balongv7r2/balongv7r2/balongv7r2:2.3.3/GRI40/eng.w00228874.20140422.222825:eng/test-keys
# end build properties
# system.prop for armboard_v7a
# This overrides settings in the products/generic/system.prop file
#
# rild.libpath=/system/lib/libreference-ril.so
# rild.libargs=-d /dev/ttyS0
ro.sf.lcd_density=120
#
# TOUCH LOG DEFAULT LEVEL
#
log.tag.TOUCH_LOG=ASSERT
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.config.notification_sound=OnTheHunt.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
ro.kernel.android.checkjni=1
ro.setupwizard.mode=OPTIONAL
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt

Działają polecenia pobierania/wysyłania plików adb pull i push

8

Odp: OpenWrt na modemie E3372

Dokładnie tak, jest obcięty android ponoć.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: OpenWrt na modemie E3372

Można zrobić np. kopię partycji WebUI na kartę microSD FAT32:

mount -t vfat /dev/block/mmcblk0p1 /mnt/sdcard
dd if=/dev/block/mtdblock14 of=/mnt/sdcard/webui_mtd14.bin

ale w Windows pliki na karcie microSD w modemie są widoczne dopiero po ponownym podłączeniu modemu do USB.
Można skopiować plik przez adb pull ale to jest bardzo wolne sad

adb connect 192.168.8.1
adb pull /mnt/sdcard/webui_mtd14.bin C:\downloads

Najlepiej przez telnet odpalić na modemie serwer FTP i przez przeglądarkę IE6 (WinXP) pobierać/wysyłać pliki na/z karty microSD:

busybox tcpsvd -vE 0.0.0.0 21 ftpd -w /mnt/sdcard

P.S. Nie wiem czemu ale aby używać poleceń more lub grep przez ADB nie można logować się do konsoli tylko wydawać polecenia z poziomu adb np.

adb shell dmesg | more

Jeśli najpierw wejdziemy na konsolę:

adb shell
#

i teraz spróbujemy zrobić

# dmesg | more

to jest błąd Broken pipe:

more: not found
write: Broken pipe

To samo jest przez telnet i nie wiem jak wykonać dmesg | more ???

10

Odp: OpenWrt na modemie E3372

W środku w modemie nie ma polecenia more (stąd błąd). jak zrobiłeś adb shell dmesg | more to wykonałeś adb shell dmesg i wynik tego przepuściłeś przez more które jest na hoscie, nie na modemie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: OpenWrt na modemie E3372

Jest polecenie more i grep ale dostępne po wydaniu polecenia busybox grep lub busybox more:

# busybox grep
BusyBox v1.21.1 (2013-09-06 10:02:21 CST) multi-call binary.

Usage: grep [-HhnlLoqvsriwFEz] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]...

Search for PATTERN in FILEs (or stdin)

        -H      Add 'filename:' prefix
        -h      Do not add 'filename:' prefix
        -n      Add 'line_no:' prefix
        -l      Show only names of files that match
        -L      Show only names of files that don't match
        -c      Show only count of matching lines
        -o      Show only the matching part of line
        -q      Quiet. Return 0 if PATTERN is found, 1 otherwise
        -v      Select non-matching lines
        -s      Suppress open and read errors
        -r      Recurse
        -i      Ignore case
        -w      Match whole words only
        -x      Match whole lines only
        -F      PATTERN is a literal (not regexp)
        -E      PATTERN is an extended regexp
        -z      Input is NUL terminated
        -m N    Match up to N times per file
        -A N    Print N lines of trailing context
        -B N    Print N lines of leading context
        -C N    Same as '-A N -B N'
        -e PTRN Pattern to match
        -f FILE Read pattern from file

Jak dam samo grep to:

# grep
grep: not found

tylko jak to zastosować np. do dmesg | grep usb ???

12

Odp: OpenWrt na modemie E3372

dmesg | busybox grep usb

Busybox może i posiada go wkompilowanego ale nie zrobili linków w filesystemie do tego.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13 (edytowany przez jzef 2022-09-09 20:50:22)

Odp: OpenWrt na modemie E3372

No faktycznie teraz działa zarówno przez telnet w Putty jak i po odpaleniu adb shell smile
a już myślałem iż nie ma tak podstawowych poleceń jak cp czy ifconfig

P.S. BusyBox ma wkompilowanych całkiem sporo poleceń:

# busybox
BusyBox v1.21.1 (2013-09-06 10:02:21 CST) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        [, [[, acpid, add-shell, addgroup, adduser, adjtimex, ar, arp, arping,
        ash, awk, base64, basename, bbconfig, beep, blkid, blockdev,
        bootchartd, brctl, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr,
        chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear,
        cmp, comm, conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut,
        date, dc, dd, deallocvt, delgroup, deluser, depmod, devfsd, devmem, df,
        dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg,
        dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env,
        envdir, envuidgid, ether-wake, expand, expr, fakeidentd, false, fbset,
        fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs,
        flash_eraseall, flash_lock, flash_unlock, flashcp, flock, fold, free,
        freeramdisk, fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser,
        getopt, getty, grep, groups, gunzip, gzip, halt, hd, hdparm, head,
        hexdump, hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown,
        ifenslave, ifplugd, ifup, inetd, init, inotifyd, insmod, install,
        ionice, iostat, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute,
        iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last, less,
        linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login,
        logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lsof,
        lspci, lsusb, lzcat, lzma, lzop, lzopcat, makedevs, makemime, man,
        md5sum, mdev, mesg, microcom, mkdir, mkdosfs, mke2fs, mkfifo,
        mkfs.ext2, mkfs.minix, mkfs.reiser, mkfs.vfat, mknod, mkpasswd, mkswap,
        mktemp, modinfo, modprobe, more, mount, mountpoint, mpstat, msh, mt,
        mv, nameif, nanddump, nandwrite, nbd-client, nc, netstat, nice, nmeter,
        nohup, nslookup, ntpd, od, openvt, passwd, patch, pgrep, pidof, ping,
        ping6, pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff,
        powertop, printenv, printf, ps, pscan, pstree, pwd, pwdx, raidautorun,
        rdate, rdev, readlink, readprofile, realpath, reboot, reformime,
        remove-shell, renice, reset, resize, rev, rfkill, rm, rmdir, rmmod,
        route, rpm, rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir,
        rx, script, scriptreplay, sed, sendmail, seq, setarch, setconsole,
        setfont, setkeycodes, setlogcons, setserial, setsid, setuidgid, sh,
        sha1sum, sha256sum, sha3sum, sha512sum, showkey, slattach, sleep,
        smemcap, softlimit, sort, split, start-stop-daemon, stat, strings,
        stty, su, sulogin, sum, sv, svlogd, swapoff, swapon, switch_root, sync,
        sysctl, syslogd, tac, tail, tar, taskset, tcpsvd, tee, telnet, telnetd,
        test, tftp, tftpd, time, timeout, top, touch, tr, traceroute,
        traceroute6, true, tty, ttysize, tunctl, tune2fs, ubiattach, ubidetach,
        ubimkvol, ubirmvol, ubirsvol, ubiupdatevol, udhcpc, udhcpd, udpsvd,
        umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop,
        unxz, unzip, uptime, users, usleep, uudecode, uuencode, vconfig, vi,
        vlock, volname, wall, watch, watchdog, wc, wget, which, who, whoami,
        whois, xargs, xz, xzcat, yes, zcat, zcip

I lepiej jednak używać telnetu przez Putty bo w telnet na Windows czy adb shell wyświetla jakieś krzaczki ←[0G# ls←[0K←[0G←[4C po wciśnięciu klawisza kursora do góry czy innych klawiszy funkcyjnych np. backspace

14

Odp: OpenWrt na modemie E3372

Jeszcze pytanie - aby odczytywać/zapisywać kartę SD w NTFS mam zainstalować ntfs-3g .deb dla arm Debian bo w busybox jest dpkg i dpkg-deb ?

15

Odp: OpenWrt na modemie E3372

W sensie chcesz odczytać w modemie? Musiał byś znaleźć binarkę specyficzną dla tego systemu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: OpenWrt na modemie E3372

Wpisałem w wyszukiwarkę mc-4.7.5.4-arm.tar.gz z którego zainstalowałem MC i znajduje mi poradniki instalacji MC na Androida i że trzeba menadżer pakietów opkg:
https://4pda.to/forum/index.php?showtop … &st=40
https://blog.gonzih.me/blog/2011/09/19/ … ybox-tree/
Znalazłem też masę plików .ipk dla armv7 ale nie wiem czy to by się nadawało bo to jest chyba dla kernela 3.2 a ja mam 3.4: https://bin.entware.net/armv7sf-k3.2/Packages.html

Ale jak pisałem w modemie mam dpkg ale jak próbuję:

# busybox dpkg -i nano_2.2.3-2_arm.ipk
dpkg: can't open '/var/lib/dpkg/status': No such file or directory

Czy mogę jakoś wykorzystać dpkg czy muszę zainstalować opkg

17

Odp: OpenWrt na modemie E3372

Rozpakuj to to po prostu i przenieś pliki. Nikt nie powiedział że tam masz system pakietowania i możesz normalnie używać pakietów.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18 (edytowany przez jzef 2022-09-10 08:57:11)

Odp: OpenWrt na modemie E3372

OK, poradziłem sobie. Aby dodać obsługę NTFS read/write na modemie E3372s-153 hilink:

  • pobieramy binarkę ntfs-3g z tego tematu: Full NTFS Read Write support for Android (ARM) (Plik ntfs-3g-only.zip)

  • logujemy się w Putty przez telnet na modem (u mnie 192.168.8.1)

  • montujemy /system w trybie rw:
    mount -o remount,rw /dev/block/mtdblock0 /system

  • odpalamy server ftp np. w katalogu głównym:
    busybox tcpsvd -vE 0.0.0.0 21 ftpd -w /

  • za pomocą IE6 (WinXP) wrzucamy rozpakowany plik ntfs-3g do ftp://192.168.8.1/system/xbin

  • nadajemy prawa wykonywania pliku:
    busybox chmod +x /system/xbin/ntfs-3g

  • montujemy /system z powrotem jako ro:
    mount -o remount,ro /dev/block/mtdblock0 /system

Teraz montujemy kartę microSD NTFS - przy vfat było mmcblk0p1 a tutaj dajemy bez p1:

ntfs-3g /dev/block/mmcblk0 /mnt/sdcard

i mamy dostęp rw do karty NTFS smile

# mount
rootfs / rootfs rw,relatime 0 0
/dev/block/mtdblock12 /modem_log yaffs2 rw,relatime 0 0
/dev/block/mtdblock17 /online yaffs2 rw,relatime 0 0
/dev/block/mtdblock3 /mnvm2:0 yaffs2 rw,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mtdblock15 /system yaffs2 ro,relatime 0 0
/dev/block/mtdblock16 /data yaffs2 rw,relatime 0 0
/dev/block/mtdblock13 /app yaffs2 ro,relatime 0 0
/dev/block/mtdblock14 /app/webroot jffs2 ro,relatime 0 0
/dev/block/mtdblock18 /root yaffs2 rw,relatime 0 0
/dev/block/mmcblk0 /mnt/sdcard fuseblk rw,relatime,user_id=0,group_id=0,allow_other,blksize=2048 0 0

P.S. Modułu fuse.ko nie potrzeba bo fuse jest wkompilowane w kernel:

# cat /proc/config.gz | busybox gunzip > running.config
# cat running.config | busybox grep FUSE
CONFIG_EFUSE_BALONG=y
CONFIG_FUSE_FS=y

19 (edytowany przez jzef 2022-09-10 10:10:27)

Odp: OpenWrt na modemie E3372

Tylko nie wiem czemu mi zadziałało remount mtdblock0 skoro /system jest zamontowany pod mtdblock15 ??? (zrobiłem tak bo tak jest w pliku instalacji MC dla E3372h - inst_mc.sh)

Powinno być raczej:

mount -o remount,rw /dev/block/mtdblock15 /system
mount -o remount,ro /dev/block/mtdblock15 /system

Aby FTP działał zawsze po podłączeniu modemu, edytujemy przez vi plik autorun.sh po wcześniejszym remontowaniu /system jako rw:

busybox vi /system/etc/autorun.sh
else
    /system/bin/insmod_ctf_ko.sh
    /app/appautorun.sh
    /sbin/adbd &
    busybox telnetd -l /bin/sh
    /online/myautorun.sh
    /system/bin/busybox tcpsvd -vE 0.0.0.0 21 ftpd -w /
fi