1. 程式人生 > 其它 >windows10 Ubuntu子系統編譯openwrt

windows10 Ubuntu子系統編譯openwrt

技術標籤:openwrtopenwrtubuntu

前言

其他openwrt的編譯步驟網上幾乎都一樣,網路問題比較頭疼。去買了一個vps,結果記憶體太小了,cpp不夠編譯。只有一核也編不過去。後面使用window10自帶的ubuntu子系統,編譯。下面是編譯步驟,和遇到的所有問題。最好是把網路問題解決了,不然會遇到一堆奇奇怪怪的問題。

編譯步驟

大致有以下步驟:

  1. 下載原始碼
git clone xxxxxxxx(看你是用的哪一個分支)
  1. 下載一些包(這裡要是不科學衝浪會很慢)
./scripts/feeds update -a
./scripts/feeds install -a
  1. 選擇以下要編譯什麼內容
make menuconfig(CPU啥的選一下,就能用,其他的看情況)
  1. 如果使用root編譯加上這一條
export FORCE_UNSAFE_CONFIGURE=1
  1. 然後就等編譯
make V=99

網路問題

有很多dl目錄下的檔案下載太慢,或者根本下載不了

1.使用其他源,(有很多問題)
2.掛代理(我用的方法)

使用代理

我這邊用的是v2ray

  1. 開啟軟體
    在這裡插入圖片描述
    這裡顯示的是http 127.0.0.1:10809
  2. 開啟ubuntu

nano ~/.bashrc

新增以下程式碼

# 我這裡是伺服器不支援https就和http設定成一樣的
export http_proxy=http://127.0.0.1:10809
export
https_proxy=http://127.0.0.1:10809
  1. 執行source ~/.bashrc
  2. 驗證生效與否
[email protected]:~# curl http://google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved <A HREF="http://www.google.com/">here</A>. </BODY></HTML>

如果不為空就可以了

openwrt root使用者問題

openwrt是不推薦root編譯的
會出現以下錯誤

configure: error: you should not run configure as root(set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)

按照他說的,輸入 export FORCE_UNSAFE_CONFIGURE=1繼續編譯就行了

WSL環境變數問題

由於windows添加了一堆莫名其妙的環境變數上去,find出現警告。

sed -i "s/Installed-Time: .*/Installed-Time: 1610712340/" /root/share/newifi/source/build_dir/target-mipsel_24kc_musl/root-ramips/usr/lib/opkg/status
rm -rf /root/share/newifi/source/build_dir/target-mipsel_24kc_musl/root-ramips/boot /root/share/newifi/source/build_dir/target-mipsel_24kc_musl/root-ramips/tmp/* /root/share/newifi/source/build_dir/target-mipsel_24kc_musl/root-ramips/usr/lib/opkg/info/*.postinst* /root/share/newifi/source/build_dir/target-mipsel_24kc_musl/root-ramips/usr/lib/opkg/lists/* /root/share/newifi/source/build_dir/target-mipsel_24kc_musl/root-ramips/var/lock/*.lock
find /root/share/newifi/source/build_dir/target-mipsel_24kc_musl/root-ramips/ -mindepth 1 -execdir touch -hcd "@1610712340" "{}" +
find: The relative path 'Files/WindowsApps/CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2020.812.0_x64__79rhkp1fndgsc' is included in the PATH environment variable, which is insecure in combination with the -execdir action of find.  Please remove that entry from $PATH
make[2]: *** [package/Makefile:72: package/install] Error 1
make[2]: Leaving directory '/root/share/newifi/source'
make[1]: *** [package/Makefile:109: /root/share/newifi/source/staging_dir/target-mipsel_24kc_musl/stamp/.package_install] Error 2
make[1]: Leaving directory '/root/share/newifi/source'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/Common Files/Oracle/Java/javapath:/mnt/d/DevelopSoftWare/VMWare/bin/:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/ProgramData/DockerDesktop/version-bin:/mnt/d/DevelopSoftWare/UltraEdit:/mnt/c/Program Files/Java/jdk-15.0.1/bin:/mnt/c/Program Files/Java/jdk-15.0.1/jre/bin:/snap/bin

解決辦法如下:
1.先echo $PATH

[email protected]:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/Common Files/Oracle/Java/javapath:/mnt/d/DevelopSoftWare/VMWare/bin/:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/ProgramData/DockerDesktop/version-bin:/mnt/d/DevelopSoftWare/UltraEdit:/mnt/c/Program Files/Java/jdk-15.0.1/bin:/mnt/c/Program Files/Java/jdk-15.0.1/jre/bin:/snap/bin

2.把其中一些/mnt/下的目錄全刪了,留下linux編譯要用的

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

3.然後輸入

export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'

4.驗證以下echo $PATH 修改成功