很多网友在问:为什么中国版的装完驱动插上板子没有显示端口号和69M的盘符??楼主发现,在开机启动的时候,加载g_multi模块时出现错误提示 invalid argument。
        Embest的员工表示:装的是BBB-eMMC-flasher-2013.04.13-DDR3 -400MHz.img.xz  版本确认有此盘符!而我们去官网上下载这个版本发现真的跟我们板子上的是一样的。甚至装上最新的版本也还是同样的问题。此事必有蹊跷!!!
        有大牛提出了解决办法:输入命令
        x=/usr/bin/g-ether-load.sh;sed -e 's/SERIAL_NUMBER=/x=/g' $x> x;rm $x;mv x $x;chmod a+x $x;sync;
        完成后重启即可,驱动自动加载;如果需要手工安装驱动,运行命令modprobe g_multi file=/dev/mmcblk0p1 cdrom=0 stall=0removable=1 nofua=1 系统自动安装USB驱动,这时就能在电脑上看到69.4MB的盘符。问题跟EEPROM里的ID号有关。
但是大牛并没有解释为什么这么做。他只告诉我们跟EEPROM里的ID号有关。先百度了一下sed这个命令的意思,sed -e 's/SERIAL_NUMBER=/x=/g',就是把文件中所有”SERIAL_NUMBER=”的字符串替换成了“x=”。
        先把/usr/bin/g-ether-load.sh这个文件找出来。找到跟SERIAL_NUMBER有关的命令。
SERIAL_NUMBER=$(hexdump -e '8/1 "%c"'/sys/bus/i2c/devices/0-0050/eeprom -s 14 -n 2)-$(hexdump -e '8/1"%c"' /sys/bus/i2c/devices/0-0050/eeprom -s 16 -n 12)
modprobe g_multi file=/dev/mmcblk0p1 cdrom=0 stall=0removable=1 nofua=1 iSerialNumber=${SERIAL_NUMBER} iManufacturer=Circuitco  iProduct=BeagleBone${BLACK} host_addr=${DEV_ADDR}
        这样按照大牛的改法,意思就是传给内核的iSerialNumber参数变为空了。很明显EEPROM里的SERIAL_NUMBER是有问题的,既然文件系统肯定是没错的,那么肯定是Embest的EEPROM出厂数据写错了。可以把上面的命令分步执行一下:
        先echo $(hexdump -e '8/1 "%c"'/sys/bus/i2c/devices/0-0050/eeprom -s 14 -n 2)
        运行结果为:ue                    这一句没有问题
        再执行下面半句的时候
       echo $(hexdump -e '8/1 "%c"'/sys/bus/i2c/devices/0-0050/eeprom -s 16 -n 12)
        运行结果是这么个鬼样子:��D503785
        显然是出现了非法的字符。
        echo $(hexdump -e '8/1 "%c"'/sys/bus/i2c/devices/0-0050/eeprom -s 16 -n 12) > sn1
        把它存到文件里面,发现这个文件都不能用gedit打开,只能用vi打开,
        说明embest在EEPROM里面写序列号的时候后面忘了填几个零,直接又在后面开始写正常编码以外的数据。所以读的时候出现了致命的错误,整个参数都是不对的。
        另外提一句,大牛的方法虽然能解决问题,但楼主发现可操作性很差,而且没有把原来的文件做备份就rm掉了,要打那么多个字符,一个字符出错了可能把这个文件搞没掉。楼主就是在输完这个命令的时候,发现我的/usr/bin/g-ether-load.sh这个文件变成空白的了,所以建议像楼主一样菜的菜鸟们可以用我的办法:
        先把/usr/bin/g-ether-load.sh备份为/usr/bin/g-ether-load.bak.sh,用任意一个编辑器(gedit,或者vi)打开/usr/bin/g-ether-load.sh脚本文件,把下面这一段中的iSerialNumber=的参数填为空或者你板子上标签的序列号。
        modprobe g_multi file=/dev/mmcblk0p1 cdrom=0 stall=0removable=1 nofua=1 iSerialNumber=${SERIAL_NUMBER} iManufacturer=Circuitco  iProduct=BeagleBone${BLACK} host_addr=${DEV_ADDR}
        比如我的改成这个样子:
        modprobeg_multi file=/dev/mmcblk0p1 cdrom=0 stall=0 removable=1 nofua=1iSerialNumber=ue-EMD503785 iManufacturer=Circuitco  iProduct=BeagleBone${BLACK}host_addr=${DEV_ADDR}
       下次开机的时候电脑就会自动识别BBB的盘符和USB网卡啦啦啦啦。
        另外这次想手动启动相关模块的话可以直接运行/usr/bin/g-ether-load.sh脚本,事实上开机的时候系统也是通过这个脚本启动USB从设备驱动的。

就是这个EEPROM里面的数据没写对。

<ignore_js_op>

终极解决办法:
把eeprom里面的数据读到文件中来:
cp /sys/bus/i2c/devices/0-0050/eeprom      /eeprom.dump
打开这个文件:
cd /
vim –b eeprom.dump
以16进制方式编辑:
:%!xxd
将第三行到最后一行全部删掉(删除2199行)
将第二行0d后面的两个个ff改成00,如图所示:
返回普通编辑模式:
:%!xxd  –r
然后保存退出
:wq
最后将数据写入eeprom,写之前要用镊子将板子上的TP4和TP8短接,解除硬件写保护。  
dd if=/eeprom.dump of=/sys/devices/ocp.2/44e0b000.i2c/i2c-0/0-0050/eeprom
 
 

