Windows 10 下使用wsl2编译Openwrt

装备环境-准备并安装wsl

  • 启用wsl

    使用powershell或windows组建添加或删除启用wsl(Windows Subsystem Linux)及虚拟机平台(VirtualMachinePlatform)

    powershell:

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    windows组件:

    在windows组件中勾选wsl及VirtualMachinePlatform即可

    使用wsl2依赖于VirtualMachinePlatform,如使用wsl v1无需启用该组件

  • 安装wsl2并安装linux发行版本

    使用wsl2需要升级wsl内核,下载并安装wsl内核,然后到microsoft商店安装linux发行版本(如ubuntu)。

编译openwrt

  • 迁移wsl发行版本(系统分区空间充足的可忽略)

    获取LxRunOffline对系统中wsl发行版本进行目录迁移。

    1. 查看wsl发行版本

      lxrunoffline l

      Ubuntu

    2. 迁移wsl发行版本目录

      lxrunoffline m -n Ubuntu -d d:\test
    3. 确认转移

      lxrunoffline di -n Ubuntu

      d:\test

  • 启用windows大小写区分特性

    fsutil.exe file setCaseSensitiveInfo d:\test enable

    在启用大小写区分前写入的数据保持原有特性,新写入文件才拥有大小写区分特性

  • 获取openwrt源码开始编译

    将openwrt源码拉取到wsl用户目录,执行编译即可

    $ make menuconfig
    $ make V=s

openwrt 无法找到共享库libgcc_s.so.1

出现这个问题是今天在安装某个ipk包,所依赖的libgcc由于系统已存在,所以将其从/lib下移至/root/中,随后发现大部分命令依赖于libgcc导致无法使用。好在export正常工作,将LD_LIBRARY_PATH设置为libgcc所在目录/root,使其他工具正常使用。

export LD_LIBRARY_PATH=/root

 

wr703n openwrt 改8M flash

前些天没事发现wr703n能刷openwrt,于是就将其从他人手上回收回来了。

按网上说的刷完openwrt之后,开装luci却发现no enough space left。原来flash容量太小了,刷完openwrt之后仅剩200多k的可用空间。

于是将原来的flash提取了出来,直接烧到新的8M flash上去,然后重新通电,以太网口还是正常工作的,但是wifi却用不了。

http://blog.sina.com.cn/s/blog_776596a50101kbvg.html说到,art信息丢失所以wifi不可用了。按照此文,重新合并rom文件。

因为改的flash大小不一样,只是生成art前文件大小有所变动,另自己早用dd生成文件时,发现若使用单位为M的话,似乎生成的文件大小不正确,故使用字节为单位。

一、在原来的flash上刷好openwrt并登录,备份mtd分区:

#cd /tmp

#cat /dev/mtdblock0 > uboot.bin

#cat /dev/mtdblock4 > art.bin

#cat /dev/mtdblock5 > firmware.bin

备份完的三个文件,可以直接合成为4M flash可用的固件:cat uboot.bin firmware.bin art.bin > wr703n.bin

二、合成8M flash可用固件:

首先生成一个内容为全0xFF 4M大的文件:

tr ‘\000’ ‘\377’ /dev/zero dd of=0xFF_4MB.bin bs=1024 count=4096

然后再合成8M flash可用固件:

cat uboot.bin firmware.bin 0xFF_4MB.bin art.bin > wr703n_8M.bin

最后直接将合成的文件用编程器刷进8M flash,换上flash。

关于配置,参考http://blog.csdn.net/qinpeng_zbdx/article/details/8570488