================================================================
《OpenWrt X86 安装教程》
《OpenWrt X86 编译教程》
《OpenWrt X86 分区扩容》
================================================================
准备编译环境
一台用来编译openwrt的PC,一台多网卡的PC 安装openwrt
QOTOM工控电脑Q410P(编译openwrt镜像)和Q500G6(安装openwrt)
安装编译依赖库,重复包不会安装
sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git subversion libssl-dev libncurses5-dev patch unzip zlib1g-dev
如果是64位系统的话还需要安装32位兼容包(否则编译报错)
sudo apt-get install libc6:i386 libgcc1:i386 libstdc++5:i386 libstdc++6:i386
编译源代码
- wopenwrt源:git clone https://github.com/openwrt/openwrt.git
- 更新最新的包定义
./scripts/feeds update -a
- 安装所有的包
./scripts/feeds install -a
feeds命令将安装扩展代码包编译选项,如果不运行该命令,在menuconfig配置将没有选择这些扩展包的选项 - 检查编译工具并生成默认的编译配置文件”.config”
make defconfig
- 修改编译配置
make menuconfig
targetsystem选择x86,target img我保持默认
添加LuCI web配置
LuCI > 1. Collections>luci
LuCI > 2. Modules > Translations———————–(zh-cn)
LuCI > 3. Applications>luci-app-uhttpd
添加EXT4硬盘格式支持,Kernel modules > Filesystem > kmod-fs-ext4
添加USB支持,如不添加可能会不响应键盘,Kernel modules > USB Support
其他功能看自己需要 - 下载所有已选择的软件代码压缩包(dl库)
openwrt仅有编译及配置指令,各种依赖的代码包在上游网站及代码仓库里,编译会下载大量源代码make download V=s
根据下载速度和选择的软件包数量,大约要3小时以上,翻墙会快很多… - 开始编译代码
注意使用root编译会报错,可以在/etc/profile 最后添加export FORCE_UNSAFE_CONFIGURE=1
,然后执行source /etc/profile
V=s 可以输出编译过程中每一步的执行动作,出错后显示详细错误信息,-j2使用两个线程并行编译,第一次不要用多线程编译,不好排错make V=s -j2
编译产生的中间文件会占用十几G,可以用make dirclean清除(会删除编译目录和编译工具目录)ulimit -s 10240 这个命令是防止爆栈
make V=s -j线程数 速度比单线程快N倍
编译生成的文件在bin/x86/
安装镜像
- 将镜像写入硬盘,我使用USB转MSATA
fdisk -l
找到要写入的盘,我的磁盘是/dev/sdb - 然后使用dd命令将写好的硬盘安装到工控电脑
dd if=openwrt-x86-generic-combined-ext4.img of=/dev/sdb
问题解决
安装后,无法识别到网卡,这种情况应该是没有网卡驱动,只能找到对应的网卡驱动编译进内核了
make clean, 重新配置make menuconfig
经查找网卡使用的是Intel IG211-AT,走的是PCIE通道,这里要选用e1000e
Kernel modules > Network Devices将kmod-e1000e和kmod-igb驱动选中
另外还有个AzureWave无线模块
Kernel modules > Wireless Drivers
保存配置文件
因为之前已经编译过了,这次可以使用多线程,编译时间会快很多 make clean && make V=s -j4
重新编译OK,写入镜像后有线,无线网卡(RTL8821AE)均可正常使用