beff venture
Aug 18, 2020
Mar 15, 2020(6y)
Mar 15, 2027(291d)
Combat
Kills21
Losses8
Efficiency72%
ISK
Destroyed8.16m
Lost6.45m
ISK Eff.56%
Solo
Solo Kills21
Solo Ratio100%
Final Blows21
Points21
Other
NPC Losses0
NPC Loss Ratio0%
Avg Kills/Day0.01
ActivityInactive
beff venture
Last Active
Aug 18, 2020
Birthday
Mar 15, 2020 (6 years old)
Next Birthday
Mar 15, 2027 (291 days)
Combat
Kills21
Losses8
Efficiency72%
Danger Ratio100%
ISK
Destroyed8.16m
Lost6.45m
ISK Efficiency56%
Balance+1.71m
Solo
Solo Kills21
Solo Ratio100%
Final Blows21
Points21
Other
NPC Losses0
NPC Loss Ratio0%
Avg Kills/Day0.01
ActivityInactive
No data available
Bio
健身器材砖块 如何花200元畅玩Switch健身环大冒险
180克瑜伽砖eva高密度瑜伽块环保体育健身砖瑜伽辅助用品泡沫砖
价格
\xa522.00
英雄式坐姿、金刚坐中,如练习者脚背不够柔软而不能正确完成时可借用瑜伽砖的帮助
Linux 在 M1 上跑起来了 绑定按键事件
2021-01-28 19:39
【CSDN 编者按】苹果 M1 芯片引发行业大热,芯片的发展也将影响着未来行业的走向。今天,随着本文一起来看看如何把 Linux 移植到 M1。
编译 | 弯月 责编 | 张文
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
Long-limb Roes Carbon
短歌是一种日本传统诗歌
自 2014 年 iPhone 6 发布以来,苹果就在集中精力构建更快的芯片,相对于在一块芯片上加载更多核心,他们更加注重单线程性能的提高。他们内部的硬件设计团队采用了这种方法,并生产出了功能多样且独一无二的芯片,从而奠定了他们在架构特征方面的行业领先地位。
2020 年 11 月,苹果发布的新品台式机搭载了 M1 处理器,不少人都为该系统的出色性能而赞不绝口。
事实上,Linux 之父 Linus Torvalds 也曾在国外 Real World Technologies 网站的留言板答网友提出的“如何看待新的(M1 芯片)苹果电脑”问题时,回应称:
如果它运行 Linux ,我绝对希望拥有一台。
开始将 Linux 移植 M1
M1 的许多组件都是与苹果的移动 SoC 共享的,因此可以从这个地方入手。但是,在编写 Linux 驱动程序时发现, 实际上苹果的 SoC 非常不标准。由于笔者的虚拟环境非常灵活,能够适应多种模型,但在 Linux 上,64 位 ARM 主要依赖于一系列定义良好的组件和固件接口,但 M1 几乎没有使用任何这类的组件或固件接口。
首先,苹果的 CPU 采用了不同的方式来引导操作系统内核。引导加载程序(称为 iBoot)加载一个 Mach-O 格式的可执行目标文件,该文件支持压缩,并封装在一种经过 ASN.1 签名的 IMG4 格式中。与之相比,正常的 64 位 ARM 上的 Linux 则由一个普通的二进制镜像引导(支持压缩,也支持几种容器格式),或者在 UEFI 平台上由 Windows 风格的“PE”可执行文件引导。
CPU 核心启动之后,真正的问题来了。在其他 64 位 ARM 系统上,这一步通常是通过 PSCI 接口调用固件(一些系统采用了轮询表,但依然需要固件)。但在 M1 上,CPU 核心从一个 MMIO 寄存器指定的地址处开始(MMIO 寄存器由内核镜像设置成某个特定的偏移量,然后由引导程序锁定),然后直接开始运行内核。
除此之外,苹果还设计了自己的中断控制器 Apple Interrupt controller(简称 AIC),这个控制器与任何主流 ARM GIC 标准都不兼容。不仅如此,其定时器中断并没有像通常的 ARM 那样连接到每个 CPU 中断上,而是路由到 FIQ 上。FIQ 是一个很难理解的架构特性,在老式的 32 位 ARM 处理器上经常使用。很显然,Linux 内核并不支持通过 FIQ 发送中断,所以我们必须自己实现。
系统内的多个处理器互相通信需要一组处理器间中断(IPI)。在旧的苹果 SoC 上,这些中断的处理方式与 IRQ 相似,即执行 MMIO 并访问 AIC。但在新的处理器上,苹果使用了一组处理器核心寄存器来分发并通知 IPI,而且也路由到了 FIQ 上。所以 FIQ 的支持非常重要。
在处理了一些其他的硬件特性之后,笔者团队添加了一个预加载器,作为启动处理器核心的跳板,这样就可以设置帧缓冲区,并看到 Linux 启动时的企鹅了。
需要更多输入
不幸地是,笔者团队并没能用上 M1 Mac 上的 UART 线,所以只能通过其他方式来添加键盘(甚至鼠标)。M1 Mac Mini 有三种方式来实现这一点:M1 芯片上内置的 USB 宿主(提供 Thunderbolt/USB 接口),PCIe 上的 xHCI USB 宿主(提供 A 类接口),以及蓝牙。
团队并没有打算深入研究苹果的蓝牙,但大家注意到它使用了一种非标准的 PCIe 协议,而且不仅需要使用 M1 芯片上的 PCIe 接口,还需要为该协议编写自定义的内核驱动程序。这不是个理想的选择。
也就是说,只能选择 PCEe 并使用标准的内核 xHCI 驱动,或者使用内置的 USB 控制器。苹果很早以前就在其芯片里使用了 Synopsys DWC3 双角色 USB 控制器,而且该控制器有 Linux 内核驱动。不幸的是,苹果又给该控制器添加了自定义的逻辑,所以这里也需要大量工作。
M1 的 PCIe 和内置的 DWC3
180克瑜伽砖eva高密度瑜伽块环保体育健身砖瑜伽辅助用品泡沫砖
价格
\xa522.00
英雄式坐姿、金刚坐中,如练习者脚背不够柔软而不能正确完成时可借用瑜伽砖的帮助
Linux 在 M1 上跑起来了 绑定按键事件
2021-01-28 19:39
【CSDN 编者按】苹果 M1 芯片引发行业大热,芯片的发展也将影响着未来行业的走向。今天,随着本文一起来看看如何把 Linux 移植到 M1。
编译 | 弯月 责编 | 张文
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
Long-limb Roes Carbon
短歌是一种日本传统诗歌
自 2014 年 iPhone 6 发布以来,苹果就在集中精力构建更快的芯片,相对于在一块芯片上加载更多核心,他们更加注重单线程性能的提高。他们内部的硬件设计团队采用了这种方法,并生产出了功能多样且独一无二的芯片,从而奠定了他们在架构特征方面的行业领先地位。
2020 年 11 月,苹果发布的新品台式机搭载了 M1 处理器,不少人都为该系统的出色性能而赞不绝口。
事实上,Linux 之父 Linus Torvalds 也曾在国外 Real World Technologies 网站的留言板答网友提出的“如何看待新的(M1 芯片)苹果电脑”问题时,回应称:
如果它运行 Linux ,我绝对希望拥有一台。
开始将 Linux 移植 M1
M1 的许多组件都是与苹果的移动 SoC 共享的,因此可以从这个地方入手。但是,在编写 Linux 驱动程序时发现, 实际上苹果的 SoC 非常不标准。由于笔者的虚拟环境非常灵活,能够适应多种模型,但在 Linux 上,64 位 ARM 主要依赖于一系列定义良好的组件和固件接口,但 M1 几乎没有使用任何这类的组件或固件接口。
首先,苹果的 CPU 采用了不同的方式来引导操作系统内核。引导加载程序(称为 iBoot)加载一个 Mach-O 格式的可执行目标文件,该文件支持压缩,并封装在一种经过 ASN.1 签名的 IMG4 格式中。与之相比,正常的 64 位 ARM 上的 Linux 则由一个普通的二进制镜像引导(支持压缩,也支持几种容器格式),或者在 UEFI 平台上由 Windows 风格的“PE”可执行文件引导。
CPU 核心启动之后,真正的问题来了。在其他 64 位 ARM 系统上,这一步通常是通过 PSCI 接口调用固件(一些系统采用了轮询表,但依然需要固件)。但在 M1 上,CPU 核心从一个 MMIO 寄存器指定的地址处开始(MMIO 寄存器由内核镜像设置成某个特定的偏移量,然后由引导程序锁定),然后直接开始运行内核。
除此之外,苹果还设计了自己的中断控制器 Apple Interrupt controller(简称 AIC),这个控制器与任何主流 ARM GIC 标准都不兼容。不仅如此,其定时器中断并没有像通常的 ARM 那样连接到每个 CPU 中断上,而是路由到 FIQ 上。FIQ 是一个很难理解的架构特性,在老式的 32 位 ARM 处理器上经常使用。很显然,Linux 内核并不支持通过 FIQ 发送中断,所以我们必须自己实现。
系统内的多个处理器互相通信需要一组处理器间中断(IPI)。在旧的苹果 SoC 上,这些中断的处理方式与 IRQ 相似,即执行 MMIO 并访问 AIC。但在新的处理器上,苹果使用了一组处理器核心寄存器来分发并通知 IPI,而且也路由到了 FIQ 上。所以 FIQ 的支持非常重要。
在处理了一些其他的硬件特性之后,笔者团队添加了一个预加载器,作为启动处理器核心的跳板,这样就可以设置帧缓冲区,并看到 Linux 启动时的企鹅了。
需要更多输入
不幸地是,笔者团队并没能用上 M1 Mac 上的 UART 线,所以只能通过其他方式来添加键盘(甚至鼠标)。M1 Mac Mini 有三种方式来实现这一点:M1 芯片上内置的 USB 宿主(提供 Thunderbolt/USB 接口),PCIe 上的 xHCI USB 宿主(提供 A 类接口),以及蓝牙。
团队并没有打算深入研究苹果的蓝牙,但大家注意到它使用了一种非标准的 PCIe 协议,而且不仅需要使用 M1 芯片上的 PCIe 接口,还需要为该协议编写自定义的内核驱动程序。这不是个理想的选择。
也就是说,只能选择 PCEe 并使用标准的内核 xHCI 驱动,或者使用内置的 USB 控制器。苹果很早以前就在其芯片里使用了 Synopsys DWC3 双角色 USB 控制器,而且该控制器有 Linux 内核驱动。不幸的是,苹果又给该控制器添加了自定义的逻辑,所以这里也需要大量工作。
M1 的 PCIe 和内置的 DWC3
Dashboard
Stats
Kills0
Losses0
Efficiency0%
ISK Destroyed0
ISK Lost0
ISK Efficiency0%
Solo Kills0
Solo Losses0
NPC Losses0
Blob Factor0
Active TimezoneUSTZ
Final Blows0
Points0
Activity Heat Map (EVE Time)
00
0
01
0
02
0
03
0
04
0
05
0
06
0
07
0
08
0
09
0
10
0
11
0
12
0
13
0
14
0
15
0
16
0
17
0
18
0
19
0
20
0
21
0
22
0
23
0
Intel Profile
PlaystyleSolo (0 kills)
Avg Fleet: -