zoukankan      html  css  js  c++  java
  • make menuconfig 笔记

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

    一、介绍

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

    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


    原文:https://blog.csdn.net/subfate/article/details/49532145

  • 相关阅读:
    Python 学习笔记 11.模块(Module)
    Python 学习笔记 8.引用(Reference)
    Python 学习笔记 9.函数(Function)
    Python 学习笔记 6.List和Tuple
    Python 学习笔记 4.if 表达式
    Python 学习笔记 2.自省
    Python 学习笔记 3.简单类型
    Python 学习笔记 7.Dictionary
    Python 学习笔记 5.对象驻留
    Python 学习笔记 10.类(Class)
  • 原文地址:https://www.cnblogs.com/z3286586/p/10438380.html
Copyright © 2011-2022 走看看