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

การใช้ Unix ในระบบคอมพิวเตอร์แบบฝังตัวเช่นอุปกรณ์เครือข่ายโทรศัพท์มือถือเครื่องเล่นสื่อกล่องรับสัญญาณ ฯลฯ

5
ระบบไฟล์การ์ด SD ที่ป้องกันการเสียหายสำหรับ Linux ในตัว?
เมื่อเร็ว ๆ นี้เรามีสถานการณ์ที่ค่อนข้างไม่พึงประสงค์กับลูกค้าของเรา - "คีออส" แบบคีออสก์ที่ใช้ในการแสดงข้อมูลการสำรวจระยะไกล (ไม่มีอะไรแปลกไปกว่าเบราว์เซอร์โหมดคีออสก์ที่แสดงเว็บเพจปรับปรุงตนเองจากเซิร์ฟเวอร์เก็บข้อมูล) ความเสียหายของระบบไฟล์ Ext4, ต้องใช้ Manual fsck, ระบบจะเป็นส่วนหนึ่งของงานนำเสนอที่สำคัญของวันพรุ่งนี้, ต้องการการบริการทันที แน่นอนว่าเราไม่สามารถกำหนดให้ลูกค้าต้องปิดระบบได้อย่างดีเมื่อปิดเครื่องในตอนกลางคืน ระบบจะต้องทนต่อการกระทำผิดดังกล่าว ฉันต้องการหลีกเลี่ยงสถานการณ์เช่นนี้ในอนาคตและฉันต้องการย้ายระบบปฏิบัติการไปยังระบบไฟล์ที่จะป้องกันสิ่งนี้ มีระบบไฟล์มากมายสำหรับอุปกรณ์ MTD ที่ให้พวกเขาทำงานบนการ์ด SD (อุปกรณ์บล็อกมาตรฐาน) ต้องมีการกระโดดห่วงอย่างจริงจัง นอกจากนี้ยังมีระบบไฟล์อื่น ๆ (journalling ฯลฯ ) ที่มีการต่อต้านการทุจริตที่ดี ฉันยังคงต้องเห็นการเปรียบเทียบข้อดีและข้อเสียของพวกเขาอย่างสมเหตุสมผล ระบบไฟล์ใดที่มีอยู่ใน Linux จะให้ความต้านทานต่อความเสียหายที่ดีที่สุดจากความล้มเหลวของพลังงานที่ไม่คาดคิดและไม่จำเป็นต้องกระโดดผ่านห่วงที่เป็นไปไม่ได้เช่นyaffs2เพื่อติดตั้งไปยัง SD การสวมใส่สมดุลเป็นข้อดี แต่ไม่ใช่ข้อกำหนด - การ์ด SD มักจะมีกลไกของตัวเองหากน้อยกว่าที่สมบูรณ์แบบแม้ว่าระบบควรจะ "อ่อนโยนต่อแฟลช" (ระบบเช่น NTFS สามารถฆ่าการ์ด SD ได้ภายในหนึ่งเดือน)

2
เมานต์ไฟล์ zip เป็นระบบไฟล์แบบอ่านอย่างเดียว
ฉันกำลังมองหาวิธีในการติดตั้งไฟล์เก็บถาวร ZIP เป็นระบบไฟล์เพื่อให้ฉันสามารถเข้าถึงไฟล์ภายในไฟล์เก็บถาวรได้อย่างโปร่งใส ฉันต้องการสิทธิ์เข้าถึงเพื่ออ่านเท่านั้น - ZIP จะไม่ถูกแก้ไข ปริมาณการใช้ RAM มีความสำคัญเนื่องจากเป็นระบบฝังตัว (จำกัด ทรัพยากร) ตัวเลือกที่มีอยู่คืออะไร?

5
ตรวจสอบรหัสผ่านด้วย Linux ได้อย่างไร
ฉันต้องการตรวจสอบจากบรรทัดคำสั่ง linux หากรหัสผ่าน cleartext ที่กำหนดนั้นเหมือนกันกับรหัสผ่านที่เข้ารหัสบน / etc / shadow (ฉันต้องการสิ่งนี้เพื่อรับรองความถูกต้องของผู้ใช้เว็บฉันใช้งาน linux ในตัว) ฉันมีสิทธิ์เข้าถึงไฟล์ / etc / shadow

3
จะแตกไฟล์จาก uImage ได้อย่างไร?
Buildroot กำลังสร้างภาพสำหรับอุปกรณ์ฝังตัวที่ควรจะทำงาน มันใช้งานได้ดีมาก ในภาพเหล่านั้นรูทส์รวมอยู่ด้วย เนื่องจากการวิจัยบางอย่างฉันต้องการตรวจสอบไฟล์ที่สร้างขึ้น (เช่นโหมดการบีบอัดที่กำหนดโดย Buildroot ถูกนำไปใช้และตอนนี้จะถูกตรวจสอบหากพวกเขาทำอย่างถูกต้อง) แต่ฉันไม่พบสิ่งที่มีประโยชน์ในเน็ต เท่าที่ฉันทราบความแตกต่างระหว่าง uImage และ zImage เป็นเพียงส่วนหัวเล็กดังนั้น u-boot จึงสามารถอ่านไฟล์ไบนารีนั้นได้ แต่ฉันไม่สามารถเปิดทั้ง uImage และ zImage ได้ ทุกคนสามารถให้คำแนะนำเกี่ยวกับวิธีการแตกภาพเหล่านั้น (u / z) ภาพบนโฮสต์ได้หรือไม่?

3
การแนบอุปกรณ์ USB-Serial พร้อม PID ที่กำหนดเองไปยัง ttyUSB0 บนอุปกรณ์
ฉันพยายามรับอุปกรณ์ FTDI USB-Serial ที่มี PID ที่กำหนดเองเพื่อแนบ (โดยอัตโนมัติหรือด้วยตนเอง) ไปยัง ttyUSB% n โดยไม่ประสบความสำเร็จ VID / PID ปกติของอุปกรณ์คือ 0403/6001 เมื่อตั้งโปรแกรมด้วยวิธีนี้มันจะทำงานได้อย่างสมบูรณ์และแนบตัวเองกับ ttyUSB0 โดยอัตโนมัติเมื่อทำการเชื่อมต่อแม้จะมีไดรเวอร์ที่คอมไพล์ใหม่เพื่อเคารพ PID ใหม่ของเราเมื่อตั้งโปรแกรมด้วย ttyUSB0 หนึ่งที่กำหนดเองจะไม่ปรากฏขึ้น โหลดไดรเวอร์ ฉันได้เพิ่ม PID ของเราไปยังส่วนหัวและแหล่งที่มา: // in ftdi_sio_ids.h #define FTDI_CUSTOM_PID 0xABCD // not the actual pid // then in ftdi_sio.c static struct usb_device_id id_table_combined [] = { // …

6
คำสั่ง Shell เพื่ออ่านการลงทะเบียนอุปกรณ์?
บนคอมพิวเตอร์บอร์ดเดียวที่ใช้ Linux มีวิธีอ่านเนื้อหาของการกำหนดค่าอุปกรณ์ที่ลงทะเบียนซึ่งควบคุมฮาร์ดแวร์หรือไม่ inw()ฉันคิดว่ามันจะเป็นเสื้อคลุมสำหรับ ฉันกำลังมองหาบางสิ่งที่เทียบเท่ากับmdคำสั่งการถ่ายโอนข้อมูลหน่วยความจำ U-boot ( ) เพื่อใช้ในบริบทของการดีบักไดรเวอร์
18 linux  memory  embedded 

4
อะไรคือแอปพลิเคชันระบบไฟล์รูทขั้นต่ำที่ต้องใช้ในการบูทลินุกซ์เต็ม?
เป็นคำถามเกี่ยวกับแอปพลิเคชันพื้นที่ผู้ใช้ แต่ได้ยินฉัน! สาม "แอปพลิเคชัน" ดังนั้นต้องพูดเพื่อบูตการแจกจ่ายการทำงานของ Linux: Bootloader - สำหรับการฝังตัวโดยทั่วไปคือ U-Boot แม้ว่าจะไม่ใช่ข้อกำหนดที่ยาก เคอร์เนล - มันค่อนข้างตรงไปตรงมา ระบบไฟล์รูท - ไม่สามารถบูตเชลล์ได้ มีระบบไฟล์ที่เคอร์เนลบูทไปยังและตำแหน่งที่initเรียกว่าฟอร์ม คำถามของฉันเกี่ยวกับ # 3 หากมีคนต้องการสร้าง rootfs น้อยที่สุด (สำหรับคำถามนี้สมมติว่าไม่มี GUI, shell เท่านั้น) ไฟล์ / โปรแกรมใดที่จำเป็นต้องใช้ในการบู๊ตเชลล์

3
ฉันจะบูต Linux ด้วย rootfs ใน RAM ได้อย่างไร
rootfs เป็นรูปภาพ squashfs และ bootloader ของฉันกำลังโหลดลงในที่อยู่ใน SDRAM ฉันต้องส่งพารามิเตอร์ใดไปยังเคอร์เนลเพื่อให้สามารถเมานต์รูทได้จากตรงนั้น การรองรับ Squashfs นั้นมีมาให้แล้วและสามารถใช้งานได้แล้ว root=/dev/mtdblock2 rootfstype=squashfs สำหรับการบูทจากแฟลช แก้ไข: นี่คืออุปกรณ์ฝังตัว MIPS โดยใช้ bootloader ที่กำหนดเอง โดยปกติ bootloader จะแยกเคอร์เนลที่ถูกบีบอัดจากแฟลชไปยัง SDRAM จากนั้นเคอร์เนลจะเมานต์ / dev / mtdblock2 เป็นรูท ฉันพยายามปรับปรุง bootloader เพื่อให้สามารถดาวน์โหลดรูปภาพไปที่ RAM และบูตโดยไม่ต้องเขียนลงแฟลช ฉันไม่สามารถหาวิธีทำให้ Linux ติดตั้งอิมเมจระบบไฟล์ใน RAM เป็นรูท
16 linux  embedded  mips 

2
การใช้ระบบไฟล์รูทแบบอ่านอย่างเดียวเป็นความคิดที่ดีสำหรับการตั้งค่าแบบฝังหรือไม่
ฉันได้รับมอบหมายให้ทำงานลีนุกซ์เป็นระบบปฏิบัติการบนอุปกรณ์ฝังตัว เป้าหมายมีโปรเซสเซอร์ x86 และมีอุปกรณ์ CompactFlash 8 GB สำหรับจัดเก็บ ฉันมีการจัดการเพื่อใช้ buildroot เพื่อสร้างภาพเคอร์เนลและเครื่องมือการรวบรวมข้าม ฉันแบ่งพาร์ติชันอุปกรณ์ CF ออกเป็นพาร์ติชัน FAT ขนาดเล็กซึ่งมีเคอร์เนลอิมเมจอยู่รวมถึงsyslinuxการกำหนดค่าการบู๊ตและext3ระบบไฟล์ที่ฉันทำการแตกระบบไฟล์รูทที่สร้างโดย buildroot บูตระบบสำเร็จโดยใช้syslinuxโดยการตั้งค่าไดเรกทอรีรากเป็นพาร์ติชัน CF ext3 ซึ่งเป็นที่ตั้งของระบบไฟล์ buildroot ของฉัน คำถามของฉันมีศูนย์กลางอยู่ที่ความต้องการความทนทานในการเผชิญกับการสูญเสียพลังงานในทันที (และบ่อยครั้ง) เนื่องจากเป็นสิ่งสำคัญสำหรับอุปกรณ์ที่จะบู๊ตได้สำเร็จหลังจากไฟดับ ฉันได้อ่านแล้วว่าการติดตั้งระบบไฟล์รูตเนื่องจากการอ่านอย่างเดียวเป็นวิธีการตรวจสอบความถูกต้องของข้อมูล นี่เป็นวิธีที่เหมาะสมหรือไม่สำหรับฉันที่จะดำเนินการต่อ ฉันได้อ่านเกี่ยวกับความเป็นไปได้ของการโหลดระบบไฟล์รูทลงใน RAM เพื่อให้ได้สิ่งเดียวกัน แต่ยังไม่ทราบว่าต้องทำอย่างไร มีวิธีที่ต้องการในการบรรลุเป้าหมายนี้หรือไม่และถ้าเป็นเช่นนั้นวิธีที่ดีที่สุดสำหรับฉันในการดำเนินการคืออะไร?

3
การเพิ่มขนาดหน่วยความจำเคอร์เนล
ฉันมีบอร์ดฝังตัวที่มี RAM 512MB ใช้ Linux 2.6.29 และ UBoot bootloader แต่เคอร์เนลสามารถใช้ RAM ได้เพียง 128MB เท่านั้น ฉันลองเปลี่ยนค่าของXCODE_MEMSIZEซึ่งฉันคิดว่ากำหนดจำนวน RAM ที่เคอร์เนลใช้ เมื่อฉันตั้งค่าเป็น 512 เคอร์เนลจะหยุดทำงานในขณะที่บูตเครื่อง มีพารามิเตอร์การกำหนดค่าอื่น ๆ ที่จำเป็นต้องเปลี่ยนแปลงหรือไม่?

2
เป็นไปได้หรือไม่ที่กระบวนการภูต (เช่นพื้นหลัง) จะมองหาการกดปุ่มจากแป้นพิมพ์ USB?
ฉันกำลังทำงานในโครงการลินุกซ์ในตัวที่ฉันจะพัฒนาโปรแกรมที่จะทำงานโดยอัตโนมัติเมื่อบูตเครื่องและโต้ตอบกับผู้ใช้ผ่านการแสดงตัวอักษรและแถวเรียงปุ่ม ถ้าเราไปกับอาเรย์ปุ่ม GPIO ง่าย ๆ ฉันสามารถเขียนโปรแกรมที่จะค้นหาการกดปุ่มบนบรรทัด GPIO เหล่านั้นได้อย่างง่ายดาย อย่างไรก็ตามหนึ่งในความคิดของเราคือการใช้อุปกรณ์แผ่นหมายเลข USB แทนการป้อนข้อมูลของผู้ใช้ ความเข้าใจของฉันคือว่าอุปกรณ์เหล่านั้นจะนำเสนอตัวเองให้กับระบบปฏิบัติการเป็นแป้นพิมพ์ USB หากลงไปตามเส้นทางนี้จะมีวิธีให้โปรแกรมของฉันค้นหาอินพุตบนแป้นพิมพ์ USB นี้จากใน Linux โดยระลึกไว้เสมอว่าไม่มีจอเทอร์มินัลเสมือนหรือจอแสดงผล VGA เมื่อเสียบแป้นพิมพ์ USB มีเอนทิตีใน '/ dev' ที่ปรากฏว่าฉันสามารถเปิดไฟล์ descriptor ได้หรือไม่?
13 linux  usb  keyboard  embedded 

1
ฉันจะสังเกตแบนด์วิดท์ของหน่วยความจำได้อย่างไร
ฉันมีระบบ Linux ARM แบบฝังที่แสดงปริมาณงานน้อยกว่าที่คาดไว้ทั้งบน Ethernet และ USB ฉันสงสัยว่าหน่วยความจำอาจมีส่วนร่วม มีวิธีในการสังเกตแบนด์วิดธ์หน่วยความจำที่ใช้ในขณะที่ทดสอบทรูพุตบนอีเธอร์เน็ตหรือ USB หรือไม่?

4
ใช้ Valgrind ที่คอมไพล์แล้ว
ฉันได้ดาวน์โหลดแหล่งข้อมูลจากลำต้นของ Valgrind และสร้างขึ้นเพื่อใช้กับระบบ Linux ในตัว (Montavista Linux) ที่ขับเคลื่อนโดย ARM926 (สถาปัตยกรรม ARMv5t) ทุกอย่างเป็นไปด้วยดีจนกระทั่งฉันพยายามเรียกใช้เพื่อตรวจสอบแอปพลิเคชันที่ฉันทำ Valgrind บอกฉัน: "valgrind: ไม่สามารถเริ่มเครื่องมือ 'memcheck' สำหรับแพลตฟอร์ม 'arm-linux': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" การพยายามเรียกใช้เครื่องมืออื่น ๆ จะให้ข้อความเดียวกัน สำหรับการติดตั้งฉันใช้ตัวเลือก --prefix ซึ่งชี้ไปที่ระบบไฟล์ของระบบฝังตัวซึ่งติดตั้งผ่าน NFS (เช่น --prefix = / home / NFS_mounted / opt / valgrind) ฉันตรวจสอบตำแหน่งการติดตั้งและไดเรกทอรีlib ที่นั่นมีเครื่องมือที่เหมาะสม ฉันได้ตรวจสอบไฟล์ pkgconfig ที่เกี่ยวข้องสำหรับ Valgrind แล้วและดูเหมือนว่าจะโอเคฉันเลยไม่รู้จะทำอะไรผิดไป 2 คำถาม: ถูกต้องหรือไม่ที่จะใช้ / ติดตั้ง …

5
ซึ่งมีการกระจาย Linux ให้เลือกน้อยที่สุด แต่สามารถขยายได้
ฉันต้องการการกระจาย Linux ที่สามารถขยายได้ซึ่งฉันสามารถลดขนาดลงได้มากจนเหมาะกับการ์ด CF ขนาด 64 เมกะไบต์ ในเวอร์ชั่นปล้นนี้มันจะทำงานบน Via C7 และจำเป็นต้องมีเคอร์เนล, ระบบเครือข่าย, เชลล์, perl พื้นฐานและเซิร์ฟเวอร์ ftp มีดิสทริบิวชันสำหรับระบบฝังตัวที่สามารถทำสิ่งนี้ได้ แต่ฉันมีข้อกำหนดว่ามันควรจะเป็นไปได้ที่จะขยายชุดนี้ในอนาคตเช่นการติดตั้ง X พื้นฐานหรือไพ ธ อนแทนที่จะเป็น Perl ฯลฯ คุณรู้จักการกระจายแบบใดที่สามารถทำได้ หนึ่งในการแจกแจงหลัก ๆ เช่น Fedora, Debian, Ubuntu สามารถถูกปล้นได้มากขนาดไหน? แก้ไข: ฉันดู Embedded Debian ซึ่งค่อนข้างใกล้เคียงกับสิ่งที่ฉันต้องการ น่าเศร้าที่การพัฒนาดูเหมือนจะหยุดชะงักเนื่องจากปัญหาสุขภาพของผู้ดูแลหลัก

1
ทำให้อ่านได้อย่างเดียว / etc เขียนได้
ฉันกำลังจัดการกับอุปกรณ์ฝังตัวที่ใช้ Linux ผู้ผลิตอุปกรณ์นี้ได้ทำการตั้งค่าเพื่อให้โหลดระบบไฟล์รูทเป็นแบบอ่านอย่างเดียว จาก / etc / mtab: rootfs / rootfs rw 0 0 /dev/root / squashfs ro,relatime 0 0 หมายความว่าฉันไม่สามารถแก้ไขไฟล์ภายใน / etc เช่นการเพิ่มผู้ใช้ใหม่ ฉันได้ลองติดตั้งไดเรกทอรีรากใหม่แล้ว: mount -o remount,rw -t squashfs /dev/root / แต่ฉันเพิ่งได้รับข้อผิดพลาด mount: cannot remount block device /dev/root read-write, is write-protected ฉันค้นหาข้อผิดพลาดนี้และมีคนพูดว่าใช้ blockdev ระบบไม่ได้ติดตั้ง blockdev ดังนั้นฉันจึงรวบรวมและคัดลอกมันข้าม จากนั้นฉันก็วิ่ง blockdev --setrw …

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