在上上篇 真千兆路由的极限之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记的更多相关文章

  1. Linux版本划分——基于打包方式

    基于Dpkg (Debian系) Debian GNU / Linux是一种强调使用自由软件的发行版.它支持多种硬件平台.Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为包管 ...

  2. Gpload安装手册(Linux版本)

    Gpload安装手册(Linux版本) 一.python 2.7版本 Linux系统默认是安装python2.7的,如果没有需要手动安装(python版本要求2.4.4以上): 通过命令:python ...

  3. Linux - 版本控制系统SVN

    0. 摘要 本文通过搭建SVN多版本库为例,介绍SVN的使用. SVN是一个集中式版本控制系统,在服务端部署中央版本库,所有开发人员客户端连接到中央版本库进行代码的提交和更新. Apache Subv ...

  4. 常见Linux版本

      一 常见Linux版本 website feature description http://www.ubuntu.com/ 当前最流行 Ubuntu 正是基于 Debian 之上,旨在创建一个可 ...

  5. 不同linux版本下内核/系统/软件的安装及查询

    (一)先介绍下使用apt-get 和使用yum 包管理工具的不同用法: 1.先看yum(redhat) yum的配置文件是/etc/yum.conf 更新:yum update 安装:yum inst ...

  6. 【Linux】一步一步学Linux——Linux版本(03)

    目录 00. 目录 01. Linux内核版本 02. Linux内核官方网站 03. Linux发行版本 04. Linux发行版本介绍 4.1 Ubuntu 4.2 RedHat 4.3 Debi ...

  7. MYSQL—第二部分(Linux版本的安装和数据表的操作)

    Linux版本的安装(过于简单了) 安装: ? 1 yum install mysql-server 服务端启动 ? 1 mysql.server start 客户端连接 ? 1 2 3 4 5 6 ...

  8. 使用VS+VisualGDB编译Linux版本RCF

    RPC通信框架--RCF介绍中说了,RCF本身是支持跨平台的,其代码放到Linux平台,是可以通过gcc.make等工具,编译通过的. 官方提供的源码中,只有cmake编译脚本,并没有提供Makefi ...

  9. 查看linux版本

    http://nameyjj.blog.51cto.com/788669/557424 1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version     ...

随机推荐

  1. jQuery 自带的动画效果

    1.方法: show:显示选中元素. hide:隐藏选中元素. toggle:显示或隐藏选中元素. fadeIn:将选中元素的不透明度逐步提升到100%. fadeOut:将选中元素的不透明度逐步降为 ...

  2. 利用反射模拟一个spring的内部工作原理

    这个简单的案例是实行了登录和注册的功能,没有链接数据库.  在bean中id 是唯一的,id和name的区别在于id不能用特殊字符而name可以用特殊字符,比如:/-\.... package com ...

  3. 六、IO流——文件

    IO流1.字节流(InputStream.OutputStream)2.字符流 (Reader.Writer)3.缓冲流(BufferedInputStream.BufferedOutputStrea ...

  4. [Lua]索引极致,form.lua

    local form = {_tag = 'form'} function form.build(tag, super) local target = { _tag = tag, _super = s ...

  5. 怎样手势的判断android GestureDetector在android开发中

    import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view. ...

  6. 流动python - 写port扫描仪和各种并发尝试(多线程/多进程/gevent/futures)

    port扫描仪的原理非常easy.没有什么比操作更socket,能够connect它认为,port打开. import socket def scan(port): s = socket.socket ...

  7. mouseleave 和 mouseout 区别

    jQuery中的mouseleave和mouseout的区别 $("li").each(function(i) {            //删除的鼠标划过的显示与隐藏       ...

  8. win8 64位+Oracle 11g 64位下使用PL/SQL Developer 的解决办法

    1)安装Oracle 11g 64位2)安装32位的Oracle客户端( instantclient-basic-win32-11.2.0.1.0)下载 instantclient-basic-win ...

  9. 压缩网站的css和js,合并多个文件到一个文件

    压缩网站的css和js,合并多个文件到一个文件uglifyjs index.js html5shiv.min.js -o all.min.jsuglifycss index.min.css web.c ...

  10. JavaScript面向对象--封装

    一.封装的概念 面向对象的类包括两大成员,一种是暴露给外部的接口,另一种是只在类内部才能访问的私有属性.在这个类被实例化成对象后,用户只能通过操作给定的接口来访问该类内部的私有属性,这就被称为面向对象 ...