Tự động gắn các thiết bị USB trên Raspberry PI

Bài báo này đã được xuất bản bởi Chào trong của chúng tôi diễn đàn

Trong Raspberry, nếu bạn không sử dụng giao diện đồ họa, việc gắn bộ nhớ USB của chúng ta nhiều lần sẽ trở nên khó chịu. Ngoài ra, trong quá trình tự động hóa hành động này (đó là những gì tôi trình bày bên dưới), bạn có thể tìm hiểu một chút về cách Linux xử lý các thiết bị.

Cài đặt autofs và udev

Điều đầu tiên chúng tôi sẽ làm là cài đặt tự động y udev

Sudo apt-get cài đặt autofs udev

udev là một công cụ nhân Linux chịu trách nhiệm quản lý thư mục / dev, nơi chứa tất cả các thiết bị. Và autofs cho phép chúng tôi, sau khi được cấu hình, tất cả tự động gắn kết và ngắt kết nối ngay khi usb được kết nối hoặc ngắt kết nối.

Điều đầu tiên chúng tôi sẽ làm là kết nối bộ nhớ USB của chúng tôi (tôi sẽ sử dụng thương hiệu Kingston) vào máy tính của chúng tôi / Raspberry Pi. Sau đó, chúng tôi thực hiện:

sudo fdisk -l

sẽ có đầu ra tương tự như sau:

Disk / dev / mmcblk0: 15.7 GB ... Device Boot Start End Blocks Id System / dev / mmcblk0p1 2048 1607421 802687 e W95 FAT16 (LBA) / dev / mmcblk0p2 1613824 30613503 14499840 85 Linux Extended / dev / mmcblk0p3 30613504 30679039 32768 Linux… .. Disk / dev / sda: 83 GB ... Device Boot Start End Blocks Id System / dev / sda30.9 1 2048 60436479 c W30217216 FAT95 (LBA)

Bộ nhớ USB bên ngoài của tôi có 30.9 GB (tức là / dev / sda1) trong khi bộ nhớ SD mà tôi đã cài đặt Linux có 15.7 GB.

Quy tắc tùy chỉnh trong udev

Biết rằng sda1 là thiết bị của chúng tôi, chúng tôi sẽ sử dụng udev để trích xuất thông tin từ bộ nhớ, vì vậy chúng tôi thực hiện lệnh sau:

udevadm thông tin -a -p $ (udevadm thông tin -q đường dẫn -n / dev / sda1)

sẽ có các khối được phân tách bằng cụm từ "đang xem thiết bị mẹ '/ thiết bị / ... .."

để làm cho việc tìm kiếm dễ dàng hơn một chút, chúng ta có thể sử dụng grep, vì vậy tôi làm như sau:

udevadm thông tin -a -p $ (udevadm thông tin -q đường dẫn -n / dev / sda1) | nhà sản xuất grep

trong trường hợp của tôi vì bộ nhớ của tôi là Kingston, đầu ra là:

    ATTRS {nhà sản xuất} == "Kingston" # 1 ATTRS {nhà sản xuất} == "Linux 3.12.28+ dwc_otg_hcd"

hoặc chúng tôi cũng có thể tìm kiếm:

udevadm thông tin -a -p $ (udevadm thông tin -q đường dẫn -n / dev / sda1) | mô hình grep udevadm thông tin -a -p $ (udevadm thông tin -q đường dẫn -n / dev / sdd1) | nhà cung cấp grep

Tôi quan tâm:

ATTRS {nhà sản xuất} == "Kingston"

Như là sự trùng hợp đầu tiên. Trong đầu ra lệnh udevadm Tôi tìm kiếm khối nơi nó xuất hiện lần đầu tiên "ATTRS {producer}"

Tôi lấy một số dữ liệu mà tôi coi là duy nhất từ ​​thiết bị của một khối, trong trường hợp của tôi:

   ATTRS {product} == "xxx" ATTRS {serial} == "xxxx" DRIVERS == "usb"

