zoukankan      html  css  js  c++  java
  • menuconfig选项

    打开一个典型的openwrt中package目录下都能发现两个相同点:

    ? package/<name> /Makefile ? package/<name> /patches ? package/<name> /files

    四个关键性的目录: ? tools ? toolchain ? package ? target tools和toolchain通常是用作固化内核,编译和c库的工具,编译的结果会产生三个新的目录,build_dir/host ,这是一个临时用来建立target工具; build/toolchain-<arch>*这是用来建立特殊结构的toolchain; staging_dir/toolchain-<arch>*toolchain安装的目录;

    target images

    global build setting

    advanced configuration option(for developer)

    build the openwrt image builder

    build the openwrt sdk

    package the openwrt-base toolchain

    image configuration

    package features

    base system: ca-certificates,dash,ead,hsflowd,libatomic, libpthread,librt,libstdcpp,libthread-db,mksh,om-watchdog,qos-scripts resolveip,rpcd,sflowovsd,sqm-scripts,swconfig,udev,wireless-tools,zram-swap

    administration: pmacct,zabbix,debootstrap,facter,gkrellmd,htop,monit,monit-nossl, muninite,nagios,nrpe,osirisd, ostiary,send-nsca,sudo,syslog-ng,syslog-ng3

    development: ar,binutils,cppunit,diffutils,gcc,gdb,gdbserver,lttng-tools,make,objdump,patch,python-sip, sysprof,tig,trace-cmd,trace-cmd-extra,valgrind

    kernel modules

    语言配置:

    LuCI—>Collections—– <*> luci 添加Luci LuCI—>Translations—- <*> luci-i18n-chinese   添加中文

    Kernel modules —> Native Language Support —> <*> kmod-nls-utf8

    Kernel modules —> Native Language Support —> <*> kmod-nls-iso8859-1 #不选择时U盘挂载不上。

    Kernel modules —> Native Language Support —> <*>kmod-nls-iso8859-1

    添加文件系统支持

    Kernel modules —> Filesystems —> <*> kmod-fs-ext4 (移动硬盘EXT4格式选择)

    Kernel modules —> Filesystems —> <*> kmod-fs-vfat(FAT16 / FAT32 格式 选择)

    Kernel modules —> Filesystems —> <*> kmod-fs-ntfs (NTFS 格式 选择)

    添加USB挂载 Base system —> <*>block-mount

    添加自动挂载工具 Utilities —> Filesystem —> <*> badblocks

    添加复位键支持 Utilities —> <*> restorefactory

    添加一键开关无线 Utilities —> <*> wifitoggle

    添加USB相关支持

    Kernel modules —> USB Support —> <*> kmod-usb-core.  ##默认已经选了

    Kernel modules —> USB Support —> <*> kmod-usb-ohci.  ##默认已选old usb1.0

    Kernel modules —> USB Support —> <*> kmod-usb-uhci.  ## usb1.1

    Kernel modules —> USB Support —> <*> kmod-usb-storage.

    Kernel modules —> USB Support —> <*> kmod-usb-storage-extras.添加USB扩展支持

    Kernel modules —> USB Support —> <*> kmod-usb

    2.  ##默认已经选了 usb2.0 在network中选择openflow 和tc 在

    Kernel Modules->Network Support中选择kmod-tun 保存退出

    3G拨号所要安装:

    ppp

    chat   #????

    comgt #???

    libpthread

    librt

    libusb-1.0

    usb-modeswitch

    zlib

    language: erlang,java,js,lua,php,perl,python,ruby,tcl

    libraries

    luci

    mail

    multimedia

    network

    接着make kernel_menuconfig

    # ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1   |tee build.log |egrep -i '(warn|error)'

    https://github.com/openwrt-mirror/openwrt

    各目录: tools - 编译时需要一些工具, tools里包含了获取和编译这些工具的命令。里面是一些Makefile,有的可能还有patch。每个Makefile里都有一句 $(eval $(call HostBuild)),表示编译这个工具是为了在主机上使用的。 toolchain - 包含一些命令去获取kernel headers, C library, bin-utils, compiler, debugger target - 各平台在这个目录里定义了firmware和kernel的编译过程。 package - 包含针对各个软件包的Makefile。openwrt定义了一套Makefile模板,各软件参照这个模板定义了自己的信息,如软件包的版本、下载地址、编译方式、安装地址等。 include - openwrt的Makefile都存放在这里。 scripts - 一些perl脚本,用于软件包管理。

    dl - 软件包下载后都放到这个目录里

    build_dir - 软件包都解压到build_dir/里,然后在此编译 staging_dir - 最终安装目录。

    tools, toolchain被安装到这里,rootfs也会放到这里。

    feeds - bin - 编译完成之后,firmware和各ipk会放到此目录下。

    njit-client

    只编译某个模块 make package/qos/clean  make package/qos/compile  make package/qos/install

     make V=99 | tee compile_v1.0.0.log 混合 tee 命令将编译信息放到compile_v1.0.0.log文件中方便查看。

    x86的编译要点  考虑到x86平台使用的特点,以及 OpenWrt 本身,可参考以下要点

    1. 编译所有文件系统支持,包括ext2/ext3/ext4,还有NTFS,甚至是LVM;

    2. 加入一个文本编辑器,例如vim或者nano,因为日常使用中需要用文本编辑器修改各种配置文件;

    3. 加入所有关于无线网卡的驱动,模块,各种支持程序,

    4. 一些其他常见应用--蓝牙、加密、PGP、SSL、SSH、VPN、USB支持、3G上网卡、

    5. 编译时要到网上下载相关源码,所以可以日后下载的包尽量不选择编译;

    6. 编译好的文件在当前目录的bin文件夹下,如果是brcm-2.4,则 ls bin/brcm-2.4/ 就可以看到很多熟悉的文件了。

    参考资料  如何给 Openwrt 提交补丁 https://dev.openwrt.org/wiki/SubmittingPatches

     Openwrt 源代码的下载方式 https://dev.openwrt.org/wiki/GetSource

    构造编译环境 http://wiki.openwrt.org/doc/howto/buildroot

    构造编译环境-老的文档 http://downloads.openwrt.org/docs/buildroot-documentation.html

    本文赖以生存的基础-官方wiki中的编译教程,我翻译了编译一文中的小部分。 http://wiki.openwrt.org/doc/howto/build

    下文有详细的编译方面说明 http://downloads.openwrt.org/kamikaze/docs/openwrt.html

  • 相关阅读:
    优化SQL查询:如何写出高性能SQL语句
    提高SQL执行效率的16种方法
    Spring Ioc DI 原理
    java内存泄漏
    转:js闭包
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Best Time to Buy and Sell Stock with Cooldown
    LeetCode Length of Longest Fibonacci Subsequence
    LeetCode Divisor Game
    LeetCode Sum of Even Numbers After Queries
  • 原文地址:https://www.cnblogs.com/timssd/p/4380888.html
Copyright © 2011-2022 走看看