完整word版Openwrt学习笔记x86固件编译部署819修订.docx
- 文档编号:14385622
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:10
- 大小:177.54KB
完整word版Openwrt学习笔记x86固件编译部署819修订.docx
《完整word版Openwrt学习笔记x86固件编译部署819修订.docx》由会员分享,可在线阅读,更多相关《完整word版Openwrt学习笔记x86固件编译部署819修订.docx(10页珍藏版)》请在冰点文库上搜索。
完整word版Openwrt学习笔记x86固件编译部署819修订
openwrtx86编译部署
0。
配置编译环境
(略)
1。
获取源代码
(略)
2.一些问题
config文件位置:
openwrtconfig文件:
/。
config
Kernelconfig文件:
build_dir/target—xxxxxxx/linux-x86_generic/linux—x。
xx.xx/.config
内核版本更改:
3。
makemenuconfig
这里给出一个基本配置,正常使用默认配置即可,不需要Customizebusyboxoptions,这些另外的配置基本是x86必须的。
为了在以后的initramfs中加入一些overlayfs的功能,添加了一些配置。
[]Don’tuse/usr该项不选!
否则无法生成/usr/sbin/ntpd—hotplug及其他文件,导致busybox—*.ipk生成失败!
添加文本编辑工具:
Utilities—--〉Editors—-—><*〉nano
Utilities———>Editors—-—〉<*>vim-full
其中Wifiap模式用wpad代替hostapd和wpa—supplicant!
建立网站支持:
Languages-—〉PHP—-><*〉PHP5
php5—cgi
php5-fastcgi
php5-mod—ctype
php5—mod-curl
php5-mod-exif
php5-mod-ftp
php5-mod—gd
php5-mod-iconv
php5-mod-json
php5-mod-mbstring
php5—mod-mcrypt
php5—mod-mysql
php5-mod—pdo
php5—mod-pdo—mysql
php5-mod—session
php5—mod-sockets
php5-mod—sqlite3
php5-mod-tokenizer
php5-mod—xml
php5—mod—zip
Utilities—-〉database-—><*>mysqlserver
#如安装了nginx则需修改uhttpd的端口,以便luci可通过web正常访问
Network--〉WebServers/Proxies-->〈*〉nginx
Network——>WebServers/Proxies—-〉〈*>spawn—fcgi
Utilities--〉zoneinfo——>〈*>zoneinfo-core
Utilities-—>zoneinfo-—〉<*〉zoneinfo-asia
Utilities-—〉〈*>shadow—utils(可选shadow-groupadd和shadow—useradd)
Network-—>CaptivePortals——〉Server——〉〈*>wifidog
4。
makekernel_menuconfig
目的是为了加入x86的多核心以及大内存支持
DeviceDrivers
〈〉ATA/ATAPI/MFM/RLLsupport(DEPRECATED)-——>
SCSIdevicesupport—-—>
〈*〉SCSIgenericsupport(kernelmodule-—>BlockDevices—-〉<*〉kmod-scsi—core)
〈*>SerialATAandParallelATAdrivers-——>
<*>AHCISATAsupport(kernelmodule——>BlockDevices--〉〈*>kmod-ata-ahci)
<*〉IntelESB,ICH,PIIX3,PIIX4PATA/SATAsupport(默认选中)
<*>VIASATAsupport
〈*〉VIAPATAsupport
……(根据你的硬件情况选择)
[*]Multipledevicesdriversupport(RAIDandLVM)———>
[*]Networkdevicesupport-—-〉(网卡驱动支持,根据你的硬件情况选择)
[*]Ethernetdriversupport-—-〉
[*]Marvelldevices
<*〉MarvellMDIOinterfacesupport
<*>MarvellYukonGigabitEthernetsupport
〈*〉MarvellYukon2support
[*]Realtekdevices
〈*>RealtekRTL—8139C+PCIFastEthernetAdaptersupport()
〈*〉RealtekRTL-8129/8130/8139PCIFastEthernetAdaptersupport()
<*〉Realtek8169gigabitethernetsupport
设置了PowermanagementandACPIoptions-->[*]ACPI(AdvancedConfigurationandPowerInterface)Support后,需要在CPUFrequencyscaling--〉x86CPUfrequencyscalingdrivers——->中选择一个驱动,否则会全速运行!
如果没有设置,在编译时InterEnhancedSpeedStep(deprecated)一项需要手动确认,其他都默认为“n”。
5。
make
编译
6.安装
固件简介
lsbin/x86
会看到有以下一些文件,与官方编译的固件名称完全相同,这里大概解释下:
openwrt—x86—generic-combined-ext4.img。
gz:
包含vmlinuz、rootfs(ext4)、引导信息以及相关分区信息的img,一般是两个分区,可以把它看成是硬盘镜像,直接dd到某个磁盘。
openwrt-x86-generic-rootfs—ext4.img.gz:
rootfs分区镜像,可以直接dd到某个分区,或者mount—o到某个目录。
openwrt—x86-generic—rootfs-squashfs.img:
同上
openwrt-x86-generic—vmlinuz:
kernel
openwrt—x86—generic-Generic—rootfs.tar.gz:
rootfs用gz打包后的文件
可以看出,要让系统启动,需要引导器(x86是使用grub,好比是路由中的uboot,当然uboot管的内容更多)、kernel、rootfs三者。
简易部署
如果你的磁盘(U盘)只用于openwrt系统,可以使用最简单的用combined.img直接dd到目标盘,这样的好处是简单,坏处是如果你的sdb(磁盘/U盘)很大,就带来空间浪费,虽然可以在rootfs中存数据,但是下次升级系统就带来不必要的麻烦,命令行如下:
自定义部署
适合有一定基础的兄弟,大致步骤:
(1)建立分区、文件系统;
(2)用dd将rootfs。
ext4.img写入到分区;
(3)复制vmlinuz到分区;
(4)安装引导
如果主板是bios,我习惯用grub4dos,参见无忧启动;
如果主板是efi,我习惯用grub2,需要efi文件系统(fat文件系统),在分区的时候要记得加入,参照各大linux发行版。
(5)编辑menu.lst;
(6)启动
7。
关于initramfs&&overlayfs
overlayfs:
由于openwrtx86一般都是安装在U盘/TF卡/硬盘等介质上,默认是ext文件系统,就没有使用overlayfs,如果要使用overlayfs就得用squashfs.由于从路由过度过来,我个人对overlayfs颇有好感,着手在x86的ext4上加入overlayfs支持。
稍后,会单独写一篇关于x86下overlayfs的文档。
initramfs:
按照如下编译选项配置,其编译生成的vmlinuz是一个带initramfs的kernel,当然可以在也可以在Useexternalcpio中选择自定义initramfs目录,如果没选择Useexternalcpio,openwrt则会将整个rootfs当作initramfs编译进vmlinuz.
如果用gurb加载它,则整个系统会在ramfs上运行,所有配置在重启后都将不被保留!
一般需要在这个上面启动到另一个kernel(kexec)或者switch_root到另一个rootfs(真实的磁盘)环境,ramdisk(initramfs)。
因此一般是不勾选编译选项中的ramdisk选项,自己着手来做initramfs,加入一些hook(比如加入overlayfs支持、switch_root到其他rootfs、干脆直接kexec到其他kernel),用gurb的initrd加载,就可以完成系统启动。
在编译固件的时候,如果机器上有硬盘,引导设备编号需要修改为sdb2、sdc2……(根据硬盘数量定,只有一块硬盘时,优盘设置为sdb2,以此类推)。
x86的编译要点
考虑到x86平台使用的特点,以及OpenWrt本身,可参考以下要点
1。
编译所有文件系统支持,包括ext2/ext3/ext4,还有NTFS,甚至是LVM;
2.加入一个文本编辑器,例如vim或者nano,因为日常使用中需要用文本编辑器修改各种配置文件;
3。
加入所有关于无线网卡的驱动,模块,各种支持程序,
4。
一些其他常见应用--蓝牙、加密、PGP、SSL、SSH、VPN、USB支持、3G上网卡、
5.编译时要到网上下载相关源码,所以可以日后下载的包尽量不选择编译;
6。
编译好的文件在当前目录的bin文件夹下,如果是x86,则ls/bin/x86/就可以看到很多熟悉的文件了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word Openwrt 学习 笔记 x86 编译 部署 819 修订