คำถามที่พบบ่อยเกี่ยวกับ Linux

ฉันจะแชทกับนักพัฒนาแอปได้ที่ไหน

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

ฉันจะยื่นคำขอฟีเจอร์ได้ที่ใด

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

ในระหว่างนี้ คุณสามารถแชท/สอบถามในรายชื่ออีเมลด้านบนได้

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

ฉันจะรายงานข้อบกพร่องได้ที่ไหน

โปรดตรวจสอบก่อนว่าคุณใช้เวอร์ชันที่กำลังพัฒนาล่าสุด เรายังคงดำเนินการอีกหลายอย่าง

จากนั้น โปรดตรวจสอบว่าปัญหาดังกล่าวเป็นปัญหาที่ทราบอยู่แล้วหรือได้รับการแก้ไขแล้วหรือไม่ คุณดูรายการข้อบกพร่องที่มีอยู่ได้

หากยังต้องการส่งความคิดเห็น คุณสามารถส่งรายงานความคิดเห็นและใส่ #crostini (ชื่ออื่นของ Linux ใน ChromeOS) ในคำอธิบายได้ คุณสามารถส่งความคิดเห็นเกี่ยวกับส่วนใดก็ได้ของ ChromeOS โดยกด alt+shift+i

หากยังต้องการรายงานข้อบกพร่องต่อนักพัฒนาซอฟต์แวร์ ให้ใช้ลิงก์นี้เพื่อส่งต่อให้ผู้ที่เหมาะสม

ทำไมถึงใช้ชื่อ Crostini

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

Crouton ช่วยกำหนดกรณีการใช้งานหลายอย่างที่นักพัฒนาซอฟต์แวร์ต้องการใน ChromeOS จึงช่วยกำหนดแนวทาง Linux ใน ChromeOS จากมุมมองด้านข้อกำหนด เราต้องการให้ผู้ใช้ crouton ส่วนใหญ่ใช้ Linux ใน ChromeOS แทนได้ตามความต้องการ แต่ในสภาพแวดล้อมที่ปลอดภัย

ดังนั้น Crouton จึงช่วยสร้างแรงบันดาลใจในการกำหนดทิศทางของ Linux ใน ChromeOS แต่ไม่มีการแชร์หรือนำโค้ดระหว่างทั้ง 2 ระบบมาใช้ซ้ำ Crouton ไม่ได้แย่ แต่เป็นเพียงโมเดลที่แตกต่างกันโดยสิ้นเชิง

ระบบจะรองรับอุปกรณ์ของฉันเมื่อใด

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

ดังนั้นโปรดอย่าถามถึงแผนการรองรับอุปกรณ์ เนื่องจากเราไม่มีข้อมูลดังกล่าว

ฉันต้องเปิดใช้โหมดนักพัฒนาซอฟต์แวร์ไหม

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

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

ฉันใช้ Linux ใน ChromeOS อยู่ใช่ไหม

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

หากคุณเรียกใช้คอนเทนเนอร์หรือ VM ของตัวเอง ก็ไม่จำเป็น

เหตุผลที่ควรเรียกใช้ VM คอนเทนเนอร์ไม่ปลอดภัยใช่ไหม

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

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

โปรดดูรายละเอียดเพิ่มเติมที่ส่วนความปลอดภัยของเอกสารอย่างเป็นทางการของ Chromium OS

ฉันจะแชร์ไฟล์ระหว่าง ChromeOS กับคอนเทนเนอร์ได้อย่างไร

คุณเข้าถึงพื้นที่เก็บข้อมูลของคอนเทนเนอร์ Linux ใน ChromeOS เริ่มต้นได้ในส่วน "ไฟล์ Linux" ในแอป Files ของ ChromeOS เมื่อใช้ Secure Shell คุณจะตั้งค่าการต่อเชื่อม SFTP กับคอนเทนเนอร์ระยะไกลอื่นๆ แล้วเรียกดูผ่านแอป Files ได้ด้วย

ฉันจะเข้าถึงไฟล์ได้ไหมเมื่อคอนเทนเนอร์ไม่ได้ทำงานอยู่

ปัจจุบันคอนเทนเนอร์ต้องทำงานอยู่จึงจะเข้าถึงเนื้อหาได้ ระบบจะเริ่มคอนเทนเนอร์ Linux ใน ChromeOS โดยค่าเริ่มต้นโดยอัตโนมัติเมื่อเข้าถึง "ไฟล์ Linux" จากแอป Files

ฉันจะติดตั้งโมดูลเคอร์เนลที่กำหนดเองได้ไหม

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

ฉันจะเรียกใช้ VM ภายใน VM ได้ไหม

อุปกรณ์ ChromeOS บางเครื่องรองรับการจำลองเสมือนแบบซ้อนเพื่อรองรับ Android Emulator นอกจากนี้ คุณยังเรียกใช้ qemu-system เพื่อจำลองฮาร์ดแวร์และบูตระบบปฏิบัติการใดก็ได้ที่ต้องการภายในนั้น แต่จะค่อนข้างช้าเนื่องจาก QEMU จะใช้ KVM สำหรับการเร่งฮาร์ดแวร์ไม่ได้

ฉันจะเรียกใช้คอนเทนเนอร์ Docker หรือคอนเทนเนอร์อื่นๆ ภายในคอนเทนเนอร์ Linux ของ ChromeOS ได้ไหม

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

สถาปัตยกรรมใดที่ใช้ได้ในระบบของฉัน

สถาปัตยกรรมคอนเทนเนอร์ Linux จะตรงกับสถาปัตยกรรมของอุปกรณ์ที่คุณมี คุณดูข้อมูลดังกล่าวได้ 2 วิธีดังนี้

  • ในแท็บใหม่ ให้ไปที่ chrome://settings/help/details แล้วดูแพลตฟอร์ม จากนั้นจับคู่ชื่อบอร์ดกับรายการอุปกรณ์แบบสาธารณะของเรา ดูช่อง "ABI ของผู้ใช้" เพื่อดูว่าคุณมี CPU ประเภทใด
  • เปิด crosh แล้วเรียกใช้ uname -m การดำเนินการนี้จะพิมพ์สถาปัตยกรรมของอุปกรณ์ปัจจุบัน

หากเห็น x86_64 คุณจะเรียกใช้โค้ดที่คอมไพล์สำหรับ Intel/AMD ได้ (32 บิต/64 บิต/x32 ควรใช้งานได้ทั้งหมด)

หากเห็น arm (หรือข้อความที่คล้ายกัน เช่น armv7l) หรือ aarch64 แสดงว่าคุณจะเรียกใช้โค้ดที่คอมไพล์สำหรับ ARM/ARM64 ได้

ฉันเรียกใช้สถาปัตยกรรมอื่นๆ ได้ไหม

ปัจจุบันยังไม่มีการรองรับแบบผสานรวมสำหรับการเรียกใช้โค้ด ARM ในระบบ Intel หรือในทางกลับกัน คุณจัดการเรื่องนี้ด้วยตนเองได้ (เช่น โดยใช้ qemu-user) แต่หากคุ้นเคยกับ qemu-user อยู่แล้ว คุณก็คงทราบเรื่องนี้ดี

ฉันจะเรียกใช้โปรแกรมที่ทำงานต่อไปหลังจากออกจากระบบได้ไหม

ไม่ VM ทั้งหมด (และคอนเทนเนอร์ของ VM) จะเชื่อมโยงกับเซสชันการเข้าสู่ระบบของคุณ ทันทีที่คุณออกจากระบบ โปรแกรมทั้งหมดจะปิด/หยุดทำงานตามที่ออกแบบไว้

เนื่องจากข้อมูลทั้งหมดของคุณอยู่ในบ้านที่เข้ารหัส เราจึงไม่ต้องการให้ข้อมูลดังกล่าวอาจรั่วไหลเมื่อคุณออกจากระบบ

