精华内容
下载资源
问答
  • arm平台的录屏软件

    2020-04-23 10:53:49
    linux下的好多录屏软件都不支持arm平台,下面介绍一款在arm板子上能运行的录屏软件: sudo apt-get install kazam

    linux下的好多录屏软件都不支持arm平台,下面介绍一款在arm板子上能运行的录屏软件:

    sudo apt-get install kazam
    
    展开全文
  • 嵌入式 ARM 平台配置远程桌面

    千次阅读 2019-07-08 18:05:03
    在PC平台经远程桌面连接已经是非常方便了,而现在在嵌入式ARM平台,由于远程控制或者远程调试的需要,配置远程桌面的需求也越来越多,本文就着重演示基于嵌入式ARM平台实现远程桌面服务器端和客户端应用示例。...

    By Toradex秦海

    1). 简介

    在PC平台经远程桌面连接已经是非常方便了,而现在在嵌入式ARM平台,由于远程控制或者远程调试的需要,配置远程桌面的需求也越来越多,本文就着重演示基于嵌入式ARM平台实现远程桌面服务器端和客户端应用示例。  

     

    本文演示所使用的ARM平台来自Toradex基于NXP iMX6Q SoC平台的Apalis iMX6 ARM核心板。

     

    2). 准备

    a). Apalis iMX6Q ARM核心版配合Apalis Evaluation Board载板,连接调试串口UART1(载板X29)到开发主机方便调试。更多关于Apalis iMX6配合Apalis Evaluation Board载板的说明请参考Datasheet开发上手指南

     

    b). Apalis iMX6Q 安装基于Toradex Linux BSP V2.8 并集成Qt opensource 5.9基本库的Embedded Linux,系统基于Ycoto Project/OpenEmbedded 编译环境进行编译,编译方法请参考这里,编译好的Linux Image安装方法请参考这里

     

     

    3). Apalis iMX6 WinCE 系统下远程桌面配置

    a). Apalis iMX6 除了本文下面要演示的Embedded Linux系统,也支持WinCE系统,因此这里也将WinCE系统下远程桌面配置做简单罗列,但并不做相关测试演示。

     

    b). Apalis iMX6 WinCE 作为远程桌面Client配置,通过CETSC 工具,使用RDP协议来登录基于Windows(RDP支持)的远程桌面服务器,详细请参考如下:

    https://developer.toradex.cn/knowledge-base/remote-desktop-protocol-rdp-on-windows-ce

     

    c). Apalis iMX6 WinCE 作为远程桌面Server配置,通过VNC Server 工具,使用VNC协议来供支持VNC协议的Client登录,详细请参考如下:

    https://developer.toradex.cn/knowledge-base/VNC-Server-(WinCE)

     

     

    4). Apalis iMX6 Embedded Linux 系统下远程桌面配置之Client

    a). 通过 FreeRDP 工具,使用RDP协议连接 RDP 远程桌面Server端(Windows 主机为主)

    ./ 安装 FreeRDP 软件,可以通过下面两种方法:

    // 通过OE环境直接编译到Embedded Linux Image里面去

    -----------------------

    # add freerdp to build/conf/local.conf

    IMAGE_INSTALL_append = " freerdp"

    -----------------------

     

    // 或者通过OE环境编译出对应的ipk安装包,然后在Apalis iMX6模块系统上面通过opkg命令来安装

    -----------------------

    # compile freerdp related ipk package in OE envirionment

    $ bitbake freerdp

     

    # cp below ipks to Apalis iMX6 and install

    $ cd deploy/ipk/armv7at2hf-neon-mx6qdl

    $ scp freerdp_1.0.0-7677-g62da9d2-r0_armv7at2hf-neon-mx6qdl.ipk libfreerdp1.2_1.0.0-7677-g62da9d2-r0_armv7at2hf-neon-mx6qdl.ipk root@ipaddress_aplis_imx6:/home/root/

    $ opkg install libfreerdp1.2_1.0.0-7677-g62da9d2-r0_armv7at2hf-neon-mx6qdl.ipk

    $ opkg install freerdp_1.0.0-7677-g62da9d2-r0_armv7at2hf-neon-mx6qdl.ipk

    -----------------------

     

    ./ 通过下面示例命令连接RDP 远程桌面Server,更多配置选项可以通过执行 “xfreerdp --help” 来查看

    -----------------------

    $ xfreerdp /u:username /p:password /v:server ipadress or domain name

    -----------------------

     

    b). 通过 Tightvnc viewer工具,使用VNC协议连接 VNC 远程桌面Server端(Linux 主机为主)

    ./ 安装 Tightvnc软件,可以通过下面两种方法:

    // 通过OE环境直接编译到Embedded Linux Image里面去

    -----------------------

    # add tightvnc to build/conf/local.conf

    IMAGE_INSTALL_append = " tightvnc"

    -----------------------

     

    // 或者通过OE环境编译出对应的ipk安装包,然后在Apalis iMX6模块系统上面通过opkg命令来安装

    -----------------------

    # compile tightvnc related ipk package in OE envirionment

    $ bitbake tightvnc

     

    # cp below ipks to Apalis iMX6 and install

    $ cd deploy/ipk/armv7at2hf-neon

    $ scp libxaw6-6_1.0.13-r2_armv7at2hf-neon.ipk tightvnc-viewer_1.3.10-r2_armv7at2hf-neon.ipk root@ipaddress_aplis_imx6:/home/root/

    $opkg install libxaw6-6_1.0.13-r2_armv7at2hf-neon.ipk

    $ opkg install tightvnc-viewer_1.3.10-r2_armv7at2hf-neon.ipk

    -----------------------

     

    ./ 通过下面示例命令连接VNC 远程桌面Server,更多配置选项可以通过执行 “vncviewer --help” 来查看

    -----------------------

    $ vncviewer vncserver_ipadress:<DISPLAY#>

    -----------------------

     

     

    5). Apalis iMX6 Embedded Linux 系统下远程桌面配置之Server

    a). 通过 X11vnc工具,使用VNC协议提供基于X11桌面服务器的远程桌面Server端

    ./ 安装 X11vnc 软件,可以通过下面两种方法:

    // 通过OE环境直接编译到Embedded Linux Image里面去

    -----------------------

    # add x11vnc to build/conf/local.conf

    IMAGE_INSTALL_append = " x11vnc"

    -----------------------

     

    // 或者可以在Apalis iMX6模块系统上面通过opkg命令来在线安装

    -----------------------

    # on Apalis iMX6 Linux, make sure it has internet access

    $ opkg update

    $ opkg install x11vnc

    -----------------------

     

    ./ 通过下面示例命令启动远程桌面Server,然后即可通过vncviewer client来进行连接

    -----------------------

    # on Apalis iMX6, startup vnc server

    $ x11vnc -display :0

     

    # on vnc client, use vncviewer to visit

    $ vncviewer apalis_imx6_ipadress:0

    -----------------------

     

    b). 通过 Teamviewer Host工具,建立teamviewer远程桌面Server端

    ./ 由于teamviewer软件本身的特性,可以提供穿透局域网的远程桌面服务,而上述所列的软件默认都是只能在局域网内工作

     

    ./ 安装 Teamviewer Host软件

    // 在Linux主机上面下载Teamviewer Host针对armv7架构的tar压缩包,解压并重新打包为tar.bz2压缩包以便于在Apalis iMX6系统上面解压

    -----------------------

    # on Linux host

    $ wget https://download.teamviewer.com/download/linux/teamviewer-host_armhf.tar.xz

    $ tar Jxf teamviewer-host_armhf.tar.xz

    $ tar cjvf teamviewer-host_armhf.tar.bz2 teamviewer/

    -----------------------

     

    // 将teamviewer安装包上传到Apalis iMX6系统上进行解压并检查安装依赖环境,teamviewer需要Qt的一些基本库。

    -----------------------

    # on Apalis iMX6 Linux

    $ tar xjvf teamviewer-host_armhf.tar.bz2

    $ cd teamviewer

    # run below command to check the dependency requirement

    ./tv-setup checklibs

    -----------------------

     

    // 由于本文这里编译的image绝大多数Qt库都已经有了,个别没有的可以通过OE环境单独编译出来ipk安装包,再在Apalis iMX6上面进行安装。通过上面打印信息看到缺少的是 libqt5x11extras5 依赖库,参考如下进行安装

    -----------------------

    # on OE envirionment

    $ bitbake qtx11extras

     

    # cp below ipks to Apalis iMX6 and install

    $ cd deploy/ipk/armv7at2hf-neon

    $ scp libqt5x11extras5_5.9.7+git0+34dcc9ea76-r0_armv7at2hf-neon.ipk root@ipaddress_aplis_imx6:/home/root/

    $ opkg install libqt5x11extras5_5.9.7+git0+34dcc9ea76-r0_armv7at2hf-neon.ipk

    -----------------------

     

    // 检查依赖没有问题后,通过下面命令进行安装,安装过程中遇到提示都选择Yes。

    -----------------------

    $ ./tv-setup install

    -----------------------

     

    // 安装成功后,修改teamviewer开机自启动systemd服务文件 /etc/systemd/system/termviewerd.service 为如下内容

    -----------------------

    [Unit]

    Description = TeamViewer remote control daemon

    After = systemd-networkd-wait-online.service network.target network-online.target dbus-org.freedesktop.network1.service

    Wants = dbus-org.freedesktop.network1.service network-online.target

    Requires = dbus-org.freedesktop.network1.service

     

    [Service]

    Type = forking

    PIDFile = /var/run/teamviewerd.pid

    ExecStart = /opt/teamviewer/tv_bin/teamviewerd -d

    Restart = on-abort

    StartLimitInterval = 60

    StartLimitBurst = 10

     

    [Install]

    WantedBy = multi-user.target

    -----------------------

     

    // 另外,我这里遇到了random pool 初始化延迟的问题导致teamviewer开机自启动timeout失败,可以通过安装下面ipk包解决

    -----------------------

    # random pool initiate will print below kernel message when finished

    kernel: random: crng init done

     

    # on OE environment, compile rng-tools ipk package

    $ bitbake rng-tools

     

    # cp below ipks to Apalis iMX6 and install

    $ cd deploy/ipk/armv7at2hf-neon

    $ scp rng-tools_5-r0_armv7at2hf-neon.ipk root@ipaddress_aplis_imx6:/home/root/

    $ opkg install rng-tools_5-r0_armv7at2hf-neon.ipk

    -----------------------

     

    // 上述项目都配置完成后重启

     

    ./ 卡机后稍微等待一小段时间teamviewr服务即可自启动成功,这时候打开teamviewr界面根据提示的ID等信息,通过teamviewer client端进行连接访问

                                                  image001.png

     

     

    6). 总结

    本文示例了基于ARM嵌入式平台进行远程桌面client和server配置的方法供参考。

     

    展开全文
  • arm平台编译adb

    千次阅读 2017-12-04 18:20:18
     本来的目的是在arm平台编译以后能够使用adb shell获取shell权限,然后就可以避开其他权限无法执行su的问题。 最开始,先修改了android源码中的su.c,将root和shell权限验证部分注释掉,编译出来还是不行,在...

    参考github:https://github.com/bonnyfone/adb-arm

            本来的目的是在arm平台编译以后能够使用adb shell获取shell权限,然后就可以避开其他权限无法执行su的问题。

    最开始,先修改了android源码中的su.c,将root和shell权限验证部分注释掉,编译出来还是不行,在setgid和setuid的时候会产生错误,这个错误折腾了我两天也没搞定,只能另找办法了。

    突然想到adb是有shell权限的,可以自己编译adb为动态库,通过jni方式给android应用调用,这样在已经root的手机上就能有root权限了(没有root的平台就需要再研究一下如何root),目前这个方法还未验证。

    提供adb编译的方法(这个方法只是编译可执行文件adb,可以在这个基础上修改为动态库方式,这个方式比较简单,就不在这里说明了):

    编译版本是:android-4.4.4_r2.0.1

    源码的下载需要梯子……

    脚本文件:

    #         CONFIG
    # -------------------------
    
    # Branch to checkout from Android source code repo
    branch=android-4.4.4_r2.0.1
    
    # Makefile to use (will be automatically copied into system/core/adb)
    makefile=makefile.sample
    
    
    # DOWNLOAD necessary files
    # -------------------------
    echo "\n>> >>> ADB for ARM <<< \n"
    echo "\n>> Downloading necessay files ($branch branch)\n"
    mkdir android-adb
    cd android-adb
    mkdir system
    cd system
    git clone -b $branch https://android.googlesource.com/platform/system/core
    git clone -b $branch https://android.googlesource.com/platform/system/extras
    cd ..
    mkdir external
    cd external
    git clone -b $branch https://android.googlesource.com/platform/external/zlib
    git clone -b $branch https://android.googlesource.com/platform/external/openssl
    git clone -b $branch https://android.googlesource.com/platform/external/libselinux
    cd ..
    
    
    # MAKE
    # -------------------------
    echo "\n>> Copying makefile into system/core/adb...\n"
    cp ../$makefile system/core/adb/makefile -f
    cd system/core/adb/
    echo "\n>> Make... \n"
    make clean
    make
    echo "\n>> Copying adb back into current dir...\n"
    cp adb ../../../../
    echo "\n>> FINISH!\n"
    

    makefile.example文件:

    # ADB makefile
    # ------------
    
    #TODO change TOOLCHAIN variable to your toolchain path 
    #TOOLCHAIN= /opt/poky/1.5/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
    TOOLCHAIN = /home/linux/bin/android-toolchain/bin/arm-linux-androideabi-
    CC = $(TOOLCHAIN)gcc
    LD = $(TOOLCHAIN)gcc
    CXX = $(CC)
    
    SRCS += adb.c
    SRCS += fdevent.c
    SRCS += adb_client.c
    SRCS += commandline.c
    SRCS += console.c
    SRCS += file_sync_client.c
    SRCS += get_my_path_linux.c
    SRCS += services.c
    SRCS += sockets.c
    SRCS += transport.c
    SRCS += transport_local.c
    SRCS += transport_usb.c
    SRCS += usb_linux.c
    SRCS += usb_vendors.c
    SRCS += adb_auth_host.c
     
    VPATH += ../libcutils
    SRCS += list.c
    SRCS += socket_inaddr_any_server.c
    SRCS += socket_local_client.c
    SRCS += socket_local_server.c
    SRCS += socket_loopback_client.c
    SRCS += socket_loopback_server.c
    SRCS += socket_network_client.c
    SRCS += load_file.c
     
    VPATH += ../libzipfile
    SRCS += centraldir.c
    SRCS += zipfile.c
     
    VPATH += ../../../external/zlib/src
    SRCS += adler32.c
    SRCS += compress.c
    SRCS += crc32.c
    SRCS += deflate.c
    SRCS += infback.c
    SRCS += inffast.c
    SRCS += inflate.c
    SRCS += inftrees.c
    SRCS += trees.c
    SRCS += uncompr.c
    SRCS += zutil.c
    
    CPPFLAGS += -DADB_HOST=1
    CPPFLAGS += -DHAVE_FORKEXEC=1
    CPPFLAGS += -DHAVE_SYMLINKS
    CPPFLAGS += -DHAVE_TERMIO_H
    CPPFLAGS += -DHAVE_SYS_SOCKET_H
    CPPFLAGS += -D_GNU_SOURCE
    CPPFLAGS += -D_XOPEN_SOURCE
    CPPFLAGS += -std=c++11 
    CPPFLAGS += -I.
    CPPFLAGS += -I../include
    CPPFLAGS += -I../../../external/zlib
    CPPFLAGS += -I../../../external/openssl/include
    CPPFLAGS += -I../base/include 
    CFLAGS += -O2 -g -Wall -Wno-unused-parameter
    
    LIBS = -lcrypto -pthread -fPIE -pie
    #LIBS += -lrt
    
    OBJS = $(SRCS:.c=.o)
    
    all: adb
    
    adb: $(OBJS)
    	$(LD) -o $@ $(LDFLAGS) $(OBJS) $(LIBS)
    
    clean:
    	rm -rf $(OBJS)
    
    TOOLCHAIN是本地的ndk工具链,是从r9中抽取出来的。

    可以手动下载脚本中的源代码,然后直接把makefile放在~/system/core/adb/下面,执行make就能产生adb文件,验证没有问题。动态库还没来得及编译。

    展开全文
  • 配置Qt ARM 平台交叉编译

    千次阅读 2018-07-23 21:09:46
    首先有对应arm平台的SDK 1 指定 ARM 平台的 gcc 和g++ 打开 QtCreater ,工具——&gt;选项——&gt;编译器 在ARM 平台的 开发 SDK 包里面的 gcc g++ GCC arm-linux-gnueabi-gcc...

    配置 目标平台的 gcc g++ qmake
    首先有对应arm平台的SDK

    1 指定 ARM 平台的 gcc 和g++

    打开 QtCreater ,工具——>选项——>编译器

    这里写图片描述

    在ARM 平台的 开发 SDK 包里面的 gcc g++
    GCC
    arm-linux-gnueabi-gcc

    G++
    arm-linux-gnueabi-g++

    2 指定 ARM 平台的 qmake

    QT Version 一页
    这里写图片描述

    3配置构建套件

    这里写图片描述

    编译器 一栏指定 刚才配置的 GCC 和G++

    Qt 版本一栏指定刚才配置的 qmake

    然后 可以打开工程
    执行qmake
    构建
    可以在输出目录得到对应 ARM平台的 程序2进制文件

    拷贝到目标板上运行

    展开全文
  • QT5.9.6移植到ARM平台

    千次阅读 2019-07-29 14:24:58
    最近做嵌入式的课程设计,需要将QT5移植到ARM平台上,我使用的教学平台所用的CPU为Samsung Exynos 4412,ARM Coretex-A9 四核,主频为1.4GHz,Exynos 4412 Block Diagram。本文以此平台为例,记录将QT5.9.6移植到该...
  • ARM平台裸板GDB调试

    千次阅读 2017-09-14 21:13:36
    ARM平台裸板GDB调试概述调试方式ARM平台下裸板调试,一般分为两种。 * ARM内核的MCU开发和调试 * ARM内核的SOC的bootloader开发和调试MCU的开发多是基于Windows系统。使用Keil(MDK)、芯片厂商基于eclipse的改造...
  • 一、前言 这两天接到的两个关于Linux 平台相关的项目,一个Linux 桌面...于是,这个项目落在我的身上,好久没有编写过ARM平台相关的东西。因此,写下这篇文章,记录我使用Ubuntu 安装交叉编译工具&lt;arm-cort...
  • arm平台进行c语言编译

    2019-10-09 15:22:02
    arm平台进行c语言编译 安装gcc环境 测试用的unbutu平台,直接在开发板上面运行,如果在虚拟机上面运行的话又要弄交叉编译,太麻烦;直接在开发板上面联网,然后输入: sudo apt-get install build-essential 编译 ...
  • caffe移植到arm平台

    千次阅读 2017-07-09 17:56:11
    经过一个多星期的掉坑再爬坑,终于将caffe成功移植到arm平台,这里记录一下整个的过程。 感谢知乎大神乌贼刘的热心帮助:https://www.zhihu.com/question/56437450 移植环境: PC:Ubuntu14.04 x64 ARM:Ti ...
  • 移植opencv 到 ARM 平台

    2019-09-17 11:31:32
    最近移植 一个比较复杂的程序 到 ARM 平台, 这个程序的 依赖比较多, 最麻烦的一个依赖是opencv, 因为 opencv本身有不少依赖! 参考了 网上一些博客, 碰到的坑倒不算多 以 opencv-3.2.0 为例, 有的博客说 先要把 ...
  • golang编译arm平台程序

    千次阅读 2016-12-30 09:21:51
    1、export GOARCH=arm 2、使用go build编译的程序即可在arm平台运行 3、切换回linux平台 4、export GOARCH=amd64 5、再使用go build编译程序即可在linux平台运行 备注:在开发环境 ubuntu 14.04 64位机器上测试通过
  • ARM平台NEON指令的编译和优化 2016年03月15日 22:56:17qiek阅读数 17652 https://blog.csdn.net/qiek/article/details/50900890 ARM平台NEON指令的编译和优化 本文介绍了ARM平台基于ARM v7-A架构的ARM ...
  • ARM平台搭建Hadoop集群

    千次阅读 2018-07-06 21:14:40
    /*Hadoop是Apache旗下主流的大数据计算和存储框架之一,在近年来应用的越来越广泛。...而Java是跨平台的,可以“run everywhere”,这就给在ARM平台上搭建Hadoop集群带来了希望。事实上,已经有多家大厂和个人爱好...
  • ARM平台的虚拟化介绍

    万次阅读 2019-03-25 11:24:49
    本篇博文主要介绍虚拟化的基本思想以及在arm平台如何做虚拟化,arm提供的硬件feature等等。 虚拟化技术简介 虚拟化技术 虚拟化是一个概念,单从这个概念的角度来看,只要是用某一种物品去模拟另一种物品都可以...
  • Chromium Arm平台编译配置 以下内容以Chromium67为准。 Chromium支持多平台编译,如Linux、android、MAC。在编译时,可以指定cpu类型,如 current_cpu="arm" # 或 current_cpu="arm64" 当指定cpu类型时,...
  • ARM平台上编译安装golang

    万次阅读 2015-01-20 16:59:42
    golang也就是go语言,现在已经...ARM平台没办法直接从官网下载二进制安装包来安装,好在golang是支持多平台并且开源的语言,因此可以通过直接在ARM平台上编译源代码来安装。整个过程主要包括编译工具配置、获取golan
  • qwt的x86平台和arm平台的移植
  • LinuxCNC ARM平台移植

    千次阅读 2015-04-26 11:17:25
    LinuxCNC官网发布都是基于x86平台的,要把LinuxCNC往ARM平台移植,主要难点在于实时系统的移植。 目前RTAI支持的ARM平台处理器少之又少,当前支持的ARM处理器处理性能都不太高,要想自己移植难度着实有点大。 当然...
  • arm平台和相关的矩阵运算库
  • 移植curl到arm平台

    千次阅读 2018-01-07 14:15:18
    简要:最近需要在arm平台上使用curl来解析网页的api 一,下载curl源码 地址:https://curl.haxx.se/download.html 解压:tar -xvf curl-7.57.0.tar.gz 二,配置curl ./configure --prefix=/home/test/libcurl ...
  • 海思ARM平台交叉编译zeroMQ

    千次阅读 2019-07-11 12:55:33
    所以通过要通过交叉编译,将其移植到ARM平台。 移植方法,可以参考https://blog.csdn.net/sishuihuahua/article/details/77203094 以下是我使用海思交叉编译工具的方法: 一、配置编译器 ./configure ...
  • ARM平台上移植Ubuntu14.04系统

    千次阅读 2018-04-18 09:18:06
    Ubuntu在ARM平台下运行,可能比较陌生。以下我们介绍Ubuntu 14.04 到DLT-RK3288 ARM平台上。使用到的硬件平台:DLT-RK3288补充说明:DLT-RK3288是基于4核32Bits Cortex-A17架构的CPU,该方法构建的时候采用了向下...
  • X86平台和ARM平台

    千次阅读 2019-09-03 11:49:40
    X86和ARM都是指CPU的内核。 桌面电脑,笔记本电脑中使用的Intel、AMD处理器,就是X86处理器。 ARM是一家英国的处理器设计公司,其设计的处理器采用了ARM内核。 ARM指令集少,电路规模小,功耗低,发热低,非常适合...
  • 交叉编译ARM平台WebRTC库

    千次阅读 2018-08-03 11:56:22
    要将其编译成一个ARM平台下库供Android APP使用。  怎么说呢,相当坑,源码好像是从GitHub上翻出来了,大牛精简抽离后,x86下可至今编译,但ARM下就需要下点功夫了。改起来相当累啊,耗时一个半工作日搞定,成果...
  • Jrtplib移植到arm平台

    千次阅读 2014-05-06 11:06:25
    本文描述Jrtplib库在arm平台上的移植
  • ARM平台上安装CPU版TensorFlow

    千次阅读 2018-07-06 18:47:54
    /* TensorFlow是谷歌研发的第二代人工智能学习开源框架,可被...同时随着ARM处理器性能的不断增强,越来越多的开发者和厂商在把TensorFlow应用迁移到ARM平台上。由于实际项目的需求,我尝试在ARM嵌入式平台上安装T...
  • arm平台的调用栈回溯(backtrace)

    千次阅读 2018-09-25 10:20:00
    title: arm平台的调用栈回溯(backtrace) date: 2018-09-19 16:07:47 tags: --- 介绍 arm平台的调用栈与x86平台的调用栈大致相同,稍微有些区别,主要在于栈帧的压栈内容和传参方式不同。在arm平台的不同程序,采用的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,559
精华内容 7,023
关键字:

arm平台