linux-macbook内核,技术|用 Linux 让旧 MacBook 重获新生

花上一小时,用 Fedora 让一台过时的 Mac 重新有用。

最近,我偶然找到了一台 2011 年底的老款 13 英寸 MacBook Pro,有 125GB SSD 和 8GB 内存。我曾带着这台机器去世界各地旅行,当年,我开了很多场会议、研讨会或演示,分享 JBoss 技术带来的各种 AppDev 优势。

在验证了它的电池能用,充了电,重新安装了一个新的 OS X 之后,我发现 Safari 浏览器的版本受限于旧的安全规范,这意味着它现在无法连接到很多 HTTPS 网站。这就使得这个解决方案失效了。

这个老伙计该怎么处理呢?

自从我作为开发人员专门在 Linux 工作站上工作以来已经有几年了。我只使用 Fedora,所以我决定尝试在这台 MacBook Pro 上安装它的最新版本。

我只花了一个多小时就用下面的步骤让 Fedora 33 在这台笔记本上工作了。

下载 Fedora 33 并创建一个临场 USB

第一步是找到正确的安装 Fedora 的方法。这台机器有一个 CD 插槽,所以可以刻录一个 ISO 并从它启动,但我选择直接使用可启动的 USB 方式。

我登上了另一台 MacBook,访问了 Fedora Workstation 网站,它有 Fedora Media Writer 的链接。点击你的机器类型的图标(在我的例子中是苹果标志),你会得到一个安装包。

36fb89da5c0fab0292974df008549e75.png

开始安装,可以看到一个引导你完成安装过程的图形用户界面(GUI)。选择 Fedora Workstation 33 选项。

a220fe6f769ddce56b769bced9c78e5f.png

接下来,选择右上角的“Create Live USB”选项。

39598d525d15f6e7f7125936bef52e10.png

镜像将开始下载,你将看到一个下拉菜单来选择安装位置。

5454abc3bf19c7f7269d0ccce90db948.png

插入一个有足够空间的 U 盘,下载完成后,就可以选择它并在上面安装镜像。完成后,关闭 GUI,取出 U 盘。

安装 Linux

将你创建的 U 盘插入 MacBook Pro 左侧的端口,并按住 Cmd 键左侧的 Option(或 Alt)键的同时重新启动。这将打开一个启动机器的选项菜单:使用 EFI 选项,因为那是 USB 镜像。

笔记本电脑将从 USB 设备启动,你可以按照正常的 Fedora 安装过程进行。如果你能将 MacBook Pro 插入网线连接,会有帮助,因为它的 Broadcom WiFi 设备无法开箱即用。

801898e9a597e5b5e06590807c192206.png

你现在也可以将 Fedora 安装到你的硬盘上,并将它永久地放在你的机器上。

15424ca87f3b34641204aaf174745b32.png

一旦安装程序完成,重新启动机器,Fedora 33 现在应该是启动选项。

7e622f8ff98066dd3d29384994fdaceb.png

唯一缺少的就是 WiFi 驱动,所以要保持网线连接,安装你正在运行的内核的开发包,并为该内核构建 broadcom-wl 驱动。

验证你需要用于 WiFi 的卡。

$ lspci -vnn -d 14e4:

在输出中会有几项,包括如下内容:

Network controller [0280]: Broadcom Inc. and subsidiaries....

Subsystem: Apple Inc. AirPort Extreme...

安装一个仓库来拉取 Broadcom 相关的部分:

$ su -c 'dnf install -y http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'

接下来的部分很有趣:如果你查看正在运行的内核时,你会看到 v5.9.8-200.fc33,但是你要使用开发内核包来构建你的 Broadcom 无线驱动。所以,你需要安装 v5.8.15-301.fc33(在写这篇文章的时候可用)。使用 uname -r 检查它们,并使用 sudo dnf list kernel 列出已安装的内核包:

$ sudo dnf list kernel

kernel.x86_64                     5.8.15-301.fc33

kernel.x86_64                     5.9.8-200.fc33

安装开发包:

$ sudo dnf install -y akmods kernel-devel-5.8.15-301.fc33

