openwrt 中 make menuconfig, Imagebuilder

11648阅读 0评论2012-11-14 qiushui_007
分类:LINUX

官方参考: https://dev.openwrt.org/wiki/GetSource

OpenWrt
 source repository downloads

You can either check out the OpenWrt source code via git or svn.

GIT

The recommended way of checking out the OpenWrt source code is cloning the Git repository using one of the following commands:

trunk (main development tree)

14.07 branch (Barrier Breaker)

12.09 branch (Attitude Adjustment)

SVN

You can checkout the source from the OpenWrt Subversion repository using one of the following commands:


#稳定分支版本 attitude_adjustment/12.09, 内核3.3.8, org.cn有镜像. 若在windows的共享目录下操作有N种意想不到的错误, 以下操作都在~目录
mkdir openwrt
cd openwrt
git clone git://git.openwrt.org/12.09/openwrt.git
svn co svn://svn.openwrt.org.cn/openwrt/branches/attitude_adjustment
cd attitude_adjustment
./scripts/feeds update -a
./scripts/feeds install -a

make menuconfig: 界面中选择如下
Target System 选(Atheros AR7xxx/AR9xxx)
Target Profile 选(TP-LINK TL-WR703N)

Package features 选 umontu
Base system:  选中 librt, libpthread, block-mount
    <*> busybox:
    Linux System Utilities:
    <*> lsusb
    Editor: 
    <*> diff

Kernel modules: 此部分与内核版本紧密相关, 如下
   Depends: kernel (=3.2.14-1-eb30a01493673f9c92acd8243277c304), kmod-i2c-core
  Filesystem: kmod-fs-vfat, kmod-fs-ntfs, kmod-fs-ext4
  Native Language Support: 选 kmod-nls-utf8
 I2C support: 选kmod-i2c-core 
 other: 选中 kmod-input-core(r42647移到别的位置了)
  SPI Support: 选中 kmod-spi-gpio
 Sound Support: 选中kmod-sound-core, kmod-usb-audio
 usb support: 选 kmod-usb-ohci、kmod-usb-storage、kmod-usb-storage-extras、kmod- usb-uhci、kmod-usb-video、 kmod-usb2, kmod-usb-hid, kmod-usb-serial(下面的子 项目都选吧, 调试外设备用),  (新版本无kmod-usb-video? )
 video support: 选 kmod-video-core、kmod-video-uvc, kmod-video-gspca-core, kmod-video-gspca-zc3xx 
  w1 support: 全选
  wireless support: kmod-rtl8187, 后面带USB的全选

luci:  第1项 collections选luci,第5项Translate里选上luci-i18n-chinese
Multimedia: 选 mjpg-streamer

netwokr:
  FileSystem: 选 owftd, owhttp, owserver

Utilities: 
   Fielsystem: 选 Fuse-utils, owfs, owshell. 



attitude adjustment 版本


make defconfig
make clean
rm -rf ./tmp      #如果以前编译过一次,删除./tmp目录及该目录下的所有文件
#此时可以把备份的同版本的dl目录拷贝到本目录下的dl目录下, 可以大大加快编译的速度

