tinware napisał/a:

Czy kompilacja samego busybox i podmiana w /bin/busybox wystarczyłaby ?

Cezary napisał/a:

Tak. W czym ci ten napis przeszkadza?

Gdzie w kompilatorze znajduje się ten plik od busyboxa i co muszę zmienić, aby wyłączyć ten napis wraz z tymi enterami, który on robi?

302

(77 odpowiedzi, napisanych Oprogramowanie / Software)

System skompilowany, przetestowany - GPIO działa wink Dziękuję serdecznie za konkretny przykład.
Zauważyłem, że nie mogę ustawiać jeszcze trzech PINów: GPIO16 (JTCLK), GPIO20 (MDIO) oraz GPIO21 (MDC).
Czy mogę to jeszcze poprawić?

batorencjusz napisał/a:

Możesz w duzym skrócie wyjaśnić jak ogarnołeś taki kolorowy banner?

Tutaj masz wiele przykładów:
https://misc.flogisoft.com/bash/tip_col … formatting


Gdybyś korzystał z "watch", użyj flagi "--color":

watch --color -n 1 /parh/to/file.sh

304

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Tak, przeglądałem notę tego układu.
Rozumiem, że wyjść Ge2 nie jestem w stanie wykorzystać jako GPIO, nawet kompilując swój system?


Cofnę się jeszcze do nowej płyty u7621-01...

https://ae01.alicdn.com/kf/HTB16X17aAxz61VjSZFrq6xeLFXaY/MTK-MT7621-Enterprise-bezprzewodowy-dwuzakresowy-router-wi-fi-LTE-4G-OpenWrt-Gigabit-MT7621A-chipset-karta-Sim.jpg

Czy tutaj uda mi się użyć TXD1/RXD1 oraz TXD2/RXD2 jako sygnały GPIO?
Czy jedno z nich to konsola do komunikacji z routerem?

305

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Skoro połowa PINów działa mi w trybie GPIO, jeden który nie działa jest od JTAGa (GPIO16/JTCLK), a cała reszta GE2 jest od Ethernetu, to w takim razie te gniazdo 30-PIN wykorzystane jest obecnie w 100%, chyba nie pozbędę się switcha, aby mieć GPIO.

Poza tym: po co producent wyprowadza coś od Ethernetu na fizycznego PINy? Do czego miałoby to służyć?

306

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Chciałbym na PINach 12 (JTCLK), 15 (MDIO), 16 (MDC), 17 (GE2_TXD0), 18 (GE2_TXD1), 19 (GE2_TXD2), 20 (GE2_TXD3), 21 (GE2_TXEN), 22 (GE2_TCLK), 23 (GE2_RXD0), 24 (GE2_RXD1), 25 (GE2_RXD2), 26 (GE2_RXD3), 27 (GE2_RXDV) i 28 (GE2_RXCLK) w miarę możliwości mieć GPIO. Jak mam napisać o tym w pliku target/linux/ramips/dts/U7621-06.dtsi ?

307

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Tylko jak? Brak schematu i miernikiem za dużo nie zdziałam, większość linii pewnie wchodzi bezpośrednio do procesora.

308

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Interesuje mnie maksymalne możliwe wykorzystanie 30-pinowego złącza jako GPIO.
Kartę SD chciałbym zostawić, nie chce robić szkód na innych elementach płyty, tylko zwiększyć ilość z 10PINów GPIO do maksimum.

Czy tak?

&sdhci {
    status = "okay";
};

...

&pinctrl {
    state_default: pinctrl0 {
        gpio {
            ralink,group = "i2c", "jtag", "uart2", "uart3", "wdt";
            ralink,function = "gpio";
        };
    };
};

Obok tego złącza mam złącze konsolowe 4-PIN - chciałbym, aby ono zostało jak jest - czy tak będzie?
Zmiany będą dotyczyły tylko 30-pinowego złącza? Nic innego się nie zmieni?

309

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Dobrze, czyli tutaj:

&sdhci {
    status = "disabled";
};

Ale tutaj, nie wiem jak powinienem postąpić:

&pinctrl {
    state_default: pinctrl0 {
        gpio {
            ralink,group = "jtag", "uart2", "wdt";
            ralink,function = "gpio";
        };
    };
};

310

(77 odpowiedzi, napisanych Oprogramowanie / Software)

W ten sposób?

https://github.com/openwrt/openwrt/blob … .dtsi#L271

