问题标签 [sata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - Need Script To Automatically Restart Mac Until Negotiated SATA Link Speed is SATA II
I've got a couple of late 2009 Mac Minis running Mavericks. I recently replaced their hard drives with SSDs. Everything seems to work fine, however, I don't always get SATA II speeds. The computer often negotiates down to SATA I speeds. If I restart the computer enough times, it will eventually register at SATA II speeds and I'm good to go.
I don't think there's an elegant solution to the problem, but is there a script available, or that someone could write, that on start-up would check my negotiated SATA link Speed, and if it's less than 3.0GBPS it would automatically restart the computer and loop until it reads out the appropriate speed?
Thanks! Any help would be appreciated
qemu - 如何在 QEMU 中模拟 SATA 磁盘驱动器
我想在 QEMU 中模拟 SATA 磁盘驱动器来检查我正在尝试开发的设备驱动程序。如何才能做到这一点?非常感谢您的帮助。
c++ - 从 Linux 中的 C++ 程序以非常快的速度(每秒 30 个)连续写入二进制文件(~12MB)
我正在尝试将原始视频帧(每个 12.4MB)实时(30fps)写入通过 sata3(6Gb/秒)接口连接的 CFast 2.0(ext4)卡。
该卡的额定速度为 430MB/秒,当我用连续 100MB 文件写入对驱动器进行基准测试时,它很高兴地达到了 ~420MB/秒。
问题是当我写较小的文件时,~12MB,吞吐量下降到大约 350MB/秒,这对于我的目的来说太慢了。
文件写入例程是比较简单的基于 fopen 的(伪代码):
我已经尝试过单线程和多线程,但没有太大区别。我猜想创建一个新文件并关闭它会产生一些重大开销。目前文件系统是 ext4,尽管我最终希望它与 exFat 一起工作。
有没有办法与文件系统进行低级别交互,从而允许以低得多的开销创建和填充大量文件?或者是否有将大量文件批量保存到磁盘的优化技巧?
c - 访问超出报告容量的块设备数据
我有一个 SATA 块设备,它报告的容量小于其可访问空间,我想使用 Linux 为块设备创建的文件读取和写入它超过报告的容量。所以我希望使用从open({ "/dev/sda", O_RDWR
)返回的描述符进行操作。但是,当我尝试使用lseek
来查找设备的容量时,我收到一个错误,并且 errno 被设置为EINVAL (22)
. 有没有办法在不修改设备驱动程序并且仍然使用返回的文件描述符的情况下访问超出设备容量的数据open()
?
我的 Linux 版本是内核 3.10.0-514.21.1.el7.x86_64 的 CentOS 7,尽管我会对解决方案感兴趣,即使它们涉及其他 Linux 发行版。
编辑:我正在使用的驱动器是一个 FLEX 协议驱动器,它报告驱动器的常规容量,但也有在驱动器报告容量以上的偏移处可用的叠瓦式磁记录。如果您有兴趣,可以在T13 网站上找到该协议的详细信息。
linux-kernel - 有没有办法在运行时覆盖 libata.force?
我故意添加了内核选项“libata.force=1.00:disable”来“忽略”我的内部 SATA HDD,因为我是从闪存启动(以加快启动过程)并避免出现故障的 HDD(以避免引导期间内核锁定)。
尽管如此,在内核启动并运行后,我想“启用”我的硬盘开始在那里存储文件。
我已经尝试了以下命令来强制重新扫描广告,即使操作系统知道它在那里,它基本上什么都不做,因为它已被“强制”标志禁用。
因此,我正在寻找一种方法来在启动后覆盖“libata.force”的值,或者使用一组命令来启用我的 SATA HDD 以便可以使用它。
linux - 当传输长度超过 1345 时,Linux scsi ata cmd 写入或读取有时有效,有时无效
我的代码如下:
如果我发送超过 1345 的 cmd 传输长度,它有时会起作用,有时会不起作用。如果传输长度增加,不工作的部分也会增加。cmd 不工作时没有 uart 日志或内核日志。
附言。如果 cmd 不起作用,errno 会说22(invalid argument)
linux - INIT_DEV_PARAMS 失败重启设备
我有运行 linux 内核的设备4.1
。它有sata
端口连接HDD
。在没有HDD
连接的情况下,在设备启动期间,我看到内核检查ata
链接down
并在启动过程中继续进行。现在使用HDD
connected ,在设备启动期间,内核会检查ata
链接,up
但无法获取磁盘参数并重新启动设备。内核尝试获取驱动器的 init 参数 3 到 4 次并重新启动。我的问题是为什么设备由内核重新启动,它不应该继续启动过程吗?请说清楚。
linux-kernel - Linux 3.1 是否支持英特尔傲腾?
Linux Arch 3.1 是否支持英特尔傲腾?我已经在 SATA 上启动了内核 3.1。SATA 上有英特尔傲腾吗?或者 Linux 3.1 是否支持任何其他 Optane 接口?
编辑
它是基于 Arch 的Audiophile Linux 3.1:
unname -a
Linux server1 3.10.14-rt9-1-rt #1 SMP PREEMPT RT Wed Oct 9 ... 2013 x86_64
我的系统 4.0 版本有问题。我没有尝试 5.0。
io - 如何设置硬盘的pio模式?
我正在处理一个硬盘速度问题,系统使用pio模式访问硬盘。现在,我读取一个4MB的文件需要4s,这很不正常。
IDE 控制器支持 pio 模式 4,我尝试设置它的访问时间,但没有效果。
所以,我觉得硬盘也需要设置pio模式?我找到了两个硬盘数据表,但找不到有用的信息。
有人知道这个问题吗?谢谢。
disk - print_req_error:关键目标错误,dev sdb,扇区 0
一段时间后,我在 /dev/sdb 上找到了三星磁盘,但在分区上没有找到该设备。smartools 无法对设备进行测试,dmesg 跟踪显示以下信息无法访问扇区 0。对我来说,问题很明显,磁盘在某些硬件部分损坏,PCB 板无法访问与磁盘通信。我想对这个问题有一些其他的看法,记住是硬件问题。
你知道发生了什么吗?我可以恢复磁盘吗?