โปรดดูรายละเอียดเพิ่มเติมที่ส่วนความปลอดภัยของเอกสารอย่างเป็นทางการของ Chromium OS

ฉันเรียกใช้โปรแกรมโดยอัตโนมัติเมื่อเข้าสู่ระบบได้ไหม

ไม่ คุณต้องเปิดใช้ VM (และคอนเทนเนอร์ของ VM) อีกครั้งด้วยตนเอง ซึ่งจะช่วยป้องกันการใช้ช่องโหว่แบบถาวร

โปรดดูรายละเอียดเพิ่มเติมที่ส่วนความปลอดภัยของเอกสารอย่างเป็นทางการของ Chromium OS

ฉันจะเรียกใช้โปรแกรมโดยอัตโนมัติเมื่อบูตได้ไหม

ไม่ ดูคำถามก่อนหน้า

ฉันตั้งค่าตัวแปรสภาพแวดล้อมสำหรับคอนเทนเนอร์ได้ไหม

ได้เลย! คุณทำได้หลายวิธี

  • environment.d ช่วยให้คุณตั้งค่าตัวแปรสภาพแวดล้อมสำหรับเซสชัน systemd --user ซึ่งรวมถึงเทอร์มินัลและแอป GUI ทั้งหมด คุณอาจต้องใช้คอนเทนเนอร์เวอร์ชันใหม่กว่า Debian 10 "buster" เพื่อใช้วิธีนี้
  • หากต้องการเพียงตัวแปรสภาพแวดล้อมในเทอร์มินัล ให้ตั้งค่าเหล่านั้นในไฟล์การกำหนดค่าของเชลล์ เช่น ~/.bashrc หรือ ~/.zshrc

การเปลี่ยนแปลงตัวแปรสภาพแวดล้อมจะมีผลกับโปรแกรมที่เพิ่งเริ่มต้นเท่านั้น นอกจากนี้ คุณอาจต้องรีสตาร์ทโปรแกรมหรือคอนเทนเนอร์ทั้งหมดเพื่อให้การเปลี่ยนแปลงมีผล

ระบบรองรับการใช้งานหลายโปรไฟล์ไหม

ไม่ได้ Terminal รองรับเฉพาะในโปรไฟล์หลัก (*) เท่านั้น เป้าหมายของเราคือการมอบประสบการณ์การใช้งานที่ราบรื่นและทำงานได้อย่างเต็มที่สำหรับโปรไฟล์หลัก และไม่ให้เกิดข้อขัดข้องหรือปัญหาในโปรไฟล์รอง เราไม่มีแผนที่จะเพิ่มฟีเจอร์ในโปรไฟล์รอง

หากไม่คุ้นเคยกับการรองรับหลายโปรไฟล์ โปรดดูรายละเอียดเพิ่มเติมในเอกสารประกอบเกี่ยวกับหลายโปรไฟล์ทั่วไป

(*): ระบบจะปิดใช้แอปพลิเคชันเทอร์มินัลในโปรไฟล์รองทั้งหมด ผู้ใช้สามารถเริ่ม VM ด้วยตนเองผ่าน crosh และคอนเทนเนอร์ในนั้น แต่ UI และแอปไฟล์อาจไม่ผสานรวมโดยอัตโนมัติ

ระบบรองรับบัญชีของเด็กไหม

ไม่ได้ Terminal ไม่รองรับในบัญชีของเด็ก เราไม่มีแผนที่จะให้บริการฟีเจอร์นี้แก่บัญชีดังกล่าว

หากคุณไม่คุ้นเคยกับบัญชีของบุตรหลาน โปรดดูรายละเอียดเพิ่มเติมในเอกสารประกอบเกี่ยวกับบัญชีของบุตรหลานทั่วไป

VM/คอนเทนเนอร์/ข้อมูลของฉันจะซิงค์/สำรองข้อมูลไหม

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

ฉันจะสำรองข้อมูล VM ได้อย่างไร

