ASRock H77 Pro4-M 主板 coreboot 移植支持指南:规格、刷写与硬件监控
固件嵌入式操作系统驱动开发【免费下载链接】corebootRead-only mirror of https://review.coreboot.org/coreboot.git. Synced every hour. We dont handle Pull Requests.项目地址https://gitcode.com/gh_mirrors/co/coreboot点击查看免费下载本文以 coreboot 官方文档 Documentation/mainboard/asrock/h77pro4-m.md 为骨架系统介绍 ASRock H77 Pro4-M 这块 microATX 桌面主板在 coreboot 下的完整支持状况、固件刷写流程、NCT6776 Super I/O 风扇控制、串口针脚定义与 eSATA 复用机制并结合仓库中 src/mainboard/asrock/h77pro4-m 的 Kconfig、设备树与启动早期初始化源码做纵深解析。读完本文你将掌握该板从选型确认、原生内存初始化、刷写固件到配置板载硬件的完整实战路径。主板技术规格ASRock H77 Pro4-M 是一块面向 Intel Sandy BridgeSNB与 Ivy BridgeIVB处理器的 microATX 尺寸桌面主板采用 LGA 1155 插座。coreboot 侧的核心硬件组成如下部件规格北桥Intel Sandy Bridge详见 北桥文档南桥Intel H77bd82x6x / Panther PointCPU 插座LGA 1155内存4 × DDR3-1600Super I/ONuvoton NCT6776音频Realtek ALC892网络Realtek RTL8111E千兆以太网串口板载针脚排针RS-232这些配置在源码中均有对应依据。主板选择入口定义于 Kconfig.nameBOARD_ASROCK_H77PRO4_M而 Kconfig 则通过一系列select语句确定了整块板的功能集合NORTHBRIDGE_INTEL_SANDYBRIDGE、SOUTHBRIDGE_INTEL_C216南北桥芯片组SUPERIO_NUVOTON_NCT6776板载 Super I/ODRIVERS_ASMEDIA_ASM1061ASMedia ASM1061 PCIe-to-SATA 桥接芯片驱动USE_NATIVE_RAMINIT使用 coreboot 原生 DDR3 内存初始化NRI不需要 vendor MRC 二进制MAINBOARD_HAS_LIBGFXINIT与INTEL_GMA_HAVE_VBT使用 libgfxinit 驱动集成显卡并携带 VBT 文件data.vbtHAVE_ACPI_RESUME、HAVE_ACPI_TABLES支持 ACPI 休眠恢复与 ACPI 表生成HAVE_CMOS_DEFAULT、HAVE_OPTION_TABLE内置 CMOS 默认值与可选参数表这是下文nvramtool能够修改cpu_fan_tach_src的前提BOARD_ROMSIZE_KB_8192固件 ROM 容量 8 MiB。board_info.txt 补充了板级元数据类别为 desktop发行年份 2012ROM 采用 DIP-8 封装、SPI 协议、可插拔socketed且 flashrom 支持标志为 y。设备树中的板载设备布局devicetree.cb 完整刻画了板载设备拓扑可与硬件规格一一对应北桥侧启用host_bridge、peg10PCIE1 x16 插槽SMBIOS 描述为 Gen3 x16、igd集成显卡南桥侧启用xhci、ehci1/ehci2、hdaHD Audio、mei1关闭gbe板载千兆网由 PCIe 根端口下的 Realtek RTL8111E 提供见pcie_rp6注释四个 PCIe 根端口pcie_rp1PCIE4Gen2 x4、pcie_rp5PCIE2Gen2 x1、pcie_rp6RTL8111E GbE、pcie_rp7PCIE3Gen2 x1、pcie_rp8ASM1061 SATA 控制器与文档中“三条额外 PCIe 插槽”及 ASM1061 桥接 SATA 的表述吻合SATA 配置sata_interface_speed_support 0x3支持 6 Gb/s 与 3 Gb/s、sata_port_map 0x3f6 个端口全部映射对应 PCH 的六个原生 SATA 口两个 6 Gb/s、四个 3 Gb/sUSB 配置superspeed_capable_ports 0x0000000f4 个 USB3 端口具备超速能力、xhci_switchable_ports 0x0000000f外加 14 端口usb_port_config表Super I/O 段pnp 2e.x启用了 Parallel port0x378/IRQ5/DRQ3、COM10x3f8/IRQ4、Keyboard、HWM硬件监控基址 0x0290以及多个 GPIO 逻辑设备subsystemid 0x1849 ...是 ASRock 的 PCI 子系统标识贯穿北桥、南桥、HDA、PCIe 根端口等设备。支持状态官方文档给出的测试基线为 SeaBIOS 1.14.0 与 2019-07-12 的 slackware64-livelinux-4.19.50后续又验证了 EDK IIMrChromebox 的 forkorigin/uefipayload_202207与 SeaBIOS 1.16.1 场景。Working可用Sandy Bridge 与 Ivy Bridge CPU实测 i5-2500、Pentium G2120四条 DIMM 的原生内存初始化USE_NATIVE_RAMINITPS/2 复合端口鼠标或键盘二选一libgfxinit 驱动的集成显卡覆盖全部显示输出DVI-D、HDMI、D-Sub。这一点由 gma-mainboard.ads 佐证HDMI1映射到 DVI-D 接口、HDMI3映射到 HDMI 接口、Analog映射到 D-Sub 接口PEG 插槽中的 PCIe 显卡以及全部三条附加 PCIe 插槽全部后置与内置 USB2/USB3 端口PCH 全部六个 SATA 口两个 6 Gb/s、四个 3 Gb/s与 ASM1061 桥接的两个 6 Gb/s SATA 口后置 eSATA 接口与一个 ASM1061 端口复用详见下文千兆以太网串口控制台输出EDK IIMrChromebox fork引导 Windows 10 (22H2) 与 Linux (5.19.17经 GRUB 2)SeaBIOS 1.16.1 引导 Windows 10需 VGA BIOS与 Linux经 extlinux使用 flashrom-1.2 进行内部刷写与外部刷写外部刷写实测使用 Raspberry Pi 1S3 挂起/恢复Linux 或 Windows 10 均可、断电关机。Not working不可用从 ASM1061 提供的两个 SATA 口引导系统NCT6776D Super I/O 的自动风扇控制目前没有 OS 无关的自动调速见下文。Untested未测试EHCI debug、S/PDIF 音频除绿色音频口外的其他音频接口及前置音频排针并口、红外/CIR除电源键以外的任何唤醒源。刷写 coreboot闪存芯片与分区布局官方文档记录的闪存信息如下项目值插槽式闪存是socketed可插拔芯片型号W25Q64.V容量8 MiB封装DIP-8写保护无双 BIOS 特性无内部刷写支持用ifdtool -f rom.layout backup.rom导出的闪存分区布局为00000000:00000fff fd # Flash Descriptor 00200000:007fffff bios # BIOS 00001000:001fffff me # Management Engine注意 BIOS 区从 0x00200000 开始意味着 ME 与描述符占据了低端 2 MiB而可刷写的 BIOS 镜像实际放在高端 6 MiB。内部刷写Internal Programming主 SPI 闪存可用 flashrom 访问。默认情况下只有 BIOS 区可写若要改动其他区域ME 或闪存描述符必须使用外部编程器。刷写 coreboot 的推荐命令$ sudo flashrom --noverify-all --ifd -i bios -p internal -w coreboot.rom参数含义-p internal使用主板自带 SPI 控制器内部编程器--ifd启用 Intel 闪存描述符解析只操作指定区域-i bios只写 BIOS 区域避免触碰 ME 与描述符-w coreboot.rom写入固件镜像--noverify-all必须使用——因为 ME 区域即使对宿主机也不可读若校验整个芯片会失败。外部刷写则需取下 DIP-8 芯片用 Raspberry Pi 等 SPI 编程器连接配合-p linux_spi:path/dev/spidevX.Y等外部编程器后端完成。刷写与救砖的完整流程请进一步阅读 刷写固件教程。硬件监控与风扇控制双 CPU 风扇排针的共享测速机制板上 CPU 散热器风扇排针共有两个CPU_FAN1 与 CPU_FAN2。它们在 Super I/O 上共享同一个风扇测速tachometer输入由板载逻辑选择哪一路信号能够到达该输入而这块选择逻辑由 Super I/O 的两根 GPIO 引脚控制。该机制在启动早期初始化源码 early_init.c 中有精确实现。其注释说明当 GP77寄存器E1h[7]为0时CPU_FAN1 的测速信号接通当 GP76寄存器E1h[6]为0时CPU_FAN2 的测速信号接通两者同时为0且两个风扇都接上时测速读数会出错。get_cpufanin_gpio_config()依据 CMOS 选项cpu_fan_tach_src返回写入寄存器E1h的值static u8 get_cpufanin_gpio_config(void) { switch (get_uint_option(cpu_fan_tach_src, CPU_FAN_HEADER_1)) { case CPU_FAN_HEADER_NONE: return 0xff; case CPU_FAN_HEADER_1: default: return 0x7f; case CPU_FAN_HEADER_2: return 0xbf; case CPU_FAN_HEADER_BOTH: return 0x3f; } }该值随后在bootblock_mainboard_early_init()中通过pnp_write_config(GPIO6789_DEV, 0xe1, ...)写入即在 bootblock 阶段就完成了测速源选择。对应地cmos.layout 中定义了这个 2 位的用户选项枚举 ID 7# cpu_fan_header (select which header provides the tachometer # signal to the Super I/O on its CPUFANIN input) 7 0 None 7 1 CPU_FAN1 7 2 CPU_FAN2 7 3 Bothcmos.default 给出的出厂默认值是cpu_fan_tach_srcCPU_FAN1。用 nvramtool 修改风扇测速来源如果固件构建时开启了CONFIG_USE_OPTION_TABLE本板 Kconfig 已通过HAVE_OPTION_TABLE支持用户可在运行时用 nvramtool 修改该设置$ sudo nvramtool -e cpu_fan_header [..] $ sudo nvramtool -w cpu_fan_headerCPU_FAN2 $ sudo nvramtool -w cpu_fan_headerNone $ sudo nvramtool -w cpu_fan_headerBoth-e--enum列出该选项的取值-w--write写入新值-r可读取当前值。该设置重启后生效。虽然可以选择并同时连接两个风扇排针但此时 Super I/O 会报告错误的风扇转速两路信号在共享测速输入上互相干扰。无自动调速时的替代方案当前固件层面没有 OS 无关的自动风扇控制这对应“Not working”列表中的 NCT6776D 自动风扇控制缺失。可以改用 lm-sensors 软件包中的fancontrol工具在操作系统内基于传感器温度读取 PWM 输出实现软件调速闭环。HWM 逻辑设备在 devicetree.cb 中被配置为基址0x0290且 NCT6776 的 HWM 寄存器通过irq 0x30 0xe1启用了风扇转速感知引脚。串口排针引脚定义Super I/O 提供的串口 1COM10x3f8/IRQ4见 devicetree.cb 中device pnp 2e.2暴露在板载排针上。RS-232 信号在排针上的分配方式很特别排针引脚号与 DE-9 连接器引脚号直接一一对应。俯视图如下------ N/C | | 9 | RI - pin 9 ------ Pin 8 - CTS | 8 | 7 | RTS - pin 7 ------ Pin 6 - DSR | 6 | 5 | GND - pin 5 ------ Pin 4 - DTR | 4 | 3 | TxD - pin 3 ------ Pin 2 - RxD | 2 | 1 | DCD - pin 1 ------排查串口不工作的实用建议检查你的挡板bracket是否采用相同的引脚分配不同厂商的串口挡板排线定义可能不一致切勿直接连接 TTL 电平设备——这是标准的 RS-232 电平需要像 MAX232 这样的电平转换芯片才能与 TTL UART 对接。固件侧串口初始化由bootblock_mainboard_early_init()中的nuvoton_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE)完成early_init.c。eSATA 复用机制后置 I/O 面板上的 eSATA 接口与内置接口 SATA3_A1 共享 ASM1061 上的同一个控制器端口。当 eSATA 上接入设备时板载多路复用器芯片会断开内部接口与 SATA 控制器的连接转而接通 eSATA 接口。该状态可以通过 Super I/O 的 GPIO 引脚 GP23 观察eSATA 接入设备时 GP23 为0否则为1。这也是文档明确记录的硬件行为配合 devicetree.cb 中pcie_rp8ASM1061 SATA Controller的启用配置即可理解整条链路。由于复用器的存在两块盘无法同时工作——这也解释了“Not working”列表中“无法从 ASM1061 的两个 SATA 口引导”的已知限制引导盘应接在 PCH 原生 SATA 口上。构建与调试要点固件镜像用标准 coreboot 构建流程生成参考 构建系统文档主目录MAINBOARD_DIR为asrock/h77pro4-mMAINBOARD_PART_NUMBER为H77 Pro4-MMakefile.mk 显示early_init.c与gpio.c同时编入 bootblock 与 romstagegma-mainboard.ads在开启 libgfxinit 时编入 ramstage——这印证了风扇测速源选择在 bootblock 阶段即生效、GPIO 配置在 romstage 早期完成的时序板级 GPIO 的完整设置PCH GPIO set1/set2/set3 的模式、方向、电平见 gpio.c可作为对照板卡硬件手册排查外设状态音频设备 verb 表Realtek ALC892 与 Intel Display Audio/HDMI 音频见 hda_verb.cACPI 表DSDT、_WAK/_PTS见 dsdt.asl 与 acpi/platform.aslCMOS 中还可配置gfx_uma_sizeIGP 显存32M–512M 共 16 档、sata_modeAHCI/Compatible/Legacy、power_on_after_fail等参数枚举定义均见 cmos.layout。综上ASRock H77 Pro4-M 是 coreboot 对 Sandy/Ivy Bridge 平台的成熟移植样本原生内存初始化、libgfxinit 显示输出、完整 SATA/USB/PCIe 支持一应俱全配合可插拔 DIP-8 闪存与内部刷写支持是一块对刷机用户相当友好的桌面主板。使用时请留意本文列出的已知限制ASM1061 引导、自动风扇控制、eSATA/内部 SATA 复用以规避坑点。赞分享固件嵌入式操作系统驱动开发【免费下载链接】corebootRead-only mirror of https://review.coreboot.org/coreboot.git. Synced every hour. We dont handle Pull Requests.项目地址https://gitcode.com/gh_mirrors/co/coreboot点击查看免费下载相关推荐coreboot 实战ASUS P8Z77-MSandy Bridge Panther Point主板移植与刷写指南coreboot 实战ASUS P8Z77 MSandy Bridge Panther Point主板移植与刷写指南 本文以 coreboot 官方文固件嵌入式操作系统驱动开发coreboot 主板支持指南System76 Bonobo Workstation 14bonw14规格详解与固件刷写coreboot 主板支持指南System76 Bonobo Workstation 14bonw14规格详解与固件刷写 本文以 coreboot 仓库中固件嵌入式操作系统驱动开发SFTPGo外接身份认证实战LDAP、OAuth2/OIDC单点登录配置完整教程SFTPGo外接身份认证实战LDAP、OAuth2/OIDC单点登录配置完整教程 SFTPGo 是一款功能完整的开源文件传输服务器同时支持 SFTP、FTP固件嵌入式操作系统驱动开发创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于 puppeteer-extra-plugin-stealth 的 `_template` 模板开发自定义反检测插件实战指南

