Odp: Pakiet luci-app-modemdata i co dalej..
Więc na twoim nie działa odczyt w ten sposób. A przez samo umbim nie jesteś w stanie praktycznie nic odczytać.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → Pakiet luci-app-modemdata i co dalej..
Strony Poprzednia 1 2 3 4 5 6 7 … 11 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
Więc na twoim nie działa odczyt w ten sposób. A przez samo umbim nie jesteś w stanie praktycznie nic odczytać.
Więc na twoim nie działa odczyt w ten sposób. A przez samo umbim nie jesteś w stanie praktycznie nic odczytać.
Więc nie będę się z tym dalej kopał, skoro tak u mnie działa. Pozostaje mi jeszcze MM do testów, ale to zapewne poczeka.
Ok udało mi się odpalić MM i to niewiele pokazuje. Plus musiałem lekko zmienić skrypt (params) abym mógł odczytać dane w LuCI
#!/bin/sh
#
# (c) 2025 Cezary Jackiewicz <cezary@eko.one.pl>
#
DEVICE=$1
if [ -z "$DEVICE" ]; then
echo '{"error":"Device not found"}'
exit 0
fi
FORCE_PLMN=$2
[ "x$FORCE_PLMN" = "x1" ] || FORCE_PLMN=""
. /usr/share/libubox/jshn.sh
mmcli -m "$DEVICE" --signal-setup=3 >/dev/null 2>&1
json_load "$(mmcli -m "$DEVICE" -J --get-cell-info 2>/dev/null | jsonfilter -q -e '@.modem.*')" 2>/dev/null
if json_is_a "cell-info" array; then
json_select "cell-info"
idx=1
while json_is_a ${idx} string; do
json_get_var line $idx
if echo "$line" | grep -q "serving: yes"; then
IFS=','
for F in $line; do
KEY=""
VAL=""
eval $(echo "$F" | awk -F: '{gsub(" ", "");printf "KEY=%s, VAL=%s\n", $1, $2}')
case "$KEY" in
"celltype")
MODE=$VAL
_MODE=$(echo "$VAL" | tr 'a-z' 'A-Z')
case "$_MODE" in
"LTE")
MODE_NUM=7
;;
"UMTS")
MODE_NUM=2
;;
esac
;;
"operatorid")
COPS_NUM=$VAL
_plmn_mcc=${COPS_NUM:0:3}
_plmn_mnc=${COPS_NUM:3:3}
_plmn_mnc=$(printf "%02d" $_plmn_mnc)
;;
"tac")
_TAC=$VAL
;;
"ci")
_CELLID=$VAL
;;
"physicalci")
_pci=$(printf "%d" "0x$VAL")
;;
"earfcn")
_earfcn=$VAL
;;
"rsrp")
_rsrp=$VAL
;;
"rsrq")
_rsrq=$VAL
;;
esac
done
break
fi
idx=$((idx + 1))
done
fi
_SIGNAL=0
T=$(mmcli -m "$DEVICE" -J --signal-get 2>/dev/null | jsonfilter -q -e '@.modem.signal.'$MODE)
if [ -n "$T" ]; then
_rsrp=""
_rseq=""
_rssi=""
_snr=""
_rscp=""
_ecio=""
eval $(echo "$T" | jsonfilter -q -e "_rsrp=@.rsrp" -e "_rsrq=@.rsrq" -e "_rssi=@.rssi" -e "_snr=@.snr" -e "_rscp=@.rscp" -e "_ecio=@.ecio")
if [ -n "$_rssi" ]; then
_rssi=$(echo "$_rssi" | awk '{printf "%d\n", $1}')
[ "$_rssi" -ge -51 ] && _rssi=-51
_SIGNAL=$(((_rssi+113)*100/62))
fi
fi
T=$(mmcli -m "$DEVICE" -J 2>/dev/null)
if [ -n "$FORCE_PLMN" ]; then
_plmn_description=$(awk -F[\;] '/'$COPS_NUM'/ {print $2}' /usr/share/modemdata/mccmnc.dat)
[ -z "$_plmn_description" ] && _plmn_description="$COPS_NUM"
else
_plmn_description=$(echo "$T" | jsonfilter -q -e "@.modem['3gpp']['operator-name']")
fi
T=$(echo "$T" | jsonfilter -q -e "@.modem['3gpp']['registration-state']")
case "$T" in
"home")
_registration=1
;;
*)
_registration=0
;;
esac
echo "{"
echo "\"signal\":\"$_SIGNAL\","
echo "\"operator_name\":\"$_plmn_description\","
echo "\"operator_mcc\":\"$_plmn_mcc\","
echo "\"operator_mnc\":\"$_plmn_mnc\","
[ -n "$_plmn_mcc" ] && COUNTRY=$(awk -F[\;] '/^'$_plmn_mcc';/ {print $2}' /usr/share/modemdata/mcc.dat)
echo "\"country\":\"$COUNTRY\","
echo "\"mode\":\"$_MODE\","
echo "\"registration\":\"$_registration\","
if [ "$MODE_NUM" = "7" ]; then
[ -n "$_CELLID" ] && _CELLID_DEC=$(printf "%d" "0x$_CELLID")
fi
echo "\"lac_dec\":\"\","
echo "\"lac_hex\":\"\","
echo "\"cid_dec\":\"$_CELLID_DEC\","
echo "\"cid_hex\":\"$_CELLID\","
echo "\"addon\":["
[ -n "$_rssi" ] && echo "{\"idx\":35,\"key\":\"RSSI\",\"value\":\"$(printf "%.1f" $_rssi) dBm\"},"
if [ "$MODE_NUM" = "7" ]; then
[ -n "$_rsrp" ] && echo "{\"idx\":36,\"key\":\"RSRP\",\"value\":\"$(printf "%.1f" $_rsrp) dBm\"},"
[ -n "$_rsrq" ] && echo "{\"idx\":37,\"key\":\"RSRQ\",\"value\":\"$(printf "%.1f" $_rsrq) dB\"},"
[ -n "$_snr" ] && echo "{\"idx\":38,\"key\":\"SNR\",\"value\":\"$(printf "%.1f" $_snr) dB\"},"
if [ -n "$_TAC" ]; then
T_DEC=$(printf "%d" "0x$_TAC")
echo "{\"idx\":23,\"key\":\"TAC\",\"value\":\"${T_DEC} (${_TAC})\"},"
fi
fi
if [ "$MODE_NUM" = "2" ]; then
[ -n "$_ecio" ] && echo "{\"idx\":36,\"key\":\"ECIO\",\"value\":\"$_ecio dB\"},"
fi
if [ -n "$_pci" ]; then
echo "{\"idx\":33,\"key\":\"PCI\",\"value\":\"$_pci\"},"
fi
if [ -n "$_earfcn" ]; then
echo "{\"idx\":34,\"key\":\"EARFCN\",\"value\":\"$_earfcn\"}"
fi
echo "]}"
exit 0Dostosowałem układ do tego co już mam opisane.
[
{
"vendor":"Quectel",
"product":"RM520N-GL",
"revision":"RM520NGLAAR03A04M4G",
"imei":"############",
"iccid":"##############",
"imsi":"###########"
}
,
{
"status":"CONNECTED",
"conn_time":"0d, 00:11:17",
"conn_time_sec":"677",
"conn_time_since":"20250803180152",
"rx":"73.9 MiB",
"tx":"1.3 MiB"
}
,
{
"signal":"100",
"operator_name":"Play",
"operator_mcc":"260",
"operator_mnc":"06",
"country":"Poland",
"mode":"LTE",
"registration":"1",
"lac_dec":"",
"lac_hex":"",
"cid_dec":"6438230",
"cid_hex":"623D56",
"addon":[
{"idx":35,"key":"RSSI","value":"-51.0 dBm"},
{"idx":36,"key":"RSRP","value":"-74.0 dBm"},
{"idx":37,"key":"RSRQ","value":"-13.0 dB"},
{"idx":38,"key":"SNR","value":"17.6 dB"},
{"idx":23,"key":"TAC","value":"1620 (654)"},
{"idx":33,"key":"PCI","value":"482"},
{"idx":34,"key":"EARFCN","value":"1474"}
]}
]
-----------------------------------
General | path: /org/freedesktop/ModemManager1/Modem/0
| device id: 4ae8dc32f8bc85fe3cb4ead89b627783cc65729b
-----------------------------------
Hardware | manufacturer: Quectel
| model: RM520N-GL
| firmware revision: RM520NGLAAR03A04M4G
| carrier config: ROW_Commercial
| carrier config revision: 0A012222
| h/w revision: 20000
| supported: gsm-umts, lte, 5gnr
| current: gsm-umts, lte, 5gnr
| equipment id: 868371055556666
-----------------------------------
System | device: /sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1
| physdev: /sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1
| drivers: qmi_wwan, option1
| plugin: quectel
| primary port: cdc-wdm0
| ports: cdc-wdm0 (qmi), ttyUSB0 (ignored), ttyUSB1 (gps),
| ttyUSB2 (at), ttyUSB3 (at), wwan0 (net)
-----------------------------------
Status | lock: sim-pin2
| unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
| state: [32mconnected[0m
| power state: on
| access tech: lte, 5gnr
| signal quality: 97% (recent)
-----------------------------------
Modes | supported: allowed: 3g; preferred: none
| allowed: 4g; preferred: none
| allowed: 3g, 4g; preferred: 4g
| allowed: 3g, 4g; preferred: 3g
| allowed: 5g; preferred: none
| allowed: 4g, 5g; preferred: 5g
| allowed: 4g, 5g; preferred: 4g
| allowed: 3g, 5g; preferred: 5g
| allowed: 3g, 5g; preferred: 3g
| allowed: 3g, 4g, 5g; preferred: 5g
| allowed: 3g, 4g, 5g; preferred: 4g
| allowed: 3g, 4g, 5g; preferred: 3g
| current: allowed: 3g, 4g, 5g; preferred: 5g
-----------------------------------
Bands | supported: utran-1, utran-4, utran-6, utran-5, utran-8, utran-2,
| eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
| eutran-12, eutran-13, eutran-14, eutran-17, eutran-18, eutran-19,
| eutran-20, eutran-25, eutran-26, eutran-28, eutran-29, eutran-30,
| eutran-32, eutran-34, eutran-38, eutran-39, eutran-40, eutran-41,
| eutran-42, eutran-43, eutran-46, eutran-48, eutran-66, eutran-71,
| utran-19, ngran-1, ngran-2, ngran-3, ngran-5, ngran-7, ngran-8,
| ngran-12, ngran-13, ngran-14, ngran-18, ngran-20, ngran-25, ngran-26,
| ngran-28, ngran-29, ngran-30, ngran-38, ngran-40, ngran-41, ngran-48,
| ngran-66, ngran-70, ngran-71, ngran-75, ngran-76, ngran-77, ngran-78,
| ngran-79
| current: utran-1, utran-4, utran-5, utran-8, utran-2, eutran-1,
| eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
| eutran-12, eutran-13, eutran-14, eutran-17, eutran-18, eutran-19,
| eutran-20, eutran-25, eutran-26, eutran-28, eutran-29, eutran-30,
| eutran-32, eutran-34, eutran-38, eutran-39, eutran-40, eutran-41,
| eutran-42, eutran-43, eutran-46, eutran-48, eutran-66, eutran-71,
| utran-19, ngran-1, ngran-2, ngran-3, ngran-5, ngran-7, ngran-8,
| ngran-12, ngran-13, ngran-14, ngran-18, ngran-20, ngran-25, ngran-26,
| ngran-28, ngran-29, ngran-30, ngran-38, ngran-40, ngran-41, ngran-48,
| ngran-66, ngran-70, ngran-71, ngran-75, ngran-76, ngran-77, ngran-78,
| ngran-79
-----------------------------------
IP | supported: ipv4, ipv6, ipv4v6
-----------------------------------
3GPP | imei: 868355555666444
| enabled locks: fixed-dialing
| operator id: 26006
| operator name: Play
| registration: home
| packet service state: attached
-----------------------------------
3GPP EPS | ue mode of operation: csps-2
| initial bearer path: /org/freedesktop/ModemManager1/Bearer/0
| initial bearer apn: internet
| initial bearer ip type: ipv4
-----------------------------------
SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0
| sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
| slot 2: none
-----------------------------------
Bearer | paths: /org/freedesktop/ModemManager1/Bearer/1Pozostałe dane trzeba chyba czytać z poleceń at w trybie debugowania czego nie mogę znów włączyć, niby w proto mam to aktywne i ustawione ale i tak nie pozwala mi wykonywać poleceń. Nie wiem czy on czegoś jeszcze do tego wymaga, czy ja jestem MM odporny.
Co zmieniłeś w params?
I pokaż surowe dane, bo access tech: lte, 5gnr sugeruje że dane są inaczej do wybrania niż w przypadku zwykłego lte.
Co zmieniłeś w params?
echo "\"lac_dec\":\"\","
echo "\"lac_hex\":\"\","
echo "\"cid_dec\":\"$_CELLID_DEC\","
echo "\"cid_hex\":\"$_CELLID\","
echo "\"addon\":["
echo "{\"idx\":34,\"key\":\"EARFCN\",\"value\":\"$_earfcn\"}"I pokaż surowe dane, bo access tech: lte, 5gnr sugeruje że dane są inaczej do wybrania niż w przypadku zwykłego lte.
Niestety nic wiecej sobie nie zapisalem. Surowe dane?
mmcli -m 0 -J --get-cell-info
mmcli -m 0 -J --get-cell-info
{"modem":{"generic":{"cell-info":["cell type: lte, serving: no, physical ci: 1E2, earfcn: 525, rsrp: -74.500000, rsrq: -9.800000","cell type: lte, serving: yes, operator id: 26006, tac: 654, ci: 602B45, physical ci: 1E2, earfcn: 3350, rsrp: -80.600000, rsrq: -10.800000, timing advance: 2"]}}}Bez sensu są te dane ![]()
Bez sensu są te dane
Na to nie mam wpływu.
Wielki MM a wykłada się na podstawach.
Cezary pamiętasz może jak jest z SINR / SNR?
Dla LTE/5G mam na sztywno kolumnę SINR, znowu widzę że po uqmi Twoje skrypty czytają SNR (wrzuciłem ten nowy i czyta szybko, nie mam zawiechy nawet w mbim).

Tylko nie wiem jak do tego SNR podejść, czy pokazać to zamiennie (dla ułatwienia). Wolałbym dla jednej wartości nie produkować znowu nie wiadomo ile kodu aby to wyprostować.
To nie to samo. SNR to stosunek mocy sygnału do sumy mocy szumów, a SINR - mocy sygnału do szumów i interferencji (tylko mnie zaraz nie zjedźcie za definicję). To drugie daje lepszy podgląd na sprawę sygnału.
QMI niestety zwracają SNR.
Ja wiem ze to nie jest to samo. Eh.. nie mogli sie zdecydowac na cos i zostawic sinr, tak to teraz kombinuj aby to wygladalo logicznie (prawdziwie).
Ok, nie wiem czy ktoś to czyta (i przy okazji czeka na publikację pakietu).
Na ten moment sytuacja jest następująca..
Do opisania zostały mi 2 ostatnie zakładki, raczej polecę już na łatwiznę i zrezygnuję z ambitnych planów dodania opcji aktualizacji pakietu z repozytorium (przynajmniej na ten moment). O ile dobrze pamiętam do ogarnięcia były by 3 warianty instalacji pakietów (chyba taką migrację przeszło OpenWrt w tej dziedzinie). Inna kwestia że i tak za długo bawię się z tym pakietem bo ciągle coś wychodzi.
Przepisane jest odświeżanie zakładki z modemami aby sobie to ręcznie dostosować czas za pomocą rozwijanego menu. Zrobiłem tak, ale nie wiem czy to się przyda bo z tego co testowałem to qmi/MM nie wypadały na zakrętach kiedy było co 5 sekund, a testowałem nawet serial/uqmi na jednym modemie od razu.
MM pokazuje gupoty, więc albo tak.. albo nic, znaczy proszę pisać swój lepsiejszy pakiet.
Nie obiecuję na 100% ale będę chciał na weekend dokończyć resztę i opublikować pakiet/odświeżyć repo. A co się uda, zobaczymy.
Skąd ten pakiet można pobrać/skompilować?
Skąd ten pakiet można pobrać/skompilować?
Nie obiecuję na 100% ale będę chciał na weekend dokończyć resztę i opublikować pakiet/odświeżyć repo.
Jeszcze go nie ma.
Skąd ten pakiet można pobrać/skompilować?
Jest już u mnie na githubie. Do repo trafi później bo.. mam problem z dwoma pakietami, więc musi czekać i jeszcze możliwe że będzie aktualizacja dla modemdata.
@Cezary
Kolega @stich86 bawi się teraz RM520N-GLAP oraz Quectel MHI driver i aby to działało z dawnym 3ginfo wymaga dodania dla
getdevicevendorproduct()nowego wariantu:
'mhi_DUN'*)
devpath=$(find /sys/devices -name "$devname" -type d 2>/dev/null | head -1)
target_dir=${devpath%/*/*/*}
V=$(cat "$target_dir/vendor")
D=$(cat "$target_dir/device")
echo "pci/${V/0x/}${D/0x/}"
;;Czy pakiet luci-app-modemdata działa na ZTE MF286D, bo nie ma go na liście wspieranych sprzętów (za to jest dwa razy ZTE MF286A) i nic nowego mi się nie dodało do menu po zainstalowaniu tego pakietu?
Czy pakiet luci-app-modemdata działa na ZTE MF286D, bo nie ma go na liście wspieranych sprzętów (za to jest dwa razy ZTE MF286A) i nic nowego mi się nie dodało do menu po zainstalowaniu tego pakietu?
Pakiet działa, na tym sprzęcie też testowałem. Lista modemów wymaga aktualizacji.
Kolega @stich86 bawi się teraz RM520N-GLAP oraz Quectel MHI driver i aby to działało z dawnym 3ginfo wymaga dodania dla
getdevicevendorproduct()nowego wariantu:
'mhi_DUN'*) devpath=$(find /sys/devices -name "$devname" -type d 2>/dev/null | head -1) target_dir=${devpath%/*/*/*} V=$(cat "$target_dir/vendor") D=$(cat "$target_dir/device") echo "pci/${V/0x/}${D/0x/}" ;;
Dane idą takie same jak dla zwykłego RM520N-GL?
Dane idą takie same jak dla zwykłego RM520N-GL?
tworzony jest dedykowany port at i potem czyta wszystko normalnie.
Nie pamiętam już czy te id były dodane pci/17cb0308 i pci/1eac1004.
Wrzuciłem do gita z drobną modyfikacją. Jutro przebuduję i wrzucę pakiet do repo.
Czy pakiet luci-app-modemdata działa na ZTE MF286D, bo nie ma go na liście wspieranych sprzętów (za to jest dwa razy ZTE MF286A) i nic nowego mi się nie dodało do menu po zainstalowaniu tego pakietu?
Przed instalacją nowego pakietu do modemu trzeba było wywalić obecny.
Inna sprawa, Lucyna tak ma.. jak dodajesz pakiet i go nie widać to trzeba przeklikać menu lub się wylogować aby cache się odświeżył.
Wrzuciłem do gita z drobną modyfikacją. Jutro przebuduję i wrzucę pakiet do repo.
Cezary a możesz do addon dodać dla 2c7c0800 slot SIM przy okazji?
S=$(sms_tool -d $DEVICE at "AT+QUIMSLOT?")
T=$(echo "$S" | awk -F [:] '/^\+QUIMSLOT/{print $2}' | xargs)
[ -n "$T" ] && addon 11 "Slot" "$T"No też mogę. Pytanie tylko jaki to będzie miało sens dla urządzeń z jednym fizycznym slotem (np. Mikrotiki które maja modem wlutowany w postaci chipa)
Strony Poprzednia 1 2 3 4 5 6 7 … 11 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → Pakiet luci-app-modemdata i co dalej..
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc