内核地址https://github.com/Lichee-Pi/linux/tree/nano-4.14-exp
分支 nano-4.14-exp

内核的.config文件 根据官方提供的http://nano.lichee.pro/build_sys/kernel.html

spi flash启动

  1. 修改设备树
    arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts
    将原来的&spi0{…}替换为:

        &spi0 {pinctrl-names = "default";pinctrl-0 = <&spi0_pins_a>;status = "okay";spi-max-frequency = <50000000>;flash: w25q128@0 {#address-cells = <1>;#size-cells = <1>;compatible = "winbond,w25q128", "jedec,spi-nor";reg = <0>;   spi-max-frequency = <50000000>;partitions {compatible = "fixed-partitions";#address-cells = <1>;#size-cells = <1>;partition@0 {label = "u-boot";reg = <0x000000 0x100000>;read-only;};partition@100000 {label = "dtb";reg = <0x100000 0x10000>;read-only;};partition@110000 {label = "kernel";reg = <0x110000 0x400000>;read-only;};partition@510000 {label = "rootfs";reg = <0x510000 0xAF0000>;};};};};
    

    重新编译设备树

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs -j4
    
  2. 配置内核
    (1) make ARCH=arm menuconfig
    (2) 勾选 File systems ‣ Miscellaneous filesystems ‣ Journalling Flash File System v2 (JFFS2) support
    (3) 修改源码下的 ./drivers/mtd/spi-nor.c
    vi ./drivers/mtd/spi-nor/spi-nor.c
    注释掉以下一行:
    //{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) },
    在这一行下面增加一项:

      { "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, 0) },
    

    (4) 重新编译内核

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
    

问题

Waiting for root device /dev/mtdblock3…


解决:
内核配置中增加

caching block device access to MTD devices必须加 我就是卡在这
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y

VFS: Cannot open root device “mtdblock3” or unknown-block(31,3): error -19

这个问题是文件系统格式导致的,在内核配置中增加 jffs2 的支持

这个是我最后一个坑 启动成功了。

设备树使能

dtb-$(CONFIG_MACH_SUNIV) += \suniv-f1c100s-licheepi-nano.dtb

f1c100s kernel调试记录相关推荐

  1. f1c100s spi nand 128MB W25N01G 调试记录

    f1c100s 128MB W25N01G spi nand调试记录 镜像使用说明 镜像位置images文件夹 uboot-with-spl-usb.bin FEL模式下使用的uboot镜像 uboo ...

  2. RV1126 调试记录

    RV1126 调试记录 ######################################################################################## ...

  3. FPGA SATA IP控制器的SATA接口调试记录

    本文档是基于FPGA K7 SATA IP控制器的SATA接口调试记录,接口遵循标准的ACHI协议. 操作系统内核版本:5.4.18 由于K7PCIE只有3个bar,AHCI协议规定SATA控制器是在 ...

  4. AML8726调试记录

    一:源代码下载: 1:Installing Repo # mkdir ~/bin # PATH=~/bin:$PATH # curl https://dl-ssl.google.com/dl/goog ...

  5. RK3568开发笔记-EDP显示屏接口调试记录

    目录 文章目录 前言 一.edp显示接口介绍 二.edp接口部分原理图 三.edp接口显示屏参数介绍 四.RK3568设备树参数配置 五.完整DTS edp参数 六.RK3568多屏显示vop选择 七 ...

  6. 2020-02-24 RK3288 Android7.1 5.1 增加AP6256 WI-FI Bluetooth调试记录

    RK3288 Android7.1 5.1 增加AP6256 WI-FI Bluetooth调试记录 一.硬件连接图,AP6335.AP6255.AP6256 Pin对Pin,可以直接替换. 二.原本 ...

  7. android 蓝牙 驱动,转个蓝牙修改帖--Android BCM4330 蓝牙BT驱动调试记录

    本帖最后由 旋律2014 于 2014-3-27 09:15 编辑 一.关于BT driver的移植: 1. Enablebluetootch in BoadConfig.mk BOARD_HAVE_ ...

  8. rk3368 Android9.0 HIDL调试记录

    rk3368 Android9.0 HIDL调试记录 Platform: RK3368 OS: Android 9.0 Kernel: 4.4.194 文章目录 rk3368 Android9.0 H ...

  9. selinux移植调试记录

    LINUX平台selinux移植调试记录 前言 什么是selinux 主要作用 selinux的组成 工作模式 工作流程 查看当前的文件或进程的安全上下文 uboot和kernel中的配置 refpo ...

最新文章

  1. ul li设置横排,并除去li前的圆点
  2. Docker(九):Docker实战 安装 Ubuntu
  3. Numpy生成二项分布随机数
  4. PPT资料下载 - 问题驱动的软件测试设计:强化测试用例设计
  5. 计算机科学概论ppt免费,计算机科学概论(第9版)Lecture_slide07.ppt
  6. 一个高成熟度组织的规程和指南目录
  7. java手机飞行模式_用了这么多年手机才知道,飞行模式还藏着这6个功能!太好用了...
  8. vscode怎么自动将px转换成vw_基于react/vue移动端适配之px自动转rem、vw
  9. 分布式 dynamips+dyangen (更新于07.3.30)
  10. [Unity] Animator 播放 Mixamo 动画卡在第一帧的解决办法:勾选 Loop Time
  11. SQL.变量、运算符、if、while
  12. Java:Spring的IOC原理(大白话解释)
  13. 最基本的01背包问题
  14. vs2013 c++代码内出现中文导致编译错误
  15. 10分钟入门Shell脚本编程
  16. C语言题目:从键盘输入三个数,求三角形面积和周长
  17. 30个 CSS 样式常用的静态形状
  18. 欠款人署名故意签错,怎么维权
  19. android市场低迷,销量低迷 安卓厂商mini产品或面临策略调整
  20. 亲身实践,效果显著,让“轻断食”帮你打扫一下身体吧~

热门文章

  1. linux mysql编译参数,Mysql 编译参数详解
  2. invalidate()和postInvalidate() 的区别及使用
  3. CSS面试题整理汇总
  4. MySQL数据库基本管理
  5. 【技术分享】IS-IS 概述
  6. U-Net实现医学图像分割(pytorch)
  7. 阿里云直播鉴权和直播地址算法
  8. Muli3D 1 下载与编译
  9. 计算机网络校招面试题总结
  10. 【Latex】Latex调整行间距