Cet article (inspiré de https://wiki.banana-pi.org/Getting_Started_with_R64) présente l'installation et la configuration de OWRT sur un routeur Bananpi R64.
1.Télécharger la dernière image 2.Installer bpi-tools sur Ubuntu:
apt-get install pv curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
3.Après avoir téléchargé l'image, insérer la carte TF, puis Exécuter bpi-copy xxx.img /dev/sdx
pour installer l'image sur la carte TF
4. Après l'étape 3, on peut insérer la carte TF dans R64 et appuyer sur le bouton d'alimentation pour configurer R64
Avant de graver l'image sur eMMC, préparer une carte SD avec une image de démarrage flashée et un disque USB( par exemple, mtk-bpi-r64-preloader-emmc.bin,2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img) les étapes sont ci-dessous :
mount -t vfat /dev/sda1 /mnt cd /mnt
echo 0 > /sys/block/mmcblk0boot0/force_ro dd if=2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img of=/dev/mmcblk0 dd if=mtk-bpi-r64-preloader-emmc.bin of=/dev/mmcblk0boot0 mmc bootpart enable 1 1 /dev/mmcblk0
L'interface LAN eth est eth2, utiliser la commande suivante pour l'activer:
ifconfig eth2 up
Configurer l'adresse IP:
ifconfig eth2 192.168.1.1".
Configurer le serveur DHCP, vim /etc/dhcp/dhcpd.conf
, ajouter ces configurations.
#subnet 192.168.2.0 netmask 255.255.255.0{ # range 192.168.2.2 192.168.2.255; # option domain-name-servers 8.8.8.8; # option routers 192.168.2.1; #} subnet 192.168.1.0 netmask 255.255.255.0{ range 192.168.1.2 192.168.1.255; option domain-name-servers 8.8.8.8; option routers 192.168.1.1; } # Cette déclaration permet aux clients BOOTP d'obtenir des adresses dynamiques, # ce qui n'est pas vraiment recommandé.
Démarrer le serveur DHCP:
dhcpd eth2
Puis configurer iptables et activer forward.
net.ipv4.ip_forward=1è à
/etc/sysctl.conf
* activer le forward:
/sbin/sysctl -p
* définir la règle de NAT
iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE`Pour utiliser l'interface Sata sur R64, il faut désactiver GPIO90:
echo 499 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio499/direction echo 0 > /sys/class/gpio/gpio499/valeur
Pour utiliser l'interface PCIe sur R64, il faut activer GPIO90:
echo 499 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio499/direction echo 1 > /sys/class/gpio/gpio499/value
echo xxx > /sys/class/gpio/export echo in/out > /sys/class/gpio/gpioxxx/direction echo 0/1 > /sys/class/gpio/gpioxxx/value
Par exemple : si pour activer gpio 22, utiliser les commandes comme celle-ci
echo 431(22+409) > /sys/class/gpio/export echo out > /sys/class/gpio/gpio431/direction echo 1 > /sys/class/gpio/gpio431/value
echo x >/sys/class/pwm/pwmchip0/export echo 200000 >/sys/class/pwm/pwmchip0/pwmx/period echo 100000 >/sys/class/pwm/pwmchip0/pwmx/duty_cycle echo 1 >/sys/class/pwm/pwmchip0/pwmx/enable
SPI Panel module:
2.4“ Touch Screen TFT LCD with SPI Interface, 240×320 (ILI9341 + ADS7843/XPT2046/HR2046)
T_DO, T_DIN, T_CLK <–> SPIC_0: MOSI / MISO / CLK T_CS <–> SPI-CE0 T_IRQ <–> IO-37 SDO, SCK, SDI <–> SPIC_1: MOSI / MISO / CLK LED <–> PIN-31 DC <–> PIN-11 RESET <–> PIN-13 CS <–> SPI-CE1 GND <–> GND-9 VCC <–> 3.3V-1
/ { backlight: backlight { compatible = "gpio-backlight"; gpios = <&pio 82 GPIO_ACTIVE_HIGH>; //PIN31 IO-31 : GPIO82 default-on; }; };
&pio { spic0_pins: spic0-pins { mux { function = "spi"; groups = "spic0_0"; }; }; spic1_pins: spic1-pins { mux { function = "spi"; groups = "spic1_0"; }; }; }
&spi0 { pinctrl-names = "default"; pinctrl-0 = <&spic0_pins>; status = "okay"; touch@0 { reg = <0>; //CE0 compatible = "ti,ads7843"; interrupt-parent = <&pio>; interrupts = <86 0>; //PIN37: IO-37 == GPIO86 pendown-gpio = <&pio 86 0>; spi-max-frequency = <1000000>; vcc-supply = <®_3p3v>; wakeup-source; }; };
&spi1 { pinctrl-names = "default"; pinctrl-0 = <&spic1_pins>; status = "okay"; display@0{ compatible = "ilitek,ili9341"; reg = <0>; //CE0 spi-max-frequency = <32000000>; dc-gpios = <&pio 51 GPIO_ACTIVE_HIGH>; //PIN11 UART1-TXD : GPIO51 reset-gpios = <&pio 52 GPIO_ACTIVE_HIGH>; //PIN13 UART1-RXD : GPIO52 backlight = <&backlight>; }; };
+CONFIG_FB_TFT_ILI9341 +CONFIG_FB_TFT +CONFIG_FB +CONFIG_BACKLIGHT_LCD_SUPPORT +CONFIG_BACKLIGHT_CLASS_DEVICE +CONFIG_BACKLIGHT_GPIO +CONFIG_INPUT +CONFIG_INPUT_TOUCHSCREEN +CONFIG_TOUCHSCREEN_ADS7846
Package | Description | Source |
---|---|---|
fbv | framebuffer image viewer | https://github.com/godspeed1989/fbv |
input-event-daemon | input-event-daemon with touchTEST event | https://github.com/SAM33/input-event-daemon |
Exemple de configuration input-event-daemon qui affiche l'image par zone tactile :
[Global] listen = /dev/input/event0 listen = /dev/input/event1 [TouchTEST] 340,400,3440,1860 = cat /dev/zero > /dev/fb0; fbv -f /root/bpi_608x429.jpg -s 1 340,2260,3440,1860 = cat /dev/zero > /dev/fb0; fbv -f /root/openwrt_449x449.png -s 1