LINUX.ORG.RU

Сообщения kiruseni

 

Zynq 7020 и прошивка загрузчика в nand

Здравствуйте. Есть Zynq 7000 серии, надо перенести загрузчик на nand c sd карты. Все это надо сделать либо из под uboot либо Linux, который на борту цинка. Использовать jtag нету возможности. Program flash требует перевести плату в jtag boot mode. Но на плате я могу выбирать только sd или nand. Остальные контакты мне не доступны, залиты Ур 231. Есть boot.bin, который грузится с sd. В тупую скопировать его через nandwrite получается, но загрузки нету.

 , ,

kiruseni ()

GPS NTP server stratum 1 with kpps

Здравствуйте. Надо поднять локальный NTP сервер класса stratum 1. Использую Geos 5m gps модуль, на котором есть PPS. Поднял Gpsd демон, данные он получает, а вот сигнал PPS нет. Для указания девайсов используется device tree. GPS демон выдает следующее.

Sep 20 11:03:22 localhost.localdomain systemd[1]: Starting GPS (Global Positioning System) Daemon...
Sep 20 11:03:22 localhost.localdomain systemd[1]: Started GPS (Global Positioning System) Daemon.
Sep 20 11:03:40 localhost.localdomain gpsd[1974]: gpsd:ERROR: /dev/pps0: device activation failed.
Sep 20 11:03:40 localhost.localdomain gpsd[1974]: gpsd:ERROR: /dev/pps0: activation failed, freeing device

PPS tools следующее.

[root@localhost ~]# ppstest /dev/pps0
trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
ok, found 1 source(s), now start fetching data...
source 0 - assert 1600600961.355050557, sequence: 1876 - clear  0.000000000, sequence: 0
source 0 - assert 1600600962.355043151, sequence: 1877 - clear  0.000000000, sequence: 0
source 0 - assert 1600600963.355042594, sequence: 1878 - clear  0.000000000, sequence: 0
[root@localhost ~]# ppscheck /dev/pps0
# Seconds  nanoSecs   Signals
PPS ioctl(TIOCMIWAIT) failed: 25 Inappropriate ioctl for device

Вот кусок device tree, используется 0 gpio в emio, который настроен на p21 пин.

gpio0: gpio@e000a000 {
   compatible = "xlnx,zynq-gpio-1.0";
   #gpio-cells = <2>;
   clocks = <&clkc 42>;
   gpio-controller;
   interrupt-controller;
   #interrupt-cells = <2>;
   interrupt-parent = <&intc>;
   interrupts = <0 20 4>;
   reg = <0xe000a000 0x1000>;
  };
&gpio0 {
  emio-gpio-width = <1>;
  gpio-mask-high = <0x0>;
  gpio-mask-low = <0x5600>;
};

pps {
    compatible = "pps-gpio";
    gpios = <&gpio0 54 0>;
    assert-falling-edge;
  };

 , , , ,

kiruseni ()

Расчет таймингов для DSI дисплея

Здравствуйте. Имеется следующая проблема. Использую STM32MP157c микроконтроллер. К нему подключен бридж Toshiba tc358768 LTDC to MIPI DSI, с кварцем 24МГц. К Toshiba подключен дисплей BZ101IICD1S 800x1280. Установил тайминги от похожего дисплея 720x1280. Вроде все хорошо, но по краям немного мерцает изображение (полоска в несколько пикселей). Но все изображение немного сдвинуто направо (левая обрезанная часть идет справа) и низ изображения находится на самом верху. Сказали что тайминги нужны другие. Есть даташит на этот экран с графиками таймингов (наверное), но к сожалению я вообще ничего из них не понял. Как правильно по графикам рассчитать эти тайминги? Или может дело в чем-то другом.

PS Нашел еще сайт по расчету таймингов. Вбил туда свои параметры. Выбрал CVT (были еще CVT-RB и CVT-RB2), но изображение никуда не переместилось, но начало мерцать и через modetest частота была рассчитана как 39.

 , ,

kiruseni ()

TCP/IP over AX25 over Lora

Здравствуйте. Возникла задача поднять TCP/IP через AX25, которая работает на Лора модулях HOPERF HM-TRLR-D-868. Настроил сами модули, через терминулку модули принимают и передают пакеты. Поднял ax0 интерфейс на двух пк. Начинаю пинговать, arp проходит успешно, модули нашли друг друга, а icmp не проходит, хотя второй модуль видит пакеты. Далее происходит повторное рукопожатие arp, но теперь второй модуль не отвечает, хотя все также исправно принимает пакеты. Но если попытаться телнетом отправить запрос, то передачи нет. Может кто-нибудь сталкивался с данной проблемой? Заранее спасибо

 , , ,

kiruseni ()

Радиоканал с подтверждением приема-передачи на Lora

Здравствуйте. Я у меня мало познаний в данном вопросе, поэтому решил спросить тут. Есть Лора и другой неведомый зверь с неизвестными ТТХ. Пока обсуждаем только Лору. Нужно передать пакеты с подтверждением приема-передачи и мониторингом коннекта. На данном этапе расматриваем только архитектуру точка-точка, но в дальнейшем она должна быть расширена на точка-мультиточка. Изначально мне рекомендовали использовать PPPoS на 2 уровне OSI, а в него уже закладывать IP -> TCP. Размер MTU 127 байт. Как было заявлено, PPP умеет в сжатие и повторяющиеся части пакета не будут переданы, а на принимающей стороне будут взяты из буфера. На Лоре PPP не смог установить коннект, в консоль выводилось аля «Не удалось установить протокол», хотя обмен данными был. На задворках интернета нашел протокол AX.25, было сказано что он немного лучше чем PPP. Сейчас его планирую использовать в качестве 2 уровня (хотя пишут существует еще FX.25, который еще лучше). А вот с уровнями выше вопрос открытый. Что использовать для протокола с подтверждением на выше-стоящих уровнях, в условиях очень ограниченного канала.

Заранее спасибо

 , ,

kiruseni ()

Установка Linux на ЭВМ Xilinx 7000 серии с неизменяемым ядром под ARMv7

Здравствуйте. Имеется следующий вопрос, есть дистр Linux (Alt, Astra, REDOS). Ядро скомпилино с какими-то настройками, скажем черный ящик. Изменять его нельзя, так как при этом потеряется сертификат ФСТЭК. Пробовал в тупую передать управление из uboot в ядро, пишет «Starting kernel …….» и все. Перезагрузки не происходит, но и на консоль ничего не выдается. И это понятно, так как ядро не знает о драйвере Xilinx UartPS. Собственно вопрос, можно ли при загрузке передать нужные драйверы, прописать конф файл в rootfs откуда догружать драйверы. И вообще имеет ли данная идея право на жизнь или возможно потребуются какие-нибудь специфичные драйверы, которые должны быть непосредственно включены в ядро, без которых даже начальный запуск невозможен?

 , , ,

kiruseni ()

Запуск экрана AUO H497TLB01.0 через Toshiba tc358778xbg на stm32mp157c-dk2

Здравствуйте. Имеется следующая проблема, нужно запустить экран AUO H497TLB01.0 через преобразователь Toshiba tc358778xbg на stm32mp157c-dk2.

При запуске modetest -s 32:720x1280, экране постепенно заполняется бело-желтым цветом. Остается черная полоса в низу экрана примерно 1см. Вывод modetest

root@stm32mp1:~# modetest
trying to open device 'i915'...failed
trying to open device 'amdgpu'...failed
trying to open device 'radeon'...failed
trying to open device 'nouveau'...failed
trying to open device 'vmwgfx'...failed
trying to open device 'omapdrm'...failed
trying to open device 'exynos'...failed
trying to open device 'tilcdc'...failed
trying to open device 'msm'...failed
trying to open device 'sti'...failed
trying to open device 'tegra'...failed
trying to open device 'imx-drm'...failed
trying to open device 'rockchip'...failed
trying to open device 'atmel-hlcdc'...failed
trying to open device 'fsl-dcu-drm'...failed
trying to open device 'vc4'...failed
trying to open device 'virtio_gpu'...failed
trying to open device 'mediatek'...failed
trying to open device 'meson'...failed
trying to o[  275.093312] panel_simple_of_get_native_mode 1
[  275.097499] panel_simple_of_get_native_mode 2
[  275.101943] panel_simple_of_get_native_mode 3
[  275.106256] panel_simple_of_get_native_mode 4
pen devi[  275.111786] ltdc_crtc_mode_valid 0 mode: 720x1280
ce 'pl111'...failed
trying to open device 'stm'...done
Encoders:
id      crtc    type    possible crtcs  possible clones
31      0       DPI     0x00000001      0x00000000

Connectors:
id      encoder status          name            size (mm)       modes   encoders
32      0       connected       DSI-1           0x0             1       31
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  720x1280 58 720 736 741 752 1280 1296 1301 1312 57153 flags: nhsync, nvsync; type: preferred
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 3
        5 link-status:
                flags: enum
                enums: Good=0 Bad=1
                value: 0
        6 non-desktop:
                flags: immutable range
                values: 0 1
                value: 0
        4 TILE:
                flags: immutable blob
                blobs:

                value:
        20 CRTC_ID:
                flags: object
                value: 0

CRTCs:
id      fb      pos     size
35      0       (0,0)   (0x0)
   0 0 0 0 0 0 0 0 0 0 flags: ; type: 
  props:
        22 ACTIVE:
                flags: range
                values: 0 1
                value: 0
        23 MODE_ID:
                flags: blob
                blobs:

                value:
        19 OUT_FENCE_PTR:
                flags: range
                values: 0 18446744073709551615
                value: 0
        24 VRR_ENABLED:
                flags: range
                values: 0 1
                value: 0
        28 GAMMA_LUT:
                flags: blob
                blobs:

                value:
        29 GAMMA_LUT_SIZE:
                flags: immutable range
                values: 0 4294967295
                value: 256

Planes:
id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
33      0       0       0,0             0,0     0               0x00000001
  formats: AR24 XR24 RG24 RG16 AR15 XR15 AR12 XR12 C8  
  props:
        8 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 1
        17 FB_ID:
                flags: object
                value: 0
        18 IN_FENCE_FD:
                flags: signed range
                values: -1 2147483647
                value: -1
        20 CRTC_ID:
                flags: object
                value: 0
        13 CRTC_X:
                flags: signed range
                values: -2147483648 2147483647
                value: 0
        14 CRTC_Y:
                flags: signed range
                values: -2147483648 2147483647
                value: 0
        15 CRTC_W:
                flags: range
                values: 0 2147483647
                value: 720
        16 CRTC_H:
                flags: range
                values: 0 2147483647
                value: 1280
        9 SRC_X:
                flags: range
                values: 0 4294967295
                value: 0
        10 SRC_Y:
                flags: range
                values: 0 4294967295
                value: 0
        11 SRC_W:
                flags: range
                values: 0 4294967295
                value: 47185920
        12 SRC_H:
                flags: range
                values: 0 4294967295
                value: 83886080
        30 IN_FORMATS:
                flags: immutable blob
                blobs:

                value:
                        01000000000000000900000018000000
                        01000000400000004152323458523234
                        52473234524731364152313558523135
                        41523132585231324338202000000000
                        ff010000000000000000000000000000
                        0000000000000000
                in_formats blob decoded:
                         AR24:  LINEAR
                         XR24:  LINEAR
                         RG24:  LINEAR
                         RG16:  LINEAR
                         AR15:  LINEAR
                         XR15:  LINEAR
                         AR12:  LINEAR
                         XR12:  LINEAR
                         C8  :  LINEAR
36      0       0       0,0             0,0     0               0x00000001
  formats: AR24 RG24 RG16 AR15 AR12 C8  
  props:
        8 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 0
        17 FB_ID:
                flags: object
                value: 0
        18 IN_FENCE_FD:
                flags: signed range
                values: -1 2147483647
                value: -1
        20 CRTC_ID:
                flags: object
                value: 0
        13 CRTC_X:
                flags: signed range
                values: -2147483648 2147483647
                value: 0
        14 CRTC_Y:
                flags: signed range
                values: -2147483648 2147483647
                value: 0
        15 CRTC_W:
                flags: range
                values: 0 2147483647
                value: 0
        16 CRTC_H:
                flags: range
                values: 0 2147483647
                value: 0
        9 SRC_X:
                flags: range
                values: 0 4294967295
                value: 0
        10 SRC_Y:
                flags: range
                values: 0 4294967295
                value: 0
        11 SRC_W:
                flags: range
                values: 0 4294967295
                value: 0
        12 SRC_H:
                flags: range
                values: 0 4294967295
                value: 0
        30 IN_FORMATS:
                flags: immutable blob
                blobs:

                value:
                        01000000000000000600000018000000
                        01000000300000004152323452473234
                        52473136415231354152313243382020
                        3f000000000000000000000000000000
                        0000000000000000
                in_formats blob decoded:
                         AR24:  LINEAR
                         RG24:  LINEAR
                         RG16:  LINEAR
                         AR15:  LINEAR
                         AR12:  LINEAR
                         C8  :  LINEAR

Frame buffers:
id      size    pitch

Отрывок файла dts

