คำถามติดแท็ก devices

อุปกรณ์อ้างอิงถึงคำถามเกี่ยวกับไฟล์พิเศษของอุปกรณ์ Unix / Linux โดยปกติอุปกรณ์เหล่านี้จะอยู่ภายใต้ / dev อย่าใช้แท็กนี้สำหรับอุปกรณ์ทางกายภาพ (สำหรับการใช้งานเช่น usb หรือ pci)

2
ใช้ bash's `/ dev / udp` ฉันจะรู้ได้อย่างไรว่าพอร์ตนั้นเปิดอยู่
ฉันไม่สามารถเข้าถึงnetcatหรือnmapดังนั้นฉันพยายามใช้bashและ/dev/udp/ไฟล์พิเศษเพื่อทดสอบพอร์ต ฉันสามารถทำสิ่งที่ชอบ: echo "" > /dev/udp/example.com/8000 แต่$?จะเป็นเสมอ0เมื่อใช้ UDP ฉันสมมติว่านั่นเป็นเพราะค่าส่งคืนของecho ""คำสั่งถูกต้องหรือไม่ โดยทั่วไปฉันพยายามทำซ้ำสิ่งที่ฉันสามารถทำได้ด้วยnmapและnetcat: nmap -sU -p 8000 example.com | grep open >/dev/null && echo 'open' nc -z -u example.com 8000 && echo 'open' ฉันจะทำสิ่งนี้ด้วยได้/dev/udpอย่างไร

3
ฉันจะอนุญาตให้แอป SDL (ไม่ทำงานในฐานะรูท) ใช้คอนโซลได้อย่างไร
ฉันต้องการใช้โปรแกรมที่ใช้ SDL เพื่อแสดงกราฟิกบนคอนโซลโดยไม่ต้องเข้าสู่ระบบจากคอนโซลและไม่เรียกใช้โปรแกรมเป็นรูท ตัวอย่างเช่นฉันต้องการที่จะสามารถเรียกใช้ผ่านทาง ssh ระบบปฏิบัติการเป้าหมายคือ raspbian นี่เป็นตัวอย่างสั้น ๆ ใน python เพื่อแสดงปัญหา: import os, pygame os.environ['SDL_VIDEODRIVER'] = 'fbcon' pygame.init() s = pygame.display.set_mode() print "Success" ใช้งานได้ (ทำงานจนเสร็จสมบูรณ์ไม่ส่งข้อยกเว้น) ถ้าฉันเรียกใช้จากคอนโซลและทำงานผ่าน ssh ถ้าฉันเรียกใช้เป็นรูต ฉันตรวจสอบแล้วว่าผู้ใช้ของฉันอยู่ในกลุ่มเสียงและวิดีโอ ฉันใช้ strace เพื่อดูความแตกต่างระหว่างการเรียกใช้จากคอนโซล (ซึ่งใช้งานได้) การใช้งานเป็น root ผ่าน ssh (ยังใช้งานได้) และใช้งานในฐานะผู้ใช้ทั่วไปผ่าน ssh (ไม่ทำงาน) ข้อแตกต่างแรกคือผู้ใช้ของฉันไม่ได้รับอนุญาตให้เข้าถึง / dev / tty0 ฉันสร้างกลุ่มใหม่ (tty0) ใส่ผู้ใช้ของฉันในกลุ่มนั้นและเพิ่มกฎ …

3
ฉันจะทราบได้อย่างไรว่ากระบวนการใดกำลังใช้งานเว็บแคม V4L2 ของฉัน
ฉันพยายามเรียกใช้สิ่งต่อไปนี้: $ vlc -I dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path webcam.png --scene-prefix image_prefix --scene-format png vlc://quit --run-time=1 VLC media player 2.0.7 Twoflower (revision 2.0.6-54-g7dd7e4d) [0x1f4a1c8] dummy interface: using the dummy interface module... [0x7fc19c001238] v4l2 demux error: VIDIOC_STREAMON failed libv4l2: error setting pixformat: Device or resource busy libv4l2: error setting pixformat: …
14 devices  camera  vlc  v4l 

2
เหตุใด <หรือ> จำเป็นต้องใช้ / dev / tcp
เมื่อพยายามโทร/dev/tcp/www.google.com/80โดยพิมพ์ /dev/tcp/www.google.com/80 no such file or directoryทุบตีกล่าวว่า เมื่อดูที่รหัสของคนอื่นทางออนไลน์พวกเขาใช้ไวยากรณ์เช่น 3&lt;&gt;/dev/tcp/www.google.com/80 ฉันสังเกตเห็นว่ามันใช้งานได้ดีเช่นกัน: &lt;/dev/tcp/www.google.com/80 ทำไมสัญลักษณ์เหล่านี้จำเป็นต้องเรียกบางสิ่งในทุบตี?

4
ปัญหาเกี่ยวกับการทำความเข้าใจแนวคิดของการติดตั้ง
ต้องอ่านทั้งสองสิ่งมีความหมายโดยการติดตั้งอุปกรณ์ใน Linux? และการทำความเข้าใจ "mount" เป็นแนวคิดในระบบปฏิบัติการฉันมีปัญหาเมื่อมีการระบุว่า ที่เก็บข้อมูลที่เข้าถึงได้ทั้งหมดจะต้องมีตำแหน่งที่เกี่ยวข้องในแผนผังไดเรกทอรีเดียวนี้ สิ่งนี้แตกต่างจาก Windows โดยที่ (ในรูปแบบที่พบบ่อยที่สุดสำหรับเส้นทางของไฟล์) จะมีโครงสร้างไดเรกทอรีหนึ่งอันต่อองค์ประกอบหน่วยความจำ (ไดรฟ์) การเมาท์คือการเชื่อมโยงอุปกรณ์จัดเก็บข้อมูลกับตำแหน่งเฉพาะในแผนผังไดเรกทอรี แต่มีตำแหน่งที่สามารถเข้าถึงได้สำหรับไดรฟ์ซีดีรอมที่กล่าวถึงภายใต้ / dev / cdrom ซึ่งเห็นได้ชัดว่ามาในลำดับชั้นของไดเรกทอรี เหตุใดจึงต้องสร้าง "จุดเมานท์" แยกต่างหากใต้ / media / cdrom เหตุใดการเข้าถึงโดยตรงจาก / dev / cdrom จึงเป็นไปไม่ได้ ฉันได้ยินมาว่าไฟล์อุปกรณ์ของโหนดนั้นเหมือนกับไฟล์ทั่วไป และการอ่านและการเขียนถึงมันก็เหมือนกับไฟล์ทั่วไป นี่หมายความว่าระบบไฟล์ใน cdrom ไม่สามารถใช้ได้ถ้าเราเข้าถึงจาก / dev / cdrom และลำดับชั้นของระบบแฟ้ม (ภายใน cdrom) "มีชีวิต" เมื่อเรา "เมา" หรือไม่
13 linux  mount  devices 

1
มีวิธีการเปลี่ยนชื่ออุปกรณ์ในไดเรกทอรี / dev หรือไม่?
ฉันเขียนกฎนี้เพื่อวัตถุประสงค์ในการทดสอบ: SUBSYSTEMS=="usb", ATTRS{manufacturer}=="Kingston", ATTRS{serial}=="001CC0EC34A2BB318709004B", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1642", SYMLINK+="pen", NAME="pendrak" ตามข้อมูลต่อไปนี้: # udevadm info --name=/dev/sdb --attribute-walk Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule …
13 devices  udev 

3
โทรแจ้ง - ส่งจากกฎ udev
ฉันใช้ Linux Mint 13 MATE และฉันพยายามตั้งค่าการแจ้งเตือนเมื่อฉันเสียบ / ถอดปลั๊กอุปกรณ์ ก่อนอื่นฉันพบแพ็คเกจudev-alertแต่น่าเสียดายที่มันใช้งานไม่ได้สำหรับฉัน: มันใช้งานได้ในเวลาน้อยมาก (1-2 นาที) จากนั้นถ้าฉันเชื่อมต่อ / ตัดการเชื่อมต่ออุปกรณ์ใด ๆ ก็เกิดปัญหา: Traceback (most recent call last): File "./udev-notify.py", line 319, in &lt;module&gt; notification.show() glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name :1.1061 was not provided by any .service files ฉันไม่พบวิธีแก้ไขปัญหาดังนั้นฉันจึงต้องลบมันออก (ยื่นรายงานข้อบกพร่องด้วย) น่าแปลกที่ไม่มีสาธารณูปโภคที่คล้ายกันที่ฉันพบมา จากนั้นฉันพยายามเขียนกฎ udev ที่ควรตรงกับอุปกรณ์ทั้งหมด ฉันได้เพิ่มไฟล์ใหม่/etc/udev/rules.d/notify.rules: ACTION=="add", RUN+="/bin/bash …

4
หากฉันเชื่อมต่ออุปกรณ์ทางกายภาพฉันจะรู้ได้อย่างไรว่าไฟล์อุปกรณ์ใดเป็นของมัน
สมมติว่าฉันเสียบไดรฟ์ USB หลายตัวที่ไม่ได้เมาท์โดยอัตโนมัติ ฉันจะทราบได้อย่างไรว่าไฟล์อุปกรณ์ใดเป็นของอุปกรณ์ฟิสิคัลดังนั้นฉันจึงสามารถเมานต์ไฟล์ได้? ฉันใช้ Mac OS X แต่ฉันชอบคำตอบที่ใช้ได้กับระบบ Unix ทั้งหมด (หรืออย่างน้อยก็เป็นที่นิยมที่สุด) ฉันมีปัญหากับ Linux ในอดีต
13 linux  osx  usb  devices  bsd 

5
เหตุใด“ cat ttyUSB0” จึงไม่สร้างผลผลิต
ฉันเชื่อมต่อตัวรับสัญญาณอินฟราเรดเข้ากับพอร์ต USB ... (บรรทัดสุดท้ายของ dmesg บอกไฟล์อุปกรณ์) $ dmesg [10496.596063] usb 7-2: new full-speed USB device number 2 using uhci_hcd [10496.751112] usb 7-2: New USB device found, idVendor=0df7, idProduct=0620 [10496.751117] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [10496.751120] usb 7-2: Product: USB-Serial Controller [10496.751124] usb 7-2: Manufacturer: Prolific Technology …
13 files  usb  devices  cat  input 

5
ไฟล์พิเศษที่ทำให้เกิดข้อผิดพลาด I / O
ฉันต้องการทดสอบโดยอัตโนมัติว่ามีซอฟต์แวร์ใดตอบสนองตามที่คาดหวังหากไฟล์ SQLite DB ที่สำคัญไม่สามารถอ่านได้ (ทำให้เกิดข้อผิดพลาด I / O) ตรงที่เกิดขึ้นเมื่อหลายวันก่อนที่ลูกค้า เราแก้ไขด้วยตนเอง แต่ตอนนี้ฉันต้องการสร้างรหัสอัตโนมัติเพื่อแก้ไขและต้องการเข้าถึงไฟล์ที่เสียหายเพื่อทดสอบ ทุกอย่างในไฟล์ของ Unix ฉันสงสัยว่าอาจมีไฟล์พิเศษที่ทำให้เกิดข้อผิดพลาด I / O เมื่อพยายามอ่านไฟล์ (เช่นใน / dev) บางไฟล์ที่คล้ายกัน (imo) จะเป็น: /dev/full ซึ่งมักจะพูดว่า "ไม่มีพื้นที่เหลือบนอุปกรณ์" หากคุณพยายามเขียน /dev/null และ /dev/zero ดังนั้นฉันคิดว่าจะต้องมีไฟล์แบบนั้น (แต่ยังไม่พบ) ไม่มีใครรู้ว่าไฟล์ดังกล่าวหรือวิธีการอื่น ๆ สำหรับฉันที่จะได้รับผลลัพธ์ที่ต้องการ (ภาพพาร์ทิชันที่ผิดพลาดโดยเจตนา, เสื้อคลุมรอบเปิด () โดยใช้ LD_PRELOAD, ... )? วิธีที่ดีที่สุดที่จะไปที่นี่คืออะไร?
13 linux  devices  io  testing 

1
จะ chmod 000 / dev / stdin ปิดการใช้งานสถานีตลอดไป?
ฉันทำงานผ่านคำถามจากUnix The Textbook (บทที่ 8, # 16, หน้า 207) : ให้chmodบรรทัดคำสั่งที่ทำงานเดียวกันกับที่mesg nและmesg yคำสั่งทำ (คำแนะนำ: อุปกรณ์ฮาร์ดแวร์ทุกชิ้นรวมถึงเทอร์มินัลของคุณมีไฟล์ที่เกี่ยวข้องใน/devไดเรกทอรี) ฉันเชื่อว่าคำตอบคือ: mesg n = chmod 770 /dev/stdout mesg y = chmod 777 /dev/stdout แต่ผมสงสัยว่าเกิดอะไรขึ้นถ้าคุณใช้chmod 000 /dev/stdin? คุณถูกล็อคไม่ให้ป้อนคำสั่งในเทอร์มินัลหรือไม่?

3
ทำไม Linux ไม่ให้ฉันเล่นด้วย / dev / dsp
ฉันทำงานผ่านตำรา Linux และมันบอกฉันเกี่ยวกับอุปกรณ์ มันบอกว่าถ้าฉันส่งออกที่เหมาะสมไป/dev/dspแล้วมันจะเล่นเสียง ตัวอย่างคือcat file.wav &gt; /dev/dspโดยที่ file.wav เป็นเพียงไฟล์. wav ใด ๆ เมื่อฉันทำสิ่งนี้ฉันจะได้รับอนุญาตปฏิเสธ ถ้าฉันใช้สิ่งนี้ด้วย sudo ฉันยังคงได้รับอนุญาตปฏิเสธ ถ้าฉันsuแรกไม่มีเสียงเล่น ทำไมฉันถึงได้รับอนุญาตปฏิเสธด้วยsudo? ทำไมไม่มีเสียงเล่นแม้จะมีsu?

2
การกำหนดหมายเลข wlan
Linux กำหนดตำแหน่งของอุปกรณ์เครือข่ายได้อย่างไรหรือที่ไหน? โดยเฉพาะwlan0หรือwlan1สำหรับอุปกรณ์ USB ไร้สาย ผมเสียบในไร้สาย TP USB wlan0ในขณะที่ที่ผ่านมาและได้รับมอบหมาย ฉันลบมัน สัปดาห์นี้ผมเสียบในอุปกรณ์ไร้สาย Edimax USB wlan1และมันขึ้นมาเป็น ผมหยิบมันออกมาในวันนี้เพื่อพยายามเป็นครั้งที่สอง Edimax อุปกรณ์ไร้สาย USB (ผมซื้อสอง) wlan2และตอนนี้ก็ขึ้นมา ฉันรู้ว่าเพียงพอของ Unix / Linux ที่จะรู้ว่านี้จะถูกกำหนดค่าบางและถ้าผมลบไฟล์ config ที่ไม่ได้ใช้ฉันสามารถทำให้ล่าสุด Edimax wlan0กลายเป็น แต่อย่างไร / ที่ไหน


1
ความแตกต่างในการใช้งานระหว่างไฟล์อุปกรณ์, ioctl, sysfs, netlink
ฉันพยายามที่จะชี้แจงว่าวิธีการโต้ตอบกับอุปกรณ์ใน Linux มีประโยชน์มากที่สุด (ในแง่ของการทำงาน) อย่างไร ดังที่ฉันเข้าใจแล้วไฟล์อุปกรณ์แสดงเพียงส่วนหนึ่งของการทำงาน (บล็อกที่อยู่ในอุปกรณ์บล็อกสตรีมในอุปกรณ์ตัวละคร ฯลฯ ... ) ioctl(2)ดูเหมือนจะใช้กันมากที่สุด แต่บางคนบอกว่าไม่ปลอดภัยและอื่น ๆ ยินดีต้อนรับบทความดีๆหรือตัวชี้ที่เกี่ยวข้องอื่น ๆ
12 devices  sysfs  ioctl 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.