在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 檢視目前本地...