基于BCM53262交换芯片平台的Linux操作系统移植(三)之配置文件修改

2023-10-31

2018/05/09 10:49 zhoulinhua@2018-05-10

一、单板类型支持

1.修改at91sam9x5ek_defconfig定制软件匹配当前单板

buildroot-at91/configs/at91sam9x5ek_defconfig

备注:先备份为at91sam9x5ek_defconfig_bak

1)修改配置bootstrap文件为:at91sam9x5ekdf_uboot

BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9x5ekdf_uboot"

2)修改配置u-boot文件为:at91sam9x5ek_spiflash

BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9x5ek_spiflash"

修改之后对比:

diff at91sam9x5ek_defconfig at91sam9x5ek_defconfig_bak

20c20

< BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9x5ekdf_uboot"

---

> BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9x5eknf_uboot"

26c26

< BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9x5ek_spiflash"

---

> BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9x5ek_nandflash"

 

3)支持jffs2文件系统

两种方法修改编译jffs2文件系统

a、修改at91sam9x5ek_defconfig文件

BR2_TARGET_ROOTFS_UBIFS=y

BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000

BR2_TARGET_ROOTFS_UBI=y

BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048

修改为:

BR2_TARGET_ROOTFS_JFFS2=y

BR2_TARGET_ROOTFS_JFFS2_FLASH_64=y

BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x10000

BR2_TARGET_ROOTFS_JFFS2_LE=y

 

或者在make menuconfig配置界面进行勾选

 

2.at91bootstrap,修改启动uboot在SPI-FLASH的位置为0x10000

修改at91bootstrap根目录下的Config.in.u-boot文件(at91bootstrap/Config.in.u-boot)

default "0x00008000" if CONFIG_DATAFLASH

为:

default "0x00010000" if CONFIG_DATAFLASH

3.修改at91sam9x5ek_spiflash_defconfig定制uboot匹配当前单板

u-boot-at91/configs/at91sam9x5ek_spiflash_defconfig

1)增加n25q128、is25lp128 SPI-FLASH支持

a、在at91sam9x5ek_spiflash_defconfig添加:

CONFIG_SPI_FLASH_STMICRO=y

CONFIG_SPI_FLASH_ISSI=y

或者在make menuconfig配置界面进行勾选

 

b、在drivers/mtd/spi/Kconfig文件中增加ISSI FLASH配置

config SPI_FLASH_ISSI

bool "ISSI SPI flash support"

help

Add support for various ISSI SPI flash chips (is25lp128)

 

c、在drivers/mtd/spi/Kconfig文件中配置SPI_FLASH_USE_4K_SECTORS默认不支持

config SPI_FLASH_USE_4K_SECTORS

bool "Use small 4096 B erase sectors"

depends on SPI_FLASH

default y

help

修改为:

config SPI_FLASH_USE_4K_SECTORS

bool "Use small 4096 B erase sectors"

depends on SPI_FLASH

#default y

help

2)修改默认设备树为at91sam9g25ek

u-boot-at91/configs/at91sam9x5ek_spiflash_defconfig

CONFIG_DEFAULT_DEVICE_TREE="at91sam9g35ek"

为:

CONFIG_DEFAULT_DEVICE_TREE="at91sam9g25ek"

4.修改at91_dt_defconfig定制linux内核匹配当前单板

1)linux-at91/arch/arm/configs/at91_dt_defconfig

支持spi-nor flash,去掉usb、802.11、media、video、sound、mouse、LCD等外设支持;修改前后的config如下附件:

 

2)修改linux-at91/drivers/mtd/spi-nor/Kconfig文件

config MTD_SPI_NOR_USE_4K_SECTORS

bool "Use small 4096 B erase sectors"

default y

help

修改为:

config MTD_SPI_NOR_USE_4K_SECTORS

bool "Use small 4096 B erase sectors"

# zholinhua@UTEK

# default y

help

3)修改linux-at91/drivers/usb/Kconfig

menuconfig USB_SUPPORT

bool "USB support"

depends on HAS_IOMEM

default y

修改为

menuconfig USB_SUPPORT

bool "USB support"

depends on HAS_IOMEM

# zhoulinhua@UTEK

# default y

 

4)通过修改menuconfig增加MTD对SPI-NOR的支持(spi-nor 驱动)

make linux-menuconfig

File systems --->

---Device Drivers --->

<*> Memory Technology Device (MTD) support --->

<*> SPI-NOR device support --->

