На самом деле понятно что в current необходимости нет. Я его выбрал из соображений потенциального полигона для покрутить/потестировать и из соображений что в current уже ZFSv15.
В amd64 тоже необходимости нет: не смотря на то, что в материнку можно установить до 4GB оперативной памяти, видеться системой будет только чуть больше трех:
hw.physmem: 3460689920Я выбрал amd64 из соображений чтобы на ноуте и медиабоксе была одна архитектура - потенциально это позволит в будущем использовать firewire для дебага.
На материнской плате есть только 4 sata разъема, поэтому отдельный системный диск не поставишь. А ставить систему на диски с данными не хотелось. Поэтому было решено использовать usb flash (уж usb портов полно, с большим запасом).
На дисках с данными планируется использовать zfs (в режиме raidz). Это один из пунктов, почему на системной флешке тоже используется zfs: ввиду того, что zfs в данный момент достаточно плохо интегрирован в систему распределения памяти freebsd, не рекомендуется использовать на одном компьютере и zfs, и ufs одновременно. Кроме того использование zfs на системной флешке избавляет от fsck в случае чего, позволяет использовать вкусности типа снэпшотов, сжатия, возможности легко переехать на флешку большего объема.
Установка на zfs ничем особенным от wiki не отличается. Разве что я ставил не с инсталяционного диска, а вставил флешку в ноут, всё разметил и потом сделал
make installkernel installworld distribution DESTDIR=/zusbСейчас используется флешка на 4GB. Пока запас еще есть:
# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT zusb 3.59G 2.17G 1.43G 60% ONLINE - # zfs list -oname,mountpoint,used,compressratio NAME MOUNTPOINT USED RATIO zusb legacy 2.17G 1.34x zusb/jail /jail 422M 1.03x zusb/jail/int /jail/int 422M 1.03x zusb/jail/int/tmp /jail/int/tmp 30K 1.00x zusb/jail/int/usr /jail/int/usr 349M 1.00x zusb/jail/int/var /jail/int/var 52.7M 1.31x zusb/jail/int/var/db /jail/int/var/db 52.0M 1.29x zusb/jail/int/var/db/pkg /jail/int/var/db/pkg 26.6M 1.57x zusb/jail/int/var/empty /jail/int/var/empty 21K 1.00x zusb/jail/int/var/log /jail/int/var/log 446K 3.74x zusb/jail/int/var/mail /jail/int/var/mail 21K 1.00x zusb/jail/int/var/run /jail/int/var/run 31K 1.00x zusb/jail/int/var/tmp /jail/int/var/tmp 23K 1.00x zusb/tmp /tmp 243K 1.00x zusb/usr /usr 1.46G 1.49x zusb/usr/home /usr/home 353K 1.87x zusb/usr/local /usr/local 576M 1.04x zusb/usr/ports /usr/ports 415M 1.45x zusb/usr/ports/distfiles /usr/ports/distfiles 121M 1.00x zusb/usr/ports/packages /usr/ports/packages 61.8M 1.00x zusb/usr/src /usr/src 234M 3.24x zusb/var /var 39.3M 1.73x zusb/var/db /var/db 35.0M 1.36x zusb/var/db/pkg /var/db/pkg 6.95M 2.94x zusb/var/empty /var/empty 21K 1.00x zusb/var/log /var/log 2.96M 6.57x zusb/var/mail /var/mail 59K 1.00x zusb/var/run /var/run 587K 1.00x zusb/var/tmp /var/tmp 138K 1.00xКак видно compression тоже дает какой-то эфект.
Светящийся тут jail это неудачная попытка запустить иксы в jail: изначально была идея что так как компьютер планируется использовать одновременно и для внутренних нужд (htpc), и для внешних (router и torrent клиент), то завести два отдельных jail-а: внутренний и внешний, и тем самым обеспечить невозможность засветить внутренние сервиса на внешний ip и ограничить что именно светить наружу. Но в таком виде идея провалилась, поэтому будет реализована в немного видоизмененной.
Это установленная базовая система фактически без оптимизации (только удалены /boot/kernel/*.symbols), Xorg, mplayer, nvidia-driver, openbox и всё, чего оно захотело:
# pkg_info|wc -l 216Оборудование в среднем распознается без проблем:
# pciconf -lv ... ohci0@pci0:0:4:0: class=0x0c0310 card=0x83e21043 chip=0x0aa510de rev=0xb1 hdr=0x00 vendor = 'NVIDIA Corporation' class = serial bus subclass = USB ehci0@pci0:0:4:1: class=0x0c0320 card=0x83e21043 chip=0x0aa610de rev=0xb1 hdr=0x00 vendor = 'NVIDIA Corporation' class = serial bus subclass = USB ohci1@pci0:0:6:0: class=0x0c0310 card=0x83e21043 chip=0x0aa710de rev=0xb1 hdr=0x00 vendor = 'NVIDIA Corporation' class = serial bus subclass = USB ehci1@pci0:0:6:1: class=0x0c0320 card=0x83e21043 chip=0x0aa910de rev=0xb1 hdr=0x00 vendor = 'NVIDIA Corporation' class = serial bus subclass = USB hdac0@pci0:0:8:0: class=0x040300 card=0x84271043 chip=0x0ac010de rev=0xb1 hdr=0x00 vendor = 'NVIDIA Corporation' class = multimedia subclass = HDA ahci0@pci0:0:11:0: class=0x010601 card=0x83e21043 chip=0x0ab810de rev=0xb1 hdr=0x00 vendor = 'NVIDIA Corporation' device = 'MCP79 AHCI1 (MCP79)' class = mass storage subclass = SATA vgapci0@pci0:3:0:0: class=0x030000 card=0x83e21043 chip=0x087d10de rev=0xb1 hdr=0x00 vendor = 'NVIDIA Corporation' class = display subclass = VGA re0@pci0:4:0:0: class=0x020000 card=0x83a31043 chip=0x816810ec rev=0x03 hdr=0x00 vendor = 'Realtek Semiconductor' device = 'Gigabit Ethernet NIC(NDIS 6.0) (RTL8168/8111/8111c)' class = network subclass = ethernet ... # cat /dev/sndstat FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64) Installed devices: pcm0: <hda Realtek ALC887 PCM #0 Analog> (play/rec) pcm1: <hda Realtek ALC887 PCM #1 Analog> (play/rec) pcm2: <hda Realtek ALC887 PCM #2 Digital> (play) default pcm3: <hda NVidia MCP7A HDMI PCM #0 Digital> (play)Процессор тоже вполне настоящий:
CPU: Intel(R) Atom(TM) CPU 330 @ 1.60GHz (1600.03-MHz K8-class CPU) Origin = "GenuineIntel" Id = 0x106c2 Family = 6 Model = 1c Stepping = 2 Features=0xbfe9fbffЕсть кое-какая поддержка power management фичей:Features2=0x40e31d AMD Features=0x20100800 AMD Features2=0x1 TSC: P-state invariant real memory = 4294967296 (4096 MB) Physical memory chunk(s): 0x0000000000001000 - 0x0000000000047fff, 290816 bytes (71 pages) 0x0000000000058000 - 0x000000000009afff, 274432 bytes (67 pages) 0x0000000001bbb000 - 0x00000000c9d91fff, 3357372416 bytes (819671 pages) avail memory = 3338301440 (3183 MB) Event timer "LAPIC" frequency 0 Hz quality 500 ACPI APIC Table: <020110 APIC1033> INTR: Adding local APIC 2 as a target FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 HTT threads cpu0 (BSP): APIC ID: 0 cpu1 (AP/HT): APIC ID: 1 cpu2 (AP): APIC ID: 2 cpu3 (AP/HT): APIC ID: 3 APIC: CPU 0 has ACPI ID 1 APIC: CPU 1 has ACPI ID 3 APIC: CPU 2 has ACPI ID 2 APIC: CPU 3 has ACPI ID 4
# sysctl dev.cpu.0 dev.cpu.0.%desc: ACPI CPU dev.cpu.0.%driver: cpu dev.cpu.0.%location: handle=\_PR_.P001 dev.cpu.0.%pnpinfo: _HID=none _UID=0 dev.cpu.0.%parent: acpi0 dev.cpu.0.temperature: 56.0C dev.cpu.0.freq: 1600 dev.cpu.0.freq_levels: 1600/-1 1400/-1 1200/-1 1000/-1 800/-1 600/-1 400/-1 200/-1 dev.cpu.0.cx_supported: C1/0 C2/1 C3/85 dev.cpu.0.cx_lowest: C1 dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 279usПроцессор поддерживает C3, но включение его вызывает очень сильное падение производительности (дождаться даже установки пекеджа становится проблематично). Всё уменьшение частоты исключительно через acpi throttle. Поэтому, а так же потому, что за всё время наблюдений я не видел чтобы температура процессора доходила хотя бы до 65C, я не включал никаких power management функций.
Видеокарта нормально распозналась X -configure:
Section "Device" Identifier "Card0" Driver "nvidia" VendorName "nVidia Corporation" BoardName "G98 [GeForce 9300M GS]" EndSectionНа подключенный по hdmi телевизор тоже картинка сходу пошла, только не захотел сам выставить максимальное разрешение. Но кручение через nvidia-settings с последующим переносом настроек в xorg.conf всё полечило.
Да, на current драйвер nvidia надо ставить последний с сайта nvidia (у меня это 256.44), а не то, что сейчас в портах. Для быстрой и удобной установки можно просто немного поправить порт: поменять в нём DISTVERSION , после чего make makesum && make install clean .
Звук по hdmi передаваться не захотел. Кто виноват: видеокарта или драйер, я не знаю и пока не разбирался, а просто подключил акустику по оптическому кабелю в spdif. Но вообще звук по hdmi с nvidia под freebsd передается: я сам это проверял на своём ноуте как только вышли драйвера nvidia под freebsd amd64.
Как обычно все аудиовыходы (задние штекеры, фронтальные, spdif, звук на hdma) представлены в виде разных pcm устройств (я выше показывал). Несколько раз видел что людей такое смущает: они удивляются откуда на их компьютере (а особенно если это ноутбук) две звуковых карта, да еще и разных производителей. А вообще благодаря этому можно выбирать куда выводить звук или явно указывая программые нужный /dev/pcm , или выставив для всех hw.snd.default_unit .
Ну и, собственно, самое главное на данный момент: проигрывание hd видео. Для этого нужно собрать mplayer с поддержкой vdpau , прописать ему вот такой конфиг:
# cat .mplayer/config vo=vdpau vc=ffh264vdpau,ffmpeg12vdpau, ac=hwac3,a52,и спокойно смотреть видео на прохлаждающемся процессоре:
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 73587 levsha 1 49 0 215M 40660K nanslp 2 0:15 8.98% mplayerТеперь о планах. Планируется прикрутить IR, перенести аудиоплеер на медиабокс, сделав на ноутбуке управление им хоткеями, поднять torrent client (посматриваю на transmission), спортироать xbmc, возможно поиграться с DLNA.
8 коментарів:
коли розберешся з DLNA відпишись, дуже цікаво
А собственно из за чего, не получилось запустить иксы в клетке?
Xorg для работы требует /dev/mem , доступ к которому из jail запрещен в ядре, даже если через devfs его разрешить
странно, я как раз /dev/mem прокидывал в jail через devfs и получал таблицу роутанга через netstat -arn именно через /dev/mem
Xorg хочет /dev/mem в rw
можно например сюда посмотреть
лично меня больше волнует работа mplayer с vdpau ..
[vdpau] Error when calling vdp_video_mixer_destroy: A catch-all error, used when no other error code applies.
mplayer-1.0.r20100717
nvidia-256.44
FreeBSD 9.0-CURRENT r211281 amd64
Про /dev/mem ту ветку jail@ я уже видел. Но я таки решил пойти другим путем. Да и не до этого пока.
По завершению просмотра файла у меня mplayer оказывается тоже так ругается. Но, так как я редко его запускаю в виде "mplayer file1 file2 file3 ...", а практически всегда запускаю в виде "... | xargs -I % mplayer %", то проблема для меня не особо актуальна.
Дописати коментар