Browse Source

add OS configuration

printer
mmtalaie 5 years ago
committed by h-4nd-h
parent
commit
3da8660b0d
  1. 280
      OS/OS Configuration.docx

280
OS/OS Configuration.docx

@ -0,0 +1,280 @@
به نام خدا
آموزش تنظیمات سیستم عامل دستگاه سنوگرافی
نسخه 1
تنظیم کننده:
محمد محسن طلایی
شرکت رستافن
تابستان 99
فهرست
نگاه کلی 4
نصب سیستم عامل 4
پیکر بندی اولیه 5
نصب رابط کاربری 5
راه اندازی اولیه 8
اجرای تنظیمات صفحه نمایش 11
اجرای تنظیمات USB Peripherals 13
بستن دسترسی‌های کاربر 15
نگاه کلی
در این سند روش پیکر بندی سیستم عامل دستگاه سونو گرافی توضیح داده شده است. سیستم عامل مورد استفاده در این بخش سیستم عامل Ubuntu mini است. باید توجه کرد که این سیستم عامل دارای هیچ گونه رابط کاربری گرافیکی نیست و تک تک ماژول‌های رابط کاربری باید نصب گردد. مواردی که در این سند آمده است به طور خلاصه به شرح زیر است.
نصب سیستم عامل
پیکر بندی اولیه
نصب رابط کاربری
راه اندازی اولیه
اجرای تنظیمات صفحه نمایش
اجرای تنظیمات usb peripherals
بستن دسترسی‌های کاربر
نصب سیستم عامل
با توجه به کاربرد دستگاه و نیاز دستگاه به حداکثر منابع سخت افزاری بهترین گزینه موجود برای انتخاب، سیستم عاملی است که دارای کمترین سربار پردازشی باشد. از این رو نسخه mini image سیستم عامل اوبونتو برای سیستم عامل دستگاه انتخاب شد.
مهترین خصوصیت این نسخه که آن را برای کار مورد نظر سازگار می‌کند این است که این نسخه تنها شامل یک کرنل اولیه بوده و هیچ کدام از سرویس‌های اضافی سیستم‌عامل همچون رابط کاربری گرافیکی، نرم افزار های کاربردی سیستم عامل و ... را نصب نمی‌کند.
بنابرین در زمان انتخاب، جدید ترین نسخه موجود برای این کار نسخه 18.04 بود، که از طریق این لینک [HYPERLINK: https://help.ubuntu.com/community/Installation/MinimalCD] قابل دریافت است. اما در حال حاضر جدید ترین نسخه، نسخه 20.04 بوده که از این لینک [HYPERLINK: http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/mini.iso] قابل دریافت است. همچنین راهنمای نصب نسخه 18.04 این سیستم عامل در این لینک [HYPERLINK: https://help.ubuntu.com/community/Installation/FromUSBStick] موجود است.
تنها نکات مهم در نصب این نسخه این است که فرایند نصب باید همراه با اتصال اینترنت باشد و در زمان انتخاب پکیج ها برای نصب، هیچ پکیجی انتخاب نگردد.
پیکر بندی اولیه
پس از نصب سیستم عامل تنها یک محیط Terminal در اختیار است(شکل 1). بنابرین اولین کار باید فرایند نصب رابط کاربری گرافیکی باشد.
شکل 1 رابط کاربری اولیه پس از نصب سیستم عامل
نصب رابط کاربری
در اولین مرحله دستورات زیر را اجرا می‌گردد.
--------------------------------------------------------------------------------
$ sudo apt-get install xinit
این دستور این امکان را به کاربر می‌دهد که Xorg را به طور دستی اجرا کند. Xorg درواقع یک Display Server است. وظیفه DS مدیریت و هماهنگی ورودی و خروجی‌های کاربران تحت پروتکل display server protocol است.با نصب این سیستم یک Display Manager نیز با نام GDM نصب می‌شود. که در ادامه عوض می‌شود. حال نیاز به یک Windows Manager و Graphical Terminal است. WM در لینوکس پنجره‌ها و خصوصیات گرافیکی آنها و روابط کاربری گرافیکی را مدیریت می‌کند.
یکی از WM های مناسب openbox سات این WM سبک بوده و سربار کمی بر سیستم عامل دارد. همچنین امکانات مناسبی برای تنظیمات سیستم به کاربر می‌دهد. با دستورات زیر WM و یک شبیه ساز ترمینال در محیط GUI نصب می‌شود.
--------------------------------------------------------------------------------
$ sudo apt-get install openbox terminatr
پس از نصب پکیج‌های بالا، سیستم را Reboot کرده و در محیط ترمینال دستور زیر را وارد کرده تا محیط گرافیکی باز شود.
--------------------------------------------------------------------------------
$ startx
با استفاده از دستور بالا یک محیط گرافیکی اولیه لود شده که نمونه آن در شکل 2 مشخص است.
شکل 2 نمونه اولیه رابط گرافیکی
در این مرحله باید پکیج های اولیه برای کانفیگ نصب گردد. برای این کار باید با باز کردن یک شبیه ساز ترمینال دستور زیر را اجرا کرد.
راه اندازی اولیه
برای راه اندازی اولیه باید با دستور زیر پیکیج های tint2، docky، nitrogenو xcompmgr نصب گردد.
--------------------------------------------------------------------------------
$ sudo apt-get install tint2 docky nitrogen xcompmgr
nitrogen برای تنظیم پس زمینه و xcompmgr برای سایه انداختن پنچره‌ها و پشتیبانی از صفحات شفاف در WM است.
برای راه اندازی سرویس صوتی سیستم عامل دو پکیج volti و pavucontrol نصب می‌گردد.
--------------------------------------------------------------------------------
$ sudo apt-get install volti
--------------------------------------------------------------------------------
$ sudo apt-get install pavucontrol
پس از نصب pavucontrol را با دستور زیر اجرا کرده.
--------------------------------------------------------------------------------
$ sudo pavucontrol
پس از اجرا بررسی کرده تا صدا mute نباشد(شکل 3).
شکل 3 محیط برنامه pavucontrol
پس از آن پکیج‌های اولیه زیر نصب می شود.
--------------------------------------------------------------------------------
$ sudo apt-get install pcmanfm gedit
برای راحتی کار می‌توان با نرم افزار nitrogen پس زمینه انتخاب کرد. قبل از اجرای نرم افزار می توان با دستور زیر پس زمینه‌های استاندارد اوبونتو را نصب کرد.
--------------------------------------------------------------------------------
$ sudo apt-get install ubuntu-wallpaperssudo
تصاویر نصب شده در ادرس /usr/share/background ذخیره می‌شوند.
حال نرم افزار lightDM با دستور زیر نصب می گردد.
--------------------------------------------------------------------------------
$ sudo apt-get install -y lightdm
lightDM یک نرم افزار Display Manager است. این نرم افزار ها وظیفه تنظیم نمایش و صفحه لاگین را دارد. پس از نصب باید آن را تنظیم کرد تا بدون نام کاربری و پسورد لاگین شود. برای این کار باید در فایل /etc/lightdm/lightdm.conf کد زیر اضافه گردد.
--------------------------------------------------------------------------------
[SeatDefaults]
--------------------------------------------------------------------------------
autologin-user=<YOUR USER>
--------------------------------------------------------------------------------
autologin-user-timeout=0
--------------------------------------------------------------------------------
user-session=ubuntu
--------------------------------------------------------------------------------
# Uncomment the following, if running Unity
--------------------------------------------------------------------------------
#greeter-session=unity-greeter
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
پس از یک مرحله reboot و درست بودن autologin باید سیستم عامل طوری تنظیم شود که تعدادی از نرم افزار به طور پیشفرض در پس از اجرای user space اجرا گردد.
برای این کار در آدرس /home/hasis/.config یک پوشه به نام openbox ساخته و در این پوشه، فایلی با نام autostart.sh ساخته شود.
محتویات این فایل باید خطوط زیر باشد.
--------------------------------------------------------------------------------
#!/bin/sh
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
nitrogen --restore &
--------------------------------------------------------------------------------
volti &
--------------------------------------------------------------------------------
docky &
--------------------------------------------------------------------------------
tint2 &
سپس فایل را ذخیره کرده و با دستور chmod به یک فایل اجرایی تبدیل گردد.
--------------------------------------------------------------------------------
Sudo chmode +x autostart.sh
حال با reboot کردن سیستم و بالا آمدن آن باید سیستم عامل دارای پس زمینه باشد و همچنین نوار پایینی ، پکیج صوت و نرم افزار docky به طور خودکار اجرا گردد.
اجرای تنظیمات صفحه نمایش
برای این کار در آدرس /home/hasis/.config/openbox/ یک فایل با نام displaySetting.sh را ساخته و دستورات زیر درون آن قرار داده شده و ذخیره می گردد.
--------------------------------------------------------------------------------
#!/bin/sh
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
xrandr --output HDMI-0 --mode 1920x1080 --primary --pos 0x0 --output DVI-I-1-1 --mode 1280x800 --pos 1920x0
سپس با دستور chmod به یک فایل اجرایی تبدیل شود. حال باید در فایل autostart.sh در بالای فایل دستور ./displaySetting.sh اضافه گردد.
--------------------------------------------------------------------------------
#!/bin/sh
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
nitrogen --restore &
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
./displaySetting.sh
سپس باید تاچ اسکرین بر روی نمایشگر کوچک تنظیم شود و ما بقی موس‌ها به پوینتر اصلی متصل شود و در مرحله آخر track ball نیز غیر فعال گردد. بنابرین باید دستورات زیر به فایل autostart.sh اضافه گردد.
--------------------------------------------------------------------------------
xinput create-master imse
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
for id in `xinput --list|grep -i 'mouse'|perl -ne 'while (m/id=(\d+)/g){print "$1\n";}'`; do
--------------------------------------------------------------------------------
# echo "setting device ID $id"
--------------------------------------------------------------------------------
# notify-send -t 50000 'Mouse fixed'
--------------------------------------------------------------------------------
xinput reattach $id 'Virtual core pointer'
--------------------------------------------------------------------------------
xinput set-prop $id "Device Enabled" 1
--------------------------------------------------------------------------------
done
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
xinput --map-to-output 'eGalax Inc. eGalaxTouch EXC3111-5174-08.00.00.00' DVI-I-1-1 &
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
xinput disable `xinput --list|grep -i 'Microchip'|perl -ne 'while (m/id=(\d+)/g){print "$1\n";}'` &
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
xinput reattach `xinput --list|grep -i 'egalax'|perl -ne 'while (m/id=(\d+)/g){print "$1\n";}'` 'imse pointer'
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
sleep 1
--------------------------------------------------------------------------------
در دستورات بالا خط اول یک پوینتر(نشانگر) برای صفحه لمسی ساخته می‌شود. در حلقه بعدی همه موس ها به نشانگر اصلی متصل می شود. خطوط بعد از حلقه به ترتیب برای تنظیم صفحه لمسی به مانیتور کوچک، غیر فعال سازی track ball و اتصال صفحه لمسی به پونتر ساخته شده، می باشند.
اجرای تنظیمات USB Peripherals
تا کنون همه موس‌های کاربر به یک پوینتر وصل شده اند. اما اگر کاربر پس از بارگذاری سیستم عامل یک موس یا وصیله دیگر به دستگاه نصب کند باید بتوان آن را کنترل کرد. برای این کار باید در مسیر /etc/udev/rules.d/ یک فایل با پسوند .rules ساخته شود. سپس درون فایل، تنظیمات زیر اعمال گردد.
--------------------------------------------------------------------------------
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idvendor}=="****", ATTRS{idproduct}=="****", RUN+="/home/hasis/.config/openbox/USB.sh"
حال باید در مسیر /home/hasis/.config/openbox/ یک فایل با نام USB.sh ساخته شود و محتویات زیر به فایل اضافه شده و در نهایت به فایل اجرایی تبدیل گردد.
--------------------------------------------------------------------------------
#!/bin/bash
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
/home/hasis/.config/openbox/usbset.sh &
--------------------------------------------------------------------------------
#echo "finished" >> /home/hasis/.config/openbox/log.txt
در کد های بالا خط آخر که کامنت شده است، برای اطمینان از اجرا شدن این فایل در مواقعی که ساختار تعبیه شده کار نمی‌کند گذاشته شده است، در این مواقع این خط از کامنت در بیاورید و نتیجه را در فایل لاگ ببینید. در ادامه باید یک فایل با نام usbset.sh ساخته شود و حاوی کد‌های زیر باشد.
--------------------------------------------------------------------------------
#!/bin/bash
--------------------------------------------------------------------------------
sleep 1
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
DISPLAY=":0.0"
--------------------------------------------------------------------------------
HOME=/home/hasis/
--------------------------------------------------------------------------------
XAUTHORITY=$HOME/.Xauthority
--------------------------------------------------------------------------------
export DISPLAY XAUTHORITY HOME
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
echo "hi" >> /home/hasis/.config/openbox/log.txt
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
for id in `xinput --list|grep -i 'mouse'|perl -ne 'while (m/id=(\d+)/g){print "$1\n";}'`; do
--------------------------------------------------------------------------------
# echo "setting device ID $id" >> /home/hasis/.config/openbox/log.txt
--------------------------------------------------------------------------------
# notify-send -t 50000 'Mouse fixed'
--------------------------------------------------------------------------------
xinput reattach $id 'Virtual core pointer'
--------------------------------------------------------------------------------
xinput set-prop $id "Device Enabled" 1
--------------------------------------------------------------------------------
done
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
#echo "here 2" >> /home/hasis/.config/openbox/log.txt
کد های بالا به ازای هر دستگاه usb که به سیستم وصل شود اجرا می‌شود. این کدها باعث می شوند هر تعداد موس به سیستم وصل گردد به پوینتر اصلی وصل شود.
فایل USB.sh ممکن است حاوی دستوراتی باشد که نیاز به دسترسی روت داشته باشد. در این صورت چون فایل به صورت Privilege اجرا نمی‌شود جلو دستوراتی که نیاز به دسترسی روت دارد بسته می‌شود. بنابرین باید این فایل به فایل‌هایی که اجازه اجرای Privilege دارند اضافه کرد. برای این کار باید در فایل موجود در آدرس /etc/sudoers فایل USB.sh اضافه گردد. اما نکته مهم این است که این فایل دارای syntax مخصوص به خود است که حتما باید رعایت شود. بنابرین نیاز است که قبل از ذخیره کردن syntax آن چک شود. برای این کار از دستور زیر استفاده می شود.
--------------------------------------------------------------------------------
$ sudo visudo
Visudo یک ادیتور متن بوده که به طور خاص فایل /etc/sudoers را باز می‌کند و قبل از ذخیره syntax را بررسی می کند تا مشکلی نداشته باشد. پس از باز شدن، پس از خطی که حاوی کد (%sudo ALL=(ALL:ALL) ALL) است، خط زیر اضافه می شود(حدودا خط 25ام).
--------------------------------------------------------------------------------
%sudo ALL=(ALL:ALL) ALL
--------------------------------------------------------------------------------
hasis ALL=(ALL) NOPASSWD: /home/hasis/.config/openbox/USB.sh
توجه گردد که در آدرسی دهی نباید از `~` استفاده گردد. درصورت اشتباه در syntax خط اضافه شده، سیستم عامل لود نمی شود. برای رفع مشکل باید با استفاده از یک سیستم دیگر و اتصال هارد به آن سیستم، فایل گفته شده را در آدرس ذکر شده به طور دستی ویرایش کرد.
پس از کانفیگ‌های فوق باید قوانین بروز شود. بنابرین دستور زیر اجرا گردد.
--------------------------------------------------------------------------------
$ sudo udevadm control --reload
بستن دسترسی‌های کاربر
در مرحله اول سیستم ارائه شده باید دسترسی کاربر عادی به tty ها را ببندد. برای این کار باید دستور زیر به اول فایل autostart.sh اضافه شود.
--------------------------------------------------------------------------------
setxkbmap -option srvrkeys:none &
در این مرحله باید کلید‌های میانبر کاربر نیز بسته شود.
برای این کار باید در آدرس /home/hasis/.config/openbox/ فایل rc.xml را باز کرده و تگ Action همه کلید‌های میانبر را کامنت کرد. مثال :
<keybind key="S-A-Left">
<!-- <action name="SendToDesktop">
<to>left</to>
<wrap>no</wrap>
</action> -->
</keybind>
<keybind key="S-A-Right">
کارهای آینده
تنظیم موس برای صفحه لمسی(پنهان کردن آن)
جلوگیری از اجرای چندباره کد اضافه کردن USB
تنظیم کد اضافه کردن مانیتور
افزایش سرعت بوت
رمز کردن فایل USB.sh
Loading…
Cancel
Save