普通视图

如何让MFC的Dialog类型窗口在高度超出屏幕高度时出现比例合适的垂直滚动条

2025年8月20日 22:31

客户提了个需求:因为他们的显示器(32吋)大,所以经常把缩放比设成125%或者150%,希望我们的APP在这两个缩放比下能够正常显示。
但是我们干活用的只是普通的24吋,设成150%之后高度就出溢出屏幕了,这就需要加滚动条。而工作这个东西,到了二鬼子领导那里就会加码,变成100%-225%都得能正常运行,并且因为增加的高度与原来的高度相比没多太多,所以要大滑块,不要分的细碎的小滑块。
这个功能本身不难。通常的做法是取屏幕放大后的窗口新高度,然后减去桌面有效视窗高度,得到的差值除以一个系数,然后用SetScrollRange的第三个数给传进去。然后重写OnVScroll方法,从系数反推滑块位置。
但是,这样得到的是小滑块,而且最后一屏的空白部分也不准确,往往会出现大片空白。

研究了好几天,终于找到了还算不错的方案。在此分享一下。
注意,我只写了垂直滚动条,因为我们的窗体就是瘦长型,即使增加到225%也没超出屏幕宽。给公家干活的一个要务就是不干多余的事,所以要添加水平滚动条的自己酌情修改,我这里就不提供了。

开始。

第一步,在OnInitDialog()中,增加垂直滚动条

如需要增加则对垂直滚动条进行初始化。初始化时,不使用简化版的SetScrollRange(),而改用SetScrollInfo()。利用结构体SCROLLINFO的nPage和nMax配合实现大滑块。这里的逻辑是:nPage与nMax的比值也就是滑块占总高度的比值,比值越接近一,滑块越大。nPage和nMax都是相对值,只要二者单位统一即可。方便起见直接使用真实值。
一个很坑的点是nMax不能用窗口Rect的高,而要取最下边控件的下沿,原因未知。
下面是代码:

BOOL CMFCAppDemoDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

        //取窗口位置
	CRect rcThis;
	GetWindowRect(&rcThis);

        //取最下面控件的位置,如果有动态创建的控件,可以遍历取得。
	CRect rcLastButton;
	GetDlgItem(IDCANCEL)->GetWindowRect(rcLastButton);

        //取放大倍数,96.0是100%时候的DPI
	float fScale = static_cast<float>(GetDpiForWindow(m_hWnd)) / 96.0;
        
        //取桌面工作区大小
	CRect rcScreen;
	::SystemParametersInfo(SPI_GETWORKAREA, 0, &rcScreen, 0);

        //对话框的工作区域理想高度:比最后一个控件多一丢丢。
	int nHeightImage = rcLastButton.bottom + rcLastButton.Height() * fScale;

        //如果想象高度比工作区域高,那么将窗口高度设为与工作区等高。
	if (nHeightImage > rcScreen.Height())
	{
		m_blHasVScrollBar = true; //成员变量,用于标记是否有滚动条
		rcThis.bottom = rcThis.top + rcScreen.Height();
		this->MoveWindow(&rcThis, TRUE); //修改Dialog自身高度
		SCROLLINFO si{};
		si.cbSize = sizeof SCROLLINFO;
		si.fMask = SIF_RANGE | SIF_PAGE | SIF_PAGE;
		si.nPage = rcScreen.Height(); //Windows桌面可利用高度作为Page高
		si.nMax = nHeightImage; //窗口高度最大值。
		SetScrollInfo(SB_VERT, &si, TRUE); //激活滚动条
	}
        //否则没用滚动条
	else
	{
		SetScrollRange(SB_VERT, 0, 0, FALSE);
	}

	return TRUE; 
}

第二步,重写WM_VSCROLL的消息响应函数OnVScroll()

没有难点。只要每个消息处理时,nPage与nMax的比例关系一致即可。

BEGIN_MESSAGE_MAP(CMFCAppDemoDlg, CDialogEx)
	ON_WM_VSCROLL()
END_MESSAGE_MAP()

void CMFCAppDemoDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	CDialogEx::OnVScroll(nSBCode, nPos, pScrollBar);
        //取之前的滚动条信息
	SCROLLINFO si{};
	GetScrollInfo(SB_VERT, &si, SIF_ALL);

        //滚动条上一次的位置
	int nCurPos = si.nPos;
	const int FACTOR(100);
	switch (nSBCode)
	{
	case SB_LINEUP:          //Scroll one line up
		nCurPos -= (si.nPage / 50); //点击一次箭头,或者按一次↑,移动页面的1/50,注意方向
		break;
	case SB_LINEDOWN:           //Scroll one line down
		nCurPos += (si.nPage / 50); //注意方向
		break;
	case SB_PAGEUP:            //Scroll one page up
		nCurPos -= (si.nPage / 50* 20); //PgUp键的处理。所有的响应要统一单位标准即可。注意方向
		break;
	case SB_PAGEDOWN:        //Scroll one page down        
		nCurPos += (si.nPage / 50* 20); //注意方向
		break;
	case SB_THUMBPOSITION:  //Scroll to the absolute position. The current position is provided in nPos
		nCurPos = nPos; //从缩略图直接确认位置
		break;
	case SB_THUMBTRACK:     //Drag scroll box to specified position. The current position is provided in nPos
		nCurPos = nPos; //从滚动条直接确认位置
		break;
	case SB_ENDSCROLL:
		break;
	default:
		break;
	}
        //确认没有超出最小值和最大值范围。最小值一般是0,最大值是nMax - nPage。
	nCurPos = max(si.nMin, min(nCurPos, si.nMax - static_cast<int>(si.nPage)));
        //当位置移动时,滚动窗口内容
	if (nCurPos != si.nPos)
	{
		int nDelta = si.nPos - nCurPos; //注意方向,原始值减目标值
		si.nPos = nCurPos;
		si.fMask = SIF_POS;
		SetScrollInfo(SB_VERT, &si, TRUE); //设滚动条
		ScrollWindow(0, nDelta); //滚动窗口
		UpdateWindow();
	}
}

第三步,重写WM_MOUSEWHEEL的消息响应函数OnMouseWheel()

同样没有难点,只是鼠标滚动一下会转化成多次向上或向下的消息。

BEGIN_MESSAGE_MAP(CMFCAppDemoDlg, CDialogEx)
	ON_WM_MOUSEWHEEL()