xxg@xxg-desktop:~/openwrt/r31296/trunk$ make -j 2
 make[1] world
 make[2] target/compile
 make[3] -C target/linux compile
 make[2] package/cleanup
 make[2] package/compile
 make[3] -C package/opkg host-compile
 make[3] -C package/busybox compile
 make[3] -C package/libnl-tiny compile
 make[3] -C package/dnsmasq compile
 make[3] -C package/dropbear compile
 make[3] -C feeds/luci/freifunk-common compile
 make[3] -C feeds/packages/net/olsrd compile
 make[3] -C package/iptables compile
 make[3] -C package/iproute2 compile
 make[3] -C feeds/luci/freifunk-mapupdate compile
 make[3] -C package/lua compile
 make[3] -C package/lua host-compile
 make[3] -C package/px5g compile
 make[3] -C package/uci compile
 make[3] -C package/uhttpd compile
 make[3] -C package/libtool compile
 make[3] -C package/fuse compile
 make[3] -C package/gpio-button-hotplug compile
 make[3] -C package/hostapd compile
 make[3] -C package/hotplug2 compile
 make[3] -C package/iw compile
 make[3] -C package/kernel compile
 make[3] -C package/libjson-c compile
 make[3] -C package/wireless-tools compile
 make[3] -C package/mtd compile
 make[3] -C package/opkg compile
 make[3] -C package/libpcap compile
 make[3] -C package/linux-atm compile
 make[3] -C package/swconfig compile
 make[3] -C package/zlib compile
 make[3] -C package/w1-gpio-custom compile
 make[3] -C package/base-files-network compile
 make[3] -C package/crda compile
 make[3] -C feeds/luci/community-profiles compile
 make[3] -C package/firewall compile
 make[3] -C package/iwinfo compile
 make[3] -C feeds/packages/libs/jpeg compile
 make[3] -C package/libubox compile
 make[3] -C package/mac80211 compile
 make[3] -C package/ppp compile
 make[3] -C package/uboot-envtools compile
 make[3] -C package/ubus compile
 make[3] -C package/base-files compile
 make[3] -C feeds/luci/freifunk-gwcheck compile
 make[3] -C feeds/packages/multimedia/mjpg-streamer compile
 make[3] -C feeds/luci/luci compile
 make[2] package/install
 make[3] -C package/base-files-network install
 make[3] -C package/busybox install
 make[3] -C package/crda install
 make[3] -C package/dnsmasq install
 make[3] -C package/dropbear install
 make[3] -C feeds/luci/luci install
 make[3] -C package/firewall install
 make[3] -C package/gpio-button-hotplug install
 make[3] -C package/hostapd install
 make[3] -C package/hotplug2 install
 make[3] -C package/iptables install
 make[3] -C package/iw install
 make[3] -C package/kernel install
 make[3] -C package/libnl-tiny install
 make[3] -C package/mac80211 install
 make[3] -C package/mtd install
 make[3] -C package/opkg install
 make[3] -C package/ppp install
 make[3] -C package/swconfig install
 make[3] -C package/uboot-envtools install
 make[3] -C package/uci install
 make[3] -C package/wireless-tools install
 make[3] -C package/base-files install
 make[2] package/rootfs-prepare
 make[3] package/preconfig
 make[2] target/install
 make[3] -C target/linux compile
 make[3] -C target/linux install
 make[3] -C target/imagebuilder compile
 make[3] -C target/imagebuilder install
 make[2] package/index
xxg@xxg-desktop:~/openwrt/r31296/trunk$ 

#2014-11-18重新编译AA版本, make 不带-j的参数, 以避免发生意想不到的错误. 
xxg@EmbeddedLab:~/openwrt/attitude_adjustment$ make clean
 make[1] clean
 make[2] target/linux/clean
 make[3] -C target/linux clean

