小编Tik*_*tac的帖子

virt_to_phys和Linux内核中CPU的MMU之间有什么关系?

我正在阅读有关Linux内存管理的内容.我知道

Linux内核负责创建和维护页表,但使用CPU的内存管理单元(MMU)将进程的虚拟内存访问转换为相应的物理内存访问.

但是,我也知道内核可以使用它的一些功能来管理内存,例如virt_to_phys(),virt_to_page(),__pa(),...

例:

static inline unsigned long virt_to_phys(volatile void *address)
{
    return __pa(address);
}
Run Code Online (Sandbox Code Playgroud)

用于将虚拟地址转换为物理地址.

我对他们很困惑.请帮我们看一下MMU翻译与内核翻译之间的关系并区分它们?

linux memory cpu cpu-architecture linux-kernel

15
推荐指数
1
解决办法
2977
查看次数

确定USB设备文件路径

如何在Linux中正确获取USB设备文件路径.我使用命令:find/-iname"usb"并获得如下结果:

/dev/bus/usb
/sys/bus/usb
/sys/bus/usb/drivers/usb
/sys/kernel/debug/usb
Run Code Online (Sandbox Code Playgroud)

在/ dev/bus/usb下我看到:

001  002  003  004  005  006
Run Code Online (Sandbox Code Playgroud)

但我认为它们不是我需要的文件.

在/ sys/bus/usb/devices /下:

sh-3.2# ls /sys/bus/usb/devices/
1-0:1.0  1-1:1.0  3-0:1.0  5-0:1.0  usb1     usb3     usb5
1-1      2-0:1.0  4-0:1.0  6-0:1.0  usb2     usb4     usb6
Run Code Online (Sandbox Code Playgroud)

在/ sys/bus/scsi/devices /下我插入USB时看到:

2:0:0:0      host0        host2        target2:0:0
Run Code Online (Sandbox Code Playgroud)

当我删除USB时,我看到:

sh-3.2# ls
host0
Run Code Online (Sandbox Code Playgroud)

那么哪个设备文件用于USB?我怎么辨认呢?我需要用USB设备文件制作一个C程序...

还有,你能解释一下我的数字是1-1:1.0吗?这是什么意思?

谢谢.

linux usb libusb linux-kernel

10
推荐指数
1
解决办法
2万
查看次数

TypeError(没有将 nil 隐式转换为 Integer)Active Record

我的 Rails 应用程序目前有两个user模型transaction

user has_many :transactions 
transaction belong_to :user


class Transaction < ApplicationRecord
  belongs_to :user
end


Run Code Online (Sandbox Code Playgroud)

TypeError (no implicit conversion of nil into Integer)我可以在我的应用程序中很好地创建用户,但是当我创建交易时,即使记录创建成功,它总是显示错误消息。

在此输入图像描述

irb(main):007:0> t = Transaction.new
=> #<Transaction id: nil, user_id: nil, gateway: nil, status: nil, txn_id: ...
irb(main):008:0> t.save
Traceback (most recent call last):
        1: from (irb):8:in `<main>'
TypeError (no implicit conversion of nil into Integer)
irb(main):009:0> User.last.transactions.create
  User Load (1.2ms)  SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT $1  [["LIMIT", …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails

9
推荐指数
1
解决办法
1971
查看次数