c266854578316335887f501fc54f0b9c.png

安装 Broadcom 无线软件包:

$ sudo dnf install -y broadcom-wl

构建内核模块:

$ sudo akmods

f5b969816ced63e4da909986470cc30f.png

重新启动你的机器,你应该可以看到无线驱动(wl)。

$ lsmod | grep wl

在 Fedora 中设置你的无线连接:

f0b2eb9160c85e235e3dae699cacbe3c.png

这篇文章对我来说有些出乎意料,但我希望它能帮助别人在周末享受一些老硬件的乐趣!

现在要走不寻常路了……在 2011 年的 Macbook Pro 上安装 #Fedora。祝我好运! pic.twitter.com/zlsESnq2Px。

Eric D. Schabell (@ericschabell) 2020 年 11 月 22 日

此文原载于 Schabell.org,经许可转载。

本文由 LCTT 原创编译,Linux中国 荣誉推出 linisi.svg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 如何在命令终端(CMD)使用命令来访问本地/远程的 Oracle 数据库呢?

打开命令窗口后直接输入 sqlplus sys/123orcl as sysdba其中 sys 是用户名,123 是密码,orcl 是数据库实例名,as sysdba 表示用户 sys 是数据库管理员。 没有指定数据库实例名,那么访问默认的数据库实例,如果用户 sys…

linux消耗ram内存吗,linux - 释放Ubuntu 8.04服务器上的内存(RAM) - Ubuntu问答

问题描述我在带有某些轻量级服务器应用程序的Slicehost虚拟服务器上运行了Ubuntu 8.04-apache22,svnserve,mysql和proftpd。唯一严重的服务限制是RAM-我要支付256MB。我注意到,如果让系统运行几天/几周,则可用RAM的数量会缓慢下降…

java 读取集合到流中_Java 10:将流收集到不可修改的集合中

java 读取集合到流中Java 10引入了几种新方法来促进不可修改集合的创建。 List.copyOf &#xff0c; Set.copyOf和Map.copyOf方法从现有实例创建新的集合实例。 例如&#xff1a; List<String> modifiable Arrays.asList("foo", "bar"); List<…

Servlet 组件相关的接口、抽象类关系图

注&#xff1a; ServletConfig 依赖于 Servlet HttpServletResponse 继承自 ServletResponse HttpServlet 实现自 HttpServletResponse 和 HttpServletRequest

java6 已安装更高版本_Java 10及更高版本的思考

java6 已安装更高版本大家好 Java 10于2018年3月20日发布。我认为许多软件团队将阻止升级。 从Java 8到Java 9的专业人员人数可能还更少。为什么会这样&#xff0c;原因是传统的障碍以及对应用程序服务器&#xff0c;框架甚至是云原生容器的依赖。 例如&#xff0c;如果您在等待…

linux 命令api,linux命令行下字典,使用有道API

Linux命令行下的字典&#xff0c;使用“exit”退出。大家简单申请一个key就可以用了。这里申请#!/usr/bin/python3.2import urllib.requestimport jsondef wordMeaning(word):"""Use YouDao API key and the url below, get the JSON formatted information,the…

Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象

文章目录后端部分前端部分后端部分 Option op new Option("海淀","hd");//java对象转换json对象 JSONObject obj JSONObject.fromObject(op); //json对象转换成json字符串 String str obj.toString();List<Option> ops new ArrayList<Option…

kafka 消费端 api_在消费者的眼中:您真的需要为您的API提供客户端库吗?

kafka 消费端 apiRESTful Web服务和API的优点在于&#xff0c;任何使用HTTP协议的使用者都可以理解和使用它。 但是&#xff0c;同样的难题一遍又一遍地弹出&#xff1a;您是否应该将Web APis与客户端库一起使用&#xff1f; 如果是&#xff0c;您应该支持哪些语言或/和框架&am…

linux 进程的vss rss uss,内核/内存管理中的VSS/RSS/PSS/USS