xxg@EmbeddedLab:~/openwrt/attitude_adjustment$ make
 make[1] world
 make[2] target/compile
 make[3] -C target/linux compile
 make[2] package/cleanup
 make[2] package/compile
 make[3] -C package/toolchain compile
 make[3] -C package/libnl-tiny compile
 make[3] -C package/libjson-c compile
 make[3] -C package/lua compile
 make[3] -C package/libubox compile
 make[3] -C package/ubus compile
 make[3] -C package/uci compile
 make[3] -C package/netifd compile
 make[3] -C package/opkg host-compile
 make[3] -C package/base-files compile
 make[3] -C package/ncurses compile
 make[3] -C package/util-linux compile
 make[3] -C package/block-mount compile
 make[3] -C package/busybox compile
 make[3] -C package/dnsmasq compile
 make[3] -C package/dropbear compile
 make[3] -C feeds/luci/freifunk-common compile
 make[3] -C feeds/luci/community-profiles compile
 make[3] -C feeds/routing/olsrd compile
 make[3] -C package/iptables compile
 make[3] -C package/firewall compile
 make[3] -C package/iproute2 compile
 make[3] -C feeds/luci/freifunk-gwcheck compile
 make[3] -C feeds/luci/freifunk-mapupdate compile
 make[3] -C package/iwinfo compile
 make[3] -C package/lua host-compile
 make[3] -C package/px5g compile
 make[3] -C package/uhttpd compile
 make[3] -C feeds/luci/luci compile
 make[3] -C package/libtool compile
 make[3] -C feeds/packages/libs/jpeg compile
 make[3] -C package/uclibc++ compile
 make[3] -C feeds/packages/libs/libusb compile
 make[3] -C feeds/packages/multimedia/mjpg-streamer compile
 make[3] -C package/fuse compile
 make[3] -C package/librpc compile
 make[3] -C feeds/packages/utils/owfs compile
 make[3] -C package/gpio-button-hotplug compile
 make[3] -C package/hostapd compile
 make[3] -C package/hotplug2 compile
 make[3] -C package/iw compile
 make[3] -C package/kernel compile
 make[3] -C package/mac80211 compile
 make[3] -C package/mtd compile
 make[3] -C package/opkg compile
 make[3] -C package/libpcap compile
 make[3] -C package/linux-atm compile
 make[3] -C package/resolveip compile
 make[3] -C package/ppp compile
 make[3] -C package/swconfig compile
 make[3] -C package/uboot-ar71xx compile
 make[3] -C package/zlib compile
 make[3] -C package/uboot-envtools compile
 make[3] -C package/w1-gpio-custom compile
 make[2] package/install
 make[3] -C package/busybox install
 make[3] -C package/dnsmasq install
 make[3] -C package/dropbear install
 make[3] -C package/firewall install
 make[3] -C package/gpio-button-hotplug install
 make[3] -C package/hostapd install
 make[3] -C package/hotplug2 install
 make[3] -C package/iptables install
 make[3] -C package/iw install
 make[3] -C package/kernel install
 make[3] -C package/libjson-c install
 make[3] -C package/libnl-tiny install
 make[3] -C package/libubox install
 make[3] -C package/mac80211 install
 make[3] -C package/mtd install
 make[3] -C package/netifd install
 make[3] -C package/opkg install
 make[3] -C package/ppp install
 make[3] -C package/swconfig install
 make[3] -C package/toolchain install
 make[3] -C package/uboot-ar71xx install
 make[3] -C package/uboot-envtools install
 make[3] -C package/ubus install
 make[3] -C package/uci install
 make[3] -C package/base-files install
 make[2] package/rootfs-prepare
 make[3] package/preconfig
 make[2] target/install
 make[3] -C target/linux install
 make[3] -C target/imagebuilder install
 make[3] -C target/toolchain install
 make[2] package/index
xxg@EmbeddedLab:~/openwrt/attitude_adjustment$ 

--------------------------------------------------------------------------------------------------------------------
Image Builder, 快速固件生成器, 用此创建固件可以省去重新编译的麻烦,大大缩短编译时间。
利用 Imagebuilder 可以生成自己所需要的固件, 告别和别人伸手乞讨固件的磨练

1. mkdir ImageBuilder-ar71xx
2. cd ImageBuilder-ar71xx
    OpenWrt-ImageBuilder-ar71xx-for-Linux-i686.tar.bz2, 利用winscp 将本文件传到本目录下
3. 解压
tar jxvf OpenWrt-ImageBuilder-ar71xx-for-Linux-i686.tar.bz2

4. 进入目录
cd OpenWrt-ImageBuilder-ar71xx-for-Linux-i686

5. 查看可编译的路由型号
make info
#比如703N, 可以看到如下信息
TLWR703:
TP-LINK TL-WR703N
Packages: kmod-usb-core kmod-usb2