END_MESSAGE_MAP()
BOOL CMFCAppDemoDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
        //确认滚动条有效
	if (!m_blHasVScrollBar) {
		return CDialogEx::OnMouseWheel(nFlags, zDelta, pt);
	}
	CONST INT WHEEL_SCROLL_LINES(3);
	UINT8 ucDirection(SB_LINEUP);
        //根据zDelta方向确定消息重量
	if (zDelta < 0) {
		ucDirection = SB_LINEDOWN;
	}
        //把鼠标滚动值换算成N个箭头消息并发送。次数是没有方向的。
	UINT unLines = (abs(zDelta) * WHEEL_SCROLL_LINES) / WHEEL_DELTA;
	while (unLines--)
	{
		SendMessage(WM_VSCROLL, MAKEWPARAM(ucDirection, 0), 0);
	}
	return TRUE;
}

总之,最难的其实还是开头。nPage与nMax虽然设什么数都可以,但只有用真实值才是最符合拖动规律的。

剑桥科技园有微软(研究院)、AMD和树莓派

[caption id="attachment_70506" align="alignnone" width="1946"]偶尔换个办公室上上班其实挺好的,新鲜感。 偶尔换个办公室上上班其实挺好的,新鲜感。[/caption] 微软在剑桥有两个办公室:一个在火车站对面(21 Station Road),旁边就是 Amazon/亚马逊 的办公楼,苹果的新大楼也刚搬到隔壁。另一个是微软研究院在剑桥科技园的办公室,位于 198 号。这个办公室应该是微软当年收购 MetaSwitch 后沿用下来的,所以顺理成章地在科技园也有了办公室,后来火车站的一些团队就搬过去了。 我平时一周有三天会去火车站旁的办公室上班。前几周因为团队协作需要,我有一天去了科技园的办公室。中午吃完饭随便逛了逛,结果意外发现 AMD 和树莓派的办公室就在隔壁。

剑桥科技园简介与历史

Cambridge Science Park(剑桥科技园)是英国历史最悠久、最具代表性的科技园区之一,也是英国 “硅沼”(Silicon Fen)体系的重要组成部分。园区集合了从初创公司到国际科技巨头的各种高科技公司,因此像 Microsoft(研究院/研发部门)、AMD、Raspberry Pi 在这里设立办公室/总部,是非常典型也有代表性的例子。剑桥科技院还有其它有名的公司,比如博通、高通,还有华为研究院等。 Cambridge Science Park 由剑桥三一学院(Trinity College)于 1970 年发起创建,可视为英国最早的科学园区之一。园区旨在把大学的科研成果与产业结合,提供从办公到实验室的综合设施,支持初创到成熟企业的发展。 从 1970s 的第一批入驻公司(例如 1973 年的 Laser‑Scan),到 1990s、2000s 的不断扩张,直至今天,Cambridge Science Park 已成为吸引全球科技公司、研究机构与创新企业的重要聚落,园区内配套设施完善,并不断更新以满足现代科研与办公的需求。

微软研究院

早在 1997 年,微软就在英国剑桥设立其海外研究机构之一(Microsoft Research)。该研究院的建立目的之一就是借助剑桥大学丰富的学术资源与人才储备,开展基础研究、跨学科合作与前瞻性技术探索。 近年来,Microsoft Cambridge 承担了包括云系统、AI 与工程系统等方向的研发工作,其在当地的存在不仅带来高端研究项目,也为本地人才提供了与国际科研接轨的机会。

AMD

AMD 在剑桥的团队历史可追溯至本地早期的半导体与网络公司(例如 Solarflare 等前身团队)。随着时间发展,AMD 将剑桥作为其英国重要的工程与研究中心之一,负责包括网络、嵌入式系统、数据中心与高性能计算相关的工程工作。 在近几年(含收购与扩展之后),AMD 在 Cambridge Science Park 内扩建或迁入了更现代的办公与实验设施,强化了园区在半导体与硬件设计领域的话语权。

Raspberry Pi(树莓派)

树莓派Raspberry Pi 的总部/办公位于剑桥科技园内。作为以普及计算教育为使命的公司,Raspberry Pi 在此的存在既代表了开源、教育与产品化创新,也显示了园区对不同类型科技企业的包容性。 随着产品线与教育项目的扩展,Raspberry Pi 在园区内的办公规模也相应增长,这使其能够更紧密地与本地的学术与产业生态合作。 [caption id="attachment_70488" align="alignnone" width="2048"]剑桥科技园入口,不是很起眼 剑桥科技园入口,不是很起眼[/caption] 2025 年一份主餐售价是 5.1 英镑,这是在 2024 年(或 2023 年)涨价后的价格;涨价前只要 4.1 英镑。午餐主餐通常有两种选择,其中一种是素食选项。 [caption id="attachment_70502" align="alignnone" width="1536"]剑桥科技院微软没有Proper的厨房,做不了饭,据说午饭都是定量从火车站这个火车站送过去的。 剑桥科技院微软没有Proper的厨房,做不了饭,据说午饭都是定量从火车站这个火车站送过去的。[/caption] [caption id="attachment_70501" align="alignnone" width="2048"]每一层都有茶水间/厨房,比火车站的要大/宽敞一些。 每一层都有茶水间/厨房,比火车站的要大/宽敞一些。[/caption] [caption id="attachment_70500" align="alignnone" width="2048"]每天都要喝咖啡续命 每天都要喝咖啡续命[/caption] [caption id="attachment_70499" align="alignnone" width="864"]办公室室内的假绿色植物。 办公室室内的假绿色植物。[/caption] [caption id="attachment_70498" align="alignnone" width="2048"]才知道树莓派的总部在剑桥。 才知道树莓派的总部在剑桥。[/caption] [caption id="attachment_70497" align="alignnone" width="864"]剑桥科技院微软/AMD/树莓派是邻居。 剑桥科技院微软/AMD/树莓派是邻居。[/caption] [caption id="attachment_70496" align="alignnone" width="864"]剑桥科技院微软/AMD/树莓派是邻居。 剑桥科技院微软/AMD/树莓派是邻居。[/caption] [caption id="attachment_70495" align="alignnone" width="864"]科技园的地方都挺大/停车场位置很多/不用预订 科技园的地方都挺大/停车场位置很多/不用预订[/caption] [caption id="attachment_70494" align="alignnone" width="2048"]这里的风景很好,远离市中心。 这里的风景很好,远离市中心。[/caption] [caption id="attachment_70493" align="alignnone" width="2048"]AMD的办公楼 AMD的办公楼[/caption] [caption id="attachment_70492" align="alignnone" width="2048"]剑桥科技园风景 剑桥科技园风景[/caption] [caption id="attachment_70491" align="alignnone" width="2048"]这里基本上是开放办公桌/Hot Desk,接上笔记本牛马开始干活了 这里基本上是开放办公桌/Hot Desk,接上笔记本牛马开始干活了[/caption] [caption id="attachment_70490" align="alignnone" width="2048"]牛马准备开会 牛马准备开会[/caption] [caption id="attachment_70489" align="alignnone" width="2048"]微软剑桥办公室内景 微软剑桥办公室内景[/caption] [show_file file="/var/www/wp-post-common/justyy.com/microsoft.php"] 英文:Cambridge Science Park: Microsoft, AMD and Raspberry Pi (Neighbours)