基于 puppeteer-extra-plugin-stealth 的 `_template` 模板开发自定义反检测插件实战指南

网页爬虫浏览器控制测试 【免费下载链接】puppeteer-extra 💯 Teach puppeteer new tricks through plugins. 项目地址: https://gitcode.com/gh_mirrors/pu/puppeteer-extra 点击查看 免费下载 本文以 packages/puppeteer-extra-plugin-stealth/evasio…

2026/10/15 22:15:49 阅读更多 →
2020-2021中国开发者调查报告:数据挖掘与工程化分析实践

2020-2021中国开发者调查报告:数据挖掘与工程化分析实践

简介:《2020-2021中国开发者调查报告》由CSDN官方出品,面向IT行业决策者、市场研究人员及广大开发者,系统呈现中国开发者群体的技术行为与行业趋势。报告基于CSDN自2004年积累的开发者调查数据,结合年度问卷重新设计,并…

2026/10/15 22:15:49 阅读更多 →
GoAnime 移动端与社区生态全解析:Android 版 + Discord 社区怎么加入

GoAnime 移动端与社区生态全解析:Android 版 + Discord 社区怎么加入

【免费下载链接】GoAnime Search, stream and download anime, movies and TV shows from the terminal, in English and Brazilian Portuguese. 项目地址: https://gitcode.com/gh_mirrors/go/GoAnime 点击查看 免费下载 GoAnime 是一款基于 Go 语言、运行在终端里…