i2c@5c002000 {
			compatible = "st,stm32mp15-i2c";
			reg = <0x5c002000 0x400>;
			interrupt-names = "event\0error";
			interrupts-extended = <0x1e 0x18 0x04 0x07 0x00 0x60 0x04>;
			clocks = <0x01 0x0d>;
			resets = <0x59 0x01>;
			#address-cells = <0x01>;
			#size-cells = <0x00>;
			power-domains = <0x1a>;
			st,syscfg-fmp = <0x0d 0x04 0x08>;
			wakeup-source;
			status = "okay";
			pinctrl-names = "default\0sleep";
			pinctrl-0 = <0x6e>;
			pinctrl-1 = <0x6f>;
			i2c-scl-rising-time-ns = <0xb9>;
			i2c-scl-falling-time-ns = <0x14>;
			clock-frequency = <0x61a80>;
dsi-bridge@e {
				compatible = "toshiba,tc358778";
				reg = <0x0e>;
				status = "okay";
				clocks = <0x76>;
				clock-names = "refclk";
				reset-gpios = <0x29 0x0a 0x01>;
				vddc-supply = <0x28>;
				vddmipi-supply = <0x28>;
				vddio-supply = <0x27>;

				ports {
					#address-cells = <0x01>;
					#size-cells = <0x00>;

					port@0 {
						reg = <0x00>;

						endpoint {
							remote-endpoint = <0x2b>;
							data-lines = <0x18>;
							phandle = <0x6a>;
						};
					};

					port@1 {
						reg = <0x01>;

						endpoint {
							remote-endpoint = <0x77>;
							lanes = <0x00 0x01 0x02 0x03 0x04>;
							phandle = <0x7a>;
						};
					};
				};

				dsi_panel@0 {
					compatible = "simple-panel-dsi";
					reg = <0x00>;
					power-supply = <0x2e>;
					reset-gpios = <0x78 0x01 0x01>;
					reset-delay-ms = <0x3c>;
					init-delay-ms = <0x64>;
					enable-delay-ms = <0x14>;
					prepare-delay-ms = <0x14>;
					disable-delay-ms = <0x14>;
					unprepare-delay-ms = <0x14>;
					panel-width-mm = <0x3e>;
					panel-height-mm = <0x6e>;
					flip-horizontal;
					flip-vertical;
					dsi,flags = <0x01>;
					dsi,format = <0x03>;
					dsi,lanes = <0x04>;
					panel-init-sequence = [39 00 06 f0 55 aa 52 08 00 39 00 04 b0 00 10 10 15 00 02 ba 60 39 00 08 bb 00 00 00 00 00 00 00 39 00 09 c0 c0 04 00 20 02 e4 e1 c0 39 00 09 c1 c0 04 00 20 04 e4 e1 c0 39 00 06 f0 55 aa 52 08 02 39 00 06 ea 7f 20 00 00 00 15 00 02 ca 04 15 00 02 e1 00 15 00 02 e2 0a 15 00 02 e3 40 39 00 05 e7 00 00 00 00 39 00 09 ed 48 00 e0 13 08 00 91 08 39 00 07 fd 00 08 1c 00 00 01 39 00 0c c3 11 24 04 0a 02 04 00 1c 10 f0 00 39 00 06 f0 55 aa 52 08 03 15 00 02 e0 00 39 00 07 f1 00 00 00 00 00 15 15 00 02 f6 08 39 00 06 f0 55 aa 52 08 05 39 00 06 c3 00 10 50 50 50 39 00 03 c4 00 14 15 00 02 c9 04 39 00 06 f0 55 aa 52 08 01 39 00 04 b0 06 06 06 39 00 04 b1 14 14 14 39 00 04 b2 00 00 00 39 00 04 b4 66 66 66 39 00 04 b5 44 44 44 39 00 04 b6 54 54 54 39 00 04 b7 24 24 24 39 00 04 b9 04 04 04 39 00 04 ba 14 14 14 39 00 04 be 22 38 78 15 00 02 35 00 15 05 02 11 00 15 c8 02 29 00];
					
					panel-exit-sequence = [15 0a 02 10 00 15 14 02 28 00];

					display-timings {
						native-mode = <0x79>;

						timing0 {
							clock-frequency = <0x3681840>;
							hactive = <0x2d0>;
							vactive = <0x500>;
							hfront-porch = <0x10>;
							hback-porch = <0x0b>;
							hsync-len = <0x05>;
							hsync-active = <0x00>;
							vfront-porch = <0x10>;
							vback-porch = <0x0b>;
							vsync-len = <0x05>;
							vsync-active = <0x00>;
							phandle = <0x79>;
						};
					};

					port@0 {
						reg = <0x00>;

						endpoint {
							remote-endpoint = <0x7a>;
							lanes = <0x00 0x01 0x02 0x03 0x04>;
							phandle = <0x77>;
						};
					};
				};

Весь dts выложить не могу, ругается на длину сообщения. Заранее спасибо.

 , ,

kiruseni ()

Запуск EFI ядра Linux на Zynq 7000 серии

Здравствуйте. Имеется следующая проблема. Пытаюсь запустить EFI ядро Linux на Zynq 7000 серии. Собрал последний uboot с поддержкой EFI. Собрал arm-efi grub. Создал 2 раздела на SD карте. Первый 512mb с BOOT.bin, dtb, ядром и grub. Второй ext4 c корнем.

U-Boot 2021.01-00102-g43adebe34b-dirty (Oct 24 2021 - 20:40:28 +0300)

CPU:   Zynq 7z020
Silicon: v3.1
DRAM:  ECC disabled 1 GiB
Flash: 0 Bytes
NAND:  1024 MiB
MMC:   mmc@e0100000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial@e0000000
Out:   serial@e0000000
Err:   serial@e0000000
Net:   
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr -1, interface rgmii-id

Warning: ethernet@e000b000 (eth0) using random MAC address - be:b0:d9:e9:06:c9
eth0: ethernet@e000b000
ZYNQ GEM: e000c000, mdio bus e000c000, phyaddr -1, interface gmii
Could not get PHY for eth1: addr -1

Hit any key to stop autoboot:  0 
Zynq> 
Zynq> load mmc 0:1 0x1f00000 dtb/zynq-mine.dtb
11689 bytes read in 24 ms (475.6 KiB/s)
Zynq> load mmc 0:1 0x2000000 EFI/grub/grubarm.efi
98304 bytes read in 30 ms (3.1 MiB/s)
Zynq> bootefi 0x2000000 0x1f00000

Попадаем в grub и он загружает ядро Linux EFI, но застревает на данном моменте

EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services and installing virtual address map...

Есть предположение, что ядро стартует, только выхлоп загрузки не попадает в консоль. printenv

Zynq> printenv
arch=arm
baudrate=115200
board=zynq
board_name=zynq
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdti
boot_efi_bootmgr=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr;fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=mmc0 jtag mmc0 mmc1 qspi nand nor usb0 usb1 pxe dhcp 
bootcmd=run distro_bootcmd
bootcmd_dhcp=setenv devtype dhcp; run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${sc;
bootcmd_jtag=echo JTAG: Trying to boot script at ${scriptaddr} && source ${scriptaddr}; echo JTAG: SCRIPT FAILED: con;
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot
bootcmd_nand=nand info && nand read ${scriptaddr} ${script_offset_f} ${script_size_f} && echo NAND: Trying to boot sc;
bootcmd_nor=cp.b ${script_offset_nor} ${scriptaddr} ${script_size_f} && echo NOR: Trying to boot script at ${scriptad;
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_qspi=sf probe 0 0 0 && sf read ${scriptaddr} ${script_offset_f} ${script_size_f} && echo QSPI: Trying to boot;
bootcmd_usb0=devnum=0; run usb_boot
bootcmd_usb1=devnum=1; run usb_boot
bootcmd_usb_dfu0=setenv dfu_alt_info boot.scr ram $scriptaddr $script_size_f && dfu 0 ram 0 60 && echo DFU0: Trying t;
bootcmd_usb_dfu1=setenv dfu_alt_info boot.scr ram $scriptaddr $script_size_f && dfu 1 ram 1 60 && echo DFU1: Trying t;
bootcmd_usb_thor0=setenv dfu_alt_info boot.scr ram $scriptaddr $script_size_f && thordown 0 ram 0 && echo THOR0: Tryi;
bootcmd_usb_thor1=setenv dfu_alt_info boot.scr ram $scriptaddr $script_size_f && thordown 1 ram 1 && echo THOR1: Tryi;
bootdelay=2
bootm_low=0
bootm_size=30000000
cpu=armv7
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
fdt_addr_r=0x1f00000
fdtcontroladdr=3ead3110
kernel_addr_r=0x2000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
modeboot=sdboot
pxefile_addr_r=0x2000000
ramdisk_addr_r=0x3100000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run sc;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; ft
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soce
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Foi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${e
script_offset_f=fc0000
script_offset_nor=0xE2FC0000
script_size_f=0x40000
scriptaddr=3000000
soc=zynq
stderr=serial@e0000000
stdin=serial@e0000000
stdout=serial@e0000000
ubifs_boot=env exists bootubipart || env set bootubipart UBI; env exists bootubivol || env set bootubivol boot; if ubi
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
vendor=xilinx

Файлы на 0 разделе карты

.
├── boot
│   └── grub
│       ├── arm-efi
│       │   ├── acpi.mod
│       │   ├── adler32.mod
│       │   ├── affs.mod
│       │   ├── afs.mod
│       │   ├── afsplitter.mod
│       │   ├── all_video.mod
│       │   ├── archelp.mod
│       │   ├── bfs.mod
│       │   ├── bitmap.mod
│       │   ├── bitmap_scale.mod
│       │   ├── blocklist.mod
│       │   ├── boot.mod
│       │   ├── bswap_test.mod
│       │   ├── btrfs.mod
│       │   ├── bufio.mod
│       │   ├── cat.mod
│       │   ├── cbfs.mod
│       │   ├── chain.mod
│       │   ├── cmdline_cat_test.mod
│       │   ├── cmp.mod
│       │   ├── cmp_test.mod
│       │   ├── command.lst
│       │   ├── configfile.mod
│       │   ├── core.efi
│       │   ├── cpio_be.mod
│       │   ├── cpio.mod
│       │   ├── crc64.mod
│       │   ├── cryptodisk.mod
│       │   ├── crypto.lst
│       │   ├── crypto.mod
│       │   ├── ctz_test.mod
│       │   ├── datehook.mod
│       │   ├── date.mod
│       │   ├── datetime.mod
│       │   ├── diskfilter.mod
│       │   ├── disk.mod
│       │   ├── div_test.mod
│       │   ├── dm_nv.mod
│       │   ├── echo.mod
│       │   ├── efifwsetup.mod
│       │   ├── efi_gop.mod
│       │   ├── efinet.mod
│       │   ├── elf.mod
│       │   ├── eval.mod
│       │   ├── exfat.mod
│       │   ├── exfctest.mod
│       │   ├── ext2.mod
│       │   ├── extcmd.mod
│       │   ├── f2fs.mod
│       │   ├── fat.mod
│       │   ├── fdt.mod
│       │   ├── file.mod
│       │   ├── font.mod
│       │   ├── fshelp.mod
│       │   ├── fs.lst
│       │   ├── functional_test.mod
│       │   ├── gcry_arcfour.mod
│       │   ├── gcry_blowfish.mod
│       │   ├── gcry_camellia.mod
│       │   ├── gcry_cast5.mod
│       │   ├── gcry_crc.mod
│       │   ├── gcry_des.mod
│       │   ├── gcry_dsa.mod
│       │   ├── gcry_idea.mod
│       │   ├── gcry_md4.mod
│       │   ├── gcry_md5.mod
│       │   ├── gcry_rfc2268.mod
│       │   ├── gcry_rijndael.mod
│       │   ├── gcry_rmd160.mod
│       │   ├── gcry_rsa.mod
│       │   ├── gcry_seed.mod
│       │   ├── gcry_serpent.mod
│       │   ├── gcry_sha1.mod
│       │   ├── gcry_sha256.mod
│       │   ├── gcry_sha512.mod
│       │   ├── gcry_tiger.mod
│       │   ├── gcry_twofish.mod
│       │   ├── gcry_whirlpool.mod
│       │   ├── geli.mod
│       │   ├── gettext.mod
│       │   ├── gfxmenu.mod
│       │   ├── gfxterm_background.mod
│       │   ├── gfxterm_menu.mod
│       │   ├── gfxterm.mod
│       │   ├── gptsync.mod
│       │   ├── gzio.mod
│       │   ├── halt.mod
│       │   ├── hashsum.mod
│       │   ├── hello.mod
│       │   ├── help.mod
│       │   ├── hexdump.mod
│       │   ├── hfs.mod
│       │   ├── hfspluscomp.mod
│       │   ├── hfsplus.mod
│       │   ├── http.mod
│       │   ├── iso9660.mod
│       │   ├── jfs.mod
│       │   ├── jpeg.mod
│       │   ├── json.mod
│       │   ├── keystatus.mod
│       │   ├── ldm.mod
│       │   ├── linux.mod
│       │   ├── loadenv.mod
│       │   ├── loopback.mod
│       │   ├── lsacpi.mod
│       │   ├── lsefimmap.mod
│       │   ├── lsefi.mod
│       │   ├── lsefisystab.mod
│       │   ├── lsmmap.mod
│       │   ├── ls.mod
│       │   ├── lssal.mod
│       │   ├── luks2.mod
│       │   ├── luks.mod
│       │   ├── lvm.mod
│       │   ├── lzopio.mod
│       │   ├── macbless.mod
│       │   ├── macho.mod
│       │   ├── mdraid09_be.mod
│       │   ├── mdraid09.mod
│       │   ├── mdraid1x.mod
│       │   ├── memdisk.mod
│       │   ├── memrw.mod
│       │   ├── minicmd.mod
│       │   ├── minix2_be.mod
│       │   ├── minix2.mod
│       │   ├── minix3_be.mod
│       │   ├── minix3.mod
│       │   ├── minix_be.mod
│       │   ├── minix.mod
│       │   ├── mmap.mod
│       │   ├── moddep.lst
│       │   ├── modinfo.sh
│       │   ├── mpi.mod
│       │   ├── msdospart.mod
│       │   ├── mul_test.mod
│       │   ├── net.mod
│       │   ├── newc.mod
│       │   ├── nilfs2.mod
│       │   ├── normal.mod
│       │   ├── ntfscomp.mod
│       │   ├── ntfs.mod
│       │   ├── odc.mod
│       │   ├── offsetio.mod
│       │   ├── part_acorn.mod
│       │   ├── part_amiga.mod
│       │   ├── part_apple.mod
│       │   ├── part_bsd.mod
│       │   ├── part_dfly.mod
│       │   ├── part_dvh.mod
│       │   ├── part_gpt.mod
│       │   ├── partmap.lst
│       │   ├── part_msdos.mod
│       │   ├── part_plan.mod
│       │   ├── part_sun.mod
│       │   ├── part_sunpc.mod
│       │   ├── parttool.lst
│       │   ├── parttool.mod
│       │   ├── password.mod
│       │   ├── password_pbkdf2.mod
│       │   ├── pbkdf2.mod
│       │   ├── pbkdf2_test.mod
│       │   ├── pgp.mod
│       │   ├── png.mod
│       │   ├── priority_queue.mod
│       │   ├── probe.mod
│       │   ├── procfs.mod
│       │   ├── progress.mod
│       │   ├── raid5rec.mod
│       │   ├── raid6rec.mod
│       │   ├── read.mod
│       │   ├── reboot.mod
│       │   ├── regexp.mod
│       │   ├── reiserfs.mod
│       │   ├── romfs.mod
│       │   ├── scsi.mod
│       │   ├── search_fs_file.mod
│       │   ├── search_fs_uuid.mod
│       │   ├── search_label.mod
│       │   ├── search.mod
│       │   ├── serial.mod
│       │   ├── setjmp.mod
│       │   ├── setjmp_test.mod
│       │   ├── sfs.mod
│       │   ├── shift_test.mod
│       │   ├── signature_test.mod
│       │   ├── sleep.mod
│       │   ├── sleep_test.mod
│       │   ├── smbios.mod
│       │   ├── squash4.mod
│       │   ├── strtoull_test.mod
│       │   ├── syslinuxcfg.mod
│       │   ├── tar.mod
│       │   ├── terminal.lst
│       │   ├── terminal.mod
│       │   ├── terminfo.mod
│       │   ├── test_blockarg.mod
│       │   ├── testload.mod
│       │   ├── test.mod
│       │   ├── testspeed.mod
│       │   ├── tftp.mod
│       │   ├── tga.mod
│       │   ├── time.mod
│       │   ├── tpm.mod
│       │   ├── trig.mod
│       │   ├── tr.mod
│       │   ├── true.mod
│       │   ├── udf.mod
│       │   ├── ufs1_be.mod
│       │   ├── ufs1.mod
│       │   ├── ufs2.mod
│       │   ├── video_colors.mod
│       │   ├── video_fb.mod
│       │   ├── videoinfo.mod
│       │   ├── video.lst
│       │   ├── video.mod
│       │   ├── videotest_checksum.mod
│       │   ├── videotest.mod
│       │   ├── xfs.mod
│       │   ├── xnu_uuid.mod
│       │   ├── xnu_uuid_test.mod
│       │   ├── xzio.mod
│       │   ├── zfscrypt.mod
│       │   ├── zfsinfo.mod
│       │   ├── zfs.mod
│       │   └── zstd.mod
│       ├── fonts
│       ├── grub.cfg
│       ├── grubenv
│       └── locale
├── BOOT.bin
├── dtb
│   ├── devicetree.dtb
│   └── zynq-mine.dtb
├── EFI
│   └── grub
│       └── grubarm.efi
├── initrd
│   └── initrd.img-5.4.0-1006-raspi2
└── kernel
    ├── vmlinuz-4.15.0-1060-raspi2
    └── vmlinuz-5.4.0-1006-raspi2

grub.cfg

set default=0
set timeout=5

menuentry "Astra Linux for Raspberry Pi 2" {
	UUID=00501d8a-b7f3-403e-9735-a056f96033ed
	linux /kernel/vmlinuz-4.15.0-1060-raspi2 console=tty0 console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait earlyprintk
	initrd /initrd/initrd.img-5.4.0-1006-raspi2
}

Заранее спасибо

 , ,

kiruseni ()

Установка Astra Linux на Xilinx Zynq 7020

Здравствуйте. Имеется следующая задача. Есть дистр Astra Linux в виде образа для SD карты (как для малины). Состоит из ядра vmlinuz, initrd и rootfs. Железка Xilinx XC7Z020-2CLG484I Zynq-7000 AP SoC На Zynq установлен fsbl и uboot, собран dtb. Имеется самосборный дистр ядро uImage, rootfs и dtb. uImage грузится по 8000 адресу. В документации к uboot написано, что он может загрузить vmlinuz командой bootmz (если не ошибаюсь). Надо заменить свой дистр на астру. Вопрос состоит в том, по каким адресам мне грузить ядро vmlinuz (0х8000 ?), inird и dtb?

 , ,

kiruseni ()

Подключить 2 WiFi к одной плате.

Здравствуйте. Имеется следующая проблема. Есть raspberry Pi 3b+. Имеются встроенный WiFi интерфейс wlan0 и дополнительный WiFi интерфейс wlan1, подключенный через USB hub. Нужно заставить эти 2 интерфейса подключиться к разным WiFi сетям. Использовал wpa supplicant, создал 2 файла для wlan0 и wlan1, но подключается только один. Как побороть данную проблему? Установлена ОС без гуи. Заранее благодарен.

 , ,

kiruseni ()

Wine и работа с USB to RS485

Здравствуйте. Имеется устройство, которое на выходе общается по rs485. Производитель приложил преобразователь USB to RS485 и программу для настройки устройства только под Windows 64. Запустил ее под вайном, и получил следующие проблемы, названия ком портов представляют из себя пустые строки. Через регистр вайна указал что ком1 это ttyUSB0. Выбрал первую строчку из 33. При нажатии кнопки подключиться на адаптере вижу что коннект на уровне системы произошел, и устройство начало сыпать данные, но принять их или отправить свои из вайна я не могу. Но обычный миником подключается и принимает и отправляет данные. Может кто-нибудь подскажет как все настроить. Программа написана на Qt. Вот вывод программы при старте

0009:fixme:font:get_outline_text_metrics failed to read full_nameW for font L"Ani"!
0009:fixme:font:get_nearest_charset TCI failing on 20000000
0009:fixme:font:get_nearest_charset returning DEFAULT_CHARSET face->fs.fsCsb[0] = 20000000 file = L"/usr/share/fonts/truetype/fonts-gujr-extra/aakar-medium.ttf"
002d:fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpWithDataSegs
0009:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0009:fixme:nls:get_dummy_preferred_ui_language (0x8 0x22e210 0x22e160 0x22e218) returning a dummy value (current locale)
0009:fixme:wgl:X11DRV_wglGetPixelFormatAttribivARB unsupported 2008 WGL Attribute
0009:fixme:wgl:X11DRV_wglGetPixelFormatAttribivARB unsupported 2008 WGL Attribute
0009:fixme:dwmapi:DwmIsCompositionEnabled 000000000022A5F8
0009:fixme:dwmapi:DwmEnableBlurBehindWindow 000000000003007A 000000000022A5C0
0009:fixme:wgl:X11DRV_wglGetPixelFormatAttribivARB unsupported 2008 WGL Attribute

И еще заметил что в папке dos устройств вайна имеется 2 символические ссылки на ttyUSB0, com1 и com34.

И такой вопрос, может кто-нибудь обладает устройством ublox. Нужны 100% верные бинарные пакеты ubx c типами сообщений UBX-NAV-HPPOSLLH (0x01 0x14) и UBX-NAV-PVT (0x01 0x07)? Это бы очень помогло в отладке устройства.

Заранее благодарен.

 ,

kiruseni ()

Qt 5.15.2 cross compile with different glibc and glibcxx

Здравствуйте. Имеется такая проблема. Нужно скомпилить Qt 5.15.2 на x86_64 под aarch64. Скопировал с малины sysroot, все компилиться, но есть проблема при запуске программы на малине.

pi@raspberrypi:~ $ ./testRasbperry 
./testRasbperry: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /opt/Qt/qtbase/lib/libQt5Core.so.5)
./testRasbperry: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /opt/Qt/qtbase/lib/libQt5Core.so.5)
./testRasbperry: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /opt/Qt/qtbase/lib/libQt5Core.so.5)

На x86_64 использовал следующие команды сборки Qt 5.15.2

Номер один

./qtbase/configure -release -no-gui -xplatform linux-aarch64-gnu-g++ -sysroot ~/RaspberryPi3B+/sysroot -prefix /opt/Qt/qtbase -extprefix ~/RaspberryPi3B+/buildQt -hostprefix ~/RaspberryPi3B+/buildQtTools -opensource -confirm-license -skip qtscript -skip qtwayland -skip qtwebengine -nomake tests -make libs -pkg-config -no-use-gold-linker

Номер два

./qtbase/configure -release -no-gui -xplatform linux-aarch64-gnu-g++ -sysroot ~/RaspberryPi3B+/sysroot -prefix /opt/Qt/qtbase -extprefix ~/RaspberryPi3B+/buildQt -hostprefix ~/RaspberryPi3B+/buildQtTools -I ~/RaspberryPi3B+/sysroot/usr/include -L ~/RaspberryPi3B+/sysroot/lib -L ~/RaspberryPi3B+/sysroot/usr/lib -rpath -confirm-license -skip qtscript -skip qtwayland -skip qtwebengine -nomake tests -make libs -pkg-config -no-use-gold-linker

Результат в обоих случаях один, не тот glibc and glibcxx. Собственно в чем вопрос, как заставить компилятор использовать библиотеки из sysroot, а не системные. На хост машине стоит aarch64-linux-gnu-g++-10, поэтому изменил в файле mkspec название компилятора. Вариант скачать другой компилятор, не хочу, надо заставить имеющийся компилятор искать библиотеки для Qt в sysroot.

Заранее благодарен.

 , ,

kiruseni ()

Qt 6.1.1 Cross compile errors x86_64 to aarch64

Здравствуйте. Не получается собрать Qt 6.1.1 на x86_64 для aarch64. Собираю через cmake.

cmake_minimum_required(VERSION 3.16.3)
include_guard(GLOBAL)

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

set(TARGET_SYSROOT /home/kiruseni/qtForGlider/sysroot)
set(CROSS_COMPILER /usr/bin)

set(CMAKE_SYSROOT ${TARGET_SYSROOT})

set(ENV{PKG_CONFIG_PATH} "")
set(ENV{PKG_CONFIG_LIBDIR} ${CMAKE_SYSROOT}/usr/lib/pkgconfig:${CMAKE_SYSROOT}/usr/share/pkgconfig)
set(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT})

set(CMAKE_C_COMPILER ${CROSS_COMPILER}/aarch64-linux-gnu-gcc-10)
set(CMAKE_CXX_COMPILER ${CROSS_COMPILER}/aarch64-linux-gnu-g++-10)

set(QT_COMPILER_FLAGS "-march=armv8-a")
set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed")

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

include(CMakeInitializeConfigs)

function(cmake_initialize_per_config_variable _PREFIX _DOCSTRING)
  if (_PREFIX MATCHES "CMAKE_(C|CXX|ASM)_FLAGS")
    set(CMAKE_${CMAKE_MATCH_1}_FLAGS_INIT "${QT_COMPILER_FLAGS}")

    foreach (config DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
      if (DEFINED QT_COMPILER_FLAGS_${config})
        set(CMAKE_${CMAKE_MATCH_1}_FLAGS_${config}_INIT "${QT_COMPILER_FLAGS_${config}}")
      endif()
    endforeach()
  endif()

  if (_PREFIX MATCHES "CMAKE_(SHARED|MODULE|EXE)_LINKER_FLAGS")
    foreach (config SHARED MODULE EXE)
      set(CMAKE_${config}_LINKER_FLAGS_INIT "${QT_LINKER_FLAGS}")
    endforeach()
  endif()

  _cmake_initialize_per_config_variable(${ARGV})
endfunction()

Запускаю при помощи этой команды

cmake -DQT_HOST_PATH=/opt/Qt -DCMAKE_TOOLCHAIN_FILE=~/qtForGlider/toolchain.cmake -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON -DCMAKE_INSTALL_PREFIX=/usr/local/qt6 -DCMAKE_STAGING_PREFIX=/home/kiruseni/qtForGlider/build -DQT_BUILD_EXAMPLES=FALSE -DQT_BUILD_TESTS=FALSE -DCMAKE_BUILD_TYPE=Release /home/kiruseni/qtForGlider/qtgithub/qtbase-6.1.1/

cmake ругался на недостающий Qt6HostInfo.cmake (добавил ручками, скопировал из нативной компиляции) и ругался на qmake что такой цели нету, есть только qmake_native. Закомментил в CMakeList.txt в папке qmake все цели кроме UNIX. Теперь вот такую дичь выдает

Qt is now configured for building. Just run 'cmake --build . --parallel'

Once everything is built, Qt is installed. You should NOT run 'cmake --install .'
Note that this build cannot be deployed to other machines or devices.

To configure and build other Qt modules, you can use the following convenience script:
        /home/kiruseni/qtForGlider/build/bin/qt-configure-module

If reconfiguration fails for some reason, try to remove 'CMakeCache.txt' from the build directory 

-- Configuring incomplete, errors occurred!

See also "/home/kiruseni/qtForGlider/build/CMakeFiles/CMakeOutput.log".

See also "/home/kiruseni/qtForGlider/build/CMakeFiles/CMakeError.log".

в ерроре ругается на -lpthreads в основном

 , , ,

kiruseni ()

RSS подписка на новые темы