驱动虚拟环境搭建记录

由于驱动开发没有设备,想使用VMware的虚拟设备进行开发。将NVMe驱动卸载,然后将固态硬盘ID绑定到编写的驱动上。以下记录该虚拟环境搭建时遇到的问题。
由于要求的内核版本是4.19,故基本的思路是使用deb包先将内核版本降到4,而后使用源码编译将内核切换成4.19。内核版本切换记录

在华为镜像站中下载Ubuntu镜像,第一次我下载的是Ubuntu22,其版本太高,使得我安装deb包时就出现错误,linux-headers-4.19.100-0419100-generic : Depends: libssl1.1 (>= 1.1.0) but it is not installable,而系统安装的应该是openssl。即使之后安装libssl,内核切换完后再次开机系统就崩了。证明使用过高的Ubuntu发行版不太行,故选择Ubuntu20。
虚拟基本配置

安装Ubuntu系统卡在载入界面,显示正在安装open vm tools

解决方式,安装前创建好虚拟机后不要选择创建后开启虚拟机那个选项,然后进入安装文件夹下把这俩文件删了。再次进入虚拟机开启系统就可以了。
解决安装Ubuntu系统卡在载入界面,显示正在安装open vm tools

在software&update中修改软件源(我选的是清华源),选择best server更快一点。
创建root用户 : sudo passwd root
安装fish,敲命令更方便
更新软件:apt-get update & apt-get upgrade
安装open-vm-tools-desktop 支持宿主机 虚拟机之间复制粘贴(大多数情况已安装)

设置ssh远程登录及公钥登录登录
安装ssh相关服务

sudo apt-get install openssh-client openssh-server 

我安装时Ubuntu缺省已经安装了ssh client。
sudo apt-get install ssh 或者 sudo apt-get install openssh-client

修改ssh配置文件/etc/ssh/sshd_config

Port 22
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes

将公钥添加到authorized_keys中

gedit pub # 复制粘贴宿主机公钥
mkdir ~/.ssh # 其中~为你想用公钥登录的用户目录,我直接在root用户下创建
cat pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sudo service sshd restart

安装Remote-ssh插件-》点击左下角图标-》Connect to Host-》Configure SSH Hosts
新建一段为

Host 6.081
  HostName 192.168.252.135
  Port 22
  User root

虚拟机IP地址使用ifconfig查看,而后直接Connect to Host登录即可

我连接ssh一直失败,最后发现是公钥文件夹里的know_host中ip地址对应的公钥不一致(上次连Ubuntu22带来的,其ip地址一模一样),使用CMD命令行才看到具体报错,vscode只是显示写入管道不存在。
将虚拟机网络模式设置为桥接模式则同一个局域网(wifi)的主机都可以通过ssh远程连接虚拟机。

而后便是下载deb包和源码编译了,deb下载较慢,需加速。其余则跟内核版本切换记录一致

挂载硬盘

lsblk  # 硬盘文件为/dev/nvme0n2 
fdisk /dev/nvme0n2  # 创建分区 m获取帮助 n添加分区 而后全部按默认来 w保存退出
lsblk # 验证分区结果
sudo mkfs.ext4 /dev/nvme0n2p1 # 分区格式化
sudo gedit /etc/fstab  # 记录挂载信息
# 添加一行
/dev/nvme0n2p1 /home/lt1020/Desktop/NVMeTest ext4 defaults 0 0
# 其中/dev/nvme0n2p1为分区,/home/lt1020/Desktop/NVMeTest为挂载目录
mount -a
sudo chown -R lt1020:lt1020 /home/lt1020/Desktop/NVMeTest # 更改目录拥有者,使其可以随意访问(可选)

取消挂载与卸载驱动

umount  /home/hps/Desktop/nvme
rmmod nvme
rmmod nvme-core

内核模块编译

obj-m+=hello.o # 与源文件一致,若不一致或多个文件可使用hello-y指定
all:
        make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules
clean:
        make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean

查看当前文件夹大小
du -h --max-depth=1

相关博客:
内核版本切换记录
vscode彻底卸载记录/使用经验
块设备文件读取实验记录
内核模块编译记录
BAR空间测试代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最佳损友1020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值