相关文章:

  1. 推荐一款程序员性价比高的机械键盘 KeyChron K8 程序员性价比高的机械键盘 Keychron 我第一款 keychron 键盘是四年前(2020年)买的,当时在AMAZON工作,通过公司经费报销的。当时还问了经理,需要节俭么?因为亚马逊的16条军规中的一条就是节俭/Frugal。当时经理说,只要能提高你的工作效率就行,我也没太敢搞太贵的,最后面只挑了一个60多美元的机械键盘,型号是: Keychron C2 Wired Mechanical Keyboard, RGB Backlight / Gateron Mechanical...
  2. 今天去听了NHS举办的关于男性PSA/前列腺健康的活动/讨论 自从步入40岁之后,我时不时就会收到NHS或家庭医生(GP)的关怀提醒,建议我关注自身健康。毕竟,四十岁以上的男性开始容易被一些健康问题困扰,比如前列腺(PSA)指数、尿酸水平、血糖等。 40岁以上男性的NHS健康体验 今天刚好有些空闲,于是抽时间参加了NHS组织的前列腺健康活动。这项服务是以Drop-in形式进行的,中午2点到6点之间可以直接去GP诊所,不需要预约。医生会帮你测量血压、身高和体重,计算BMI指数。 接待我的是一位中年女医生,虽然上了年纪,但非常温柔细心。她给我连续测了三次低压血压,分别是89、91、87。测完前两次血压,她建议我先去称体重——我的身高是174cm,体重是81kg,BMI为26,略高了一点。实际上,我每天晚上睡前称重时体重通常还会比这个多2-3公斤。 随后GP帮我安排了下周的进一步体检,可能还需要抽血。她提到将评估我未来十年患癌风险的概率,如果风险较高,将会安排后续的观察或预防措施。 关于前列腺和PSA的知识分享 当天晚上6点,NHS还组织了一场线下答疑会,由一位男医生主讲(包括我有三个男性参加,并没有想象中的多),介绍关于前列腺健康和PSA检测的知识。由于公司有会议,我晚到半小时,但仍收获不少重要信息。 现场有一位负责组织的护士发了两本小册子,一本是关于PSA的健康指南,另一本则是介绍剑桥当地可参与的健康活动,比如瑜伽、足球等。 医生解释说,PSA检测并非百分百准确,可能出现假阳性(PSA高但无癌)或假阴性(PSA正常但有问题)的情况。PSA升高不一定意味着患癌,PSA正常也不能完全排除风险。 他建议男性朋友们要保持规律运动,减少烟酒摄入,有助于降低患前列腺癌的风险。另外,规律的性生活和射精也被证实有一定保护作用。 大家要更加关爱自己的健康。前列腺癌是英国男性第二常见的癌症,每年有超过5万人被诊断,死亡人数超过1万。虽然50岁以下患病概率较低,但随着年龄增长,风险会显著上升。对于50至69岁的男性,建议每年进行筛查,包括PSA抽血、肛门指检,必要时还需做活检(Biopsy,听说这个比较不舒服)以及MRI核磁共振检查。 我自己的PSA值常年略高,医生说这有可能是前列腺良性增大。每个人的情况都不一样,仍需持续关注和定期检查。 本文一共 848 个汉字,...
  3. ChatGPT 使用 Promise.All 重构/重写代码(并行发送请求) 在我的一个项目中, 我有以下代码(Node/Javascript), 它(顺序)调用了一些 API. 这些 HTTPS 请求其实是可以并行完成的, 因为它们相互独立. 然后结果会被聚合到一个数组中. 我知道可以用Promise.all来把这些请求并行化, 我就问了ChatGPT怎么弄, 看看它是否能理解并给出正确的代码: 我先用英文问 ChatGPT-3.5: Rewrite...
  4. 倩女幽魂-人间情, 再现经典人鬼CP 这个五一, 由腾讯出品的《倩女幽魂-人间情》 电影上映了(听说耗费巨资, 拍了3年, 1000多个特效镜头, 后期制作近一年). 虽然豆瓣上评分才5分, 但是当我看了预告片还是忍不住看完了. 预告片: 或者 Youtube: https://www.youtube.com/watch?v=iBXEjHG6O0c 总得来说, 可圈可点, 因为87版王祖贤张国容的那版堪称经典,...
  5. 怎么样安全的清空主机服务器空间? 很多朋友都有自己的VPS主机, 如果想取消销毁主机的时候, 可以采用以下二种方法来销毁主机. 虽然很多云主机可以让你很方便的一键销毁主机, 但是实际上你不清楚你的宝贵数据有没有可能被找回, 理论上可能, 这种可能性很小很小. 因为我们并不清楚云主机商在销毁的时候有没有真正去把硬盘的数据清空了. 像我有点强迫症的, 我就是不希望我的一些数据(比如啥爱情动作片)泄露了. rm -fr / LINUX上的这个命令: #...
  6. 剑桥科珀斯时钟 (Cambridge Corpus Clock) – 圣体钟 剑桥有一个特别的景点,名气很大,叫做“圣体钟”,黑色的机械蝗虫,号称“时间的吞噬者”。它沿着色不色的大圆盘边爬行,表盘也跟着一起转动。蝗虫在每分钟的开始会张开嘴,然后在最后一秒把嘴合上。寓意着一分钟的时间被吞噬掉了。它以一种恐怖的方式,提醒人们:在时间面前,没有什么是不朽的。圣体钟的斜对面就是剑桥的国王学院,这里是剑桥大学的市中心。 圣体钟位于剑桥大学国王学院对面,是剑桥的标志性景点。它由200名工程师和工匠耗时5年铸造,2008年由霍金揭幕。钟面是24克拉镀金不锈钢圆盘,没有指针数字,靠蓝色LED灯显示时间。一只名为“时间吞噬者”的蚱蜢沿钟面爬行,寓意时间流逝 ,整点还会有铁链敲棺声,警醒人们珍惜时光。 你听说剑桥大学那个超酷的圣体钟码?就在圣体学院外面,这个钟可不是一个普通的钟表,它有个越大的金色蚱蜢趴在钟面上,看起来像在“吃时间”,感觉时间一秒一秒被它吞掉,挺有意思的。钟面是蓝色的,没有指针,靠LED灯显示时间,科技感满满。2008年才揭幕,现在已经成了剑桥的地标之一,很多人专门跑去看它,拍照打卡。如果你去剑桥,千万别错过这个“时间吞噬者”,真的挺震撼的! The Corpus Clock is located opposite King’s College at the University...
  7. 区块链中Layer 1和Layer 2协议的简介 Layer 1 和 Layer 2 是用来描述区块链技术中不同层次或层的术语,每个层都在维护和扩展区块链网络方面有其独特的作用和特点。 Steem的底层协议是C++写的,也就是steemd,见证人(也就是STEEM上的矿工)在自己的节点服务器上跑这个软件,共同运行这个区块链。steemd上支持一个custom_json操作,也就是可以调用API向区块链上写任何数据,这样的话,DApp分布式应用程序就可以在STEEM区块链上存储数据了,而在custom_json上的协议就是Layer 2/第二层。 Layer 1:基础协议 Layer 1 指的是区块链网络的基础层。它包括定义网络规则和操作的核心区块链技术。Layer 1的关键特性和组成部分包括: 共识机制...
  8. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...

