很多网友在问:为什么中国版的装完驱动插上板子没有显示端口号和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. CreateObject("Wscript.Shell")用法

    WScript.Shell是WshShell对象的ProgID,创建WshShell对象可以运行程序.操作注册表.创建快捷方式.访问系统文件夹.管理环境变量. 该对象有一个run方法. Run 方法创 ...

  2. Android 内核初识(8)Binder

    简介 Binder是Android系统提供的一种IPC(进程间通信)机制.由于Android是基于Linux内核的,因此,除了Binder外,还存在其他的IPC机制,例如管道和socket等.Bind ...

  3. Hibernate一级缓存、二级缓存

    缓存就是把以前从数据库中查询出来和使用过的对象保存在内存中,准确说就是一个数据结构中,这个数据结构通常是或类似HashMap,当以后要使用某个对象时,先查询缓存中是否有这个对象,如果有则使用缓存中的对 ...

  4. openwrt开发

    之前写过一篇日志,是关于如何搭建自己的OpenWRT开发环境.经过最近一段时间的开发学习和实践,对OpenWRT环境的开发有了一定的了解.在这里将我的开发心得做个整理. 1.搭建开发环境 首先,我们需 ...

  5. MapReduce 模式、算法和用例(MapReduce Patterns, Algorithms, and Use Cases)

    在新文章“MapReduce模式.算法和用例”中,Ilya Katsov提供了一个系统化的综述,阐述了能够应用MapReduce框架解决的问题. 文章开始描述了一个非常简单的.作为通用的并行计算框架的 ...

  6. iconv装换文件编码格式

    最近在mac上编译xml文本文件的时候用vim打开文件汉字总是显示乱码,修改.vimrc,修改iterm编码格式各种方法都使用遍了.最后通过iconv工具将原来的文件编码格式直接转为UTF-8解决掉. ...

  7. 【转】Beyond Compare for Mac中文版震撼来袭!-- 不错

    原文网址:http://mt.sohu.com/20160329/n442685522.shtml Beyond Compare想必大家都知道,它是一个专业级的一个文件对比工具,由于工作原因,我们会经 ...

  8. HDU 2682

    思路:由于题目对能相连的点有限制,必须将这些点处理,能相连的点合并到一个集合中,最后查看是否所有点都在一个集合里,若都在说明是一个连通图,存在最小生成树,否则图不连通,不存在最小花费. #includ ...

  9. PV,UV,IP

    参加了DTCC归来之后,各大电商技术大牛都会自豪的分享一下自己公司网站的PV,流量等等.当时也是一知半解,回来之后赶紧查了查,也算是扫扫盲. 以下摘自网络中,自己稍稍做了整理,对于PV,流量和带宽的理 ...

  10. 【原】1.1RDD源码解读(二)

    (6)transformation 操作,通过外在的不同RDD表现形式来达到内部数据的处理过程.这类操作并不会触发作业的执行,也常被称为lazy操作. 大部分操作会生成并返回一个新的RDD,例sort ...