126

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

Bo to chyba musi być odpowiednia kombinacja quectel-cm, luci-proto-quectel i sterownik pcie od quectela. Jutro może spróbuję to jakoś wrzucić na githuba to co ja użyłem.

Narobili wariacji tych pakietow, to teraz szukaj co sie skompiluje i jeszcze zadziala z modemem. Porazka..

127

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

No nie mów że to co ci podesłałem nie działa ? A jeszcze jedno, podczas robienia obrazu, usuń z configu kmod-rmnet, bo to konfliktuje z sterami quectela.

Nie byloby tematu jakby dzialalo smile chyba ze ten kmod-rmnet jak mowisz cos miesza, ale ja neta normalnie mam jak recznie sie polacze. Pakiety do Lucyny tez normalnie na ttyUSB2 lataja.

128

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

W pliku pci_generic.c pod konfigiem modemu są kanały 100 i 101, ale nie ma 18 i 19 i nie wiem za co one odpowiadają. Może to jest przyczyna że ten modem nie chcę działać na generycznym sterowniku ?

Modem aby wstal poprawnie potrzebuje odpowiedniej sekwencji, ktora sterownik mhi_q potrafi wykonac. O ile pamietam nawet widac to w logach.

129

(751 odpowiedzi, napisanych Sprzęt / Hardware)

Kolega @lukasz3134 podzielil sie pakietem luci-proto-quectel

'use strict';
'require rpc';
'require form';
'require network';

var callFileList = rpc.declare({
    object: 'file',
    method: 'list',
    params: [ 'path' ],
    expect: { entries: [] },
    filter: function(list, params) {
        var rv = [];
        for (var i = 0; i < list.length; i++) {
            if (list[i].name.match(/^cdc-wdm/) || list[i].name.match(/^mhi_QMI/))
                rv.push(params.path + list[i].name);
        }
        return rv.sort();
    }
});

network.registerPatternVirtual(/^quectel-.+$/);
network.registerErrorCode('CALL_FAILED', _('Call failed'));
network.registerErrorCode('NO_CID',      _('Unable to obtain client ID'));
network.registerErrorCode('PLMN_FAILED', _('Setting PLMN failed'));

return network.registerProtocol('quectel', {
    getI18n: function() {
        return _('Quectel Cellular');
    },

    getIfname: function() {
        return this._ubus('l3_device') || 'quectel-%s'.format(this.sid);
    },

    getOpkgPackage: function() {
        return 'quectel-cm';
    },

    isFloating: function() {
        return true;
    },

    isVirtual: function() {
        return true;
    },

    getDevices: function() {
        return null;
    },

    containsDevice: function(ifname) {
        return (network.getIfnameOf(ifname) == this.getIfname());
    },

    renderFormOptions: function(s) {
        var dev = this.getL3Device() || this.getDevice(), o;

        o = s.taboption('general', form.Value, '_modem_device', _('Modem device'));
        o.ucioption = 'device';
        o.rmempty = false;
        o.load = function(section_id) {
            return callFileList('/dev/').then(L.bind(function(devices) {
                for (var i = 0; i < devices.length; i++)
                    this.value(devices[i]);
                return form.Value.prototype.load.apply(this, [section_id]);
            }, this));
        };

        o = s.taboption('general', form.Value, 'apn', _('APN'));
        o.validate = function(section_id, value) {
            if (value == null || value == '')
                return true;

            if (!/^[a-zA-Z0-9\-.]*[a-zA-Z0-9]$/.test(value))
                return _('Invalid APN provided');

            return true;
        };

        o = s.taboption('general', form.Value, 'pincode', _('PIN'));
        o.datatype = 'and(uinteger,minlength(4),maxlength(8))';

        o = s.taboption('general', form.ListValue, 'auth', _('Authentication Type'));
        o.value('mschapv2', 'MsChapV2');
        o.value('pap', 'PAP');
        o.value('chap', 'CHAP');
        o.value('none', 'NONE');
        o.default = 'none';

        o = s.taboption('general', form.Value, 'username', _('PAP/CHAP username'));
        o.depends('auth', 'pap');
        o.depends('auth', 'chap');
        o.depends('auth', 'mschapv2');

        o = s.taboption('general', form.Value, 'password', _('PAP/CHAP password'));
        o.depends('auth', 'pap');
        o.depends('auth', 'chap');
        o.depends('auth', 'mschapv2');
        o.password = true;

        o = s.taboption('advanced', form.Value, 'delay', _('Modem init timeout'),
            _('Maximum amount of seconds to wait for the modem to become ready'));
        o.placeholder = '30';
        o.datatype    = 'min(1)';

        o = s.taboption('advanced', form.Value, 'mtu', _('Override MTU'));
        o.placeholder = dev ? (dev.getMTU() || '1500') : '1500';
        o.datatype    = 'max(9200)';

        o = s.taboption('general', form.ListValue, 'pdptype', _('PDP Type'));
        o.value('ipv4v6', 'IPv4/IPv6');
        o.value('ipv4', 'IPv4');
        o.value('ipv6', 'IPv6');
        o.default = 'ipv4v6';

        o = s.taboption('advanced', form.Flag, 'defaultroute', _('Use default gateway'),
            _('If unchecked, no default route is configured'));
        o.default = o.enabled;

        o = s.taboption('advanced', form.Value, 'metric', _('Use gateway metric'));
        o.placeholder = '0';
        o.datatype = 'uinteger';
        o.depends('defaultroute', '1');
    }
});