废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive)

“用树莓派打造家庭 2TB 网络硬盘” “树莓派 + WD 硬盘:轻松为孩子的 Mac 提供共享存储” “家庭文件共享不再难:自制树莓派网络硬盘” “让树莓派变身 2TB 家庭共享硬盘” “为孩子的 Mac 节省空间:树莓派网络硬盘实战”
前两年,我给两个孩子各买了一台 MacBook Pro。弟弟的那台当时大概六百多买的,SSD 只有 256GB,所以经常硬盘爆满,只能不断删除下载的文件、dmg 安装包之类的。用了一段时间后,MBP 的 ~/Caches 目录也会变得很大,虽然可以临时清理,但这只是治标不治本。 我就跟孩子说,你可以把一些文件放到云盘上,比如 OneDrive、Google Drive,或者我给你接个 USB 硬盘挂到电脑上。OneDrive 有“本地不占空间、数据存到云端”的模式,很省地方,但免费空间只有 5GB。Google Drive 免费空间是 15GB,可用于邮件、照片和 Drive 共享。 孩子不太喜欢用 USB 硬盘,一方面得接电源,另一方面得用 Type-C 转 USB 接口,很麻烦,也不想总插着。 我想到家里有树莓派,可以接一个移动硬盘,通过文件共享,把家里几台电脑都挂接成网络硬盘(Map Network Drive)。于是,我找了几个抽屉,找到一个 2TB 的西部数据(WD)硬盘,3.5 寸的,需要外接硬盘盒,正好前几个月折腾数据时买了一个。 之前挂在HPZ800服务器的D盘。 [caption id="attachment_70022" align="alignnone" width="753"]这个硬盘用了两年多,当时应该是HPZ800服务器的D盘(可以接四个硬盘) 这个硬盘用了两年多,当时应该是HPZ800服务器的D盘(可以接四个硬盘)[/caption]

添加网络硬盘:树莓派通过SAMBA挂接移动硬盘

为了确保硬盘没坏道,我用 CrystalDiskInfo 检查了一下,还让 ChatGPT 帮我看了健康状态——2.3 年通电时间,没有坏道,一切正常。 [caption id="attachment_70028" align="alignnone" width="671"]2TB的西数硬盘还可以再战几年! 2TB的西数硬盘还可以再战几年![/caption]

准备挂接硬盘

第一步,把硬盘接到树莓派上,直接用 USB,但需要额外电源。我找了一个插座,勉强可以在鞋柜里塞下两个插头:一个 3.5 寸硬盘盒和树莓派 4B。 [caption id="attachment_70021" align="alignnone" width="543"]先用df命令看看USB有没有被系统认到。 先用df命令看看USB有没有被系统认到。[/caption] 然后 SSH 登录树莓派,发现硬盘是 NTFS 格式,需要挂载一下:
mkdir /mnt/usb
mount -t ntfs-3g /dev/sdb1 /mnt/usb
其中 /mnt/usb 是挂载目标目录,需要先创建。 如果想开机自动挂载,只需在 /etc/fstab 添加一行:
UUID=<ID> /mnt/usb ntfs-3g defaults,uid=1000,gid=1000,umask=0000,nofail,x-systemd.device-timeout=10 0 0
<ID> 是硬盘的 UUID,可以通过 lsblk -f 查到。

SAMBA网络硬盘

文件共享最简单的方法是安装 Samba:
sudo apt install -y samba
安装完成后,编辑 /etc/samba/smb.conf 添加以下内容:
[usb2share]
   path = /mnt/usb
   browseable = yes
   writable = yes
   guest ok = no
   create mask = 0777
   directory mask = 0777
   valid users = pi
valid users 可以写多个用户,用空格分隔,也可以用 @ 表示群组。用户必须是 Linux 本身存在的账号。 设置 SMB 密码:
sudo smbpasswd -a pi
重启服务:
sudo systemctl restart smbd

添加网络硬盘

在 Windows 上,可以在“此电脑”里右键“添加网络驱动器”,输入地址:
\\192.168.IP地址\usb2share
输入用户名和密码,勾选“记住密码”即可添加网络硬盘,用起来跟本地硬盘差不多。 在 Mac 上,可以在 Finder 按 Command + K 添加服务器,同样输入 树莓派的IP地址、用户名和密码即可。 我给两个孩子和老婆各建了一个目录,让他们把数据放到自己的目录下,2TB 够用一段时间了。 有了这个网络硬盘,分享数据也方便多了(电影、照片等),再也不用通过 WeChat、Whatsapp 或 Google Drive 分享——这些方式要么不方便查找历史文件,要么照片会被压缩。 真好,一下子又让树莓派多了一个用途,不再是积灰的机器了。 [caption id="attachment_70020" align="alignnone" width="864"]目测还有空间,还可以再加一个树莓派/硬盘等。 目测还有空间,还可以再加一个树莓派/硬盘等。[/caption] [caption id="attachment_70027" align="alignnone" width="2048"]把硬盘塞到门口的鞋柜里,电线好乱,还好门一关,媳妇看不见。 把硬盘塞到门口的鞋柜里,电线好乱,还好门一关,媳妇看不见。[/caption] [caption id="attachment_70026" align="alignnone" width="456"]第一次连接需要用户名/密码 第一次连接需要用户名/密码[/caption] [caption id="attachment_70025" align="alignnone" width="1028"]网络硬盘成功的成了本地资源的一部分。 网络硬盘成功的成了本地资源的一部分。[/caption] [caption id="attachment_70024" align="alignnone" width="377"]可以像本地硬盘一下查看属性:使用空间/剩余空间等。 可以像本地硬盘一下查看属性:使用空间/剩余空间等。[/caption] [caption id="attachment_70023" align="alignnone" width="628"]输入IP地址即可访问网络硬盘。选择要挂接的盘符。一般网络硬盘都是从Z往前用。 输入IP地址即可访问网络硬盘。选择要挂接的盘符。一般网络硬盘都是从Z往前用。[/caption] 英文:Found a 2TB Old Hard Drive - Still Young and Healthy [show_file file="/var/www/wp-post-common/justyy.com/raspberrypi.php"]

相关文章:

  1. 倩女幽魂-人间情, 再现经典人鬼CP 这个五一, 由腾讯出品的《倩女幽魂-人间情》 电影上映了(听说耗费巨资, 拍了3年, 1000多个特效镜头, 后期制作近一年). 虽然豆瓣上评分才5分, 但是当我看了预告片还是忍不住看完了. 预告片: 或者 Youtube: https://www.youtube.com/watch?v=iBXEjHG6O0c 总得来说, 可圈可点, 因为87版王祖贤张国容的那版堪称经典,...
  2. 最后一天在谢大工作 2013年10月,我开始在谢大,也就是 University of Sheffield 工作. 这是个两年的合同, 是在一个欧盟项目下,公司暂时把我借调给大学.我的工作标题 是 Marie Curie Experienced Researcher 简单来说也就是研究员,也就是相当于国内说的 博士后(不是学位,只是份工作). 两年,...
  3. 第一次私校家长会: 原来家长比孩子还卷 前几天参加了娃的第一次家长会,和几位家长聊下来,真是个个都很厉害。不光孩子们卷,家长也一样卷,一眼望去基本都是 Dr/博士。娃还调侃我一句:“这有什么的,你不也是 Dr 吗?” 我心里默默想:还好没写学校名字,不然我这野鸡大学的头衔真拿不出手 😂。 私校里真是人才济济,乐器过 8 级的太常见了,卷得不得了。我还问过娃,是想当 big fish in a small pond...
  4. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  5. Linux 下的 figlet 命令 Linux 下有一个好玩的命令: figlet 这个命令是把一些信息用大的”字体”打印出来. 比如, 你可以通过管道将最后的结果用 figlet 显示出来.可以通过 apt-get install figlet(Ubuntu) 或者 sudo yum install...
  6. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  7. 最好的给CPU降温方法就是通过改BIOS里的CPU风扇速度 家里的HPZ800服务器啥都好, 就是太吵. 之前显卡温度过高(可能是积灰的缘故)拿着电风扇对着机箱吹, 就更吵了. 最近我发现CPU温度也偏高, 因为一旦跑一些程序, CPU利用率上来了, CPU自动调节风扇就特别响, 像飞机起飞的. 而且温度也很容易升到80多度. 我查了一下, 因特志强X5650系列最高工作温度(健康温度)是81点3度. 想着不能就这样放任它不管, 于是想到了一招: 重启F10进BIOS设置,...
  8. 时隔两年, 重新教媳妇编程, 不过她好像全忘光了 我上一次教我媳妇编程,大概是两年多前了。后来因为工作太忙,再加上一些其它原因,就停下来了。其实她对编程也不是很感兴趣,反倒更喜欢用 Excel,因为她工作中经常会用到。 上周刚好有点空闲时间,我又教她写了一个反转链表的题目。这个题我前阵子刚教过我儿子,觉得既适合用来面试,也很适合用作编程启蒙。 不过整个过程下来,她一直显得很迷茫。我也不确定是不是我讲得不好。还记得以前有网友留言调侃:“课讲得很一般,不过媳妇还挺好看的。” 说到底,编程不能只停留在理论层面。如果只是单方面学习、平时又缺乏实践的话,不仅学得不深入,而且很容易就忘了。学编程最好的方法就是敲代码。 我挺喜欢“输出型”的事情,像教娃、教媳妇这种,既能复盘知识,又特别解压。之前有网友留言:“你能教媳妇编程还不被她一顿骂,已经很成功了,这可是站在作死边缘反复横跳啊。” 网友说:“难度太大了 赖总 可以换换思路 教教好玩的 比如说图形化编程 或者ai做游戏 或者ai做视频 音乐啥的 女生喜欢这些...

尝试把树莓派1和小米盒子1改造成游戏机,但是失败了

2025年10月18日 14:28

本文大概只是想讲讲我手中这块树莓派1B的使用经历。小米盒子1只是附带。


我玩树莓派那些事

我2013年的时候买了一块树莓派1B的板子。那时候我只有一台2007年买的奔腾T2130的笔记本,跑虚拟机比较吃力,而且由于是定制显卡所以Linux装上后显卡驱动不起来,这些问题导致没法在家(北京的出租房)用Linux。想要用Linux就只能在公司用公司的服务器。而且由于公司的系统是一个高度魔改的CentOS,公司改了相当大量的内核代码并且安装了大量跨版本的依赖包,只能用来学习Linux基础,嘛毕竟是2004年成立的公司,产品严重依赖Linux内核功能所以就只能一直往里面Merge最新功能,直到后来实在是塞不进去了,全部推倒了从新发布的CentOS7重新搞。

当时树莓派也不贵,就买了一块。说实话没怎么用。因为我没买任何外设,所以所有功能都是纯跑在CPU上的,32位的arm 700Mhz性能基本上只能验证功能上的可行性,一点性能都没有。

screenshot_on_b85m_by_flameshot_at_2025-10-17_19-17-39

IMG_3336

IMG_3337

IMG_3338

IMG_3339

IMG_3342

IMG_3344

IMG_3345

IMG_3346

IMG_3347

IMG_3348

IMG_3349

IMG_3350

(当然,想学 Linux 这个是借口)

当时手中还有个大学时买的罗技C270摄像头(15年了,这玩意到现在还没停产),能拍720p。刚巧当时出租房和公司都用的电信通/宽带通的网络,开DDNS可以用(不知真假的)公网IP互联。在公司摸鱼的时候就用SSH连上家里的树莓派,然后再开小飞机做代理就能完全访问家里的局域网(公司是有上网审计的,但公司主营业务之一也是上网审计,只要不干违法的事情且不影响公司其他同事上网就没问题)

IMG_4279

连上后瞎搞mjpg-streamer,当时调通后拿到的第一张照片刚好是放在窗台上对着窗外拍到的一位路过的美女。(然而当时的照片已经找不到了)

对应 mjpg-streamer 的内容可以参考十多年前的这篇老文章《使用树莓派制作近距离遥控摄像机(无线网卡+摄像头,手机或平板等移动终端控制)》,不过放在现在已经没什么参考意义了。

