查看: 3281|回复: 1

pcDuino实现uspip-USB网络重定向

[复制链接]

该用户从未签到

发表于 2014-3-17 11:24:01 | 显示全部楼层 |阅读模式
分享到:
我们经常碰到一种情况,我们需要往pcduino上拷贝东西,新手都用U盘,高手一般都用samba这样的高级玩意儿。拷贝一次倒也无所谓,关键是有些情况下,我们需要多次测试,多次拷贝。pcduino的USB插多了,可就难看了。这里教大家一种简单的方法,无需要多次插拔,每次一个命令即可。
首先,我们要需修改一下我们的内核,我们的内核还不支持USBIP,其实前面有一个帖子,我已经介绍了怎么修改和换内核,这里,我一图文并茂的形式教大家怎么玩。在pcduino上玩内核和驱动,主要的问题就是硬盘空间不足,这里教大家怎么把它扩展成几十个G。

1、现在我们电脑上用virtualbox建一个linux虚拟机,我建的是ubuntu,怎么安装ubuntu的虚拟机我就不阐述了,一直点下一步就可以了。
2、在虚拟机上搭建一个nfs服务器,具体步骤如下:
  1. sudo apt-get install nfs-kernel-server
  2. vim /etc/exports
  3. sudo /etc/init.d/portmap restart
  4. sudo /etc/init.d/nfs-kernel-server restart
  5. showmount -e
复制代码
这样nfs就搭建好了,现在把内核下载到pcduino的文件夹里面:
  1. sudo apt-get install git git-core
  2. sudo git clone [url]https://github.com/linux-sunxi/linux-sunxi[/url]
  3. sudo git clone [url]https://github.com/pcduino/kernel/blob/master/patch/linux-sunxi/arch/arm/configs/sun4i_defconfig[/url]
  4. cp sun4i_defconfig  .config
复制代码
好了,为了让编译生成文件和源码隔离,我们建一个build文件,下载后文件内容中的内容如下:
  1. mkdir build
复制代码
095651eo7vo7enwz7t27n7.png

3、转移到pcduino上,先安装一个软件,要不然挂载不了:
  1. sudo apt-get install nfs-common
复制代码
开始挂载nfs,现在来看看我们pcduino的硬盘,已经足够大了:
100647x5uddt8fi8f6685b.png

4,配置编译内核,先在pcduino安装一些依赖文件。
  1. sudo apt-get install  u-boot-tools libncurses5
复制代码
然后开始配置内核:
  1. cd linux
  2. cp .config  ../build/
  3. make menuconfig O=../build
复制代码
101624ydm2z5kpzv71kjmq.png

进入General setup  —> (去掉里面的路径,要不然会编译不过的)
102201cudiqy6965by66uu.png

由于这个项目里面要把USBIP编译进去,这里告诉大家配置的办法:
  1. Device Drivers  --->
  2.          [*] Staging drivers  --->
  3.                        <M>   USB/IP support (EXPERIMENTAL)
  4.                        <M>     VHCI hcd
  5.                        <M>     Host driver
复制代码
然后退出,保存。
  1. make
  2. make modules
  3. make modules_install
  4. make uImage
  5. mount  /dev/nanda     /boot
  6. cp arch/arm/boot/uImage   /boot   -f
  7. reboot
复制代码
make需要四个小时,中间不会报错的,重启完了之后,包含有usbip的内核已经加载到系统里面去了。

5,手动加载USBIP驱动。
  1. modprobe  usbip-core
  2. modprobe  usbip-host
  3. modprobe  vhci-hcd
  4. vim /etc/modules
复制代码
在modules文件里面添加
usbip-core
usbip-host
vhci-hcd
6,配置编译USBIP。配置编译USBIP依然需要内核源码,回到第3步再把源码挂载一遍。然后
  1. cd /lib/modules/3.4.29+/linux/drivers/staging/usbip/userspace
复制代码
查看里面的INSTALL的文件,里面有详细的安装方法。
  1. ./autogen.sh
  2. ./configure
  3. make
  4. make install
复制代码
安装完了之后,然后下载一个USBIP运行的依赖软件。
  1. sudo apt-get install hwdata libsysfs-dev
复制代码
具体的使用方法在README里面也有。下面还是给大家演示一遍。
先启动usbip进程
  1. sudo usbipd -D
复制代码
先说一下我pcduino上USB挂载情况,我的pcduino上现在挂载了一个U盘,一个摄像头,一个键盘
,一个鼠标,一个hub.
然后用usbip查看usb设备
  1. ubuntu@ubuntu:/lib/modules/3.4.29+/linux/drivers/staging/usbip/userspace$ usbip list -l
  2. Local USB devices
  3. =================
  4. - busid 3-1 (1c4f:0026)
  5.          3-1:1.0 -> usbhid
  6.          3-1:1.1 -> usbhid

  7. - busid 4-1 (1a40:0101)
  8.          4-1:1.0 -> hub

  9. - busid 4-1.1 (093a:2510)
  10.          4-1.1:1.0 -> usbhid

  11. - busid 4-1.2 (0951:1665)
  12.          4-1.2:1.0 -> usb-storage

  13. - busid 4-1.3 (0c45:62f1)
  14.          4-1.3:1.0 -> usb-stub-driver
  15.          4-1.3:1.1 -> usb-stub-driver
  16.          4-1.3:1.2 -> usb-stub-driver
  17.          4-1.3:1.3 -> usb-stub-driver
复制代码
看吧,都列出来了。现在我要把我U盘重定向到我的电脑上。输入一下命令:
  1. <blockquote>ubuntu@ubuntu:/lib/modules/3.4.29+/linux/drivers/staging/usbip/userspace$ sudo usbip bind -b 4-1.2
复制代码
6,好了现在到我电脑windows上。先把usbip的windows安装上(驱动),具体的安装方法如下:
打开我的电脑管理–》管理–》添加过时硬件。
105854auhz7p8e7i77g7e1.png
然后选择从磁盘安装,把路径指到你解压的文件夹,就可以了。
打开cmd,输入的命令都在图片里
111106zw17ykpzk1opkk7k.png

可以看出我已经成功的把USBIP重定向过来了。
回复

使用道具 举报

  • TA的每日心情
    开心
    2014-4-16 09:58
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-4-14 14:01:20 | 显示全部楼层
    顶顶来喽!                        
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-20 08:32 , Processed in 0.128027 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.