how to mount pc share via nfs for android

if you have wifi in home, it is easy to share media files via nfs instead of copying files to sd card(sd card is unstable with fat filesystem, crashed if you unconnect it when copying files)

 

1. overview

pc:

ubuntu 10.04

 

phone:

htc magic android 2.2.1

kernel 2.6.35-9

mod version cyanogenmod-6.1.0-DS

 

android mount command do not support nfs, compile busybox for mount command using toolchains that support eabi(known as arm-eabi-*) 

 

2. details

2.1 pc:

1. configure nfs server

1.1 #sudo apt-get install nfs-kernel-server   nfs-common   portmap 

1.2  #sudo dpkg-reconfigure portmap

       after run, choose no

 1.3 edit /etc/exports 

/nfs-share *(rw, sync)

1.4 update exports

#sudo exportfs -r

1.5 restart nfs service

#service portmap restart

#service /etc/init.d/nfs-kernel-server restart

1.6 test mount in local pc

#sudo mount NFS-SERVER-IP:/nfs-share  /MOUNT-POINT

check by mount, if mounted, then umount it.

#umount /MOUNT-POINT

 

2.2 build busybox

2.2.1. download busybox http://busybox.net/downloads/busybox-1.18.0.tar.bz2

2. 2.2 configure your toolchain environment, for example

#export PATH=/YOUR-CROSS-COMPILER-BIN-PATH:$PATH

2.2.3 make, asume prefix of cross compiler is "arm-linux-"

#make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig

(1) . select built option "Build BusyBox as a static binary(no shared libs)"

(2). installation options "Don't use /usr"

 

#make ARCH=arm CROSS_COMPILE=arm-linux- 

and then make install to "./_install"

 

2.3 copy busybox to your phone

2.3.1 make sure you have install android sdk, if installed, put tools to your PATH

for example: export PATH=/media/develop/android-sdk/android-sdk-linux_86/tools:$PATH

2.3.2 connect phone to pc using usb cable, and enable USB debugging(Settings/Application/Development)

#adb usb

#adb shell

#mkdir /data/busybox

#exit

#adb push ./_install/ /data/busybox/

#adb shell

#export PATH=/data/busybox/bin:/data/busybox/sbin:$PATH

now, you can test in shell to mount your pc share

#mkdir /sdcard/server

#mount -t nfs NFS-SERVER-IP:/nfs-share /sdcard/server -o nolock

 

2.4 mount in phone

install Terminal Emulator, set initial command to export busybox bin path. same in adb shell. 

 

 

编译 OpenSceneGraph (OSG) for Android 需要使用交叉编译工具链(cross-compilation toolchain),可以使用 Android NDK 中提供的工具链来完成。以下是编译 OSG 的大致步骤: 1. 下载并安装 Android NDK,可以从官网下载。 2. 下载 OSG 的源代码,可以从官网下载。 3. 解压 OSG 源代码,进入源代码目录。 4. 设置环境变量,使得编译器可以找到 Android NDK 中的工具链,例如: ``` export ANDROID_NDK=$HOME/android-ndk-r10e export PATH=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:$PATH export CC=arm-linux-androideabi-gcc export CXX=arm-linux-androideabi-g++ ``` 其中 `$HOME/android-ndk-r10e` 是 Android NDK 的安装路径。 5. 运行 cmake 命令生成 Makefile: ``` mkdir build_android cd build_android cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ -DANDROID_ABI="armeabi-v7a" \ -DANDROID_NATIVE_API_LEVEL=android-14 \ -DCMAKE_INSTALL_PREFIX=/path/to/install/directory \ .. ``` 其中 `-DANDROID_ABI="armeabi-v7a"` 表示编译为 armeabi-v7a 架构,`-DANDROID_NATIVE_API_LEVEL=android-14` 表示使用 Android 14 的 API 级别。`-DCMAKE_INSTALL_PREFIX` 表示安装路径。 6. 运行 make 命令编译 OSG: ``` make -j4 ``` 其中 `-j4` 表示使用 4 个线程进行编译。 7. 运行 make install 命令安装 OSG: ``` make install ``` 至此,OSG 的编译就完成了。 如果需要编译 osgEarth,可以按照类似的步骤,先编译 OSG,再编译 osgEarth。在 cmake 命令中需要添加 `-DOSG_DIR=/path/to/osg/install/directory` 参数,指定 OSG 的安装路径。例如: ``` cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ -DANDROID_ABI="armeabi-v7a" \ -DANDROID_NATIVE_API_LEVEL=android-14 \ -DCMAKE_INSTALL_PREFIX=/path/to/install/directory \ -DOSG_DIR=/path/to/osg/install/directory \ .. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值