bạn chỉ cần tạo các quy tắc. Chúng tôi tạo một tệp đã hoàn thành bằng .rules trong udev:

sudo nano /etc/udev/rules.d/personal.rules

bên trong tệp chúng tôi đặt

ATTRS {product} == "xxx", ATTRS {serial} == "xxx", DRIVERS == "usb", SYMLINK + = "miusb"

Bây giờ khi tôi kết nối usb của tôi sẽ có một tệp / dev / miusb. Đây là phần khó nhất.

Thiết lập tính năng tự động

Chúng tôi thực hiện:

sudo nano / etc / default / autofs

trong đó nó nói "TIMEOUT =" họ đặt "TIMEOUT = 1"

Hãy truy cập /etc/auto.master

nano /etc/auto.master

và bên trong tệp chúng tôi đặt ở dòng cuối cùng:

/ media /etc/auto.misc

bây giờ chúng ta truy cập /etc/auto.misc

nano /etc/auto.master

và ở dòng cuối cùng, chúng tôi viết:

mymemory -fstype = vfat, users, rw, umask = 000: / dev / miusb

cuối cùng chúng tôi làm cho nó tải mô-đun autofs ở đầu:

sudo nano / etc / modules

và ở dòng cuối cùng, chúng tôi viết:

autofs4

và thì đấy, chúng tôi khởi động lại Raspberry. Hãy nhớ rằng thư mục không tồn tại trong / media nhưng khi chúng tôi thực hiện

cd / media / memory

chúng tôi đã ở bên trong. Và nếu chúng tôi ngừng sử dụng, thư mục sẽ biến mất và chúng tôi có thể xóa thiết bị mà không cần ngắt kết nối thủ công.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Chào dijo

    cảm ơn vì đã đăng nó 🙂

  2.   Pablo dijo

    Tôi nghĩ rằng có một lỗi, trong bước chỉnh sửa auto.misc, auto.master được viết trong mã, trong trường hợp ai đó không nghi ngờ làm điều đó và không nhận ra 🙂

  3.   Fernando Diaz dijo

    Cảm ơn, tôi chỉ muốn làm điều đó trên Raspbian, tôi đã sử dụng Arch trước đây và nó dễ dàng hơn.

  4.   Azureus dijo

    Rất tốt, tôi đã nắm bắt được điều đó khi đặt Pi của mình làm ứng dụng khách torrent với các thư mục được chia sẻ bởi samba.
    Hướng dẫn sử dụng fstab nói rằng một cái gì đó mạnh mẽ hơn một chút là kiểm tra nhãn của thiết bị bằng # blkid, trong trường hợp của tôi, tôi có một phân vùng cửa sổ được tự động gắn vào mỗi lần khởi động như sau:

    / dev / sda2
    UUID = 24A0729FA07276E0 / home / azureus / Windows ntfs auto, mặc định 0 2

    trên mâm xôi mình có gắn LVM, không nhớ rõ cấu hình.
    Theo sách hướng dẫn, bạn có thể sử dụng # fdisk -l để lấy số và ký tự ổ đĩa và # blkid để biết nhãn nào tương ứng với ổ đĩa nào.

    Chúc mừng.

    1.    Azureus dijo

      [Cập nhật]
      Nhãn này phát sinh từ thực tế là có những người (như tôi) cảm thấy lười ngắt kết nối một ổ đĩa mỗi khi máy tính tắt, vấn đề là khi bạn có nhiều ổ đĩa vì nó không phải lúc nào cũng được gắn theo thứ tự sau nhiều lần khởi động lại. . Nhân tiện, điều này có một nhược điểm, khi thiết bị tương ứng với nhãn được gán cho số tự động bị xóa, nó sẽ gây ra lỗi và không cho phép tải / home trong trường hợp phân vùng được gắn trên home. Điều này có thể được giải quyết bằng cách comment thiết bị gây ra xung đột trong fstab hoặc bằng cách kết nối lại thiết bị