วิธีที่ง่ายที่สุดคือการใช้ฟังก์ชันการสำรองข้อมูลใหม่ที่สร้างขึ้นใน ChromeOS เอง โดยไปที่การตั้งค่าแล้วเลือก "นักพัฒนาแอป" จากแถบนำทางด้านซ้าย จากนั้นไปที่ "Linux" คุณจะเห็น "สำรองและกู้คืนข้อมูล" หากไปที่เมนูนี้ คุณจะเห็นปุ่ม "สำรองข้อมูล" ซึ่งจะบันทึกไฟล์ .tini ให้คุณ

หากต้องการสำรองข้อมูลคอนเทนเนอร์แต่ละรายการ อีกวิธีหนึ่งคือใช้คำสั่ง LXC มาตรฐาน

คุณใช้คำสั่ง vmc export เพื่อส่งออก VM ทั้งหมดด้วยตนเองได้ โดยค่าเริ่มต้น ระบบจะทิ้งอิมเมจดิสก์ qcow2 ลงในโฟลเดอร์ดาวน์โหลด โปรดทราบว่ายังไม่มีวิธีนำเข้า VM ดังนั้นวิธีนี้จึงมีประโยชน์สำหรับการวินิจฉัยหรือการใช้ระบบอื่นเพื่อแยกไฟล์เท่านั้น

ฉันจะเข้าถึงไฟล์ VM/คอนเทนเนอร์ได้โดยตรงไหม (เช่น ผ่านแอป Files)

ปัจจุบันยังไม่มีวิธีเข้าถึงไฟล์รูปภาพที่ VM ใช้ เราไม่มีแผนที่จะเปลี่ยนแปลงเรื่องนี้

หากต้องการสำรองข้อมูล คุณจะต้องดำเนินการด้วยตนเอง

เหตุใดเวลาภายใน VM/คอนเทนเนอร์จึงไม่ซิงค์

ระบบจะซิงค์นาฬิกาภายใน VM (และคอนเทนเนอร์) กับนาฬิกาของ ChromeOS โดยอัตโนมัติ คุณจึงไม่ต้องเรียกใช้บริการรักษาเวลาด้วยตนเอง (เช่น ntp) ซึ่งอิงตามเวลา UTC

ตั้งแต่ R75 เป็นต้นไป เราจะพยายามซิงค์ข้อมูลเขตเวลาลงในคอนเทนเนอร์ผ่าน timedatectl หากไม่ได้ผล เราจะกลับไปใช้การส่งออกตัวแปรสภาพแวดล้อม TZ

ปัจจุบันเราไม่ได้อัปเดตรายละเอียดเขตเวลาภายใน VM เอง นอกจากนี้ เราจะไม่พยายามอัปเดตการตั้งค่าเขตเวลาอื่นๆ เนื่องจากเป็นแบบที่ไม่เป็นมาตรฐานใน Distro ดังนั้นเวลาอาจดูไม่ถูกต้องในสภาพแวดล้อมเหล่านั้น หรืออาจล้าสมัยหากใช้ตัวแปรสภาพแวดล้อม TZ

ดูรายละเอียดทางเทคนิคเพิ่มเติมได้ที่ https://crbug.com/829934 ซึ่งซับซ้อนกว่าที่คุณคิด

ระบบรองรับรูปแบบการคัดลอกและวางใดบ้าง

ปัจจุบันรองรับเฉพาะเนื้อหา text/plain เราวางแผนที่จะเพิ่มรูปแบบอื่นๆ ในเร็วๆ นี้ (เช่น image/png และ text/rtf)

คุณดูรายการที่รองรับในปัจจุบันได้ที่ exo/data_source.cc

แม้ว่า X/Wayland จะรองรับรูปแบบ MIME จำนวนเท่าใดก็ได้ แต่เป้าหมายสูงสุดของเราคือการรองรับเฉพาะรูปแบบทั้งหมดที่ Chrome รองรับเท่านั้น ดูรายการดังกล่าวได้ในไฟล์ clipboard_constants.cc

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

ฉันอ่าน/เขียนคลิปบอร์ดโดยอัตโนมัติจากภายใน VM ได้ไหม

ขณะนี้ยังไม่ได้

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

ซึ่งไม่เหมือนกับการที่ผู้ใช้จะวางข้อมูลด้วยตนเอง (เช่น ctrl+v) ซึ่งเป็นเพียงการอ่านแบบเป็นโปรแกรม

แต่เราก็ไม่ได้คาดหวังว่าสถานการณ์จะเป็นเช่นนี้ตลอดไป เมื่อเรามีรูปแบบสิทธิ์และ UI สำหรับจัดการสิ่งเหล่านี้แล้ว เราจะพิจารณาอนุญาตให้ผู้ใช้ให้สิทธิ์นี้

หากคุณใช้เครื่องมือ xclip หรือ X เครื่องมือเหล่านี้มักจะมีบัฟเฟอร์ในเครื่อง (ใน XWayland) แต่จะไม่ซิงค์กับส่วนอื่นๆ ของระบบโดยอัตโนมัติ

ฉันต้องจัดการการอัปเดต VM ไหม

ไม่ Termina เป็นคอมโพเนนต์ที่จะอัปเดตโดยอัตโนมัติ

โปรดทราบว่า VM จะแยกจากคอนเทนเนอร์

ฉันจะตรวจสอบเวอร์ชัน Termina ได้อย่างไร

เนื่องจาก Termina เป็นคอมโพเนนต์ที่ดาวน์โหลดมา คุณจึงไปที่ chrome://components ในแท็บใหม่และมองหา cros-termina ได้

นอกจากนี้ คุณยังเชื่อมต่อกับ VM ผ่าน vsh และเรียกใช้ cat /etc/lsb-release ได้ด้วย

ฉันต้องจัดการการอัปเดตคอนเทนเนอร์ไหม

แพ็กเกจที่ Google จัดหาให้ในคอนเทนเนอร์ซึ่งสื่อสารกับ ChromeOS หรือจำเป็นสำหรับการผสานรวม ChromeOS จะได้รับการอัปเดตโดยอัตโนมัติเป็นประจำ ซึ่งจะติดตั้งการอ้างอิงที่จำเป็นโดยอัตโนมัติ

ไม่มีการอัปเกรดแพ็กเกจอื่นๆ ที่ติดตั้งในคอนเทนเนอร์โดยอัตโนมัติ เราไม่ต้องการอัปเดตแพ็กเกจที่อาจทำให้โปรแกรมที่ติดตั้งไว้แล้วใช้งานไม่ได้ คอนเทนเนอร์นี้เหมือนกับ Linux Distro อื่นๆ ดังนั้นคุณจะต้องอัปเดตเป็นครั้งคราวหากต้องการใช้ซอฟต์แวร์เวอร์ชันใหม่

คุณสามารถเรียกใช้ sudo apt-get update && sudo apt-get dist-upgrade

ฉันใช้ IPv6 ได้ไหม

ได้ โดยเริ่มตั้งแต่ R81 รองรับทั้งเครือข่ายแบบ 2 สแต็กและ IPv6 เท่านั้น

ChromeOS รองรับเฉพาะ SLAAC โปรดอ่านเพิ่มเติมในหน้าการสนับสนุนสำหรับการรองรับ IPv6 ใน ChromeOS

ฉันเข้าถึงการเชื่อมต่อเครือข่ายเลเยอร์ 2 ได้ไหม

ปัจจุบันยังไม่รองรับ โดยการเข้าถึงเครือข่ายจะอยู่ที่เลเยอร์ 3 (เช่น IP) เท่านั้น ดังนั้นคุณจึงไม่สามารถทำสิ่งต่างๆ เช่น การเชื่อมต่อหรือการดำเนินการที่ซับซ้อนกว่านี้ได้

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

VPN ที่ตั้งค่าโดย CrOS/Android (ภายนอก VM/คอนเทนเนอร์) ใช้งานได้ไหม

ไม่ได้ คุณสามารถติดดาว https://crbug.com/834585 เพื่อรับข้อมูลอัปเดต

ระบบรองรับเอาต์พุตเสียงไหม

ใช่ ตั้งแต่ R74 (Termina เวอร์ชัน 11707.0.0 ขึ้นไป)

หากคุณตั้งค่าคอนเทนเนอร์ก่อนที่จะมีการรองรับเสียง คอนเทนเนอร์อาจได้รับการกำหนดค่าไม่ถูกต้อง (เนื่องจากค่าเริ่มต้นก่อนหน้านี้คือการส่งออกไปยังอุปกรณ์ Null) คุณลองทำตามขั้นตอนต่อไปนี้เพื่อกู้คืนได้

# Make sure the new cros-pulse-config package is installed.
$ sudo apt-get update
$ sudo apt-get dist-upgrade

# Clear out existing pulse settings.
$ rm -rf ~/.config/pulse

# Turn it off & on again via crosh ([Ctrl]+[[Alt]]+[[T]]).
crosh> vmc stop termina

รองรับการบันทึกเสียง (เช่น ไมโครโฟน) ไหม

ตอนนี้ ChromeOS รุ่น M84 รองรับการดำเนินการนี้แล้ว หากต้องการเปิดใช้การบันทึกเสียง ให้ไปที่การตั้งค่าแล้วเลือก "นักพัฒนาแอป" จากแถบนำทางด้านซ้าย จากนั้นไปที่ "Linux" คุณจะเห็นตัวเลือก "อนุญาตให้ Linux เข้าถึงไมโครโฟน" ในเมนูนั้น

ฉันจะเข้าถึงฮาร์ดแวร์ (เช่น USB/บลูทูธ/อนุกรม) ได้ไหม

ตอนนี้ ChromeOS อนุญาตให้คุณแชร์อุปกรณ์บางอย่างผ่าน USB ได้แล้ว หากต้องการเปิดใช้การเข้าถึง USB ให้ไปที่การตั้งค่า แล้วเลือก "นักพัฒนาแอป" จากแถบนำทางด้านซ้าย จากนั้นไปที่ "Linux" แล้วไปที่ "ค่ากำหนด USB" คุณจะเปิดใช้การเข้าถึง USB ได้ทีละกรณี

ทีมกำลังพัฒนาฟีเจอร์นี้อย่างต่อเนื่อง และจะรองรับอุปกรณ์เพิ่มเติมในอนาคต

ฉันเรียกใช้โปรแกรม Wayland ได้ไหม

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

Sommelier ให้การสนับสนุนนี้ได้อย่างราบรื่น

ฉันจะเรียกใช้โปรแกรม X ได้ไหม

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

Sommelier จะดูแลการเปิดใช้ XWayland, ทำหน้าที่เป็น WM และแปลคำขอ X กับ Wayland ระหว่าง Chrome กับโปรแกรม X

ทำไมบางครั้งหน้าต่างถึงมีขนาดเล็กมาก/ไม่ชัด

แอป Linux ที่แสดงในชั้นวางตัวเรียกใช้ควรมีตัวเลือกให้ใช้ความหนาแน่นสูงหรือต่ำ หากพบว่าความละเอียดไม่ทำงานตามที่ต้องการ ให้คลิกขวาที่ไอคอนเพื่อแสดงความสามารถในการสลับระหว่างความหนาแน่นสูงและต่ำ

แม้ว่า Chrome จะรองรับจอแสดงผลแบบ DPI สูง แต่แอปพลิเคชัน Linux จำนวนมากไม่รองรับ เมื่อโปรแกรมไม่รองรับการปรับขนาด DPI อย่างถูกต้อง ผลลัพธ์ที่ได้ก็จะไม่ดี

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

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

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

การทำงานร่วมกันจะใช้ได้ไหม

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