pinctrl: pinctrl {
        compatible = "ralink,rt2880-pinmux";
        pinctrl-names = "default";
        pinctrl-0 = <&state_default>;

        state_default: pinctrl0 {
        };

        i2c_pins: i2c_pins {
            i2c_pins {
                ralink,group = "gpio";
                ralink,function = "gpio";
            };
        };

         spi_pins: spi_pins {
            spi_pins {
                ralink,group = "gpio";
                ralink,function = "gpio";
            };
        };

        uart1_pins: uart1 {
            uart1 {
                ralink,group = "gpio";
                ralink,function = "gpio";
            };
        };

         uart2_pins: uart2 {
            uart2 {
                ralink,group = "gpio";
                ralink,function = "gpio";
            };
        };

         uart3_pins: uart3 {
            uart3 {
                ralink,group = "gpio";
                ralink,function = "gpio";
            };
        };

        rgmii1_pins: rgmii1 {
            rgmii1 {
                ralink,group = "gpio";
                ralink,function = "gpio";
            };
        };

        rgmii2_pins: rgmii2 {
            rgmii2 {
                ralink,group = "gpio";
                ralink,function = "gpio";
            };
        };

        mdio_pins: mdio {
            mdio {
                ralink,group = "gpio";
                ralink,function = "gpio";
            };
        };

        pcie_pins: pcie {
            pcie {
                ralink,group = "pcie";
                ralink,function = "pcie rst";
            };
        };

        nand_pins: nand {
            spi-nand {
                ralink,group = "spi";
                 ralink,function = "nand1";
            };

            sdhci-nand {
                ralink,group = "sdhci";
                ralink,function = "nand2";
            };
        };

        sdhci_pins: sdhci {
            sdhci {
                ralink,group = "sdhci";
                ralink,function = "sdhci";
            };
        };
    };

311

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Tak, masz rację. Chciałbym ustawić wszystkie występujące PINy w GPIO, abym mógł ustawiać i odczytywać z nich stan.

312

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Pewnie tak. Co powinienem zmienić?

313

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Dobra, mam ten plik. Mam od razu uruchomić kompilacje?

314

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Tak, pomyliłem pliki. Mój plik /target/linux/ramips/dts/mt7621.dtsi nie istnieje w kompilatorze. Czy mam go pobrać stąd https://github.com/openwrt/openwrt/blob … .dtsi#L276 i uruchomić kompilator?

315

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Czy na gałęzi master, w pliku /target/linux/ramips/dts/mt7621_unielec_u7621-06.dtsi mam użyć tego pliku https://github.com/openwrt/openwrt/blob … .dtsi#L276 ?

316

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Snapshot zainstalowany, sytuacja wygląda dalej tak samo.

317

(77 odpowiedzi, napisanych Oprogramowanie / Software)

W sumie masz rację, kompletnie o tym zapomniałem, używam zawsze stabilnych wersji.
Jest nawet ImageBuilder w snapshotach. Trochę wprowadziłeś mnie w błąd tutaj, ale zaraz to nadrobię.

Cezary napisał/a:

...jak chcesz zmienić pinmuxy to niestety musisz to zrobić w dts i przekompilować system.

318

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Więc kompiluje, dzięki smile

319

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Mam już środowisko...


git branch

* master

Ale mój plik /target/linux/ramips/dts/mt7621_unielec_u7621-06.dtsi wygląda tak, więc coś jest nie w porządku:

/*
 *  BSD LICENSE
 *
 *  Copyright(c) 2017 Kristian Evensen <kristian.evensen@gmail.com>.
 *  Copyright(c) 2017 Piotr Dymacz <pepe2k@gmail.com>.
 *  All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions
 *  are met:
 *
 *    * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *    * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in
 *      the documentation and/or other materials provided with the
 *      distribution.
 *    * Neither the name of Broadcom Corporation nor the names of its
 *      contributors may be used to endorse or promote products derived
 *      from this software without specific prior written permission.
 *
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include "mt7621.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
    compatible = "unielec,u7621-06", "mediatek,mt7621-soc";

    aliases {
        led-boot = &led_status;
        led-failsafe = &led_status;
        led-running = &led_status;
        led-upgrade = &led_status;
    };

    chosen {
        bootargs = "console=ttyS0,115200";
    };

    gpio-export {
        compatible = "gpio-export";
        #size-cells = <0>;

        modem_reset {
            gpio-export,name = "modem_reset";
            gpio-export,output = <1>;
            gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
        };
    };

    keys {
        compatible = "gpio-keys";

        reset {
            label = "reset";
            gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
            linux,code = <KEY_RESTART>;
        };
    };

    leds {
        compatible = "gpio-leds";

        led_status: status {
            label = "u7621-06:green:status";
            gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
        };

        led4 {
            label = "u7621-06:green:led4";
            gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
        };

        led5 {
            label = "u7621-06:green:led5";
            gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
        };
    };
};

&gpio0 {
    status = "okay";
};

&sdhci {
    status = "okay";
};

&pcie {
    status = "okay";
};

&ethernet {
    mtd-mac-address = <&factory 0xe000>;
    mediatek,portmap = "llllw";
};

&state_default {
    gpio {
        ralink,group = "jtag", "uart2", "wdt";
        ralink,function = "gpio";
    };
};

320

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Dwa złącza konsolowe? Po co?
To jak mam przełączyć się na to, o czym mówiliście wyżej?
Czy mam po prostu przełączyć się na v19.07 i podmienić ten jeden plik .dtsi?

321

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Rozumiem. Próbuję jeszcze ustalić pewne fakty, ponieważ nie jestem w tej kwestii biegły, wybaczcie za niektóre być może banalne pytania. Numer PINu to numer fizycznego PINu na płycie PCB. Taki fizyczny PIN w systemie zgłasza się jako GPIOx. Takie GPIOx można wykorzystać przede wszystkim jako GPI (odczytać stan wejściowy zero (GND) lub jeden (+3V3)) lub jako GPO (ustawić stan jako wyjście zero (GND) lub jeden (+3V3)). Rozumiem, że wszystkie moje złącza pomijając te GND i 3V3 będę mógł wykorzystać jako zero-jedynkowe wejście/wyjście. Niektóre z tych GPIOx mogą posłużyć jako magistrale, ale to ustalam już na zainstalowanym systemie, mogę to zmieniać bez potrzeby ponownej rekompilacji systemu?


Obecne, aby przełączyć się na jakieś wydanie wykorzystywałem w kompilatorze zestaw poniższych poleceń:

git fetch --tags
git checkout v18.06.2
git pull
make package/symlinks

Jak mam przełączyć się na tą gałąź, o której teraz mówicie?


Teraz tylko jako dygresja... Ostatnio pojawiła się w sprzedaży nowa, poprawiona płyta UniElec u7628-01 -> mianowicie u7621-01 na nowym procesorze itd. Przypomnę, że w jej poprzedniku 10-PINowe złącze okazało się złączem z 1 PINem GPIO oraz resztą od karty sd oraz gniazdo mPCIe oraz USB były na tej samej jednej linii. Chciałem zapytać, co sądzicie o złączach w prawym górnym rogu - jak można byłoby ustawiać je w systemie? Czy raczej pytać producenta?

https://ae01.alicdn.com/kf/HTB16X17aAxz61VjSZFrq6xeLFXaY/MTK-MT7621-Enterprise-bezprzewodowy-dwuzakresowy-router-wi-fi-LTE-4G-OpenWrt-Gigabit-MT7621A-chipset-karta-Sim.jpg

322

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Sprawdzałem to na oficjalnym wydaniu v18.x i działało mi 10 LEDów.

Teraz jestem na v19.07 i według źródeł wygląda to tak:

Domyślna gałąź master wygląda tak:

Pomiędzy v19.07 a gałęzią którą mi wysłałeś jest potężna różnica, jak ty to znajdujesz? Chyba czegoś nie wiem... albo nie rozumiem. Musisz mi to wytłumaczyć. Co to jest "3660a89cb9bfbdd077cf3322b7355a43faac8832" w Twoim urlu? I dlaczego mój oficjalny system tego pliku nie wykorzystuje do kompilacji? Wolałbym unikać własnych kompilacji, preferuję oficjalne wydania

323

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Kiedyś zauważyliśmy z Cezarym, że w przypadku u7628-01 były rozbieżności pomiędzy dokumentacją płyty na stronie OpenWRT a rzeczywistością. Wygląda to tak, jakby firma UniElec nie stosowała numeru Rev. dla swoich płyt, wprowadzała nową wersję a nazewnictwo stosowała stare. Widziałem nawet różnicę pomiędzy swoją płytą, a zdjęciami na OpenWRT.

Wskaż mi, czego nie mam ustawionego w DTS:

Obecnie puściłem skrypt:

#!/bin/bash

NR=0
while true; do
  echo "# NR: "$NR
  echo "$NR" > /sys/class/gpio/export
  echo ""
  NR=$(( $NR + 1 ))
  sleep 1

done

Oto jego wynik:

# NR: 0-9

# NR: 10-12
sh: write error: Resource busy

# NR: 13-15

# NR: 16
sh: write error: Resource busy

# NR: 17

# NR: 18
sh: write error: Resource busy

# NR: 19-95

# NR: >96
sh: write error: Invalid argument

^C

Kiedyś to sprawdzałem i udało mi się zaświecić LED tylko na 10-ciu PINach o nr. 3, 4, 6, 7, 8, 9, 10, 11, 29 i 30

324

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Jednak nie do końca, skoro są rozbieżności w tym co napisałem w pierwszym poście a stroną z OpenWRT.
Nie udało mi się na przykład zaświecić LED na PINach 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 i 28.

325

(77 odpowiedzi, napisanych Oprogramowanie / Software)

Cześć,

zabieram się za głębsze testy mojego 30-to pinowego złącza GPIO w routerze UniElec u7621-06.

Do tej pory udało mi się potwierdzić, że na PIN-ie:
- nr. 1 znajduje się stałe zasilanie 3V3;
- nr.: 2, 5, 14 znajduje się GND;
- nr.: 3, 4, 6, 7, 8, 9, 10, 11, 29 i 30 udało się ustawić w trybie wejścia lub wyjścia i sterować zero-jedynkowo

echo "3" > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio3/direction
echo 1 > /sys/class/gpio/gpio3/value

echo "4" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio4/direction
cat /sys/class/gpio/gpio4/value

To może na początek wysunę dwa pytania:
- co z resztą 16-tu PINów, czyli 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 i 28 ?
- czy jestem w stanie podczas kompilacji zmienić jakoś zastosowanie tych portów?