dzialajacym.

Pakiet powinien szukac

/dev/mhi_QMI0

ktory u mnie jest

/dev/mhi_BHI
/dev/mhi_DIAG
/dev/mhi_DUN
/dev/mhi_LOOPBACK
/dev/mhi_QMI0

a ja protokolu do wyboru nie mam, sam plik lezy sobie obok innych plikow protokolow, uprawnienia sie zgadzaja.

Zmiana

    getOpkgPackage: function() {

na aktualnie stosowana funkcje tez nic nie zmienia.

Wgralem testowo fw od kolegi lytr ktore kiedys przygotowal, tam mam protokol do wyboru, ale wskazanie dostepnych urzadzen tworzy interfejs np. quectel-modem a nie

https://i.ibb.co/0y9brBfV/mhi-q.png

130

(751 odpowiedzi, napisanych Sprzęt / Hardware)

U mnie dzialalo mhi_q + /usr/bin/quectel-CM-M -4 -n 1 -s apn.

131

(751 odpowiedzi, napisanych Sprzęt / Hardware)

Cezary napisał/a:

Po co tworzysz własny qmodem-lite? Jeżeli to quectelowe działa to zostaw tak jak jest i tyle. Dlaczego chcesz powołać do życia nowy byt?

Przeciez napisalem dopiero co ze u mnie nie dziala, jakby dzialalo to bym sie nie produkowal. U mnie jak testowalem wczesniej protokol Quectel jest niewidoczny, nie mam go do wyboru.

132

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

https://filebin.net/s3g8db6hahzlku6i

Musiałem ci wystawić w pojedynczych plikach, bo całego folderu nie akceptowało.

Ok, dziekowac zerkne na to wieczorem.

133

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

Jak chcesz to mogę ci wystawić kombinacje jaką używam.

Mozesz podeslac ten do Lucyny, zaoszczedzi mi to roboty i szybciej udostepnie swoj obraz/zrodla.

134

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

No ja też wszystko w LuCI, luci-proto-quectel pomógł.

To ja mam chyba jakis inny pakiet.

135

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

No właśnie ja to zrobiłem bez QModem smile

Ja tez, ale jak to ja chce miec wszystko do wyklikania (co zrobic, lubie tak i juz). Dlatego walcze z Lucyna i skryptami aby to bylo minimalistyczne, ale dzialalo. Czy wyjdzie nie wiem.. zobaczymy..

136

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

W końcu udało mi się rozwikłać problemy z modemami na pcie na kernelu 6.12 i 6.18 już też w BPI-R4. W kernel_menuconfig, w device drivers > pci należy wyłączyć ASPM i Advanced Error Reporting. To pomogło przy Foxconn T99W175 na pcie i powinno pomóc przy modemach na pcie.

Ciekawostka..

Wylaczenie ASPM i Advanced Error Reporting powodowalo u mnie problemy z restartem urzadzenia (konczylo sie tylko na wylogowaniu).

lukasz3134 napisał/a:

OK, więc dotarło do mnie to urządzonko. Zrobiłem sobie obraz ze sterownikami Quectela i modem działa w trybie PCI. Napisałem już na forum OpenWRT, że problem w obrazie z ModemManagerem i sterownikiem mhi-pci-generic jest taki, że modem jest wykrywany w tym samym czasie jako modem PCIe i USB. W związku z tym wszystkie porty się time-outują. To by działało, jeśli podczas detekcji modem byłby widoczny tylko jako PCIe.

Poleceniami at mozna zapewne wylaczyc porty tty, ktore sa obecne w celach diagnostycznych? ale czy to naprawi sytuacje nie wiem, nie probowalem takich akcji.

Na ten moment baaardzo pomalu cos tam dzialam aby na mhi_q sprzet funkcjonowal, ale to jest robienie qmodem lite wiec troche z tym u mnie zejdzie.

137

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

W poniedziałek dojdzie do mnie ten wynalazek, to mogę trochę pomóc. A czy możesz podzielić się dts'em, który używasz teraz ?

Jak bede robil finalny obraz (do testowania) to wrzuce wszystko co uzywam na githuba.

138

(751 odpowiedzi, napisanych Sprzęt / Hardware)

Ale ja te ustawienia znam, choc ten RNDIS w tym modemie mnie zaskoczyl. Niestety nie dziala na niczym innym, czy to mbim/MM.


Ktos jest chetny wgrac moj testowy obraz i pomarudzic?
Na ten moment mamy:
- modem (mhi_q + quectel-CM lub qmi/mbim w trybie usb)
- wi-fi
- diody (front + tyl)
- porty lan & wan

Nie dziala
- port usb (uart lub fake)

Obraz moge wstepnie ustawic, pozostanie tylko zmiana apn (o ile bedzie wymagana). Wiadomo w-fi we wlasnym zakresie.
Później dorobie jakis pakiet do Lucyny aby te ustawienia zautomatyzowac. Nie jestem fanem qmodem.

139

(751 odpowiedzi, napisanych Sprzęt / Hardware)

Cezary napisał/a:

Sprawdź teraz czy networkmanager go łyknie. Sprawdź też czy będzie działał po przestawieniu go na mbim (ja ma ten tryb).

Modem na pakietach Quectela ma takie dzialajace ustawienia:

+QCFG: "data_interface",1,0
OK
+QCFG: "pcie/mode",0
OK
+QCFG: "pcie_mbim",0
OK
+QCFG: "usbnet",3
OK

Moge zrobic testowo obraz na mhi_q aby ten poprawnie podniosl modem a potem sprobowac sprawdzic MM / mbim.

140

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

Jeśli to działa ze sterownikami Quectela, to nie potrzebujesz QModem do tego. Wystarczy sterownik Quectela, Quectel-CM i luci-proto-quectel. Ale w czystym OpenWRT to nie przejdzie. Trzeba sprawić aby ten modem łączył się używając mhi-pci-generic.

qmodem to ladniej opakowane pakiety Quectela (plus wiele wiecej niepotrzebnosci). Fajnie by bylo uruchomic, ale to juz ktos kto ma doktorat z ustawien modemow Quectela musi sie za to zabrac i dobrze modem skonfigurowac.

141

(751 odpowiedzi, napisanych Sprzęt / Hardware)

Walka z modemem..

Ostatnio rozwalilem sobie konfiguracje / modem odmowil wspolpracy czy to na moim OpenWrt czy to na forku/OFW. Nie wiedzialem czy uszkodzilem sprzet, czy modem. Przywrocilem modem do domyslnych i zaczelem na nowo go ustawiac.

Na ten moment...

Modem dziala czy na moim OpenWrt, czy na forku. Modem dziala z pakietami Quectela / qmodem. Tworzą sie rmnet_mhi0 i rmnet_mhi0.1, potem

/usr/bin/quectel-CM-M -4 -n 1 -s apn &

i mamy internety.

Musze jeszcze zgrac sobie z modemu ustawienia (poleceniami at) aby podpatrzec sprawna konfiguracje na przyszlosc.

Na minus..

Nie jestem w stanie zmusic modemu do zestawienia polaczenia na czystym Openwrt przy pcie. Wszystko dziala z mhi_q. Jeszcze nie wiem jak to konfigurowac / ustawiac z Lucyny. Nie chce uzywac qmodem, jest to wolna i przesadzona "kobyla", uzytkownik az tyle nie potrzebuje.

142

(751 odpowiedzi, napisanych Sprzęt / Hardware)

frutis napisał/a:

@IceG a modem z tego routera można wyciągnąć i podłączyć przez jakąś przejściówkę żeby sprawdzić czy działa poza tym sprzętem?

Modem mozna wyciagnac i dziala, ktos to potwierdzil tez w tym temacie.

ririxi napisał/a:

Hej, sorry ze musicie robić to curlem ale musiałam jakoś zabezpieczyć API przed scrapowaniem (chyba nieudolnie z tego co widzę). Może to jakos przemyślę jeszcze i dam wam znać jeżeli jest lepsza opcja niż callowanie curla smile

Dzieki, ale nie trzeba sie nad tym juz zastanawiac, wszystko dziala i nie potrzebujemy instalowac curla wink dane sa pobierane, wiec jest git. Troche zabawy bylo ale ostatecznie mamy lepsza funkcjonalnosci niz wczesniej. Brawo!

144

(751 odpowiedzi, napisanych Sprzęt / Hardware)

lukasz3134 napisał/a:

W kernelu 6.6 będzie to samo najprawdopodobniej, a zaraz właśnie będzie 6.18 więc to bez sensu. Klucz do wszystkiego jest w pliku pci_generic.c. Wątpie, aby definicje w DTS'ie coś jeszcze poprawiły. Jedyne co wyszło dobrze z tymi definicjami, to że drugi mostek pci działa.

Jeszcze jest cos pomerdane lub do opisania. Modem niby wykrywa, ale jest uspiony. Polecenia at moge wysylac, ale taki MM go nie widzi, mbim tez go nie widzi, wisi nieobecny i brak komunikacji.

Cezary napisał/a:

I tak jak chcesz dodać to oficjalnie to musi działać na wersji rozwojowej.

Wiadome, to byl pomysl z desperacji, nie mam pomyslu to moze to...

145

(751 odpowiedzi, napisanych Sprzęt / Hardware)

Korci mnie aby ten kernel 6.6 jeszcze sprawdzic, ale znowu cofac sie.. jak tu niebawem 6.18.. paranoja..

146

(751 odpowiedzi, napisanych Sprzęt / Hardware)

fexliznn napisał/a:

hi,i have a d50,this device cannot boot,Serial port display IPQ5018# .i tried upload the factory firmware and ftpboot  "openwrt-ipq50xx-generic-brax_fa532-store-squashfs-nand-factory.bin”.nothing change,can you give me a backup of all mtds?so i can use my flash programmer reprogram it.thank you so much!

https://forum.openwrt.org/t/adding-supp … 247016/265

Dla zainteresowanych ta funkcjonalnoscia..

Zrobilem aktualizacje pakietu (+repo) i dziala bez curl. Jedyne co trzeba zrobic to zmienic domyslne ustawienie z otwierania strony na pobieranie danych.

Oki, dziekuje. Czyli jest wszystko. Przepisze to w wolnej chwili.

Cezary napisał/a:

Nie zadziała. cors z przeglądarki na to nie pozwala.

Czyli dobrze probowalem, wlasnie mialem w odpowiedzi blad z przegladarka.

Tylko ktos musi upewnic sytuacje jak wyglada skladnia na starszych wydaniach, aby placzu potem nie bylo ze nie dziala. Od biedy moge zostawic i curl niech bedzie moze do wyboru metoda.

@Cezary moglbys sprobowac przetestowac ten pomysl z "Fetch" i LuCI JS?