后来还把树莓派和移动电源和摄像头还有无线网卡组合到一起,把摄像头绑在书包后面,骑自行车上班时拍了一路。

【[远古画质] 北京,2013年某月】 https://www.bilibili.com/video/BV1U9W7zkEm4/?share_source=copy_web&vd_source=bc6d7e4cd2c1f2bba38d19773d2bc1fc

(请忽视评论区那些自嗨的精神病)

当年我还对视频编码什么的一无所知,就只留下了这么一个编码格式是H.262的远古画质的视频。

当时想调通这一套可是费劲。没有接入点的情况下,想把控制终端和树莓派连起来就很麻烦。而且树莓派的电路设计一直超级缺心眼,它的供电设计,一直没有优先保障主板,且USB接口一直有反相供电的问题。插拔USB设备造成的电压波动基本上100%会导致树莓派重启。输入电流也被压在500mA(201x年USB供电基本都是1A了),这就导致像无线网卡或摄像头这些用电大户(?)在工作的时候可能导致树莓派自己供电不足而重启。

为此专门买了一个同时有外置电源和反相供电屏蔽的USB Hub。这玩意可是非常稀有了。

screenshot_on_b85m_by_flameshot_at_2025-10-17_19-38-29

IMG_6866

用这玩意也就意味着没法插着移动电源用。

IMG_20140503_001825

2013年去广西出差的时候,带的公司的笔记本,散热风扇坏掉了。干活办公开SSH和Word/Excel没事,但是玩游戏或者看视频几分钟就直接蓝屏重启。恰巧客户那边网络炸了,所以一个星期我都只能在酒店发呆。当时就带着树莓派,装了个 OpenELEC 系统,用酒店的电视把《刀剑神域1》全看完了。

DSC_0195

DSC_0202

(之所以是 OpenELEC 是因为,Raspbian系统需要4GB SD卡,而3DS原装的SD卡是2GB的,落灰中。而 OpenELEC 只需要 2GB 的空间就可以安装。当然另一个理由是 Raspbian 图形界面实在太卡)

当时还买过一张跳舞毯。厂家给的光盘当然只包含一个 Windows 32位的游戏端,实际上就是个 Stepmania 汉化版。Stepmania本身是开源的,但是当时官方也只提供 64位 的 Linux 客户端。我当时对交叉编译一无所知,完全搞不懂,就只好把源码都复制到树莓派上然后直接在上面编译,结果编译了一个通宵,第二天早上屏幕上还在滚屏编译,实在是等不起,这性能可能就算跑起来了也够呛能运行(更别提还要跑在图形界面上),就放弃了。(后来在x86的Linux笔记本上编译,没报错直接成功编译并且成功运行,所以说代码里并没有int64这种必须用64位CPU才能编译运行的代码)

screenshot_on_b85m_by_flameshot_at_2025-10-18_01-05-57

再后来配套的亚克力板磕坏了,想要再买发现买不到了,网上只有B+外形的外壳了(后续的树莓派外壳基本也都是B+的)。我最后就只能用个饼干盒子套着用。就开始落灰。

IMG_20150512_152030_hongmi1

IMG_20150512_152103_hongmi1

IMG_20150725_110321_hongmi1

再再后来换了工作,我拿着树莓派当作一个远程控制设备插在公司服务器上当远程控制,即我远程登录到树莓派上模拟用户操作,这样我就不用蹲在服务器旁边干活了。结果老总为了要用墙壁上的电源插座给手机充电,直接把树莓派拔下来扔杂物堆里了。

(除非你已经为领导创造过巨大的收益,否则任何领导没见识过的努力都是狗屎)

再再再后来又换公司,公司搞高度网络劫持,然而用的是一个及其白痴的上网审计,导致大部分HTTP网站都访问不了,那时候HTTPS还没普及,导致想在网上搜资料就只能手机开热点,搜完了再切回公司网络。于是又翻出来插在出租房的联通宽带上,当时还有公网IP,在浏览器里写好规则,在公司翻到家里上网。尤其是那个白痴上网审计只会疯狂的主动探测端口的HTTP协议,小飞机的日志里全是主动探测告警,我还得专门安装个旧版的不会自动封禁主动探测的小飞机。

后来还买过扩展版和传感器模块(温度气压高度光线,但是没有湿度)。没学的时候觉得是魔法,树莓派社区吹得及其玄幻,学会后发现就是从对应API读数据,而且因为都是用Python写的,代码质量还稀烂,所以被社区吹得越来越玄乎。当时我还没转型做开发,没搞明白PHP怎么去抠系统级的API(事实上读不了,PHP-FPM不是干这个的,PHP-CLI又不是跑在Web上的,想以正经方式拿系统信息还是得走系统指令,那就和调用Python没区别了),且想在树莓派1上跑HTTP服务非常吃力,就更别提还没火起来的NodeJS了。实际上这屁事只用Bash应该就能做,只要能处理好从API中提取出来的二进制数据然后转换成人类可读的数据,然后再排版就好了。当然,Bash处理二进制数据和排版都超级麻烦,理所当然社区没人做。去他妈的国内开源社区

IMG_20151019_225300_MiPad

IMG_20151025_002219_MiPad

IMG_20151223_221943

IMG_20171030_192817

后来还买过 315M433M无线模块,想用树莓派做物联网。但是最后因为精力有限,买回来之后一直在落灰,一点都没动过。(后来物联网的发展趋势也是一坨狗屎,一帮傻逼搞紫蜂全死了,最后变成WiFi是亲爹,断网就报废,电饭锅都物联网人工智能)

screenshot_on_b85m_by_flameshot_at_2025-10-18_01-05-26

IMG_20151103_233125

再再再后来我也不在那个公司工作了,北京联通也不再分配公网IP了,手里这个树莓派又开始落灰。我也想过再利用,尝试把这树莓派做成同步网盘(大容量SD卡和U盘已经很便宜了),但是这设备的IO性能是在不够,虽然可以插外置硬盘,但兼容一代的硬盘盒也不存在,更别提之前说过跑Apache和PHP都很吃力了。

最后这树莓派1就正式落灰了。


年轻的时候憋坏了

我这个人,上学的时候憋坏了。早年间上大学从哈尔滨到西安,火车单程42个小时,后来提速后36个小时,但晚点又是日常。当年最多只能用个不到2寸的诺基亚3110c玩马里奥医生,因为屏幕小且九宫格键盘难操作且模拟器限制,只能玩这一个游戏,其他游戏都玩不了。(我也纳闷这大学4年我为什么不买一个俄罗斯方块机呢)

毕业工作后我就买了台3DS,买了两块移动电源。