6. 将自己的配置文件 放在本目录下, 比如我自己的目录就是 wr703n
   有 /etc/config, /etc/init.d, ...(此部分可以从好用的路由器上用winscp备份出来即可)
   比如配置wireless,只需把备份出来的wireless复制到config就可以了
保留root密码: password和shadow 放在 /etc 目录下
   同时packages 目录下可以看到已经带的ipk安装包
   
7. 生成指定路由型号, 在 bin/ar71xx 目录下可以看到自己所生产的固件. 这里就是你大展伸手的地方
  PACKAGES 选项中加上自己所需要的安装包, FILES 选项中加上自己的配置文件
#还是以703N为例, 
#最精简的固件, 也就是官网上的, 但配置部分已经是自己的了
make image PROFILE=TLWR703 FILES=wr703n

#只加上luci和
make image PROFILE=TLWR703 PACKAGES="luci" FILES=wr703n

#usb 摄像头, 新版本好像无kmod-usb-video, 摄像头必须有 kmod-video-core, kmod-video-uvc
make image PROFILE=TLWR703 PACKAGES="librt libpthread libjpeg kmod-nls-utf8 kmod-i2c-core kmod-input-core kmod-usb-ohci kmod-usb-storage kmod-usb-storage-extras kmod-usb-uhci kmod-video-core kmod-video-uvc mjpg-streamer" FILES=wr703n

#增加 usb hid: kmod-usb-hid kmod-hid kmod-input-evdev
make image PROFILE=TLWR703 PACKAGES="librt libpthread libjpeg kmod-nls-utf8 kmod-i2c-core kmod-input-core kmod-usb-ohci kmod-usb-storage kmod-usb-storage-extras kmod-usb-uhci kmod-video-core kmod-video-uvc mjpg-streamer kmod-usb-hid kmod-hid kmod-input-evdev" FILES=wr703n

#增加中微星 kmod-video-gspca-core kmod-video-gspca-zc3xx
make image PROFILE=TLWR703 PACKAGES="librt libpthread libjpeg kmod-nls-utf8 kmod-i2c-core kmod-input-core kmod-usb-ohci kmod-usb-storage kmod-usb-storage-extras kmod-usb-uhci kmod-video-core kmod-video-uvc kmod-video-gspca-core kmod-video-gspca-zc3xx mjpg-streamer kmod-usb-hid kmod-hid kmod-input-evdev" FILES=wr703n

#8M专用: luci,中文语言包,DDNS,硬盘休眠,openvpn,打印服务器,QOS,samba,upnp,relay,网络唤醒,USB挂载,硬盘格式支持(ntfs-3g/ext4/ntfs),UTF8编码,USB扩展支持,USB驱动,复位键支持,transmission下载工具.
make image PROFILE=TLWR703 PACKAGES="block-mount librt libpthread luci luci-i18n-chinese luci-app-ddns luci-proto-3g luci-app-hd-idle luci-app-p910nd luci-app-qos luci-app-samba luci-app-upnp luci-app-wol openvpn openvpn-easy-rsa kmod-scsi-core kmod-scsi-generic kmod-fs-ext4 kmod-fs-ntfs kmod-fs-vfat kmod-nls-utf8 kmod-usb-storage-extras kmod-usb-ohci kmod-usb-storage kmod-usb-uhci kmod-usb-acm kmod-usb-serial kmod-usb-serial-ftdi kmod-usb-serial-pl2303 kmod-video-core kmod-video-uvc kmod-video-gspca-core kmod-video-gspca-zc3xx mjpg-streamer ser2net badblocks restorefactory coreutils transmission-daemon transmission-remote transmission-web vsftpd" FILES=wr703n

上一篇:1-Wire Debug
下一篇:内核3.3.8的最精简的 703N 8M固件, 剩余空间5.2M, 无luci, 方便增加和调试