কমান্ড লাইন থেকে পর্দায় একটি পিক্সেল রাখার জন্য ফ্রেমবফারের অ্যাক্সেস করা কি সম্ভব?


16

এটি একমাত্র সম্ভাব্য উপায় কিনা তা আমি নিশ্চিত নই, তবে আমি পড়েছি যে আপনার পছন্দের কোনও স্থানে পর্দায় এক পিক্সেল লাগাতে ফ্রেমবফার নামক স্থানে কিছু লিখতে হবে। সুতরাং আমি কৌতূহলী হয়ে উঠি, যদি স্ক্রিনে কোথাও একক পিক্সেল প্রদর্শন করার জন্য এই জায়গায় প্রবেশ করা এবং এটিতে কিছু লিখতে পারা যায়।


আপনি কোন ওএস নির্দিষ্ট করেন নি। লিনাক্স?
গিলস 23'23

হ্যাঁ, লিনাক্স (পুদিনা
কোডে

উত্তর:


17

হ্যাঁ, এক্স সার্ভারের বাইরে, tty তে, কমান্ডটি ব্যবহার করে দেখুন:

cat /dev/urandom >/dev/fb0

কলরফুল পিক্সেলগুলি যদি স্ক্রিনটি পূরণ করে তবে আপনার সেটআপটি ঠিক আছে, এবং আপনি এই ছোট স্ক্রিপ্টের সাহায্যে খেলার চেষ্টা করতে পারেন:

#!/usr/bin/env bash

fbdev=/dev/fb0 ;   width=1280 ; bpp=4
color="\x00\x00\xFF\x00" #red colored

function pixel()
{  xx=$1 ; yy=$2
   printf "$color" | dd bs=$bpp seek=$(($yy * $width + $xx)) \
                        of=$fbdev &>/dev/null
}
x=0 ; y=0 ; clear
for i in {1..500}; do
   pixel $((x++)) $((y++))
done

ফাংশন 'পিক্সেল' এর একটি উত্তর হওয়া উচিত ... যেখানে ডিভাইস / ডিভ / এফবিএক্স-এর এক্সওয়াই অফসেটে বাইট মান (নীল-সবুজ-লাল-আলফা) পরিবর্তন করে স্ক্রিনে পিক্সেল লিখুন যা ভিডিও কার্ডের জন্য ফ্রেম বাফার।

বা একটি লাইনার পিক্সেল অঙ্কনের চেষ্টা করুন (x: y = 200: 100, প্রস্থ যদি 1024 হয়):

printf "\x00\xFF\xFF\x00" | dd bs=4 seek=$((100 * 1024 + 200)) >/dev/fb0

আপডেট: এই কোডটি এক্স-সার্ভারের অভ্যন্তরেও কাজ করে, যদি আমরা ফ্রেম বাফার ব্যবহারের জন্য এক্সটিকে কেবল কনফিগার করি । /usr/share/X11/xorg.conf.d/99-fbdev.conf এর ভিতরে fb0 নির্দিষ্ট করে


এখানে বেশ কয়েকটি বিপজ্জনক জিনিস চলছে: প্রথম কারণটি কোনও কারণে ফ্লপি ডিস্কে এলোমেলো বাইটগুলি লেখার জন্য উপস্থিত হয়। ফলোআপ কমান্ডগুলি ব্যবহার করে ddযা প্রায়শই নির্দিষ্ট কারণে "ডিস্ক ধ্বংস" নামে অভিহিত করা হয় ... আপনি কী করছেন তা যদি না জানেন তবে এই কমান্ডগুলির কাছে যাবেন না ...
রবার্ট

4
@ আরবার্ট আমি মনে করি ওমর বলতে চেয়েছিলেন /dev/fbXএবং তিনি /dev/fdছিলেন কেবল একটি টাইপো। এবং হ্যাঁ, ddবিপজ্জনক তবে তাই rm। এর অর্থ এই নয় যে এটি ব্যবহার করা উচিত নয়। এর অর্থ কেবল এটি যত্ন সহ ব্যবহার করা উচিত।
টেরডন

আহ /dev/fb0আরও বোঝায়! এর rmঅর্থ প্রত্যেকেই জানেন , তবে ddএটি আরও কিছুটা অস্পষ্ট, এখনও মনে করেন এটির স্বাস্থ্যের সতর্কতা অব্যাহত রাখা উচিত।
রবার্ট

2
"হ্যাঁ, এক্স সার্ভারের বাইরে, কমান্ডটি ব্যবহার করে দেখুন:" আমি ঠিক বুঝতে পেরেছি তা বুঝতে পারছি না, তাই আমি কেবল টার্মিনালটি খোলার চেষ্টা করেছি এবং "বিড়াল / দেব / ইউরানডম> / দেব / এফডি0" লিখেছিলাম তবে আমি কেবল পেয়েছি একটি ত্রুটি বার্তা: "বিড়াল: লেখার ত্রুটি: ডিভাইসে কোনও স্থান অবশিষ্ট নেই"। আমি কীভাবে জেসারভার থেকে বেরিয়ে আসব জানি না।
আব্দুল আল হাজরেড

1
... আমি এটিকে tty বলেছি, তবে এটি ভার্চুয়াল কনসোল, নন-গি জিনিস, সমস্ত স্ক্রিনে টার্মিনাল, আপনি ctrl-alt-f1,2,3 ... বা "sudo chvt 1" দিয়ে পৌঁছেছেন ... ' কোনও স্থান বাকি নেই 'বলে মনে হচ্ছে এটি ঠিক হবে, কেবলমাত্র আপনি এখনও এক্স-সেশনে রয়েছেন।
আসাইন কুজোভিচ

0

আমি আজ সকালে এই পোস্ট করেছি, এখনও কেন এটি কেবল রাস্পবেরি পিসে কাজ করে তা তদন্ত করছি। https://www.raspberrypi.org/forums/viewtopic.php?f=72&t=213964&p=1428891#p1428891

/ Dev / fb0 খুলুন, এটি এমএম্যাপ করুন যাতে আপনি পয়েন্টার পান এবং এটি আরও দ্রুত। এক্সকে মোটেও ব্যবহার করে না তবে এটি আনন্দের সাথে এক্স অগ্রাহ্য করবে, এটি স্ক্রিনের ঠিক কিছু।

ওহ, একটি কমান্ড লাইন থেকে, সাজানোর, আপনি / dev / fb0 এ লিখতে পারেন। তবে আপনি অফসেট 0 তে যা কিছু লিখুন তা উপরের বাম কোণায় থাকবে তাই এটি তত্ক্ষণাত স্ক্রিনটি থেকে স্ক্রোলটি সরিয়ে ফেলবে। আপনি বাশে লুপের জন্য কিছু করতে পারেন এবং কয়েক হাজার বার লিখতে পারেন। অথবা / dev / urandom ব্যবহার করুন। স্ক্রিন বাফারে যা আছে তা ধ্বংস করা, বিশেষত আপনি এক্স এ থাকাকালীন কোনও বড় বিষয় নয়। যত তাড়াতাড়ি আপনি অঞ্চলটির উপরে একটি উইন্ডো টেনে আনার সাথে সাথে এক্স একটি এক্সপোজ ইভেন্টের কারণ ঘটায় এবং এটি পুনরায় রঙ করে। পুনরুদ্ধার করার জন্য আপনার শক্তি মারার দরকার নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.