全世界仅有的唯一最高LINUX版本的白菜路由,支持NAND记
在上上篇 真千兆路由的极限之OPENWRT MAKE, 某品牌白菜价QCA9558/QCA9880/QCA8337N纯种组合OS搭建时记 里,有没有还记否之模式退一步,海阔天空
回到了远古时代的ar71xx,有了一次完整功能的白菜路由OS搭建,不经意在续集show一下内涵,就此打住,从那天起,主板和电源分居两地,过着悠然自得的积灰生活
然后前天吧,峰回路转,又梦到了仙人,仙人一闪而过,什么都没有表示,就醒了,看了看时间,天还没有亮,起床一股欧气袭来,哇好欧,不经意就喃喃起来,有气相持,想起这块写博文的白菜路由,精神抖擞,躺下,一夜无梦,大白天,打开visual studio 2019, 我看着一堆H文,心里难免有些失落,因为对着屏幕发呆,显然不是特长,于是乎,摆弄起了电源,插入,拔出,插入,拔出, 不知道多少回合后,小H太太熟悉的界面又出现在浏览器中,有些失落,为什么小Han太太有这么强的恒心作了这么多版本的引导,而自己却只能在linux 4.14下面无趣的编译出一个过时的白菜OS?
不,不能落人之后!欧气在积聚,一点点感到卡槽要满了,于是,一个idea诞生了,让ath79回到ar71xx的模型,愤然删去几个patch后,duang,duang,duang, ar934x_nfc竟然成功probe了,这...不敢相信,syslog就是这样显示的,然后一堆irq错误,确认driver和linux 4.19的完美兼容后(一堆dma好担心啊),我恢复了几个patch, 手动调用了ath79_cpu_irq_init和ath79_misc_irq_init,发现一开始就报错了,此时此刻,感悟到了这样一个肤浅的真理:两种irq模型正在激烈的冲突,一种是旧体制下代表code first的irq函数式声明,一种是新体制下代表dt first的irqchip的全局式树形属性,这是第一次不看书没有教材得到的真理,遥想起WPF也有类同的表现
既然二者只能选其一,呼呼两股怄气,又恢复到了原来的样子,然后只有两条路径清晰的展现在眼前,一条是可以借鉴的捷径(Read can take up to 30us, erase up to 2ms and program up to 350us according to general OneNAND specs),另一条是理清ar71xx和ath79分别对irq的初始序列和占用情况,穿插需要的irq=29, 这便成了一个项目经典的选型判断题,答案不言而喻,于是有了下图:
对比上次贴的好像多了几百k, 原因是这次格式化后vol好像多了两个logical eraseblock,至此全世界仅有的功能健全的运行在linux4.19 ath79下的白菜路由已经实现了nand driver的migration.
再一次回顾一下白菜的规格 QCA9558 + QCA9880 + QCA8337N 256M ram, 16+128M flash, 不要999, 不要99, 我可以认真地挑战全世界最便宜的路由,不服来战?最后还是由衷地感谢小Han太太,没有H的辛勤付出,不可能写出这样的博文,再次感谢 (✿◠‿◠)
我好了,你呢?
OVER.
全世界仅有的唯一最高LINUX版本的白菜路由,支持NAND记的更多相关文章
- Linux版本划分——基于打包方式
基于Dpkg (Debian系) Debian GNU / Linux是一种强调使用自由软件的发行版.它支持多种硬件平台.Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为包管 ...
- Gpload安装手册(Linux版本)
Gpload安装手册(Linux版本) 一.python 2.7版本 Linux系统默认是安装python2.7的,如果没有需要手动安装(python版本要求2.4.4以上): 通过命令:python ...
- Linux - 版本控制系统SVN
0. 摘要 本文通过搭建SVN多版本库为例,介绍SVN的使用. SVN是一个集中式版本控制系统,在服务端部署中央版本库,所有开发人员客户端连接到中央版本库进行代码的提交和更新. Apache Subv ...
- 常见Linux版本
一 常见Linux版本 website feature description http://www.ubuntu.com/ 当前最流行 Ubuntu 正是基于 Debian 之上,旨在创建一个可 ...
- 不同linux版本下内核/系统/软件的安装及查询
(一)先介绍下使用apt-get 和使用yum 包管理工具的不同用法: 1.先看yum(redhat) yum的配置文件是/etc/yum.conf 更新:yum update 安装:yum inst ...
- 【Linux】一步一步学Linux——Linux版本(03)
目录 00. 目录 01. Linux内核版本 02. Linux内核官方网站 03. Linux发行版本 04. Linux发行版本介绍 4.1 Ubuntu 4.2 RedHat 4.3 Debi ...
- MYSQL—第二部分(Linux版本的安装和数据表的操作)
Linux版本的安装(过于简单了) 安装: ? 1 yum install mysql-server 服务端启动 ? 1 mysql.server start 客户端连接 ? 1 2 3 4 5 6 ...
- 使用VS+VisualGDB编译Linux版本RCF
RPC通信框架--RCF介绍中说了,RCF本身是支持跨平台的,其代码放到Linux平台,是可以通过gcc.make等工具,编译通过的. 官方提供的源码中,只有cmake编译脚本,并没有提供Makefi ...
- 查看linux版本
http://nameyjj.blog.51cto.com/788669/557424 1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version ...
随机推荐
- Linux命令学习-mv命令
Linux中,mv命令的全称是move,主要作用是移动文件或文件夹,类似于Windows下的剪切功能,同时还可以用于修改名字. 假设当前处于wintest用户的主目录,路径为 /home/wintes ...
- JavaScript 之迭代方法
前言:关于 JS 中为数组定义的迭代方法,我最开始是在<JavaScript高级程序设计>中学习的,然后...我并没有看懂,后来翻阅各个大佬的博客,稍微理解了那么一丢丢.以下就是我的一点见 ...
- NetCore AutoMapper的封装
需要引用AutoMapper的Nuget包 如果需要忽略某个字段就在字段上面打标签如下: [IgnoreMap] public string IgnoreValue { get; set; } ...
- Java编程思想:File类list()方法
import java.util.regex.Pattern; import java.io.File; import java.io.FilenameFilter; public class Tes ...
- [记录]FIO测试磁盘iops性能
FIO测试磁盘iops性能 1.SATA和SAS盘原生IOPS如下: 2.RAID磁盘阵列对应的写惩罚级别: 3.计算功能性IOPS公式如下: 功能性 IOPS=(((总原生 IOPS×写 %))/( ...
- 巧力避免ViewPager的预加载数据,Tablayout+Fragment+viewPager
问题描述 最近在进行一个项目的开发,其中使用到了Tablayout+Fragment+viewPager来搭建一个基本的框架,从而出现了设置数据适配器的时候,item的位置错乱问题.我打印log日志的 ...
- C# 怎样将DateTime类型进行日期的加减
C#中 DateTime类型有封装好的函数 例如: //将当前时间转换为指定格式的DateTime类型 DateTime dt=DateTime.Parse(DateTime.Now.ToString ...
- asp.net core 系列之静态文件
这篇讲解asp.net core中的静态文件(大致翻译于官网). 静态文件,例如HTML,CSS, images和JavaScript. 要想直接被客户端访问,需要做一些配置. 一.Serve sta ...
- 为 Editor.md 编辑器插件增加预览和发布按钮
前言 一直在使用 Editor.md 插件作为博客的编辑器,用着挺好,但是在全屏下编辑时,每次想预览或者保存又必须切换到非全屏状态下才可以点击按钮,用着不舒服,所以花了一点时间在工具栏上增加了预览.保 ...
- phpStudy集成环境apche+openssl配置本地https
OpenSSl windows环境搭建 网上各种文章都说需要下载多个工具,实际上只要一个程序就好,下载地址http://slproweb.com/products/Win32OpenSSL.html ...