Armbian по фиг какая минималка - консоль.

 

#apt update &&  apt -y upgrade

#apt install -y git armbian-config zlib1g-dev libjpeg-dev xinput-calibrator xinput xorg 

xserver-xorg-video-fbdev

Подсоединяем дисплей, руководствуясь

https://4pda.to/forum/index.php?showtopic=1041048&st=40#entry113268766

add-spi1-cs1-on-pl8.dts

/dts-v1/;
/plugin/;

/ {
        compatible = "xunlong,orangepi-3-lts","allwinner,sun50i-h6";


        fragment@0 {
                target-path = "/aliases";
                __overlay__ {
                        spi0 = "/soc/spi@5010000";
                        spi1 = "/soc/spi@5011000";
                };
        };

        fragment@2 {
               target = <&r_pio>;
                __overlay__ {
                        spi1_cs1_pin: spi1_cs1_pin {
                                pins = "PA8"; /* - real use PL8 but... error in calculate pin number 360!!!!*/
                                function = "gpio_out";
                                output-high;
                        };
                };
        };

        fragment@3 {
                 target = <&spi1>;
                 __overlay__ {
                            pinctrl-names = "default", "default";
                            pinctrl-1 = < &spi1_cs1_pin>;
                            cs-gpios = <0>, <&r_pio 0 8 0>; /* PL8 */

                            status = "okay";
                            debug=<0>;
                            #address-cells = <1>;
                            #size-cells = <0>;
                            spidev@0 {
                                     reg = <0>; /* Chip Select 0 */
                                     compatible = "spidev";
                                     spi-max-frequency = <100000000>;
                                     status = "disabled";
                            };
                            spidev@1 {
                                      reg = <1>; /* Chip Select 1 */
                                      compatible = "spidev";
                                      spi-max-frequency = <12000000>;
                                      status = "disabled";
                            };
                 };
        };

  fragment@4 {
    target = <&pio>;
    __overlay__ {
      ili9486_pins: ili9486_pins {
        pins = "PD21", "PD16"; /*RESET, DC_RS*/
        function = "gpio_out", "gpio_out" ;
      };
    };
  };
        fragment@5 {
                target = <&spi1>;
                __overlay__ {
                        /* needed to avoid dtc warning */
                        #address-cells = <1>;
                        #size-cells = <0>;

                        cs-gpios = <0>, <&r_pio 0 8 0>; /* PL8 */
                        status = "okay";

                        ili9486: ili9486@0 {
                                compatible = "ilitek,ili9486";
                                spi-max-frequency = <60000000>;
                                reg = <0>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&ili9486_pins>;
                status = "okay";
                                debug=<0>;
                                txbuflen = <32768>;
                                rotate = <90>;
                                bgr = <0>;
                                fps = <30>;
                                buswidth = <8>;
                                regwidth = <16>;
                                reset-gpios = <&pio 3 21 0>; /*RST= PD21 */
                                dc-gpios = <&pio 3 16 0>; /*LCD_RS PD16 */
                                init = < 0x10000f1 0x36 0x04 0x00 0x3c 0x0f 0x8f 
                                0x10000f2 0x18 0xa3 0x12 0x02 0xb2 0x12 0xff 0x10 0x00 
                                0x10000f8 0x21 0x04 
                                0x10000f9 0x00 0x08 
                                0x1000036 0x08 
                                0x10000b4 0x00 
                                0x10000c1 0x41 
                                0x10000c5 0x00 0x91 0x80 0x00 
                                0x10000e0 0x0f 0x1f 0x1c 0x0c 0x0f 0x08 0x48 0x98 0x37 0x0a 0x13 0x04 0x11 0x0d 0x00 
                                0x10000e1 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00 
                                0x100003a 0x55 
                                0x1000011 
                                0x1000036 0x28 
                                0x20000ff 
                                0x1000029 >;
                        };
                        xpt2046: xpt2046@1 {
                                compatible = "ti,ads7846";
                                reg = <1>;
                                status ="okay";
                                spi-max-frequency = <1000000>;
                                interrupts = <0 10 2>; /* high-to-low edge triggered */
                                interrupt-parent = <&r_pio>;   /* PL10<-----> TP_IRQ= PD24 -irq not possible!*/
                                pendown-gpio = <&r_pio 0 10 0>;
                                ti,keep-vref-on = <1>;
                                ti,x-min = /bits/ 16 <00>;
                                ti,x-max = /bits/ 16 <0xFFF>;
                                ti,y-min = /bits/ 16 <00>;
                                ti,y-max = /bits/ 16 <0xFFF>;
                                ti,x-plate-ohms = /bits/ 16 <60>;
                                ti,pressure-max = /bits/ 16 <255>;
                                ti,swap-xy = <0>;
                        };
                };
        };
};

