咨询讨论

Raspberry Pi “树莓派 问题与总评

2 3022
树莓派林林总总的所有问题博通,你要摁着多少资源自己专属?
做为树莓派ARM核心的Broadcom BCM2835这个芯片是专供树莓派的。这就造成了事实上无法采购这个芯片,用于复制、仿制或定制基于树莓派的产品。
更为残忍的是,BCM2835的手册(Datasheet)也不向公众提供,必须由合作商签订保密协议(NDA)才能获得。这样就造成了就算得到树莓派的电路图(基金会开放电路图倒是真的),也不能完全理解图中涉及BCM2835的部分。
并且博通对其VideoCore IV显示核心的驱动程序,也采取了和很多驱动程序一致的闭源发布。这就造成了依赖树莓派显示核心的程序,很难迁移到使用其他显示核心(例如Mali)的ARM SoC上:

这两点都是在树莓派的热销压力之下才有所改变。博通对BCM2835,放出了一个部分的Datasheet描述了芯片的外部总线(但仍没有放全部的Datasheet)。而VideoCore IV显示核心的文档和相关代码,则一直让所有的开发者整整等待了两年,直到2014年的2月份才对外提供。而后还要树莓派基金会去填坑,举办竞赛号召爱好者去把这部分资料应用到树莓派上。
但根本的一点到现在仍然没有变:树莓派仍然难以仿制和改进,不可能对树莓派去实际执行开源项目的fork-republish机制。为了增强树莓派的定制性,树莓派基金会最近推出了一款笔记本内存大小的核心板,只包含BCM2835和内存,任何对外接口允许自己连接。——但在硬件设计没有变化的情况下,这种努力不过是一种临时手段(workaround),改变不了树莓派无法遵循开源模式的硬伤。
所以SUSE中国的一位资深工程师(恕我忘记尊姓大名)在2013年的一次线下聚会中,甚至不将Raspberry Pi列入开源硬件之列。这不是没有道理的——不能复制,不能改进,开源软件只运行在皮毛的层次上,这样和传统闭源的PC,在概念上又有什么区别?
更有极端的说法直接称博通为“开源的敌人”——其实认真审视一下,这个说法虽然激烈,但恐怕也并不特别过分。基金会,你挖了多少坑没填?
树莓派基金会真的很努力,也促成了很多和树莓派有关的开发项目。但不得不说的是,树莓派至今为止,仍然有很大一部分工作仍然“挖坑不填”。
用最大的一个坑举例子:DSI显示接口DSI是连接液晶裸屏(或模块)的一个硬件接口,从使用情况来看极不流行,很难买到DSI接口的屏幕。在实用价值上,远远落后于常用于液晶电视、笔记本屏幕的LVDS接口。树莓派采用DSI也许有BCM2835硬件设计上的理由。但两年时间过去了,树莓派仍然没有拿出使用DSI接口实际驱动出一个屏幕的例子。
……这样问题就很简单了:那当初设计这个DSI口是做什么的?!

▲ 基金会,你为什么让所有树莓派的DSI接口一直吃灰?(图片协议:CC-BY-SA)软硬件设计,还要弄出多少缺陷才算完?
树莓派的软硬件设计真的不怎么好,这一段要重点说。举3个例子。怎么给电都不够的5V电源
树莓派使用单一5V供电,电源本身并不做任何处理,所有5V的设备直接取电,只有CPU的供电用数个低压差(LDO)单独提供。[注B]这本来是一种很简单、显然、低成本的无管理电源设计。但偏偏树莓派在电源上串联了一个自恢复保险(PTC)进去,试图防止出现短路、过流等故障。
PTC是一种简单的过流保护器件,过流时发热造成内阻上升抵抗过流,异常解除后可以冷却让内阻下降,恢复设备工作。但PTC简单就有简单的问题:PTC自身的电阻不低(实测很可能有0.2Ω以上),串接在电源上容易把电源电压拉下0.3-0.5V左右的程度。——对5V这个低压来说,电源跌落这个程度就很成问题了,极易造成依赖5V的USB等外设欠压异常。
事实上如果供电电压是5.2-5.4等比5V整数稍微高点的规格,那么树莓派得到的电压还可能在5V上。如果电源老老实实提供5V,那树莓派就麻烦了。这也就是许多人误解“树莓派对电源要求高”的原因——实际上要求高不是性能需要,只是一个设计错误使然。

▲ 一颗自作聪明的保险,搞坏了所有的事情。塞车又缺电的USB接口
BCM2835处理器实际上只有1个USB主接口。这个接口也是树莓派唯一的高速数据通道。
常见的树莓派B型,虽然有两个USB和一个以太网接口,但这都是板载的LAN9512芯片的杰作[注C]。这三个接口实际上只是共享1个USB主端口的480Mbps带宽。所以树莓派的USB总线塞车,是每一个树莓派玩家心中的痛。只要图像采集、文件传输等有数据吞吐的任务稍微要求高一点,树莓派就必然的缴枪投降。
另外树莓派对USB的供电,只是把+5V接了上去,根本没有为USB设备上电时的突波做去耦设计[注D]。这样造成的恶果是哪怕USB设备的工作电流本身不大,其插入时的瞬时大电流也会导致CPU供电不足而重启。这个问题不挑设备,社区使用U盘、USB无线网卡等实测都出现过。
(所以对树莓派而言,用一个有电源输入的USB HUB,把USB的供电单独解决掉是必须的。社区里每天都在讨论“有源HUB怎么选”的问题。)
这又是一个弱智的毛病。……基金会你们做出样板之后,难道不连接各种各样的USB设备测试一下吗?

▲ USB的热插拔本来应该无条件做到。为什么树莓派要我们自己花钱补充这种破烂才行?让新手与老手一起头痛的NOOBS
树莓派的启动需要一个FAT32的Boot分区,和一个(或数个)Ext4的Linux主分区。这也是Linux系统的典型需求。树莓派原来的系统安装方式,是简单的用烧写工具,把.img系统镜像绕过分区表直接写盘。写好盘后分区表结构也就自动建立好了。但偏偏基金会认为这样还不够,“我们要直接把文件拷进SD卡里就能用”!于是基金会推出了官方的启动前运行环境“NOOBS”。(noob /nu:b/ n. 菜鸟、新手)
使用NOOBS需要把NOOBS软件包(内置数个系统的大压缩包)拷入SD卡。NOOBS允许用户选择一个系统,利用SD卡的剩余空间,在树莓派上现场解压并建立分区结构。NOOBS不是真正的系统多启动工具,一次只能在SD卡的剩余空间里装一个系统,不过倒可以随时把系统推掉换成别的。
NOOBS其实只是带来了许多的麻烦:
  • 拷贝NOOBS意味着要同时把多个系统拷入SD卡,复制时间浪费极其严重,对于Class4的低速SD卡尤其难以忍耐。
  • NOOBS带着好几个系统镜像常驻SD卡,浪费空间。4GB及以下卡实际上根本无法使用NOOBS。
  • 常驻就意味着陈旧。SD卡上NOOBS带的系统镜像,难以得到最新的更新。
  • 不能真正的多启动,那为什么还要在SD卡上常驻这么多系统?
  • 如果系统真要推掉重来,为什么不用电脑?

……所以这主意到底谁想出来的?!刷卡操作也许确实需要给新手些微的指导,但提出NOOBS这种一堆麻烦替代1个麻烦的方案,到底是一种什么样的做事哲学啊?!

▲ 系统刷写本该是计算机的任务。NOOBS如此越俎代庖究竟为何?
本文转自沙渺的SgF开源硬件专题区
期待香蕉派能好好解决这些问题,早日推出稳定版。

jerry51  
不知道,我只知道这是一个很老的帖子了,哈哈哈


https://www.allicdata.com/products.html

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

本版积分规则