[] Use small 4096 B erase sectors

默认勾选,这里我们要去勾选,使用64k erase sectors

 

---Device Drivers --->

<*> Memory Technology Device (MTD) support --->

Self-contained MTD device drivers --->

<*> Support most SPI Flash chips (AT26DF, M25P, W25X, ...)

make linux-rebulid all

make

5.修改buildroot-at91/system/Config.in设置登录信息

1)修改登录信息:

config BR2_TARGET_GENERIC_ISSUE

string "System banner"

#default "Welcome to Buildroot"

#zhoulinhua@UTEK

default "Welcome to utek"

2)修改登录密码:

config BR2_TARGET_GENERIC_ROOT_PASSWD

string "Root password"

#default ""

#zhoulinhua@UTEK

default "utek"

depends on BR2_TARGET_ENABLE_ROOT_LOGIN

二、buildroot相关:

1.相关命令

查看当前编译的组件

在buildroot-at91目录下:

查看当前所以编译的package

make show-targets

清除命令,包括所有的目标文件和配置文件

make distclean

清除迷路,只清除目标文件

make clean

全部编译

make

清除单个package命令,包括目标文件、配置文件

make <package>-distclean

清除单个packet命令,只清除目标文件

make <package>

配置单独的package

make <package>-menuconfig

编译单独的package

make <package>-rebulid all

配置bootstrap

make at91bootstrap3-menuconfig

编译bootstrap

make at91bootstrap3-rebuild all

配置uboot

make uboot-menuconfig

编译uboot

make uboot-rebuild all

配置kernel

make linux-menuconfig

编译kernel

make linux-rebuild all

配置 uclibc

make uclibc-menuconfi

编译 uclibc

make uclibc-rebulid all

配置 busybox

make busybox-menuconfig

编译 busybox

make busybox-rebuild all

2.custom source code

bootroot的源代码都是通过git获得,每次make clean、make distclean之后bulid目录的源代码都将被删除,下一次make重新下载,不利于开发工作,因此对于要修改的源代码进行overrid,每次修改之后编译将从指定的目录拷贝源代码到buildroot-at91/output/build目录下并且命名为<package>-custom。执行make clean或者make distclean指定的目录不会被操作。

1)在buildroot-at91新建vender目录,将第一次下载编译的package代码放在里面;

2)在buildroot-at91下新建local.mk文件将需要overrid的目录进行指定格式如下:

<PACKAGE>_OVERRIDE_SRCDIR = ./vender/<package>

例如overrid bootstrap、uboot、linux kernel命令如下:

#LINUX override

LINUX_OVERRIDE_SRCDIR=./vender/linux-at91

#UBOOT override

UBOOT_OVERRIDE_SRCDIR=./vender/u-boot-at91

#AT91BOOTSTRAP3 override