spi-add-cs1.dts

/dts-v1/;
/plugin/;

/ {
compatible = "allwinner,sun50i-h6";
fragment@0 {
target-path = "/aliases";
__overlay__ {
spi0 = "/soc/spi@5010000";
spi1 = "/soc/spi@5011000";
};
};

fragment@2 {
target = <&r_pio>;
__overlay__ {
spi1_cs1_pin: spi1_cs1_pin {
pins = "PA8"; /* - real use PL8 but... error in calculate pin number 360!!!!*/
function = "gpio_out";
output-high;
};
};
};

fragment@3 {
target = <&spi1>;
__overlay__ {
pinctrl-names = "default", "default";
pinctrl-1 = < &spi1_cs1_pin>;
cs-gpios = <0>, <&r_pio 0 8 0>; /* PL8 */
};
};
};
 
 
/dts-v1/;
/plugin/;

/ {
compatible = "allwinner,sun50i-h6";
fragment@0 {
target-path = "/aliases";
__overlay__ {
spi0 = "/soc/spi@5010000";
spi1 = "/soc/spi@5011000";
};
};


fragment@1 {
target = <&spi1>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";

spidev@0 {
reg = <0>; /* Chip Select 0 */
compatible = "spidev";
spi-max-frequency = <50000000>;
status = "okay";
};
spidev@1 {
reg = <1>; /* Chip Select 0 */
compatible = "spidev";
spi-max-frequency = <50000000>;
status = "okay";
};
};
};
};
 
ВАЖНО!!!!!!!!!!!!!!!!!!!!!!!!!! 
 
Прикрепленное изображение
 
Далее
 
#armbian-add-overlay add-spi1-cs1-on-pl8.dts
#armbian-add-overlay spi-add-cs1.dts
#armbian-add-overlay spi-double-spidev-cs.dts
 
Section "Device"  
  Identifier "piscreen"
  Driver "fbdev"
  Option "fbdev" "/dev/fb0"
EndSection
 
Копируем в /etc/X11/xconf.conf.d
 
Section "InputClass"
        Identifier "calibration"
        MatchProduct "ADS7846 Touchscreen"
        Option "Calibration" "22107 22198 49544 49680"
        Option "SwapAxes" "0"
Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1"
EndSection
 
 
Копируем в /usr/share/X11/xconf.conf.d
 
#reboot
 
И так экран заработал.
Настраиваем сенсор.
 
Где то на просторах интернета увидел скрипт.
Почикал
 
 
echo "Calibrating touch-screen"
mkdir /etc/X11/xorg.conf.d/
touch /home/aoper/.xinitrc
echo "xinput_calibrator" >> /home/aoper/.xinitrc
startx
rm /home/aoper/.xinitrc
 
Тыкаем в крестики и по окончании теста записываем в 99-calibration.conf
Option "Calibration" "22107 22198 49544 49680"
Т.е.
 
Min X 22107
Max X 22198
Min Y 49544
Max Y 49680
 
Тут скорее всего будут другие цифры.
Переворачиваем экран на 270 градусов
 
Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1"
 
Установливаем Kiauh
 
 
Соответственно Klipper, Moonraker, Fluid и ради чего все задумывалось KlipperScreen
Работает!!!
 
Добавить комментарий