یک تلویزیون هوشمند ۴۷ اینچی قدیمی LG دارم که سالهاست گوشهای خاک میخورد. نمایشگر 1080p آن کاملاً سالم است، اما قابلیتهای هوشمندش سالهاست منسوخ شدهاند. آخرین بهروزرسانی firmware آن به ۲۰۱۶ برمیگشت و تنها دستاوردش حذف برنامه Skype بود. پشتیبانی از سرویسهای پخش جریانی مدرن مدتهاست از میان رفته، اما نمیتوانم تلویزیونی را که از هر جهت دیگر کار میکند، بیدلیل دور بیندازم.
پس یک Intel NUC قدیمی مدل NUC6CAY را با یک هارددیسک ۱ ترابایتی به آن وصل کردم و کوشیدم همان تلویزیون هوشمندی را بسازم که LG مدتها پیش پشتیبانی از آن را رها کرده بود. دستگاه Kodi دیگری نمیخواستم، زیرا کتابخانه رسانه محلیام آنقدر بزرگ نیست که چنین کاری را توجیه کند. چیزی نزدیک به Android TV میخواستم، اما با فضای ذخیرهسازی کافی، مرورگری کامل و آزادی لازم برای ساخت برنامههای خودم.
سه راهحل بدیهی بهشکلی فاجعهبار شکست خوردند، اما سرانجام همان لینوکس قدیمی و ساده کار را راه انداخت.
سه سیستمعامل تلویزیونی، NUC را کمکاربردتر کردند
اندروید تیوی از کار افتاد، لایبرالک بیش از حد محدود بود و فایداواس هرگز بوت نشد





نخستین تلاشم برای راهاندازی Android TV روی Intel NUC، با فاصلهای دردناک تا موفقیت پیش رفت. نسخه x86 سیستم LineageOS TV را با نصبکننده BlissOS نصب کردم، سپس Google Apps را از طریق MindTheGapps و یک مترجم ARM، در محیط بازیابی ADB، به آن افزودم.
پس از بازنشانی کارخانهای، NUC با هیجان فراوانم در محیطی بوت شد که دقیقاً شبیه رابط Google TV بود. میتوانستم به حساب Google وارد شوم، در Play Store بگردم و حتی دستگاه را با گوشیام کنترل کنم.
متأسفانه این هیجان خیلی زود فروکش کرد. Google دستگاه را تأییدنشده تشخیص داد. YouTube نصب نمیشد، VLC بهشدت کند بود و پس از تلاش برای نصب Netflix، کل سیستم فروپاشید. وقتی بازنشانی کارخانهای انجام دادم، با صفحهای سیاه و این پیام روبهرو شدم:
[ 78.489988] audit: rate limit exceeded
گزینه no hwaccel را امتحان کردم، no modeset را آزمودم و هر گزینه دیباگ موجودی را به کار گرفتم. هیچکدام رابط کاربری را برنگرداند. در عمل، Android TV را فقط آنقدر ساخته بودم که ببینم چگونه به یک دستگاه بیاستفاده تبدیل میشود.
سپس LibreELEC را امتحان کردم که بسیار پایدارتر بود. Samba بلافاصله کار کرد و ویدیویی که روی NUC کپی کرده بودم، بیدردسر پخش شد. متأسفانه LibreELEC در عمل چیزی جز Kodi با یک سیستمعامل در زیر آن نیست. این برای کسانی که کتابخانههای محلی بزرگی دارند عالی است، اما خواسته من نبود. تلاش کردم افزونه YouTube را نصب کنم، اما موفق نشدم. حتی برنامه NASA هم به YouTube وابسته بود و کلاینت Pluto PVR دیگر در دسترس نبود.
FydeOS بهدلیل مرورگر و پشتیبانی از Widevine DRM، آخرین گزینه تخصصی من بود. ایمیج Intel Slim هنگام بوت، تصویری سیاه نشان میداد. Intel Modern نیز همین سرنوشت را داشت و سپس در یک بوتلوپ بیپایان گرفتار شد. در این مرحله، تلاش برای واداشتن سختافزار قدیمی x86 به ایفای نقش تلویزیون را متوقف کردم و سیستمی را نصب کردم که NUC واقعاً میشناخت: لینوکس.
فایداواس
لینوکس مینت ابتدا مشکلات آزاردهنده سازگاری را حل کرد
درایورهای استاندارد اینتل و پشتیبانی Widevine در کروم، پایهای پایدار فراهم کردند





