i.MX6SLL screen share to PC by using FreeRDP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

i.MX6SLL screen share to PC by using FreeRDP

i.MX6SLL screen share to PC by using FreeRDP

This doc will show:
i.MX6SLL EVK board without connect hardware LCD display, using FreeRDP to share screen to remote PC which in same network, PC take this shared screen could run any command on i.MX6SLL EVK board.

HW: i.MX6SLL EVK board, PC, usb network adapter
SW: i.MX6SLL Linux 5.15.72_2.2.0 BSP release, and code change in this doc

1>yocto-5.15.72/6sll-bld/conf/local.conf, add below line, as freerdp depend on ffmpeg.
LICENSE_FLAGS_ACCEPTED+="commercial"

2>pixman need switch to 0.42.0, enter folder yocto-5.15.72/6sll-bld/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/pixman/1_0.40.0-r0/pixman-0.40.0,
fetch latest 0.42.0 version code from https://github.com/freedesktop/pixman.git

3>freerdp need use 2.8.0, enter folder
yocto-5.15.72/6sll-bld/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/freerdp/1_2.6.1-r0/git
should checkout to 2.8.0 tag; then to use neon accelerate freerdp related function, such as color space conversion, image codec encoding, apply patch freerdp-codechange-neon.diff.

4>Enter yocto-5.15.72/sources/meta-openembedded/meta-oe/recipes-support/freerdp, file freerdp_2.6.1.bb change as freerdp-2.6.1-bbfile.diff

5>
bitbake -c compile ffmpeg
bitbake -c install ffmpeg

bitbake -c compile pixman
bitbake -c install pixman

bitbake -c compile freerdp
bitbake -c install freerdp

6>
Copy generated new libs to i.MX6SLL Linux rootfs:
cp /root/imx6sllevk-linux-lib/lib* /usr/lib/
cd /usr/lib/
rm libfreerdp-client2.so.2 libfreerdp2.so.2 libpixman-1.so.0 libwinpr-tools2.so.2 libwinpr2.so.2
ln -s libfreerdp-client2.so.2.8.0 libfreerdp-client2.so.2
ln -s libfreerdp2.so.2.8.0 libfreerdp2.so.2
ln -s libpixman-1.so.0.42.0 libpixman-1.so.0
ln -s libwinpr-tools2.so.2.8.0 libwinpr-tools2.so.2
ln -s libwinpr2.so.2.8.0 libwinpr2.so.2
ln -s libavcodec.so.58.134.100 libavcodec.so.58
ln -s libavutil.so.56.70.100 libavutil.so.56
ln -s libswresample.so.3.9.100 libswresample.so.3

Make sure:
libfreerdp-client2.so.2 -> libfreerdp-client2.so.2.8.0
libfreerdp2.so.2 -> libfreerdp2.so.2.8.0
libwinpr-tools2.so.2 -> libwinpr-tools2.so.2.8.0
libwinpr2.so.2 -> libwinpr2.so.2.8.0
libswresample.so.3 -> libswresample.so.3.9.100
libavutil.so.56 -> libavutil.so.56.70.100
libavcodec.so.58 -> libavcodec.so.58.134.100


7>i.MX6SLL Linux OS, file /etc/xdg/weston/weston.ini, change start-on-startup to true
[screen-share]
command=WLOG_APPENDER=file WLOG_FILEAPPENDER_OUTPUT_FILE_NAME=output.log WLOG_FILEAPPENDER_OUTPUT_FILE_PATH=/tmp /usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize --rdp-tls-cert=/etc/freerdp/keys/server.crt --rdp-tls-key=/etc/freerdp/keys/server.key
start-on-startup=true

8>
i.MX6SLL Linux OS, run below cmd:
mkdir /etc/freerdp
mkdir /etc/freerdp/keys
/root/imx6sllevk-linux-lib/winpr-makecert -path /etc/freerdp/keys
mv /etc/freerdp/keys/imx6sllevk.crt /etc/freerdp/keys/server.crt
mv /etc/freerdp/keys/imx6sllevk.key /etc/freerdp/keys/server.key
service weston stop
service weston start

9>Plug usb network adapter to i.MX6SLL EVK board J10; i.MX6SLL board and PC must in same network, ping without problem.
i.MX6SLL Linux OS, there are two process name as "weston", one process is weston rdp backend will share screen to PC. If only one weston process, need check did miss copy any new lib or check libary file name.

10>PC side:
wfreerdp.exe /v:IPADDRESS_OF_IMX6SLLEVK
There will prompt dialog box for user name and password, just press ESC, then PC side
will show i.MX6SLL Linux desktop screen; Click console button of i.MX6SLL Linux OS
desktop, within that console input any i.MX6SLL Linux OS cmd, check result of it from PC side.

Known issue:
wfreerdp.exe is downloaded from https://ci.freerdp.com/job/freerdp-nightly-windows/
If run latest wfreerdp.exe but show nothing of remote desktop, try attached version wfreerdp.exe(3.0.0-dev).
Also you can try check log files first:
i.MX6SLL Linux OS file /tmp/output.log;
PC side generated log file as: wfreerdp.exe /v:IPADDRESS_OF_IMX6SLLEVK /log-level:TRACE > rdp.log


Reference:
1>https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applicat...
2>https://github.com/FreeRDP
3>https://github.com/freedesktop/pixman
4>https://github.com/DLTcollab/sse2neon

 

 

附件
无评分
版本历史
最后更新:
‎03-08-2023 10:14 PM
更新人: