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





اولین تلاش من برای راهاندازی Android TV روی Intel NUC به طرز دردناکی به موفقیت نزدیک بود. نسخه x86 سیستم LineageOS TV را با استفاده از نصبکننده BlissOS نصب کردم، سپس عملکرد Google Apps را از طریق MindTheGapps با یک مترجم ARM از طریق ADB recovery اضافه کردم.
پس از بازنشانی کارخانهای، 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 بزرگ را روی تلویزیون باز کنم و همان فایل را مستقیماً از دیسک داخلی با پخشکننده رسانه محبوبم، VLC پخش کنم، بدون نیاز به فلش USB.
آن فضای ذخیرهسازی بزرگ 1TB تنها یک مزیت است. از آنجا که زیر آن هنوز Linux است، عملاً هر سرویس یا سایت مبتنی بر مرورگر که برنامه تلویزیون اختصاصی ندارد میتواند به یک برنامه وب دیگر تبدیل شود. NUC به همان سادگی میتواند به یک کلاینت پخش جریانی بازی، شبیهساز، نمایشگر عکس، دستگاه karaoke یا چیزی که هنوز حتی به آن فکر هم نکردهام تبدیل شود.
البته، این پروژه یک مشکل بدیهی دارد: خرید یک کرومکست دستدوم (یا یک Google TV Streamer جدید) ذاتاً راحتتر از اینهمه دردسر است. این دستگاه کمتر برق مصرف میکند، یکپارچگی واقعی HDMI-CEC دارد، اپلیکیشنهای استریمینگ تأییدشده و رابطی دارد که برای تماشا روی مبل طراحی شده. من سه سیستمعامل ناموفق، کابوسهای DRM و لانچرهای سفارشی را پشت سر گذاشتم تا چیزی بسازم که گوگل آن را در یک دانگل پلاستیکی کوچک میفروشد.
اما ماجرا اینجاست. NUC و صفحهٔ اصلی من کاملاً از خودِ من است. هیچ ردیف بیپایانی از پیشنهادها، تریلرهای تبلیغاتی یا فیلمهایی که منتظرند بخرم یا اجاره کنم وجود ندارد. اگر فقط ۱۵ آیکون بزرگ بخواهم و هیچ چیز دیگر، دقیقاً همان را میگیرم. بله، رابطهای مرورگر هنوز به کیبورد و ماوس وابستهاند و افزونههای کروم من هر لحظه ممکن است از کار بیفتند، اما رابط نهایی از خودِ من است، نه ویترین فروشگاهیِ دیگری.
آزادی و انعطافپذیری، دلیل ارزش اینهمه کار اضافه بود. دیگر به دنبال پلتفرم تلویزیون هوشمند آمادهای برای تعمیر LG فرسودهام نگردیدم؛ بهجایش بهترین بخشهایشان را که واقعاً میخواستم، خودم ساختم.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Gregory Gibson است. مشاهده مقاله اصلی