AT91BOOTSTRAP3_OVERRIDE_SRCDIR=./vender/at91bootstrap

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于BCM53262交换芯片平台的Linux操作系统移植(三)之配置文件修改 的相关文章

  • 如何在 Ubuntu x64 中使用 ptrace 插入 int3?

    我正在努力追随本指南 http eli thegreenplace net 2011 01 27 how debuggers work part 2 breakpoints 通过设置断点达到相同的结果 唯一的区别是我在 x64 系统上 所以
  • 拼写检查 shell 脚本

    我有一些疑问 我对一个应该是简单拼写检查器的脚本有疑问 它的目的是 当发现错误的单词时 它会提示用户输入该单词的正确拼写 如果用户输入正确的拼写 则会显示更正的单词以及错误的单词 下面 在读完所有单词之后 但是 如果用户只是按 Enter
  • 确定 TCP Listen() 队列中当前积压的连接数

    有没有办法找出currentLinux 上 TCP 套接字上等待 Accept 的连接尝试次数 我想我可以在每个事件循环上点击 EWOULDBLOCK 之前计算成功的 Accept 数量 但我使用的是隐藏这些细节的高级库 Python Tw
  • Bash:检查是否给出了参数(例如是否有参数“-a”?)

    我有一个脚本 它应该接受 2 个参数 s 和 d 如果未给出 d 参数 我想删除我的调试文件 与 s 相同 如何检查 1 或 2 是否为 s 或 d 舒尔有两个参数 我可以做到 蛮力 if test 1 d test 2 d then rm
  • 找出Linux上一个进程使用了​​多少内存页

    我需要找出进程分配了多少内存页 每个页面是 4096 进程内存使用情况我在查找正确值时遇到一些问题 当我查看 gome system monitor 时 内存映射下有几个值可供选择 Thanks 这样做的目的是将内存使用量除以页数并验证页大
  • 如何从脚本编辑 /etc/sudoers?

    我需要编辑 etc sudoers从脚本中添加 删除白名单中的内容 假设我有一个可以处理普通文件的命令 我如何将其应用到 etc sudoers 我可以复制并修改它 然后有visudo用修改后的副本替换原始版本 通过提供我自己的脚本 EDI
  • 我们如何在使用循环时调用 ansible playbook 中的变量

    我有两个文件 其中这些文件包含server names and server IP s 我想更改 替换一些特定的server names and IP addressees根据要求在两个文件中 这与这篇文章 因为它被要求开设一个新职位 ht
  • Pthreads - 高内存使用率

    我正在用 C 编写一些东西 在 256Mb 系统上的 Linux 中创建大量 Pthread 我通常有 200Mb 的免费空间 当我使用少量线程运行该程序时 它可以工作 但是一旦我让它创建大约 100 个线程 它就会出现错误 因为系统内存不
  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • 应用程序中两个不同版本的库

    考虑一个场景 其中有两个不同版本的共享库 考虑 A 1 so 链接到 B so A 2 so 链接到 C so 现在 B so 和 C so 都链接到 d exe 当 B so 想要调用 A 1 so 中的函数时 它最终会调用 A 2 so
  • 如何在Linux上用C/C++编写Web服务器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在考虑在 Linux 平台上开发一个小型 阅读 初级 Web 服务器 但我不知道从哪里开始 我希望它能够做的是 监听特定端口 接受
  • 如何将一个文本文件拆分为多个 *.txt 文件?

    我有一个文本文件file txt 12 MB 包含 something1 something2 something3 something4 有没有办法分开file txt分成 12 个 txt 文件 比方说file2 txt file3 t
  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • 使用 systemctl 获取 systemd 进程的正常运行时间或停机时间?

    喜欢使用systemctl is active
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 来自守护程序的错误响应:加入会话密钥环:创建会话密钥:超出磁盘配额

    我尝试在我的服务器上安装 docker 使用本教程 https docs docker com install linux docker ce ubuntu 我想远程运行 docker 镜像并使用 portainer Web 界面来管理一切
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li

