Score:1

การติดตั้ง Debian แบบอัตโนมัติ (preseed) การเข้าถึงการ์ดเสียง

ธง tr

ฉันใช้ฟีเจอร์ preseed เพื่อสร้างระบบ Debian 10 x64 แบบกำหนดเอง ทุกอย่างเป็นไปได้ด้วยดี ยกเว้นว่าในระหว่างขั้นตอน late_command ฉันกำลังเรียกใช้เชลล์สคริปต์เพื่อกำหนดค่าและปรับใช้สิ่งเบ็ดเตล็ด และฉันต้องการเข้าถึงอินเทอร์เฟซเสียงจริง

โดยปกติแล้วฉันทำอย่างนั้นโดยใช้ pacmd list-sinks จากนั้นฉันสามารถเข้าถึงชื่อการ์ดเสียงต่างๆ ได้อย่างง่ายดาย แต่ในกรณีนี้ใช้ chroot /target/ sudo -u อุปกรณ์ pacmd list-sinksสิ่งเดียวที่ฉันเห็นคืออินเทอร์เฟซจำลองชื่อ audio_null :

เอาต์พุตของคำสั่ง pacmd list-sinks

ฉันยังยืนยันด้วยว่าทันทีที่ระบบรีบูตหลังจากการติดตั้ง ฉันสามารถเข้าถึงอินเทอร์เฟซเสียงจริงได้ค่อนข้างปกติ

(สำหรับข้อมูล ฉันต้องเข้าถึงชื่ออินเทอร์เฟซทางกายภาพเพื่อกำหนดค่าอินเทอร์เฟซเริ่มต้นภายในโปรไฟล์เริ่มต้นของ Pulseaudio เนื่องจากระบบไฟล์รูทถูกตั้งค่าเป็นแบบอ่านอย่างเดียวทันทีหลังจากการติดตั้ง นี่เป็นเวลาที่ดีที่สุดที่จะทำครั้งเดียวสำหรับทั้งหมด)

ฉันคิดว่าเป็นลักษณะการทำงานที่คาดไว้ เนื่องจากโมดูลทั้งหมดไม่จำเป็นระหว่างการติดตั้ง และอาจข้ามขั้นตอนบริการ/การกำหนดค่าที่จำเป็นบางขั้นตอนไป

ดังนั้นสิ่งที่ฉันได้ลองไปแล้ว:

  • โหลดโมดูลบางส่วนที่ฟังดูเกี่ยวข้องด้วยตนเอง: chroot /target/ sudo modprobe ซาวด์คอร์
  • กำลังโหลดบริการ PulseAudio ซ้ำ (ซึ่งดูเหมือนจะยังไม่เริ่ม)
  • รายชื่อจากและนอกระบบเป้าหมาย (chroot /target/ รายการ pacmd-sinks, pacmd list-sinks) เพื่อให้คำสั่งก่อนหน้านี้ทำงานได้ ฉันต้องเปิด Pulse ใหม่ chroot /target/ sudo -u อุปกรณ์ pulseaudio --start โดยที่ฉันไม่พบข้อความแสดงข้อผิดพลาด ไม่มี PulseAudio daemon ทำงานอยู่หรือไม่ได้ทำงานเป็น Session daemon

ความพยายามก่อนหน้านี้ไม่ประสบความสำเร็จ และฉันไม่มีไอเดียใดๆ เลย ฉันอาจพลาด/เข้าใจผิดในแนวคิดที่ชัดเจน และยินดีรับมุมมองภายนอก

แม้ว่าจะไม่ใช่จุดประสงค์สุดท้ายของฉัน แต่อาจง่ายกว่าถ้าจะแก้ปัญหาในวงกว้าง: วิธีเล่นเสียงระหว่าง late_command ขั้นตอนการติดตั้ง Debian

PS: สำหรับสิ่งที่คุ้มค่า ตอนนี้ฉันกำลังปรับใช้กับ Virtual Machine โดยใช้ VmWare และเชื่อมต่อการ์ดเสียงจริง

Score:0
ธง th

ทำแบบนี้ก็น่าจะได้ ง่ายกว่ามากเหมือนสคริปต์ที่ทำงานในการบู๊ตครั้งแรกของคุณ แทนจากภายในตัวติดตั้ง

ที่กล่าวว่าการทดสอบอย่างรวดเร็วโดยทำ "โหลดส่วนประกอบตัวติดตั้งจากสื่อการติดตั้ง" ด้วยตนเองจากนั้นเลือก "sound-modules-5.10-8-amd64-di: sound support" (ใน Debian 11 แต่น่าจะมีใน Debian 10 ด้วย) อย่างถูกต้อง แทรกโมดูลเคอร์เนลที่จำเป็น การติดตั้ง alsa-utils (ในเป้าหมาย) ทำงานได้ทันทีบน VirtualBox วิ่ง เล่น ใช้งานได้เช่นกันโดยที่คุณเปิดปิดเสียงการ์ดโดยใช้ มิกเซอร์ แรก.

