Debian for MT7621 折腾记 (3) - 编译 Debian Kernel Package

转载请注明原帖链接和作者!

现在 Debian 已经能基本正常运行了,但是缺少一点最重要的东西,那就是内核模块。

虽然可以直接将 OpenWrt 编译出的 ko 复制到 Debian 中加载,但是这却有不少问题:
1. ko 被精简过,缺少必要信息,如 depmods
2. 编译的 ko 很少
3. 无法被自动加载/按需加载

此外,使用 OpenWrt 的 ko,而不自己编译,会导致系统缺少针对当前 Kernel 的头文件,无法实现在 Debian 中编译自己的 ko。

因此,我需要自己编译 Debian Kernel,也就是修改原始的 Debian Ke[......]

阅读全文

Debian for MT7621 折腾记 (2) - 实现 MT7530 DSA

转载请注明原帖链接和作者!

OpenWrt 自带的 swconfig 功能对于 Debian 来说,就不是那么好用了。除此之外,Linux 对交换机的支持就只剩 DSA 了。幸好 MT7530 有 DSA 驱动。

但是 MT7530 的 DSA 驱动是给 MT7623 用的,里面硬编码了很多 MT7623 的设置,还用到了很多 MT7621 中不存在的东西,例如 Power domain。
这些都需要全部去掉,并为 MT7621 添加所需的代码。

此外,用于 MT7621 的以太网驱动 mtk_soc_eth 也一团糟,里面杂揉了各个芯片的代码,不纯粹,不适合拿给[......]

阅读全文

Debian for MT7621 折腾记 (1) - 实现基础系统正常启动

转载请注明原帖链接和作者!

路由器平台一般都使用 OpenWrt 这个 Linux 发行版。但是对于 MT7621 这样的性能稍微较高的 CPU 而言,跑 OpenWrt 感觉有些浪费,毕竟 OpenWrt 是精简系统,不仅缺少各种常用软件包,已有软件包也是各种精简,缺少功能。不仅如此,OpenWrt 的整个系统架构也十分精简,缺少扩展性。因此我打算换用一个常见的 Linux 发行版。

说到常见的 Linux 发行版,最容易想到的就是 Debian 了。Debian 官方提供 MIPS 平台的成品 image。虽然相对于 Debian,我更倾向于使用其衍生版 Ubuntu。[......]

阅读全文

破解「清华同方 超越 S100」的 BIOS 密码限制

转载请注明原帖链接和作者!

手里有个小主机,型号是 清华同方 超越 S100,配置很低,Intel Atom 230 的 CPU,百兆有线,只有VGA接口,以及常规的 SATA、USB、RS232、LPT、音频。主板有 PCI 槽,然而机箱里并不支持插 PCI 卡。
配置这么低的电脑,居然还不能让人安心用。。。

第一次拿到开机时,提示 CMOS 信息无效,带电重启就不再提示,断电后再开机就会提示。看来是电池没电了,那么换一个吧。
换了电池后,这个问题是没有了,然而新的问题出现了:每次开机,BIOS都会要求输入密码,不然什么都进不去。。
经过多方查找,得知了BIOS 默[......]

阅读全文

用 Bus Blaster v4 调试 MT7621 路由器

转载请注明原帖链接和作者!

一年多以前,曾经尝试用 Bus Blaster v4 配合 OpenOCD 来调试 MT7621,但是一直没有成功。OpenOCD 虽然能够识别 CPU,识别出 5 个 TAP(当时也不知道为什么会识别出 5 个来,MT7621 明明是双核四线程的,应该是 4 个才对),但是始终无法正常执行指令,因此也就无法继续进行后续的操作。这个问题一直困扰着我,直到最近才得以解决。

前几天在公司用 Trace32 调试 MT7621 的 U-Boot 时,发现了一个奇怪的现象:
首先介绍一下 MT7621 的一个缺陷:MT7621 的 RESET_L 引脚[......]

阅读全文

记一次 mingw-w64 工具链的制作过程

早先在 Windows 下使用 MSYS + MinGW32 来制作 mips 工具链的过程让我记忆犹新:那就是在 Linux 里只要数分钟就能编译完成的 libgcc.a 在 Windows 里面需要半个小时以上才能完成,而且到最后使用 ar 命令将一堆 .o 文件合并为 .a 时,居然因为命令行超过 32KB 而导致命令执行失败。到最后是直接使用了 Linux 里面编译好的文件。

哎。。。这都是 Windows 过于复杂的进程创建机制导致的。。。

最近打算更新 MinGW 环境,发现 mingw-w64 比 mingw32 更优秀,因此就打算制作一个基于最新 gcc 的 min[......]

阅读全文

探究:AR/QCA 芯片通过 APB 访问内置交换机寄存器

从 AR9341 开始,AR/QCA 芯片的 datasheet 上都会列出一个寄存器的某一位的作用:

eth_cfg

其中提到:

设置 0x18070000 寄存器的第9位 (SW_APB_ACCESS) 为1,可以从 APB——也就是通过内存地址访问交换机的寄存器而不是通过MDIO来访问。

但是 datasheet 通篇没有提到设置后交换机的寄存器将被映射到的内存地址基址。

根据 AR/QCA 芯片的 APB 布局来看,旧的布局不会改变,要改变只会改变新的未使用的地址。

QCA9531 的 APB 布局:

apb

通过观察可以发现 APB 新增的寄存器映射地址都[......]

阅读全文

E420S 破解白名单续——解决无线开关无法激活的问题

最近又换了个AR9380网卡,这个网卡支持2.4GHz/5GHz双频。但是这个网卡安上后,每次计算机重启,BIOS的无线开关都会变成 Off,估计是之前破解的白名单限制没有破解干净吧。。每次开机先进 BIOS 开无线显然不爽,但我又不想再去改 BIOS 了,风险太大。看来必须换个办法了。

BIOS 无线开关

说来之前在X宝上买无线网卡时,曾看到有条评论说屏蔽网卡上的某个脚可以怎么怎么样的。于是我赶紧去找了一份 Mini PCI-E 的资料,果然看到了这样的说明:

Mini PCI-E Pin-20

第 20 脚果然是用来禁用无线的。根据资料,此脚不仅用于禁用无线,也被 BIOS 用来测试此无线网卡。屏蔽此脚就能防止无线被[......]

阅读全文

E420s BIOS 无线网卡白名单限制的分析与破解

获取信息:

原装无线网卡 PCI VID=10EC DID=8176 SUBSYS=819510EC。

我买的新无线网卡是 Atheros AR9287,其 PCI VID=168C DID=002E SUBSYS=30A4168C。

将其插入笔记本,然后开机,得到如下错误提示:

1802: Unauthorized network card is pluggedin - Power off and remove the miniPCI network card (168C/002E/168C/30A4).

System is halted

解包 BIOS:[......]

阅读全文

笔记本无线网卡更换记

我的笔记本是 ThinnkPad E420s,质量很好,被我拆机无数次,主板上有几个电容都被我摁碎了,仍然照常运行(还好是电容)。但是————一个很大的问题,就是无线网卡。

无线网卡是 Realtek RTL8188CE,150M。这个网卡在 Windows 下使用还没什么,但在 Linux 下,就极不稳定。因为驱动的关系,无线网每隔10几分钟就会断开,需要重连。这是让人非常不爽的。另外,因为路由是 300M 的,这个网卡连带宽都不能完全使用,简直是浪费。

于是乎,我就想到了更换无线网卡。由于之前研究路由器,积累了一些无线网卡芯片的信息,我决定选用和我的 300M 路由一个型号的无[......]

阅读全文