后来买了台式机之后,老笔记本也开始落灰,我就装了个RetroArch又当作游戏机,在有大电视的合租房客厅里放了一年。结果是没玩,HDMI线超过2米之后要不就是价格登月,要不就是直接花屏。

IMG_20160124_160039_SHOT2SHOT1

而作为控制器的手柄,USB连接线同样没法超过两米;蓝牙又莫名其妙的高延迟。总之怎么样姿势都不舒服。

再后来有了新笔记本(就是那个后来自燃了的戴尔灵越7380),PS2模拟器的性能甚至比有GTX1080独显的台式机还好,经典掉帧场景在这个核显笔记本上竟可以全程60帧。虽然有着8代i7,但跑分和x264这笔记本(都因为散热问题)输给4代i7的,却在这个特别的场景下略微获胜(但是屁用没有,过场动画掉几帧根本不影响游戏性)(更别提Win10会给更低端的模拟器造成明显抽搐的问题,而且3DS模拟器在4代U上能稳定跑,在这破本上启动都费劲)。但最终结果也是一样的,一根又粗又硬的HDMI线扯着笔记本,笔记本还要再插着电源适配器,然后一根USB线连在手柄上,怎么样都不舒服。再再后来这破笔记本自燃了,这场景也自然没有了。

(所以我还是觉得,同样都是走2.4GHz频段,在无线键鼠和蓝牙手柄都出问题的情况下,游戏机无线手柄能做到延迟无感知是一种魔法。当然我也没钱去专门买一个无线手柄适配器,毕竟不适应需求,PC游戏还是坐在电脑显示器前玩,不需要无线)


煎熬后想把树莓派1改造成游戏机

前几年过春节都是在自己家熬夜的,用自己的电脑打一宿的TF2或者100oj。

去年在外公家过夜,但是下午的时候回家了一趟,然后晚上徒步走了3公里到街机厅,玩跳舞机一直玩到人家除夕闭店。

今年过春节时,则是在一个我不怎么熟的大人的朋友家过的。

纯煎熬。

能玩的东西就只有手机和3DS。

倒不是说3DS游戏性不行,而是我在嘈杂且陌生且随时会被打断的环境下,玩不下去那种期望有沉浸体验的游戏。

结果就是一个除夕,歪坐在一个陌生的沙发上,把魔法气泡手游的无尽之塔打到实在打不过,然后又在3DS上打了半宿的PPT(魔法气泡俄罗斯方块),最后结果是坐着落枕了。

邻居家当然是有电脑和电视的,只不过电脑是人家工作用的,别人的工作设备我基本不想碰;电视全是在播放春晚,根本看不得。

那一晚真的是纯煎熬。好在第二天大人们晚上全跑去歌厅唱歌了,我自己回了自己家,才算解脱。

再后来整理物品的时候又翻到箱子里落灰很多年的树莓派1和小米盒子1(还有2台小霸王),遂有了把这俩玩意改造成游戏机的想法。

两台小霸王机当然也是能用的,我还有一张400合1游戏不重复的游戏卡,基本上涵盖所有热门FC游戏。但这些年来我一直是在NTSC模式下以60fps的帧率玩FC的,如今再回到PAL模式的50fps,就显得特别的不适应。

为什么自己年轻的时候没感受到这么大的差异呢,我高中期间是同时玩模拟器和小霸王的啊。


把树莓派1改造成游戏机,但是失败了

思路有多个:

  • 安装个有图形界面的操作系统(Raspbian),然后在里面跑独立模拟器或者RetroArch。
  • 安装 OpenELEC ,然后在里面的 XBMC中 安装模拟器插件
  • 安装 Lakka 或 RetroPie 这种专门(只)跑 RetroArch 的操作系统

首先抛弃方法2。这个方法本来是我道听途说的,真实性不高。OpenELEC 已经停止维护太久了,XBMC也早就改名 Kodi。如今肯定是连不上那古董的插件服务器,就不费那劲了。

事实上现在想在网上搜树莓派1的资料已经很少了,就更别提树莓派基金会搞了一堆幺蛾子之后名声都臭掉了,现在还做树莓派资料的基本都是 外国营销号,没啥正经玩意,搜什么关键字都是一群人复制粘贴的垃圾(有一种百度比谷歌遥遥垃圾的领先感)。本身就追求开放的老粉肯定不会在这一根歪脖树上吊死,直接去 Linux on Arm 这种大领域玩去了。

用了几个AI工具搜了一下(百度、豆包、必应、秘塔,排名不分先后),基本上给出的答案都类似:

screenshot_on_b85m_by_flameshot_at_2025-10-17_21-58-02

screenshot_on_b85m_by_flameshot_at_2025-10-17_22-35-22

看起来还行?

Raspbian 方案

首先刷了 Raspbian 试了下。甭说模拟器了,只要进图形界面,分分钟整个系统卡到无响应。我专门是了下最新版的 Raspbian 和 自己电脑里保存的 2013 年的旧版 Raspbian ,结果是一样的。

这个配置跑一个图形界面操作系统实在是太勉强了,再在上面跑其他东西,还是算了。

RetroPie 和 Lakka

这俩方案我已经记不清前后顺序了。记忆里2013年的时候用过其中一个(另一个当时肯定没诞生),只记得当时那个很漂亮的仿PS3/PSP的系统界面(因为邻居家有台PS3)。

现在在装回来,只感觉到莫名其妙的超级卡顿。

RetroPie 方案

其中 RetroPie 又叫 EmulationStation ,看着很像是对 RetroArch 的重度套皮。不仅如此,所有对非模拟器的设置,全部都会先退出这个图形界面,然后调用Raspbian提供命令行风格的配置界面,配置完成后再重新启动 EmulationStation。这一套白痴操作下来,整个系统直接就炸了。

DSC_8108

屎山设计。

Lakka 方案

Lakka 则简介多了,看介绍,Lakka应该是直接把 OpenELEC 减掉大部分功能,只保留图形功能支持,然后在里面启动 RetroArch。

和 RetroPie 不同。RetroPie 是做加法,屎山;Lakka 是做减法,仅保留需要的内容。

缺点就是需要基于RetroArch之外的第三方功能基本没戏(但是把Samba这种功能塞进RetroArch是有可能的)。

Lakka跑起来后,首先是着跑 FC/NES,结果是卡顿得不行。

除了QuickNES核心之外,其他模拟器核心都是卡到爆炸,60fps最多只能跑到一半,30帧。

DSC_8111

这跟AI给出的答案完全对不上。还 SFC/SNES呢,连 FC/NES 都不行

试着给树莓派超频,结果是只要动树莓派的频率设置,就完全不启动。超频失败

