301

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Hmm? Wyżej masz dokładnie napisane co trzeba wpisać...

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

302

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Masz na myśli ten post:

Cezary napisał/a:

Przecież e3131 ma inny identyfikator pid!

Po er_load_modules sobie dodaj

/bin/mount -t usbfs none /proc/bus/usb
sleep 5
/usr/bin/usb_modeswitch -v 12d1 -p 14fe -c /etc/usb_modeswitch.d/12d1:14fe

Nie działa, pisałem o tym we wcześniejszych postach. Kolega byrrt trochę się namęczył i proszę o więcej szczegółów jak "wymęczył" działanie extroot'a smile.

303

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Przypomnij właściwie na jakim modemie? E353?

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

304

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Czy to oznacza ,że karta jest prawidłowo zamontowana, pytam bo nie ma overlay jak w opisie

root@Gargoyle:~$ mount  | grep /dev/sd
/dev/sda1 on /mnt/sda1 type ext2 (rw,relatime,errors=continue)
root@Gargoyle:~$ df -h  | grep /dev/sd
/dev/sda1                 1.8G      3.0M      1.8G   0% /mnt/sda1

305

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

To znaczy że karta jest po prostu zamontowania. Nie jako extroot.

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

306

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

To chyba mam ten sam problem z exrootem z modemem e3131 nie chce się wgrac wg opisu. Od czego teraz zacząć ?

307

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Od przełączenia modemu na stałe.

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

308

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Tak jak kolega Donvito mam
P:  Vendor=12d1 ProdID=1506 Rev= 1.02
czy mam teraz wpiać:
/bin/mount -t usbfs none /proc/bus/usb
sleep 5
/usr/bin/usb_modeswitch -v 12d1 -p 14fe -c /etc/usb_modeswitch.d/12d1:14fe
jestem całkiem zielony w tym temacie mam tylko trochę doświadczenia z E2.
przez www modem tez nie chciał wystartować mam sim t-mobile.
Jakieś porady dzieki za Twój czas. Mam 2 stare routery to Ci zchecią oddam.Pozdro

309

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Nie, to są polecenia do wpisania w jeden z plików systemowych. E3131 na stałe przełącza się poleceniem at^setport (poleceniem modemu, nie systemu).  Opisane jest to tutaj: http://www.bez-kabli.pl/printview.php?t … mp;start=0 (wyłączenie cdromu, włączenie karty), a polecenia są do wpisania np. przy użyciu TNI pod windows (czy nawet putty), pod openwrt przez picocom (ale musisz go zainstalować).

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

310

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Witam ponownie mam teraz inny problem nie mogę zainstalować sterowników.
root@Gargoyle:/tmp$ opkg install kmod-usb-serial-ftdi_3.3.8-1_ar71xx.ipk
Installing kmod-usb-serial-ftdi (3.3.8-1) to root...
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-serial-ftdi:
*      kernel (= 3.3.8-1-f5439546c9428d2c324d9581ef2260eb) *
* opkg_install_cmd: Cannot install package kmod-usb-serial-ftdi.
root@Gargoyle:/tmp$ opkg install kmod-usb-serial-ftdi_3.3.7-1_ar71xx.ipk
Installing kmod-usb-serial-ftdi (3.3.7-1) to root...
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-serial-ftdi:
*      kernel (= 3.3.7-1-23b3c064eed0d205b64505fe09887923) *
* opkg_install_cmd: Cannot install package kmod-usb-serial-ftdi.
Sa jakies inne sterowniki na ftdi ?

311

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Nie możesz. Czemu chcesz sterowniki z trunka instalować na gargoyle, na wersję stabilną?

opkg update
opkg kmod-usb-serial-ftdi

zrób.

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

312

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

dzięki pomogło

313 (edytowany przez alekwisnia 2012-07-15 23:08:53)

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Jeśli dubluję to proszę o skasowanie.

U mnie przypadek z E169 (Playowy, zdjęty simlock, chodzi pod Areo) + karta 8GB HC.

