我们经常碰到一种情况,我们需要往pcduino上拷贝东西,新手都用U盘,高手一般都用samba这样的高级玩意儿。拷贝一次倒也无所谓,关键是有些情况下,我们需要多次测试,多次拷贝。pcduino的USB插多了,可就难看了。这里教大家一种简单的方法,无需要多次插拔,每次一个命令即可。
首先,我们要需修改一下我们的内核,我们的内核还不支持USBIP,其实前面有一个帖子,我已经介绍了怎么修改和换内核,这里,我一图文并茂的形式教大家怎么玩。在pcduino上玩内核和驱动,主要的问题就是硬盘空间不足,这里教大家怎么把它扩展成几十个G。
1、现在我们电脑上用virtualbox建一个linux虚拟机,我建的是ubuntu,怎么安装ubuntu的虚拟机我就不阐述了,一直点下一步就可以了。 2、在虚拟机上搭建一个nfs服务器,具体步骤如下: - sudo apt-get install nfs-kernel-server
- vim /etc/exports
- sudo /etc/init.d/portmap restart
- sudo /etc/init.d/nfs-kernel-server restart
- showmount -e
复制代码 这样nfs就搭建好了,现在把内核下载到pcduino的文件夹里面:- sudo apt-get install git git-core
- sudo git clone [url]https://github.com/linux-sunxi/linux-sunxi[/url]
- sudo git clone [url]https://github.com/pcduino/kernel/blob/master/patch/linux-sunxi/arch/arm/configs/sun4i_defconfig[/url]
- cp sun4i_defconfig .config
复制代码 好了,为了让编译生成文件和源码隔离,我们建一个build文件,下载后文件内容中的内容如下:
3、转移到pcduino上,先安装一个软件,要不然挂载不了:- sudo apt-get install nfs-common
复制代码 开始挂载nfs,现在来看看我们pcduino的硬盘,已经足够大了:
4,配置编译内核,先在pcduino安装一些依赖文件。- sudo apt-get install u-boot-tools libncurses5
复制代码 然后开始配置内核:- cd linux
- cp .config ../build/
- make menuconfig O=../build
复制代码
进入General setup —> (去掉里面的路径,要不然会编译不过的)
由于这个项目里面要把USBIP编译进去,这里告诉大家配置的办法:- Device Drivers --->
- [*] Staging drivers --->
- <M> USB/IP support (EXPERIMENTAL)
- <M> VHCI hcd
- <M> Host driver
复制代码 然后退出,保存。- make
- make modules
- make modules_install
- make uImage
- mount /dev/nanda /boot
- cp arch/arm/boot/uImage /boot -f
- reboot
复制代码 make需要四个小时,中间不会报错的,重启完了之后,包含有usbip的内核已经加载到系统里面去了。
5,手动加载USBIP驱动。- modprobe usbip-core
- modprobe usbip-host
- modprobe vhci-hcd
- vim /etc/modules
复制代码 在modules文件里面添加
usbip-core
usbip-host
vhci-hcd
6,配置编译USBIP。配置编译USBIP依然需要内核源码,回到第3步再把源码挂载一遍。然后- cd /lib/modules/3.4.29+/linux/drivers/staging/usbip/userspace
复制代码 查看里面的INSTALL的文件,里面有详细的安装方法。- ./autogen.sh
- ./configure
- make
- make install
复制代码 安装完了之后,然后下载一个USBIP运行的依赖软件。- sudo apt-get install hwdata libsysfs-dev
复制代码 具体的使用方法在README里面也有。下面还是给大家演示一遍。
先启动usbip进程先说一下我pcduino上USB挂载情况,我的pcduino上现在挂载了一个U盘,一个摄像头,一个键盘
,一个鼠标,一个hub.
然后用usbip查看usb设备- ubuntu@ubuntu:/lib/modules/3.4.29+/linux/drivers/staging/usbip/userspace$ usbip list -l
- Local USB devices
- =================
- - busid 3-1 (1c4f:0026)
- 3-1:1.0 -> usbhid
- 3-1:1.1 -> usbhid
-
- - busid 4-1 (1a40:0101)
- 4-1:1.0 -> hub
-
- - busid 4-1.1 (093a:2510)
- 4-1.1:1.0 -> usbhid
-
- - busid 4-1.2 (0951:1665)
- 4-1.2:1.0 -> usb-storage
-
- - busid 4-1.3 (0c45:62f1)
- 4-1.3:1.0 -> usb-stub-driver
- 4-1.3:1.1 -> usb-stub-driver
- 4-1.3:1.2 -> usb-stub-driver
- 4-1.3:1.3 -> usb-stub-driver
复制代码 看吧,都列出来了。现在我要把我U盘重定向到我的电脑上。输入一下命令:- <blockquote>ubuntu@ubuntu:/lib/modules/3.4.29+/linux/drivers/staging/usbip/userspace$ sudo usbip bind -b 4-1.2
复制代码 6,好了现在到我电脑windows上。先把usbip的windows安装上(驱动),具体的安装方法如下:
打开我的电脑管理–》管理–》添加过时硬件。
然后选择从磁盘安装,把路径指到你解压的文件夹,就可以了。
打开cmd,输入的命令都在图片里
可以看出我已经成功的把USBIP重定向过来了。
|