如何在arm linux平台連線ios裝置

2021-07-04 20:15:50 字數 3904 閱讀 2890

在pc上,無論是windows還是linux都可以連線管理你的ios裝置,那麼如何去實現在arm平台下與ios通訊呢,其實你你需要把linux下的usbmuxd和libimobiledevice交叉編譯就可以了,管道就打通了,接下你也可以用ssh或ifuse。

系統:linux  2.6.32-74-generic #142-ubuntu smp i686 gnu/linux

交叉編譯器: arm-none-linux-gnueabi-gcc

rdk: dvrrdk_04.00.00.03(沒有這個可以根據需要編譯自己需要的庫)

裝置: arm linux板(dm368)+ ipone5s(ios8.3) +usb線

export prefix=/opt/dvrrdk/dvrrdk_04.00

.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago

-linux

-gnueabi/usr

export host=arm-none

-linux

-gnueabi

export build=x86_64-unknown

-linux

-gnu

export ld_library_path=

$prefix/lib

export pkg_config_path=

$ld_library_path/pkgconfig

package: libusb-1.0.8.tar.bz2

a. 先宣告上面的環境

b. ./configure --build=$build --host=$host --prefix=$prefix --disable-static --disable-log

c. make

d.make install

package: libplist-1.3.tar.bz2

這個需要用cmake編譯,自己寫乙個toolchain.cmake 修改交叉編譯變數

# this one is important

set(cmake_system_name linux)

#this one not so much

set(cmake_system_version 1)

# specify the cross compiler

set(cmake_c_compiler /opt/arm-2009q1/bin/arm-none-linux-gnueabi-gcc)

set(cmake_cxx_compiler /opt/arm-2009q1/bin/arm-none-linux-gnueabi-g++)

# where

is the target environment

set(cmake_find_root_path /opt/dvrrdk/dvrrdk_04.00

.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr)

# search for programs in the build host directories

set(cmake_find_root_path_mode_program never)

# for libraries and headers in the target directories

set(cmake_find_root_path_mode_library only)

set(cmake_find_root_path_mode_include only)

然後在原始碼目錄下 新建build資料夾

mkdir build

cd build

cmake -dcmake_toolchain_file=../toolchain.cmake ..

make destdir=$prefix install

package: usbmuxd-1.0.4.tar.bz2

編譯方法和libplist是一樣的。

現在通道已經打通。

採用上面的方法,你也可以編譯出

libgpg-error

package: libgpg-error-1.7.tar.gz

libgcrypt

package: libgcrypt-1.4.6.tar.gz

libtans1

package: libtasn1-2.7.tar.gz

gnutls

package: gnutls-2.8.6.tar.bz2

需要修改一下src/makefile 的ldflags 值

ldflags=/opt/dvrrdk/dvrrdk_04.00

.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/lib/libgcrypt.so /opt/dvrrdk/dvrrdk_04.00

.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/lib/libgpg-error.so

新建乙個build.sh

./configure --build=$build --host=$host --prefix=$prefix  libusbmuxd_cflags="-i$prefix/include" libusbmuxd_libs="-l$prefix/lib" libgnutls_cflags="-i$prefix/include" libgnutls_libs="-l$prefix/lib" libtasn1_cflags="-i$prefix/include" libtasn1_libs="-l$prefix/lib" libplist_cflags="-i$prefix/include" libplist_libs="-l$prefix/lib" libglib2_cflags="-i$prefix/include -i$prefix/lib/glib-2.0/include" libglib2_libs="-l$prefix/lib" --without-swig ldflags="-l/opt/dvrrdk/dvrrdk_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/lib -l/opt/dvrrdk/dvrrdk_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/usr/local/lib -lusbmuxd " cflags="-i/opt/dvrrdk/dvrrdk_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/usr/local/include -i/opt/dvrrdk/dvrrdk_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/include"
sh build.sh

make

make install

也許你需要繼續 編譯fuse 和ifuse ,那麼你就可以去mount ios裝置了

文章參照 mounting an ipod/iphone on a linux device

上面usbmuxd的1.0.4版本不支援ipone5s 的ios8.3,又試了usbmuxd 1.0.7 是ok的。

我只使用了發現裝置連線裝置(libplist usbmuxd),打通管道,你也可以編譯文章提到的其他工具,甚至寫個qt程式。

搭建arm linux開發平台

在網上找了很多資料,才建立了自己的linux開發平台,這裡要感謝網路上的大牛們提供的資料,讓我少走了很多彎路,現在把我 搭建平台的步驟說明如下,主要是給自己乙個備份,呵呵。先介紹一下我使用的開發平台 開發板使用 帶s3c2440cpu的開發板,linux2.6 pc機上安裝的是ubuntu10.10...

ARM Linux平台的Busybox交叉編譯

arm linux平台的busybox 交叉編譯 什麼是busybox呢?從名字上直接理解,busybox是乙個 繁忙的盒子 其實,busybox可以理解為乙個linux的命令集合,我們在進行linux操作時所需要的 常用命令,都可以在busybox裡找到,但busybox又不是簡單的將所有的命令集...

如何在PAI平台跑實驗

registry mirrors insecure registries 192.168.193.253 5000 docker pull 192.168.193.253 5000 pytorch v0.4.0 此映象為pytorch0.4版本的基礎映象 docker image ls 檢視目前本地...