บรรทัดที่กำหนดไว้ล่วงหน้าที่จำเป็นสำหรับ Debian 11 จะมีลักษณะดังนี้:

d-i preseed/early_command สตริง anna-ติดตั้งโมดูลเสียง

(...มีวิธีอื่น วิธีนี้ใช้ได้ผลสำหรับฉัน)

จากนั้นคุณจะต้องตรวจสอบให้แน่ใจว่าคุณมี alsa-utils บนเป้าหมาย ไม่มีอะไรจำเป็นหากคุณใช้ "งาน" เช่น สภาพแวดล้อมเดสก์ท็อป เป็นต้น แต่ถ้าเป็นระบบเปล่า คุณจะต้อง:

d-i pkgsel/รวมสตริง alsa-utils

สุดท้าย ขอรบกวนหน่อยนะครับ (เล่นสำนวน):

d-i preseed/late_command สตริงในเป้าหมาย /bin/sh -c \
    "amixer ตั้ง Master เปิดเสียง 80%; amixer ตั้ง PCM เปิดเสียง 80%; aplay /usr/share/sounds/alsa/Noise.wav"

ด้วยอัลซาสแต็กที่ใช้งานได้ คุณสามารถรับรายการอุปกรณ์เสียงฮาร์ดแวร์ได้อย่างง่ายดายโดยทำ เล่น -l หรือที่คล้ายกัน (ในเป้าหมาย) และใช้ข้อมูลนั้นในสคริปต์การตั้งค่าของคุณในภายหลัง

แม้ว่าวิธีนี้จะได้ผล แต่ฉันนึกภาพออกว่าการทำให้ถูกต้องด้วยการตั้งค่าฮาร์ดแวร์ต่างๆ นั้นค่อนข้างยุ่งยาก การ์ดเสียงบางตัวอาจต้องการสวิตช์หรือเอาต์พุตเพิ่มเติมเพื่อเลือก ฯลฯ ยิ่งไปกว่านั้น ม็อดโพรบ ตัวเลือกในระบบขั้นสุดท้ายอาจแตกต่างอย่างมากจากสภาพแวดล้อม d-i และส่งผลต่อดัชนีการ์ด ฯลฯ มีความสุขในการแฮ็ค!

Score:0
ธง br

ขั้นตอนนี้ยังคงทำงานใน chroot ดังนั้นจึงไม่มีอินสแตนซ์ systemd อยู่และอะไรก็ตามที่ขึ้นอยู่กับ systemd ที่ทำงานอยู่เบื้องหลังจะใช้งานไม่ได้

คุณกำลังเรียกใช้เคอร์เนลอิมเมจที่สร้างขึ้นสำหรับโปรแกรมติดตั้ง และแม้ว่านั่นอาจเหมือนกับอิมเมจที่ติดตั้งในระบบเป้าหมาย แต่ก็มักจะไม่ใช่เนื่องจากโปรแกรมติดตั้งจะเลือกเคอร์เนลล่าสุดที่มีให้ที่ เวลาในการติดตั้ง -- ดังนั้นโมดูลที่ติดตั้งบนระบบอาจไม่พอดีกับเคอร์เนลที่กำลังทำงานอยู่

ทางออกที่ดีที่สุดของคุณคือมองหาโมดูลเสียงสำหรับเคอร์เนลตัวติดตั้ง (ฉันเชื่อว่าสิ่งเหล่านี้มีอยู่ในโมดูลตัวติดตั้งเสริมสำหรับการเข้าถึง) และใช้เครื่องมือ ALSA เพื่อเล่นเสียง

Bil5 avatar
tr flag
ขอบคุณสำหรับความคิดของคุณ นั่นจะเป็นการแฮ็กที่ดีที่จะใช้สิ่งนี้ ฉันทำการค้นหาและพบว่าควรเพิ่ม `speakup.synth=soft` ต่อท้ายพารามิเตอร์ของเคอร์เนลเพื่อเปิดใช้งานคุณสมบัติ "การสังเคราะห์เสียงพูด" ฉันลองแล้ว นอกจากนี้ ฉันยังได้เพิ่ม `apt-install alsa-utils` ให้กับ late_command ขออภัย เมื่อฉันเปิด `aplay somefile.mp3` ฉันเห็นข้อความ "ไม่พบการ์ด '0'" ฉันคิดว่าโมดูลยังไม่โหลด หรือไดรเวอร์ไม่พร้อมใช้งาน ฉันอาจเข้าใจคำแนะนำของคุณผิด แต่จนถึงขณะนี้ ฉันเพิ่งพบพารามิเตอร์ของ speakup synth เพื่อเปิดใช้คุณลักษณะการเข้าถึงเสียง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา