Blog » Термінове встановлення FreeBSD на ноутбук Asus A6R
Мій Lenovo Edge 430 зламався на завершальній стадії налаштування Лінукс-сервера замовника. В мене був запасний ноутбук, що два роки тому подарувала мені подруга: Asus A6R. Я вирішив встановити FreeBSD на нього, для того щоб по ssh завершити налаштування Лінукса.
Чому FreeBSD? Не знаю. Просто сумував за нею декілька років.
До речі, Оля Чуркіна, дякую за лептоп — він став у пригоді.
Просто записав офіційний ісошнік FreeBSD 10.2 на DVD та встановив операційну систему, лишаючи всі значення параметрів за замовченнями. Лише створив на цьому етапі користувача "user" та встановив документацію.
А, так, для цього гарненького чортеняти додав це у /boot/loader.conf:
loader_logo="beastie"
Для початку, будемо використовувати новий драйвер віртуального терміналу замість syscons, для чого змінюємо /boot/loader.conf:
kern.vty=vt
Також, зручним буде завантажувати із /etc/rc.conf відео-драйвери із встановленням режиму на рівні ядра (Kernel Mode-Setting, KMS):
kld_load="%ВАШІ_МОДУЛІ% radeonkms"
Після перезавантаження маємо чудово виглядаючи віртуальні термінали, що здатні вміщувати на екрані більше символів, ніж вони могли із параметрами за замовченням.
Наш чіп виробництва Broadcom підтримується драйвером if_bwn, але для роботи йому потрібні прошивки, що доступні у порті /usr/ports/net/bwn-firmware-kmod. Тож, йдемо у папку порта і робимо `make install` (або встановлюємо порт іншим чином). Прошивка, що потрібна нам, встановлюється як файл /boot/kernel/bwn_v4_ucode.kld
Активуємо драйвери вайфай у /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-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.
Без сумніву, не обійтися без 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, вона б дещо зберегла мені час. Сподіваюся, ця стаття допоможе заощадити ваші безцінні години. Також, якщо ви знаєте рішення проблем, що залишилися, будь ласка, напишіть про це у дописі нижче.
На этой странице еще нет комментариев.