WSL重裝、內核編譯和編寫驅動、系統調用筆記


WSL + VS Code 使用LINUX環境

WSL + VS Code Remote真香


備份

1、遠程下載關鍵文件夾進行備份
2、在進行任何操作前,都進行備份,以便回滾

重置WSL(只對Ubuntu進行重置)

1、對ubuntu的APP直接進行重置操作

重裝WSL(重裝lxss)

參考官方指南
思路:關閉子功能,刪除lxss\內容,接着就是重新安裝了
注:
1、建議完全根據說明走一遍
2、授予管理員權限
3、個別文件造成的損壞可以考慮直接復制別人的正常 lxll文件夾內容替換

更新WSL 內核

更新 WSL 2 Linux 內核

編譯Linux內核

  1. WSL 2(Ubuntu18.04)編譯Linux內核(5.7.9)並替換掉WSL 2原有內核

  2. 為你的WSL 2編譯一個最新的Linux內核吧!

配置

1、打開ubuntu等待重啟幾分鍾關掉
2、使用root權限

sudo passwd
su root

3、Ubuntu更換國內源(坑點:根據Ubuntu的版本切換源)
具體見:Ubuntu 20.04換阿里源

3、Ubuntu更換國內源

首先備份一下默認的源
cp /etc/apt/sources.list /etc/apt/sourses.list.bak
知道當前系統的代號,可以用以下命令:
lsb_release -a
更換默認源為阿里源,

使用 sudo vim /etc/apt/sources.list 命令編輯,刪除原來的內容,添加下面的阿里源信息(20.04版本 focal)

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

更換源之后,使用下面的命令更新一下

sudo apt-get update
sudo apt-get dist-upgrade

4、內核編譯、更新與安裝軟件(編譯必備)
參考:[為你的WSL 2編譯一個最新的Linux內核吧](https://blog.csdn.net/qq_40856284/article/details/106535962)
參考:實驗說明書
安裝解決依賴的軟件 `sudo apt install aptitude`
我們需要安裝編譯內核所必要的依賴:
`sudo apt-get install libncurses5-dev g++ make openssl libssl-dev bison flex libelf-dev bc`

Ubuntu使用apt-get install安裝軟件時候,提示:

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

出現原因:apt進程仍在或未正常退出,需要關閉apt進程,運行以下命令即可解決:
`kill  | ps -aux | grep apt | awk '{print $2}'`
或者 rm -rf /var/lib/dpkg/lock

- 刪除無用的文件
sudo make mrproper
sudo make clean
- 設置配置文件
獲取WSL2-Linux-Kernel/edit/wsl-xyb-port-5.7.y/Microsoft/config-wsl
- 編譯內核
- 安裝內核模塊(此部分有了bulid文件夾,可以進行驅動的編譯了)
- 加載模塊(期間可能會遇到權限的問題,提權即可。)
先給腳本文件增加可執行權限:chmod +x ./test_drv_load
再以管理員身份運行加載腳本:sudo ./test_drv_load

完成編譯后,創建軟鏈接:
sudo ln -s /home/yao/WSL2-Linux-Kernel-4.19.84-microsoft-standard /usr/src/linux-headers-4.19.84-microsoft-standard

$ makeclean;make

$./test_drv_load

接下來,編譯並運行測試程序

$gcc–o test test.c
$./test
測試程序運行效果如下:
xxxxx

最后,卸載驅動程序

$./test_drv_unload

通過dmesg命令可以查看內核打印的信息:

$dmesg|tail–n10



---------------------------------

aptitude

常用命令

aptitude update     更新可用的包列表
aptitude upgrade    升級可用的包
aptitude dist-upgrade   將系統升級到新的發行版
aptitude install pkgname    安裝包
aptitude remove pkgname     刪除包
aptitude purge pkgname  刪除包及其配置文件
aptitude search string  搜索包
aptitude show pkgname   顯示包的詳細信息
aptitude clean  刪除下載的包文件
aptitude autoclean  僅刪除過期的包文件
sudo apt-get install aptitude
# 安裝 aptitude 包管理器
sudo aptitude install libgtk2.0-dev
# 提示未滿足依賴關系,給出了類似1) libcairo2-dev [未安裝的] 等提示,問是否接受該解決方案?[Y/n/q/?]
n
# 不接受該解決方案,然后會提示降級下列軟件包,問是否接受該解決方案?[Y/n/q/?] 
y
# 接受降級,此時會發現新安裝包列表里果然有libgtk2.0-dev,然后會提示您要繼續嗎?[Y/n/?]
y
# 繼續,確認安裝
# 安裝成功!其他搞不定的包也可以如此嘗試,不過降級之前需要仔細看下版本號變化,如果差太多還需要慎重考慮


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM