OpenWrt X86 编译教程

By | 2019-09-11

================================================================
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

编译源代码

  1. wopenwrt源:git clone https://github.com/openwrt/openwrt.git
  2. 更新最新的包定义
    ./scripts/feeds update -a
  3. 安装所有的包
    ./scripts/feeds install -a

    feeds命令将安装扩展代码包编译选项,如果不运行该命令,在menuconfig配置将没有选择这些扩展包的选项
  4. 检查编译工具并生成默认的编译配置文件”.config”
    make defconfig
  5. 修改编译配置
    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

    其他功能看自己需要
  6. 下载所有已选择的软件代码压缩包(dl库)
    openwrt仅有编译及配置指令,各种依赖的代码包在上游网站及代码仓库里,编译会下载大量源代码
    make download V=s
    根据下载速度和选择的软件包数量,大约要3小时以上,翻墙会快很多…
  7. 开始编译代码
    注意使用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/

安装镜像

  1. 将镜像写入硬盘,我使用USB转MSATA
    fdisk -l
    找到要写入的盘,我的磁盘是/dev/sdb
  2. 然后使用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-e1000ekmod-igb驱动选中

另外还有个AzureWave无线模块

Kernel modules > Wireless Drivers

保存配置文件
因为之前已经编译过了,这次可以使用多线程,编译时间会快很多
make clean && make V=s -j4
重新编译OK,写入镜像后有线,无线网卡(RTL8821AE)均可正常使用

发表评论

邮箱地址不会被公开。 必填项已用*标注