Linux 在路由器上安装USB设备-OpenWrt

Linux 在路由器上安装USB设备-OpenWrt,linux,usb,mount,openwrt,Linux,Usb,Mount,Openwrt,我是OpenWrt和Linux/Unix shell的新手。在此之前,我们已经使用dd wrt两年了。最近切换到OpenWrt并完成了基本设置(wifi/互联网工作)。我需要安装我的路由器。但是,USB设备无法安装 路由器的详细信息如下: 路由器型号: 华硕RT-N13U B1 图像闪烁: chaos_calmer 15.05.1(openwrt-15.05.1-ramips-rt305x-rt-n13u-squashfs-sysupgrade.bin) Usb详细信息: Cruiser Bla

我是OpenWrt和Linux/Unix shell的新手。在此之前,我们已经使用dd wrt两年了。最近切换到OpenWrt并完成了基本设置(wifi/互联网工作)。我需要安装我的路由器。但是,USB设备无法安装

路由器的详细信息如下:

路由器型号: 华硕RT-N13U B1

图像闪烁: chaos_calmer 15.05.1(openwrt-15.05.1-ramips-rt305x-rt-n13u-squashfs-sysupgrade.bin)

Usb详细信息: Cruiser Blade 16GB usb 2.0 使用GParted可引导cd格式化为ext4

已安装的驱动程序:

  • kmod usb核心(预装)
  • kmod-usb-dwc2(预装)
  • kmod-usb2
  • kmod usb存储器
  • kmod-fs-ext4
  • kmod scsi核心(预装)
以下是dev/sda、/dev/sda1和/mnt的权限(手动设置777):

安装时出错:

~# mount -t ext4 /dev/sda1 /mnt
mount: mounting /dev/sda1 on /mnt failed: No such file or directory

echo $?
255
sda1存在于dev中,并且/mnt目录存在。但它仍然显示出一个错误

我尝试过安装/重新安装,然后安装,但结果相同。此外,当我断开USBsdasda1时,文件夹会消失,然后在重新连接USB时重新出现,因此我猜设备已成功检测到

我错过了什么

编辑: 添加了评论中建议的编辑

(输出非常大,因此将其链接)

编辑2:
切换到LEDE 17。更稳定,在过去一周内没有任何问题。

dmesg输出的关键部分是

[9.410000]mount_root:从内部覆盖加载kmods

[9.940000]SCSI子系统已初始化

[9.960000]ehci_hcd:USB 2.0“增强型”主机控制器(ehci)驱动程序

[9.980000]ehci平台:ehci通用平台驱动程序[9.990000]usb存储1-1:1.0:_节点编号;不解析pinctrl DT

[9.990000]usb存储1-1:1.0:检测到usb大容量存储设备

[10.010000]scsi主机0:usb存储1-1:1.0

[10.020000]usbcore:已注册的新接口驱动程序usb存储

[10.100000]块:尝试加载/tmp/jffs\u cfg/upper/etc/config/fstab

[10.120000]块:外部根:未配置

[10.130000]挂载根:切换到jffs2覆盖

[10.180000]程序:-早期-

[11.020000]scsi 0:0:0:0:直接访问SanDisk Cruzer刀片服务器1.27 PQ:0 ANSI:6

[11.030000]sd 0:0:0:0:_节点编号;不解析pinctrl DT

[11.050000]sd 0:0:0:0:[sda]30529536 512字节逻辑块:(15.6 GB/14.5 GiB)

[11.070000]sd 0:0:0:0:[sda]写保护已关闭

[11.070000]sd 0:0:0:0:[sda]模式检测:43 00

[11.090000]sd 0:0:0:0:[sda]写缓存:禁用,读缓存:启用,不支持DPO或FUA

[11.120000]sda:sda1

[11.130000]sd 0:0:0:0:[sda]连接的SCSI可移动磁盘

[11.550000]EXT4 fs(sda1):无法加载crc32c驱动程序

哦,不,这好像是个虫子

错误#819725:crc32c模块上缺少ext4 softdep

以下解决方法不适用
,因为initramfs在启动时()是本机文件系统,并且在系统完全启动(rootfs已装载)时没有影响:

在内核包中修复此问题之前,您可以通过 要么:

  • 将基本安装程序/initramfs工具/驱动程序策略设置为“most”而不是“dep”
  • 将base config/late_命令设置为将crc32c添加到/etc/initramfs工具/模块的脚本
不管怎样,发布堆栈跟踪,可能还有另一种解决方法

这是非常复杂的东西

这里也许有一个解决办法

下载kmod-lib-crc32c和kmod-crypto-crc32c

如果这不起作用,最简单的解决方案可能是将USB堆栈格式化为VFAT,然后等待新的内核


这不是权限错误。权限错误将返回EPERM->错误代码1不允许操作

知道
mount
返回的退出代码会很有趣。“退出行为在几种装载版本中非常不同”,即
装载(2)
装载(8)

要获取返回值,请在shell中键入以下命令

mount/dev/sda1/mnt

然后

echo$?

该数字是装载返回的退出代码(255表示“退出状态超出范围”,在本例中为“-1”)

挂载(8)退出代码列表如下所示:

除了返回值mount(2)之外,还在
errno
()中设置错误代码。在shell中打印
errno
有点困难。获取类似的引用并搜索错误字符串比较容易,在这种情况下,没有这样的文件或目录

没有这样的文件或目录的字符串是系统错误enoint

由于系统错误enoint意味着路径名为空或不存在组件。()

尝试
sudo mount-t ext4/dev/sda1/mnt
,因为棍子的格式是ext4

如果这不起作用,
dmesg
输出会很有趣

分离usb设备,重新连接usb设备,键入
dmesg
,然后查看输出。在
dmesg
的输出中,您还可以看到为设备加载了哪些驱动程序

表示您还需要几个驱动程序(
block mount
kmod scsi core
,…),因为U盘(usb大容量存储类)也是scsi和块设备

(linux系统错误)
~# mount -t ext4 /dev/sda1 /mnt
mount: mounting /dev/sda1 on /mnt failed: No such file or directory

echo $?
255