เราไม่มีแผนที่จะเปิดใช้การควบคุมประเภทนี้จากคอนเทนเนอร์ ไม่ได้หมายความว่าโซลูชันที่คล้ายกับ Synergy จะไม่เกิดขึ้นใน ChromeOS (เช่น CRD) เพียงแต่โซลูชันดังกล่าวจะไม่ใช่ Synergy หรือเครื่องมืออื่นๆ ในคอนเทนเนอร์

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

ฉันจะเรียกใช้โปรแกรม Windows ได้ไหม

ได้เลย ลองใช้ WINE ดู อย่างไรก็ตาม ความเข้ากันได้จะขึ้นอยู่กับ WINE เป็นส่วนใหญ่ ดังนั้นโปรดอย่าขอรับการสนับสนุนจากเรา

ฉันจะเรียกใช้โปรแกรม macOS ได้ไหม

อาจจะไม่ คุณอาจลองใช้โซลูชัน Linux ที่มีอยู่ต่างๆ แต่มีโอกาสสูงที่โซลูชันเหล่านั้นจะยังไม่สมบูรณ์

เหตุใดจึงต้องติดตั้งใช้งาน crosvm ตั้งแต่ต้น (แทนที่จะใช้ QEMU/kvmtool/etc…)

เราไม่ได้มีอคติกับโปรเจ็กต์อื่นๆ เหล่านี้ ซึ่งทั้งหมดนี้ยอดเยี่ยมมาก และการออกแบบของแอปเหล่านี้ก็มีอิทธิพลต่อการออกแบบของเรา ที่สำคัญที่สุดคือพวกเขาทำได้มากกว่าที่เราต้องการ และไม่มีโมเดลความปลอดภัยที่ดีเท่าที่เราได้รับจากการเขียนโค้ดเอง แม้ว่า crosvm จะทำทุกอย่างที่โปรเจ็กต์อื่นๆ ทำไม่ได้ แต่ก็ทำเฉพาะสิ่งที่เราต้องการเท่านั้น

ดูรายละเอียดเพิ่มเติมได้ที่โปรเจ็กต์ crosvm

VM จะทำให้ทุกอย่างช้าลงใช่ไหม

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

โปรดดูรายละเอียดเพิ่มเติมที่ส่วนความปลอดภัยของเอกสารอย่างเป็นทางการของ Chromium OS

เหตุใดจึงต้องเรียกใช้คอนเทนเนอร์ภายใน VM ทำไมจึงไม่เรียกใช้โปรแกรมใน VM โดยตรง

เราจำเป็นต้องทำให้ Termina มีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้เพื่อรักษาเวลาเริ่มต้นของ VM ให้ต่ำ ซึ่งหมายถึงการตัดโปรแกรม/ไฟล์ที่เราไม่ต้องการหรือไม่ได้ใช้

เราใช้ dm-verity ซึ่งกำหนดให้อิมเมจ Termina เป็นแบบอ่านอย่างเดียวเพื่อความปลอดภัย แต่ก็หมายความว่าเราสามารถแชร์อิมเมจนี้ระหว่างอินสแตนซ์ VM ได้อย่างปลอดภัย

นอกจากนี้ เวอร์ชันของโปรแกรม/ไลบรารีที่เราจัดส่งมักจะใหม่กว่าการจัดจำหน่ายอื่นๆ (เนื่องจากเราสร้างจาก Gentoo) และคอมไพล์ด้วย Flag ความปลอดภัยเพิ่มเติม

การอนุญาตให้ผู้ใช้แก้ไข VM จะช่วยป้องกันไม่ให้เกิดอิมเมจแบบไม่เก็บสถานะที่ใช้งานได้เสมอ และยังช่วยป้องกันข้อผิดพลาดของผู้ใช้และข้อบกพร่องในโปรแกรมด้วย

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

นอกจากนี้ เรายังชอบเต่าด้วย

มีการจัดการ Foreshadow (หรือที่เรียกว่า L1TF / CVE-2018-3646) ไหม

ได้ ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบแบบสาธารณะ

ฉันจะลบคอนเทนเนอร์ที่ไม่ต้องการแล้วได้ไหม

ได้เลย คุณลบอะไรก็ได้ตามที่ต้องการ อย่างไรก็ตาม ปัจจุบันยังไม่มี UI หรือคำสั่งที่จะช่วยในเรื่องนี้

ฉันจะลบ VM ที่ไม่ต้องการแล้วได้ไหม

ได้เลย คุณลบอะไรก็ได้ตามที่ต้องการ คุณใช้คำสั่ง vmc destroy เพื่อลบไฟล์ด้วยตนเองได้

ฉันปิดใช้ฟีเจอร์เหล่านี้ได้ไหม

ผู้ดูแลระบบสามารถควบคุมการเข้าถึงคอนเทนเนอร์/VM ผ่านคอนโซลการจัดการได้ ดังนั้นองค์กรระดับองค์กร/การศึกษาที่ต้องการจำกัดการเข้าถึงนี้จึงทำได้

ในตอนแรกจะมีตัวเลือก "Linux" อยู่ในการตั้งค่า ChromeOS มาตรฐาน แต่แผนระยะยาวคือการนำปุ่มนี้ออกเพื่อให้ทุกอย่างทำงานได้ตามต้องการ ซึ่งในจุดนี้ อุปกรณ์ที่ไม่มีการจัดการจะไม่มีปุ่ม

ฉันจะบูตระบบปฏิบัติการอื่น เช่น Windows, macOS, Linux, *BSD ฯลฯ ได้ไหม

ไม่ได้ คุณบูตได้เฉพาะ VM Linux ที่กำหนดเองของเราซึ่งมีชื่อว่า Termina เท่านั้น ดูคำถามอีก 2-3 ข้อถัดไปด้วย

ฉันจะเรียกใช้ VM/เคอร์เนลของตัวเองได้ไหม

ไม่ได้ คุณบูตได้เฉพาะ Termina ซึ่งใช้เคอร์เนลและการกำหนดค่า Linux ที่เรากำหนดเอง โปรดอดใจรอ

ฉันจะใช้ Linux Distro อื่นได้ไหม

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

ฉันใช้ (ใส่ชื่อการแจกแจงที่นี่) ฉันจะรับ {GUI apps, launcher icons, etc…} ได้อย่างไร

ไบนารี Sommelier และ Garcon จะได้รับการติดตั้งในคอนเทนเนอร์ทุกรายการ จึงไม่จำเป็นต้องติดตั้งหรือคอมไพล์ข้าม หน่วย systemd และไฟล์กำหนดค่าจาก cros-container-guest-tools จะเริ่ม Daemon เหล่านี้ในเซสชันผู้ใช้ systemd นอกจากนี้ เราขอแนะนำให้เรียกใช้ loginctl enable-linger <user> เพื่อให้แอปเหล่านี้ทำงานในเบื้องหลังต่อไปได้

ฉันเรียกใช้ VM ได้กี่เครื่อง

คุณสามารถสร้างได้มากเท่าที่ระบบจะรองรับได้ (ในแง่ของ RAM/CPU) โดยทั้ง 2 ส่วนนี้จะแยกกันโดยสิ้นเชิง

ฉันเรียกใช้คอนเทนเนอร์ได้กี่คอนเทนเนอร์

คุณสามารถสร้างได้มากเท่าที่ระบบจะรองรับได้ (ในแง่ของ RAM/CPU) อินสแตนซ์ VM แต่ละรายการโฮสต์คอนเทนเนอร์ได้หลายรายการ

ระบบรองรับรูปแบบคอนเทนเนอร์ใดบ้าง

ปัจจุบัน Termina รองรับเฉพาะ LXC โดยตรง เราทราบถึง Kubernetes/Docker/OCI/rkt/etc… และหวังว่าจะทำให้ทุกอย่างใช้งานได้ง่าย

โปรดดูคำถามก่อนหน้าเพื่อหาวิธีแก้ปัญหาในระหว่างนี้