diff --git a/OS/OS Configuration.docx b/OS/OS Configuration.docx new file mode 100644 index 0000000..8e74563 --- /dev/null +++ b/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= +-------------------------------------------------------------------------------- +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 همه کلید‌های میانبر را کامنت کرد. مثال : + + + + + +کارهای آینده + تنظیم موس برای صفحه لمسی(پنهان کردن آن) + جلوگیری از اجرای چندباره کد اضافه کردن USB + تنظیم کد اضافه کردن مانیتور + افزایش سرعت بوت + رمز کردن فایل USB.sh