最后勉强用 QuickNES 跑起来松鼠大战1,能将就着维持到60fps。

把耳机接上显示器/树莓派之后,又发现根本没声音,看了一眼,发现音频输出是null。手动把音频输出更改为 HDMI 或者 3.5mm 之后,游戏瞬间又卡得没法玩了。

RetroArch 的小插曲

当年在树莓派上跑RetroArch,也是我第一次RetroArch这个应用的渠道。

后来也想过在旧笔记本上安装这个操作系统,但是旧笔记本的性能可以跑Ubuntu这种功能正规操作系统,性能都绰绰有余,没必要专门安装专用操作系统,直接再在Ubuntu上安装RetroArch就好了,但是玩瘾没那么大,想玩直接上台式机,旧笔记本大部分时间在落灰。

再后来把整体操作系统环境从Win7迁移到LinuxMint时,在笔记本上使用过一阵RetroArch,结论是: RetroArch安装在专门用于游戏的机器上,或者给无经验者作为综合模拟器使用,用户体验还行;但是对于有经验的用户,在PC上使用窗口环境的模拟器的用户体验更棒。

于是之后再也没用过 RetroArch 玩游戏。

OpenELEC

本来没指望再用 OpenELEC 的,但是心理很别扭,总觉得以前不是这样的。

把 OpenELEC 重刷进去,发觉连操作菜单都卡顿得不得了。每个选择操作都能卡顿1秒以上。

啥情况?CPU缩肛了?

按理说菜单这些内容都是加载到内存的,就算SD卡因为放置太久有IO性能问题了,也不至于影响到菜单操作。

选了个 H.264的视频,播放起来倒是很顺畅,但我又用不着这玩意看视频。(尤其是现在大部分视频都是Webrip或Web-DL的,都需要手动选字幕,旧版的OpenELEC字幕能力太弱了,更别说操作还这么卡顿)

DSC_8112

DSC_8113

我电脑里当然是存着2013年的 旧版 OpenELEC 的。

刷了当初的旧版,依旧的性能问题。

看来树莓派是指望不上了。

想当年家里亲戚有过一台从单位搬回家的1988年产的 COMPAQ 486,只有486MHz主频和16MB内存(MMX指令集都没有),在DOS下用Nesticle模拟器也是能玩大部分NES游戏的(只要Mapper支持就行)(在Win95下开声音会掉帧)。

(暂时不想为了验证是否是SD卡的问题再买新的SD卡。手里的旧卡都一堆了,线上在用的只剩下3DS的卡和一个相机的卡,也都是偶尔开机)

(事实上固态存储长期不通电不擦除不读写导致性能下降的问题目前很严重且无解。PC端的冷数据还是用机械硬盘或者光盘存储更安全,SSD只适合做系统盘。但是这个情况在移动设备和移动存储上怎么做都绕不开)


小米盒子1

与树莓派1装在一个袋子里的还有个小米盒子1。

IMG_6867

IMG_6871

IMG_6876

话说小米这破品牌,当年我竟然还因为他曾把一个停产的产品在网站上多放了几个月页面,就夸了一下,当时绝对是脑子没有被门挤出屎。

(都是年轻时犯下的错)

小米盒子1这玩意,配置可比树莓派高太多了。

screenshot_on_b85m_by_flameshot_at_2025-10-17_22-04-44

(纸面参数甚至比我的旧笔记本还高)(但是别忘了这破玩意是精简指令集)

于是也想拿出来试一试。

思路很简单:小米盒子1内置的是魔改的安卓4.4系统,所以只要:

  • 安装安卓版本的 RetroArch 或其他模拟器
  • 使用任何可行办法将游戏ROM复制到小米盒子中,或使用USB OTG访问U盘
  • 使用内置蓝牙模块与PS4手柄DS4配对连接,或使用 USB OTG 有线连接PS4的DS4手柄

首先用遥控器把小米盒子1重置到出厂状态,然后连网,希望通过网络把文件复制到小米盒子中。

结果,只要一连网,小米盒子1就炸了。整个操作界面强制更新到了一个作坊风格的净是推广内容的界面,所有功能入口都没有了。用文件管理器,所有APK文件均被提示禁止安装。

DSC_8106

没办法只能用遥控器重新重置。

这回用USB OTG插U盘把好用的文件管理器和RetorArch安装包复制到小米盒子上,然后安装。

然后尝试连网,期望通过自己安装的文件管理器把游戏ROM复制到小米盒子上。

(之所以一直要连网,是因为 RetroArch 默认不带任何模拟器核心,需要连网才能下载对应的模拟器核心才能运行)

结果连网之后,不仅界面炸回山寨风格,而且隐藏了所有应用的入口,刚才安装的文件管理器和RetroArch在界面看不到了,完全被隐藏。

没办法只能再次用遥控器重新重置。

这回决定完全不连网,RetroArch的问题先搁置,大不了等会在路由器把抓包把小米盒子的所有网络请求全封掉,只放行 RetroArch 的请求。或者干脆不用 RetorArch,使用其他独立模拟器。

然后尝试用小米盒子的蓝牙配对手柄或者键盘,结果是:小米盒子除非小米自己品牌的外设之外,其余任何设备都不识别。

最后直接把手柄插在USB OTG上,依旧不识别。

封闭的垃圾!!!


开放的东西越来越封闭

本身表面上树莓派这玩意是个很新奇很开放的东西,但是实际上树莓派基金会是由博通建立的,芯片也是一直用的博通最便宜的垃圾。本身博通这公司有多烂就不用解释了。

只是没想到 卡片电脑 这个概念能在那个时间段突然爆发。之后树莓派除了换了几代SoC之外基本没任何改良,但由于名声在外,其他同类型产品都没能撼动这个破烂的地位。

然而树莓派5登场后,卡片电脑这个概念终于或许是大抵确实是好像死了。

天下苦 Intel x86 久已,但 arm 却不是来拯救大家的。

很可惜资本主义下,开放指令集根本没法发展。

没钱寸步难行。

而像小米之流的更是打着开放的名义把用户当牲口,成功培养出了很大一批的“有问题就刷机”但实际上只会在特定网站上下载自己都不知道里面是啥玩意的东西往手机里装的年轻韭菜。自由即吃饲料,自由即当牲口。

vlcsnap-2025-10-18-01h22m50s403

vlcsnap-2025-10-18-01h25m28s409

看手里一堆一堆的塑料电子垃圾,最后的结局都是换个5块钱的不锈钢铁盆。

“我们”是商品。

The post 尝试把树莓派1和小米盒子1改造成游戏机,但是失败了 first appeared on 石樱灯笼博客.
❌