Термінове встановлення FreeBSD на ноутбук Asus A6R

Метки: , ,

Вступ

Мій Lenovo Edge 430 зламався на завершальній стадії налаштування Лінукс-сервера замовника. В мене був запасний ноутбук, що два роки тому подарувала мені подруга: Asus A6R. Я вирішив встановити FreeBSD на нього, для того щоб по ssh завершити налаштування Лінукса.

наліпка на задній кришці Asus A6R

Чому FreeBSD? Не знаю. Просто сумував за нею декілька років.

До речі, Оля Чуркіна, дякую за лептоп — він став у пригоді.

Встановлення

Просто записав офіційний ісошнік FreeBSD 10.2 на DVD та встановив операційну систему, лишаючи всі значення параметрів за замовченнями. Лише створив на цьому етапі користувача "user" та встановив документацію.

лоадер FreeBSD чекає відповіді користувача на Asus A6R

А, так, для цього гарненького чортеняти додав це у /boot/loader.conf:

loader_logo="beastie"

 Консоль

Для початку, будемо використовувати новий драйвер віртуального терміналу замість syscons, для чого змінюємо /boot/loader.conf:

kern.vty=vt

Також, зручним буде завантажувати із /etc/rc.conf відео-драйвери із встановленням режиму на рівні ядра (Kernel Mode-Setting, KMS):

kld_load="%ВАШІ_МОДУЛІ% radeonkms"

Після перезавантаження маємо чудово виглядаючи віртуальні термінали, що здатні вміщувати на екрані більше символів, ніж вони могли із параметрами за замовченням.

новий драйвер консолі FreeBSD на Asus A6R

Бездротова мережа

Наш чіп виробництва Broadcom підтримується драйвером if_bwn, але для роботи йому потрібні прошивки, що доступні у порті /usr/ports/net/bwn-firmware-kmod. Тож, йдемо у папку порта і робимо `make install` (або встановлюємо порт іншим чином). Прошивка, що потрібна нам, встановлюється як файл /boot/kernel/bwn_v4_ucode.kld

карта бездротової мережі в Asus A6R

Активуємо драйвери вайфай у /etc/rc.conf:

kld_list="%ВАШІ_МОДУЛІ% if_bwn bwn_v4_ucode"

Після перезавантаження два щойно активовані модулі мають бути присутні у виводі `kldstat`.

Також мережевий інтерфейс bwn0 буде у виводі `ifconfig`:

bwn0: flags=8843 metric 0 mtu 2290
	ether CA:FE:BA:BE:F0:0D
	nd6 options=29
	media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
	status: no carrier 

Далі нам необхідно створити бездротовий мережевий інтерфейс поверх bwn0. Ми будемо користуватися WPA2, тому, перед створенням wlan0, завантажимо модуль, що надає програмам-аутентифікаторам інтерфейс для роботи:

kldload wlan_xauth

Потім створюємо wlan0 поверх bwn0:

ifconfig wlan create wlandev bwn0 authmode wpa mode 11g country UA

Тепер сканування ефіру на предмет бездротових мереж має працювати:

ifconfig wlan0 up # можливо, знадобиться спочатку підняти інтерфейс
ifconfig wlan0 scan

Пишемо наші ім'я мережі та пароль в /etc/wpa_supplicant.conf (програма запитає пароль):

wpa_passphrase YOUR_WIFI_NET_ID >> /etc/wpa_supplicant.conf

Запускаємо wpa_supplicant:

wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0

...і бачимо нескінченні під'єднання та роз'єднання.

Як я розумію, це через те, що вайфай-драйвери несумісні із ACPI. Оскільки нам потрібна робоча операційна система якомога швидше, ми просто інструктуємо ОС завантажуватися із вимкненим ACPI шляхом додавання такого рядка у файл /boot/device.hints:

hint.acpi.0.disabled="1"

І збережемо нашу бездротову конфігурацію у файлі /etc/rc.conf:

kld_list="%ВАШІ_МОДУЛІ% if_bwn bwn_v4_ucode wlan_xauth"
wlans_bwn0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP mode 11g country UA"

Після перезавантаження побачимо щось на кшталт такого виводу `ifconfig`:

bwn0: flags=8843 metric 0 mtu 2290
	ether CA:FE:BA:BE:F0:0D
	nd6 options=29
	media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
	status: associated
wlan0: flags=8843 metric 0 mtu 1500
	ether CA:FE:BA:BE:F0:0D
	inet 192.168.0.4 netmask 0xfffffff8 broadcast 192.168.0.7 
	nd6 options=29
	media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
	status: associated
	ssid YOUR_WIFI_NET_ID channel 5 (2432 MHz 11g) bssid BE:EF:F0:0D:CA:FE
	regdomain NONE country UA authmode WPA2/802.11i privacy ON
	deftxkey UNDEF TKIP 2:128-bit txpower 30 bmiss 7 scanvalid 60 bgscan
	bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
	wme roaming MANUAL

На першому текстовому терміналі часто бачимо повідомлення про намагання інтерфейсу bwn0 щось розкодувати. Поки що можна їх спокійно проігнорувати.

Монтування NTFS

Це, скоріше, розділ не для всіх обов'язковий, але у мене NTFS на флешці.

Ставимо ntfs-3g із портів (`pkg install fusefs-ntfs`), та додаємо цей рядок до boot/loader.conf:

fuse_load="YES"

Тепер можна монтувати файлову систему NT такою командою:

ntfs-3g /dev/da0s1 /mnt

Налаштування користувача

Оскільки не можна працювати завжди як суперкористувач, то давайте зробимо роботу під користувачем більш зручною.

Для того щоб user міг запускати su:

pw group mod wheel -m user

Для вимкнення ноутбуку:

pw group mod operator -m user

 Для української локалізації додайте у файл /etc/login.conf новий користувацький клас:

ukrainian|Ukrainian Users Accounts:\
	:charset=UTF-8:\
	:lang=uk_UA.UTF-8:\
	:tc=default:

Після редагування /etc/login.conf перебудовуємо бінарне відображення цього файла:

cap_mkdb /etc/login.conf

Призначаємо нашому користувачеві клас "ukrainian":

pw usermod user -L ukrainian

Перевходимо як користувач, і переконуємося, що такі команди як `date` та `ncal -y` видають українські імена місяців та днів тижня (в не іксовій консолі, із зробленими налаштунками, юнікод буде відображатися тільки якщо ви використовуєте новий драйвер віртуального терміналу).

На цьому можна зупинитися, бо зараз в нас є все для того, щоб закінчити конфігурацію віддаленого Лінуксу. Однак, після дня роботи у текстовому режимі, я зрозумів, що хочу щось більш функціональне ніж elinks для перегляду Інтернет-сторінок. Отож, наступний опціональний розділ — про запуск іксів на ноутбуку Asus A6R.

X-сервер

Без сумніву, не обійтися без xorg:

pkg install xorg

Якщо ви все ще використовуєте syscons, у вас будуть проблеми із запуском X-серверу: на всіх текстових терміналах не буде зображення (навіть після завершення роботи із іксами). Отож, зараз саме час додати отакий рядок до /boot/loader.conf:

kern.vty=vt

Щодо віконного менеджеру, я збираюся використовувати twm, що постачається із X-сервером. Конфігураційний файл twm я вже створив декілька років тому, він доступний для завантаження звідси. Просто розпакуйте архів у директорію користувача та створіть такий ~/.xinitrc:

xsetroot -solid black
exec twm

Після `startx` все готове до роботи. Меню доступне при клацанні по лівій кнопці миші. Меню можна редагувати у .twmrc відповідно до ваших потреб.

Більше про twm читайте у статті TWM — менеджер окон с двадцатилетним стажем.

Також, якщо необхідно вводити українською, можна додати це як перший рядок файлу ~/.xinitrc (перемикати розкладки можна буде по Alt+Shift):

setxkbmap -layout us,ua -option grp:alt_shift_toggle,grp_led:scroll

Після встановлення Firefox із портів, має бути активовано D-Bus у "/etc/rc.conf":

dbus_enable="YES"

Для того, щоб під час X-сессії працювало копіювання із xterm в інші програми (наприклад, щоб виділити текст в терміналі, а вставити у Firefox, клацнувши середньою кнопкою миші), треба мати встановлену юнікодну локаль.

Щоб не запускати кожен раз ікси руками, можна встановити X Display Manager:

pkg install xdm

Увімкнути його в /etc/ttys:

ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   on  secure

Та використати нещодавно створений .xinitrc у якості .xsession:

ln -s ~user/.xinitrc ~user/.xsession

Після перезавантаження нас зустріне іксовий екран входу в систему.

Звук

Якщо вже в нас є X-сервер, логічно було б активувати звук на нашій FreeBSD-системі (хоча, ясна річ, звук можна налаштувати і без іксів).

Просто пишемо це у наш boot/loader.conf і перезавантажуємось:

snd_atiixp_load="YES"

Підсумки

Ми, безсумнівно, налаштували FreeBSD на Asus A6R (1.6 GHz Celeron M, 384 MB RAM): в нас є можливість блукати світовим павутинням (1-2 вкладки у Файерфоксі без свопу, ютуб-відео у якості 144p), читати пошту, використовувати мережеві інструменти (ssh, ftp, netcat), слухати музику, писати цю статтю в Емаксі. Однак, залишилися деякі проблеми:

  • Після переходу на новий драйвер віртуальних терміналів, в `dmesg` почали з'являтися такі повідомлення:

    module_register_init: MOD_LOAD (vesa, 0xc0fbe2b0, 0) error 19

    Скоріше за все, це через те, що VESA вкомпільовано у стандартне ядро. Я намагався вимкнути VESA через /boot/loader.conf, але це не допомогло.

  • Схоже на те, що відео-драйвери не повністю робочі. У `dmesg` щодо цього є такі повідомлення:

    error: [drm:pid127:r100_ring_test] *ERROR* radeon: ring test failed (scratch(0x15E4)=0xCAFEDEAD)
    error: [drm:pid127:r100_cp_init] *ERROR* radeon: cp isn't working (-22).
    drmn0: error: failed initializing CP (-22).
    drmn0: error: Disabling GPU acceleration
    error: [drm:pid127:r100_cp_fini] *ERROR* Wait for CP idle timeout, shutting down CP.
    error: [drm:pid127:r100_cp_disable] *ERROR* Failed to wait GUI idle while programming pipes. Bad things might happen.

    Як бачите, через це 3D-прискорення не працює (наприклад, у Tux Racer пограти можна, але графіка не дуже плавна).

  • Нам довелося вимкнути ACPI, що, можливо, нормально для під'єднаного до постійного джерела живлення ноутбука без батареї, але точно не дуже добре для лептопа, що використовується як переносний пристрій.

Як би там не було, якщо б я знайшов статтю на зразок цієї перед початком роботи із Asus A6R, вона б дещо зберегла мені час. Сподіваюся, ця стаття допоможе заощадити ваші безцінні години. Також, якщо ви знаєте рішення проблем, що залишилися, будь ласка, напишіть про це у дописі нижче.

 

 

 


04 Май 2016

Комментарии (заморожены на какое-то время)

На этой странице еще нет комментариев.


Интернет реклама