แท็บเล็ต Linux Kiosk จาก Acer Aspire Switch 10 (Baytrail): 10 ขั้นตอน
แท็บเล็ต Linux Kiosk จาก Acer Aspire Switch 10 (Baytrail): 10 ขั้นตอน
Anonim
แท็บเล็ต Linux Kiosk จาก Acer Aspire Switch 10 (Baytrail)
แท็บเล็ต Linux Kiosk จาก Acer Aspire Switch 10 (Baytrail)
แท็บเล็ต Linux Kiosk จาก Acer Aspire Switch 10 (Baytrail)
แท็บเล็ต Linux Kiosk จาก Acer Aspire Switch 10 (Baytrail)

ฉันต้องการแท็บเล็ตสำหรับระบบโฮมออโตเมชั่นในที่พักให้เช่าของฉัน (https://www. SoS-OBX.us/) หลังจากซื้อและทดสอบแท็บเล็ตที่แตกต่างกันสองสามตัว (HP Stream 7/8, Samsung Slate, Kindle Fire ที่รูทแล้ว) ฉันก็ตัดสินใจเลือก Acer Aspire Switch 10 (SW5-012) ทนทานและยืดหยุ่น มีปุ่มพิเศษที่ฉันใช้เพื่อกำหนดเป็นปุ่มโฮมเพจใหม่ และมีกระจก Gorilla Glass ซึ่งทำให้มีจอแสดงผลที่แข็งแรงมากซึ่งควรทนต่อการกระแทกจากผู้เช่าได้อย่างง่ายดาย

แต่มันไม่ง่ายเลยที่จะตั้งค่า ด้วยระบบ Intel Atom Baytrail ฉันต้องต่อสู้กับ UEFI 32 บิตควบคู่กับระบบปฏิบัติการ 64 บิต โชคดีที่ linux ได้เริ่มให้การสนับสนุนเคอร์เนลที่ยอดเยี่ยมสำหรับเครื่องเหล่านี้ เมื่อใช้ Lubuntu 17.10 ฉันสามารถเปลี่ยนให้เป็นคีออสก์ที่ใช้งานได้ ฉันยังสามารถปรับปรุงทิศทางบางอย่างเพื่อทำให้กระบวนการโดยรวมง่ายขึ้นมาก -- ไม่มีการรีบูตที่ไม่มีที่สิ้นสุด คำสั่งด้วง หรือการรวบรวมโมดูลอีกต่อไป!!

ตอนนี้ฉันเข้าใจแล้วว่านี่ไม่ใช่แท็บเล็ตในทางเทคนิค (สวิตช์ 10 แบบเต็มมีแป้นพิมพ์แบบถอดได้) แต่ฉันพบ 4 บน eBay ในราคาประมาณ 80 ดอลลาร์ต่ออัน ดังนั้นฉันจึงซื้อมันทั้งหมด

ขั้นตอนที่ 1: อะไหล่

อะไหล่
อะไหล่

สำหรับคำแนะนำนี้ คุณจะต้อง:

  • Acer Aspire Switch 10 (SW5-012) - อาจใช้งานได้กับรุ่นอื่นและกับ Switch 11 แต่ยังไม่ได้ทดสอบ สิ่งสำคัญคือคุณต้องมีเวอร์ชันที่มี Broadcom wifi ฉันไม่สามารถทดสอบกับรุ่น Realtek wifi ได้
  • ฮับ USB แบบหลายพอร์ตพร้อมขั้วต่อ MicroUSB อย่าใช้ขั้วต่อ USB OTG สำหรับ SW5-012
  • เมาส์และคีย์บอร์ด USB
  • แฟลชไดรฟ์ที่มีพื้นที่เก็บข้อมูล 2GB ขึ้นไป
  • ความรู้ในการทำงานของการติดตั้งบน Ubuntu และ linux โดยทั่วไป

คุณจะต้องมีเครื่องเพื่อสร้างอิมเมจที่สามารถบู๊ตได้ เครื่องนั้นควรมีและอิมเมจ ISO ของ Lubuntu เวอร์ชันล่าสุด (ฉันใช้ v 17.10.1 มีให้ที่ https://lubuntu.net/downloads/) และสำเนาของ Rufus (https://rufus.akeo.ie/) หากใช้ Windows มิฉะนั้น dd จะทำงานสำหรับ *nix

เชื่อมต่อทุกอย่างเข้ากับฮับ USB จากนั้นเสียบเข้ากับสวิตช์ 10

ขั้นตอนที่ 2: เตรียมอุปกรณ์ USB ที่สามารถบู๊ตได้และ Boot It

เตรียมอุปกรณ์ USB ที่สามารถบู๊ตได้และบู๊ตได้
เตรียมอุปกรณ์ USB ที่สามารถบู๊ตได้และบู๊ตได้
เตรียมอุปกรณ์ USB ที่สามารถบู๊ตได้และบู๊ตได้
เตรียมอุปกรณ์ USB ที่สามารถบู๊ตได้และบู๊ตได้
เตรียมอุปกรณ์ USB ที่สามารถบู๊ตได้และบู๊ตได้
เตรียมอุปกรณ์ USB ที่สามารถบู๊ตได้และบู๊ตได้

ฉันจะถือว่าคุณมีทักษะในการสร้างไดรฟ์ USB ที่สามารถบู๊ตได้โดยใช้ Rufus แล้ว ที่กล่าวว่าตรวจสอบให้แน่ใจว่าคุณเลือก "MBR Partition Scheme for UEFI" ภายใต้ "Partition scheme และ target system type"

หลังจากที่คุณสร้างไดรฟ์ที่สามารถบู๊ตได้ คุณจะต้องวางไฟล์บูต UEFI แบบ 32 บิตลงในไดเร็กทอรี \EFI\BOOT ฉันได้แนบมากับโปรเจ็กต์นี้แล้ว แต่คุณสามารถรับได้จากหลายที่ทางออนไลน์หรือคุณสามารถสร้างของคุณเองโดยใช้ linux ได้หากต้องการ

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

เมื่อเครื่องเปิดเข้าสู่ BIOS คุณจะต้องไปที่ "ความปลอดภัย" และตั้งรหัสผ่านผู้ดูแล เครื่องนี้ต้องการสิ่งนี้เพื่อเปลี่ยนการตั้งค่า UEFI เมื่อคุณตั้งรหัสผ่านแล้ว ให้ไปที่ "Boot" และตั้งค่า "Secure Boot" เป็น DISABLED เปลี่ยนลำดับการบู๊ตเพื่อให้ "USB HDD" เป็นอันดับแรก บันทึกการเปลี่ยนแปลงและรีบูต

ขั้นตอนที่ 3: บูตเข้าสู่ Lubuntu เตรียมระบบสำหรับการติดตั้ง

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

ขั้นแรก เปิดเทอร์มินัลแล้วยกระดับเป็น su ด้วย:

ซูโด ซู -

ในการโหลดไดรเวอร์ wifi ก่อนอื่นให้พิจารณาว่าเฟิร์มแวร์ใดไม่สามารถโหลดได้:

dmesg | grep brcm

คุณอาจจะเห็นสิ่งนี้:

brcmfmac mmc0:0001:1: โหลดเฟิร์มแวร์โดยตรงสำหรับ brcm/brcmfmac43241b4-sdio.txt ล้มเหลวโดยมีข้อผิดพลาด -2

ซึ่งหมายความว่าเฟิร์มแวร์ NVRAM สำหรับอุปกรณ์ต้องมีเทมเพลตในการโหลด กำหนดค่าหนึ่งรายการโดยใช้:

cp /sys/firmware/efi/efivars/nvram-74b00bd9-805a-4d61-b5f1-43268123d113 /lib/firmware/brcm/brcmfmac43241b4-sdio.txt

ชื่อเทมเพลตเฟิร์มแวร์ควรตรงกับสิ่งที่คุณเห็นในเอาต์พุต dmesg จากนั้นโหลดไดรเวอร์ใหม่โดยใช้:

modprobe -r brcmfmac && modprobe brcmfmac

รอสักครู่ (5-10) และคุณควรได้รับพร้อมท์ให้เข้าร่วมเครือข่าย wifi

ต่อไป ตรวจสอบให้แน่ใจว่าได้อัปเดตความถนัด

apt update

จากนั้นติดตั้งไดรเวอร์ UEFI 32 บิตของด้วง:

apt ติดตั้ง grub-efi-ia32 grub-efi-ia32-bin

ระบบของคุณพร้อมสำหรับการติดตั้งที่ราบรื่นพอสมควรแล้ว

ขั้นตอนที่ 4: ติดตั้ง Lubuntu

หากคุณคุ้นเคยกับการติดตั้ง Ubuntu บนเดสก์ท็อป สิ่งนี้จะดูคล้ายกันมาก เมื่อได้รับแจ้งให้แบ่งพาร์ติชัน ให้เลือก "อย่างอื่น" และแบ่งพาร์ติชันด้วยตนเอง อุปกรณ์ของฉันมี SSD ขนาด 50GB ดังนั้นฉันจึงเลือกพาร์ติชั่นต่อไปนี้:

mmcblk1p1 - EFI - 256MB

mmcblk1p2 - ext2 - 256MB เมานต์เป็น /boot mmcblk1p3 - ext4 - 47.5GB เมานต์เป็น /mmcblk1p4 - สลับ - พื้นที่ที่เหลือ แต่ไม่น้อยกว่า 2GB

นอกจากนี้ ติดตั้ง "อุปกรณ์สำหรับการติดตั้ง bootloader" ควรเป็นพาร์ติชัน EFI ตรวจสอบให้แน่ใจว่าคุณอนุญาตให้ Lubuntu ดาวน์โหลดการอัปเดตระหว่างการติดตั้ง (ไม่จำเป็น แต่เป็นที่ต้องการอย่างมาก)

เมื่อการติดตั้งเสร็จสมบูรณ์ ให้รีบูต แต่ปล่อยให้ไดรฟ์ USB เสียบอยู่ (อีกหนึ่งขั้นตอนก่อนที่จะบูตได้หากไม่มีไดรฟ์)

ขั้นตอนที่ 5: ทำให้ระบบสามารถบู๊ตได้โดยไม่ต้องใช้ไดรฟ์ USB

ปิดระบบแล้วเริ่มเข้าสู่ BIOS (Volume Up / Power) คุณจะได้รับพร้อมท์ให้ใส่รหัสผ่าน Supervisor ที่คุณป้อนก่อนหน้านี้

ใน BIOS ให้ไปที่ "Boot" และเปิดใช้งาน Secure Boot อีกครั้ง จากนั้นไปที่ "Security" และเลือก "Select an UEFI file as trusted for executing" จากเมนูที่ให้มา นำทางผ่าน HDD1\EFI\ubuntu แล้วเลือก "grubia32.efi" จากนั้นตั้งชื่อในข้อความแจ้งถัดไป (ชื่ออะไรก็ได้ที่คุณต้องการ -- จะแสดงเฉพาะใน BIOS เท่านั้น) จากนั้นคลิกตกลง

กลับไปที่ "บูต" และปิดใช้งาน Secure Boot จากนั้นบันทึกการเปลี่ยนแปลง

ถอดแฟลชไดรฟ์ USB และรีบูตระบบ มันควรจะบูตไปที่ Lubuntu !!!

ขั้นตอนที่ 6: เพิ่มส่วนประกอบอื่น ๆ เปลี่ยนการตั้งค่า

องค์ประกอบอื่นๆ บางประการที่คุณต้องการทำให้การจัดการแท็บเล็ตนี้ง่ายขึ้น:

apt ติดตั้ง openssh-server chromuim-browser unclutter

Chromium เป็น Chrome เวอร์ชัน L/Ubuntu ที่สามารถติดตั้งได้จาก Aptitude

ใน "การตั้งค่า" ฉันปิดใช้งานโหมดไฮเบอร์เนตและปิดเครื่อง ลบการล็อกหน้าจอ และตั้งค่าการทำให้หน้าจอว่างเปล่าเป็น 5 นาที (แบตเตอรี่) และ 10 นาที (เสียบปลั๊ก) ยังตั้งค่าให้ผู้ใช้เข้าสู่ระบบโดยอัตโนมัติ

ขั้นตอนที่ 7: ตั้งค่าการเข้าสู่ระบบเพื่อเปิดเบราว์เซอร์

ขั้นแรก ให้เปิด Chromuim จากนั้นตั้งค่าโฮมเพจเป็นระบบอัตโนมัติภายในบ้านของคุณ บนเครือข่ายของฉัน (ทั้งที่บ้านและที่บ้านพักตากอากาศ) คือ "https://home/"

SSH ลงในแท็บเล็ตและสร้างไดเร็กทอรี (หากยังไม่มี) ภายใต้ผู้ใช้ autologin - mine เรียกว่า "kiosk" - เรียกว่า ~/.config/autostart จากนั้นสร้างไฟล์ชื่อ "kiosk.desktop" โดยมีรายละเอียดดังนี้ เนื้อหา:

[Desktop Entry]ประเภท=ชื่อแอปพลิเคชัน=Kiosk Exec=/home/kiosk/kiosk.sh X-GNOME-Autostart-enabled=true

จากนั้นสร้างไฟล์สคริปต์ที่ /home/kiosk/kiosk.sh ด้วยเนื้อหาต่อไปนี้:

#!/bin/bash# เรียกใช้สคริปต์นี้ในจอแสดงผล 0 - จอภาพ

export DISPLAY=:0# ซ่อนเมาส์จาก displayunclutter ' หาก Chromium ขัดข้อง (โดยปกติเกิดจากการรีบูต) ให้ล้างแฟล็กการแครชเพื่อไม่ให้มีการเตือนที่น่ารำคาญ -i 's/"exited_cleanly":false/" exited_cleanly":true/' /home/kiosk/.config/chromium/Default/Preferencessed -i 's/"exit_type":"ขัดข้อง"/"exit_type":"ปกติ"/' /home/kiosk/.config/chromium /Default/Preferences# หน่วงเวลาเพื่ออนุญาตการเชื่อมต่อไร้สาย/bin/sleep 5s# เรียกใช้ Chromium และเปิดแท็บ/usr/bin/chromium-browser --kiosk --window-position=0, 0 https://home/ &

ขั้นตอนที่ 8: ทำการแมปคีย์ "Windows" ใหม่ไปยังโฮมเพจของเบราว์เซอร์

รีแมป
รีแมป
รีแมป
รีแมป
รีแมป
รีแมป

ตอนนี้ เกือบทุกอย่างใช้งานได้ แต่บางครั้งฉันต้องการเปิดตัว emby บนแท็บเล็ต HA ของฉัน เนื่องจากฉันไม่มีแป้นพิมพ์หรือแถบที่อยู่ ฉันต้องการวิธีง่ายๆ เพื่อกลับไปยังหน้าแรกของเบราว์เซอร์ จำปุ่มโลโก้ Windows เล็ก ๆ ที่ด้านข้างของแท็บเล็ตได้ไหม ฉันจะตั้งใจใหม่เพื่อส่ง "Crtl-Home" ไปยังเบราว์เซอร์และกลับไปที่หน้าแรก

มาสร้างสคริปต์ชื่อ chromiumHome.sh และใส่ไว้ในโฮมไดเร็กทอรีของผู้ใช้คีออสก์:

#!/bin/bashxdotool คีย์อัพ Super_L; คีย์ xdotool alt+Home#NOTE: คุณควรจะสามารถใช้พารามิเตอร์ --clearmodifiers ของเครื่องมือ xdo และลบคำสั่งแรกของสองส่วนด้านบน

จากนั้นเราจะใช้คุณลักษณะหนึ่งของ Openbox เพื่อทำการแมปคีย์ใหม่ เปิด ~/.config/openbox/lubuntu-rc.xml และค้นหาส่วนที่ระบุว่า "" และเพิ่มข้อความต่อไปนี้:

/home/kiosk/chromiumHome.sh

รหัสนี้จะทำการแมปคีย์ Windows ใหม่ (หรือที่เรียกว่าคีย์ "SUPER") เพื่อเรียกใช้สคริปต์ chromiumHome.sh รีบูตแท็บเล็ตแล้วลอง!

ตอนนี้คุณมีแท็บเล็ตขนาดเล็กสำหรับระบบอัตโนมัติในบ้านแล้ว แท็บเล็ตมีความทนทาน (ไม่ "ทนทาน" แต่ทนทาน) มีอายุการใช้งานแบตเตอรี่ที่ยาวนาน (3+ ชั่วโมง) และด้วยขาตั้งอะลูมิเนียมที่ฉันได้ทำให้เป็นชิ้นส่วนที่ดูสมบูรณ์แบบสำหรับโฮมเธียเตอร์ของคุณ

ขั้นตอนที่ 9: สิ่งอื่น ๆ ที่ต้องพิจารณาและพัฒนาต่อไป

ยังคงมีพื้นที่สำหรับการปรับปรุง นี่คือรายการสิ่งที่ฉันวางแผนจะแก้ไข:

  • ย้าย "คีออสก์" ไปยังผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบเพื่อให้สามารถแชร์การเชื่อมต่อ wifi ได้ แต่มองไม่เห็นรหัสผ่าน wifi
  • การปิดระบบยังคงแสดงเมนูการปิดระบบแทนที่จะเพียงแค่ปิดเครื่องแท็บเล็ต (แม้ว่าฉันจะเปลี่ยนลักษณะการทำงานในการตั้งค่าจาก "ถาม" เป็น "ปิดเครื่อง")
  • ใส่โลโก้ที่ดีกว่าซึ่งกำหนดเป้าหมายไปที่การสร้างแบรนด์ที่พักให้เช่าของฉัน (เรียกว่า "Shades of Summer") แทนโลโก้ Acer และ Lubuntu
  • อาจใช้เวลาในการพยายามทำให้เสียงและบลูทูธใช้งานได้ (ไม่สำคัญ แต่ก็ดีที่มี)
  • เพิ่มตัวบ่งชี้อายุการใช้งานแบตเตอรี่ลงในหน้าเว็บ (เนื่องจากแถบงานถูกซ่อนอยู่ ผู้ใช้ไม่ทราบว่าแบตเตอรี่เหลือน้อยจนกว่าจะมีการแจ้งเตือนปรากฏขึ้น)
  • เปลี่ยนลำดับการบู๊ตกลับเป็นการใช้ HDD เป็นหลักเพื่อป้องกันไม่ให้ผู้เยี่ยมชมเปิดอุปกรณ์ USB บนแท็บเล็ตของฉัน

ขั้นตอนที่ 10: การอ้างอิงและรับทราบ

ผลกระทบที่น่าทึ่งอย่างหนึ่งของการเคลื่อนไหวของ OpenSource คือความสามารถสำหรับผู้ชายอย่างฉันที่จะยืนบนไหล่ของยักษ์ใหญ่ เมื่อฉันพยายามรวบรวมบางสิ่งเพื่อตอบสนองความต้องการเฉพาะของฉัน โดยที่ตลาดล้มเหลวในการผลิตหรือต้องการมากกว่าฉัน เอ็มยินดีจ่าย ดังนั้น ฉันต้องการเพิ่มข้อมูลอ้างอิงต่อไปนี้ ซึ่งฉันพบความรู้ทั้งหมดที่ฉันต้องการ:

gist.github.com/franga2000/2154d09f864894b… - ข้อมูลเกี่ยวกับการทำงานของ bootloader รุ่น 32 บิตบนอุปกรณ์เหล่านี้

wiki.debian.org/InstallingDebianOn/Asus/T1… - ข้อมูลเกี่ยวกับวิธีทำให้ wifi ทำงานบนระบบ Baytrail

openbox.org/wiki/Help:Bindings - ข้อมูลการเชื่อมโยงคีย์สำหรับ Openbox

github.com/baskerville/sxhkd/issues/86 - ช่วยในการแก้ปัญหาการแมปคีย์