لینوکس مینت ۲۲.۳ XFCE را انتخاب کردم، زیرا Celeron J3455 و هارددیسک مکانیکی تقریباً همسن تلویزیون LG بودند. مهمتر و شگفتانگیزتر اینکه، مینت بیهیچ دردسری بوت شد. پس از شکستهای فاجعهبار Lineage، LibreELEC و FydeOS، این خود دستاوردی بزرگ به نظر میرسید.
NUC را بهجای تلویزیون، به مانیتور میز کارم منتقل کردم؛ زیرا تایپ دستورهای لینوکس از روی مبل ایده خوبی نیست. پس از بهروزرسانی سیستمعامل، x11vnc را نصب کردم تا بتوانم دستگاه را از راه دور پیکربندی کنم و از لپتاپ ویندوزیام با SSH به آن وصل شوم. وقتی همهچیز آماده شد، ورود خودکار را فعال کردم تا روشنشدن NUC، بهجای صفحه ورود، مستقیم به میزکار XFCE برسد.
پشتیبانی سختافزاری لینوکس مینت برای NUC بهطرز دلپذیری ساده و بیدردسر بود. مینت Intel HD ۵۰۰ و تلویزیون LG را بهدرستی شناسایی کرد و vainfo تأیید کرد که رمزگشایی VA-API برای H.۲۶۴، HEVC و VP9 فعال است:
vainfo --display drm --device /dev/dri/renderD128
این خبر خوبی بود، زیرا GPU میتوانست رمزگشایی 1080p را انجام دهد، نه اینکه بار آن را بر دوش Celeron بیچاره بیندازد. تنها مشکل سختافزاری صدا بود؛ چون PipeWire در ابتدا خروجی آنالوگ را به HDMI ترجیح میداد. با تغییر پروفایل کارت، صدا از تلویزیون پخش شد:
pactl set-card-profile alsa_card.pci-0000_00_0e.0 output:hdmi-stereo
مشکل بعدی، پخش جریانی بود. خوشبختانه Google Chrome، Widevine DRM را همراه خود داشت و Netflix بلافاصله پخش شد؛ پس محتوای محافظتشده کار میکرد. با این حال، chrome://media-internals نشان میداد وضوح پخش حداکثر به ۱۲۸۰×۷۲۰ میرسد؛ محدودیتی رایج در Linux.
این مشکل را میتوان با نصب افزونه Chrome با نام «New Netflix 1080p» برطرف کرد که پس از نصب، وضوح پخش جریانی را تا ۱۹۲۰×۱۰۸۰ افزایش میدهد. این راهحلی غیررسمی است؛ بنابراین اگر Netflix تغییری در پخشکننده خود ایجاد کند، احتمالاً از کار میافتد. بااینحال، وضوحی را که این تلویزیون 1080p سزاوارش بود، به آن بازگرداند.
Mint فقط درایورهای کارآمد و چند ابزار تشخیصی مفید در اختیارم گذاشته بود، اما هنوز صرفاً رایانهای بود که از طریق HDMI به تلویزیون وصل شده بود. برای اینکه بیشتر به Android TV شبیه شود، به کمی سفارشیسازی نیاز داشت.
اگر رایانهای قدیمی را به جعبه تلویزیون تبدیل میکنید، پیش از نگرانی درباره رابط کاربری، رمزگشای سختافزاری ویدیو را آزمایش کنید. یک راهانداز خوشطراحی، پرش تصویر هنگام پخش HD را درمان نمیکند.
برنامههای وب باعث شدند Mint دیگر حس یک دسکتاپ را نداشته باشد
یک راهانداز دهفوتی، پروفایلهای جداگانه مرورگر و کنترل با تلفن، رایانه را پنهان کردند





رساندن Linux Mint به این مرحله فقط نیمی از کار بود. در وضوح ۱۹۲۰×۱۰۸۰، XFCE روی پنل تلویزیون بهخوبی مینشیند، اما یک دسکتاپ معمولی که از آنسوی اتاق و روی مبل دیده میشود، ایدهآل نیست. برای اینکه Mint بیشتر به یک راهانداز دهفوتی شبیه شود، ابتدا DPI در XFCE را روی ۱۴۴ تنظیم کردم، اندازه فونتها را به ۱۳ افزایش دادم، نشانگر را بزرگتر کردم و همه آیکونها را از دسکتاپ حذف کردم.
برنامهریزی کردم شبکهای از راهاندازهای برنامه برای سرویسهای پخش جریانی، مانند Netflix و Amazon Prime، بسازم؛ در کنار آیکونی اختصاصی برای خاموشکردن که گفتوگوی خاموشسازی XFCE را باز میکرد. برای راهاندازها، Web App Manager در Linux Mint بیشتر کار را انجام داد. هر سرویس در پنجره Chrome خودش، بدون زبانه و نوار آدرس، باز میشد؛ بنابراین Netflix، YouTube، Paramount+ و دیگر سرویسهای پخش جریانی مانند برنامههای تلویزیون هوشمند رفتار میکردند.
تصمیم گرفتم پروفایلهای Chrome را جدا نگه دارم، زیرا در این صورت ورودها، کوکیها، میزان بزرگنمایی و افزونهها نیز از هم جدا میماندند. راهاندازهای تولیدشده را هم ویرایش کردم تا همیشه بهصورت حداکثرشده باز شوند:
Exec=google-chrome-stable --start-maximized --app="https://netflix.com/browse"
Netflix یک پیچیدگی دیگر هم داشت. چون Web App آن به نسخه خودش از افزونه 1080p Chrome نیاز داشت، پنجرهای تازه از همان پروفایل را با Ctrl + N باز کردم، افزونه را آنجا نصب کردم و Web App را دوباره بارگذاری کردم. آیکون هر راهانداز را هم با لوگویی شفاف و مناسب جایگزین کردم تا راهاندازها تا حد ممکن شبیه Android TV به نظر برسند.
آخرین مانع برای اینکه Mint روی NUC بیشتر شبیه تلویزیون عمل کند، کنترل از راه دور بود. VNC بهشدت کند بود، اما KDE Connect بسیار بهتر عمل کرد. آن را روی Samsung Note ۲۰ خود هم نصب کردم و گوشی را به ترکپد، صفحهکلید و کنترل از راه دور رسانهای تبدیل کردم. به این ترتیب لازم نبود صفحهکلید دیگری روی مبل بگذارم تا کسی ناخواسته روی آن بنشیند. البته هنوز بهاندازه یک کنترل از راه دور جهتدار تلویزیون کاربردی نیست. بااینحال، از نظر ظاهری رابطی که ساخته بودم دقیقاً به یک راهانداز پخش جریانی سفارشی شباهت داشت. حالا XFCE فقط زمانی واقعاً دیده میشود که به انعطافپذیری توزیع کامل دسکتاپ زیر آن نیاز داشته باشم.
دیسک ۱ ترابایتی نمیگذارد این فقط یک Chromecast پیچیده باشد
Samba و VLC انعطافپذیری واقعی میافزایند، هرچند یک دانگل پخش جریانی همچنان آسانتر است





هنوز آنقدر رسانه محلی ندارم که ساخت یک Kodi را توجیه کند، اما میخواستم دیسک 1TB هم کاربردی داشته باشد. جابهجا کردن فلش USB میان رایانه اصلی و تلویزیون، کاری متعلق به سال ۲۰۰۵ است؛ پس باید برای بارگذاری رسانه روی NUC، یک اشتراک شبکه میساختم.
پوشههای Movies، TV و Music را در /home/mint-nuc/Media ایجاد کردم، سپس تمام این دایرکتوری را با احراز هویت از طریق Samba در دسترس قرار دادم. در اینجا نامی بهیادماندنی برای NetBIOS به NUC دادم تا همه افراد در شبکه بتوانند آن را پیدا کنند:
netbios name = MEDIASERVER
server string = Mint NUC Media Server
پس از راهاندازی مجدد Samba، Windows میتوانست این مسیر را باز کند:
\\MEDIASERVER\Media
حالا میتوانستم فایل ویدیویی یا موسیقی را از لپتاپم به آن اشتراک منتقل کنم. سپس میتوانستم راهانداز بزرگ Local Media را روی تلویزیون باز کنم و همان فایل را بینیاز از فلش USB، مستقیماً از دیسک داخلی و با پخشکننده رسانه محبوبم، VLC، اجرا کنم.
فضای ذخیرهسازی بزرگ 1TB فقط یکی از مزیتهاست. از آنجا که در زیر این رابط هنوز Linux قرار دارد، تقریباً هر سرویس یا وبسایت مبتنی بر مرورگر که برنامه تلویزیون اختصاصی ندارد، میتواند به برنامه وب دیگری تبدیل شود. NUC به همین سادگی میتواند به کلاینت پخش جریانی بازی، شبیهساز، نمایشگر عکس، دستگاه karaoke یا هر چیز دیگری که هنوز به آن فکر نکردهام تبدیل شود.
البته این پروژه یک ایراد بدیهی دارد: خرید یک Chromecast دستدوم، یا یک Google TV Streamer جدید، ذاتاً بسیار راحتتر از این همه دردسر است. آن دستگاه برق کمتری مصرف میکند، یکپارچگی واقعی HDMI-CEC دارد، برنامههای پخش جریانی تأییدشده ارائه میدهد و رابطش برای تماشا از روی مبل طراحی شده است. من سه سیستمعامل ناموفق، کابوسهای DRM و راهاندازهای سفارشی را پشت سر گذاشتم تا چیزی بسازم که Google آن را در یک دانگل پلاستیکی کوچک میفروشد.
اما نکته همینجاست: NUC و صفحه اصلیام کاملاً در اختیار خودم هستند. خبری از ردیف بیپایان پیشنهادها، تریلرهای تبلیغاتی یا فیلمهایی نیست که منتظر خریدن یا اجارهکردنشان باشم. اگر فقط ۱۵ آیکون بزرگ بخواهم و هیچ چیز دیگر، دقیقاً همان را خواهم داشت. بله، رابطهای مرورگر هنوز به صفحهکلید و ماوس وابستهاند و افزونههای Chrome من ممکن است هر لحظه از کار بیفتند، اما رابط نهایی متعلق به خودم است، نه ویترین فروشگاهی دیگری.
آزادی و انعطافپذیری، این همه کار اضافی را ارزشمند کردند. دیگر دنبال پلتفرم آماده تلویزیون هوشمند برای احیای LG فرسودهام نبودم؛ در عوض، بهترین بخشهایی را که واقعاً میخواستم، خودم ساختم.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Gregory Gibson است. مشاهده مقاله اصلی