2026/10/15 22:15:49 阅读更多 →

最新新闻

C语言笔试算法18题:内存与指针驱动的闭环训练体系

C语言笔试算法18题:内存与指针驱动的闭环训练体系

1. 这不是题库搬运,而是一套可闭环复用的C语言算法训练体系“18个笔试考试算法 C语言”——看到这个标题,很多人第一反应是:又一个刷题合集?点开就背代码?先别急着划走。我带过几十届校招辅导班,也参与过多…

2026/10/15 22:57:23 阅读更多 →
函数极限与连续考点全梳理:从极限计算到间断点与零点定理

函数极限与连续考点全梳理:从极限计算到间断点与零点定理

简介:本资源为函数极限与连续专题练习题PDF,适合高等数学初学者巩固概念或备考阶段自测使用。内容围绕极限存在性、连续性、同阶与高阶无穷小、无穷小量等价性等核心考点,共设置14道选择题,并配有完整题干与选项,便于读…

2026/10/15 22:57:23 阅读更多 →
前后端分离实践:Vue3+SpringBoot游戏商店系统开发详解

前后端分离实践:Vue3+SpringBoot游戏商店系统开发详解

1. 从需求到架构:游戏商店系统到底在解决什么问题不少同学看到"基于PHP、asp.net、java、Springboot、SSM、vue3的基VUE的游戏商店系统"这个标题时,第一反应是"疯了,怎么这么多技术栈揉在一起"。其实把这个标题拆开看&am…

