由于公司对于新CPU开发很着急,似乎明年2月份就能达到量产的目标。之前只有2个人在做平台级的开发,于是就另外抽调人手,而我就在其中。我之所心搞openwrt是因为硬件部门的样机一直未有时间表,而我总不能拿几篇网络搜索到的文章交给领导说已经完成储备了。鉴于事务的优先级,老大决定让我月底完成手上的活。于是我也光荣地跳进新平台这个无底坑中。去年开始,我一直担忧自己主攻方向的问题,从目前情况看,依然还是担忧。我也看开了,一切听从领导安排。而openwrt的学习,我不知道还会不会继续下去,只好尽量做点笔记,以备忘。本文记录openwrt编译配置的一些笔记,这些配置只是笔者的一个实践例子,当然,还有更多的配置选择,那是诸君之事了。

一、介绍

make menuconfig不仅仅配置内核,还有rootfs(实际为busybox)、app(系统库、界面工具。内核配置位于:chaos_calmer\package\kernel\linux。不同的驱动配置在不同的文件,具体根据文件名称可识别出。

ls chaos_calmer/package/kernel/linux/modules/
001-depends.mk  crypto.mk    hwmon.mk  leds.mk        netfilter.mk   other.mk   spi.mk    virtual.mk   wpan.mk
block.mk        firewire.mk  i2c.mk    lib.mk         netsupport.mk  pcmcia.mk  usb.mk    w1.mk
can.mk          fs.mk        input.mk  netdevices.mk  nls.mk         sound.mk   video.mk  wireless.mk

二、配置

下面简单列出笔记的配置的一部分内容。

1、平台类型

Target System (x86)  --->

这里只选择x86。根据平台类型的不同,后面的选项也有不同。

2、目标板镜像文件

生成的镜像文件的相关配置。

Target Images  --->
[*] tar.gz  # 压缩包格式
[*] ext4  ---> # 可选ext4的最大节点数以及block大小
[*] Build GRUB images (Linux x86 or x86_64 host only)
[*]   Use Console Terminal (in addition to Serial)   # 开启串口调试终端
(ttyS0) Serial port device # 串口设备名,一般为ttyS0
(115200) Serial port baud rate # 波特率,选择的与串口工具设置的波特率必须一致
(3)   Seconds to wait before booting the default entry # grub倒计时,单位为秒
(4) Kernel partition size (in MB)  # 内核的大小,单位为MB,一般3、4MB足够
(64) Root filesystem partition size (in MB) # 根文件系统大小,这个值越大,镜像体积越大,一般路由系统几十MB足够

3、镜像配置(系统脚本及IP配置)

[*] Image configuration  --->
--- Preinit configuration options
[*]   Suppress stderr messages during preinit
(2)   Failsafe wait timeout
[ ]   Show all preinit network messages
[ ]   Suppress network message indicating failsafe
()    Preinit network interface  # 默认IP地址
(192.168.1.1) IP address for preinit network messages
(255.255.255.0) Netmask for preinit network messages
(192.168.1.255) Broadcast address for preinit network messages

4、基础系统

本配置项为构建基本的文件系统,基本工具,库,等。默认即可。

Base system  --->
<*> base-files................................... Base filesystem for OpenWrt # 基本文件系统
<*> dropbear........................................ Small SSH2 client/server #ssh服务器
-*- libc........................................................... C library # C库
-*- libgcc............................................... GCC support library # gcc支持库
-*- libpthread.......................................... POSIX thread library # 线程库
-*- librt................................ POSIX.1b RealTime extension library# 运行时库

5、root权限命令

如sudo等命令

Administration  --->  

6、Boot Loader

此项无内容
Boot Loaders  ---->

7、开发相关

开发专用,会安装如gcc、gdb、ar、patch、binutils等工具,普通用户无须关注。
Development  --->

8、固件

个别模块的固件,如是,则要加入内核。X86平台,无须理会。
Firmware  --->

9、内核模块

真正的内核配置在此处。本模块较重要,内容较多。但本文使用的X86平台上需要配置的东西不多。
Kernel modules  ---> 
9.1、块设备
Block Devices  --->
-*- kmod-scsi-core....................................... SCSI device support
9.2、文件系统
本次移植使用的文件系统为EXT4。其它不需要。
Filesystems  --->
<*> kmod-fs-ext4..................................... EXT4 filesystem support
-*- kmod-fs-nfs....................................... NFS filesystem support
-*- kmod-fs-nfs-common......................... Common NFS filesystem modules
9.3、硬件监控模块
如LM75,不使用。
Hardware Monitoring Support  --->  
9.4、I2C支持
该X86平台使用IGB网络驱动,需要I2C的支持,故选择。
I2C support  --->
<*> kmod-i2c-core................................................ I2C support

9.5、输入模块
如USB鼠标、键盘,等。
Input modules  --->   
-*- kmod-hid..................................................... HID Devices
<*> kmod-hid-generic.............................. Generic HID device support
-*- kmod-input-core........................................ Input device core
-*- kmod-input-evdev...................................... Input event device  
9.6、本地语言支持
Native Language Support  --->
-*- kmod-nls-base.................................... Native Language Support
9.7、netfilter扩展
iptables的选项需要内核的支持,在此进行选择。文本使用默认值。
Netfilter Extensions  --->
9.8、网络设备
该X86平台使用的网络设备驱动为IGB,其它不选。
Network Devices  ---> 
-*- kmod-ifb........................... Intermediate Functional Block support
<*> kmod-igb....... Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support # IGB驱动
-*- kmod-libphy.................................................. PHY library # PHY库,必须
-*- kmod-mii..................................................... MII library
9.9、网络支持
对网络的支持,比如8021q、DNS、ipv6。
Network Support  --->
<*> kmod-8021q........................................... 802.1Q VLAN support
-*- kmod-dnsresolver.................................. In-kernel DNS Resolver
-*- kmod-ipv6................................................... IPv6 support
9.10、其它模块
openwrt的menuconfig涉及大量其它东西,而内核只是其中一部分,故不像真正的kernel的menuconfig那样分类详细。很多字符类设备都在此选项。比如MMC、EEPROM、RTC、串口。
Other modules  --->
<*> kmod-serial-8250.............................................. 8250 UARTs   # 串口设备
9.11、SPI支持
SPI驱动,不使用。
SPI Support  --->
9.12、音频支持
不使用音频驱动。
Sound Support  --->
9.13、USB支持
USB接口输入设备,U盘支持,在此处选择。
USB Support  --->   
-*- kmod-usb-core............................................ Support for USB
<*> kmod-usb-ohci............................... Support for OHCI controllers
<*> kmod-usb-storage..................................... USB Storage support
9.14、视频支持
不使用视频功能。
Video Support  --->
9.15、无线驱动
不使用无线驱动。
Wireless Drivers  --->

10、编程语言

如Java、Lua、PHP、Perl、Python、Ruby。由于openwrt使用Lua,建议选上。
Languages  --->

11、库

常用库。如压缩为libbz2、SSL库、libexif,等,使用默认选项。SSL建议选择。
Libraries  --->

12、界面选项配置

openwrt的界面使用LuCI,功能项、工具在此配置。内容较庞大、较重要。
LuCI  --->
1. Collections  --->
2. Modules  --->    
3. Applications  --->
4. Themes  --->     
5. Protocols  --->  
6. Libraries  --->  
9. Freifunk  --->
12.1、综合
1. Collections  --->    
-*- luci  
<*> luci-ssl......................... Standard OpenWrt set with HTTPS support

12.2、模块
LuCI基本模块在此配置。包含各种语言支持。
2. Modules  --->
-*- luci-base............................................ LuCI core libraries
Translations  --->
<*> Chinese (zh-cn)        # 中文支持
-*- luci-mod-admin-full. LuCI Administration - full-featured for full control

12.3、应用程序
界面上的应用程序在此配置。如防火墙、QOS、NTP同步,等。
3. Applications  --->   
-*- luci-app-firewall................ Firewall and Portforwarding application
<*> luci-app-ntpc.............. NTP time synchronisation configuration module
<*> luci-app-qos..................... Quality of Service configuration module
<*> luci-app-vnstat.................................. LuCI Support for VnStat

12.4、主题
默认主题为luci-theme-bootstrap。
4. Themes  --->     
-*- luci-theme-bootstrap........................... Bootstrap Theme (default)
<*> luci-theme-freifunk-bno.................... Freifunk Berlin Nordost Theme
<*> luci-theme-freifunk-generic....................... Freifunk Generic Theme
<*> luci-theme-openwrt................................ LuCI OpenWrt.org theme
12.5、协议
如3G、ipv6、PPP。
5. Protocols  --->  
<*> luci-proto-3g............................................. Support for 3G
-*- luci-proto-ipv6........... Support for DHCPv6/6in4/6to4/6rd/DS-Lite/aiccu
-*- luci-proto-ppp.......................... Support for PPP/PPPoE/PPPoA/PPtP
12.6、库
6. Libraries  --->  
-*- luci-lib-ip....... Lua library for IP calculation and routing information
-*- luci-lib-nixio....................................... NIXIO POSIX library

13、邮件

邮件服务。不使用。
Mail  --->

14、多媒体

多媒体配置,如ffmpeg、流媒体播放工具。不使用。
Multimedia  --->

15、网络

本项为网络相关工具、模块的配置。内容较多,也较重要。
Network  --->
SSH  --->
-*- openssh-client............................................ OpenSSH client
-*- openssh-keygen............................................ OpenSSH keygen
<*> openssh-server............................................ OpenSSH server
Time Synchronization  ---> # 时间同步
-*- ntpclient............................. NTP (Network Time Protocol) client
<*> ntpdate..................................................... ISC ntp date
VPN  ---> # VPN,不使用
Web Servers/Proxies  --->
-*- uhttpd........................ uHTTPd - tiny, single threaded HTTP server # 小型web服务器
<*> ethtool......................... Display or change ethernet card settings
<*> iperf
<*> tcpdump..................... Network monitoring and data acquisition tool

16、音频

不使用音频相关工具、库,不用配置。
Sound  --->

17、其它工具

一些其它小工具在此。内容较杂。有的是boot loader,有的是压缩库,有的是编辑器(vim)。还有其它工具,如minicom、grep、tar、bash、file,等。根据实际选择。
Utilities  --->   
Editors  --->  # 编辑器
<*> vim.............................. Vi IMproved - enhanced vi editor (Tiny)
Terminal  --->  # 终端工具
<*> minicom....................................... Terminal emulation program
database  --->  # 数据库,如mysql、sqlite
zoneinfo  --->  # 时区信息
<*> bash.......................................... The GNU Bourne Again Shell
<*> grep.................................. grep search utility - full version
<*> hwclock.................................. query or set the hardware clock
<*> tar.............................................................. GNU tar

李迟 2015.10.31 周六

openwrt学习:make menuconfig的一些笔记相关推荐

  1. OpenWRT 学习笔记 -- 用户自定义添加app的开机自启动

    参考自:OpenWRT编译 – 用户自定义添加app的开机自启动 OpenWRT 学习笔记-19 OpenWRT开机自启动服务 文章目录 一.概述 二.自启动实现方式一 三.自启动实现方式二 四.自启 ...

  2. OpenWrt学习笔记之刷机、救砖

    OpenWrt学习笔记之刷机及救砖 完成了固件的编译之后就可以进行刷机了,当然也可以去官网直接下载固件.连接如下:http://wiki.openwrt.org/toh/tp-link/tl-wr70 ...

  3. 一个C#程序员学习微信小程序的笔记

    一个C#程序员学习微信小程序的笔记 客户端打开小程序的时候,就将代码包下载到本地进行解析,首先找到了根目录的 app.json ,知道了小程序的所有页面. 在这个Index页面就是我们的首页,客户端在 ...

  4. 深度学习超分辨率综述阅读笔记(翻译)

    深度学习超分辨率综述阅读笔记(翻译) https://arxiv.org/abs/1902.06068 摘要:图像超分辨率(SR)是计算机视觉中增强图像和视频分辨率的一类重要图像处理技术.近几年来,图 ...

  5. 《学习之道》读书笔记

    <学习之道>读书笔记 不要太过于专注,适当的时候要放松,启用发散思维,会让更多的想法出现来帮助解决问题. 爱迪生遇到棘手的问题,会拿着球,躺着睡一会,当睡着的时候球会从手中脱落,掉到预先准 ...

  6. 云计算学习路线教程大纲课堂笔记:构建企业级WIKI及工单系统

    云计算学习路线教程大纲课堂笔记:构建企业级WIKI及工单系统: -Author: bavdu -Email: bavduer@163.com -Github: https://github.com/b ...

  7. 网络安全学习(千锋网络安全笔记)2--IP与基本DOS命令

    网络安全学习(千锋网络安全笔记)2–IP与基本DOS命令 文章目录 1.IP地址详解 **局域网(内网)** **IP地址** **子网掩码** **IP地址** **网关** **DNS** **测 ...

  8. React深入学习与源码解析笔记

    ***当前阶段的笔记 *** 「面向实习生阶段」https://www.aliyundrive.com/s/VTME123M4T9 提取码: 8s6v 点击链接保存,或者复制本段内容,打开「阿里云盘」 ...

  9. 李沐《动手学深度学习》第二版 pytorch笔记1 环境搭建

    李沐<动手学深度学习>第二版pytorch笔记1 搭建环境 文章目录 李沐<动手学深度学习>第二版pytorch笔记1 搭建环境 此时尚有耐心 虚拟环境搭建 创建虚拟环境 查看 ...

  10. OpenWrt学习总结(2)编译OpenWrt过程中整理的软件包下载网址

    编译OpenWrt BarrierBreaker14.07过程中会出现很多软件包找不到软件源,或者连接不到软件包的下载网址,这时我们就需要根据编译出现的错误提示去手动下载相应的软件包. 手动下载时,建 ...

最新文章

  1. 数学故事中的「蛋」和「母鸡」
  2. ADC的有效位数和信纳比计算
  3. activiti节点跳转
  4. 一篇文章 学会 iOS中的 代理(delegate) 设计模式
  5. 不一样的Office 365之 —— Mini Hybrid了解一下(三)迁移邮箱
  6. 精通Server Core系列之二 ---Server Core安装与基本配置
  7. linux的php优化,linux优化转载
  8. 第13章:项目合同管理--章节真题
  9. 3、面向对象-继承-多态
  10. java provider_Java SPI(Service Provider Interface)
  11. lane是什么意思_什么是Trunk?Trunk详解
  12. python控制浏览器最小化_如何在最小化浏览器的情况下使用selenium webdriver执行测试...
  13. 2009年计算机一级考试真题及答案
  14. CAD测量图纸时数据显示不出来怎么办?
  15. antd表单按钮验证置灰
  16. 阿里云服务器出现 Resource stopwords not found. Please use the NLTK Downloader to obtain the resource:
  17. 网页版手游怎么选服务器,吃鸡怎么看自己选的哪个服务器 | 手游网游页游攻略大全...
  18. 2020年机修钳工(技师)考试题库及机修钳工(技师)免费试题
  19. 液晶12864显示字符
  20. 关于神经网络中Backbone,Neck,Bottleneck,Head的理解

热门文章

  1. 探秘2022亚运会主场馆丨“大小莲花”智慧升级,带你见证科技力量
  2. Android流量监控论文,Android平台流量监控软件的设计与实现
  3. CADENCE ORCAD 元件库
  4. RabbitMQ搭建
  5. 基于asp.net116教师工资管理系统
  6. 百度强化学习框架PARL入门强化学习
  7. readFile读取文件
  8. 2022-2028年全球与中国热真空室行业发展趋势及投资战略分析
  9. YII Framework学习教程-YII的Model-开发规范-路径别名-命名空间-2011-11-22
  10. 搭建CocoaPods私有库