转自&#xff1a;http://www.douban.com/note/161471809/RSS is the total memory actually held in RAM for a process.RSS can be misleading, because it reports the total all of the shared libraries that the process uses, eventhough a shared library is only loade…

如何将类加载到内存

// 将类Driver加载到内存&#xff0c;在内存会产生一个和类Driver对应的Class实例 Class class Class.forName("com.mysql.jdbc.Driver");// 获取类加载器&#xff0c;任何类都有个class属性&#xff0c;这个属性返回类在内存中对应的那个Class实例&#xff0c;通过…

idea资源包下创建资源包_根据谁创建资源授权资源

idea资源包下创建资源包我的一位同事向我提出了一个关于StackOverflow的有趣问题&#xff0c;并由于我在Spring方面的经验&#xff0c;建议我回答一个很好的问题。 问题是&#xff0c;“ 如何基于使用批注在REST中创建资源的用户来授权特定资源 。” 要点是&#xff1a; 我正…

如何卸载linux中的docker,linux centos7 安装、卸载docker

docker安装1&#xff1a;查看系统版本cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core)2:安装docker(yum方式)$ yum install docker3&#xff1a;查看是否安装成功$docker version若输出以下&#xff0c;说明安装成功Client:Version: 1.12.6API version: …

html页面中Location对象跳转页面用法

姓名&#xff1a;<input name"name"/></br> 薪水&#xff1a;<input name"salary"/></br> 年龄&#xff1a;<input name"age"/></br> <input type"submit" value"确认"/></br…

java orm框架有哪些_Java Stream ORM现在带有JOIN

java orm框架有哪些Speedment是一个Java Stream ORM工具包和运行时&#xff0c;它使您可以将数据库表作为标准Java Streams查看。 由于不必混合使用Java和SQL&#xff0c;因此该应用程序变得更加紧凑&#xff0c;从而使其开发速度更快&#xff0c;更不容易出错并且易于维护。 流…

linux pdb创建表空间,ORACLE12C PDB创建默认表空间和用户语句(示例代码)

第一次接触到12C CDB和PDB数据库&#xff0c;且客户提供的是ORACLE一体机&#xff0c;只有访问权&#xff0c;费劲周折&#xff0c;今记录12C创建默认路径表空间语句和用户--创建默认表空间&#xff1a;create tablespace tablesapce_name datafile size 500M autoextend on …

用户在页面输入的中文数据,servlet如何获得正确的中文值

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 告诉浏览器&#xff0c;返回的是html页面&#xff0c;而且是以utf-8编码的response.setContentType("text/html;charsetutf-8");//reques…

java编写排序的代码_在Java 8之前,您编写了几行代码来对对象集合进行排序?...

java编写排序的代码在Java 8之前&#xff0c;您编写了几行代码来对对象集合进行排序&#xff1f; Java 8您需要多少个&#xff1f; 您可以在Java 8中用一行完成。 让我们看看下面的Employee类。 public class Employee {private String name;private Integer age;public Emp…

java全局变量和局部变量_Java 10 –局部变量类型推断

java全局变量和局部变量在本文中&#xff0c;我们将看到作为JEP 286的一部分提出的名为Local Variable Type Inference的Java10功能。 从Java的第一个版本开始&#xff0c;它是一种强类型化的语言&#xff0c;我们需要提及每种变量数据类型。 我们都感到Java是冗长的语言&#…

JS_Java_Oracle_MySQL截取字符串的函数

JS 截取字符串 函数 substring(indexStart, indexEnd)&#xff1a; function f1() {var s abcd;// 字符串的字符下标从0开始&#xff0c;从下标为2的字符c开始截取&#xff0c;截取到下标为3的字符d为止&#xff0c;含头不含尾&#xff0c;所以字符d没有被截取&#xff0c;最…

linux安装meld rpm,Linux meld安装

meld是一款图形化的文本比较工具&#xff0c;该工具在windows与linux平台下均有对应版本&#xff0c;最新版本为3.14.2&#xff0c;附上下载地址http://meldmerge.org/meldmeld相较diff命令其输出结果更加直观&#xff0c;因此在linux下使用该工具进行程序源码的比较。忘了说了…