基于荔枝派Lichee Nano(全志f1c100s)的kernel移植(二)

  • 1.获取源代码
  • 2.linux内核修改dts设备树文件
  • 3.内核配置修改
    • 3.1.使用命令进入配置界面
    • 3.2.支持jffs2文件系统
    • 3.3.支持MTD设备
  • 4.添加flash型号支持
    • 4.1修改源码下的 ./drivers/mtd/spi-nor/spi-nor.c,增加xt25f128b型号。
  • 5.编译

1.获取源代码

1.下载默认带480*272LCD的版本:git clone --depth=1 -b f1c100s-480272lcd-test https://github.com/Icenowy/linux.git

2.或者下载不带LCD驱动的版本:git clone --depth=1 -b f1c100s https://github.com/Icenowy/linux.git

2.linux内核修改dts设备树文件

1.修改内核源码目录下的 ./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts

//==============================================================
说明:(注意这里我的板子上的SPI Flash型号是xt25f128b,因此上面的型号填的是xt25f128b,官方默认是w25f128,要根据自己板上的型号修改,对应的分区也在里面,烧录的时候需要用到)

由于我们使用的nor flash是xt25f128b,所以需要更改对应的flash型号,将原内容:

&spi0 {pinctrl-names = "default";pinctrl-0 = <&spi0_pins_a>;status = "okay";flash@0 {#address-cells = <1>;#size-cells = <1>;compatible = "winbond,w25q128", "jedec,spi-nor";reg = <0>;spi-max-frequency = <40000000>;};
};

更改为:

&spi0 {pinctrl-names = "default";pinctrl-0 = <&spi0_pins_a>;status = "okay";spi-max-frequency = <50000000>;flash: xt25f128b@0 {#address-cells = <1>;#size-cells = <1>;compatible = "winbond,xt25f128b", "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>;};};};
};

//==============================================================

3.内核配置修改

3.1.使用命令进入配置界面

make ARCH=arm menuconfig

3.2.支持jffs2文件系统

File systems  --->[*] Miscellaneous filesystems  ---><*>   Journalling Flash File System v2 (JFFS2) support 

3.3.支持MTD设备

Device Drivers  --->                                                                <*> Memory Technology Device (MTD) support  ---><*>   Caching block device access to MTD devices

4.添加flash型号支持

4.1修改源码下的 ./drivers/mtd/spi-nor/spi-nor.c,增加xt25f128b型号。

//找到如下数组,并修改

      static const struct flash_info spi_nor_ids[] = {……{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) },//新增xt25f128b型号的spi flash支持{ "xt25f128b", INFO(0x0b4018, 0, 64 * 1024, 256, 0) },     //添加这行即可……};

//如果是其他型号则将型号和对应的ID加入这个表中即可,如果是默认的w25q128,则需要将后面的SECT_4K改为0,如下:

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

5.编译

  1. 建议使用如下命令编译:
# 为了加快编译速度,请自行更改线程数
# 覆盖.config文件
cp config configs/.config   //这个没有的话就手动配置,其实上面已经配置好了。
# 编译内核,生成zImage
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
# 编译dts,生成dtb文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs -j8
# 编译内核模块,并输出到out目录
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=out modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=out modules_install
  1. 编译完成后会生成如下两个文件:
./arch/arm/boot/zImage
./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb
./out/lib/modules


基于荔枝派Lichee Nano(全志f1c100s)的rootfs移植(三)
链接: link.(https://blog.csdn.net/qq_39721016/article/details/123400520?spm=1001.2014.3001.5501)

基于荔枝派Lichee Nano(全志f1c100s)的kernel移植(二)相关推荐

  1. 基于荔枝派Lichee Nano(全志f1c100s)的rootfs移植(三)

    基于荔枝派Lichee Nano(全志f1c100s)的rootfs移植(三) 1.下载Buildroot代码包 2.解压文件,获得源代码 3.配置Buildroot 4.编译 5.生成rootfs. ...

  2. 玩转RT-Thread之荔枝派Nano(全志F1C100S) 新手上路

    玩转RT-Thread之荔枝派Nano(全志F1C100S) 一.新手上路 --作者:燕十三(flyingcys) blog:http://blog.csdn.net/flyingcys --荔枝派n ...

  3. 荔枝派 Nano 全志 F1C100s 编译运行 Linux 笔记

    首先是荔枝派的官方文档,写的不是很细,应当说我们必须明确几点: 出厂时 SPI Flash 自带了一个 U-Boot+Linux Kernel(出厂的时候可能烧过了),可直接拿来用.如果希望自己烧固件 ...

  4. 荔枝派 Nano 全志 F1C100s 编译运行 Linux ubuntu并升级gcc

    首先是荔枝派的官方文档,写的不是很细,应当说我们必须明确几点: 出厂时 SPI Flash 自带了一个 U-Boot+Linux Kernel(出厂的时候可能烧过了),可直接拿来用.如果希望自己烧固件 ...

  5. 基于荔枝派Nano学习Buildroot的构建过程

    文章目录 0. 声明 1. 前言 2. 开发环境以及工具准备 2.1 主机系统 2.2 编译工具链 3. 构建系统Buildroot 3.1 工程配置 (1)首次构建工具链的情况 (2)使用外部工具链 ...

  6. 新手玩荔枝派 f1c100s nano折腾笔记(二)

    查看文件信息 stat xxx 安装sunxi tools sudo apt install libz libusb-1.0-0-dev 报错unable  to libz 改为sudo apt in ...

  7. 新手玩荔枝派 f1c100s nano折腾笔记(三)

    应用开发篇: minimal_f1c100s-framebuffer.zip 荔枝派 nano引脚图 使用OTG功能没办法挂载U盘,插入TF卡,开机自动TF卡启动,开机后插入TF有提示,但找不到盘. ...

  8. lichee nano 荔枝派入门——linux内核

    获取源代码 见<lichee nano 荔枝派入门--搭建环境> 个人建议使用如下命令克隆内核代码: # 下载默认带480*272LCD的版本 git clone --depth=1 -b ...

  9. lichee nano 荔枝派入门——u-boot

    获取源代码 见上一篇文章<lichee nano 荔枝派入门--搭建环境> 切换分支 切换到lichee nano的代码分支,在u-boot目录下操作: # 查看分支 git branch ...

最新文章

  1. MFC调用批处理文件(.bat)
  2. Sprint第二个冲刺(第八天)
  3. 行波和驻波动画演示gif_新技能get√ | 语文课上的笔顺动画可以这么做
  4. layui table 弹出层刷新_layui 关闭open弹出框 刷新table表格页面的方法
  5. MATLAB 最大对角矩阵
  6. iconmobileu驱动设置教_不求人,超简单打印机共享设置!
  7. Flask 第三方组件之 login
  8. 自增ID有什么坏处?什么样的场景下不使用自增ID?
  9. python脚本报错:OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
  10. Android应用开发以及设计思想深度剖析(3)
  11. FFmpeg进行推流的两种方法
  12. VC编程中,判断野指针
  13. python从网页提取文本_使用Python进行网页正文提取
  14. 港中文深圳校区计算机研究生怎么样,香港中文大学(深圳)大概相当于国内什么水平高校...
  15. 查看k8s的etcd数据
  16. pytorch教程 聊天机器人(详细注释attentionrnn输入输出shape等知识点...
  17. redis主从和集群
  18. Cesium交流群链接
  19. Linux桌面i3与i7,IT小干货 | i3.i5.i7.i9有什么区别?桌面篇
  20. 挑逗Java程序员的那些Scala绝技

热门文章

  1. Agora Flat 开源教室一周年总结
  2. 《一本小小的蓝色逻辑书》读书笔记
  3. 全力推进加速到来的机器人时代 2022
  4. 出差准备攻略(个人备忘录)!
  5. Pomelo Heartbeat
  6. 为什么是base64编码,而不是base32、base16、base63?
  7. 【STM32】 4X4矩阵键盘电路
  8. Linux的二进制文件无法运行
  9. UBTC主网已实现智能合约及混合共识机制!
  10. 关于Effect11 中D3DX11CompileEffectFromMemory返回E_NOITERFACE问题总结。