1. Polecenie:

/tmp/usr/sbin/mke2fs -m 0 /dev/sda1

Nie działało, nie wykrywał /dev/sda1. Pomogło wysłanie komendy AT^U2DIAG=256
2. Polecenie:

/tmp/usr/sbin/e2fsck -y /dev/sda1

zwracało:

Attempt to read block from filesystem resulted in short read while creating root dir

Pomogło odinstalowanie modswitch.

Wszystkie komendy elegancko wchodzą. Reboot i... sys miga, 3G świeci się na wciąż, nie ma lanu ani wifi. Edytuję /etc/config/fstab, wpisuję to co koledzy kilka postów wcześniej (tj właściwie dopisuję, chodzi o linijkę z overlay). Reboot i to samo.
Testowałem też konfigurację z pendrive'm kingstona, sformatowanym wcześniej do ext2. Oba warianty i powtórka z rozrywki (czyt. router nie wstje). Jak mogę sprawdzić co jest źle? Raczej nie logreadem, bo nie ma zapisów z poprzedniego uruchomienia.

314

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Jest może jakaś sprawdzenia logread z poprzedniego uruchomienia? Nie mam pomysłu co w powyższym przypadku może być nie tak.

315

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

logread czyta tylko to co jest w pamięci. Wiec nie, nigdzie się to domyślnie nie odkłada. A sam proces uruchomienia extroota jest bardzo wcześnie, żadne demony jeszcze tam nie działają.

/dev/sda1 jest kartą pamięci? Jeżeli tak to zapewne znów modemu nie przełączyłeś na stałe.

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

316

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Przełączyłem modem na bank. Zresztą nawet to widzę pod Windows, wyraźnie nie odpala tego pseudo CD-ROMu. Dla pewności, że to nie wina modemu próbowałem też podłączyć zwykłego flasha (jak napisałem powyżej). Z tym samym skutkiem (miga dioda sys, świeci się na wciąż 3G, zero sieci). Na dniach spróbuję jeszcze zresetować ustawienia i spróbować jeszcze raz.

317

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

To jeszcze wywal z systemu usb-modeswitch. Może u Ciebie jego kolejne wywołanie powoduje chwilowe odłączenie karty.

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

318 (edytowany przez inside 2012-07-26 19:33:30)

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

@alekwisnia
Odpuść sobie, na tym modemie wielu już próbowało i nie znam przypadku startującego z niego extroota - podepnij hub usb

edytowano:
Z ciekawości spróbowałem jeszcze raz wykonać extroot'a na tym modemie - tym razem wspomagając go zasilanym hubem - i o dziwo startuje prawidłowo. Widać, że problemem było jego zasilenie. Wiecie co by się stało gdybym zamiast oryginalnego zasilacza 1A użył mocniejszego? Czy port usb w routerze automatycznie nie przepuści większego natężenia prądu?

319

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

mozesz sprobować mojego skryptu, który jest kompilacja funkcji do ladowania modułów z /lib/functions/extmount.sh oraz odpaleniem coldpluga z /etc/init.d/boot, co z kolei odpala usb_modeswitcha z odpowiednimi parametrami do kazdego modemu (warunkiem jest aby modem był obslugiwany przez usb_modeswitch).

poniższy skrypt trzeba wrzucic do /lib/preinit aby się uruchamiał przed 50_determine_usb_root, np. zapisać jako plik /lib/preinit/49_usb_modeswitch:

#!/bin/sh
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.


usbmodeswitch() {

    mkdir -p /tmp/modeswitch_modules/modules.d
    mkdir -p /tmp/modeswitch_modules/modules
    ln -sf /etc/modules.d/* /tmp/overlay/etc/modules.d/* /tmp/modeswitch_modules/modules.d
    ln -sf /lib/modules/*/* /tmp/overlay/lib/modules/*/* /tmp/modeswitch_modules/modules
    local modules="$(grep -l '# May be required for rootfs' /tmp/modeswitch_modules/modules.d/*)"
    cd /tmp/modeswitch_modules/modules && {
        module_suffix=ko
        case "$(uname -r)" in
            2.4.*) module_suffix=o ;;
        esac
        for m in $modules; do
            case $m in
                *usb-storage*) break;;
            esac
            cat $m | sed -e 's/^\([^#].*\)/insmod \.\/\1.'$module_suffix'/'| sh 2>&- || :
        done
    }
    rm -rf /tmp/modeswitch_modules
                                                                                                                                                                                                                                                                                                          
    mount -t usbfs none /proc/bus/usb 2>&1

    killall -q hotplug2
    cp /tmp/overlay/etc/hotplug2-init.rules /tmp
    [ -x /sbin/hotplug2 ] && /sbin/hotplug2 --override --persistent \
             --set-worker /lib/hotplug2/worker_fork.so \
             --set-rules-file /tmp/hotplug2-init.rules \
             --max-children 1 >/dev/null 2>&1 &

    sleep 5

    for dev in /sys/bus/usb/devices/*/uevent; do
            [ -e "$dev" ] && echo -n add > "$dev"
    done
    sleep 5
}

boot_hook_add preinit_mount_root usbmodeswitch

drugim krokiem jest update pliku /etc/hotplug2-init.rules. Trzeba dopisać sekcje dla usb, tak aby plik wyglądał w następujący sposób:

$include /etc/hotplug2-common.rules

SUBSYSTEM ~~ (usb) {
        exec /sbin/hotplug-call %SUBSYSTEM%
}

SUBSYSTEM ~~ button {
        exec kill -USR1 1
}

Powyższe zostało testowane na huawei e353-s2 oraz zte k3805-z. Powinno działać na innych modemach o ile są zdefiniowane i obsługiwane w usb_modeswitchu.

trik w powyższym skrypcie polega na tym aby odpalić usb_modeswitch przed załadowanie modułu usb-storage, który to rejestruje i montuje storege dla extroota. Nastepnie jest odpalenie hotplug2 z odpowiednio zmodyfikowanym plikiem konfiguracyjnym oraz zrobienie coldpluga. Te dwie ostatnie operacje są po to aby skrypt był bardziej uniwersalny i nie bylo potrzeby ręcznego odpalenia usb_modeswitcha z numerami device'a, który jest inny dla każdego modemu (równie dobrze można by to zastąpić ręcznym odpaleniem usb_modeswitcha z odpowiednimi parametrami).

320

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

alekwisnia napisał/a:

Jest może jakaś sprawdzenia logread z poprzedniego uruchomienia? Nie mam pomysłu co w powyższym przypadku może być nie tak.

logi mozna przekierowac do pliku zamiast trzymac w pamieci. Trzeba dodac te dwi linijki do /etc/config/system:

        option 'log_file' '/var/log/messages'
        option 'log_type' 'file'