真相:中国版BBB用USB连电脑没有盘符的根本原因分析的更多相关文章

  1. 中国版的 Office 365

    与Windows Azure一样,中国版的Office 365也是由世纪互联运营的——与国际版完全隔离的定制版.而言,从功能方面来看,中国版的Office 365并没有损失太多功能,并且其更新速度也基 ...

  2. 中国版Azure 文件服务

    中国版Azure 文件服务预览版在2015年1月13日已经上线,文件存储使用标准SMB 2.1协议为应用程序提供共享存储. 当我们的虚拟机连接到文件共享后就可以像使用本地共享文件夹一样来读取和写入文件 ...

  3. 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题

    千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...

  4. Bluemix中国版体验(二)

    从上一篇到现在大概有一个多月了.时隔一个月再登录中国版Bluemix,发现界面竟然更新了,现在的风格和国际版已经基本保持一致!这次我们来体验一下Mobile Service.不过mobile serv ...

  5. 自制Azure中国版“加血包”

    Micrsoft Azure中国版的国际出口最近升级为电话线拨号模式,目测为10个用户共享一条56kb的电话线拨号链路.有图有真相: 中国的IT从业者,有三分之一的职业生涯时间是在跟网络斗智斗勇.这点 ...

  6. 简体中国版文档的Markdown语法

    Markdown文件 注意︰这是简体中国版文档的Markdown语法.如果你正在寻找英语版文档.请参阅Markdown︰ Markdown: Syntax. Markdown: Syntax 概述 哲 ...

  7. Bluemix中国版体验(一)

    很高兴终于拿到了中国版Bluemix的账号!中国版的Bluemix是由世纪互联运营的,这也是世纪互联继Microsoft Azure,Office 365之后运营的又一个国际一线大品牌的云服务. 中国 ...

  8. 使用VNET-to-VNET连接Microsoft Azure国际版和中国版

    Microsoft Azure的VNET-to-VNET功能可以实现跨虚拟网络的VPN连接,通过VNET-to-VNET互联的两个虚拟网络可以在同一个订阅下或者隶属不同的订阅,而且可以跨数据中心.这实 ...

  9. 跨云应用部署第一步:使用IPSEC VPN连接AWS中国版和Windows Azure中国版

    随着公有云的普及,越来越多的客户将关键应用迁移到云端.但是事实证明,没有哪家云服务提供商可以提供100%的SLA,无论是例行维护还是意外中断服务,对于客户的关键应用而言,都会受到不同程度的影响.此外, ...

随机推荐

  1. 正确使用c语言中的头文件

    我们在使用c编程的时候经常会遇到头文件,前段时间我自己做了个小项目的时候,也遇到了关于头文件的问题. 预处理器发现#include 指令后,就会寻找后跟的文件名并把这个文件包含的内容包含到当前文件中. ...

  2. STL 优先队列

    STL 栈,队列,优先队列用法 分类: Learning C++2013-11-15 00:52 843人阅读 评论(2) 收藏 举报 c++栈队列优先队列STL STL 中栈的使用方法(stack) ...

  3. [Hadoop源码解读](五)MapReduce篇之Writable相关类

    前面讲了InputFormat,就顺便讲一下Writable的东西吧,本来应当是放在HDFS中的. 当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流,反之当要将接收到或从磁盘读取的字节 ...

  4. 如何组建理想SOA团队

    趋向采用 SOA 软件开发领域的主要发展趋势是从传统软件体系结构过渡到面向服务的体系结构 (SOA).在传统软件体系结构中,将项目视为单个新应用程序的交付.在SOA中,将项目视为集成服务的交付——一些 ...

  5. [TOP]疯狂的投资

    [TOP]疯狂的投资 这是罗辑思维一期<疯狂的投资>的节目笔记,这期主要是通过菲尔德铺设横跨大西洋的电缆的故事讲了创业者需要的特质和<二十一世纪资本论>的一个观念:随着自由市场 ...

  6. 【转】小解DCT与DFT

    这学期当本科生数字图像处理的助教老师,为使学生更好地理解DCF和DFT之间的关系给出三题,大家可以思考一下,看一下自己对这些最简单的变换是否真正理解. 1.求解序列f(n)=[2,3,3,4,4,3, ...

  7. Apriori算法实例----Weka,R, Using Weka in my javacode

    学习数据挖掘工具中,下面使用4种工具来对同一个数据集进行研究. 数据描述:下面这些数据是15个同学选修课程情况,在课程大纲中共有10门课程供学生选择,下面给出具体的选课情况,以ARFF数据文件保存,名 ...

  8. MTRR内存类型范围寄存器

    1.MTRR的概念 内存类型范围寄存器(MTRRs,翻译过来真别扭,后面都以MTRR直接来说了)提供了一种机制,这种机制其实就是确定在系统内存中物理一段内存的类型.这个类型其实是正对CPU来说的,见图 ...

  9. SharePoint 2010 修改默认列表样式

    SharePoint 2010  修改默认列表样式 :可以通过修改 下面两个全局配置进行修改.(未完..更新中...)  C:\Program Files\Common Files\Microsoft ...

  10. iOS 设置connect超时

    NSLock *theLock; [theLock lock]; int fd, error; struct sockaddr_in addr; ))<) { cout<<" ...