Linux文件共享

来源:互联网 发布:手机淘宝如何评价 编辑:程序博客网 时间:2024/06/11 11:49
        有些项目中有些模块需要在Linux环境下编译,编译结束后目标文件再拷贝至目标机器终端,修改代码过程中也相对来说较为繁琐;再者,有些是通过Linux虚拟机来承载编译环境的(举例ARM-LINUX-GCC交叉编译器),如果对于主机是笔记本那么虚拟机的界面尺寸看起来会觉得很小,很是头疼。因此,为了解决折一系列相关麻烦事儿,我们可以这样做:
        首先我们用的是Win10笔记本,通过VM运行Ubuntu(ubuntu-15.04-desktop-amd64.iso)系统,Ubuntu上装载交叉编译器(arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)对目标项目进行编译,编译结束拷贝目标文件至一款运行Android5.0的目标终端中进行测试,整个过程中对于代码的修改,文件的拷贝等都比较繁琐,对于开发人员来说,整个过程比较耗时,可能效率还不是很高。
        我们开始搭建一整套系统来让如此和真实工作不想关的事情都烟消云散。对于Win10上运行VM再跑Ubuntu系统这里就不再多说,默认Ubuntu系统已经运行。首先我们将我们整个工程代码拷贝至虚拟机任意位置,这时我们需要安装gcc交叉编译器对整个工程进行编译。对于gcc的安装也相对来说较为简单,拷贝至虚拟机任意路径并解压,再配置环境变量即可!当我们可以正常编译时,那么问题来了,如果我们的代码还存在bug或是还需要完善,最好最节省时间的方法是什么呢?直接用linux的编辑器在虚拟机中修改这当然不现实,这里我们需要用到linux中的文件/夹共享技术。我们可以这样做:
        Ubuntu下安装samba,执行如下命令:
sudo apt-get install samba(说明,如果已经安装,则会提示)
sudo apt-get install smbfs(说明,如果已经安装,则会提示
        安装成功后,我们则可以建立共享目录,假设我们之前编译的目标工程在/home/alibb/idc/下,那么我们可以将此目录设置为共享目录,注意给此目录777权限
sudo chmod 0777 /home/alibb/idc
        此时需要创建samba配置文件
mkdir /etc/samba/smb.conf(如果此文件已存在,则只需在后面追加相关内容即可)
        在smb.conf中添加如下内容(使用vi,vim,nano,gedit等linux文本编辑器),保存文件退出即可。
[share]  注意:该名称不能有同名,而且后续我们在windows端访问也需要用到此名称
            path 
= /home/alibb/idc
            available = yes
            browsealbe 
= yes
            
public = yes
            writable 
= yes
      
       此时我们我们便可以在Win10主机端来访问该共享目录了,具体可以这样做:
       打开资源管理器,右击此电脑,选择映射网络驱动器,在文件夹栏填入:\\192.168.20.177\share,点击完成即可
       说明:192.168.20.177为Ubuntu的IP地址(可以通过ifconfig来获取动态IP),share为我们建立的共享目录 的名字,此为smb.conf中的名称

      这时我们便可以在资源管理器下看到我们Ubuntu中文件目录及相关文件了。如此一来,我们在Win10下使用强大的代码编辑器便可以对代码进行方便的修改(SourceInsight , UltraEditor,Sublime Text等),并且此修改都是同步Ubuntu中的文件。好了,虽然说我们修改代码和编译代码已经比较方便了,只需切换窗口即可,那么对于尺寸较小的笔记本来说,运行虚拟机将会看得很不舒服,接下来我们将Ubuntu也搬到Win10来不就行了,我们可以这样做:
      首先我们可以使用Win版本的SecureCRT软件来显示Ubuntu的界面,这个直接下载后安装即可。对于SecureCRT来说,它支持很多协议的(SSH , Serial , Telnet等),我们这里使用SSH协议,那么我们的虚拟机Ubuntu就必须也支持该协议咯,当然可以做到,执行如下命令:
sudo apt-get -y install ssh
      待Ubuntu安装好SSH以后,我们便可以通过SecureCRT来访问我们的Ubuntu了,运行SecureCRT进行如下设置:选择SSH2协议,点击下一步,输入UbuntuIP地址,点击下一步至完成,点击connect即可。后面按照提示输入用户名及密码即可。如下所示,我们便可以在SecureCRT端操控我们的虚拟机Ubuntu系统了,看起来舒服多了,使用起来方便多了   

  
        到此我们已经解决了做该项目中相对繁琐的问题了,SecureCRT还可以另开窗口使用USB转串口线连接Android5.0的终端,到此我们的整个系统就搭建好了。另外,如果我们需要拷贝的目标文件比较多,我们是不需要通过手动一个一个拷贝,再写权限,在执行的,这里我们可以借助Linux脚本这样做:
        首先我们举例在/data/下建立个debug.sh脚本文件,添加如下内容:
#!/system/bin/sh
mount -o remount,rw /dev/block/mmcblk0p5 /system/
rm /system/bin/idc
cp /sdcard/idc /system/bin/
chmod 0777 /system/bin/idc
/system/bin/idc   &
        说明:这里的idc为我们事先用gcc编译好的可执行文件
        保存文件并写文件777权限即可。 接下来我们只需将我们编译的idc拷贝至终端/sdcard/下,然后进入到/data目录下使用如下命令运行脚本文件即可
./debug.sh
        如此一来,我们便可以把更多的精力放在了调代码bug上了,而不再用不停的拷贝文件不停的拷贝文件了(有时候还特别容易烦和混淆),这样工作效率就大大的提高了。



1 0
原创粉丝点击