problemem w powyższym rozwiązaniu jest to, ze na wczesnym etapie /dev/mtdblock3 (ktory jest rw) nie jest jeszcze podmontowany a dostepny jest tylko room (ktory jest read only). Rozwiązaniem może być pisanie logu do /tmp, tyle ze o ile pamiętam to log jest czyszczony za każdym rebootem:(

można tez bezpośrednio w skryptach startowych wypisywać informacje debugujace do /tmp albo albo na pewnym etapie do /tmp/overlay bo tam jest chwilo montowany /dev/mtdblock3

321

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

@inside: może nie przepuścić więcej. W zależności od routera masz jakieś ograniczenie na wyjściu które więcej nie da (a w Mr3420/MR3220 zasilanie usb jest przecież sterowane).

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

322

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

@mru: z coldplugiem wygląda nawet sensownie. Ja do tej pory po prostu sztucznie wołałem z danym vid/pid.

W sumie to mogę to spakietować żeby to się instalowało normalnie. Powinno zadziałać.

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

323

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

PS Zrobiłem z tego pakiet, jest u mnie w repo i nazywa się block-extroot-usb-modeswitch

Czyli: aby zrobić extroot na modemie 3G należy:
- mieć kartę w modemie (!)
- zrobić jej format na ext2
- opkg update; opkg install block-extroot-usb-modeswitch
- zmienić odpowiednio fstab aby na /dev/sda1 ustawić is_rootfs.


Na razie działa, choć należy to wytestować dobrze. Dobra robota @mru!

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

324

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

dzięki Cezary za  zrobienie tego pakietu! też o tym myślałem ale nie starczyło mi już weny i zapału aby rozkminiać jak zrobić
pakiety na openwert. Specjalnie pisałem ten skrypt w taki sposób aby był uniwersalny i można to było łatwo spakietować.

Wiedze, ze pakiet zawiera tylko jeden plik:

root@xxxxxxx:~$ opkg files block-extroot-usb-modeswitch
Package block-extroot-usb-modeswitch (1) is installed on root and has the following files:
/lib/preinit/49_usb_modeswitch

a instalacja pakietu dopisała kilka linijek do pliku /etc/hotplug2-init.rules zapewne za pomocą jakiegoś skryptu post-installation? Jednak gdy się usunie pakiet to wpis zostaje. Nie da się tego usunąć jakoś?

A może lepiej zrobić to w troche inny sposób:

1) wrzucić ten ten zmodyfikowany plik do pakietu block-extroot-usb-modeswitch ale pod inna nazwą np. /etc/hotplug2-init-modeswitch.rules

2) zmodifikować hotplug2 w 49_usb_modeswitch aby korzystał z tego nowego pliku:

    killall -q hotplug2
    cp /tmp/overlay/etc/hotplug2-init-modeswitch.rules /tmp
    [ -x /sbin/hotplug2 ] && /sbin/hotplug2 --override --persistent \
             --set-worker /lib/hotplug2/worker_fork.so \
             --set-rules-file /tmp/hotplug2-init-modeswitch.rules \
             --max-children 1 >/dev/null 2>&1 &

Co o tym myślisz? W ten sposób po deinstallacji pakietu wszystko by było ładnie posprzątane. No chyba, że można by usuwać te dodane linijki jakimś skryptem post-desinstallation? Ale nie wiem czy przy pomocy 'opkg remove' można uruchomić jakieś dodatkowe skrypty/polecenia?

BTW. Ciekawy jestem jak będzie to działać z innymi modemami....?

Pozdrawiam

325 (edytowany przez mru 2012-08-02 00:20:56)

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Cezary napisał/a:

Czyli: aby zrobić extroot na modemie 3G należy:
- mieć kartę w modemie (!)
- zrobić jej format na ext2
- opkg update; opkg install block-extroot-usb-modeswitch
- zmienić odpowiednio fstab aby na /dev/sda1 ustawić is_rootfs.

Tak, z tym że należy dodać, że instalacja block-extroot-usb-modeswitch nie zawsze jest konieczna. Instalujemy to tylko gdy:

1. Z jakiś powodów nie jesteśmy w stanie, nie możemy lub nie chcemy wyłączyć cdromu (osobiście nie znalazłem sposobu na wyłączenie cdromu w ZTE K3805-Z)

2. usb_modeswitch powoduje odłączenie karty pamięci.

Tu ciekawa historia z moim Huawei E353. Przedostatni raz robiłem upgrade openwrt ze 3 miesiące temu i wszystko mi śmigało pomimo tego, że cdrom był włączony. Po ostatnim upgrade jaki zrobiłem kilka dni temu, extroot na E353 przestał mi nagle działać. Wniosek: w ciągu ostatnich 3 miesiący zostało coś zmienione w którymś z driverów usb albo samym usb_modeswitchu, że karta pamięci jest odłączana przy przełączaniu trybu modemu.

Dodam, że extroot na innym modemie Huawei K3715 działa wyśmienicie zarówno kiedyś jak i dziś z włączonym cdromem...

Pozdrawiam