随机推荐

  • 软件设计模式详解 #CSDN博文精选# #IT技术# #软件模式# #设计模式#

    大家好 小C将继续与你们见面 带来精选的CSDN博文 又到周一啦 上周的系统化学习专栏已经结束 我们总共一起学习了20篇文章 这周将开启全新专栏 放假不停学 全栈工程师养成记 在这里 你将收获 将系统化学习理论运用于实践 系统学习IT技术
  • 五、IDEA中创建Web项目

    文章目录 5 1 创建Web项目 5 1 1 创建项目 5 1 2 编写Servlet类 5 2 手动部署项目 5 3 自动部署项目 5 3 1 IDEA集成Tomcat 5 3 2 IDEA部署JavaWeb项目 5 4 war包部署 5
  • css被点击后改变样式,Js 通过点击改变css样式

    通过js 点击按钮去改变目标原始的背景颜色Change html function test4 event if event value 11 取div1 var div1 document getElementById div1 div1
  • voronoi图编程构造_可视化编程真的有那么糟糕?

    作者 Anton Livaja 译者 弯月 责编 屠敏 以下为译文 我想告诉你 如果使用恰当 可视化编程和是图解推理是一个非常强大的工具集 也就是说 只有当可视化编程扎根于数学和计算机科学并建立坚实的基础 才能发挥良好的作用 为了降低编程的
  • 《职场情绪稳定:内在的力量与策略》

    近期发生的新闻热点 如大规模裁员 创业公司倒闭 公共卫生事件等 让公众更加关注稳定情绪和心理健康的问题 在职场中 我们常常遇到各种挑战和压力 如何保持稳定的情绪成了一个重要的话题 首先 让我们分享一些工作中可能引发我们情绪波动的事情 我曾经
  • IT项目管理七

    Tony Prince 和他的团队正在做一个娱乐和健康方面的项目 他们被要求修改现有的成本估计 以便能有一个可靠的评价项目绩效的基线 你的进度和成本目标是在6个月内在200 000美元的预算下完成项目 1 作业一 准备和打印一页类似于图7
  • 求n个数的最小公倍数(C语言)

    Problem Description 求n个数的最小公倍数 Input 输入包含多个测试实例 每个测试实例的开始是一个正整数n 然后是n个正整数 Output 为每组测试数据输出它们的最小公倍数 每个测试实例的输出占一行 你可以假设最后的
  • java项目 畅购商城 购物车

    第10章 购物车 学习目标 能够通过SpringSecurity进行权限控制 掌握购物车流程 掌握购物车渲染 微服务之间的认证访问 1 SpringSecurity权限控制 用户每次访问微服务的时候 先去oauth2 0服务登录 登录后再访
  • 网易游戏(互娱)游戏研发一面&二面(已收到offer)

    简单来讲下上周面网易互娱的心得 因为我不是走内推而是直接怼笔试的 所以上周才有了笔试结果然后被告知面试 我面的岗位是游戏研发工程师 初级 一面 40分钟左右 开始是简单的自我介绍 C 关于C 问的比较简单 因为我跟面试官说我主要学的是Jav
  • 风格回调函数 vs c++风格虚基类

    http www cnblogs com raymon archive 2012 08 28 2660876 html 风格回调函数 vs c 风格虚基类 关于接口定义和调用的对比 c 中也很常用回调函数 比如MFC中 既可以用回调函数的方
  • APP移动端自动化基础及appium环境搭建

    目录 APP移动端自动化测试基础 主流移动端自动化工具 Appium介绍 Appium工作原理 Appium环境搭建 安装前准备工具 安装Android SDK 配置环境变量 安装Python client 安装夜神模拟器 mumu模拟器
  • 一文一图搞懂OSI七层模型

    什么是OSI 所谓的OSI 是由国际化标准组织 ISO 针对开放式网路架构所制定的电脑互连标准 全名是开放式通讯系统互连参考模型 Open System Interconnection Reference Model 简称OSI模型 该模型
  • Air780E

    目录 Air780E编译指南 准备工作 下载源码 注意 需要两个库 准备工具 工具链下载 开始编译 常见编译问题 Air780E编译指南 https wiki luatos com develop compile Air780E html
  • 全面深入彻底理解Python切片操作【原创】

    全面深入彻底理解Python切片操作 原创 我们基本上都知道Python的序列对象都是可以用索引号来引用的元素的 索引号可以是正数由0开始从左向右 也可以是负数由 1开始从右向左 在Python中对于具有序列结构的数据来说都可以使用切片操作
  • 系统权限-数据权限案例分析

    文章目录 前言 一 数据权限 三 源代码下载 四 数据库权限设计图 五 数据权限前台界面 六 数据权限服务端 6 1 aop 拦截 数据范围 6 2 数据实现层ServiceImpl 埋点 七 总结 7 1设计思路 7 2 缺陷 前言 传统
  • TestNG单元测试框架-常用注解介绍以及testng和Junit的区别【杭州多测师_王sir】【杭州多测师】...

    一 TestNG单元测试框架 常用注解介绍 testng学习网址 https www jc2182 com testng testng environment html 1 Before类别和After类别注解按照如下循序执行 Before
  • Java实体类中封装其他实体类并引用

    在Java开发过程中有很多情况是二个表及以上的联合操作 这是需要分清楚表的主次关系 在引用的时候有人会把二个表的数据全都封装在一个实体类中 然后在对这个实体类进行操作 但如果是三个表呢 四个表呢 还都封装在一个实体类吗 这样被封装的实体类的
  • C++ #ifndef、#define、#endif作用

    在C 项目中 ifndef define endif非常常见 接下来就来简单说一下它们的作用 作用 防止头文件被重复引用 防止被重复编译 简介 ifndef 它是if not define的简写 是宏定义的一种 确切的说是预处理功能 宏定义
  • 邮件附件乱码小技巧

    经常有人收到一些Internet邮件 里面有一个附件 例如文件名叫 我的WORD文档 doc 可是用WORD打开后 提示错误或者乱码 遇到这种情况可以用以下步骤解决 1 重命名 把 我的WORD文档 doc 改名字为 我的WORD文档 uu
  • 基于BCM53262交换芯片平台的Linux操作系统移植(三)之配置文件修改

    2018 05 09 10 49 zhoulinhua 2018 05 10 一 单板类型支持 1 修改at91sam9x5ek defconfig定制软件匹配当前单板 buildroot at91 configs at91sam9x5ek