windows10 Ubuntu子系統編譯openwrt
阿新 • • 發佈:2021-01-17
前言
其他openwrt的編譯步驟網上幾乎都一樣,網路問題比較頭疼。去買了一個vps,結果記憶體太小了,cpp不夠編譯。只有一核也編不過去。後面使用window10自帶的ubuntu子系統,編譯。下面是編譯步驟,和遇到的所有問題。最好是把網路問題解決了,不然會遇到一堆奇奇怪怪的問題。
編譯步驟
大致有以下步驟:
- 下載原始碼
git clone xxxxxxxx(看你是用的哪一個分支)
- 下載一些包(這裡要是不科學衝浪會很慢)
./scripts/feeds update -a
./scripts/feeds install -a
- 選擇以下要編譯什麼內容
make menuconfig(CPU啥的選一下,就能用,其他的看情況)
- 如果使用root編譯加上這一條
export FORCE_UNSAFE_CONFIGURE=1
- 然後就等編譯
make V=99
網路問題
有很多dl目錄下的檔案下載太慢,或者根本下載不了
1.使用其他源,(有很多問題)
2.掛代理(我用的方法)
使用代理
我這邊用的是v2ray
- 開啟軟體
這裡顯示的是http 127.0.0.1:10809 - 開啟ubuntu
nano ~/.bashrc
新增以下程式碼
# 我這裡是伺服器不支援https就和http設定成一樣的
export http_proxy=http://127.0.0.1:10809
export https_proxy=http://127.0.0.1:10809
- 執行source ~/.bashrc
- 驗證生效與否
[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 修改成功