2026/10/15 22:57:23 阅读更多 →
18bits Sigma-Delta DAC设计:架构选型、调制器与数字滤波器全解析

18bits Sigma-Delta DAC设计:架构选型、调制器与数字滤波器全解析

简介:这份资源是哈尔滨工业大学2014年工学硕士学位论文《18bits Sigma-Delta DAC的设计》,面向具备电子工程基础、对数模转换与Sigma-Delta技术有一定了解的研发人员和技术爱好者,帮助读者理解高精度、大带宽数模转换器的系统级设计原理与实现…

2026/10/15 22:57:23 阅读更多 →
单卡跑大模型:airllm分层推理与量化压缩实战指南

单卡跑大模型:airllm分层推理与量化压缩实战指南

1. 单卡跑大模型这件事,到底卡在哪第一次看到 airllm 这个项目的时候,我正在一台只有单张消费级显卡的机器上折腾一个 70B 级别的模型。显存报错几乎是必然的,OOM 的红色提示刷了满屏,那种感觉就像你明明有一整间仓库的货&#xf…

2026/10/15 22:57:23 阅读更多 →
Claude Code + DeepSeek 从零安装教程:面向纯小白,6 步拥有自己的 AI 编程助手|TaoToken 统一 Key 接入

Claude Code + DeepSeek 从零安装教程:面向纯小白,6 步拥有自己的 AI 编程助手|TaoToken 统一 Key 接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 22:56:22 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →